From d2fc6b8b0807f30be103e48b85a1a4ce2be522a3 Mon Sep 17 00:00:00 2001
From: Remko
Date: Fri, 21 Aug 2026 16:29:29 +0200
Subject: [PATCH 01/14] refactor(menu): declutter the navigation into the old
minimal shape
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Stage 1 of the original-look restyle. The Vault menu entry becomes
\"All secrets\" with a key icon (KeyVariant registered in src/icons.js —
unregistered icon names render no icon at all), and the Certificates and
Emergency access entries move from the footer to the settings foldout.
Documentation, Features & roadmap, My activity and Password health
deliberately stay in the footer.
Also removes the duplicated \"Personal settings\" opener: CnAppNav
auto-prepends its own entry at the top of the settings foldout while the
manifest already declares the UserSettings entry (action: user-settings),
so the same dialog had two openers. nav.includePersonalSettings:false
keeps the explicit manifest entry as the only one — the e2e specs assert
it, and the upcoming manifest-driven nav override renders it directly.
The manifest schema rejects _note on nav and menu entries, hence this
explanation lives here.
Placement assertions in page-surfaces.spec.ts follow the relabel and the
two moved entries; the local restyle plan file is gitignored.
---
.gitignore | 2 ++
src/icons.js | 2 ++
src/manifest.json | 11 +++++++----
tests/e2e/workflows/page-surfaces.spec.ts | 8 ++++++--
4 files changed, 17 insertions(+), 6 deletions(-)
diff --git a/.gitignore b/.gitignore
index fd45ae8b..6ff57d9b 100644
--- a/.gitignore
+++ b/.gitignore
@@ -121,3 +121,5 @@ openspec/test-site-results/**/*.webp
# docs-site build artefacts (regenerated by npm; never track)
docs/node_modules/
docs/build/
+
+RESTYLE-PLAN.md
\ No newline at end of file
diff --git a/src/icons.js b/src/icons.js
index eeb214c6..46ea8dcb 100644
--- a/src/icons.js
+++ b/src/icons.js
@@ -21,6 +21,7 @@ import ClipboardList from 'vue-material-design-icons/ClipboardList.vue'
import CogOutline from 'vue-material-design-icons/CogOutline.vue'
import FileDocumentOutline from 'vue-material-design-icons/FileDocumentOutline.vue'
import FolderOutline from 'vue-material-design-icons/FolderOutline.vue'
+import KeyVariant from 'vue-material-design-icons/KeyVariant.vue'
import LockOutline from 'vue-material-design-icons/LockOutline.vue'
import MapMarkerPath from 'vue-material-design-icons/MapMarkerPath.vue'
import Plus from 'vue-material-design-icons/Plus.vue'
@@ -38,6 +39,7 @@ export default {
CogOutline,
FileDocumentOutline,
FolderOutline,
+ KeyVariant,
LockOutline,
MapMarkerPath,
Plus,
diff --git a/src/manifest.json b/src/manifest.json
index 059e2d68..e035c465 100644
--- a/src/manifest.json
+++ b/src/manifest.json
@@ -2,6 +2,9 @@
"$schema": "https://raw.githubusercontent.com/ConductionNL/nextcloud-vue/main/src/schemas/app-manifest-v2.schema.json",
"version": "1.0.0",
"dependencies": [],
+ "nav": {
+ "includePersonalSettings": false
+ },
"menu": [
{
"id": "Dashboard",
@@ -12,8 +15,8 @@
},
{
"id": "Vault",
- "label": "Vault",
- "icon": "LockOutline",
+ "label": "All secrets",
+ "icon": "KeyVariant",
"route": "SecretList",
"order": 20
},
@@ -62,7 +65,7 @@
"label": "Certificates",
"icon": "CertificateOutline",
"route": "Certificates",
- "section": "footer",
+ "section": "settings",
"order": 88
},
{
@@ -70,7 +73,7 @@
"label": "Emergency access",
"icon": "ShieldKeyOutline",
"route": "EmergencyAccess",
- "section": "footer",
+ "section": "settings",
"order": 89
},
{
diff --git a/tests/e2e/workflows/page-surfaces.spec.ts b/tests/e2e/workflows/page-surfaces.spec.ts
index 3f9da102..8d7846bc 100644
--- a/tests/e2e/workflows/page-surfaces.spec.ts
+++ b/tests/e2e/workflows/page-surfaces.spec.ts
@@ -319,13 +319,17 @@ test.describe('Routed page surfaces — authenticated', () => {
placement.Dashboard,
`the nav did not render its daily-use entries (saw: ${JSON.stringify(placement)})`,
).toBe('main')
- expect(placement.Vault).toBe('main')
- // …and the relocated entry is in the foldout, not the main list. Both
+ expect(placement['All secrets']).toBe('main')
+ // …and the relocated entries are in the foldout, not the main list. Both
// halves: "not in main" alone would also pass if it vanished entirely.
expect(
placement.Applications,
`"Applications" should be in the settings foldout (saw: ${JSON.stringify(placement)})`,
).toBe('foldout')
+ // Restyle Stage 1: Certificates and Emergency access moved from the
+ // footer to the settings foldout (RESTYLE-PLAN.md).
+ expect(placement.Certificates).toBe('foldout')
+ expect(placement['Emergency access']).toBe('foldout')
})
test('ApplicationRegisterView lists the caller’s applications at #/applications', async ({
From 3b80a70eb3ceb7845d1e0c3dbc2c8fc4c27d4bbd Mon Sep 17 00:00:00 2001
From: Remko
Date: Mon, 24 Aug 2026 16:38:48 +0200
Subject: [PATCH 02/14] feat(settings): show the app version in the
user-settings dialog
---
l10n/be.js | 3 +-
l10n/be.json | 3 +-
l10n/bg.js | 3 +-
l10n/bg.json | 3 +-
l10n/bs.js | 3 +-
l10n/bs.json | 3 +-
l10n/ca.js | 3 +-
l10n/ca.json | 3 +-
l10n/cs.js | 3 +-
l10n/cs.json | 3 +-
l10n/da.js | 3 +-
l10n/da.json | 3 +-
l10n/de.js | 3 +-
l10n/de.json | 3 +-
l10n/el.js | 3 +-
l10n/el.json | 3 +-
l10n/en.js | 3 +-
l10n/en.json | 3 +-
l10n/es.js | 3 +-
l10n/es.json | 3 +-
l10n/et.js | 3 +-
l10n/et.json | 3 +-
l10n/fi.js | 3 +-
l10n/fi.json | 3 +-
l10n/fr.js | 3 +-
l10n/fr.json | 3 +-
l10n/ga.js | 3 +-
l10n/ga.json | 3 +-
l10n/hr.js | 3 +-
l10n/hr.json | 3 +-
l10n/hu.js | 3 +-
l10n/hu.json | 3 +-
l10n/is.js | 3 +-
l10n/is.json | 3 +-
l10n/it.js | 3 +-
l10n/it.json | 3 +-
l10n/lb.js | 3 +-
l10n/lb.json | 3 +-
l10n/lt.js | 3 +-
l10n/lt.json | 3 +-
l10n/lv.js | 3 +-
l10n/lv.json | 3 +-
l10n/mk.js | 3 +-
l10n/mk.json | 3 +-
l10n/mt.js | 3 +-
l10n/mt.json | 3 +-
l10n/nb.js | 3 +-
l10n/nb.json | 3 +-
l10n/nl.js | 3 +-
l10n/nl.json | 3 +-
l10n/pl.js | 3 +-
l10n/pl.json | 3 +-
l10n/pt.js | 3 +-
l10n/pt.json | 3 +-
l10n/rm.js | 3 +-
l10n/rm.json | 3 +-
l10n/ro.js | 3 +-
l10n/ro.json | 3 +-
l10n/ru.js | 3 +-
l10n/ru.json | 3 +-
l10n/sk.js | 3 +-
l10n/sk.json | 3 +-
l10n/sl.js | 3 +-
l10n/sl.json | 3 +-
l10n/sq.js | 3 +-
l10n/sq.json | 3 +-
l10n/sr.js | 3 +-
l10n/sr.json | 3 +-
l10n/sv.js | 3 +-
l10n/sv.json | 3 +-
l10n/tr.js | 3 +-
l10n/tr.json | 3 +-
l10n/uk.js | 3 +-
l10n/uk.json | 3 +-
lib/Controller/DashboardController.php | 11 ++++
src/App.vue | 20 +++++++
.../Controller/DashboardControllerTest.php | 53 ++++++++++++++++++-
77 files changed, 231 insertions(+), 75 deletions(-)
diff --git a/l10n/be.js b/l10n/be.js
index 785cd27d..393c5d0c 100644
--- a/l10n/be.js
+++ b/l10n/be.js
@@ -426,7 +426,8 @@ OC.L10N.register(
"Remove": "Выдаліць",
"Remove this field": "Выдаліць гэта поле",
"Give the field a name.": "Дайце полю назву.",
- "“{name}” is a built-in field, not an additional one — choose a different name.": "«{name}» — убудаванае поле, а не дадатковае: выберыце іншую назву."
+ "“{name}” is a built-in field, not an additional one — choose a different name.": "«{name}» — убудаванае поле, а не дадатковае: выберыце іншую назву.",
+ "Keepiq {version}": "Keepiq {version}"
},
"nplurals=2; plural=(n != 1);"
)
diff --git a/l10n/be.json b/l10n/be.json
index 28698c07..bce47096 100644
--- a/l10n/be.json
+++ b/l10n/be.json
@@ -425,7 +425,8 @@
"Remove": "Выдаліць",
"Remove this field": "Выдаліць гэта поле",
"Give the field a name.": "Дайце полю назву.",
- "“{name}” is a built-in field, not an additional one — choose a different name.": "«{name}» — убудаванае поле, а не дадатковае: выберыце іншую назву."
+ "“{name}” is a built-in field, not an additional one — choose a different name.": "«{name}» — убудаванае поле, а не дадатковае: выберыце іншую назву.",
+ "Keepiq {version}": "Keepiq {version}"
},
"plurals": null
}
diff --git a/l10n/bg.js b/l10n/bg.js
index 8a36e0be..4aee466c 100644
--- a/l10n/bg.js
+++ b/l10n/bg.js
@@ -426,7 +426,8 @@ OC.L10N.register(
"Remove": "Премахване",
"Remove this field": "Премахване на това поле",
"Give the field a name.": "Дайте име на полето.",
- "“{name}” is a built-in field, not an additional one — choose a different name.": "„{name}“ е вградено поле, а не допълнително — изберете друго име."
+ "“{name}” is a built-in field, not an additional one — choose a different name.": "„{name}“ е вградено поле, а не допълнително — изберете друго име.",
+ "Keepiq {version}": "Keepiq {version}"
},
"nplurals=2; plural=(n != 1);"
)
diff --git a/l10n/bg.json b/l10n/bg.json
index 1b5d2991..201c9238 100644
--- a/l10n/bg.json
+++ b/l10n/bg.json
@@ -425,7 +425,8 @@
"Remove": "Премахване",
"Remove this field": "Премахване на това поле",
"Give the field a name.": "Дайте име на полето.",
- "“{name}” is a built-in field, not an additional one — choose a different name.": "„{name}“ е вградено поле, а не допълнително — изберете друго име."
+ "“{name}” is a built-in field, not an additional one — choose a different name.": "„{name}“ е вградено поле, а не допълнително — изберете друго име.",
+ "Keepiq {version}": "Keepiq {version}"
},
"plurals": null
}
diff --git a/l10n/bs.js b/l10n/bs.js
index ff64e26f..082087ac 100644
--- a/l10n/bs.js
+++ b/l10n/bs.js
@@ -426,7 +426,8 @@ OC.L10N.register(
"Remove": "Ukloni",
"Remove this field": "Ukloni ovo polje",
"Give the field a name.": "Dajte polju naziv.",
- "“{name}” is a built-in field, not an additional one — choose a different name.": "„{name}“ je ugrađeno polje, a ne dodatno — odaberite drugi naziv."
+ "“{name}” is a built-in field, not an additional one — choose a different name.": "„{name}“ je ugrađeno polje, a ne dodatno — odaberite drugi naziv.",
+ "Keepiq {version}": "Keepiq {version}"
},
"nplurals=2; plural=(n != 1);"
)
diff --git a/l10n/bs.json b/l10n/bs.json
index 1f2196a5..a8693300 100644
--- a/l10n/bs.json
+++ b/l10n/bs.json
@@ -425,7 +425,8 @@
"Remove": "Ukloni",
"Remove this field": "Ukloni ovo polje",
"Give the field a name.": "Dajte polju naziv.",
- "“{name}” is a built-in field, not an additional one — choose a different name.": "„{name}“ je ugrađeno polje, a ne dodatno — odaberite drugi naziv."
+ "“{name}” is a built-in field, not an additional one — choose a different name.": "„{name}“ je ugrađeno polje, a ne dodatno — odaberite drugi naziv.",
+ "Keepiq {version}": "Keepiq {version}"
},
"plurals": null
}
diff --git a/l10n/ca.js b/l10n/ca.js
index e3133ef7..7bc790de 100644
--- a/l10n/ca.js
+++ b/l10n/ca.js
@@ -426,7 +426,8 @@ OC.L10N.register(
"Remove": "Elimina",
"Remove this field": "Elimina aquest camp",
"Give the field a name.": "Doneu un nom al camp.",
- "“{name}” is a built-in field, not an additional one — choose a different name.": "«{name}» és un camp integrat, no addicional: trieu un altre nom."
+ "“{name}” is a built-in field, not an additional one — choose a different name.": "«{name}» és un camp integrat, no addicional: trieu un altre nom.",
+ "Keepiq {version}": "Keepiq {version}"
},
"nplurals=2; plural=(n != 1);"
)
diff --git a/l10n/ca.json b/l10n/ca.json
index 49aa8c0d..0bcd1d31 100644
--- a/l10n/ca.json
+++ b/l10n/ca.json
@@ -425,7 +425,8 @@
"Remove": "Elimina",
"Remove this field": "Elimina aquest camp",
"Give the field a name.": "Doneu un nom al camp.",
- "“{name}” is a built-in field, not an additional one — choose a different name.": "«{name}» és un camp integrat, no addicional: trieu un altre nom."
+ "“{name}” is a built-in field, not an additional one — choose a different name.": "«{name}» és un camp integrat, no addicional: trieu un altre nom.",
+ "Keepiq {version}": "Keepiq {version}"
},
"plurals": null
}
diff --git a/l10n/cs.js b/l10n/cs.js
index c13446fb..6b9e9352 100644
--- a/l10n/cs.js
+++ b/l10n/cs.js
@@ -426,7 +426,8 @@ OC.L10N.register(
"Remove": "Odebrat",
"Remove this field": "Odebrat toto pole",
"Give the field a name.": "Pojmenujte pole.",
- "“{name}” is a built-in field, not an additional one — choose a different name.": "„{name}“ je vestavěné pole, nikoli další — zvolte jiný název."
+ "“{name}” is a built-in field, not an additional one — choose a different name.": "„{name}“ je vestavěné pole, nikoli další — zvolte jiný název.",
+ "Keepiq {version}": "Keepiq {version}"
},
"nplurals=2; plural=(n != 1);"
)
diff --git a/l10n/cs.json b/l10n/cs.json
index 01dde50e..8df63263 100644
--- a/l10n/cs.json
+++ b/l10n/cs.json
@@ -425,7 +425,8 @@
"Remove": "Odebrat",
"Remove this field": "Odebrat toto pole",
"Give the field a name.": "Pojmenujte pole.",
- "“{name}” is a built-in field, not an additional one — choose a different name.": "„{name}“ je vestavěné pole, nikoli další — zvolte jiný název."
+ "“{name}” is a built-in field, not an additional one — choose a different name.": "„{name}“ je vestavěné pole, nikoli další — zvolte jiný název.",
+ "Keepiq {version}": "Keepiq {version}"
},
"plurals": null
}
diff --git a/l10n/da.js b/l10n/da.js
index 0f0c23f5..e20915af 100644
--- a/l10n/da.js
+++ b/l10n/da.js
@@ -426,7 +426,8 @@ OC.L10N.register(
"Remove": "Fjern",
"Remove this field": "Fjern dette felt",
"Give the field a name.": "Giv feltet et navn.",
- "“{name}” is a built-in field, not an additional one — choose a different name.": "“{name}” er et indbygget felt, ikke et yderligere — vælg et andet navn."
+ "“{name}” is a built-in field, not an additional one — choose a different name.": "“{name}” er et indbygget felt, ikke et yderligere — vælg et andet navn.",
+ "Keepiq {version}": "Keepiq {version}"
},
"nplurals=2; plural=(n != 1);"
)
diff --git a/l10n/da.json b/l10n/da.json
index f239ffde..af72f96c 100644
--- a/l10n/da.json
+++ b/l10n/da.json
@@ -425,7 +425,8 @@
"Remove": "Fjern",
"Remove this field": "Fjern dette felt",
"Give the field a name.": "Giv feltet et navn.",
- "“{name}” is a built-in field, not an additional one — choose a different name.": "“{name}” er et indbygget felt, ikke et yderligere — vælg et andet navn."
+ "“{name}” is a built-in field, not an additional one — choose a different name.": "“{name}” er et indbygget felt, ikke et yderligere — vælg et andet navn.",
+ "Keepiq {version}": "Keepiq {version}"
},
"plurals": null
}
diff --git a/l10n/de.js b/l10n/de.js
index 3cc144da..c36e68a3 100644
--- a/l10n/de.js
+++ b/l10n/de.js
@@ -426,7 +426,8 @@ OC.L10N.register(
"Remove": "Entfernen",
"Remove this field": "Dieses Feld entfernen",
"Give the field a name.": "Geben Sie dem Feld einen Namen.",
- "“{name}” is a built-in field, not an additional one — choose a different name.": "„{name}“ ist ein integriertes Feld, kein zusätzliches — wählen Sie einen anderen Namen."
+ "“{name}” is a built-in field, not an additional one — choose a different name.": "„{name}“ ist ein integriertes Feld, kein zusätzliches — wählen Sie einen anderen Namen.",
+ "Keepiq {version}": "Keepiq {version}"
},
"nplurals=2; plural=(n != 1);"
)
diff --git a/l10n/de.json b/l10n/de.json
index 2da50463..7560be91 100644
--- a/l10n/de.json
+++ b/l10n/de.json
@@ -425,7 +425,8 @@
"Remove": "Entfernen",
"Remove this field": "Dieses Feld entfernen",
"Give the field a name.": "Geben Sie dem Feld einen Namen.",
- "“{name}” is a built-in field, not an additional one — choose a different name.": "„{name}“ ist ein integriertes Feld, kein zusätzliches — wählen Sie einen anderen Namen."
+ "“{name}” is a built-in field, not an additional one — choose a different name.": "„{name}“ ist ein integriertes Feld, kein zusätzliches — wählen Sie einen anderen Namen.",
+ "Keepiq {version}": "Keepiq {version}"
},
"plurals": null
}
diff --git a/l10n/el.js b/l10n/el.js
index ccdb0a24..7acb2be1 100644
--- a/l10n/el.js
+++ b/l10n/el.js
@@ -426,7 +426,8 @@ OC.L10N.register(
"Remove": "Αφαίρεση",
"Remove this field": "Αφαίρεση αυτού του πεδίου",
"Give the field a name.": "Δώστε όνομα στο πεδίο.",
- "“{name}” is a built-in field, not an additional one — choose a different name.": "Το «{name}» είναι ενσωματωμένο πεδίο, όχι πρόσθετο — επιλέξτε άλλο όνομα."
+ "“{name}” is a built-in field, not an additional one — choose a different name.": "Το «{name}» είναι ενσωματωμένο πεδίο, όχι πρόσθετο — επιλέξτε άλλο όνομα.",
+ "Keepiq {version}": "Keepiq {version}"
},
"nplurals=2; plural=(n != 1);"
)
diff --git a/l10n/el.json b/l10n/el.json
index 3158ac81..89509d19 100644
--- a/l10n/el.json
+++ b/l10n/el.json
@@ -425,7 +425,8 @@
"Remove": "Αφαίρεση",
"Remove this field": "Αφαίρεση αυτού του πεδίου",
"Give the field a name.": "Δώστε όνομα στο πεδίο.",
- "“{name}” is a built-in field, not an additional one — choose a different name.": "Το «{name}» είναι ενσωματωμένο πεδίο, όχι πρόσθετο — επιλέξτε άλλο όνομα."
+ "“{name}” is a built-in field, not an additional one — choose a different name.": "Το «{name}» είναι ενσωματωμένο πεδίο, όχι πρόσθετο — επιλέξτε άλλο όνομα.",
+ "Keepiq {version}": "Keepiq {version}"
},
"plurals": null
}
diff --git a/l10n/en.js b/l10n/en.js
index 8480c7d3..72e74b35 100644
--- a/l10n/en.js
+++ b/l10n/en.js
@@ -995,7 +995,8 @@ OC.L10N.register(
"No additional fields yet.": "No additional fields yet.",
"Remove": "Remove",
"Remove this field": "Remove this field",
- "“{name}” is a built-in field, not an additional one — choose a different name.": "“{name}” is a built-in field, not an additional one — choose a different name."
+ "“{name}” is a built-in field, not an additional one — choose a different name.": "“{name}” is a built-in field, not an additional one — choose a different name.",
+ "Keepiq {version}": "Keepiq {version}"
},
"nplurals=2; plural=(n != 1);"
)
diff --git a/l10n/en.json b/l10n/en.json
index 9ed04297..5852d24d 100644
--- a/l10n/en.json
+++ b/l10n/en.json
@@ -994,7 +994,8 @@
"No additional fields yet.": "No additional fields yet.",
"Remove": "Remove",
"Remove this field": "Remove this field",
- "“{name}” is a built-in field, not an additional one — choose a different name.": "“{name}” is a built-in field, not an additional one — choose a different name."
+ "“{name}” is a built-in field, not an additional one — choose a different name.": "“{name}” is a built-in field, not an additional one — choose a different name.",
+ "Keepiq {version}": "Keepiq {version}"
},
"plurals": "",
"pluralForm": "nplurals=2; plural=(n != 1);"
diff --git a/l10n/es.js b/l10n/es.js
index 182247ff..004f7f4a 100644
--- a/l10n/es.js
+++ b/l10n/es.js
@@ -426,7 +426,8 @@ OC.L10N.register(
"Remove": "Eliminar",
"Remove this field": "Eliminar este campo",
"Give the field a name.": "Dale un nombre al campo.",
- "“{name}” is a built-in field, not an additional one — choose a different name.": "«{name}» es un campo integrado, no adicional: elige otro nombre."
+ "“{name}” is a built-in field, not an additional one — choose a different name.": "«{name}» es un campo integrado, no adicional: elige otro nombre.",
+ "Keepiq {version}": "Keepiq {version}"
},
"nplurals=2; plural=(n != 1);"
)
diff --git a/l10n/es.json b/l10n/es.json
index cc9f76a4..0d241982 100644
--- a/l10n/es.json
+++ b/l10n/es.json
@@ -425,7 +425,8 @@
"Remove": "Eliminar",
"Remove this field": "Eliminar este campo",
"Give the field a name.": "Dale un nombre al campo.",
- "“{name}” is a built-in field, not an additional one — choose a different name.": "«{name}» es un campo integrado, no adicional: elige otro nombre."
+ "“{name}” is a built-in field, not an additional one — choose a different name.": "«{name}» es un campo integrado, no adicional: elige otro nombre.",
+ "Keepiq {version}": "Keepiq {version}"
},
"plurals": null
}
diff --git a/l10n/et.js b/l10n/et.js
index e73e93f4..a1e36c16 100644
--- a/l10n/et.js
+++ b/l10n/et.js
@@ -426,7 +426,8 @@ OC.L10N.register(
"Remove": "Eemalda",
"Remove this field": "Eemalda see väli",
"Give the field a name.": "Anna väljale nimi.",
- "“{name}” is a built-in field, not an additional one — choose a different name.": "„{name}“ on sisseehitatud väli, mitte lisaväli — vali teine nimi."
+ "“{name}” is a built-in field, not an additional one — choose a different name.": "„{name}“ on sisseehitatud väli, mitte lisaväli — vali teine nimi.",
+ "Keepiq {version}": "Keepiq {version}"
},
"nplurals=2; plural=(n != 1);"
)
diff --git a/l10n/et.json b/l10n/et.json
index 65f748ae..f5d206c7 100644
--- a/l10n/et.json
+++ b/l10n/et.json
@@ -425,7 +425,8 @@
"Remove": "Eemalda",
"Remove this field": "Eemalda see väli",
"Give the field a name.": "Anna väljale nimi.",
- "“{name}” is a built-in field, not an additional one — choose a different name.": "„{name}“ on sisseehitatud väli, mitte lisaväli — vali teine nimi."
+ "“{name}” is a built-in field, not an additional one — choose a different name.": "„{name}“ on sisseehitatud väli, mitte lisaväli — vali teine nimi.",
+ "Keepiq {version}": "Keepiq {version}"
},
"plurals": null
}
diff --git a/l10n/fi.js b/l10n/fi.js
index 6675bd2b..e0d61ae5 100644
--- a/l10n/fi.js
+++ b/l10n/fi.js
@@ -426,7 +426,8 @@ OC.L10N.register(
"Remove": "Poista",
"Remove this field": "Poista tämä kenttä",
"Give the field a name.": "Anna kentälle nimi.",
- "“{name}” is a built-in field, not an additional one — choose a different name.": "”{name}” on sisäänrakennettu kenttä, ei lisäkenttä — valitse toinen nimi."
+ "“{name}” is a built-in field, not an additional one — choose a different name.": "”{name}” on sisäänrakennettu kenttä, ei lisäkenttä — valitse toinen nimi.",
+ "Keepiq {version}": "Keepiq {version}"
},
"nplurals=2; plural=(n != 1);"
)
diff --git a/l10n/fi.json b/l10n/fi.json
index f4959196..82b694ea 100644
--- a/l10n/fi.json
+++ b/l10n/fi.json
@@ -425,7 +425,8 @@
"Remove": "Poista",
"Remove this field": "Poista tämä kenttä",
"Give the field a name.": "Anna kentälle nimi.",
- "“{name}” is a built-in field, not an additional one — choose a different name.": "”{name}” on sisäänrakennettu kenttä, ei lisäkenttä — valitse toinen nimi."
+ "“{name}” is a built-in field, not an additional one — choose a different name.": "”{name}” on sisäänrakennettu kenttä, ei lisäkenttä — valitse toinen nimi.",
+ "Keepiq {version}": "Keepiq {version}"
},
"plurals": null
}
diff --git a/l10n/fr.js b/l10n/fr.js
index 75d1d3dd..69616051 100644
--- a/l10n/fr.js
+++ b/l10n/fr.js
@@ -426,7 +426,8 @@ OC.L10N.register(
"Remove": "Supprimer",
"Remove this field": "Supprimer ce champ",
"Give the field a name.": "Donnez un nom au champ.",
- "“{name}” is a built-in field, not an additional one — choose a different name.": "« {name} » est un champ intégré, pas un champ supplémentaire — choisissez un autre nom."
+ "“{name}” is a built-in field, not an additional one — choose a different name.": "« {name} » est un champ intégré, pas un champ supplémentaire — choisissez un autre nom.",
+ "Keepiq {version}": "Keepiq {version}"
},
"nplurals=2; plural=(n != 1);"
)
diff --git a/l10n/fr.json b/l10n/fr.json
index a032d0dc..80b0a395 100644
--- a/l10n/fr.json
+++ b/l10n/fr.json
@@ -425,7 +425,8 @@
"Remove": "Supprimer",
"Remove this field": "Supprimer ce champ",
"Give the field a name.": "Donnez un nom au champ.",
- "“{name}” is a built-in field, not an additional one — choose a different name.": "« {name} » est un champ intégré, pas un champ supplémentaire — choisissez un autre nom."
+ "“{name}” is a built-in field, not an additional one — choose a different name.": "« {name} » est un champ intégré, pas un champ supplémentaire — choisissez un autre nom.",
+ "Keepiq {version}": "Keepiq {version}"
},
"plurals": null
}
diff --git a/l10n/ga.js b/l10n/ga.js
index 2f7506a5..e61d9e5a 100644
--- a/l10n/ga.js
+++ b/l10n/ga.js
@@ -426,7 +426,8 @@ OC.L10N.register(
"Remove": "Bain",
"Remove this field": "Bain an réimse seo",
"Give the field a name.": "Tabhair ainm ar an réimse.",
- "“{name}” is a built-in field, not an additional one — choose a different name.": "Is réimse ionsuite é “{name}”, nach ceann breise — roghnaigh ainm eile."
+ "“{name}” is a built-in field, not an additional one — choose a different name.": "Is réimse ionsuite é “{name}”, nach ceann breise — roghnaigh ainm eile.",
+ "Keepiq {version}": "Keepiq {version}"
},
"nplurals=2; plural=(n != 1);"
)
diff --git a/l10n/ga.json b/l10n/ga.json
index 20c91cf7..2cb33649 100644
--- a/l10n/ga.json
+++ b/l10n/ga.json
@@ -425,7 +425,8 @@
"Remove": "Bain",
"Remove this field": "Bain an réimse seo",
"Give the field a name.": "Tabhair ainm ar an réimse.",
- "“{name}” is a built-in field, not an additional one — choose a different name.": "Is réimse ionsuite é “{name}”, nach ceann breise — roghnaigh ainm eile."
+ "“{name}” is a built-in field, not an additional one — choose a different name.": "Is réimse ionsuite é “{name}”, nach ceann breise — roghnaigh ainm eile.",
+ "Keepiq {version}": "Keepiq {version}"
},
"plurals": null
}
diff --git a/l10n/hr.js b/l10n/hr.js
index b587859b..f655c202 100644
--- a/l10n/hr.js
+++ b/l10n/hr.js
@@ -426,7 +426,8 @@ OC.L10N.register(
"Remove": "Ukloni",
"Remove this field": "Ukloni ovo polje",
"Give the field a name.": "Dajte polju naziv.",
- "“{name}” is a built-in field, not an additional one — choose a different name.": "„{name}“ je ugrađeno polje, a ne dodatno — odaberite drugi naziv."
+ "“{name}” is a built-in field, not an additional one — choose a different name.": "„{name}“ je ugrađeno polje, a ne dodatno — odaberite drugi naziv.",
+ "Keepiq {version}": "Keepiq {version}"
},
"nplurals=2; plural=(n != 1);"
)
diff --git a/l10n/hr.json b/l10n/hr.json
index 951d8424..aa6b173f 100644
--- a/l10n/hr.json
+++ b/l10n/hr.json
@@ -425,7 +425,8 @@
"Remove": "Ukloni",
"Remove this field": "Ukloni ovo polje",
"Give the field a name.": "Dajte polju naziv.",
- "“{name}” is a built-in field, not an additional one — choose a different name.": "„{name}“ je ugrađeno polje, a ne dodatno — odaberite drugi naziv."
+ "“{name}” is a built-in field, not an additional one — choose a different name.": "„{name}“ je ugrađeno polje, a ne dodatno — odaberite drugi naziv.",
+ "Keepiq {version}": "Keepiq {version}"
},
"plurals": null
}
diff --git a/l10n/hu.js b/l10n/hu.js
index 5a9fcb9b..56d39f71 100644
--- a/l10n/hu.js
+++ b/l10n/hu.js
@@ -426,7 +426,8 @@ OC.L10N.register(
"Remove": "Eltávolítás",
"Remove this field": "Mező eltávolítása",
"Give the field a name.": "Adjon nevet a mezőnek.",
- "“{name}” is a built-in field, not an additional one — choose a different name.": "A(z) „{name}” beépített mező, nem további — válasszon másik nevet."
+ "“{name}” is a built-in field, not an additional one — choose a different name.": "A(z) „{name}” beépített mező, nem további — válasszon másik nevet.",
+ "Keepiq {version}": "Keepiq {version}"
},
"nplurals=2; plural=(n != 1);"
)
diff --git a/l10n/hu.json b/l10n/hu.json
index 593df161..d2b9f6a9 100644
--- a/l10n/hu.json
+++ b/l10n/hu.json
@@ -425,7 +425,8 @@
"Remove": "Eltávolítás",
"Remove this field": "Mező eltávolítása",
"Give the field a name.": "Adjon nevet a mezőnek.",
- "“{name}” is a built-in field, not an additional one — choose a different name.": "A(z) „{name}” beépített mező, nem további — válasszon másik nevet."
+ "“{name}” is a built-in field, not an additional one — choose a different name.": "A(z) „{name}” beépített mező, nem további — válasszon másik nevet.",
+ "Keepiq {version}": "Keepiq {version}"
},
"plurals": null
}
diff --git a/l10n/is.js b/l10n/is.js
index 77b9040e..bc9186c4 100644
--- a/l10n/is.js
+++ b/l10n/is.js
@@ -426,7 +426,8 @@ OC.L10N.register(
"Remove": "Fjarlægja",
"Remove this field": "Fjarlægja þetta svið",
"Give the field a name.": "Gefðu sviðinu nafn.",
- "“{name}” is a built-in field, not an additional one — choose a different name.": "„{name}“ er innbyggt svið, ekki viðbótarsvið — veldu annað nafn."
+ "“{name}” is a built-in field, not an additional one — choose a different name.": "„{name}“ er innbyggt svið, ekki viðbótarsvið — veldu annað nafn.",
+ "Keepiq {version}": "Keepiq {version}"
},
"nplurals=2; plural=(n != 1);"
)
diff --git a/l10n/is.json b/l10n/is.json
index bed193de..14026669 100644
--- a/l10n/is.json
+++ b/l10n/is.json
@@ -425,7 +425,8 @@
"Remove": "Fjarlægja",
"Remove this field": "Fjarlægja þetta svið",
"Give the field a name.": "Gefðu sviðinu nafn.",
- "“{name}” is a built-in field, not an additional one — choose a different name.": "„{name}“ er innbyggt svið, ekki viðbótarsvið — veldu annað nafn."
+ "“{name}” is a built-in field, not an additional one — choose a different name.": "„{name}“ er innbyggt svið, ekki viðbótarsvið — veldu annað nafn.",
+ "Keepiq {version}": "Keepiq {version}"
},
"plurals": null
}
diff --git a/l10n/it.js b/l10n/it.js
index 6cc9f240..1475f614 100644
--- a/l10n/it.js
+++ b/l10n/it.js
@@ -426,7 +426,8 @@ OC.L10N.register(
"Remove": "Rimuovi",
"Remove this field": "Rimuovi questo campo",
"Give the field a name.": "Dai un nome al campo.",
- "“{name}” is a built-in field, not an additional one — choose a different name.": "«{name}» è un campo integrato, non aggiuntivo: scegli un altro nome."
+ "“{name}” is a built-in field, not an additional one — choose a different name.": "«{name}» è un campo integrato, non aggiuntivo: scegli un altro nome.",
+ "Keepiq {version}": "Keepiq {version}"
},
"nplurals=2; plural=(n != 1);"
)
diff --git a/l10n/it.json b/l10n/it.json
index 74195bc2..6b53a509 100644
--- a/l10n/it.json
+++ b/l10n/it.json
@@ -425,7 +425,8 @@
"Remove": "Rimuovi",
"Remove this field": "Rimuovi questo campo",
"Give the field a name.": "Dai un nome al campo.",
- "“{name}” is a built-in field, not an additional one — choose a different name.": "«{name}» è un campo integrato, non aggiuntivo: scegli un altro nome."
+ "“{name}” is a built-in field, not an additional one — choose a different name.": "«{name}» è un campo integrato, non aggiuntivo: scegli un altro nome.",
+ "Keepiq {version}": "Keepiq {version}"
},
"plurals": null
}
diff --git a/l10n/lb.js b/l10n/lb.js
index 6ab2df86..1dec0f85 100644
--- a/l10n/lb.js
+++ b/l10n/lb.js
@@ -426,7 +426,8 @@ OC.L10N.register(
"Remove": "Ewechhuelen",
"Remove this field": "Dëst Feld ewechhuelen",
"Give the field a name.": "Gitt dem Feld en Numm.",
- "“{name}” is a built-in field, not an additional one — choose a different name.": "„{name}“ ass en integréiert Feld, kee zousätzlecht — wielt en anere Numm."
+ "“{name}” is a built-in field, not an additional one — choose a different name.": "„{name}“ ass en integréiert Feld, kee zousätzlecht — wielt en anere Numm.",
+ "Keepiq {version}": "Keepiq {version}"
},
"nplurals=2; plural=(n != 1);"
)
diff --git a/l10n/lb.json b/l10n/lb.json
index 578eef2a..d8478031 100644
--- a/l10n/lb.json
+++ b/l10n/lb.json
@@ -425,7 +425,8 @@
"Remove": "Ewechhuelen",
"Remove this field": "Dëst Feld ewechhuelen",
"Give the field a name.": "Gitt dem Feld en Numm.",
- "“{name}” is a built-in field, not an additional one — choose a different name.": "„{name}“ ass en integréiert Feld, kee zousätzlecht — wielt en anere Numm."
+ "“{name}” is a built-in field, not an additional one — choose a different name.": "„{name}“ ass en integréiert Feld, kee zousätzlecht — wielt en anere Numm.",
+ "Keepiq {version}": "Keepiq {version}"
},
"plurals": null
}
diff --git a/l10n/lt.js b/l10n/lt.js
index c8ed9272..ce08dcd3 100644
--- a/l10n/lt.js
+++ b/l10n/lt.js
@@ -426,7 +426,8 @@ OC.L10N.register(
"Remove": "Pašalinti",
"Remove this field": "Pašalinti šį lauką",
"Give the field a name.": "Suteikite laukui pavadinimą.",
- "“{name}” is a built-in field, not an additional one — choose a different name.": "„{name}“ yra integruotas laukas, o ne papildomas — pasirinkite kitą pavadinimą."
+ "“{name}” is a built-in field, not an additional one — choose a different name.": "„{name}“ yra integruotas laukas, o ne papildomas — pasirinkite kitą pavadinimą.",
+ "Keepiq {version}": "Keepiq {version}"
},
"nplurals=2; plural=(n != 1);"
)
diff --git a/l10n/lt.json b/l10n/lt.json
index b054f93f..4a198eb3 100644
--- a/l10n/lt.json
+++ b/l10n/lt.json
@@ -425,7 +425,8 @@
"Remove": "Pašalinti",
"Remove this field": "Pašalinti šį lauką",
"Give the field a name.": "Suteikite laukui pavadinimą.",
- "“{name}” is a built-in field, not an additional one — choose a different name.": "„{name}“ yra integruotas laukas, o ne papildomas — pasirinkite kitą pavadinimą."
+ "“{name}” is a built-in field, not an additional one — choose a different name.": "„{name}“ yra integruotas laukas, o ne papildomas — pasirinkite kitą pavadinimą.",
+ "Keepiq {version}": "Keepiq {version}"
},
"plurals": null
}
diff --git a/l10n/lv.js b/l10n/lv.js
index 95b980d6..8b81dff2 100644
--- a/l10n/lv.js
+++ b/l10n/lv.js
@@ -426,7 +426,8 @@ OC.L10N.register(
"Remove": "Noņemt",
"Remove this field": "Noņemt šo lauku",
"Give the field a name.": "Piešķir laukam nosaukumu.",
- "“{name}” is a built-in field, not an additional one — choose a different name.": "“{name}” ir iebūvēts lauks, nevis papildu — izvēlies citu nosaukumu."
+ "“{name}” is a built-in field, not an additional one — choose a different name.": "“{name}” ir iebūvēts lauks, nevis papildu — izvēlies citu nosaukumu.",
+ "Keepiq {version}": "Keepiq {version}"
},
"nplurals=2; plural=(n != 1);"
)
diff --git a/l10n/lv.json b/l10n/lv.json
index 24ba018b..2bab5a60 100644
--- a/l10n/lv.json
+++ b/l10n/lv.json
@@ -425,7 +425,8 @@
"Remove": "Noņemt",
"Remove this field": "Noņemt šo lauku",
"Give the field a name.": "Piešķir laukam nosaukumu.",
- "“{name}” is a built-in field, not an additional one — choose a different name.": "“{name}” ir iebūvēts lauks, nevis papildu — izvēlies citu nosaukumu."
+ "“{name}” is a built-in field, not an additional one — choose a different name.": "“{name}” ir iebūvēts lauks, nevis papildu — izvēlies citu nosaukumu.",
+ "Keepiq {version}": "Keepiq {version}"
},
"plurals": null
}
diff --git a/l10n/mk.js b/l10n/mk.js
index 8058f4cf..cb0ffabe 100644
--- a/l10n/mk.js
+++ b/l10n/mk.js
@@ -426,7 +426,8 @@ OC.L10N.register(
"Remove": "Отстрани",
"Remove this field": "Отстрани го ова поле",
"Give the field a name.": "Дајте му име на полето.",
- "“{name}” is a built-in field, not an additional one — choose a different name.": "„{name}“ е вградено поле, а не дополнително — одберете друго име."
+ "“{name}” is a built-in field, not an additional one — choose a different name.": "„{name}“ е вградено поле, а не дополнително — одберете друго име.",
+ "Keepiq {version}": "Keepiq {version}"
},
"nplurals=2; plural=(n != 1);"
)
diff --git a/l10n/mk.json b/l10n/mk.json
index bd3bbbd2..8dc73329 100644
--- a/l10n/mk.json
+++ b/l10n/mk.json
@@ -425,7 +425,8 @@
"Remove": "Отстрани",
"Remove this field": "Отстрани го ова поле",
"Give the field a name.": "Дајте му име на полето.",
- "“{name}” is a built-in field, not an additional one — choose a different name.": "„{name}“ е вградено поле, а не дополнително — одберете друго име."
+ "“{name}” is a built-in field, not an additional one — choose a different name.": "„{name}“ е вградено поле, а не дополнително — одберете друго име.",
+ "Keepiq {version}": "Keepiq {version}"
},
"plurals": null
}
diff --git a/l10n/mt.js b/l10n/mt.js
index 579bb57f..72daa910 100644
--- a/l10n/mt.js
+++ b/l10n/mt.js
@@ -426,7 +426,8 @@ OC.L10N.register(
"Remove": "Neħħi",
"Remove this field": "Neħħi dan il-qasam",
"Give the field a name.": "Agħti isem lill-qasam.",
- "“{name}” is a built-in field, not an additional one — choose a different name.": "“{name}” huwa qasam integrat, mhux addizzjonali — agħżel isem oħra."
+ "“{name}” is a built-in field, not an additional one — choose a different name.": "“{name}” huwa qasam integrat, mhux addizzjonali — agħżel isem oħra.",
+ "Keepiq {version}": "Keepiq {version}"
},
"nplurals=2; plural=(n != 1);"
)
diff --git a/l10n/mt.json b/l10n/mt.json
index d175da78..87a17c70 100644
--- a/l10n/mt.json
+++ b/l10n/mt.json
@@ -425,7 +425,8 @@
"Remove": "Neħħi",
"Remove this field": "Neħħi dan il-qasam",
"Give the field a name.": "Agħti isem lill-qasam.",
- "“{name}” is a built-in field, not an additional one — choose a different name.": "“{name}” huwa qasam integrat, mhux addizzjonali — agħżel isem oħra."
+ "“{name}” is a built-in field, not an additional one — choose a different name.": "“{name}” huwa qasam integrat, mhux addizzjonali — agħżel isem oħra.",
+ "Keepiq {version}": "Keepiq {version}"
},
"plurals": null
}
diff --git a/l10n/nb.js b/l10n/nb.js
index d96292ce..ab4bfedd 100644
--- a/l10n/nb.js
+++ b/l10n/nb.js
@@ -426,7 +426,8 @@ OC.L10N.register(
"Remove": "Fjern",
"Remove this field": "Fjern dette feltet",
"Give the field a name.": "Gi feltet et navn.",
- "“{name}” is a built-in field, not an additional one — choose a different name.": "«{name}» er et innebygd felt, ikke et tilleggsfelt — velg et annet navn."
+ "“{name}” is a built-in field, not an additional one — choose a different name.": "«{name}» er et innebygd felt, ikke et tilleggsfelt — velg et annet navn.",
+ "Keepiq {version}": "Keepiq {version}"
},
"nplurals=2; plural=(n != 1);"
)
diff --git a/l10n/nb.json b/l10n/nb.json
index bf498366..38f8d0d4 100644
--- a/l10n/nb.json
+++ b/l10n/nb.json
@@ -425,7 +425,8 @@
"Remove": "Fjern",
"Remove this field": "Fjern dette feltet",
"Give the field a name.": "Gi feltet et navn.",
- "“{name}” is a built-in field, not an additional one — choose a different name.": "«{name}» er et innebygd felt, ikke et tilleggsfelt — velg et annet navn."
+ "“{name}” is a built-in field, not an additional one — choose a different name.": "«{name}» er et innebygd felt, ikke et tilleggsfelt — velg et annet navn.",
+ "Keepiq {version}": "Keepiq {version}"
},
"plurals": null
}
diff --git a/l10n/nl.js b/l10n/nl.js
index 064e4d55..ce9bb212 100644
--- a/l10n/nl.js
+++ b/l10n/nl.js
@@ -585,7 +585,8 @@ OC.L10N.register(
"Remove": "Verwijderen",
"Remove this field": "Dit veld verwijderen",
"Give the field a name.": "Geef het veld een naam.",
- "“{name}” is a built-in field, not an additional one — choose a different name.": "“{name}” is een ingebouwd veld, geen extra veld — kies een andere naam."
+ "“{name}” is a built-in field, not an additional one — choose a different name.": "“{name}” is een ingebouwd veld, geen extra veld — kies een andere naam.",
+ "Keepiq {version}": "Keepiq {version}"
},
"nplurals=2; plural=(n != 1);"
)
diff --git a/l10n/nl.json b/l10n/nl.json
index a7cc80b4..a74d5156 100644
--- a/l10n/nl.json
+++ b/l10n/nl.json
@@ -584,7 +584,8 @@
"Remove": "Verwijderen",
"Remove this field": "Dit veld verwijderen",
"Give the field a name.": "Geef het veld een naam.",
- "“{name}” is a built-in field, not an additional one — choose a different name.": "“{name}” is een ingebouwd veld, geen extra veld — kies een andere naam."
+ "“{name}” is a built-in field, not an additional one — choose a different name.": "“{name}” is een ingebouwd veld, geen extra veld — kies een andere naam.",
+ "Keepiq {version}": "Keepiq {version}"
},
"plurals": null,
"pluralForm": "nplurals=2; plural=(n != 1);"
diff --git a/l10n/pl.js b/l10n/pl.js
index 3d188e80..eb286d6c 100644
--- a/l10n/pl.js
+++ b/l10n/pl.js
@@ -426,7 +426,8 @@ OC.L10N.register(
"Remove": "Usuń",
"Remove this field": "Usuń to pole",
"Give the field a name.": "Nadaj polu nazwę.",
- "“{name}” is a built-in field, not an additional one — choose a different name.": "„{name}” to pole wbudowane, a nie dodatkowe — wybierz inną nazwę."
+ "“{name}” is a built-in field, not an additional one — choose a different name.": "„{name}” to pole wbudowane, a nie dodatkowe — wybierz inną nazwę.",
+ "Keepiq {version}": "Keepiq {version}"
},
"nplurals=2; plural=(n != 1);"
)
diff --git a/l10n/pl.json b/l10n/pl.json
index fc9120b0..c5b5f2c0 100644
--- a/l10n/pl.json
+++ b/l10n/pl.json
@@ -425,7 +425,8 @@
"Remove": "Usuń",
"Remove this field": "Usuń to pole",
"Give the field a name.": "Nadaj polu nazwę.",
- "“{name}” is a built-in field, not an additional one — choose a different name.": "„{name}” to pole wbudowane, a nie dodatkowe — wybierz inną nazwę."
+ "“{name}” is a built-in field, not an additional one — choose a different name.": "„{name}” to pole wbudowane, a nie dodatkowe — wybierz inną nazwę.",
+ "Keepiq {version}": "Keepiq {version}"
},
"plurals": null
}
diff --git a/l10n/pt.js b/l10n/pt.js
index 2b92274b..3279beeb 100644
--- a/l10n/pt.js
+++ b/l10n/pt.js
@@ -426,7 +426,8 @@ OC.L10N.register(
"Remove": "Remover",
"Remove this field": "Remover este campo",
"Give the field a name.": "Dê um nome ao campo.",
- "“{name}” is a built-in field, not an additional one — choose a different name.": "“{name}” é um campo integrado, não adicional — escolha outro nome."
+ "“{name}” is a built-in field, not an additional one — choose a different name.": "“{name}” é um campo integrado, não adicional — escolha outro nome.",
+ "Keepiq {version}": "Keepiq {version}"
},
"nplurals=2; plural=(n != 1);"
)
diff --git a/l10n/pt.json b/l10n/pt.json
index 5fd57d45..2e00a557 100644
--- a/l10n/pt.json
+++ b/l10n/pt.json
@@ -425,7 +425,8 @@
"Remove": "Remover",
"Remove this field": "Remover este campo",
"Give the field a name.": "Dê um nome ao campo.",
- "“{name}” is a built-in field, not an additional one — choose a different name.": "“{name}” é um campo integrado, não adicional — escolha outro nome."
+ "“{name}” is a built-in field, not an additional one — choose a different name.": "“{name}” é um campo integrado, não adicional — escolha outro nome.",
+ "Keepiq {version}": "Keepiq {version}"
},
"plurals": null
}
diff --git a/l10n/rm.js b/l10n/rm.js
index 0ea614d6..929de22e 100644
--- a/l10n/rm.js
+++ b/l10n/rm.js
@@ -426,7 +426,8 @@ OC.L10N.register(
"Remove": "Allontanar",
"Remove this field": "Allontanar quest champ",
"Give the field a name.": "Dai in num al champ.",
- "“{name}” is a built-in field, not an additional one — choose a different name.": "«{name}» è in champ integrà, betg in supplementar — tscherna in auter num."
+ "“{name}” is a built-in field, not an additional one — choose a different name.": "«{name}» è in champ integrà, betg in supplementar — tscherna in auter num.",
+ "Keepiq {version}": "Keepiq {version}"
},
"nplurals=2; plural=(n != 1);"
)
diff --git a/l10n/rm.json b/l10n/rm.json
index 7b82b976..b019af8b 100644
--- a/l10n/rm.json
+++ b/l10n/rm.json
@@ -425,7 +425,8 @@
"Remove": "Allontanar",
"Remove this field": "Allontanar quest champ",
"Give the field a name.": "Dai in num al champ.",
- "“{name}” is a built-in field, not an additional one — choose a different name.": "«{name}» è in champ integrà, betg in supplementar — tscherna in auter num."
+ "“{name}” is a built-in field, not an additional one — choose a different name.": "«{name}» è in champ integrà, betg in supplementar — tscherna in auter num.",
+ "Keepiq {version}": "Keepiq {version}"
},
"plurals": null
}
diff --git a/l10n/ro.js b/l10n/ro.js
index 36ea6072..35f96149 100644
--- a/l10n/ro.js
+++ b/l10n/ro.js
@@ -426,7 +426,8 @@ OC.L10N.register(
"Remove": "Eliminați",
"Remove this field": "Eliminați acest câmp",
"Give the field a name.": "Dați un nume câmpului.",
- "“{name}” is a built-in field, not an additional one — choose a different name.": "„{name}” este un câmp integrat, nu suplimentar — alegeți alt nume."
+ "“{name}” is a built-in field, not an additional one — choose a different name.": "„{name}” este un câmp integrat, nu suplimentar — alegeți alt nume.",
+ "Keepiq {version}": "Keepiq {version}"
},
"nplurals=2; plural=(n != 1);"
)
diff --git a/l10n/ro.json b/l10n/ro.json
index e732b95a..9d3d4790 100644
--- a/l10n/ro.json
+++ b/l10n/ro.json
@@ -425,7 +425,8 @@
"Remove": "Eliminați",
"Remove this field": "Eliminați acest câmp",
"Give the field a name.": "Dați un nume câmpului.",
- "“{name}” is a built-in field, not an additional one — choose a different name.": "„{name}” este un câmp integrat, nu suplimentar — alegeți alt nume."
+ "“{name}” is a built-in field, not an additional one — choose a different name.": "„{name}” este un câmp integrat, nu suplimentar — alegeți alt nume.",
+ "Keepiq {version}": "Keepiq {version}"
},
"plurals": null
}
diff --git a/l10n/ru.js b/l10n/ru.js
index 3960e4b3..5032c70b 100644
--- a/l10n/ru.js
+++ b/l10n/ru.js
@@ -426,7 +426,8 @@ OC.L10N.register(
"Remove": "Удалить",
"Remove this field": "Удалить это поле",
"Give the field a name.": "Дайте полю имя.",
- "“{name}” is a built-in field, not an additional one — choose a different name.": "«{name}» — встроенное поле, а не дополнительное: выберите другое имя."
+ "“{name}” is a built-in field, not an additional one — choose a different name.": "«{name}» — встроенное поле, а не дополнительное: выберите другое имя.",
+ "Keepiq {version}": "Keepiq {version}"
},
"nplurals=2; plural=(n != 1);"
)
diff --git a/l10n/ru.json b/l10n/ru.json
index 40510269..0fefbf10 100644
--- a/l10n/ru.json
+++ b/l10n/ru.json
@@ -425,7 +425,8 @@
"Remove": "Удалить",
"Remove this field": "Удалить это поле",
"Give the field a name.": "Дайте полю имя.",
- "“{name}” is a built-in field, not an additional one — choose a different name.": "«{name}» — встроенное поле, а не дополнительное: выберите другое имя."
+ "“{name}” is a built-in field, not an additional one — choose a different name.": "«{name}» — встроенное поле, а не дополнительное: выберите другое имя.",
+ "Keepiq {version}": "Keepiq {version}"
},
"plurals": null
}
diff --git a/l10n/sk.js b/l10n/sk.js
index 54dd1cf5..1d6f1422 100644
--- a/l10n/sk.js
+++ b/l10n/sk.js
@@ -426,7 +426,8 @@ OC.L10N.register(
"Remove": "Odobrať",
"Remove this field": "Odobrať toto pole",
"Give the field a name.": "Pomenujte pole.",
- "“{name}” is a built-in field, not an additional one — choose a different name.": "„{name}“ je vstavané pole, nie ďalšie — zvoľte iný názov."
+ "“{name}” is a built-in field, not an additional one — choose a different name.": "„{name}“ je vstavané pole, nie ďalšie — zvoľte iný názov.",
+ "Keepiq {version}": "Keepiq {version}"
},
"nplurals=2; plural=(n != 1);"
)
diff --git a/l10n/sk.json b/l10n/sk.json
index a45d1066..daa83d6f 100644
--- a/l10n/sk.json
+++ b/l10n/sk.json
@@ -425,7 +425,8 @@
"Remove": "Odobrať",
"Remove this field": "Odobrať toto pole",
"Give the field a name.": "Pomenujte pole.",
- "“{name}” is a built-in field, not an additional one — choose a different name.": "„{name}“ je vstavané pole, nie ďalšie — zvoľte iný názov."
+ "“{name}” is a built-in field, not an additional one — choose a different name.": "„{name}“ je vstavané pole, nie ďalšie — zvoľte iný názov.",
+ "Keepiq {version}": "Keepiq {version}"
},
"plurals": null
}
diff --git a/l10n/sl.js b/l10n/sl.js
index f489084d..6201ff73 100644
--- a/l10n/sl.js
+++ b/l10n/sl.js
@@ -426,7 +426,8 @@ OC.L10N.register(
"Remove": "Odstrani",
"Remove this field": "Odstrani to polje",
"Give the field a name.": "Poimenujte polje.",
- "“{name}” is a built-in field, not an additional one — choose a different name.": "„{name}“ je vgrajeno polje, ne dodatno — izberite drugo ime."
+ "“{name}” is a built-in field, not an additional one — choose a different name.": "„{name}“ je vgrajeno polje, ne dodatno — izberite drugo ime.",
+ "Keepiq {version}": "Keepiq {version}"
},
"nplurals=2; plural=(n != 1);"
)
diff --git a/l10n/sl.json b/l10n/sl.json
index 37adc639..61a230df 100644
--- a/l10n/sl.json
+++ b/l10n/sl.json
@@ -425,7 +425,8 @@
"Remove": "Odstrani",
"Remove this field": "Odstrani to polje",
"Give the field a name.": "Poimenujte polje.",
- "“{name}” is a built-in field, not an additional one — choose a different name.": "„{name}“ je vgrajeno polje, ne dodatno — izberite drugo ime."
+ "“{name}” is a built-in field, not an additional one — choose a different name.": "„{name}“ je vgrajeno polje, ne dodatno — izberite drugo ime.",
+ "Keepiq {version}": "Keepiq {version}"
},
"plurals": null
}
diff --git a/l10n/sq.js b/l10n/sq.js
index 7672f8b2..6a4371d5 100644
--- a/l10n/sq.js
+++ b/l10n/sq.js
@@ -426,7 +426,8 @@ OC.L10N.register(
"Remove": "Hiq",
"Remove this field": "Hiq këtë fushë",
"Give the field a name.": "Jepni emër fushës.",
- "“{name}” is a built-in field, not an additional one — choose a different name.": "“{name}” është fushë e integruar, jo shtesë — zgjidhni emër tjetër."
+ "“{name}” is a built-in field, not an additional one — choose a different name.": "“{name}” është fushë e integruar, jo shtesë — zgjidhni emër tjetër.",
+ "Keepiq {version}": "Keepiq {version}"
},
"nplurals=2; plural=(n != 1);"
)
diff --git a/l10n/sq.json b/l10n/sq.json
index 58bcac38..3420e167 100644
--- a/l10n/sq.json
+++ b/l10n/sq.json
@@ -425,7 +425,8 @@
"Remove": "Hiq",
"Remove this field": "Hiq këtë fushë",
"Give the field a name.": "Jepni emër fushës.",
- "“{name}” is a built-in field, not an additional one — choose a different name.": "“{name}” është fushë e integruar, jo shtesë — zgjidhni emër tjetër."
+ "“{name}” is a built-in field, not an additional one — choose a different name.": "“{name}” është fushë e integruar, jo shtesë — zgjidhni emër tjetër.",
+ "Keepiq {version}": "Keepiq {version}"
},
"plurals": null
}
diff --git a/l10n/sr.js b/l10n/sr.js
index d6db64d5..1019c034 100644
--- a/l10n/sr.js
+++ b/l10n/sr.js
@@ -426,7 +426,8 @@ OC.L10N.register(
"Remove": "Уклони",
"Remove this field": "Уклони ово поље",
"Give the field a name.": "Дајте полју назив.",
- "“{name}” is a built-in field, not an additional one — choose a different name.": "„{name}“ је уграђено поље, а не додатно — одаберите други назив."
+ "“{name}” is a built-in field, not an additional one — choose a different name.": "„{name}“ је уграђено поље, а не додатно — одаберите други назив.",
+ "Keepiq {version}": "Keepiq {version}"
},
"nplurals=2; plural=(n != 1);"
)
diff --git a/l10n/sr.json b/l10n/sr.json
index 6fe5d0ca..fb714158 100644
--- a/l10n/sr.json
+++ b/l10n/sr.json
@@ -425,7 +425,8 @@
"Remove": "Уклони",
"Remove this field": "Уклони ово поље",
"Give the field a name.": "Дајте полју назив.",
- "“{name}” is a built-in field, not an additional one — choose a different name.": "„{name}“ је уграђено поље, а не додатно — одаберите други назив."
+ "“{name}” is a built-in field, not an additional one — choose a different name.": "„{name}“ је уграђено поље, а не додатно — одаберите други назив.",
+ "Keepiq {version}": "Keepiq {version}"
},
"plurals": null
}
diff --git a/l10n/sv.js b/l10n/sv.js
index 0d3847df..e02c76df 100644
--- a/l10n/sv.js
+++ b/l10n/sv.js
@@ -426,7 +426,8 @@ OC.L10N.register(
"Remove": "Ta bort",
"Remove this field": "Ta bort det här fältet",
"Give the field a name.": "Ge fältet ett namn.",
- "“{name}” is a built-in field, not an additional one — choose a different name.": "”{name}” är ett inbyggt fält, inte ett ytterligare — välj ett annat namn."
+ "“{name}” is a built-in field, not an additional one — choose a different name.": "”{name}” är ett inbyggt fält, inte ett ytterligare — välj ett annat namn.",
+ "Keepiq {version}": "Keepiq {version}"
},
"nplurals=2; plural=(n != 1);"
)
diff --git a/l10n/sv.json b/l10n/sv.json
index 52c4794d..b597de4e 100644
--- a/l10n/sv.json
+++ b/l10n/sv.json
@@ -425,7 +425,8 @@
"Remove": "Ta bort",
"Remove this field": "Ta bort det här fältet",
"Give the field a name.": "Ge fältet ett namn.",
- "“{name}” is a built-in field, not an additional one — choose a different name.": "”{name}” är ett inbyggt fält, inte ett ytterligare — välj ett annat namn."
+ "“{name}” is a built-in field, not an additional one — choose a different name.": "”{name}” är ett inbyggt fält, inte ett ytterligare — välj ett annat namn.",
+ "Keepiq {version}": "Keepiq {version}"
},
"plurals": null
}
diff --git a/l10n/tr.js b/l10n/tr.js
index 64fb9807..baa7605d 100644
--- a/l10n/tr.js
+++ b/l10n/tr.js
@@ -426,7 +426,8 @@ OC.L10N.register(
"Remove": "Kaldır",
"Remove this field": "Bu alanı kaldır",
"Give the field a name.": "Alana bir ad verin.",
- "“{name}” is a built-in field, not an additional one — choose a different name.": "“{name}” yerleşik bir alandır, ek alan değil — başka bir ad seçin."
+ "“{name}” is a built-in field, not an additional one — choose a different name.": "“{name}” yerleşik bir alandır, ek alan değil — başka bir ad seçin.",
+ "Keepiq {version}": "Keepiq {version}"
},
"nplurals=2; plural=(n != 1);"
)
diff --git a/l10n/tr.json b/l10n/tr.json
index 16c5a084..93e2042f 100644
--- a/l10n/tr.json
+++ b/l10n/tr.json
@@ -425,7 +425,8 @@
"Remove": "Kaldır",
"Remove this field": "Bu alanı kaldır",
"Give the field a name.": "Alana bir ad verin.",
- "“{name}” is a built-in field, not an additional one — choose a different name.": "“{name}” yerleşik bir alandır, ek alan değil — başka bir ad seçin."
+ "“{name}” is a built-in field, not an additional one — choose a different name.": "“{name}” yerleşik bir alandır, ek alan değil — başka bir ad seçin.",
+ "Keepiq {version}": "Keepiq {version}"
},
"plurals": null
}
diff --git a/l10n/uk.js b/l10n/uk.js
index b5a455a3..e5f21eda 100644
--- a/l10n/uk.js
+++ b/l10n/uk.js
@@ -426,7 +426,8 @@ OC.L10N.register(
"Remove": "Видалити",
"Remove this field": "Видалити це поле",
"Give the field a name.": "Дайте полю назву.",
- "“{name}” is a built-in field, not an additional one — choose a different name.": "«{name}» — вбудоване поле, а не додаткове: виберіть іншу назву."
+ "“{name}” is a built-in field, not an additional one — choose a different name.": "«{name}» — вбудоване поле, а не додаткове: виберіть іншу назву.",
+ "Keepiq {version}": "Keepiq {version}"
},
"nplurals=2; plural=(n != 1);"
)
diff --git a/l10n/uk.json b/l10n/uk.json
index b519d3e9..309a0405 100644
--- a/l10n/uk.json
+++ b/l10n/uk.json
@@ -425,7 +425,8 @@
"Remove": "Видалити",
"Remove this field": "Видалити це поле",
"Give the field a name.": "Дайте полю назву.",
- "“{name}” is a built-in field, not an additional one — choose a different name.": "«{name}» — вбудоване поле, а не додаткове: виберіть іншу назву."
+ "“{name}” is a built-in field, not an additional one — choose a different name.": "«{name}» — вбудоване поле, а не додаткове: виберіть іншу назву.",
+ "Keepiq {version}": "Keepiq {version}"
},
"plurals": null
}
diff --git a/lib/Controller/DashboardController.php b/lib/Controller/DashboardController.php
index 235e95e5..4856e2b0 100644
--- a/lib/Controller/DashboardController.php
+++ b/lib/Controller/DashboardController.php
@@ -23,6 +23,7 @@
use OCA\Keepiq\AppInfo\Application;
use OCA\Keepiq\Service\DashboardSummaryService;
+use OCP\App\IAppManager;
use OCP\AppFramework\Controller;
use OCP\AppFramework\Http;
use OCP\AppFramework\Http\ContentSecurityPolicy;
@@ -44,6 +45,7 @@ class DashboardController extends Controller {
* @param IRequest $request The request object
* @param IInitialState $initialState The initial state service
* @param IAppConfig $appConfig The app config interface
+ * @param IAppManager $appManager The app manager (version source)
* @param DashboardSummaryService $summaryService The dashboard summary aggregator
* @param IUserSession $userSession The user session
* @param IGroupManager $groupManager The group manager
@@ -54,6 +56,7 @@ public function __construct(
IRequest $request,
private IInitialState $initialState,
private IAppConfig $appConfig,
+ private IAppManager $appManager,
private DashboardSummaryService $summaryService,
private IUserSession $userSession,
private IGroupManager $groupManager,
@@ -106,6 +109,14 @@ public function page(): TemplateResponse {
data: $this->appConfig->getValueBool(Application::APP_ID, 'breach_check_enabled', false),
);
+ // The user-settings dialog renders this as its version footer.
+ // IAppManager reads appinfo/info.xml — the version truth; the
+ // package.json version is stale and must not be used.
+ $this->initialState->provideInitialState(
+ key: 'appVersion',
+ data: $this->appManager->getAppVersion(Application::APP_ID),
+ );
+
$response = new TemplateResponse(appName: Application::APP_ID, templateName: 'index');
// Link-share encryption derives its AES key client-side via the Argon2id
diff --git a/src/App.vue b/src/App.vue
index 55b58eb5..cb763aa4 100644
--- a/src/App.vue
+++ b/src/App.vue
@@ -289,6 +289,13 @@
}}
+
+
+
+ {{ t('keepiq', 'Keepiq {version}', { version: appVersion }) }}
+
@@ -296,6 +303,7 @@
+
+
diff --git a/src/components/KeepiqAppNav/NavFolderTree.vue b/src/components/KeepiqAppNav/NavFolderTree.vue
new file mode 100644
index 00000000..2f79ce6d
--- /dev/null
+++ b/src/components/KeepiqAppNav/NavFolderTree.vue
@@ -0,0 +1,160 @@
+
+
+
+
+
+
+
+
diff --git a/src/views/SecretList.vue b/src/views/SecretList.vue
index b85fbe02..e68ba33b 100644
--- a/src/views/SecretList.vue
+++ b/src/views/SecretList.vue
@@ -1,21 +1,9 @@
-
-
-
-
+
+ rides along. No "All vaults" host item — the caption already
+ names the group and a second link to the vault root would
+ double-highlight next to "All secrets". Revisit if the lib's
+ filter learns to spare captions. -->
-
-
-
-
-
-
+
-
+
+
import { NcAppNavigationItem } from '@nextcloud/vue'
import FolderOutline from 'vue-material-design-icons/FolderOutline.vue'
+import Safe from 'vue-material-design-icons/Safe.vue'
/**
* Maximum folder depth the rail renders. Deeper levels are reachable
@@ -67,6 +72,7 @@ export default {
components: {
NcAppNavigationItem,
FolderOutline,
+ Safe,
},
props: {
diff --git a/src/components/SecretListItem.vue b/src/components/SecretListItem.vue
index 42c7c02a..4d02e4dc 100644
--- a/src/components/SecretListItem.vue
+++ b/src/components/SecretListItem.vue
@@ -92,9 +92,13 @@