@raclettejs/workbench 0.1.33-canary.2 → 0.1.33
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/.raclette/backend/raclette.config.js +3 -3
- package/.raclette/backend/yarn.lock +4 -11
- package/.raclette/frontend/raclette.config.js +6 -4
- package/.raclette/frontend/yarn.lock +451 -489
- package/.raclette/virtual/backend/raclette.config.js +3 -3
- package/.raclette/virtual/backend/yarn.lock +4 -11
- package/.raclette/virtual/frontend/raclette.config.js +6 -4
- package/.raclette/virtual/frontend/yarn.lock +451 -489
- package/CHANGELOG.md +19 -3
- package/i18n/de-DE.json +15 -0
- package/i18n/en-EU.json +15 -0
- package/i18n/sk-SK.json +15 -0
- package/package.json +5 -4
- package/plugins/pacifico__compositions/frontend/widgets/CompositionListWidget.vue +39 -21
- package/plugins/pacifico__interactionLinks/frontend/widgets/InteractionLinkListWidget.vue +39 -21
- package/plugins/pacifico__plugins/frontend/index.ts +3 -3
- package/plugins/pacifico__plugins/frontend/widgets/PluginListWidget.vue +11 -12
- package/plugins/pacifico__tags/frontend/widgets/TagListWidget.vue +39 -21
- package/plugins/pacifico__users/frontend/widgets/UserListWidget.vue +79 -57
- package/services/frontend/src/app/components/dynamicForm/DynamicForm.vue +139 -51
- package/services/frontend/src/app/components/dynamicForm/DynamicInput.vue +95 -5
- package/services/frontend/src/app/components/dynamicForm/ObjectListInput.vue +78 -41
- package/services/frontend/src/app/components/dynamicForm/TextDivider.vue +46 -6
- package/services/frontend/src/app/components/dynamicForm/typedInputs/ListInput.vue +118 -27
- package/services/frontend/src/app/components/dynamicForm/typedInputs/RecordInput.vue +131 -21
- package/services/frontend/src/app/components/dynamicForm/typedInputs/TagsInput.vue +1 -0
- package/services/frontend/src/app/components/dynamicForm/typedInputs/TriggerInput.vue +4 -4
- package/services/frontend/src/app/composables/useWorkbenchTableActions.ts +29 -0
- package/services/frontend/src/orchestrator/assets/styles/themes/light.ts +4 -3
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,21 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.1.33
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- Exporter Functionality
|
|
8
|
+
- 9bc0e96: devOps: canary release
|
|
9
|
+
- 9bc0e96: fix: fixed wrong import in workbench plugin
|
|
10
|
+
- 9bc0e96: devOps: test release nr2
|
|
11
|
+
- 9bc0e96: devOps: canary release pre exporter
|
|
12
|
+
- Updated dependencies
|
|
13
|
+
- Updated dependencies [9bc0e96]
|
|
14
|
+
- Updated dependencies [9bc0e96]
|
|
15
|
+
- Updated dependencies [9bc0e96]
|
|
16
|
+
- Updated dependencies [9bc0e96]
|
|
17
|
+
- @raclettejs/core@0.1.33
|
|
18
|
+
|
|
3
19
|
All notable changes to this project will be documented in this file.
|
|
4
20
|
|
|
5
21
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
|
@@ -26,7 +42,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
26
42
|
### Updated
|
|
27
43
|
|
|
28
44
|
- core release
|
|
29
|
-
|
|
45
|
+
- restyled the dynamicForm
|
|
46
|
+
- fixed not deletable interactionLink Trigger
|
|
30
47
|
|
|
31
48
|
## [0.1.25] - 2026-04-17 <a href="https://gitlab.com/raclettejs/core-dev/-/compare/v0.1.23...v0.1.25" target="_blank" rel="noopener"><b>Overview of all changes</b></a>
|
|
32
49
|
|
|
@@ -52,12 +69,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
52
69
|
|
|
53
70
|
- Dependency Versions
|
|
54
71
|
|
|
55
|
-
|
|
56
72
|
## [0.1.23] - 2026-03-11 <a href="https://gitlab.com/raclettejs/core-dev/-/compare/v0.1.21...v0.1.23" target="_blank" rel="noopener"><b>Overview of all changes</b></a>
|
|
57
73
|
|
|
58
74
|
### Fixed
|
|
59
|
-
- workbench workspace dependency protocol
|
|
60
75
|
|
|
76
|
+
- workbench workspace dependency protocol
|
|
61
77
|
|
|
62
78
|
## [0.1.21] - 2026-03-05 <a href="https://gitlab.com/raclettejs/core-dev/-/compare/v0.1.20...v0.1.21" target="_blank" rel="noopener"><b>Overview of all changes</b></a>
|
|
63
79
|
|
package/i18n/de-DE.json
CHANGED
|
@@ -245,6 +245,21 @@
|
|
|
245
245
|
"label": "Benutzer",
|
|
246
246
|
"placeholder": "Benutzer wählen"
|
|
247
247
|
},
|
|
248
|
+
"list": {
|
|
249
|
+
"rowLabel": "Listenpunkt {n}",
|
|
250
|
+
"addNewLabel": "Neuen Listenpunkt hinzufügen"
|
|
251
|
+
},
|
|
252
|
+
"objectList": {
|
|
253
|
+
"addEntry": "Eintrag hinzufügen",
|
|
254
|
+
"removeEntry": "Eintrag entfernen",
|
|
255
|
+
"unnamedEntry": "Eintrag {n}"
|
|
256
|
+
},
|
|
257
|
+
"record": {
|
|
258
|
+
"keyLabel": "Schlüssel, Zeile {n}",
|
|
259
|
+
"valueLabel": "Wert, Zeile {n}",
|
|
260
|
+
"removeRow": "Schlüssel/Wert-Zeile entfernen",
|
|
261
|
+
"addRow": "Schlüssel/Wert-Zeile hinzufügen"
|
|
262
|
+
},
|
|
248
263
|
"validation": {
|
|
249
264
|
"required": "{field} ist erforderlich",
|
|
250
265
|
"minLength": "{field} muss mindestens {minLength} Zeichen lang sein",
|
package/i18n/en-EU.json
CHANGED
|
@@ -245,6 +245,21 @@
|
|
|
245
245
|
"label": "User",
|
|
246
246
|
"placeholder": "Select User"
|
|
247
247
|
},
|
|
248
|
+
"list": {
|
|
249
|
+
"rowLabel": "List item {n}",
|
|
250
|
+
"addNewLabel": "Add new list item"
|
|
251
|
+
},
|
|
252
|
+
"objectList": {
|
|
253
|
+
"addEntry": "Add entry",
|
|
254
|
+
"removeEntry": "Remove entry",
|
|
255
|
+
"unnamedEntry": "Entry {n}"
|
|
256
|
+
},
|
|
257
|
+
"record": {
|
|
258
|
+
"keyLabel": "Key, row {n}",
|
|
259
|
+
"valueLabel": "Value, row {n}",
|
|
260
|
+
"removeRow": "Remove key/value row",
|
|
261
|
+
"addRow": "Add key/value row"
|
|
262
|
+
},
|
|
248
263
|
"validation": {
|
|
249
264
|
"required": "{field} is required",
|
|
250
265
|
"minLength": "{field} must be at least {minLength} characters long",
|
package/i18n/sk-SK.json
CHANGED
|
@@ -240,6 +240,21 @@
|
|
|
240
240
|
"label": "Používateľ",
|
|
241
241
|
"placeholder": "Vyberte používateľa"
|
|
242
242
|
},
|
|
243
|
+
"list": {
|
|
244
|
+
"rowLabel": "Položka zoznamu {n}",
|
|
245
|
+
"addNewLabel": "Pridať novú položku zoznamu"
|
|
246
|
+
},
|
|
247
|
+
"objectList": {
|
|
248
|
+
"addEntry": "Pridať záznam",
|
|
249
|
+
"removeEntry": "Odstrániť záznam",
|
|
250
|
+
"unnamedEntry": "Záznam {n}"
|
|
251
|
+
},
|
|
252
|
+
"record": {
|
|
253
|
+
"keyLabel": "Kľúč, riadok {n}",
|
|
254
|
+
"valueLabel": "Hodnota, riadok {n}",
|
|
255
|
+
"removeRow": "Odstrániť riadok kľúča a hodnoty",
|
|
256
|
+
"addRow": "Pridať riadok kľúča a hodnoty"
|
|
257
|
+
},
|
|
243
258
|
"validation": {
|
|
244
259
|
"required": "{field} je povinné",
|
|
245
260
|
"minLength": "{field} musí mať aspoň {minLength} znakov",
|
package/package.json
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@raclettejs/workbench",
|
|
3
|
-
"version": "0.1.33
|
|
3
|
+
"version": "0.1.33",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"description": "racletteJS Workbench - used to configure your application, for dev and prod",
|
|
6
6
|
"repository": "https://gitlab.com/raclettejs/workbench",
|
|
7
7
|
"author": "Pacifico Digital Explorations GmbH",
|
|
8
8
|
"type": "module",
|
|
9
9
|
"scripts": {
|
|
10
|
+
":install": "yarn install",
|
|
10
11
|
"dev": "raclette dev",
|
|
11
12
|
"down": "raclette down",
|
|
12
13
|
"build": "raclette build",
|
|
@@ -33,7 +34,7 @@
|
|
|
33
34
|
".": "./index.ts"
|
|
34
35
|
},
|
|
35
36
|
"dependencies": {
|
|
36
|
-
"@raclettejs/core": "^0.1.33
|
|
37
|
+
"@raclettejs/core": "^0.1.33",
|
|
37
38
|
"@vueuse/integrations": "14.2.1",
|
|
38
39
|
"fuse.js": "7.1.0",
|
|
39
40
|
"three": "0.183.2",
|
|
@@ -43,7 +44,7 @@
|
|
|
43
44
|
"@emnapi/core": "1.9.2",
|
|
44
45
|
"@emnapi/runtime": "1.9.2",
|
|
45
46
|
"@eslint/js": "9.35.0",
|
|
46
|
-
"@raclettejs/types": "^0.1.33
|
|
47
|
+
"@raclettejs/types": "^0.1.33",
|
|
47
48
|
"@sinclair/typebox": "0.34.48",
|
|
48
49
|
"@types/ramda": "0.31.1",
|
|
49
50
|
"@vueuse/core": "14.2.1",
|
|
@@ -66,7 +67,7 @@
|
|
|
66
67
|
"uuid": "13.0.0",
|
|
67
68
|
"vite": "8.0.1",
|
|
68
69
|
"vue": "3.5.30",
|
|
69
|
-
"vue-eslint-parser": "
|
|
70
|
+
"vue-eslint-parser": "10.3.0",
|
|
70
71
|
"vue-i18n": "11.3.0",
|
|
71
72
|
"vuetify": "4.0.5"
|
|
72
73
|
}
|
|
@@ -1,37 +1,40 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<div>
|
|
2
|
+
<div class="tw:p-4">
|
|
3
3
|
<BaseDataTable
|
|
4
4
|
:items="parsedCompositions"
|
|
5
5
|
:exportable-items="exportableCompositions"
|
|
6
6
|
:loading="compositionsLoading || tagsLoading"
|
|
7
7
|
:headers="headers"
|
|
8
|
-
|
|
9
|
-
edit-interaction-link-id="compositionEditInteractionLink"
|
|
8
|
+
:row-click-handler="handleRowClick"
|
|
10
9
|
:data-name="$t('workbench.compositionList.dataName')"
|
|
11
|
-
:
|
|
12
|
-
@delete="deleteComposition"
|
|
10
|
+
:show-filters="true"
|
|
13
11
|
:items-deleted="showDeleted"
|
|
14
12
|
:on-file-loaded="handleFileUpload"
|
|
15
13
|
>
|
|
16
|
-
<template #toolbar-
|
|
17
|
-
<v-
|
|
18
|
-
|
|
14
|
+
<template #toolbar-end>
|
|
15
|
+
<v-btn
|
|
16
|
+
prepend-icon="mdi-plus"
|
|
17
|
+
variant="flat"
|
|
18
|
+
color="success"
|
|
19
|
+
:text="$t('core.baseDataTable.createDataButton', { dataName: $t('workbench.compositionList.dataName') })"
|
|
20
|
+
@click="goToCreate('compositionCreateInteractionLink')"
|
|
21
|
+
/>
|
|
22
|
+
</template>
|
|
23
|
+
<template #toolbar-actions-menu>
|
|
24
|
+
<v-list-item
|
|
25
|
+
:title="showDeleted ? $t('core.hideDeleted') : $t('core.showDeleted')"
|
|
26
|
+
prepend-icon="mdi-delete-outline"
|
|
19
27
|
>
|
|
20
|
-
<template #
|
|
21
|
-
<v-
|
|
22
|
-
density="compact"
|
|
23
|
-
v-bind="activatorProps"
|
|
28
|
+
<template #append>
|
|
29
|
+
<v-switch
|
|
24
30
|
v-model="showDeleted"
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
</v-btn>
|
|
31
|
-
<v-btn :value="false"><v-icon>mdi-table-eye</v-icon></v-btn>
|
|
32
|
-
</v-btn-toggle>
|
|
31
|
+
color="error"
|
|
32
|
+
density="compact"
|
|
33
|
+
hide-details
|
|
34
|
+
inset
|
|
35
|
+
/>
|
|
33
36
|
</template>
|
|
34
|
-
</v-
|
|
37
|
+
</v-list-item>
|
|
35
38
|
</template>
|
|
36
39
|
<!-- Custom status column -->
|
|
37
40
|
<template #[`item.status`]="{ item }">
|
|
@@ -55,6 +58,15 @@
|
|
|
55
58
|
icon="mdi-delete-restore"
|
|
56
59
|
/>
|
|
57
60
|
</template>
|
|
61
|
+
<template #row-actions="{ item }">
|
|
62
|
+
<v-btn
|
|
63
|
+
icon="mdi-delete"
|
|
64
|
+
size="small"
|
|
65
|
+
variant="text"
|
|
66
|
+
color="error"
|
|
67
|
+
@click.stop.prevent="deleteComposition(item)"
|
|
68
|
+
/>
|
|
69
|
+
</template>
|
|
58
70
|
</BaseDataTable>
|
|
59
71
|
<!-- Import Selection Dialog -->
|
|
60
72
|
<ImportSelectionDialog
|
|
@@ -93,10 +105,12 @@ import {
|
|
|
93
105
|
parseAndNormalizeWorkbenchImportJson,
|
|
94
106
|
resolveWorkbenchImportSelection,
|
|
95
107
|
} from "@app/lib/jsonTools"
|
|
108
|
+
import { useWorkbenchTableActions } from "@app/composables/useWorkbenchTableActions"
|
|
96
109
|
import ImportSelectionDialog from "@raclettejs/core/orchestrator/components/dataImport/ImportSelectionDialog.vue"
|
|
97
110
|
import ImportSummaryDialog from "@raclettejs/core/orchestrator/components/dataImport/ImportSummaryDialog.vue"
|
|
98
111
|
|
|
99
112
|
const { t } = useI18n()
|
|
113
|
+
const { goToCreate, goToEditById } = useWorkbenchTableActions()
|
|
100
114
|
const showDeleted = ref(false)
|
|
101
115
|
const showImportDialog = ref(false)
|
|
102
116
|
const showImportSummary = ref(false)
|
|
@@ -273,6 +287,10 @@ const deleteComposition = async (composition: Composition) => {
|
|
|
273
287
|
const restore = (_id: string) => {
|
|
274
288
|
executeRestore({ _id })
|
|
275
289
|
}
|
|
290
|
+
|
|
291
|
+
const handleRowClick = (item: Composition) =>
|
|
292
|
+
goToEditById("compositionEditInteractionLink", item._id)
|
|
293
|
+
|
|
276
294
|
$socket.on("compositionCreated", () =>
|
|
277
295
|
execute({ isDeleted: showDeleted.value }),
|
|
278
296
|
)
|
|
@@ -1,37 +1,40 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<div>
|
|
2
|
+
<div class="tw:p-4">
|
|
3
3
|
<BaseDataTable
|
|
4
4
|
:items="parsedInteractionLinks"
|
|
5
5
|
:exportable-items="exportableInteractionLinks"
|
|
6
6
|
:loading="interactionLinksLoading || tagsLoading"
|
|
7
7
|
:headers="headers"
|
|
8
|
-
|
|
9
|
-
edit-interaction-link-id="interactionLinkEditInteractionLink"
|
|
8
|
+
:row-click-handler="handleRowClick"
|
|
10
9
|
:data-name="$t('workbench.interactionLinkList.dataName')"
|
|
11
|
-
:
|
|
12
|
-
@delete="deleteInteractionLink"
|
|
10
|
+
:show-filters="true"
|
|
13
11
|
:items-deleted="showDeleted"
|
|
14
12
|
:on-file-loaded="handleFileUpload"
|
|
15
13
|
>
|
|
16
|
-
<template #toolbar-
|
|
17
|
-
<v-
|
|
18
|
-
|
|
14
|
+
<template #toolbar-end>
|
|
15
|
+
<v-btn
|
|
16
|
+
prepend-icon="mdi-plus"
|
|
17
|
+
variant="flat"
|
|
18
|
+
color="success"
|
|
19
|
+
:text="$t('core.baseDataTable.createDataButton', { dataName: $t('workbench.interactionLinkList.dataName') })"
|
|
20
|
+
@click="goToCreate('interactionLinkCreateInteractionLink')"
|
|
21
|
+
/>
|
|
22
|
+
</template>
|
|
23
|
+
<template #toolbar-actions-menu>
|
|
24
|
+
<v-list-item
|
|
25
|
+
:title="showDeleted ? $t('core.hideDeleted') : $t('core.showDeleted')"
|
|
26
|
+
prepend-icon="mdi-delete-outline"
|
|
19
27
|
>
|
|
20
|
-
<template #
|
|
21
|
-
<v-
|
|
22
|
-
density="compact"
|
|
23
|
-
v-bind="activatorProps"
|
|
28
|
+
<template #append>
|
|
29
|
+
<v-switch
|
|
24
30
|
v-model="showDeleted"
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
</v-btn>
|
|
31
|
-
<v-btn :value="false"><v-icon>mdi-table-eye</v-icon></v-btn>
|
|
32
|
-
</v-btn-toggle>
|
|
31
|
+
color="error"
|
|
32
|
+
density="compact"
|
|
33
|
+
hide-details
|
|
34
|
+
inset
|
|
35
|
+
/>
|
|
33
36
|
</template>
|
|
34
|
-
</v-
|
|
37
|
+
</v-list-item>
|
|
35
38
|
</template>
|
|
36
39
|
<!-- Custom triggers column -->
|
|
37
40
|
<template #[`item.triggers`]="{ item }">
|
|
@@ -54,6 +57,15 @@
|
|
|
54
57
|
icon="mdi-delete-restore"
|
|
55
58
|
/>
|
|
56
59
|
</template>
|
|
60
|
+
<template #row-actions="{ item }">
|
|
61
|
+
<v-btn
|
|
62
|
+
icon="mdi-delete"
|
|
63
|
+
size="small"
|
|
64
|
+
variant="text"
|
|
65
|
+
color="error"
|
|
66
|
+
@click.stop.prevent="deleteInteractionLink(item)"
|
|
67
|
+
/>
|
|
68
|
+
</template>
|
|
57
69
|
</BaseDataTable>
|
|
58
70
|
<!-- Import Selection Dialog -->
|
|
59
71
|
<ImportSelectionDialog
|
|
@@ -94,6 +106,7 @@ import {
|
|
|
94
106
|
} from "@app/lib/jsonTools"
|
|
95
107
|
import ImportSelectionDialog from "@raclettejs/core/orchestrator/components/dataImport/ImportSelectionDialog.vue"
|
|
96
108
|
import ImportSummaryDialog from "@raclettejs/core/orchestrator/components/dataImport/ImportSummaryDialog.vue"
|
|
109
|
+
import { useWorkbenchTableActions } from "@app/composables/useWorkbenchTableActions"
|
|
97
110
|
const showDeleted = ref(false)
|
|
98
111
|
const showImportDialog = ref(false)
|
|
99
112
|
const showImportSummary = ref(false)
|
|
@@ -103,6 +116,7 @@ const importedItems = ref<any[]>([])
|
|
|
103
116
|
const pendingImportById = ref<Record<string, any>>({})
|
|
104
117
|
|
|
105
118
|
const { t } = useI18n()
|
|
119
|
+
const { goToCreate, goToEditById } = useWorkbenchTableActions()
|
|
106
120
|
|
|
107
121
|
const headers = computed<{ title: string; key: keyof InteractionLink }[]>(
|
|
108
122
|
() => [
|
|
@@ -211,6 +225,10 @@ const exportableInteractionLinks = computed(() =>
|
|
|
211
225
|
const restore = async (_id: string) => {
|
|
212
226
|
executeRestore({ _id })
|
|
213
227
|
}
|
|
228
|
+
|
|
229
|
+
const handleRowClick = (item: InteractionLink) =>
|
|
230
|
+
goToEditById("interactionLinkEditInteractionLink", item._id)
|
|
231
|
+
|
|
214
232
|
const deleteInteractionLink = async (interactionLink: InteractionLink) => {
|
|
215
233
|
if (showDeleted.value) {
|
|
216
234
|
await executeHardDelete({ _id: interactionLink._id })
|
|
@@ -4,7 +4,7 @@ export default defineRaclettePluginFrontend({
|
|
|
4
4
|
i18n: {
|
|
5
5
|
de: {
|
|
6
6
|
pluginList: {
|
|
7
|
-
dataName: "
|
|
7
|
+
dataName: "Plugins",
|
|
8
8
|
dataArticle: "das",
|
|
9
9
|
tableHeaders: {
|
|
10
10
|
name: "Name",
|
|
@@ -16,7 +16,7 @@ export default defineRaclettePluginFrontend({
|
|
|
16
16
|
},
|
|
17
17
|
en: {
|
|
18
18
|
pluginList: {
|
|
19
|
-
dataName: "
|
|
19
|
+
dataName: "Plugins",
|
|
20
20
|
dataArticle: "the",
|
|
21
21
|
tableHeaders: {
|
|
22
22
|
name: "Name",
|
|
@@ -28,7 +28,7 @@ export default defineRaclettePluginFrontend({
|
|
|
28
28
|
},
|
|
29
29
|
sk: {
|
|
30
30
|
pluginList: {
|
|
31
|
-
dataName: "
|
|
31
|
+
dataName: "Plugins",
|
|
32
32
|
dataArticle: "",
|
|
33
33
|
tableHeaders: {
|
|
34
34
|
name: "Názov",
|
|
@@ -1,16 +1,15 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
>
|
|
13
|
-
</BaseDataTable>
|
|
2
|
+
<div class="tw:p-4">
|
|
3
|
+
<BaseDataTable
|
|
4
|
+
:items="pluginMetadataFiles"
|
|
5
|
+
:headers
|
|
6
|
+
:data-name="$i18n.t('pluginList.dataName')"
|
|
7
|
+
:show-filters="true"
|
|
8
|
+
:show-actions-column="false"
|
|
9
|
+
:row-click-handler="onRowClick"
|
|
10
|
+
:show-export="false"
|
|
11
|
+
/>
|
|
12
|
+
</div>
|
|
14
13
|
</template>
|
|
15
14
|
|
|
16
15
|
<script setup lang="ts">
|
|
@@ -1,37 +1,40 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<div>
|
|
2
|
+
<div class="tw:p-4">
|
|
3
3
|
<BaseDataTable
|
|
4
4
|
:items="parsedTags"
|
|
5
5
|
:exportable-items="exportableTags"
|
|
6
6
|
:loading="tagsLoading"
|
|
7
7
|
:headers="headers"
|
|
8
|
-
|
|
9
|
-
edit-interaction-link-id="tagEditInteractionLink"
|
|
8
|
+
:row-click-handler="handleRowClick"
|
|
10
9
|
:data-name="$t('workbench.tagList.dataName')"
|
|
11
|
-
:
|
|
12
|
-
@delete="deleteTag"
|
|
10
|
+
:show-filters="true"
|
|
13
11
|
:items-deleted="showDeleted"
|
|
14
12
|
:on-file-loaded="handleFileUpload"
|
|
15
13
|
>
|
|
16
|
-
<template #toolbar-
|
|
17
|
-
<v-
|
|
18
|
-
|
|
14
|
+
<template #toolbar-end>
|
|
15
|
+
<v-btn
|
|
16
|
+
prepend-icon="mdi-plus"
|
|
17
|
+
variant="flat"
|
|
18
|
+
color="success"
|
|
19
|
+
:text="$t('core.baseDataTable.createDataButton', { dataName: $t('workbench.tagList.dataName') })"
|
|
20
|
+
@click="goToCreate('tagCreateInteractionLink')"
|
|
21
|
+
/>
|
|
22
|
+
</template>
|
|
23
|
+
<template #toolbar-actions-menu>
|
|
24
|
+
<v-list-item
|
|
25
|
+
:title="showDeleted ? $t('core.hideDeleted') : $t('core.showDeleted')"
|
|
26
|
+
prepend-icon="mdi-delete-outline"
|
|
19
27
|
>
|
|
20
|
-
<template #
|
|
21
|
-
<v-
|
|
22
|
-
density="compact"
|
|
23
|
-
v-bind="activatorProps"
|
|
28
|
+
<template #append>
|
|
29
|
+
<v-switch
|
|
24
30
|
v-model="showDeleted"
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
</v-btn>
|
|
31
|
-
<v-btn :value="false"><v-icon>mdi-table-eye</v-icon></v-btn>
|
|
32
|
-
</v-btn-toggle>
|
|
31
|
+
color="error"
|
|
32
|
+
density="compact"
|
|
33
|
+
hide-details
|
|
34
|
+
inset
|
|
35
|
+
/>
|
|
33
36
|
</template>
|
|
34
|
-
</v-
|
|
37
|
+
</v-list-item>
|
|
35
38
|
</template>
|
|
36
39
|
<template #prepend-row-actions="{ item }">
|
|
37
40
|
<v-icon
|
|
@@ -47,6 +50,15 @@
|
|
|
47
50
|
icon="mdi-delete-restore"
|
|
48
51
|
/>
|
|
49
52
|
</template>
|
|
53
|
+
<template #row-actions="{ item }">
|
|
54
|
+
<v-btn
|
|
55
|
+
icon="mdi-delete"
|
|
56
|
+
size="small"
|
|
57
|
+
variant="text"
|
|
58
|
+
color="error"
|
|
59
|
+
@click.stop.prevent="deleteTag(item)"
|
|
60
|
+
/>
|
|
61
|
+
</template>
|
|
50
62
|
</BaseDataTable>
|
|
51
63
|
<!-- Import Selection Dialog -->
|
|
52
64
|
<ImportSelectionDialog
|
|
@@ -87,8 +99,10 @@ import {
|
|
|
87
99
|
} from "@app/lib/jsonTools"
|
|
88
100
|
import ImportSelectionDialog from "@raclettejs/core/orchestrator/components/dataImport/ImportSelectionDialog.vue"
|
|
89
101
|
import ImportSummaryDialog from "@raclettejs/core/orchestrator/components/dataImport/ImportSummaryDialog.vue"
|
|
102
|
+
import { useWorkbenchTableActions } from "@app/composables/useWorkbenchTableActions"
|
|
90
103
|
const showDeleted = ref(false)
|
|
91
104
|
const { t } = useI18n()
|
|
105
|
+
const { goToCreate, goToEditById } = useWorkbenchTableActions()
|
|
92
106
|
const showImportDialog = ref(false)
|
|
93
107
|
const showImportSummary = ref(false)
|
|
94
108
|
|
|
@@ -214,6 +228,10 @@ const finalizeImport = async () => {
|
|
|
214
228
|
const restore = async (_id: string) => {
|
|
215
229
|
executeRestore({ _id })
|
|
216
230
|
}
|
|
231
|
+
|
|
232
|
+
const handleRowClick = (item: Tag) =>
|
|
233
|
+
goToEditById("tagEditInteractionLink", item._id)
|
|
234
|
+
|
|
217
235
|
$socket.on("tagCreated", () => execute({ isDeleted: showDeleted.value }))
|
|
218
236
|
watch(
|
|
219
237
|
showDeleted,
|