@conduction/nextcloud-vue 2.62.0 → 2.64.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/esm/components/CnAdminActionCard/CnAdminActionCard.vue.js +10 -0
- package/dist/esm/components/CnAdminActionCard/CnAdminActionCard.vue.js.map +1 -0
- package/dist/esm/components/CnAdminActionCard/CnAdminActionCard.vue2.js +189 -0
- package/dist/esm/components/CnAdminActionCard/CnAdminActionCard.vue2.js.map +1 -0
- package/dist/esm/components/CnAdminActionCard/CnAdminActionCard.vue3.js +72 -0
- package/dist/esm/components/CnAdminActionCard/CnAdminActionCard.vue3.js.map +1 -0
- package/dist/esm/components/CnAppNav/CnAppNav.vue2.js +425 -39
- package/dist/esm/components/CnAppNav/CnAppNav.vue2.js.map +1 -1
- package/dist/esm/components/CnAppNav/CnAppNav.vue3.js +119 -42
- package/dist/esm/components/CnAppNav/CnAppNav.vue3.js.map +1 -1
- package/dist/esm/components/CnAppRoot/CnAppRoot.vue2.js +186 -9
- package/dist/esm/components/CnAppRoot/CnAppRoot.vue2.js.map +1 -1
- package/dist/esm/components/CnAppRoot/CnAppRoot.vue3.js +65 -42
- package/dist/esm/components/CnAppRoot/CnAppRoot.vue3.js.map +1 -1
- package/dist/esm/components/CnAuditTrailCard/CnAuditTrailCard.vue2.js +61 -16
- package/dist/esm/components/CnAuditTrailCard/CnAuditTrailCard.vue2.js.map +1 -1
- package/dist/esm/components/CnAuditTrailCard/CnAuditTrailCard.vue3.js.map +1 -1
- package/dist/esm/components/CnAuditTrailWidget/CnAuditTrailWidget.vue2.js +20 -0
- package/dist/esm/components/CnAuditTrailWidget/CnAuditTrailWidget.vue2.js.map +1 -1
- package/dist/esm/components/CnAuditTrailWidget/CnAuditTrailWidget.vue3.js +3 -2
- package/dist/esm/components/CnAuditTrailWidget/CnAuditTrailWidget.vue3.js.map +1 -1
- package/dist/esm/components/CnCellRenderer/CnCellRenderer.vue2.js +33 -2
- package/dist/esm/components/CnCellRenderer/CnCellRenderer.vue2.js.map +1 -1
- package/dist/esm/components/CnCellRenderer/CnCellRenderer.vue3.js.map +1 -1
- package/dist/esm/components/CnChoiceCards/CnChoiceCards.vue2.js.map +1 -1
- package/dist/esm/components/CnChoiceCards/CnChoiceCards.vue3.js +53 -37
- package/dist/esm/components/CnChoiceCards/CnChoiceCards.vue3.js.map +1 -1
- package/dist/esm/components/CnDashboardPage/CnDashboardPage.vue2.js +29 -0
- package/dist/esm/components/CnDashboardPage/CnDashboardPage.vue2.js.map +1 -1
- package/dist/esm/components/CnDashboardPage/CnDashboardPage.vue3.js +152 -135
- package/dist/esm/components/CnDashboardPage/CnDashboardPage.vue3.js.map +1 -1
- package/dist/esm/components/CnDataTable/CnColumnFilterPopover.vue.js +10 -0
- package/dist/esm/components/CnDataTable/CnColumnFilterPopover.vue.js.map +1 -0
- package/dist/esm/components/CnDataTable/CnColumnFilterPopover.vue2.js +293 -0
- package/dist/esm/components/CnDataTable/CnColumnFilterPopover.vue2.js.map +1 -0
- package/dist/esm/components/CnDataTable/CnColumnFilterPopover.vue3.js +189 -0
- package/dist/esm/components/CnDataTable/CnColumnFilterPopover.vue3.js.map +1 -0
- package/dist/esm/components/CnDataTable/CnDataTable.vue2.js +253 -9
- package/dist/esm/components/CnDataTable/CnDataTable.vue2.js.map +1 -1
- package/dist/esm/components/CnDataTable/CnDataTable.vue3.js +126 -50
- package/dist/esm/components/CnDataTable/CnDataTable.vue3.js.map +1 -1
- package/dist/esm/components/CnDetailPage/CnDetailPage.vue2.js +66 -14
- package/dist/esm/components/CnDetailPage/CnDetailPage.vue2.js.map +1 -1
- package/dist/esm/components/CnDetailPage/CnDetailPage.vue3.js +23 -14
- package/dist/esm/components/CnDetailPage/CnDetailPage.vue3.js.map +1 -1
- package/dist/esm/components/CnDetailWidgetHost/CnDetailWidgetHost.vue2.js.map +1 -1
- package/dist/esm/components/CnDetailWidgetHost/CnDetailWidgetHost.vue3.js +2 -1
- package/dist/esm/components/CnDetailWidgetHost/CnDetailWidgetHost.vue3.js.map +1 -1
- package/dist/esm/components/CnFieldHelper/CnFieldHelper.vue2.js +3 -1
- package/dist/esm/components/CnFieldHelper/CnFieldHelper.vue2.js.map +1 -1
- package/dist/esm/components/CnFieldHelper/CnFieldHelper.vue3.js +1 -1
- package/dist/esm/components/CnFieldHelper/CnFieldHelper.vue3.js.map +1 -1
- package/dist/esm/components/CnFormDialog/CnFormDialog.vue2.js +234 -9
- package/dist/esm/components/CnFormDialog/CnFormDialog.vue2.js.map +1 -1
- package/dist/esm/components/CnFormDialog/CnFormDialog.vue3.js +96 -57
- package/dist/esm/components/CnFormDialog/CnFormDialog.vue3.js.map +1 -1
- package/dist/esm/components/CnHeaderWidget/CnHeaderWidget.vue2.js +81 -4
- package/dist/esm/components/CnHeaderWidget/CnHeaderWidget.vue2.js.map +1 -1
- package/dist/esm/components/CnHeaderWidget/CnHeaderWidget.vue3.js +22 -5
- package/dist/esm/components/CnHeaderWidget/CnHeaderWidget.vue3.js.map +1 -1
- package/dist/esm/components/CnIndexPage/CnIndexPage.vue2.js +81 -2
- package/dist/esm/components/CnIndexPage/CnIndexPage.vue2.js.map +1 -1
- package/dist/esm/components/CnIndexPage/CnIndexPage.vue3.js +7 -3
- package/dist/esm/components/CnIndexPage/CnIndexPage.vue3.js.map +1 -1
- package/dist/esm/components/CnIndexPage/selfModeActions.js +3 -3
- package/dist/esm/components/CnIndexPage/selfModeActions.js.map +1 -1
- package/dist/esm/components/CnObjectListWidget/CnObjectListWidget.vue2.js +41 -2
- package/dist/esm/components/CnObjectListWidget/CnObjectListWidget.vue2.js.map +1 -1
- package/dist/esm/components/CnObjectListWidget/CnObjectListWidget.vue3.js +8 -3
- package/dist/esm/components/CnObjectListWidget/CnObjectListWidget.vue3.js.map +1 -1
- package/dist/esm/components/CnResourceSelect/CnResourceSelect.vue2.js +121 -12
- package/dist/esm/components/CnResourceSelect/CnResourceSelect.vue2.js.map +1 -1
- package/dist/esm/components/CnResourceSelect/CnResourceSelect.vue3.js +3 -1
- package/dist/esm/components/CnResourceSelect/CnResourceSelect.vue3.js.map +1 -1
- package/dist/esm/components/CnSetupWizard/CnSetupWizard.vue2.js +326 -1
- package/dist/esm/components/CnSetupWizard/CnSetupWizard.vue2.js.map +1 -1
- package/dist/esm/components/CnSetupWizard/CnSetupWizard.vue3.js +112 -26
- package/dist/esm/components/CnSetupWizard/CnSetupWizard.vue3.js.map +1 -1
- package/dist/esm/components/CnStagesWidget/CnStagesWidget.vue2.js +63 -2
- package/dist/esm/components/CnStagesWidget/CnStagesWidget.vue2.js.map +1 -1
- package/dist/esm/components/CnStagesWidget/CnStagesWidget.vue3.js +96 -37
- package/dist/esm/components/CnStagesWidget/CnStagesWidget.vue3.js.map +1 -1
- package/dist/esm/components/CnStagesWidget/stagesModel.js +5 -2
- package/dist/esm/components/CnStagesWidget/stagesModel.js.map +1 -1
- package/dist/esm/components/CnStatWidget/CnStatWidget.vue2.js +52 -2
- package/dist/esm/components/CnStatWidget/CnStatWidget.vue2.js.map +1 -1
- package/dist/esm/components/CnStatWidget/CnStatWidget.vue3.js +6 -6
- package/dist/esm/components/CnStatWidget/CnStatWidget.vue3.js.map +1 -1
- package/dist/esm/components/CnTabsWidget/CnTabsWidget.vue2.js +14 -2
- package/dist/esm/components/CnTabsWidget/CnTabsWidget.vue2.js.map +1 -1
- package/dist/esm/components/CnTabsWidget/CnTabsWidget.vue3.js +2 -1
- package/dist/esm/components/CnTabsWidget/CnTabsWidget.vue3.js.map +1 -1
- package/dist/esm/components/CnTimelineWidget/CnTimelineWidget.vue.js +10 -0
- package/dist/esm/components/CnTimelineWidget/CnTimelineWidget.vue.js.map +1 -0
- package/dist/esm/components/CnTimelineWidget/CnTimelineWidget.vue2.js +337 -0
- package/dist/esm/components/CnTimelineWidget/CnTimelineWidget.vue2.js.map +1 -0
- package/dist/esm/components/CnTimelineWidget/CnTimelineWidget.vue3.js +102 -0
- package/dist/esm/components/CnTimelineWidget/CnTimelineWidget.vue3.js.map +1 -0
- package/dist/esm/components/CnTimelineWidget/dashboardRegistration.js +34 -0
- package/dist/esm/components/CnTimelineWidget/dashboardRegistration.js.map +1 -0
- package/dist/esm/components/CnWalkthrough/CnWalkthrough.vue2.js +131 -8
- package/dist/esm/components/CnWalkthrough/CnWalkthrough.vue2.js.map +1 -1
- package/dist/esm/components/CnWalkthrough/CnWalkthrough.vue3.js +40 -38
- package/dist/esm/components/CnWalkthrough/CnWalkthrough.vue3.js.map +1 -1
- package/dist/esm/components/CnWidgetGrid/builtInWidgets.js +8 -6
- package/dist/esm/components/CnWidgetGrid/builtInWidgets.js.map +1 -1
- package/dist/esm/components/CnWidgetGrid/registerDashboardWidgets.js +1 -0
- package/dist/esm/components/CnWidgetGrid/registerDashboardWidgets.js.map +1 -1
- package/dist/esm/components/CnWidgetWrapper/CnWidgetWrapper.vue2.js +73 -1
- package/dist/esm/components/CnWidgetWrapper/CnWidgetWrapper.vue2.js.map +1 -1
- package/dist/esm/components/CnWidgetWrapper/CnWidgetWrapper.vue3.js +14 -2
- package/dist/esm/components/CnWidgetWrapper/CnWidgetWrapper.vue3.js.map +1 -1
- package/dist/esm/components/CnWizardDialog/CnWizardDialog.vue2.js +19 -0
- package/dist/esm/components/CnWizardDialog/CnWizardDialog.vue2.js.map +1 -1
- package/dist/esm/components/CnWizardDialog/CnWizardDialog.vue3.js +1 -1
- package/dist/esm/components/CnWizardDialog/CnWizardDialog.vue3.js.map +1 -1
- package/dist/esm/composables/useDependencyCheck.js +65 -0
- package/dist/esm/composables/useDependencyCheck.js.map +1 -0
- package/dist/esm/composables/useWalkthrough.js +218 -6
- package/dist/esm/composables/useWalkthrough.js.map +1 -1
- package/dist/esm/index.js +2 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/l10n/en.json.js +45 -1
- package/dist/esm/l10n/en.json.js.map +1 -1
- package/dist/esm/l10n/nl.json.js +45 -1
- package/dist/esm/l10n/nl.json.js.map +1 -1
- package/dist/esm/nextcloud-vue.css +780 -81
- package/dist/esm/store/useObjectStore.js +8 -0
- package/dist/esm/store/useObjectStore.js.map +1 -1
- package/dist/esm/utils/columnFilters.js +311 -0
- package/dist/esm/utils/columnFilters.js.map +1 -0
- package/dist/esm/utils/groupAutocomplete.js +123 -0
- package/dist/esm/utils/groupAutocomplete.js.map +1 -0
- package/dist/esm/utils/libraryWidgetKeys.js +2 -0
- package/dist/esm/utils/libraryWidgetKeys.js.map +1 -1
- package/dist/esm/utils/pickerOptions.js +198 -0
- package/dist/esm/utils/pickerOptions.js.map +1 -0
- package/dist/esm/utils/schema.js +83 -7
- package/dist/esm/utils/schema.js.map +1 -1
- package/dist/esm/utils/schemaRefSlug.js +19 -3
- package/dist/esm/utils/schemaRefSlug.js.map +1 -1
- package/dist/esm/utils/timelineEvents.js +174 -0
- package/dist/esm/utils/timelineEvents.js.map +1 -0
- package/dist/esm/utils/validateManifestV2.compiled.js +2 -2
- package/dist/esm/utils/validateManifestV2.compiled.js.map +1 -1
- package/dist/esm/utils/walkthroughSignals.js +88 -0
- package/dist/esm/utils/walkthroughSignals.js.map +1 -0
- package/dist/nextcloud-vue.cjs.js +13088 -7937
- package/dist/nextcloud-vue.cjs.js.map +2 -2
- package/dist/nextcloud-vue.css +780 -81
- package/l10n/en.json +45 -0
- package/l10n/nl.json +45 -0
- package/package.json +1 -1
- package/src/components/CnAdminActionCard/CnAdminActionCard.vue +234 -0
- package/src/components/CnAdminActionCard/index.js +4 -0
- package/src/components/CnAppNav/CnAppNav.vue +568 -43
- package/src/components/CnAppRoot/CnAppRoot.md +4 -0
- package/src/components/CnAppRoot/CnAppRoot.vue +223 -16
- package/src/components/CnAuditTrailCard/CnAuditTrailCard.vue +61 -16
- package/src/components/CnAuditTrailWidget/CnAuditTrailWidget.vue +22 -1
- package/src/components/CnCellRenderer/CnCellRenderer.vue +33 -2
- package/src/components/CnChoiceCards/CnChoiceCards.vue +56 -31
- package/src/components/CnDashboardPage/CnDashboardPage.vue +45 -4
- package/src/components/CnDataTable/CnColumnFilterPopover.vue +524 -0
- package/src/components/CnDataTable/CnDataTable.md +3 -0
- package/src/components/CnDataTable/CnDataTable.vue +305 -5
- package/src/components/CnDetailPage/CnDetailPage.md +4 -0
- package/src/components/CnDetailPage/CnDetailPage.vue +60 -1
- package/src/components/CnDetailWidgetHost/CnDetailWidgetHost.vue +2 -2
- package/src/components/CnFieldHelper/CnFieldHelper.vue +4 -2
- package/src/components/CnFormDialog/CnFormDialog.vue +290 -31
- package/src/components/CnHeaderWidget/CnHeaderWidget.vue +116 -6
- package/src/components/CnIndexPage/CnIndexPage.vue +87 -4
- package/src/components/CnIndexPage/selfModeActions.js +3 -3
- package/src/components/CnObjectListWidget/CnObjectListWidget.vue +46 -2
- package/src/components/CnResourceSelect/CnResourceSelect.vue +123 -12
- package/src/components/CnSetupWizard/CnSetupWizard.vue +392 -3
- package/src/components/CnStagesWidget/CnStagesWidget.vue +180 -2
- package/src/components/CnStagesWidget/stagesModel.js +5 -2
- package/src/components/CnStatWidget/CnStatWidget.vue +57 -3
- package/src/components/CnTabsWidget/CnTabsWidget.vue +15 -2
- package/src/components/CnTimelineWidget/CnTimelineWidget.vue +477 -0
- package/src/components/CnTimelineWidget/dashboardRegistration.js +32 -0
- package/src/components/CnTimelineWidget/index.js +4 -0
- package/src/components/CnWalkthrough/CnWalkthrough.vue +143 -10
- package/src/components/CnWidgetGrid/builtInWidgets.js +2 -0
- package/src/components/CnWidgetGrid/registerDashboardWidgets.js +1 -0
- package/src/components/CnWidgetWrapper/CnWidgetWrapper.md +4 -0
- package/src/components/CnWidgetWrapper/CnWidgetWrapper.vue +107 -1
- package/src/components/CnWizardDialog/CnWizardDialog.vue +20 -1
- package/src/components/index.js +2 -0
- package/src/composables/useDependencyCheck.js +61 -0
- package/src/composables/useWalkthrough.js +217 -5
- package/src/css/dashboard.css +49 -0
- package/src/css/detail-page.css +29 -4
- package/src/css/kpi-card.css +24 -1
- package/src/css/table.css +99 -6
- package/src/index.js +2 -0
- package/src/schemas/app-manifest-v2.schema.json +135 -3
- package/src/store/useObjectStore.js +8 -0
- package/src/utils/columnFilters.js +324 -0
- package/src/utils/groupAutocomplete.js +119 -0
- package/src/utils/libraryWidgetKeys.js +2 -0
- package/src/utils/pickerOptions.js +194 -0
- package/src/utils/schema.js +83 -7
- package/src/utils/schemaRefSlug.js +19 -3
- package/src/utils/timelineEvents.js +171 -0
- package/src/utils/validateManifestV2.compiled.js +2 -2
- package/src/utils/walkthroughSignals.js +94 -0
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { dispatchObjectCreated } from '../../utils/walkthroughSignals.js';
|
|
1
2
|
import { cloneObjectForCopy, runSelfExportRequest, runSelfImportRequest } from './selfModeIO.js';
|
|
2
3
|
|
|
3
4
|
function resolveNameField(ctx) {
|
|
@@ -192,9 +193,8 @@ function createSelfModeActions(ctx) {
|
|
|
192
193
|
// @self.register/@self.schema are numeric DB ids, not slugs, so
|
|
193
194
|
// override with this page's own slug props (self-fetch mode
|
|
194
195
|
// guarantees ctx.schema() is already a string).
|
|
195
|
-
if (isCreate
|
|
196
|
-
|
|
197
|
-
window.dispatchEvent(new CustomEvent('cn-walkthrough:object-created', { detail }));
|
|
196
|
+
if (isCreate) {
|
|
197
|
+
dispatchObjectCreated({ register: ctx.register(), schema: ctx.schema(), object: saved });
|
|
198
198
|
}
|
|
199
199
|
refreshList(ctx);
|
|
200
200
|
if (isCreate && typeof ctx.afterCreateSuccess === 'function') {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"selfModeActions.js","sources":["../../../../src/components/CnIndexPage/selfModeActions.js"],"sourcesContent":["import {\n\tcloneObjectForCopy,\n\trunSelfExportRequest,\n\trunSelfImportRequest,\n} from './selfModeIO.js'\n\nfunction resolveNameField(ctx) {\n\treturn ctx.effectiveSchema()?.configuration?.objectNameField\n\t\t|| ctx.massActionNameField()\n}\n\nfunction findSource(ctx, id) {\n\treturn ctx.effectiveObjects().find((o) => o.id === id || o['@self']?.id === id)\n}\n\nfunction selfModeReady(ctx) {\n\treturn ctx.isSelfFetchMode() && !!ctx.selfObjectStore() && !!ctx.selfObjectType()\n}\n\nfunction refreshList(ctx) {\n\tconst list = ctx.list()\n\tif (list && typeof list.refresh === 'function') {\n\t\tlist.refresh()\n\t}\n}\n\nfunction storeError(ctx) {\n\treturn ctx.selfObjectStore()?.getError?.(ctx.selfObjectType())\n}\n\nfunction storeErrorMessage(ctx, fallback) {\n\tconst err = storeError(ctx)\n\treturn (err && err.message) || fallback\n}\n\n/**\n * Self-mode action handlers for CnIndexPage. Each `handle*` returns `true`\n * when self-mode handled it (caller should NOT emit), `false` otherwise.\n *\n * @param {object} ctx Accessor closures + emit/setResults forwarders.\n * @return {object}\n */\nexport function createSelfModeActions(ctx) {\n\tasync function handleSingleDelete(id) {\n\t\tif (!selfModeReady(ctx)) {\n\t\t\treturn false\n\t\t}\n\t\ttry {\n\t\t\tconst ok = await ctx.selfObjectStore().deleteObject(ctx.selfObjectType(), id)\n\t\t\tif (ok) {\n\t\t\t\tctx.setResults.singleDelete({ success: true })\n\t\t\t\tctx.emit('delete', id)\n\t\t\t\trefreshList(ctx)\n\t\t\t} else {\n\t\t\t\tctx.setResults.singleDelete({ error: storeErrorMessage(ctx, 'Delete failed') })\n\t\t\t}\n\t\t} catch (err) {\n\t\t\tctx.setResults.singleDelete({ error: (err && err.message) || 'Delete failed' })\n\t\t}\n\t\treturn true\n\t}\n\n\tasync function handleMassDelete(ids) {\n\t\tif (!selfModeReady(ctx)) {\n\t\t\treturn false\n\t\t}\n\t\ttry {\n\t\t\tconst { successfulIds, failedIds } = await ctx.selfObjectStore().deleteObjects(ctx.selfObjectType(), ids)\n\t\t\tif (failedIds.length === 0) {\n\t\t\t\tctx.setResults.massDelete({ success: true, successfulIds })\n\t\t\t} else {\n\t\t\t\tctx.setResults.massDelete({\n\t\t\t\t\terror: storeErrorMessage(ctx, `Failed to delete ${failedIds.length} item(s)`),\n\t\t\t\t\tsuccessfulIds,\n\t\t\t\t\tfailedIds,\n\t\t\t\t})\n\t\t\t}\n\t\t\trefreshList(ctx)\n\t\t} catch (err) {\n\t\t\tctx.setResults.massDelete({ error: (err && err.message) || 'Delete failed' })\n\t\t}\n\t\treturn true\n\t}\n\n\tasync function handleSingleCopy(payload) {\n\t\tif (!selfModeReady(ctx)) {\n\t\t\treturn false\n\t\t}\n\t\tconst { id, newName } = payload || {}\n\t\tconst source = findSource(ctx, id)\n\t\tif (!source) {\n\t\t\tctx.setResults.singleCopy({ error: 'Source object not found in current view' })\n\t\t\treturn true\n\t\t}\n\t\ttry {\n\t\t\tconst clone = cloneObjectForCopy(source, newName, resolveNameField(ctx))\n\t\t\tconst saved = await ctx.selfObjectStore().saveObject(ctx.selfObjectType(), clone)\n\t\t\tif (saved) {\n\t\t\t\tctx.setResults.singleCopy({ success: true })\n\t\t\t\tctx.emit('copy', payload)\n\t\t\t\trefreshList(ctx)\n\t\t\t} else {\n\t\t\t\tctx.setResults.singleCopy({ error: storeErrorMessage(ctx, 'Copy failed') })\n\t\t\t}\n\t\t} catch (err) {\n\t\t\tctx.setResults.singleCopy({ error: (err && err.message) || 'Copy failed' })\n\t\t}\n\t\treturn true\n\t}\n\n\tasync function handleMassCopy(payload) {\n\t\tif (!selfModeReady(ctx)) {\n\t\t\treturn false\n\t\t}\n\t\tconst ids = (payload && payload.ids) || []\n\t\tconst nameField = resolveNameField(ctx)\n\t\tconst getName = (payload && payload.getName) || ((item) => item[ctx.massActionNameField()])\n\t\tconst successfulIds = []\n\t\tconst failedIds = []\n\t\tfor (const id of ids) {\n\t\t\tconst source = findSource(ctx, id)\n\t\t\tif (!source) {\n\t\t\t\tfailedIds.push(id)\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tconst clone = cloneObjectForCopy(source, getName(source), nameField)\n\t\t\ttry {\n\t\t\t\tconst saved = await ctx.selfObjectStore().saveObject(ctx.selfObjectType(), clone)\n\t\t\t\tif (saved) {\n\t\t\t\t\tsuccessfulIds.push(id)\n\t\t\t\t} else {\n\t\t\t\t\tfailedIds.push(id)\n\t\t\t\t}\n\t\t\t} catch {\n\t\t\t\tfailedIds.push(id)\n\t\t\t}\n\t\t}\n\t\tif (failedIds.length === 0) {\n\t\t\tctx.setResults.massCopy({ success: true, successfulIds })\n\t\t} else {\n\t\t\tctx.setResults.massCopy({\n\t\t\t\terror: storeErrorMessage(ctx, `Failed to copy ${failedIds.length} item(s)`),\n\t\t\t\tsuccessfulIds,\n\t\t\t\tfailedIds,\n\t\t\t})\n\t\t}\n\t\trefreshList(ctx)\n\t\treturn true\n\t}\n\n\tasync function handleMassExport(payload) {\n\t\tif (!ctx.isSelfFetchMode() || !ctx.register() || !ctx.schema()) {\n\t\t\treturn false\n\t\t}\n\t\ttry {\n\t\t\tawait runSelfExportRequest({\n\t\t\t\tregister: ctx.register(),\n\t\t\t\tschema: ctx.schema(),\n\t\t\t\tformat: payload && payload.format,\n\t\t\t})\n\t\t\tctx.setResults.massExport({ success: true })\n\t\t} catch (err) {\n\t\t\tctx.setResults.massExport({ error: (err && err.message) || 'Export failed' })\n\t\t}\n\t\treturn true\n\t}\n\n\tasync function handleMassImport(payload) {\n\t\tif (!ctx.isSelfFetchMode() || !ctx.register()) {\n\t\t\treturn false\n\t\t}\n\t\ttry {\n\t\t\tawait runSelfImportRequest({\n\t\t\t\tregister: ctx.register(),\n\t\t\t\tschema: ctx.schema(),\n\t\t\t\tfile: payload && payload.file,\n\t\t\t})\n\t\t\tctx.setResults.massImport({ success: true })\n\t\t\trefreshList(ctx)\n\t\t} catch (err) {\n\t\t\tctx.setResults.massImport({ error: (err && err.message) || 'Import failed' })\n\t\t}\n\t\treturn true\n\t}\n\n\tasync function handleFormSave(formData) {\n\t\tif (!selfModeReady(ctx)) {\n\t\t\treturn false\n\t\t}\n\t\ttry {\n\t\t\tconst saved = await ctx.selfObjectStore().saveObject(ctx.selfObjectType(), formData)\n\t\t\tif (saved) {\n\t\t\t\tctx.setResults.form({ success: true })\n\t\t\t\tconst isCreate = !ctx.editItem()\n\t\t\t\tctx.emit(isCreate ? 'create' : 'edit', saved)\n\t\t\t\t// @self.register/@self.schema are numeric DB ids, not slugs, so\n\t\t\t\t// override with this page's own slug props (self-fetch mode\n\t\t\t\t// guarantees ctx.schema() is already a string).\n\t\t\t\tif (isCreate && typeof window !== 'undefined') {\n\t\t\t\t\tconst detail = { ...saved, register: ctx.register(), schema: ctx.schema() }\n\t\t\t\t\twindow.dispatchEvent(new CustomEvent('cn-walkthrough:object-created', { detail }))\n\t\t\t\t}\n\t\t\t\trefreshList(ctx)\n\t\t\t\tif (isCreate && typeof ctx.afterCreateSuccess === 'function') {\n\t\t\t\t\tctx.afterCreateSuccess(saved)\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tconst err = storeError(ctx)\n\t\t\t\tif (err && err.isValidation) {\n\t\t\t\t\t// Keep the form visible so the user can fix the invalid data.\n\t\t\t\t\tctx.setResults.formValidation(err.fields, err.message || 'Validation failed')\n\t\t\t\t} else {\n\t\t\t\t\tctx.setResults.form({ error: (err && err.message) || 'Save failed' })\n\t\t\t\t}\n\t\t\t}\n\t\t} catch (err) {\n\t\t\tctx.setResults.form({ error: (err && err.message) || 'Save failed' })\n\t\t}\n\t\treturn true\n\t}\n\n\treturn {\n\t\thandleSingleDelete,\n\t\thandleMassDelete,\n\t\thandleSingleCopy,\n\t\thandleMassCopy,\n\t\thandleMassExport,\n\t\thandleMassImport,\n\t\thandleFormSave,\n\t}\n}\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"selfModeActions.js","sources":["../../../../src/components/CnIndexPage/selfModeActions.js"],"sourcesContent":["import { dispatchObjectCreated } from '../../utils/walkthroughSignals.js'\nimport {\n\tcloneObjectForCopy,\n\trunSelfExportRequest,\n\trunSelfImportRequest,\n} from './selfModeIO.js'\n\nfunction resolveNameField(ctx) {\n\treturn ctx.effectiveSchema()?.configuration?.objectNameField\n\t\t|| ctx.massActionNameField()\n}\n\nfunction findSource(ctx, id) {\n\treturn ctx.effectiveObjects().find((o) => o.id === id || o['@self']?.id === id)\n}\n\nfunction selfModeReady(ctx) {\n\treturn ctx.isSelfFetchMode() && !!ctx.selfObjectStore() && !!ctx.selfObjectType()\n}\n\nfunction refreshList(ctx) {\n\tconst list = ctx.list()\n\tif (list && typeof list.refresh === 'function') {\n\t\tlist.refresh()\n\t}\n}\n\nfunction storeError(ctx) {\n\treturn ctx.selfObjectStore()?.getError?.(ctx.selfObjectType())\n}\n\nfunction storeErrorMessage(ctx, fallback) {\n\tconst err = storeError(ctx)\n\treturn (err && err.message) || fallback\n}\n\n/**\n * Self-mode action handlers for CnIndexPage. Each `handle*` returns `true`\n * when self-mode handled it (caller should NOT emit), `false` otherwise.\n *\n * @param {object} ctx Accessor closures + emit/setResults forwarders.\n * @return {object}\n */\nexport function createSelfModeActions(ctx) {\n\tasync function handleSingleDelete(id) {\n\t\tif (!selfModeReady(ctx)) {\n\t\t\treturn false\n\t\t}\n\t\ttry {\n\t\t\tconst ok = await ctx.selfObjectStore().deleteObject(ctx.selfObjectType(), id)\n\t\t\tif (ok) {\n\t\t\t\tctx.setResults.singleDelete({ success: true })\n\t\t\t\tctx.emit('delete', id)\n\t\t\t\trefreshList(ctx)\n\t\t\t} else {\n\t\t\t\tctx.setResults.singleDelete({ error: storeErrorMessage(ctx, 'Delete failed') })\n\t\t\t}\n\t\t} catch (err) {\n\t\t\tctx.setResults.singleDelete({ error: (err && err.message) || 'Delete failed' })\n\t\t}\n\t\treturn true\n\t}\n\n\tasync function handleMassDelete(ids) {\n\t\tif (!selfModeReady(ctx)) {\n\t\t\treturn false\n\t\t}\n\t\ttry {\n\t\t\tconst { successfulIds, failedIds } = await ctx.selfObjectStore().deleteObjects(ctx.selfObjectType(), ids)\n\t\t\tif (failedIds.length === 0) {\n\t\t\t\tctx.setResults.massDelete({ success: true, successfulIds })\n\t\t\t} else {\n\t\t\t\tctx.setResults.massDelete({\n\t\t\t\t\terror: storeErrorMessage(ctx, `Failed to delete ${failedIds.length} item(s)`),\n\t\t\t\t\tsuccessfulIds,\n\t\t\t\t\tfailedIds,\n\t\t\t\t})\n\t\t\t}\n\t\t\trefreshList(ctx)\n\t\t} catch (err) {\n\t\t\tctx.setResults.massDelete({ error: (err && err.message) || 'Delete failed' })\n\t\t}\n\t\treturn true\n\t}\n\n\tasync function handleSingleCopy(payload) {\n\t\tif (!selfModeReady(ctx)) {\n\t\t\treturn false\n\t\t}\n\t\tconst { id, newName } = payload || {}\n\t\tconst source = findSource(ctx, id)\n\t\tif (!source) {\n\t\t\tctx.setResults.singleCopy({ error: 'Source object not found in current view' })\n\t\t\treturn true\n\t\t}\n\t\ttry {\n\t\t\tconst clone = cloneObjectForCopy(source, newName, resolveNameField(ctx))\n\t\t\tconst saved = await ctx.selfObjectStore().saveObject(ctx.selfObjectType(), clone)\n\t\t\tif (saved) {\n\t\t\t\tctx.setResults.singleCopy({ success: true })\n\t\t\t\tctx.emit('copy', payload)\n\t\t\t\trefreshList(ctx)\n\t\t\t} else {\n\t\t\t\tctx.setResults.singleCopy({ error: storeErrorMessage(ctx, 'Copy failed') })\n\t\t\t}\n\t\t} catch (err) {\n\t\t\tctx.setResults.singleCopy({ error: (err && err.message) || 'Copy failed' })\n\t\t}\n\t\treturn true\n\t}\n\n\tasync function handleMassCopy(payload) {\n\t\tif (!selfModeReady(ctx)) {\n\t\t\treturn false\n\t\t}\n\t\tconst ids = (payload && payload.ids) || []\n\t\tconst nameField = resolveNameField(ctx)\n\t\tconst getName = (payload && payload.getName) || ((item) => item[ctx.massActionNameField()])\n\t\tconst successfulIds = []\n\t\tconst failedIds = []\n\t\tfor (const id of ids) {\n\t\t\tconst source = findSource(ctx, id)\n\t\t\tif (!source) {\n\t\t\t\tfailedIds.push(id)\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tconst clone = cloneObjectForCopy(source, getName(source), nameField)\n\t\t\ttry {\n\t\t\t\tconst saved = await ctx.selfObjectStore().saveObject(ctx.selfObjectType(), clone)\n\t\t\t\tif (saved) {\n\t\t\t\t\tsuccessfulIds.push(id)\n\t\t\t\t} else {\n\t\t\t\t\tfailedIds.push(id)\n\t\t\t\t}\n\t\t\t} catch {\n\t\t\t\tfailedIds.push(id)\n\t\t\t}\n\t\t}\n\t\tif (failedIds.length === 0) {\n\t\t\tctx.setResults.massCopy({ success: true, successfulIds })\n\t\t} else {\n\t\t\tctx.setResults.massCopy({\n\t\t\t\terror: storeErrorMessage(ctx, `Failed to copy ${failedIds.length} item(s)`),\n\t\t\t\tsuccessfulIds,\n\t\t\t\tfailedIds,\n\t\t\t})\n\t\t}\n\t\trefreshList(ctx)\n\t\treturn true\n\t}\n\n\tasync function handleMassExport(payload) {\n\t\tif (!ctx.isSelfFetchMode() || !ctx.register() || !ctx.schema()) {\n\t\t\treturn false\n\t\t}\n\t\ttry {\n\t\t\tawait runSelfExportRequest({\n\t\t\t\tregister: ctx.register(),\n\t\t\t\tschema: ctx.schema(),\n\t\t\t\tformat: payload && payload.format,\n\t\t\t})\n\t\t\tctx.setResults.massExport({ success: true })\n\t\t} catch (err) {\n\t\t\tctx.setResults.massExport({ error: (err && err.message) || 'Export failed' })\n\t\t}\n\t\treturn true\n\t}\n\n\tasync function handleMassImport(payload) {\n\t\tif (!ctx.isSelfFetchMode() || !ctx.register()) {\n\t\t\treturn false\n\t\t}\n\t\ttry {\n\t\t\tawait runSelfImportRequest({\n\t\t\t\tregister: ctx.register(),\n\t\t\t\tschema: ctx.schema(),\n\t\t\t\tfile: payload && payload.file,\n\t\t\t})\n\t\t\tctx.setResults.massImport({ success: true })\n\t\t\trefreshList(ctx)\n\t\t} catch (err) {\n\t\t\tctx.setResults.massImport({ error: (err && err.message) || 'Import failed' })\n\t\t}\n\t\treturn true\n\t}\n\n\tasync function handleFormSave(formData) {\n\t\tif (!selfModeReady(ctx)) {\n\t\t\treturn false\n\t\t}\n\t\ttry {\n\t\t\tconst saved = await ctx.selfObjectStore().saveObject(ctx.selfObjectType(), formData)\n\t\t\tif (saved) {\n\t\t\t\tctx.setResults.form({ success: true })\n\t\t\t\tconst isCreate = !ctx.editItem()\n\t\t\t\tctx.emit(isCreate ? 'create' : 'edit', saved)\n\t\t\t\t// @self.register/@self.schema are numeric DB ids, not slugs, so\n\t\t\t\t// override with this page's own slug props (self-fetch mode\n\t\t\t\t// guarantees ctx.schema() is already a string).\n\t\t\t\tif (isCreate) {\n\t\t\t\t\tdispatchObjectCreated({ register: ctx.register(), schema: ctx.schema(), object: saved })\n\t\t\t\t}\n\t\t\t\trefreshList(ctx)\n\t\t\t\tif (isCreate && typeof ctx.afterCreateSuccess === 'function') {\n\t\t\t\t\tctx.afterCreateSuccess(saved)\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tconst err = storeError(ctx)\n\t\t\t\tif (err && err.isValidation) {\n\t\t\t\t\t// Keep the form visible so the user can fix the invalid data.\n\t\t\t\t\tctx.setResults.formValidation(err.fields, err.message || 'Validation failed')\n\t\t\t\t} else {\n\t\t\t\t\tctx.setResults.form({ error: (err && err.message) || 'Save failed' })\n\t\t\t\t}\n\t\t\t}\n\t\t} catch (err) {\n\t\t\tctx.setResults.form({ error: (err && err.message) || 'Save failed' })\n\t\t}\n\t\treturn true\n\t}\n\n\treturn {\n\t\thandleSingleDelete,\n\t\thandleMassDelete,\n\t\thandleSingleCopy,\n\t\thandleMassCopy,\n\t\thandleMassExport,\n\t\thandleMassImport,\n\t\thandleFormSave,\n\t}\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -12,6 +12,7 @@ import { resolveHref, followLinkClick, openRowTarget } from '../../utils/linkNav
|
|
|
12
12
|
import { objectFieldValue } from '../../utils/objectName.js';
|
|
13
13
|
import { dropOptionalUnresolved, resolveFilterTokens, hasUnresolvedTokens } from '../../utils/resolveFilterTokens.js';
|
|
14
14
|
import { markNewTabHandled } from '../../utils/rowAuxClick.js';
|
|
15
|
+
import { dispatchObjectCreated } from '../../utils/walkthroughSignals.js';
|
|
15
16
|
import __sfc_main$4 from '../CnRowActions/CnRowActions.vue.js';
|
|
16
17
|
|
|
17
18
|
/**
|
|
@@ -134,7 +135,11 @@ var script = {
|
|
|
134
135
|
* those carrying a selected value. Client-side over the fetched page,
|
|
135
136
|
* like the rest of this widget's row set.
|
|
136
137
|
*
|
|
137
|
-
*
|
|
138
|
+
* `hideHeader: true` drops the table's column header row (CnDataTable's
|
|
139
|
+
* `hideHeader`), for a short list that reads as rows, not as a table.
|
|
140
|
+
*
|
|
141
|
+
* @spec openspec/changes/zuiddrecht-pixel-gaps/specs/zuiddrecht-pixel-gaps/spec.md#requirement-small-opt-ins-from-the-decidiq-and-learniq-lanes
|
|
142
|
+
* @type {{register?: string, schema?: string, filter?: object, sort?: {field?: string, dir?: string}, limit?: number, extend?: Array<string>, columns?: Array, rowActions?: Array<object>, dropZone?: object, upload?: boolean, groupBy?: string, groupLabel?: string, groupLabelResolve?: {register: string, schema: string, labelField?: string}, selectable?: boolean, bulkActions?: Array<object>, sortable?: boolean, facet?: {field: string, label?: string}, rowRoute?: string, prompt?: string, emptyText?: string, viewAllRoute?: string, viewAllQuery?: object, hideHeader?: boolean}}
|
|
138
143
|
*/
|
|
139
144
|
content: {
|
|
140
145
|
type: Object,
|
|
@@ -729,6 +734,39 @@ var script = {
|
|
|
729
734
|
return Array.isArray(c.formExcludeFields) ? c.formExcludeFields : []
|
|
730
735
|
},
|
|
731
736
|
|
|
737
|
+
/**
|
|
738
|
+
* Create-form seed values: the list's scalar filter values (the parent
|
|
739
|
+
* this list is scoped to, e.g. `{ lead: '<uuid>' }`), limited to keys
|
|
740
|
+
* the schema declares, so the new row shows its parent already chosen.
|
|
741
|
+
*
|
|
742
|
+
* @spec openspec/changes/form-pickers-from-schema/specs/schema-utilities/spec.md
|
|
743
|
+
* @return {object}
|
|
744
|
+
*/
|
|
745
|
+
createInitialData() {
|
|
746
|
+
const props = (this.createSchema && this.createSchema.properties) || {};
|
|
747
|
+
const out = {};
|
|
748
|
+
for (const [key, value] of Object.entries(this.resolvedFilter || {})) {
|
|
749
|
+
if (!(key in props) || value === null || value === undefined || value === '' || typeof value === 'object') {
|
|
750
|
+
continue
|
|
751
|
+
}
|
|
752
|
+
if (typeof value === 'string' && value.charAt(0) === '@') {
|
|
753
|
+
continue
|
|
754
|
+
}
|
|
755
|
+
out[key] = value;
|
|
756
|
+
}
|
|
757
|
+
return out
|
|
758
|
+
},
|
|
759
|
+
|
|
760
|
+
/**
|
|
761
|
+
* The seeded parent keys are locked: a row added to this list belongs
|
|
762
|
+
* to the record the list is scoped to.
|
|
763
|
+
*
|
|
764
|
+
* @return {string[]}
|
|
765
|
+
*/
|
|
766
|
+
createLockedFields() {
|
|
767
|
+
return Object.keys(this.createInitialData)
|
|
768
|
+
},
|
|
769
|
+
|
|
732
770
|
/** Per-field overrides for the create dialog (`content.formFieldOverrides`). */
|
|
733
771
|
formFieldOverrides() {
|
|
734
772
|
const c = this.content || {};
|
|
@@ -1077,7 +1115,8 @@ var script = {
|
|
|
1077
1115
|
}
|
|
1078
1116
|
}
|
|
1079
1117
|
const url = generateUrl('/apps/openregister/api/objects/{register}/{schema}', { register: c.register, schema: c.schema });
|
|
1080
|
-
await axios.post(url, payload);
|
|
1118
|
+
const response = await axios.post(url, payload);
|
|
1119
|
+
dispatchObjectCreated({ register: c.register, schema: c.schema, object: (response && response.data) || payload });
|
|
1081
1120
|
if (this.$refs.createDialog) {
|
|
1082
1121
|
this.$refs.createDialog.setResult({ success: true });
|
|
1083
1122
|
}
|