@conduction/nextcloud-vue 0.1.0-beta.2 → 0.1.0-beta.4
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/README.md +226 -226
- package/css/index.css +5 -0
- package/dist/nextcloud-vue.cjs.js +60455 -8755
- package/dist/nextcloud-vue.cjs.js.map +1 -1
- package/dist/nextcloud-vue.css +2062 -528
- package/dist/nextcloud-vue.esm.js +60411 -8731
- package/dist/nextcloud-vue.esm.js.map +1 -1
- package/package.json +75 -61
- package/src/components/CnActionsBar/CnActionsBar.vue +235 -225
- package/src/components/CnActionsBar/index.js +1 -1
- package/src/components/CnAdvancedFormDialog/CnAdvancedFormDialog.vue +579 -0
- package/src/components/CnAdvancedFormDialog/CnDataTab.vue +217 -0
- package/src/components/CnAdvancedFormDialog/CnMetadataTab.vue +121 -0
- package/src/components/CnAdvancedFormDialog/CnPropertiesTab.vue +418 -0
- package/src/components/CnAdvancedFormDialog/CnPropertyValueCell.vue +247 -0
- package/src/components/CnAdvancedFormDialog/index.js +1 -0
- package/src/components/CnCardGrid/CnCardGrid.vue +152 -152
- package/src/components/CnCardGrid/index.js +1 -1
- package/src/components/CnCellRenderer/CnCellRenderer.vue +132 -132
- package/src/components/CnCellRenderer/index.js +1 -1
- package/src/components/CnChartWidget/CnChartWidget.vue +320 -0
- package/src/components/CnChartWidget/index.js +1 -0
- package/src/components/CnConfigurationCard/CnConfigurationCard.vue +77 -77
- package/src/components/CnConfigurationCard/index.js +1 -1
- package/src/components/CnDashboardGrid/CnDashboardGrid.vue +225 -0
- package/src/components/CnDashboardGrid/index.js +1 -0
- package/src/components/CnDashboardPage/CnDashboardPage.vue +390 -0
- package/src/components/CnDashboardPage/index.js +1 -0
- package/src/components/CnDataTable/CnDataTable.vue +349 -349
- package/src/components/CnDataTable/index.js +1 -1
- package/src/components/CnDetailCard/CnDetailCard.vue +214 -0
- package/src/components/CnDetailCard/index.js +1 -0
- package/src/components/CnDetailPage/CnDetailPage.vue +281 -0
- package/src/components/CnDetailPage/index.js +1 -0
- package/src/components/CnFacetSidebar/CnFacetSidebar.vue +231 -223
- package/src/components/CnFacetSidebar/index.js +1 -1
- package/src/components/CnFilterBar/CnFilterBar.vue +152 -152
- package/src/components/CnFilterBar/index.js +1 -1
- package/src/components/CnIcon/CnIcon.vue +89 -89
- package/src/components/CnIcon/index.js +1 -1
- package/src/components/CnIndexPage/CnIndexPage.vue +874 -816
- package/src/components/CnIndexPage/index.js +1 -1
- package/src/components/CnIndexSidebar/CnIndexSidebar.vue +503 -484
- package/src/components/CnIndexSidebar/index.js +1 -1
- package/src/components/CnItemCard/CnItemCard.vue +132 -0
- package/src/components/CnItemCard/index.js +1 -0
- package/src/components/CnKpiGrid/CnKpiGrid.vue +89 -89
- package/src/components/CnKpiGrid/index.js +1 -1
- package/src/components/CnMassActionBar/CnMassActionBar.vue +160 -160
- package/src/components/CnMassActionBar/index.js +1 -1
- package/src/components/CnMassCopyDialog/CnMassCopyDialog.vue +320 -320
- package/src/components/CnMassCopyDialog/index.js +1 -1
- package/src/components/CnMassDeleteDialog/CnMassDeleteDialog.vue +238 -238
- package/src/components/CnMassDeleteDialog/index.js +1 -1
- package/src/components/CnMassExportDialog/CnMassExportDialog.vue +190 -190
- package/src/components/CnMassExportDialog/index.js +1 -1
- package/src/components/CnMassImportDialog/CnMassImportDialog.vue +491 -491
- package/src/components/CnMassImportDialog/index.js +1 -1
- package/src/components/CnNoteCard/CnNoteCard.vue +149 -0
- package/src/components/CnNoteCard/index.js +1 -0
- package/src/components/CnNotesCard/CnNotesCard.vue +413 -0
- package/src/components/CnNotesCard/index.js +1 -0
- package/src/components/CnObjectCard/CnObjectCard.vue +292 -292
- package/src/components/CnObjectCard/index.js +1 -1
- package/src/components/CnObjectSidebar/CnObjectSidebar.vue +876 -0
- package/src/components/CnObjectSidebar/index.js +1 -0
- package/src/components/CnPageHeader/CnPageHeader.vue +57 -57
- package/src/components/CnPageHeader/index.js +1 -1
- package/src/components/CnPagination/CnPagination.vue +252 -252
- package/src/components/CnPagination/index.js +1 -1
- package/src/components/CnRowActions/CnRowActions.vue +73 -73
- package/src/components/CnRowActions/index.js +1 -1
- package/src/components/CnSchemaFormDialog/CnSchemaConfigurationTab.vue +226 -0
- package/src/components/CnSchemaFormDialog/CnSchemaFormDialog.vue +787 -0
- package/src/components/CnSchemaFormDialog/CnSchemaPropertiesTab.vue +305 -0
- package/src/components/CnSchemaFormDialog/CnSchemaPropertyActions.vue +1398 -0
- package/src/components/CnSchemaFormDialog/CnSchemaSecurityTab.vue +236 -0
- package/src/components/CnSchemaFormDialog/index.js +1 -0
- package/src/components/CnSettingsCard/CnSettingsCard.vue +92 -92
- package/src/components/CnSettingsCard/index.js +1 -1
- package/src/components/CnSettingsSection/CnSettingsSection.vue +266 -266
- package/src/components/CnSettingsSection/index.js +1 -1
- package/src/components/CnStatsBlock/CnStatsBlock.vue +420 -366
- package/src/components/CnStatsBlock/index.js +1 -1
- package/src/components/CnStatusBadge/CnStatusBadge.vue +77 -77
- package/src/components/CnStatusBadge/index.js +1 -1
- package/src/components/CnTabbedFormDialog/CnTabbedFormDialog.vue +540 -0
- package/src/components/CnTabbedFormDialog/index.js +1 -0
- package/src/components/CnTasksCard/CnTasksCard.vue +373 -0
- package/src/components/CnTasksCard/index.js +1 -0
- package/src/components/CnTileWidget/CnTileWidget.vue +159 -0
- package/src/components/CnTileWidget/index.js +1 -0
- package/src/components/CnTimelineStages/CnTimelineStages.vue +292 -0
- package/src/components/CnTimelineStages/index.js +1 -0
- package/src/components/CnUserActionMenu/CnUserActionMenu.vue +435 -0
- package/src/components/CnUserActionMenu/index.js +1 -0
- package/src/components/CnVersionInfoCard/CnVersionInfoCard.vue +312 -312
- package/src/components/CnVersionInfoCard/index.js +1 -1
- package/src/components/CnWidgetRenderer/CnWidgetRenderer.vue +180 -0
- package/src/components/CnWidgetRenderer/index.js +1 -0
- package/src/components/CnWidgetWrapper/CnWidgetWrapper.vue +211 -0
- package/src/components/CnWidgetWrapper/index.js +1 -0
- package/src/components/index.js +43 -29
- package/src/composables/index.js +4 -3
- package/src/composables/useDashboardView.js +240 -0
- package/src/composables/useDetailView.js +289 -132
- package/src/composables/useListView.js +363 -153
- package/src/composables/useSubResource.js +142 -142
- package/src/constants/metadata.js +30 -30
- package/src/css/CnSchemaFormDialog.css +546 -0
- package/src/css/__sample_nextcloud_tokens.css +110 -0
- package/src/css/actions-bar.css +48 -48
- package/src/css/badge.css +51 -51
- package/src/css/card.css +128 -128
- package/src/css/dashboard.css +70 -0
- package/src/css/detail-page.css +168 -0
- package/src/css/detail.css +68 -68
- package/src/css/index-page.css +44 -32
- package/src/css/index-sidebar.css +193 -187
- package/src/css/index.css +16 -12
- package/src/css/layout.css +90 -90
- package/src/css/page-header.css +33 -33
- package/src/css/pagination.css +72 -72
- package/src/css/table.css +142 -142
- package/src/css/timeline-stages.css +218 -0
- package/src/css/utilities.css +46 -46
- package/src/index.js +72 -53
- package/src/store/createSubResourcePlugin.js +135 -135
- package/src/store/index.js +3 -3
- package/src/store/plugins/auditTrails.js +17 -17
- package/src/store/plugins/files.js +250 -186
- package/src/store/plugins/index.js +7 -5
- package/src/store/plugins/lifecycle.js +180 -180
- package/src/store/plugins/relations.js +68 -68
- package/src/store/plugins/search.js +372 -0
- package/src/store/plugins/selection.js +104 -0
- package/src/store/useObjectStore.js +829 -686
- package/src/types/auditTrail.d.ts +32 -32
- package/src/types/file.d.ts +23 -23
- package/src/types/index.d.ts +35 -35
- package/src/types/notification.d.ts +36 -36
- package/src/types/object.d.ts +40 -40
- package/src/types/organisation.d.ts +41 -41
- package/src/types/register.d.ts +25 -25
- package/src/types/schema.d.ts +39 -39
- package/src/types/shared.d.ts +79 -79
- package/src/types/source.d.ts +14 -14
- package/src/types/task.d.ts +31 -31
- package/src/utils/errors.js +96 -96
- package/src/utils/headers.js +68 -50
- package/src/utils/id.js +13 -0
- package/src/utils/index.js +3 -3
- package/src/utils/schema.js +422 -419
|
@@ -1,135 +1,135 @@
|
|
|
1
|
-
import { buildHeaders, buildQueryString } from '../utils/headers.js'
|
|
2
|
-
import { parseResponseError, networkError } from '../utils/errors.js'
|
|
3
|
-
|
|
4
|
-
/**
|
|
5
|
-
* Standard empty paginated response shape used by all sub-resource plugins.
|
|
6
|
-
*
|
|
7
|
-
* @param {number} [limit=20] Default page size
|
|
8
|
-
* @return {object} Empty paginated state
|
|
9
|
-
*/
|
|
10
|
-
export function emptyPaginated(limit = 20) {
|
|
11
|
-
return { results: [], total: 0, page: 1, pages: 0, limit, offset: 0 }
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
/**
|
|
15
|
-
* Capitalize the first letter of a string.
|
|
16
|
-
*
|
|
17
|
-
* @param {string} str Input string
|
|
18
|
-
* @return {string} Capitalized string
|
|
19
|
-
*/
|
|
20
|
-
function capitalize(str) {
|
|
21
|
-
return str.charAt(0).toUpperCase() + str.slice(1)
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
/**
|
|
25
|
-
* Create a sub-resource plugin for the object store.
|
|
26
|
-
*
|
|
27
|
-
* Generates state, getters, and actions for a standard OpenRegister sub-resource
|
|
28
|
-
* endpoint that returns paginated results. The generated plugin follows the
|
|
29
|
-
* naming convention: fetch{Name}, clear{Name}, get{Name}, is{Name}Loading, etc.
|
|
30
|
-
*
|
|
31
|
-
* @param {string} name Camel-case name for the sub-resource (e.g. 'auditTrails')
|
|
32
|
-
* @param {string} endpoint URL path segment appended to the object URL (e.g. 'audit-trails')
|
|
33
|
-
* @param {object} [options={}] Plugin options
|
|
34
|
-
* @param {number} [options.limit=20] Default page size
|
|
35
|
-
* @return {Function} Plugin factory that returns the plugin definition
|
|
36
|
-
*
|
|
37
|
-
* @example
|
|
38
|
-
* // Simple read-only sub-resource
|
|
39
|
-
* export const auditTrailsPlugin = createSubResourcePlugin('auditTrails', 'audit-trails')
|
|
40
|
-
*
|
|
41
|
-
* @example
|
|
42
|
-
* // With custom limit
|
|
43
|
-
* export const contractsPlugin = createSubResourcePlugin('contracts', 'contracts', { limit: 50 })
|
|
44
|
-
*
|
|
45
|
-
* @example
|
|
46
|
-
* // Usage in store creation
|
|
47
|
-
* const useStore = createObjectStore('object', {
|
|
48
|
-
* plugins: [auditTrailsPlugin()],
|
|
49
|
-
* })
|
|
50
|
-
* const store = useStore()
|
|
51
|
-
* await store.fetchAuditTrails('case', caseId)
|
|
52
|
-
* console.log(store.auditTrails.results)
|
|
53
|
-
*/
|
|
54
|
-
export function createSubResourcePlugin(name, endpoint, options = {}) {
|
|
55
|
-
const cap = capitalize(name)
|
|
56
|
-
const limit = options.limit || 20
|
|
57
|
-
|
|
58
|
-
return () => ({
|
|
59
|
-
name,
|
|
60
|
-
|
|
61
|
-
state: () => ({
|
|
62
|
-
[name]: emptyPaginated(limit),
|
|
63
|
-
[`${name}Loading`]: false,
|
|
64
|
-
[`${name}Error`]: null,
|
|
65
|
-
}),
|
|
66
|
-
|
|
67
|
-
getters: {
|
|
68
|
-
[`get${cap}`]: (state) => state[name],
|
|
69
|
-
[`is${cap}Loading`]: (state) => state[`${name}Loading`],
|
|
70
|
-
[`get${cap}Error`]: (state) => state[`${name}Error`],
|
|
71
|
-
},
|
|
72
|
-
|
|
73
|
-
actions: {
|
|
74
|
-
/**
|
|
75
|
-
* Fetch the sub-resource collection for an object.
|
|
76
|
-
*
|
|
77
|
-
* @param {string} type The registered object type slug
|
|
78
|
-
* @param {string} objectId The parent object ID
|
|
79
|
-
* @param {object} [params={}] Query parameters (_search, _limit, _page)
|
|
80
|
-
* @return {Promise<Array>} The fetched results
|
|
81
|
-
*/
|
|
82
|
-
async [`fetch${cap}`](type, objectId, params = {}) {
|
|
83
|
-
this[`${name}Loading`] = true
|
|
84
|
-
this[`${name}Error`] = null
|
|
85
|
-
|
|
86
|
-
try {
|
|
87
|
-
const url = this._buildUrl(type, objectId)
|
|
88
|
-
+ '/' + endpoint
|
|
89
|
-
+ buildQueryString(params)
|
|
90
|
-
|
|
91
|
-
const response = await fetch(url, {
|
|
92
|
-
method: 'GET',
|
|
93
|
-
headers: buildHeaders(),
|
|
94
|
-
})
|
|
95
|
-
|
|
96
|
-
if (!response.ok) {
|
|
97
|
-
this[`${name}Error`] = await parseResponseError(response, name)
|
|
98
|
-
console.error(`Error fetching ${name} for ${type}/${objectId}:`, this[`${name}Error`])
|
|
99
|
-
return []
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
const data = await response.json()
|
|
103
|
-
|
|
104
|
-
this[name] = {
|
|
105
|
-
results: data.results || data,
|
|
106
|
-
total: data.total || (data.results || data).length,
|
|
107
|
-
page: data.page || 1,
|
|
108
|
-
pages: data.pages || 0,
|
|
109
|
-
limit: params._limit || limit,
|
|
110
|
-
offset: data.offset || 0,
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
return this[name].results
|
|
114
|
-
} catch (error) {
|
|
115
|
-
this[`${name}Error`] = error.name === 'TypeError'
|
|
116
|
-
? networkError(error)
|
|
117
|
-
: { status: null, message: error.message, details: null, isValidation: false, fields: null, toString() { return this.message } }
|
|
118
|
-
console.error(`Error fetching ${name} for ${type}/${objectId}:`, error)
|
|
119
|
-
return []
|
|
120
|
-
} finally {
|
|
121
|
-
this[`${name}Loading`] = false
|
|
122
|
-
}
|
|
123
|
-
},
|
|
124
|
-
|
|
125
|
-
/**
|
|
126
|
-
* Clear all sub-resource state back to empty defaults.
|
|
127
|
-
*/
|
|
128
|
-
[`clear${cap}`]() {
|
|
129
|
-
this[name] = emptyPaginated(limit)
|
|
130
|
-
this[`${name}Loading`] = false
|
|
131
|
-
this[`${name}Error`] = null
|
|
132
|
-
},
|
|
133
|
-
},
|
|
134
|
-
})
|
|
135
|
-
}
|
|
1
|
+
import { buildHeaders, buildQueryString } from '../utils/headers.js'
|
|
2
|
+
import { parseResponseError, networkError } from '../utils/errors.js'
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Standard empty paginated response shape used by all sub-resource plugins.
|
|
6
|
+
*
|
|
7
|
+
* @param {number} [limit=20] Default page size
|
|
8
|
+
* @return {object} Empty paginated state
|
|
9
|
+
*/
|
|
10
|
+
export function emptyPaginated(limit = 20) {
|
|
11
|
+
return { results: [], total: 0, page: 1, pages: 0, limit, offset: 0 }
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Capitalize the first letter of a string.
|
|
16
|
+
*
|
|
17
|
+
* @param {string} str Input string
|
|
18
|
+
* @return {string} Capitalized string
|
|
19
|
+
*/
|
|
20
|
+
function capitalize(str) {
|
|
21
|
+
return str.charAt(0).toUpperCase() + str.slice(1)
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* Create a sub-resource plugin for the object store.
|
|
26
|
+
*
|
|
27
|
+
* Generates state, getters, and actions for a standard OpenRegister sub-resource
|
|
28
|
+
* endpoint that returns paginated results. The generated plugin follows the
|
|
29
|
+
* naming convention: fetch{Name}, clear{Name}, get{Name}, is{Name}Loading, etc.
|
|
30
|
+
*
|
|
31
|
+
* @param {string} name Camel-case name for the sub-resource (e.g. 'auditTrails')
|
|
32
|
+
* @param {string} endpoint URL path segment appended to the object URL (e.g. 'audit-trails')
|
|
33
|
+
* @param {object} [options={}] Plugin options
|
|
34
|
+
* @param {number} [options.limit=20] Default page size
|
|
35
|
+
* @return {Function} Plugin factory that returns the plugin definition
|
|
36
|
+
*
|
|
37
|
+
* @example
|
|
38
|
+
* // Simple read-only sub-resource
|
|
39
|
+
* export const auditTrailsPlugin = createSubResourcePlugin('auditTrails', 'audit-trails')
|
|
40
|
+
*
|
|
41
|
+
* @example
|
|
42
|
+
* // With custom limit
|
|
43
|
+
* export const contractsPlugin = createSubResourcePlugin('contracts', 'contracts', { limit: 50 })
|
|
44
|
+
*
|
|
45
|
+
* @example
|
|
46
|
+
* // Usage in store creation
|
|
47
|
+
* const useStore = createObjectStore('object', {
|
|
48
|
+
* plugins: [auditTrailsPlugin()],
|
|
49
|
+
* })
|
|
50
|
+
* const store = useStore()
|
|
51
|
+
* await store.fetchAuditTrails('case', caseId)
|
|
52
|
+
* console.log(store.auditTrails.results)
|
|
53
|
+
*/
|
|
54
|
+
export function createSubResourcePlugin(name, endpoint, options = {}) {
|
|
55
|
+
const cap = capitalize(name)
|
|
56
|
+
const limit = options.limit || 20
|
|
57
|
+
|
|
58
|
+
return () => ({
|
|
59
|
+
name,
|
|
60
|
+
|
|
61
|
+
state: () => ({
|
|
62
|
+
[name]: emptyPaginated(limit),
|
|
63
|
+
[`${name}Loading`]: false,
|
|
64
|
+
[`${name}Error`]: null,
|
|
65
|
+
}),
|
|
66
|
+
|
|
67
|
+
getters: {
|
|
68
|
+
[`get${cap}`]: (state) => state[name],
|
|
69
|
+
[`is${cap}Loading`]: (state) => state[`${name}Loading`],
|
|
70
|
+
[`get${cap}Error`]: (state) => state[`${name}Error`],
|
|
71
|
+
},
|
|
72
|
+
|
|
73
|
+
actions: {
|
|
74
|
+
/**
|
|
75
|
+
* Fetch the sub-resource collection for an object.
|
|
76
|
+
*
|
|
77
|
+
* @param {string} type The registered object type slug
|
|
78
|
+
* @param {string} objectId The parent object ID
|
|
79
|
+
* @param {object} [params={}] Query parameters (_search, _limit, _page)
|
|
80
|
+
* @return {Promise<Array>} The fetched results
|
|
81
|
+
*/
|
|
82
|
+
async [`fetch${cap}`](type, objectId, params = {}) {
|
|
83
|
+
this[`${name}Loading`] = true
|
|
84
|
+
this[`${name}Error`] = null
|
|
85
|
+
|
|
86
|
+
try {
|
|
87
|
+
const url = this._buildUrl(type, objectId)
|
|
88
|
+
+ '/' + endpoint
|
|
89
|
+
+ buildQueryString(params)
|
|
90
|
+
|
|
91
|
+
const response = await fetch(url, {
|
|
92
|
+
method: 'GET',
|
|
93
|
+
headers: buildHeaders(),
|
|
94
|
+
})
|
|
95
|
+
|
|
96
|
+
if (!response.ok) {
|
|
97
|
+
this[`${name}Error`] = await parseResponseError(response, name)
|
|
98
|
+
console.error(`Error fetching ${name} for ${type}/${objectId}:`, this[`${name}Error`])
|
|
99
|
+
return []
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
const data = await response.json()
|
|
103
|
+
|
|
104
|
+
this[name] = {
|
|
105
|
+
results: data.results || data,
|
|
106
|
+
total: data.total || (data.results || data).length,
|
|
107
|
+
page: data.page || 1,
|
|
108
|
+
pages: data.pages || 0,
|
|
109
|
+
limit: params._limit || limit,
|
|
110
|
+
offset: data.offset || 0,
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
return this[name].results
|
|
114
|
+
} catch (error) {
|
|
115
|
+
this[`${name}Error`] = error.name === 'TypeError'
|
|
116
|
+
? networkError(error)
|
|
117
|
+
: { status: null, message: error.message, details: null, isValidation: false, fields: null, toString() { return this.message } }
|
|
118
|
+
console.error(`Error fetching ${name} for ${type}/${objectId}:`, error)
|
|
119
|
+
return []
|
|
120
|
+
} finally {
|
|
121
|
+
this[`${name}Loading`] = false
|
|
122
|
+
}
|
|
123
|
+
},
|
|
124
|
+
|
|
125
|
+
/**
|
|
126
|
+
* Clear all sub-resource state back to empty defaults.
|
|
127
|
+
*/
|
|
128
|
+
[`clear${cap}`]() {
|
|
129
|
+
this[name] = emptyPaginated(limit)
|
|
130
|
+
this[`${name}Loading`] = false
|
|
131
|
+
this[`${name}Error`] = null
|
|
132
|
+
},
|
|
133
|
+
},
|
|
134
|
+
})
|
|
135
|
+
}
|
package/src/store/index.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export { useObjectStore, createObjectStore } from './useObjectStore.js'
|
|
2
|
-
export { createSubResourcePlugin, emptyPaginated } from './createSubResourcePlugin.js'
|
|
3
|
-
export { auditTrailsPlugin, relationsPlugin, filesPlugin, lifecyclePlugin } from './plugins/index.js'
|
|
1
|
+
export { useObjectStore, createObjectStore } from './useObjectStore.js'
|
|
2
|
+
export { createSubResourcePlugin, emptyPaginated } from './createSubResourcePlugin.js'
|
|
3
|
+
export { auditTrailsPlugin, relationsPlugin, filesPlugin, lifecyclePlugin, selectionPlugin, searchPlugin, SEARCH_TYPE, getRegisterApiUrl, getSchemaApiUrl } from './plugins/index.js'
|
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
import { createSubResourcePlugin } from '../createSubResourcePlugin.js'
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Audit trails plugin for the object store.
|
|
5
|
-
*
|
|
6
|
-
* Adds state, getters, and actions for fetching audit trail records
|
|
7
|
-
* for an object. Read-only — no create/update/delete.
|
|
8
|
-
*
|
|
9
|
-
* State: auditTrails, auditTrailsLoading, auditTrailsError
|
|
10
|
-
* Actions: fetchAuditTrails(type, objectId, params), clearAuditTrails()
|
|
11
|
-
* Getters: getAuditTrails, isAuditTrailsLoading, getAuditTrailsError
|
|
12
|
-
*
|
|
13
|
-
* @param {object} [options={}] Plugin options
|
|
14
|
-
* @param {number} [options.limit=20] Default page size
|
|
15
|
-
* @return {Function} Plugin factory
|
|
16
|
-
*/
|
|
17
|
-
export const auditTrailsPlugin = createSubResourcePlugin('auditTrails', 'audit-trails')
|
|
1
|
+
import { createSubResourcePlugin } from '../createSubResourcePlugin.js'
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Audit trails plugin for the object store.
|
|
5
|
+
*
|
|
6
|
+
* Adds state, getters, and actions for fetching audit trail records
|
|
7
|
+
* for an object. Read-only — no create/update/delete.
|
|
8
|
+
*
|
|
9
|
+
* State: auditTrails, auditTrailsLoading, auditTrailsError
|
|
10
|
+
* Actions: fetchAuditTrails(type, objectId, params), clearAuditTrails()
|
|
11
|
+
* Getters: getAuditTrails, isAuditTrailsLoading, getAuditTrailsError
|
|
12
|
+
*
|
|
13
|
+
* @param {object} [options={}] Plugin options
|
|
14
|
+
* @param {number} [options.limit=20] Default page size
|
|
15
|
+
* @return {Function} Plugin factory
|
|
16
|
+
*/
|
|
17
|
+
export const auditTrailsPlugin = createSubResourcePlugin('auditTrails', 'audit-trails')
|