@conduction/nextcloud-vue 2.136.0 → 2.137.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.
Files changed (84) hide show
  1. package/dist/esm/components/CnAdminSettingsShell/CnAdminSettingsShell.vue.js +1 -1
  2. package/dist/esm/components/CnAdminSettingsShell/CnAdminSettingsShell.vue2.js +9 -0
  3. package/dist/esm/components/CnAdminSettingsShell/CnAdminSettingsShell.vue2.js.map +1 -1
  4. package/dist/esm/components/CnAdminSettingsShell/CnAdminSettingsShell.vue3.js +4 -3
  5. package/dist/esm/components/CnAdminSettingsShell/CnAdminSettingsShell.vue3.js.map +1 -1
  6. package/dist/esm/components/CnAppNav/CnAppNav.vue2.js +4 -1
  7. package/dist/esm/components/CnAppNav/CnAppNav.vue2.js.map +1 -1
  8. package/dist/esm/components/CnAppNav/CnAppNav.vue3.js +61 -28
  9. package/dist/esm/components/CnAppNav/CnAppNav.vue3.js.map +1 -1
  10. package/dist/esm/components/CnDataTable/CnDataTable.vue2.js +20 -0
  11. package/dist/esm/components/CnDataTable/CnDataTable.vue2.js.map +1 -1
  12. package/dist/esm/components/CnDataTable/CnDataTable.vue3.js +33 -25
  13. package/dist/esm/components/CnDataTable/CnDataTable.vue3.js.map +1 -1
  14. package/dist/esm/components/CnDetailPage/CnDetailPage.vue2.js +13 -0
  15. package/dist/esm/components/CnDetailPage/CnDetailPage.vue2.js.map +1 -1
  16. package/dist/esm/components/CnDetailPage/CnDetailPage.vue3.js +1 -1
  17. package/dist/esm/components/CnDetailPage/CnDetailPage.vue3.js.map +1 -1
  18. package/dist/esm/components/CnDetailWidgetHost/CnDetailWidgetHost.vue.js +1 -1
  19. package/dist/esm/components/CnDetailWidgetHost/CnDetailWidgetHost.vue2.js.map +1 -1
  20. package/dist/esm/components/CnDetailWidgetHost/CnDetailWidgetHost.vue3.js +2 -1
  21. package/dist/esm/components/CnDetailWidgetHost/CnDetailWidgetHost.vue3.js.map +1 -1
  22. package/dist/esm/components/CnIndexPage/CnIndexPage.vue2.js +36 -1
  23. package/dist/esm/components/CnIndexPage/CnIndexPage.vue2.js.map +1 -1
  24. package/dist/esm/components/CnIndexPage/CnIndexPage.vue3.js +4 -4
  25. package/dist/esm/components/CnIndexPage/CnIndexPage.vue3.js.map +1 -1
  26. package/dist/esm/components/CnObjectDataWidget/CnObjectDataWidget.vue.js +1 -1
  27. package/dist/esm/components/CnObjectDataWidget/CnObjectDataWidget.vue2.js +11 -0
  28. package/dist/esm/components/CnObjectDataWidget/CnObjectDataWidget.vue2.js.map +1 -1
  29. package/dist/esm/components/CnObjectDataWidget/CnObjectDataWidget.vue3.js +10 -2
  30. package/dist/esm/components/CnObjectDataWidget/CnObjectDataWidget.vue3.js.map +1 -1
  31. package/dist/esm/components/CnRegisterMapping/CnRegisterMapping.vue.js +1 -1
  32. package/dist/esm/components/CnRegisterMapping/CnRegisterMapping.vue2.js.map +1 -1
  33. package/dist/esm/components/CnRegisterMapping/CnRegisterMapping.vue3.js +1 -0
  34. package/dist/esm/components/CnRegisterMapping/CnRegisterMapping.vue3.js.map +1 -1
  35. package/dist/esm/components/CnRetentionWidget/CnRetentionWidget.vue.js +1 -1
  36. package/dist/esm/components/CnRetentionWidget/CnRetentionWidget.vue2.js.map +1 -1
  37. package/dist/esm/components/CnRetentionWidget/CnRetentionWidget.vue3.js.map +1 -1
  38. package/dist/esm/components/CnSavedViewMenuSettings/CnSavedViewMenuSettings.vue.js +1 -1
  39. package/dist/esm/components/CnSavedViewMenuSettings/CnSavedViewMenuSettings.vue2.js +14 -4
  40. package/dist/esm/components/CnSavedViewMenuSettings/CnSavedViewMenuSettings.vue2.js.map +1 -1
  41. package/dist/esm/components/CnSavedViewMenuSettings/CnSavedViewMenuSettings.vue3.js.map +1 -1
  42. package/dist/esm/components/CnTimelineWidget/CnTimelineManage.vue.js +1 -1
  43. package/dist/esm/components/CnTimelineWidget/CnTimelineManage.vue2.js +10 -0
  44. package/dist/esm/components/CnTimelineWidget/CnTimelineManage.vue2.js.map +1 -1
  45. package/dist/esm/components/CnTimelineWidget/CnTimelineManage.vue3.js +29 -13
  46. package/dist/esm/components/CnTimelineWidget/CnTimelineManage.vue3.js.map +1 -1
  47. package/dist/esm/components/CnTimelineWidget/dashboardRegistration.js +3 -1
  48. package/dist/esm/components/CnTimelineWidget/dashboardRegistration.js.map +1 -1
  49. package/dist/esm/library-style.js +1 -1
  50. package/dist/esm/nextcloud-vue.css +258 -160
  51. package/dist/esm/utils/contentHeaderLink.js +7 -1
  52. package/dist/esm/utils/contentHeaderLink.js.map +1 -1
  53. package/dist/esm/utils/savedViewMenu.js +4 -1
  54. package/dist/esm/utils/savedViewMenu.js.map +1 -1
  55. package/dist/esm/utils/savedViewSummary.js +11 -4
  56. package/dist/esm/utils/savedViewSummary.js.map +1 -1
  57. package/dist/esm/utils/validateManifestV2.compiled.js +2 -2
  58. package/dist/esm/utils/validateManifestV2.compiled.js.map +1 -1
  59. package/dist/nextcloud-vue.cjs.js +422 -225
  60. package/dist/nextcloud-vue.cjs.js.map +2 -2
  61. package/dist/nextcloud-vue.css +258 -160
  62. package/package.json +1 -1
  63. package/src/components/CnAdminSettingsShell/CnAdminSettingsShell.vue +13 -1
  64. package/src/components/CnAppNav/CnAppNav.vue +28 -3
  65. package/src/components/CnDataTable/CnDataTable.vue +25 -0
  66. package/src/components/CnDetailPage/CnDetailPage.vue +14 -1
  67. package/src/components/CnDetailWidgetHost/CnDetailWidgetHost.vue +1 -0
  68. package/src/components/CnIndexPage/CnIndexPage.vue +40 -5
  69. package/src/components/CnObjectDataWidget/CnObjectDataWidget.md +1 -0
  70. package/src/components/CnObjectDataWidget/CnObjectDataWidget.vue +21 -0
  71. package/src/components/CnRegisterMapping/CnRegisterMapping.vue +7 -0
  72. package/src/components/CnRetentionWidget/CnRetentionWidget.vue +13 -0
  73. package/src/components/CnSavedViewMenuSettings/CnSavedViewMenuSettings.vue +14 -4
  74. package/src/components/CnTimelineWidget/CnTimelineManage.vue +23 -0
  75. package/src/components/CnTimelineWidget/dashboardRegistration.js +3 -1
  76. package/src/css/look-board-detail.css +10 -0
  77. package/src/css/look-board-index.css +50 -0
  78. package/src/css/look-board.css +5 -1
  79. package/src/css/table.css +5 -0
  80. package/src/schemas/app-manifest-v2.schema.json +4 -2
  81. package/src/utils/contentHeaderLink.js +7 -1
  82. package/src/utils/savedViewMenu.js +4 -1
  83. package/src/utils/savedViewSummary.js +11 -4
  84. package/src/utils/validateManifestV2.compiled.js +2 -2
@@ -198,6 +198,9 @@ export const SAVED_VIEW_MENU_EMPTY = 'saved-views-empty'
198
198
  * An entry with a badge carries it as the menu entry's `count` (and
199
199
  * `counterVariant`), which CnAppRoot fetches like any filtered menu count.
200
200
  *
201
+ * The caption carries a pencil that opens the user settings, where the views
202
+ * in the menu are reordered, removed and added.
203
+ *
201
204
  * With `showEmpty`, an app that offers saved views shows the group also while
202
205
  * the user pinned none, with one line saying how to add one, so the group can
203
206
  * be found.
@@ -215,7 +218,7 @@ export function withSavedViewMenu(menu, entries, options = {}) {
215
218
  }
216
219
  const sorted = menu.map((item, index) => ({ item, index })).sort((a, b) => byOrder(a.item, b.item) || a.index - b.index).map(({ item }) => item)
217
220
  const group = [
218
- { id: SAVED_VIEW_MENU_CAPTION, type: 'caption', label: t('nextcloud-vue', 'My views') },
221
+ { id: SAVED_VIEW_MENU_CAPTION, type: 'caption', label: t('nextcloud-vue', 'My views'), action: 'user-settings' },
219
222
  ...(list.length > 0
220
223
  ? list.map((e) => ({
221
224
  id: `${SAVED_VIEW_MENU_PREFIX}${e.id}`,
@@ -69,17 +69,23 @@ export function summarizeViewFilters(state, options = {}) {
69
69
 
70
70
  /**
71
71
  * The ids a view's filters hold per reference property, for a label lookup.
72
+ * A filter on a value that identifies a record without being its id (a case
73
+ * type's `identifier`) is a reference too when the page's `filterLabels`
74
+ * entry names it: `reference: { register?, schema, matchField, labelField }`.
72
75
  *
73
76
  * @param {{filters?: object}} state The view's state.
74
77
  * @param {Array<object>} fields The page schema's fields (`fieldsFromSchema`).
75
- * @return {Array<{key: string, register: string, schema: string, labelField: string, ids: Array<string>}>} One entry per reference filter.
78
+ * @param {{[key: string]: {reference?: object}}} [filterLabels] The page's `config.filterLabels`.
79
+ * @return {Array<{key: string, register: string, schema: string, labelField: string, matchField?: string, ids: Array<string>}>} One entry per reference filter.
80
+ * @spec openspec/changes/saved-view-summary-match-field-labels/specs/saved-view-menu-settings/spec.md#requirement-a-filter-on-a-records-identifier-reads-as-the-records-name
76
81
  */
77
- export function viewFilterReferences(state, fields) {
82
+ export function viewFilterReferences(state, fields, filterLabels = {}) {
78
83
  const filters = (state && state.filters && typeof state.filters === 'object') ? state.filters : {}
79
84
  const out = []
80
85
  for (const [key, raw] of Object.entries(filters)) {
81
86
  const field = (Array.isArray(fields) ? fields : []).find((f) => f && f.key === key)
82
- const ref = field && field.reference
87
+ const named = filterLabels && filterLabels[key] && filterLabels[key].reference && typeof filterLabels[key].reference === 'object' ? filterLabels[key].reference : null
88
+ const ref = (field && field.reference) || named
83
89
  if (!ref || ref.schema === undefined || ref.schema === null) {
84
90
  continue
85
91
  }
@@ -87,7 +93,8 @@ export function viewFilterReferences(state, fields) {
87
93
  .filter((id) => (typeof id === 'string' || typeof id === 'number') && id !== '' && id !== MISSING_VALUE)
88
94
  .map(String)
89
95
  if (ids.length > 0) {
90
- out.push({ key, register: ref.register || '', schema: String(ref.schema), labelField: ref.labelField || '', ids })
96
+ const matchField = ref === named && typeof ref.matchField === 'string' && ref.matchField !== '' ? { matchField: ref.matchField } : {}
97
+ out.push({ key, register: ref.register || '', schema: String(ref.schema), labelField: ref.labelField || '', ...matchField, ids })
91
98
  }
92
99
  }
93
100
  return out