@conduction/nextcloud-vue 2.78.0 → 2.80.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bundled-packages.json +0 -2
- package/dist/esm/bundled-packages.json +0 -2
- package/dist/esm/components/CnActionButtons/CnActionButtons.vue2.js.map +1 -1
- package/dist/esm/components/CnActionButtons/CnActionButtons.vue3.js +3 -1
- package/dist/esm/components/CnActionButtons/CnActionButtons.vue3.js.map +1 -1
- package/dist/esm/components/CnActionsBar/CnActionsBar.vue2.js +32 -3
- package/dist/esm/components/CnActionsBar/CnActionsBar.vue2.js.map +1 -1
- package/dist/esm/components/CnActionsBar/CnActionsBar.vue3.js +115 -104
- package/dist/esm/components/CnActionsBar/CnActionsBar.vue3.js.map +1 -1
- package/dist/esm/components/CnAppRoot/CnAppRoot.vue2.js +12 -2
- package/dist/esm/components/CnAppRoot/CnAppRoot.vue2.js.map +1 -1
- package/dist/esm/components/CnAppRoot/CnAppRoot.vue3.js.map +1 -1
- package/dist/esm/components/CnBannerWidget/CnBannerWidget.vue2.js +39 -3
- package/dist/esm/components/CnBannerWidget/CnBannerWidget.vue2.js.map +1 -1
- package/dist/esm/components/CnBannerWidget/CnBannerWidget.vue3.js.map +1 -1
- package/dist/esm/components/CnCellRenderer/CnCellRenderer.vue2.js +158 -0
- package/dist/esm/components/CnCellRenderer/CnCellRenderer.vue2.js.map +1 -1
- package/dist/esm/components/CnCellRenderer/CnCellRenderer.vue3.js +157 -96
- package/dist/esm/components/CnCellRenderer/CnCellRenderer.vue3.js.map +1 -1
- package/dist/esm/components/CnDashboardPage/CnDashboardPage.vue2.js +139 -1
- package/dist/esm/components/CnDashboardPage/CnDashboardPage.vue2.js.map +1 -1
- package/dist/esm/components/CnDashboardPage/CnDashboardPage.vue3.js +140 -92
- package/dist/esm/components/CnDashboardPage/CnDashboardPage.vue3.js.map +1 -1
- package/dist/esm/components/CnDataTable/CnDataTable.vue2.js +77 -0
- package/dist/esm/components/CnDataTable/CnDataTable.vue2.js.map +1 -1
- package/dist/esm/components/CnDataTable/CnDataTable.vue3.js +5 -2
- package/dist/esm/components/CnDataTable/CnDataTable.vue3.js.map +1 -1
- package/dist/esm/components/CnDetailPage/CnDetailPage.vue2.js +62 -4
- package/dist/esm/components/CnDetailPage/CnDetailPage.vue2.js.map +1 -1
- package/dist/esm/components/CnDetailPage/CnDetailPage.vue3.js.map +1 -1
- package/dist/esm/components/CnDetailWidgetHost/CnDetailWidgetHost.vue2.js +85 -1
- package/dist/esm/components/CnDetailWidgetHost/CnDetailWidgetHost.vue2.js.map +1 -1
- package/dist/esm/components/CnDetailWidgetHost/CnDetailWidgetHost.vue3.js +43 -4
- package/dist/esm/components/CnDetailWidgetHost/CnDetailWidgetHost.vue3.js.map +1 -1
- package/dist/esm/components/CnFactsWidget/CnFactsWidget.vue.js +11 -0
- package/dist/esm/components/CnFactsWidget/CnFactsWidget.vue.js.map +1 -0
- package/dist/esm/components/CnFactsWidget/CnFactsWidget.vue2.js +736 -0
- package/dist/esm/components/CnFactsWidget/CnFactsWidget.vue2.js.map +1 -0
- package/dist/esm/components/CnFactsWidget/CnFactsWidget.vue3.js +238 -0
- package/dist/esm/components/CnFactsWidget/CnFactsWidget.vue3.js.map +1 -0
- package/dist/esm/components/CnFactsWidget/index.js +30 -0
- package/dist/esm/components/CnFactsWidget/index.js.map +1 -0
- package/dist/esm/components/CnFieldListWidget/CnFieldListWidget.vue.js +10 -0
- package/dist/esm/components/CnFieldListWidget/CnFieldListWidget.vue.js.map +1 -0
- package/dist/esm/components/CnFieldListWidget/CnFieldListWidget.vue2.js +551 -0
- package/dist/esm/components/CnFieldListWidget/CnFieldListWidget.vue2.js.map +1 -0
- package/dist/esm/components/CnFieldListWidget/CnFieldListWidget.vue3.js +183 -0
- package/dist/esm/components/CnFieldListWidget/CnFieldListWidget.vue3.js.map +1 -0
- package/dist/esm/components/CnFieldListWidget/index.js +29 -0
- package/dist/esm/components/CnFieldListWidget/index.js.map +1 -0
- package/dist/esm/components/CnFilesBrowser/CnFilesBrowser.vue2.js +173 -5
- package/dist/esm/components/CnFilesBrowser/CnFilesBrowser.vue2.js.map +1 -1
- package/dist/esm/components/CnFilesBrowser/CnFilesBrowser.vue3.js +181 -99
- package/dist/esm/components/CnFilesBrowser/CnFilesBrowser.vue3.js.map +1 -1
- package/dist/esm/components/CnFilesBrowser/filesBrowser.js +29 -11
- package/dist/esm/components/CnFilesBrowser/filesBrowser.js.map +1 -1
- package/dist/esm/components/CnFilesBrowser/openRegisterSource.js +252 -0
- package/dist/esm/components/CnFilesBrowser/openRegisterSource.js.map +1 -0
- package/dist/esm/components/CnFormDialog/CnFormDialog.vue2.js +66 -18
- package/dist/esm/components/CnFormDialog/CnFormDialog.vue2.js.map +1 -1
- package/dist/esm/components/CnFormDialog/CnFormDialog.vue3.js +4 -4
- package/dist/esm/components/CnFormDialog/CnFormDialog.vue3.js.map +1 -1
- package/dist/esm/components/CnFormPage/CnFormPage.vue2.js +18 -3
- package/dist/esm/components/CnFormPage/CnFormPage.vue2.js.map +1 -1
- package/dist/esm/components/CnFormPage/CnFormPage.vue3.js.map +1 -1
- package/dist/esm/components/CnIndexPage/CnIndexPage.vue2.js +330 -74
- package/dist/esm/components/CnIndexPage/CnIndexPage.vue2.js.map +1 -1
- package/dist/esm/components/CnIndexPage/CnIndexPage.vue3.js +34 -15
- package/dist/esm/components/CnIndexPage/CnIndexPage.vue3.js.map +1 -1
- package/dist/esm/components/CnIndexPage/CnIndexPageWidgets.vue.js +10 -0
- package/dist/esm/components/CnIndexPage/CnIndexPageWidgets.vue.js.map +1 -0
- package/dist/esm/components/CnIndexPage/CnIndexPageWidgets.vue2.js +99 -0
- package/dist/esm/components/CnIndexPage/CnIndexPageWidgets.vue2.js.map +1 -0
- package/dist/esm/components/CnIndexPage/CnIndexPageWidgets.vue3.js +48 -0
- package/dist/esm/components/CnIndexPage/CnIndexPageWidgets.vue3.js.map +1 -0
- package/dist/esm/components/CnObjectSidebar/CnFilesTab.vue2.js +100 -3
- package/dist/esm/components/CnObjectSidebar/CnFilesTab.vue2.js.map +1 -1
- package/dist/esm/components/CnObjectSidebar/CnFilesTab.vue3.js +4 -2
- package/dist/esm/components/CnObjectSidebar/CnFilesTab.vue3.js.map +1 -1
- package/dist/esm/components/CnPageRenderer/CnPageRenderer.vue2.js +29 -1
- package/dist/esm/components/CnPageRenderer/CnPageRenderer.vue2.js.map +1 -1
- package/dist/esm/components/CnPageRenderer/CnPageRenderer.vue3.js.map +1 -1
- package/dist/esm/components/CnQuickFilterBar/CnQuickFilterBar.vue2.js +3 -2
- package/dist/esm/components/CnQuickFilterBar/CnQuickFilterBar.vue2.js.map +1 -1
- package/dist/esm/components/CnQuickFilterBar/CnQuickFilterBar.vue3.js.map +1 -1
- package/dist/esm/components/CnRecordListWidget/CnRecordListWidget.vue.js +10 -0
- package/dist/esm/components/CnRecordListWidget/CnRecordListWidget.vue.js.map +1 -0
- package/dist/esm/components/CnRecordListWidget/CnRecordListWidget.vue2.js +387 -0
- package/dist/esm/components/CnRecordListWidget/CnRecordListWidget.vue2.js.map +1 -0
- package/dist/esm/components/CnRecordListWidget/CnRecordListWidget.vue3.js +169 -0
- package/dist/esm/components/CnRecordListWidget/CnRecordListWidget.vue3.js.map +1 -0
- package/dist/esm/components/CnRecordListWidget/index.js +31 -0
- package/dist/esm/components/CnRecordListWidget/index.js.map +1 -0
- package/dist/esm/components/CnSavedViewsControl/CnSavedViewsControl.vue2.js.map +1 -1
- package/dist/esm/components/CnSavedViewsControl/CnSavedViewsControl.vue3.js +1 -1
- package/dist/esm/components/CnSavedViewsControl/CnSavedViewsControl.vue3.js.map +1 -1
- package/dist/esm/components/CnSectionsWidget/CnSectionsWidget.vue.js +10 -0
- package/dist/esm/components/CnSectionsWidget/CnSectionsWidget.vue.js.map +1 -0
- package/dist/esm/components/CnSectionsWidget/CnSectionsWidget.vue2.js +351 -0
- package/dist/esm/components/CnSectionsWidget/CnSectionsWidget.vue2.js.map +1 -0
- package/dist/esm/components/CnSectionsWidget/CnSectionsWidget.vue3.js +71 -0
- package/dist/esm/components/CnSectionsWidget/CnSectionsWidget.vue3.js.map +1 -0
- package/dist/esm/components/CnSectionsWidget/index.js +35 -0
- package/dist/esm/components/CnSectionsWidget/index.js.map +1 -0
- package/dist/esm/components/CnStagesWidget/CnStagesWidget.vue2.js +81 -2
- package/dist/esm/components/CnStagesWidget/CnStagesWidget.vue2.js.map +1 -1
- package/dist/esm/components/CnStagesWidget/CnStagesWidget.vue3.js.map +1 -1
- package/dist/esm/components/CnStatWidget/CnStatWidget.vue2.js.map +1 -1
- package/dist/esm/components/CnStatWidget/CnStatWidget.vue3.js +1 -0
- package/dist/esm/components/CnStatWidget/CnStatWidget.vue3.js.map +1 -1
- package/dist/esm/components/CnTabsWidget/CnTabsWidget.vue2.js +152 -8
- package/dist/esm/components/CnTabsWidget/CnTabsWidget.vue2.js.map +1 -1
- package/dist/esm/components/CnTabsWidget/CnTabsWidget.vue3.js +84 -23
- package/dist/esm/components/CnTabsWidget/CnTabsWidget.vue3.js.map +1 -1
- package/dist/esm/components/CnWidgetGrid/registerDashboardWidgets.js +4 -0
- package/dist/esm/components/CnWidgetGrid/registerDashboardWidgets.js.map +1 -1
- package/dist/esm/components/CnWidgetObjectTable/CnWidgetObjectTable.vue2.js +13 -0
- package/dist/esm/components/CnWidgetObjectTable/CnWidgetObjectTable.vue2.js.map +1 -1
- package/dist/esm/components/CnWidgetObjectTable/CnWidgetObjectTable.vue3.js.map +1 -1
- package/dist/esm/components/CnWorkspaceFilterWidget/CnWorkspaceFilterWidget.vue2.js +106 -2
- package/dist/esm/components/CnWorkspaceFilterWidget/CnWorkspaceFilterWidget.vue2.js.map +1 -1
- package/dist/esm/components/CnWorkspaceFilterWidget/CnWorkspaceFilterWidget.vue3.js +105 -53
- package/dist/esm/components/CnWorkspaceFilterWidget/CnWorkspaceFilterWidget.vue3.js.map +1 -1
- package/dist/esm/composables/useAppManifest.js +8 -3
- package/dist/esm/composables/useAppManifest.js.map +1 -1
- package/dist/esm/composables/useFormDraft.js +140 -9
- package/dist/esm/composables/useFormDraft.js.map +1 -1
- package/dist/esm/index.js +5 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/integrations/builtin/field-inspection/CnFieldInspectionCard.vue2.js +28 -20
- package/dist/esm/integrations/builtin/field-inspection/CnFieldInspectionCard.vue2.js.map +1 -1
- package/dist/esm/integrations/builtin/field-inspection/CnFieldInspectionCard.vue3.js +9 -0
- package/dist/esm/integrations/builtin/field-inspection/CnFieldInspectionCard.vue3.js.map +1 -1
- package/dist/esm/integrations/builtin/field-inspection.js +21 -0
- package/dist/esm/integrations/builtin/field-inspection.js.map +1 -1
- package/dist/esm/integrations/offline/checklistSubmission.js +141 -0
- package/dist/esm/integrations/offline/checklistSubmission.js.map +1 -0
- package/dist/esm/integrations/offline/fieldCollectionHelpers.js +70 -5
- package/dist/esm/integrations/offline/fieldCollectionHelpers.js.map +1 -1
- package/dist/esm/integrations/offline/index.js +2 -1
- package/dist/esm/integrations/offline/index.js.map +1 -1
- package/dist/esm/integrations/offline/offlineDb.js +6 -1
- package/dist/esm/integrations/offline/offlineDb.js.map +1 -1
- package/dist/esm/integrations/offline/syncReplayService.js +8 -2
- package/dist/esm/integrations/offline/syncReplayService.js.map +1 -1
- package/dist/esm/l10n/en.json.js +72 -1
- package/dist/esm/l10n/en.json.js.map +1 -1
- package/dist/esm/l10n/nl.json.js +120 -2
- package/dist/esm/l10n/nl.json.js.map +1 -1
- package/dist/esm/nextcloud-vue.css +1314 -74
- package/dist/esm/utils/boardDate.js +193 -0
- package/dist/esm/utils/boardDate.js.map +1 -0
- package/dist/esm/utils/detailActionModel.js +60 -3
- package/dist/esm/utils/detailActionModel.js.map +1 -1
- package/dist/esm/utils/dynamicProperties.js +5 -1
- package/dist/esm/utils/dynamicProperties.js.map +1 -1
- package/dist/esm/utils/fillTemplate.js +114 -0
- package/dist/esm/utils/fillTemplate.js.map +1 -0
- package/dist/esm/utils/libraryWidgetKeys.js +4 -0
- package/dist/esm/utils/libraryWidgetKeys.js.map +1 -1
- package/dist/esm/utils/queryPresets.js +96 -0
- package/dist/esm/utils/queryPresets.js.map +1 -0
- package/dist/esm/utils/resolveFilterTokens.js +11 -0
- package/dist/esm/utils/resolveFilterTokens.js.map +1 -1
- package/dist/esm/utils/schema.js +21 -0
- package/dist/esm/utils/schema.js.map +1 -1
- package/dist/esm/utils/sentinelTokens.js +3 -3
- package/dist/esm/utils/sentinelTokens.js.map +1 -1
- package/dist/esm/utils/validateManifestV2.compiled.js +57 -6
- package/dist/esm/utils/validateManifestV2.compiled.js.map +1 -1
- package/dist/esm/utils/widgetDispatch.js +7 -1
- package/dist/esm/utils/widgetDispatch.js.map +1 -1
- package/dist/nextcloud-vue.cjs.js +14278 -8169
- package/dist/nextcloud-vue.cjs.js.map +2 -2
- package/dist/nextcloud-vue.css +1314 -74
- package/l10n/en.json +72 -1
- package/l10n/nl.json +120 -2
- package/package.json +1 -1
- package/scripts/build-validators.js +26 -0
- package/src/components/CnActionButtons/CnActionButtons.vue +2 -0
- package/src/components/CnActionsBar/CnActionsBar.md +4 -0
- package/src/components/CnActionsBar/CnActionsBar.vue +83 -42
- package/src/components/CnAppRoot/CnAppRoot.vue +12 -2
- package/src/components/CnBannerWidget/CnBannerWidget.vue +39 -3
- package/src/components/CnCellRenderer/CnCellRenderer.vue +306 -2
- package/src/components/CnDashboardPage/CnDashboardPage.vue +219 -4
- package/src/components/CnDataTable/CnDataTable.md +2 -0
- package/src/components/CnDataTable/CnDataTable.vue +82 -2
- package/src/components/CnDetailPage/CnDetailPage.md +1 -1
- package/src/components/CnDetailPage/CnDetailPage.vue +63 -3
- package/src/components/CnDetailWidgetHost/CnDetailWidgetHost.vue +127 -1
- package/src/components/CnFactsWidget/CnFactsWidget.vue +1050 -0
- package/src/components/CnFactsWidget/index.js +29 -0
- package/src/components/CnFieldListWidget/CnFieldListWidget.vue +746 -0
- package/src/components/CnFieldListWidget/index.js +28 -0
- package/src/components/CnFilesBrowser/CnFilesBrowser.vue +232 -11
- package/src/components/CnFilesBrowser/filesBrowser.js +43 -2
- package/src/components/CnFilesBrowser/index.js +1 -0
- package/src/components/CnFilesBrowser/openRegisterSource.js +248 -0
- package/src/components/CnFormDialog/CnFormDialog.md +9 -3
- package/src/components/CnFormDialog/CnFormDialog.vue +70 -22
- package/src/components/CnFormPage/CnFormPage.vue +18 -3
- package/src/components/CnIndexPage/CnIndexPage.vue +281 -9
- package/src/components/CnIndexPage/CnIndexPageWidgets.vue +169 -0
- package/src/components/CnObjectSidebar/CnFilesTab.vue +103 -4
- package/src/components/CnPageRenderer/CnPageRenderer.vue +29 -1
- package/src/components/CnQuickFilterBar/CnQuickFilterBar.vue +3 -2
- package/src/components/CnRecordListWidget/CnRecordListWidget.vue +603 -0
- package/src/components/CnRecordListWidget/index.js +30 -0
- package/src/components/CnSavedViewsControl/CnSavedViewsControl.vue +1 -1
- package/src/components/CnSectionsWidget/CnSectionsWidget.vue +489 -0
- package/src/components/CnSectionsWidget/index.js +34 -0
- package/src/components/CnStagesWidget/CnStagesWidget.vue +81 -2
- package/src/components/CnStatWidget/CnStatWidget.vue +1 -1
- package/src/components/CnTabsWidget/CnTabsWidget.vue +214 -9
- package/src/components/CnWidgetGrid/registerDashboardWidgets.js +4 -0
- package/src/components/CnWidgetObjectTable/CnWidgetObjectTable.vue +13 -0
- package/src/components/CnWorkspaceFilterWidget/CnWorkspaceFilterWidget.vue +188 -4
- package/src/components/index.js +5 -1
- package/src/composables/__tests__/useFormDraft.spec.js +69 -0
- package/src/composables/useAppManifest.js +8 -3
- package/src/composables/useFormDraft.js +139 -8
- package/src/css/form-field.css +14 -0
- package/src/css/index-page.css +71 -0
- package/src/css/kpi-card.css +32 -0
- package/src/css/look-board-detail.css +87 -0
- package/src/css/look-board-index.css +143 -14
- package/src/css/look-board.css +114 -2
- package/src/css/table.css +56 -0
- package/src/index.js +8 -0
- package/src/integrations/builtin/field-inspection/CnFieldInspectionCard.vue +35 -20
- package/src/integrations/builtin/field-inspection.js +21 -0
- package/src/integrations/offline/checklistSubmission.js +137 -0
- package/src/integrations/offline/fieldCollectionHelpers.js +69 -4
- package/src/integrations/offline/index.js +3 -0
- package/src/integrations/offline/offlineDb.js +6 -1
- package/src/integrations/offline/syncReplayService.js +8 -2
- package/src/schemas/app-manifest-v2.schema.json +149 -5
- package/src/utils/boardDate.js +189 -0
- package/src/utils/detailActionModel.js +59 -2
- package/src/utils/dynamicProperties.js +5 -1
- package/src/utils/fillTemplate.js +110 -0
- package/src/utils/libraryWidgetKeys.js +4 -0
- package/src/utils/queryPresets.js +93 -0
- package/src/utils/resolveFilterTokens.js +11 -0
- package/src/utils/schema.js +21 -0
- package/src/utils/sentinelTokens.js +3 -3
- package/src/utils/validateManifestV2.compiled.js +57 -2
- package/src/utils/widgetDispatch.js +7 -1
- package/dist/esm/_virtual/equal.js +0 -4
- package/dist/esm/_virtual/equal.js.map +0 -1
- package/dist/esm/_virtual/ucs2length.js +0 -4
- package/dist/esm/_virtual/ucs2length.js.map +0 -1
- package/dist/esm/node_modules/ajv/dist/runtime/equal.js +0 -9
- package/dist/esm/node_modules/ajv/dist/runtime/equal.js.map +0 -1
- package/dist/esm/node_modules/ajv/dist/runtime/ucs2length.js +0 -25
- package/dist/esm/node_modules/ajv/dist/runtime/ucs2length.js.map +0 -1
- package/dist/esm/node_modules/fast-deep-equal/index.js +0 -47
- package/dist/esm/node_modules/fast-deep-equal/index.js.map +0 -1
package/l10n/en.json
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"translations": {
|
|
3
|
+
"You cannot see these files": "You cannot see these files",
|
|
4
|
+
"Delete {name}? This cannot be undone here.": "Delete {name}? This cannot be undone here.",
|
|
3
5
|
"Linked items": "Linked items",
|
|
4
6
|
"Still loading: {sections}": "Still loading: {sections}",
|
|
5
7
|
"Could not load {section}.": "Could not load {section}.",
|
|
@@ -65,6 +67,7 @@
|
|
|
65
67
|
"Follow this record to get its updates": "Follow this record to get its updates",
|
|
66
68
|
"You will see it under Following. This register sends no change notifications.": "You will see it under Following. This register sends no change notifications.",
|
|
67
69
|
"Since {date}": "Since {date}",
|
|
70
|
+
"since {date}": "since {date}",
|
|
68
71
|
"Remove {name} as a follower": "Remove {name} as a follower",
|
|
69
72
|
"Could not change following.": "Could not change following.",
|
|
70
73
|
"Could not add this colleague.": "Could not add this colleague.",
|
|
@@ -224,6 +227,7 @@
|
|
|
224
227
|
"Access URL": "Access URL",
|
|
225
228
|
"Action": "Action",
|
|
226
229
|
"Actions": "Actions",
|
|
230
|
+
"optional": "optional",
|
|
227
231
|
"Add": "Add",
|
|
228
232
|
"Add condition": "Add condition",
|
|
229
233
|
"Add enum value": "Add enum value",
|
|
@@ -298,6 +302,9 @@
|
|
|
298
302
|
"Constant": "Constant",
|
|
299
303
|
"Copy": "Copy",
|
|
300
304
|
"Copied": "Copied",
|
|
305
|
+
"Show": "Show",
|
|
306
|
+
"Copy {label}": "Copy {label}",
|
|
307
|
+
"Show {label}": "Show {label}",
|
|
301
308
|
"Copy item": "Copy item",
|
|
302
309
|
"Copy items": "Copy items",
|
|
303
310
|
"Copy of {name}": "Copy of {name}",
|
|
@@ -572,6 +579,8 @@
|
|
|
572
579
|
"Order": "Order",
|
|
573
580
|
"Owner:": "Owner:",
|
|
574
581
|
"Page {current} of {total}": "Page {current} of {total}",
|
|
582
|
+
"{shown} of {total}": "{shown} of {total}",
|
|
583
|
+
"{from}–{to} of {total}": "{from}–{to} of {total}",
|
|
575
584
|
"Parent schemas:": "Parent schemas:",
|
|
576
585
|
"Password": "Password",
|
|
577
586
|
"Pattern (regex)": "Pattern (regex)",
|
|
@@ -771,6 +780,28 @@
|
|
|
771
780
|
"Message input": "Message input",
|
|
772
781
|
"Start new chat": "Start new chat",
|
|
773
782
|
"History": "History",
|
|
783
|
+
"No audit entries yet": "No audit entries yet",
|
|
784
|
+
"Meetings": "Meetings",
|
|
785
|
+
"No meetings": "No meetings",
|
|
786
|
+
"Open in Calendar": "Open in Calendar",
|
|
787
|
+
"(no title)": "(no title)",
|
|
788
|
+
"Could not load meetings.": "Could not load meetings.",
|
|
789
|
+
"Could not load meeting.": "Could not load meeting.",
|
|
790
|
+
"Calendar is currently unavailable.": "Calendar is currently unavailable.",
|
|
791
|
+
"Show all {count} fields": "Show all {count} fields",
|
|
792
|
+
"Show less": "Show less",
|
|
793
|
+
"{count} more": "{count} more",
|
|
794
|
+
"Identifier: {identifier}": "Identifier: {identifier}",
|
|
795
|
+
"What happened, who did it and when, newest first": "What happened, who did it and when, newest first",
|
|
796
|
+
"{app} is not installed": "{app} is not installed",
|
|
797
|
+
"Install and enable the {app} app to see this.": "Install and enable the {app} app to see this.",
|
|
798
|
+
"{title} needs the {app} app. Install and enable it to see this.": "{title} needs the {app} app. Install and enable it to see this.",
|
|
799
|
+
"View all ({total})": "View all ({total})",
|
|
800
|
+
"No items": "No items",
|
|
801
|
+
"Nothing here yet": "Nothing here yet",
|
|
802
|
+
"This list could not be loaded.": "This list could not be loaded.",
|
|
803
|
+
"No items match this filter": "No items match this filter",
|
|
804
|
+
"Could not load these records": "Could not load these records",
|
|
774
805
|
"No conversations yet": "No conversations yet",
|
|
775
806
|
"Connecting...": "Connecting...",
|
|
776
807
|
"Loading conversations...": "Loading conversations...",
|
|
@@ -1309,9 +1340,41 @@
|
|
|
1309
1340
|
"Filter by {column}, active": "Filter by {column}, active",
|
|
1310
1341
|
"Turn notifications off": "Turn notifications off",
|
|
1311
1342
|
"Turn notifications on": "Turn notifications on",
|
|
1312
|
-
"Could not change notifications.": "Could not change notifications."
|
|
1343
|
+
"Could not change notifications.": "Could not change notifications.",
|
|
1344
|
+
"Actions for the selection": "Actions for the selection",
|
|
1345
|
+
"Active:": "Active:",
|
|
1346
|
+
"Filter": "Filter",
|
|
1347
|
+
"List": "List",
|
|
1348
|
+
"Map": "Map",
|
|
1349
|
+
"Remove filter: {label}": "Remove filter: {label}",
|
|
1350
|
+
"Search and columns": "Search and columns",
|
|
1351
|
+
"Sort by": "Sort by",
|
|
1352
|
+
"View mode": "View mode",
|
|
1353
|
+
"With the selected {plural}": "With the selected {plural}",
|
|
1354
|
+
"items": "items",
|
|
1355
|
+
"{count} active": "{count} active",
|
|
1356
|
+
"Delete \"{name}\"": "Delete \"{name}\"",
|
|
1357
|
+
"No saved views yet": "No saved views yet",
|
|
1358
|
+
"No views with this label": "No views with this label",
|
|
1359
|
+
"Save current view…": "Save current view…",
|
|
1360
|
+
"Save view": "Save view",
|
|
1361
|
+
"Saved views": "Saved views",
|
|
1362
|
+
"Show only views labelled \"{label}\"": "Show only views labelled \"{label}\"",
|
|
1363
|
+
"Stop filtering on \"{label}\"": "Stop filtering on \"{label}\"",
|
|
1364
|
+
"{name}, level {level}": "{name}, level {level}",
|
|
1365
|
+
"{name}. Parts of this view come from one you cannot see.": "{name}. Parts of this view come from one you cannot see.",
|
|
1366
|
+
"More filters": "More filters",
|
|
1367
|
+
"Quick filters": "Quick filters",
|
|
1368
|
+
"{count} filters": "{count} filters",
|
|
1369
|
+
"{count} more filters": "{count} more filters",
|
|
1370
|
+
"{label} — show the other filters": "{label} — show the other filters",
|
|
1371
|
+
"{view}: not available on this list": "{view}: not available on this list"
|
|
1313
1372
|
},
|
|
1314
1373
|
"plurals": {
|
|
1374
|
+
"{count} selected": [
|
|
1375
|
+
"{count} selected",
|
|
1376
|
+
"{count} selected"
|
|
1377
|
+
],
|
|
1315
1378
|
"%n year": [
|
|
1316
1379
|
"%n year",
|
|
1317
1380
|
"%n years"
|
|
@@ -1320,6 +1383,10 @@
|
|
|
1320
1383
|
"%n month",
|
|
1321
1384
|
"%n months"
|
|
1322
1385
|
],
|
|
1386
|
+
"%n hour": [
|
|
1387
|
+
"%n hour",
|
|
1388
|
+
"%n hours"
|
|
1389
|
+
],
|
|
1323
1390
|
"%n day": [
|
|
1324
1391
|
"%n day",
|
|
1325
1392
|
"%n days"
|
|
@@ -1375,6 +1442,10 @@
|
|
|
1375
1442
|
"in {count} day": [
|
|
1376
1443
|
"in {count} day",
|
|
1377
1444
|
"in {count} days"
|
|
1445
|
+
],
|
|
1446
|
+
"{count} more filter": [
|
|
1447
|
+
"{count} more filter",
|
|
1448
|
+
"{count} more filters"
|
|
1378
1449
|
]
|
|
1379
1450
|
}
|
|
1380
1451
|
}
|
package/l10n/nl.json
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"translations": {
|
|
3
|
+
"You cannot see these files": "Je kunt deze bestanden niet zien",
|
|
4
|
+
"Delete {name}? This cannot be undone here.": "{name} verwijderen? Dit kun je hier niet ongedaan maken.",
|
|
3
5
|
"Linked items": "Gekoppelde items",
|
|
4
6
|
"Still loading: {sections}": "Nog aan het laden: {sections}",
|
|
5
7
|
"Could not load {section}.": "{section} kon niet worden geladen.",
|
|
@@ -65,6 +67,7 @@
|
|
|
65
67
|
"Follow this record to get its updates": "Volg dit dossier om de wijzigingen te ontvangen",
|
|
66
68
|
"You will see it under Following. This register sends no change notifications.": "U ziet het onder Volgend. Dit register stuurt geen wijzigingsmeldingen.",
|
|
67
69
|
"Since {date}": "Sinds {date}",
|
|
70
|
+
"since {date}": "sinds {date}",
|
|
68
71
|
"Remove {name} as a follower": "{name} als volger verwijderen",
|
|
69
72
|
"Could not change following.": "Volgen kon niet worden gewijzigd.",
|
|
70
73
|
"Could not add this colleague.": "Deze collega kon niet worden toegevoegd.",
|
|
@@ -223,6 +226,7 @@
|
|
|
223
226
|
"Access URL": "Toegangs-URL",
|
|
224
227
|
"Action": "Actie",
|
|
225
228
|
"Actions": "Acties",
|
|
229
|
+
"optional": "niet verplicht",
|
|
226
230
|
"Add": "Toevoegen",
|
|
227
231
|
"Add condition": "Voorwaarde toevoegen",
|
|
228
232
|
"Add enum value": "Opsommingswaarde toevoegen",
|
|
@@ -297,6 +301,9 @@
|
|
|
297
301
|
"Constant": "Constante",
|
|
298
302
|
"Copy": "Kopiëren",
|
|
299
303
|
"Copied": "Gekopieerd",
|
|
304
|
+
"Show": "Tonen",
|
|
305
|
+
"Copy {label}": "{label} kopiëren",
|
|
306
|
+
"Show {label}": "{label} tonen",
|
|
300
307
|
"Copy item": "Item kopiëren",
|
|
301
308
|
"Copy items": "Items kopiëren",
|
|
302
309
|
"Copy of {name}": "Kopie van {name}",
|
|
@@ -567,10 +574,16 @@
|
|
|
567
574
|
"Open": "Openen",
|
|
568
575
|
"Open access:": "Openbare toegang:",
|
|
569
576
|
"Open row": "Rij openen",
|
|
577
|
+
"Select all rows": "Alle rijen selecteren",
|
|
578
|
+
"Select row": "Rij selecteren",
|
|
579
|
+
"Scrollable table": "Scrollbare tabel",
|
|
580
|
+
"{title} — scrollable table": "{title}, scrollbare tabel",
|
|
570
581
|
"Operator": "Operator",
|
|
571
582
|
"Order": "Volgorde",
|
|
572
583
|
"Owner:": "Eigenaar:",
|
|
573
584
|
"Page {current} of {total}": "Pagina {current} van {total}",
|
|
585
|
+
"{shown} of {total}": "{shown} van {total}",
|
|
586
|
+
"{from}–{to} of {total}": "{from}–{to} van {total}",
|
|
574
587
|
"Parent schemas:": "Bovenliggende schema's:",
|
|
575
588
|
"Password": "Wachtwoord",
|
|
576
589
|
"Pattern (regex)": "Patroon (regex)",
|
|
@@ -769,7 +782,29 @@
|
|
|
769
782
|
"AI assistant": "AI-assistent",
|
|
770
783
|
"Message input": "Berichtinvoer",
|
|
771
784
|
"Start new chat": "Nieuwe chat starten",
|
|
772
|
-
"History": "
|
|
785
|
+
"History": "Historie",
|
|
786
|
+
"No audit entries yet": "Nog geen wijzigingen vastgelegd",
|
|
787
|
+
"Meetings": "Afspraken",
|
|
788
|
+
"No meetings": "Geen afspraken",
|
|
789
|
+
"Open in Calendar": "Openen in Agenda",
|
|
790
|
+
"(no title)": "(geen titel)",
|
|
791
|
+
"Could not load meetings.": "De afspraken konden niet worden geladen.",
|
|
792
|
+
"Could not load meeting.": "De afspraak kon niet worden geladen.",
|
|
793
|
+
"Calendar is currently unavailable.": "De agenda is nu niet beschikbaar.",
|
|
794
|
+
"Show all {count} fields": "Alle {count} velden tonen",
|
|
795
|
+
"Show less": "Minder tonen",
|
|
796
|
+
"{count} more": "Nog {count}",
|
|
797
|
+
"Identifier: {identifier}": "Kenmerk: {identifier}",
|
|
798
|
+
"What happened, who did it and when, newest first": "Wat er gebeurde, door wie en wanneer, nieuwste eerst",
|
|
799
|
+
"{app} is not installed": "{app} is niet geïnstalleerd",
|
|
800
|
+
"Install and enable the {app} app to see this.": "Installeer en activeer de app {app} om dit te zien.",
|
|
801
|
+
"{title} needs the {app} app. Install and enable it to see this.": "{title} heeft de app {app} nodig. Installeer en activeer die om dit te zien.",
|
|
802
|
+
"View all ({total})": "Alles bekijken ({total})",
|
|
803
|
+
"No items": "Geen items",
|
|
804
|
+
"Nothing here yet": "Hier staat nog niets",
|
|
805
|
+
"This list could not be loaded.": "Deze lijst kon niet worden geladen.",
|
|
806
|
+
"No items match this filter": "Geen items voldoen aan dit filter",
|
|
807
|
+
"Could not load these records": "Deze gegevens konden niet worden geladen",
|
|
773
808
|
"No conversations yet": "Nog geen gesprekken",
|
|
774
809
|
"Connecting...": "Verbinden...",
|
|
775
810
|
"Loading conversations...": "Gesprekken laden...",
|
|
@@ -1360,9 +1395,84 @@
|
|
|
1360
1395
|
"Filter by {column}, active": "Filteren op {column}, actief",
|
|
1361
1396
|
"Turn notifications off": "Meldingen uitzetten",
|
|
1362
1397
|
"Turn notifications on": "Meldingen aanzetten",
|
|
1363
|
-
"Could not change notifications.": "Meldingen konden niet worden gewijzigd."
|
|
1398
|
+
"Could not change notifications.": "Meldingen konden niet worden gewijzigd.",
|
|
1399
|
+
"Actions for the selection": "Acties voor de selectie",
|
|
1400
|
+
"Active:": "Actief:",
|
|
1401
|
+
"Filter": "Filter",
|
|
1402
|
+
"List": "Lijst",
|
|
1403
|
+
"Map": "Kaart",
|
|
1404
|
+
"Remove filter: {label}": "Filter verwijderen: {label}",
|
|
1405
|
+
"Search and columns": "Zoeken en kolommen",
|
|
1406
|
+
"Sort by": "Sorteren op",
|
|
1407
|
+
"View mode": "Weergave",
|
|
1408
|
+
"With the selected {plural}": "Met de geselecteerde {plural}",
|
|
1409
|
+
"items": "items",
|
|
1410
|
+
"{count} active": "{count} actief",
|
|
1411
|
+
"Delete \"{name}\"": "\"{name}\" verwijderen",
|
|
1412
|
+
"No saved views yet": "Nog geen opgeslagen weergaven",
|
|
1413
|
+
"No views with this label": "Geen weergaven met dit label",
|
|
1414
|
+
"Save current view…": "Huidige weergave opslaan…",
|
|
1415
|
+
"Save view": "Weergave opslaan",
|
|
1416
|
+
"Saved views": "Opgeslagen weergaven",
|
|
1417
|
+
"Show only views labelled \"{label}\"": "Alleen weergaven met label \"{label}\" tonen",
|
|
1418
|
+
"Stop filtering on \"{label}\"": "Niet meer filteren op \"{label}\"",
|
|
1419
|
+
"{name}, level {level}": "{name}, niveau {level}",
|
|
1420
|
+
"{name}. Parts of this view come from one you cannot see.": "{name}. Delen van deze weergave komen uit een weergave die u niet kunt zien.",
|
|
1421
|
+
"More filters": "Meer filters",
|
|
1422
|
+
"Quick filters": "Snelfilters",
|
|
1423
|
+
"{count} filters": "{count} filters",
|
|
1424
|
+
"{count} more filters": "{count} filters meer",
|
|
1425
|
+
"{label} — show the other filters": "{label}, toon de andere filters",
|
|
1426
|
+
"A file or folder with that name is already here": "Hier staat al een bestand of map met die naam",
|
|
1427
|
+
"A file with that name is already here": "Hier staat al een bestand met die naam",
|
|
1428
|
+
"A name cannot contain a slash": "Een naam kan geen schuine streep bevatten",
|
|
1429
|
+
"Actions for {name}": "Acties voor {name}",
|
|
1430
|
+
"Download": "Downloaden",
|
|
1431
|
+
"Drop files here, or use New": "Sleep bestanden hierheen, of gebruik Nieuw",
|
|
1432
|
+
"Folder name": "Mapnaam",
|
|
1433
|
+
"Modified": "Gewijzigd",
|
|
1434
|
+
"New": "Nieuw",
|
|
1435
|
+
"New folder": "Nieuwe map",
|
|
1436
|
+
"New name": "Nieuwe naam",
|
|
1437
|
+
"Rename": "Naam wijzigen",
|
|
1438
|
+
"Show in Files": "Tonen in Bestanden",
|
|
1439
|
+
"Size": "Grootte",
|
|
1440
|
+
"The folder could not be created": "De map kon niet worden gemaakt",
|
|
1441
|
+
"The folder could not be read": "De map kon niet worden gelezen",
|
|
1442
|
+
"The name could not be changed": "De naam kon niet worden gewijzigd",
|
|
1443
|
+
"The upload failed": "Het uploaden is mislukt",
|
|
1444
|
+
"This folder is empty": "Deze map is leeg",
|
|
1445
|
+
"This folder no longer exists": "Deze map bestaat niet meer",
|
|
1446
|
+
"Try again": "Opnieuw proberen",
|
|
1447
|
+
"Upload files": "Bestanden uploaden",
|
|
1448
|
+
"You cannot see this folder": "Je kunt deze map niet zien",
|
|
1449
|
+
"{action} did not succeed": "{action} is niet gelukt",
|
|
1450
|
+
"Error:": "Fout:",
|
|
1451
|
+
"Copy link": "Link kopiëren",
|
|
1452
|
+
"Details and sharing": "Details en delen",
|
|
1453
|
+
"Link copied": "Link gekopieerd",
|
|
1454
|
+
"Share uploaded files": "Geüploade bestanden delen",
|
|
1455
|
+
"The link could not be copied": "De link kon niet worden gekopieerd",
|
|
1456
|
+
"Invalid JSON: {msg}": "Ongeldige JSON: {msg}",
|
|
1457
|
+
"Loading the fields this choice adds.": "De velden van deze keuze worden geladen.",
|
|
1458
|
+
"Restore": "Herstellen",
|
|
1459
|
+
"Save draft": "Concept opslaan",
|
|
1460
|
+
"Saved {title}": "{title} opgeslagen",
|
|
1461
|
+
"Saved, but some rows were not saved: {rows}": "Opgeslagen, maar sommige rijen zijn niet opgeslagen: {rows}",
|
|
1462
|
+
"The list of choices could not be loaded. Enter the value by hand.": "De keuzelijst kon niet worden geladen. Vul de waarde zelf in.",
|
|
1463
|
+
"You have unsaved changes from an earlier visit.": "Je hebt niet-opgeslagen wijzigingen van een eerder bezoek.",
|
|
1464
|
+
"no longer offered": "niet meer beschikbaar",
|
|
1465
|
+
"1 day left": "Nog 1 dag",
|
|
1466
|
+
"{count} days left": "Nog {count} dagen",
|
|
1467
|
+
"1 day overdue": "1 dag te laat",
|
|
1468
|
+
"{count} days overdue": "{count} dagen te laat",
|
|
1469
|
+
"{view}: not available on this list": "{view}: niet beschikbaar in deze lijst"
|
|
1364
1470
|
},
|
|
1365
1471
|
"plurals": {
|
|
1472
|
+
"{count} selected": [
|
|
1473
|
+
"{count} geselecteerd",
|
|
1474
|
+
"{count} geselecteerd"
|
|
1475
|
+
],
|
|
1366
1476
|
"%n year": [
|
|
1367
1477
|
"%n jaar",
|
|
1368
1478
|
"%n jaar"
|
|
@@ -1371,6 +1481,10 @@
|
|
|
1371
1481
|
"%n maand",
|
|
1372
1482
|
"%n maanden"
|
|
1373
1483
|
],
|
|
1484
|
+
"%n hour": [
|
|
1485
|
+
"%n uur",
|
|
1486
|
+
"%n uur"
|
|
1487
|
+
],
|
|
1374
1488
|
"%n day": [
|
|
1375
1489
|
"%n dag",
|
|
1376
1490
|
"%n dagen"
|
|
@@ -1426,6 +1540,10 @@
|
|
|
1426
1540
|
"in {count} day": [
|
|
1427
1541
|
"over {count} dag",
|
|
1428
1542
|
"over {count} dagen"
|
|
1543
|
+
],
|
|
1544
|
+
"{count} more filter": [
|
|
1545
|
+
"Nog {count} filter",
|
|
1546
|
+
"Nog {count} filters"
|
|
1429
1547
|
]
|
|
1430
1548
|
}
|
|
1431
1549
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@conduction/nextcloud-vue",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.80.0",
|
|
4
4
|
"description": "Shared Vue component library for Conduction Nextcloud apps — complements @nextcloud/vue with higher-level components, OpenRegister integration, and NL Design System support",
|
|
5
5
|
"homepage": "https://github.com/ConductionNL/nextcloud-vue#readme",
|
|
6
6
|
"bugs": {
|
|
@@ -148,6 +148,32 @@ if (/require\("ajv-formats/.test(moduleCode)) {
|
|
|
148
148
|
throw new Error('build-validators: a require("ajv-formats…") reference survived inlining — the standalone validator is not self-contained')
|
|
149
149
|
}
|
|
150
150
|
|
|
151
|
+
// Inline Ajv's runtime helpers for the same reason. The standalone output
|
|
152
|
+
// emits `require("ajv/dist/runtime/ucs2length").default` (every `minLength` /
|
|
153
|
+
// `maxLength`) and `require("ajv/dist/runtime/equal").default` (`enum` / `const`
|
|
154
|
+
// on objects). Rollup turns each into a bare side-effect import that fills an
|
|
155
|
+
// `__exports` object, and a consumer's webpack drops that import because the
|
|
156
|
+
// library's `sideEffects` allowlist does not name it. `.default` is then
|
|
157
|
+
// undefined, the validator throws "f is not a function" on the first string it
|
|
158
|
+
// length-checks, and useAppManifest's catch-all kept the bundled manifest: the
|
|
159
|
+
// `/api/manifest` delta never reached the navigation (observed 2026-10-10 on
|
|
160
|
+
// dossiq). Both helpers are self-contained functions (fast-deep-equal recurses
|
|
161
|
+
// through its own name), so their source inlines as is.
|
|
162
|
+
moduleCode = moduleCode.replace(
|
|
163
|
+
/require\("ajv\/dist\/runtime\/([A-Za-z0-9_]+)"\)\.default/g,
|
|
164
|
+
(_match, name) => {
|
|
165
|
+
const fn = require(`ajv/dist/runtime/${name}`).default
|
|
166
|
+
if (typeof fn !== 'function') {
|
|
167
|
+
throw new Error(`build-validators: ajv runtime helper "${name}" is not a function and cannot be inlined`)
|
|
168
|
+
}
|
|
169
|
+
return `(${fn.toString()})`
|
|
170
|
+
},
|
|
171
|
+
)
|
|
172
|
+
|
|
173
|
+
if (/require\(/.test(moduleCode)) {
|
|
174
|
+
throw new Error('build-validators: a require(…) survived inlining — the standalone validator is not self-contained')
|
|
175
|
+
}
|
|
176
|
+
|
|
151
177
|
const banner = `// SPDX-License-Identifier: EUPL-1.2
|
|
152
178
|
// Copyright (C) 2026 Conduction B.V.
|
|
153
179
|
//
|
|
@@ -175,6 +175,8 @@
|
|
|
175
175
|
:register="formRegister"
|
|
176
176
|
:initialData="formInitialValues || {}"
|
|
177
177
|
:dialogTitle="tr(formEntry.formTitle) || ''"
|
|
178
|
+
:eyebrow="tr(formEntry.formEyebrow) || ''"
|
|
179
|
+
:subtitle="tr(formEntry.formSubtitle) || ''"
|
|
178
180
|
:includeFields="formEntry.includeFields || null"
|
|
179
181
|
:excludeFields="formEntry.excludeFields || []"
|
|
180
182
|
:fieldOverrides="formEntry.fieldOverrides || {}"
|
|
@@ -222,3 +222,7 @@ Controlling the inline action button count — `inlineActionCount` sets how many
|
|
|
222
222
|
`showBuildiqButton` is documented in the prop table of the component reference (board look, screens-chrome-parity).
|
|
223
223
|
|
|
224
224
|
Slot `actions-end`: custom buttons after the primary Add button (CnIndexPage's saved views). Under the board look it renders in row 1, after the quick-filter chips.
|
|
225
|
+
|
|
226
|
+
### Disabled view segments
|
|
227
|
+
|
|
228
|
+
Under the board look `disabledViewModes` (an array of modes) draws view switch segments the page cannot open, in the fixed order table, cards, board, map, disabled and titled "<mode>: not available on this list". A mode that is also offered renders once, enabled. `CnIndexPage` fills it from `config.viewSwitch`.
|
|
@@ -18,45 +18,57 @@
|
|
|
18
18
|
@description Under the board look: saved views as chips and the Save view button, in row 1 after the quick-filter chips.
|
|
19
19
|
-->
|
|
20
20
|
<slot name="actions-end" />
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
:aria-label="
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
:
|
|
53
|
-
|
|
54
|
-
class="cn-actions-bar__view-toggle-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
:
|
|
58
|
-
|
|
59
|
-
|
|
21
|
+
<!--
|
|
22
|
+
Filter and the view switch are one unit: when row 1 is full they
|
|
23
|
+
wrap together to the start of the next line (the DqZaken board),
|
|
24
|
+
never the switch alone.
|
|
25
|
+
-->
|
|
26
|
+
<div v-if="showSidebarToggle || (showViewToggle && viewSegments.length > 1)"
|
|
27
|
+
class="cn-actions-bar__view-controls"
|
|
28
|
+
data-testid="cn-actions-bar-view-controls">
|
|
29
|
+
<NcButton v-if="showSidebarToggle"
|
|
30
|
+
variant="secondary"
|
|
31
|
+
class="cn-actions-bar__filter-button"
|
|
32
|
+
data-testid="cn-actions-bar-filter-button"
|
|
33
|
+
:pressed="sidebarOpen"
|
|
34
|
+
@click="$emit('toggle-sidebar')">
|
|
35
|
+
<template #icon>
|
|
36
|
+
<Tune :size="16" />
|
|
37
|
+
</template>
|
|
38
|
+
{{ t('nextcloud-vue', 'Filter') }}
|
|
39
|
+
<span
|
|
40
|
+
v-if="filterCount > 0"
|
|
41
|
+
class="cn-actions-bar__filter-badge"
|
|
42
|
+
data-testid="cn-actions-bar-filter-badge"
|
|
43
|
+
:aria-label="filterCountLabel">{{ filterCount }}</span>
|
|
44
|
+
</NcButton>
|
|
45
|
+
<div v-if="showViewToggle && viewSegments.length > 1"
|
|
46
|
+
class="cn-actions-bar__view-toggle"
|
|
47
|
+
role="group"
|
|
48
|
+
:aria-label="t('nextcloud-vue', 'View mode')">
|
|
49
|
+
<!-- A segment the page cannot open (`disabledViewModes`) is drawn, as the board does, but disabled and named so. -->
|
|
50
|
+
<button
|
|
51
|
+
v-for="seg in viewSegments"
|
|
52
|
+
:key="seg.mode"
|
|
53
|
+
type="button"
|
|
54
|
+
class="cn-actions-bar__view-toggle-btn"
|
|
55
|
+
:class="{ 'cn-actions-bar__view-toggle-btn--active': viewMode === seg.mode, 'cn-actions-bar__view-toggle-btn--disabled': seg.disabled }"
|
|
56
|
+
:aria-pressed="viewMode === seg.mode"
|
|
57
|
+
:aria-label="seg.label"
|
|
58
|
+
:title="seg.disabled ? unavailableViewLabel(seg.label) : seg.label"
|
|
59
|
+
:disabled="seg.disabled"
|
|
60
|
+
:data-mode="seg.mode"
|
|
61
|
+
@click="seg.disabled || $emit('view-mode-change', seg.mode)">
|
|
62
|
+
<CnIcon v-if="seg.icon"
|
|
63
|
+
:name="seg.icon"
|
|
64
|
+
:size="18"
|
|
65
|
+
class="cn-actions-bar__view-toggle-icon" />
|
|
66
|
+
<component :is="seg.boardFallback || seg.fallback"
|
|
67
|
+
v-else
|
|
68
|
+
:size="18"
|
|
69
|
+
class="cn-actions-bar__view-toggle-icon" />
|
|
70
|
+
</button>
|
|
71
|
+
</div>
|
|
60
72
|
</div>
|
|
61
73
|
</div>
|
|
62
74
|
<div v-if="!isBoardLayout" class="cn-actions-bar__info">
|
|
@@ -518,6 +530,7 @@ import CalendarMonthOutline from 'vue-material-design-icons/CalendarMonthOutline
|
|
|
518
530
|
import Close from 'vue-material-design-icons/Close.vue'
|
|
519
531
|
import ContentCopy from 'vue-material-design-icons/ContentCopy.vue'
|
|
520
532
|
import Export from 'vue-material-design-icons/Export.vue'
|
|
533
|
+
import FormatListBulleted from 'vue-material-design-icons/FormatListBulleted.vue'
|
|
521
534
|
import FormatListBulletedSquare from 'vue-material-design-icons/FormatListBulletedSquare.vue'
|
|
522
535
|
import Import from 'vue-material-design-icons/Import.vue'
|
|
523
536
|
import Magnify from 'vue-material-design-icons/Magnify.vue'
|
|
@@ -576,6 +589,7 @@ export default {
|
|
|
576
589
|
Tune,
|
|
577
590
|
ViewColumnOutline,
|
|
578
591
|
ViewGridOutline,
|
|
592
|
+
FormatListBulleted,
|
|
579
593
|
FormatListBulletedSquare,
|
|
580
594
|
CalendarMonthOutline,
|
|
581
595
|
MapMarkerOutline,
|
|
@@ -625,6 +639,19 @@ export default {
|
|
|
625
639
|
default: () => [],
|
|
626
640
|
},
|
|
627
641
|
|
|
642
|
+
/**
|
|
643
|
+
* Board look: view modes the switch draws although the page cannot
|
|
644
|
+
* open them, as disabled segments (the boards always draw table, cards,
|
|
645
|
+
* board and map). Ignored without the board look.
|
|
646
|
+
*
|
|
647
|
+
* @type {Array<string>}
|
|
648
|
+
* @spec openspec/changes/screens-view-switch-parity/specs/view-switch-board-look/spec.md#requirement-the-manifest-can-draw-segments-the-page-cannot-open
|
|
649
|
+
*/
|
|
650
|
+
disabledViewModes: {
|
|
651
|
+
type: Array,
|
|
652
|
+
default: () => [],
|
|
653
|
+
},
|
|
654
|
+
|
|
628
655
|
/**
|
|
629
656
|
* The number on the Filter button's badge. Empty (`null`) counts the
|
|
630
657
|
* `activeFilterChips`.
|
|
@@ -1156,11 +1183,15 @@ export default {
|
|
|
1156
1183
|
// only when the page offers it. A mode the board switch does not
|
|
1157
1184
|
// name (list, calendar) follows, so it is never lost.
|
|
1158
1185
|
defs.board = { label: t('nextcloud-vue', 'Board'), icon: '', fallback: ViewColumnOutline }
|
|
1186
|
+
// The board's list icon: plain bullets, not the boxed ones.
|
|
1187
|
+
defs.table.boardFallback = FormatListBulleted
|
|
1188
|
+
const disabled = (this.disabledViewModes || []).filter((mode) => !modes.includes(mode))
|
|
1189
|
+
const all = [...modes, ...disabled]
|
|
1159
1190
|
const fixed = ['table', 'cards', 'board', 'map']
|
|
1160
|
-
const rest =
|
|
1161
|
-
return [...fixed.filter((mode) =>
|
|
1191
|
+
const rest = all.filter((mode) => !fixed.includes(mode))
|
|
1192
|
+
return [...fixed.filter((mode) => all.includes(mode)), ...rest]
|
|
1162
1193
|
.filter((mode) => defs[mode])
|
|
1163
|
-
.map((mode) => ({ mode, ...defs[mode] }))
|
|
1194
|
+
.map((mode) => ({ mode, ...defs[mode], disabled: disabled.includes(mode) }))
|
|
1164
1195
|
}
|
|
1165
1196
|
return modes
|
|
1166
1197
|
.filter((mode) => defs[mode])
|
|
@@ -1219,6 +1250,16 @@ export default {
|
|
|
1219
1250
|
},
|
|
1220
1251
|
|
|
1221
1252
|
methods: {
|
|
1253
|
+
/**
|
|
1254
|
+
* The tooltip of a segment the page cannot open.
|
|
1255
|
+
*
|
|
1256
|
+
* @param {string} label The segment's name.
|
|
1257
|
+
* @return {string} "Map: not available on this list".
|
|
1258
|
+
*/
|
|
1259
|
+
unavailableViewLabel(label) {
|
|
1260
|
+
return t('nextcloud-vue', '{view}: not available on this list', { view: label })
|
|
1261
|
+
},
|
|
1262
|
+
|
|
1222
1263
|
/**
|
|
1223
1264
|
* The accessible name of a filter chip's remove button.
|
|
1224
1265
|
*
|
|
@@ -3724,6 +3724,7 @@ export default {
|
|
|
3724
3724
|
* entry continues there (local mirror + per-user preference).
|
|
3725
3725
|
*
|
|
3726
3726
|
* @spec openspec/changes/walkthrough-advance-pause-resume/specs/cn-walkthrough/spec.md
|
|
3727
|
+
* @spec openspec/changes/walkthrough-autostart-and-countdown-dutch/specs/walkthrough-autostart-and-countdown-dutch/spec.md#requirement-a-tour-that-opens-on-its-own-opens-once
|
|
3727
3728
|
* @param {object} progress `{ tourId, stepId, index }` from CnWalkthrough.
|
|
3728
3729
|
* @return {void}
|
|
3729
3730
|
*/
|
|
@@ -3731,9 +3732,18 @@ export default {
|
|
|
3731
3732
|
if (!progress || !progress.tourId) {
|
|
3732
3733
|
return
|
|
3733
3734
|
}
|
|
3734
|
-
//
|
|
3735
|
-
// so it
|
|
3735
|
+
// A fresh tour that opens on its own is recorded as paused at its
|
|
3736
|
+
// first step, so a user who never touches it does not get it again
|
|
3737
|
+
// on every page load; "Continue" in the settings brings it back.
|
|
3738
|
+
// Kept out of memory so the open tour runs on as it is.
|
|
3736
3739
|
if (progress.index === 0 && !this.walkthroughProgressValue) {
|
|
3740
|
+
persistWalkthroughProgress(this.appId, this.walkthroughConfigKey, {
|
|
3741
|
+
tourId: progress.tourId,
|
|
3742
|
+
stepId: progress.stepId || '',
|
|
3743
|
+
index: 0,
|
|
3744
|
+
version: String((this.manifest && this.manifest.version) || ''),
|
|
3745
|
+
paused: true,
|
|
3746
|
+
})
|
|
3737
3747
|
return
|
|
3738
3748
|
}
|
|
3739
3749
|
const value = {
|