bfg-common 1.5.921 → 1.5.923

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 (58) hide show
  1. package/assets/localization/local_be.json +4 -16
  2. package/assets/localization/local_en.json +4 -16
  3. package/assets/localization/local_hy.json +4 -16
  4. package/assets/localization/local_kk.json +4 -16
  5. package/assets/localization/local_ru.json +4 -16
  6. package/assets/localization/local_zh.json +4 -16
  7. package/components/common/pages/scheduledTasks/lib/models/interfaces.ts +0 -6
  8. package/components/common/pages/scheduledTasks/modals/common/frequency/Frequency.vue +42 -46
  9. package/components/common/pages/scheduledTasks/modals/common/frequency/afterStartup/AfterStartup.vue +48 -15
  10. package/components/common/pages/scheduledTasks/modals/common/frequency/end/End.vue +69 -15
  11. package/components/common/pages/scheduledTasks/modals/common/frequency/interval/Interval.vue +53 -19
  12. package/components/common/pages/scheduledTasks/modals/common/frequency/lib/utils.ts +1 -1
  13. package/components/common/pages/scheduledTasks/modals/common/frequency/on/On.vue +168 -28
  14. package/components/common/pages/scheduledTasks/modals/common/frequency/on/lib/config/options.ts +0 -17
  15. package/components/common/pages/scheduledTasks/modals/common/frequency/on/selectWeek/SelectWeek.vue +28 -17
  16. package/components/common/pages/scheduledTasks/modals/common/frequency/on/selectWeek/lib/config/weekOptions.ts +50 -20
  17. package/components/common/pages/scheduledTasks/modals/common/frequency/startOn/StartOn.vue +51 -15
  18. package/components/common/pages/scheduledTasks/modals/common/{taskForm/Old.vue → newTaskForm/NewTaskForm.vue} +69 -12
  19. package/components/common/pages/scheduledTasks/table/Table.vue +81 -27
  20. package/components/common/pages/scheduledTasks/table/expandDetails/ExpandDetails.vue +2 -2
  21. package/components/common/pages/scheduledTasks/table/expandDetails/New.vue +17 -48
  22. package/components/common/pages/scheduledTasks/table/expandDetails/Old.vue +3 -1
  23. package/components/common/pages/scheduledTasks/table/expandDetails/historyRun/HistoryRun.vue +54 -16
  24. package/components/common/pages/scheduledTasks/table/expandDetails/historyRun/{old/lib → lib}/config/historyRunsTable.ts +4 -4
  25. package/components/common/pages/scheduledTasks/table/expandDetails/historyRun/{old/lib → lib}/config/tableKeys.ts +1 -1
  26. package/components/common/pages/scheduledTasks/table/expandDetails/lib/config/expandDetails.ts +5 -7
  27. package/components/common/pages/scheduledTasks/table/{old/lib → lib}/config/scheduledTasksTable.ts +9 -13
  28. package/components/common/pages/scheduledTasks/table/lib/config/schedulerStatus.ts +4 -0
  29. package/components/common/pages/scheduledTasks/table/{old/lib → lib}/config/tableKeys.ts +1 -1
  30. package/components/common/pages/scheduledTasks/table/lib/models/interfaces.ts +11 -0
  31. package/package.json +1 -1
  32. package/components/common/pages/scheduledTasks/modals/common/frequency/afterStartup/New.vue +0 -43
  33. package/components/common/pages/scheduledTasks/modals/common/frequency/afterStartup/Old.vue +0 -65
  34. package/components/common/pages/scheduledTasks/modals/common/frequency/end/New.vue +0 -73
  35. package/components/common/pages/scheduledTasks/modals/common/frequency/end/Old.vue +0 -112
  36. package/components/common/pages/scheduledTasks/modals/common/frequency/interval/New.vue +0 -49
  37. package/components/common/pages/scheduledTasks/modals/common/frequency/interval/Old.vue +0 -68
  38. package/components/common/pages/scheduledTasks/modals/common/frequency/on/New.vue +0 -137
  39. package/components/common/pages/scheduledTasks/modals/common/frequency/on/Old.vue +0 -234
  40. package/components/common/pages/scheduledTasks/modals/common/frequency/on/selectWeek/New.vue +0 -66
  41. package/components/common/pages/scheduledTasks/modals/common/frequency/on/selectWeek/Old.vue +0 -44
  42. package/components/common/pages/scheduledTasks/modals/common/frequency/startOn/New.vue +0 -46
  43. package/components/common/pages/scheduledTasks/modals/common/frequency/startOn/Old.vue +0 -77
  44. package/components/common/pages/scheduledTasks/modals/common/taskForm/New.vue +0 -194
  45. package/components/common/pages/scheduledTasks/modals/common/taskForm/TaskForm.vue +0 -129
  46. package/components/common/pages/scheduledTasks/table/expandDetails/historyRun/new/New.vue +0 -147
  47. package/components/common/pages/scheduledTasks/table/expandDetails/historyRun/new/lib/config/historyRunsTable.ts +0 -161
  48. package/components/common/pages/scheduledTasks/table/expandDetails/historyRun/old/Old.vue +0 -68
  49. package/components/common/pages/scheduledTasks/table/expandDetails/lib/models/interfaces.ts +0 -8
  50. package/components/common/pages/scheduledTasks/table/lib/models/enums.ts +0 -4
  51. package/components/common/pages/scheduledTasks/table/new/New.vue +0 -320
  52. package/components/common/pages/scheduledTasks/table/new/lib/config/scheduledTasksTable.ts +0 -218
  53. package/components/common/pages/scheduledTasks/table/new/lib/models/enums.ts +0 -14
  54. package/components/common/pages/scheduledTasks/table/old/Old.vue +0 -93
  55. /package/components/common/pages/scheduledTasks/modals/common/{taskForm → newTaskForm}/lib/models/interfaces.ts +0 -0
  56. /package/components/common/pages/scheduledTasks/modals/common/{taskForm → newTaskForm}/lib/utils.ts +0 -0
  57. /package/components/common/pages/scheduledTasks/table/expandDetails/historyRun/{old/lib → lib}/models/types.ts +0 -0
  58. /package/components/common/pages/scheduledTasks/table/{old/lib → lib}/models/types.ts +0 -0
@@ -1,320 +0,0 @@
1
- <template>
2
- <div :class="`table-view-scheduled-tasks table-container-${data.id}`">
3
- <ui-data-table
4
- :data="data"
5
- :options="options"
6
- :loading="props.isLoading"
7
- :total-pages="props.totalPages"
8
- :total-items="props.totalItems"
9
- :texts="texts"
10
- :skeleton="skeletonData"
11
- test-id="task-table"
12
- @sort="onSorting"
13
- @pagination="onPagination"
14
- @column-filter="onColumnFilter"
15
- @select-row="onSelectRow"
16
- >
17
- <template #insteadOfTitleActions>
18
- <templates-inventory-vm-configure-scheduled-tasks-tools-panel
19
- :selected-task="selectedScheduledTaskLocal"
20
- :selected-task-from-table="props.selectedScheduler"
21
- />
22
- </template>
23
-
24
- <template #icon="{ item }">
25
- <span class="flex-align-center">
26
- <ui-icon
27
- :name="item.data.iconClassName"
28
- width="18"
29
- height="18"
30
- class="mr-1"
31
- />
32
- {{ item.text }}
33
- </span>
34
- </template>
35
-
36
- <template #status="{ item }">
37
- <ui-chip
38
- :test-id="item.data.testId"
39
- :color="item.data.chipColor"
40
- rounded
41
- >
42
- <ui-icon
43
- :name="item.data.icon"
44
- width="14px"
45
- height="14px"
46
- class="chip-icon"
47
- ></ui-icon>
48
- {{ item.text }}
49
- </ui-chip>
50
-
51
- <common-tooltip-help
52
- v-if="item.data.chipColor === 'red'"
53
- :title="localization.common.failureReason"
54
- :help-text="item.data.runResult"
55
- :test-id="`${item.data.testId}`"
56
- :help-id="`${item.data.testId}-tooltip`"
57
- status="error"
58
- dropdown-width="320px"
59
- dropdown-left
60
- dropdown-top
61
- class="ml-2"
62
- />
63
- </template>
64
-
65
- <template #default-actions="{ item }">
66
- <div class="scheduler-drop-action">
67
- <ui-button
68
- :id="`event-table-action-${item.data.id}`"
69
- :test-id="`event-table-action-${item.data.id}`"
70
- variant="text"
71
- is-without-height
72
- is-without-sizes
73
- @click.stop="onToggleActions(item.data.id)"
74
- >
75
- <span
76
- :class="[
77
- 'scheduler-drop-action__icon',
78
- { active: actionsShowId === item.data.id },
79
- ]"
80
- >
81
- <ui-icon name="vertical-dotes" width="20" height="20" />
82
- </span>
83
- </ui-button>
84
- <ui-dropdown
85
- :show="actionsShowId === item.data.id"
86
- :test-id="`event-table-action-dropdown-${item.data.id}`"
87
- :items="actions"
88
- :elem-id="`event-table-action-${item.data.id}`"
89
- width="max-content"
90
- left
91
- @select="onSelectAction(item.data, $event)"
92
- @hide="onHideActionsDropdown"
93
- >
94
- <template #row="{ item: dropMenu }">
95
- <ui-icon :name="dropMenu.iconName" width="16" height="16" />
96
- <span class="scheduler-drop-action__icon__text">
97
- {{ dropMenu.text }}
98
- </span>
99
- </template>
100
- </ui-dropdown>
101
- </div>
102
- </template>
103
-
104
- <template #expand="{ item }">
105
- <common-pages-scheduled-tasks-table-expand-details
106
- :data="item.data[0]?.data.expandData"
107
- />
108
- </template>
109
-
110
- <template #skeleton-header>
111
- <div class="skeleton-header">
112
- <div class="left-skeleton">
113
- <ui-skeleton-item width="70" height="16" />
114
- <div class="vertical-line"></div>
115
- <ui-skeleton-item width="70" height="16" />
116
- <ui-skeleton-item width="70" height="16" />
117
- </div>
118
- <div class="right-skeleton">
119
- <ui-skeleton-item width="128" height="36" border-radius="8" />
120
- </div>
121
- </div>
122
- </template>
123
- </ui-data-table>
124
- </div>
125
- </template>
126
-
127
- <script setup lang="ts">
128
- import { useDebounceFn } from '@vueuse/core'
129
- import type { UI_I_Dropdown } from '~/node_modules/bfg-uikit/components/ui/dropdown/models/interfaces'
130
- import type {
131
- UI_I_DataTable,
132
- UI_I_DataTableHeader,
133
- UI_I_DataTableBody,
134
- UI_I_DataTableBodyData,
135
- UI_I_DataTableSkeleton,
136
- UI_I_Pagination,
137
- UI_I_TableTexts,
138
- } from '~/node_modules/bfg-uikit/components/ui/dataTable/models/interfaces'
139
- import type { UI_T_ArbitraryObject } from '~/node_modules/bfg-uikit/models/types'
140
- import type { UI_I_Localization } from '~/lib/models/interfaces'
141
- import type { UI_I_ScheduledTasks } from '~/components/common/pages/scheduledTasks/lib/models/interfaces'
142
- import {
143
- options,
144
- getTargetActionsFunc,
145
- getHeaderDataFunc,
146
- getBodyDataFunc,
147
- } from '~/components/common/pages/scheduledTasks/table/new/lib/config/scheduledTasksTable'
148
-
149
- const selectedScheduledTaskLocal = defineModel<string | null>({
150
- required: true,
151
- })
152
- const props = defineProps<{
153
- tableItems: UI_I_ScheduledTasks['items']
154
- totalItems: number
155
- totalPages: number
156
- selectedScheduler: UI_I_ScheduledTasks['items'][number]
157
- isLoading: boolean
158
- }>()
159
- const emits = defineEmits<{
160
- (event: 'sort', value: string): void
161
- (event: 'pagination', value: UI_I_Pagination): void
162
- (event: 'col-search', value: string): void
163
- }>()
164
-
165
- const localization = computed<UI_I_Localization>(() => useLocal())
166
-
167
- const texts = computed<UI_I_TableTexts>(() => ({
168
- searchHere: localization.value.common.searchHere,
169
- rowsPerPage: localization.value.common.rowsPerPage,
170
- of: localization.value.common.of,
171
- selected: localization.value.common.selected,
172
- columns: localization.value.common.columns,
173
- previous: localization.value.common.previous,
174
- next: localization.value.common.next,
175
- noItemsFound: localization.value.common.noItemsFound,
176
- exportAll: localization.value.common.exportAll,
177
- exportSelected: localization.value.common.exportSelected,
178
- all: localization.value.common.all,
179
- filter: localization.value.common.filter,
180
- }))
181
- const skeletonData = ref<UI_I_DataTableSkeleton>({
182
- columnsCount: 6,
183
- headColumns: [],
184
- bodyColumns: [],
185
- })
186
-
187
- const actionsShowId = ref<number>(-1)
188
-
189
- const data = computed<UI_I_DataTable>(() => ({
190
- id: 'scheduled-tasks-table',
191
- header: taskHeadItems.value,
192
- body: taskBodyItems.value,
193
- }))
194
-
195
- const taskHeadItems = computed<UI_I_DataTableHeader[]>(() =>
196
- getHeaderDataFunc(localization.value)
197
- )
198
- const taskBodyItems = computed<UI_I_DataTableBody[]>(() => {
199
- return getBodyDataFunc(props.tableItems || [], localization.value)
200
- })
201
-
202
- const onSorting = (value: string): void => {
203
- emits('sort', value)
204
- }
205
- const onPagination = (value: UI_I_Pagination): void => {
206
- emits('pagination', value)
207
- }
208
- const sendFilter = useDebounceFn((searchText: string) => {
209
- emits('col-search', searchText)
210
- }, 1000)
211
- const onColumnFilter = (obj: UI_T_ArbitraryObject<string>): void => {
212
- let searchText = ''
213
-
214
- for (const [key, value] of Object.entries(obj)) {
215
- const currentFilter = searchText
216
- ? ',' + key + '.' + value
217
- : key + '.' + value
218
-
219
- searchText = searchText + (value ? currentFilter : '')
220
- }
221
- sendFilter(searchText)
222
- }
223
-
224
- const actions = computed<UI_I_Dropdown[]>(() =>
225
- getTargetActionsFunc(localization.value)
226
- )
227
- const onToggleActions = (id: number): void => {
228
- if (actionsShowId.value === id) {
229
- actionsShowId.value = -1
230
- } else {
231
- actionsShowId.value = id
232
- }
233
- }
234
- const onSelectAction = (
235
- data: UI_I_DataTableBodyData['data'],
236
- action: 'view-target' | 'copy-clipboard' | 'export'
237
- ): void => {
238
- const { event } = data
239
-
240
- switch (action) {
241
- case 'view-target':
242
- break
243
- case 'copy-clipboard': {
244
- const clipboardText =
245
- [event]?.map((item) => Object.values(item).join(',')).join('\n') || ''
246
-
247
- navigator.clipboard.writeText(clipboardText)
248
- break
249
- }
250
- case 'export':
251
- break
252
- }
253
- onHideActionsDropdown()
254
- }
255
- const onHideActionsDropdown = (): void => {
256
- actionsShowId.value = -1
257
- }
258
-
259
- const onSelectRow = (value: UI_I_DataTableBody[]): void => {
260
- selectedScheduledTaskLocal.value = value[0]?.row
261
- }
262
- </script>
263
-
264
- <style scoped lang="scss">
265
- .table-view-scheduled-tasks {
266
- height: inherit;
267
-
268
- :deep(.table-container) {
269
- grid-template-rows: min-content auto min-content;
270
- }
271
-
272
- .chip-icon {
273
- min-width: 14px;
274
- }
275
- .icon {
276
- margin-right: 4px;
277
- }
278
-
279
- .scheduler-drop-action {
280
- width: 100%;
281
- &__icon {
282
- width: 20px;
283
- height: 20px;
284
- color: var(--tasks-actions-icon-color);
285
-
286
- &:hover {
287
- color: var(--tasks-actions-icon-hover-color);
288
- }
289
- &.active {
290
- color: var(--tasks-actions-icon-icative-color);
291
- }
292
- }
293
- &__text {
294
- margin-left: 8px;
295
- }
296
- }
297
-
298
- .skeleton-header {
299
- display: flex;
300
- justify-content: space-between;
301
- align-items: center;
302
-
303
- .left-skeleton {
304
- display: flex;
305
- align-items: center;
306
- column-gap: 16px;
307
- .vertical-line {
308
- height: 24px;
309
- border-right: 1px solid var(--table-line);
310
- }
311
- }
312
-
313
- .right-skeleton {
314
- display: flex;
315
- align-items: center;
316
- column-gap: 16px;
317
- }
318
- }
319
- }
320
- </style>
@@ -1,218 +0,0 @@
1
- import type {
2
- UI_I_DataTableBody,
3
- UI_I_DataTableHeader,
4
- UI_I_DataTableOptions,
5
- } from '~/node_modules/bfg-uikit/components/ui/dataTable/models/interfaces'
6
- import type { UI_I_Localization } from '~/lib/models/interfaces'
7
- import type { UI_I_Dropdown } from '~/node_modules/bfg-uikit/components/ui/dropdown/models/interfaces'
8
- import type { UI_I_ScheduledTasksTableItem } from '~/components/common/pages/scheduledTasks/lib/models/interfaces'
9
- import { UI_E_SchedulerRunStatus } from '~/components/common/pages/scheduledTasks/table/lib/models/enums'
10
- import {
11
- UI_E_SchedulerStatus,
12
- UI_E_SchedulerChipColor,
13
- UI_E_SchedulerChipIcon,
14
- } from '~/components/common/pages/scheduledTasks/table/new/lib/models/enums'
15
-
16
- // Маппинг для статусов
17
- const STATUS_MAPPING = {
18
- [UI_E_SchedulerStatus.Completed]: {
19
- textKey: 'completed',
20
- icon: UI_E_SchedulerChipIcon.StatusCheck,
21
- chipColor: UI_E_SchedulerChipColor.Green,
22
- },
23
- [UI_E_SchedulerStatus.Running]: {
24
- textKey: 'running',
25
- icon: UI_E_SchedulerChipIcon.StatusCheck,
26
- chipColor: UI_E_SchedulerChipColor.Green,
27
- },
28
- [UI_E_SchedulerStatus.Failed]: {
29
- textKey: 'failed',
30
- icon: UI_E_SchedulerChipIcon.Information,
31
- chipColor: UI_E_SchedulerChipColor.Red,
32
- },
33
- }
34
-
35
- export const getHeaderDataFunc = (
36
- localization: UI_I_Localization
37
- ): UI_I_DataTableHeader[] => [
38
- {
39
- col: 'col0',
40
- colName: 'name',
41
- text: localization.common.scheduledTask,
42
- isSortable: true,
43
- sort: 'asc',
44
- width: '240px',
45
- show: true,
46
- filter: true,
47
- },
48
- {
49
- col: 'col1',
50
- colName: 'sheduler',
51
- text: localization.common.schedule,
52
- isSortable: true,
53
- sort: 'asc',
54
- width: '180px',
55
- show: true,
56
- filter: true,
57
- },
58
- {
59
- col: 'col2',
60
- colName: 'last_modified',
61
- text: localization.common.lastRun,
62
- isSortable: true,
63
- sort: 'asc',
64
- width: '180px',
65
- show: true,
66
- filter: true,
67
- },
68
- {
69
- col: 'col3',
70
- colName: 'last_run_result',
71
- text: localization.common.lastRunResult,
72
- isSortable: true,
73
- sort: 'asc',
74
- width: '110px',
75
- show: true,
76
- filter: true,
77
- },
78
-
79
- {
80
- col: 'col4',
81
- colName: 'next_run',
82
- text: localization.common.nextRun,
83
- isSortable: true,
84
- sort: 'asc',
85
- width: '160px',
86
- show: true,
87
- filter: true,
88
- },
89
- ]
90
-
91
- export const getTargetActionsFunc = (
92
- localization: UI_I_Localization
93
- ): UI_I_Dropdown[] => {
94
- return [
95
- {
96
- value: 'view-target',
97
- text: localization.common.viewTarget,
98
- iconName: 'password-hide',
99
- selected: false,
100
- },
101
- {
102
- value: 'copy-clipboard',
103
- text: localization.events.copyToClipboard,
104
- iconName: 'copy-to-clipboard',
105
- selected: false,
106
- },
107
- // {
108
- // value: 'export',
109
- // text: localization.common.export,
110
- // iconName: 'download-2',
111
- // selected: false,
112
- // },
113
- ]
114
- }
115
-
116
- export const options: UI_I_DataTableOptions = {
117
- perPageOptions: [
118
- { text: '10', value: 10 },
119
- { text: '25', value: 25 },
120
- { text: '50', value: 50 },
121
- { text: '100', value: 100, default: true },
122
- ],
123
- selectType: 'radio',
124
- isSelectable: true,
125
- isFocusable: false,
126
- showPagination: true,
127
- showPaginationOnTop: false,
128
- showPageInfo: true,
129
- isSortable: true,
130
- server: true,
131
- isResizable: true,
132
- showSearch: false,
133
- showSelectedRows: false,
134
- showColumnManager: true,
135
- withActions: true,
136
- inBlock: true,
137
- showExport: false,
138
- withCollapse: true,
139
- }
140
-
141
- export const getBodyDataFunc = (
142
- bodyData: UI_I_ScheduledTasksTableItem[],
143
- localization: UI_I_Localization
144
- ): UI_I_DataTableBody[] => {
145
- const { $formattedDatetime }: any = useNuxtApp()
146
- return bodyData.map((scheduler, index: number) => {
147
- const historyLastRun = scheduler?.last_5_run?.at(-1)
148
-
149
- const lastRun = historyLastRun?.start
150
- const formattedLastRun =
151
- lastRun && $formattedDatetime(+lastRun * 1000, { hasSeconds: true })
152
-
153
- const nextRun = scheduler.next_run
154
- const formattedNextRun =
155
- nextRun && $formattedDatetime(+nextRun * 1000, { hasSeconds: true })
156
-
157
- const statusKey =
158
- historyLastRun?.result.toLowerCase() === UI_E_SchedulerRunStatus.SUCCESS
159
- ? UI_E_SchedulerStatus.Completed
160
- : historyLastRun?.result === UI_E_SchedulerRunStatus.RUNNING
161
- ? UI_E_SchedulerStatus.Running
162
- : UI_E_SchedulerStatus.Failed
163
- const statusData = {
164
- ...STATUS_MAPPING[statusKey],
165
- runResult: historyLastRun?.result,
166
- testId: `${scheduler.rid}-${index}-status`,
167
- }
168
-
169
- return {
170
- row: scheduler.rid,
171
- collapse: true,
172
- isHiddenCollapse: false,
173
- collapseToggle: false,
174
- data: [
175
- {
176
- key: 'icon',
177
- col: 'col0',
178
- text: scheduler.name,
179
- data: {
180
- iconClassName: 'shortcuts-tasks',
181
- expandData: scheduler,
182
- },
183
- testId: `table-item-${scheduler.rid}`,
184
- },
185
- {
186
- col: 'col1',
187
- text: scheduler.sheduler || '--',
188
- testId: `table-item-${scheduler.rid}`,
189
- },
190
- {
191
- col: 'col2',
192
- text: formattedLastRun,
193
- testId: `table-item-${scheduler.rid}`,
194
- },
195
- {
196
- key: 'status',
197
- col: 'col3',
198
- text: localization.common[statusData.textKey],
199
- data: statusData,
200
- testId: `table-item-${scheduler.rid}`,
201
- },
202
- {
203
- key: 'icon',
204
- col: 'col4',
205
- text: formattedNextRun,
206
- data: 'dataTarget',
207
- testId: `table-item-${scheduler.rid}`,
208
- },
209
- {
210
- key: 'default-actions',
211
- col: 'default-actions',
212
- text: '',
213
- data: { id: index, target: 'dataTarget', scheduler },
214
- },
215
- ],
216
- }
217
- })
218
- }
@@ -1,14 +0,0 @@
1
- export enum UI_E_SchedulerStatus {
2
- Completed = 'completed',
3
- Running = 'running',
4
- Failed = 'failed',
5
- }
6
-
7
- export enum UI_E_SchedulerChipColor {
8
- Green = 'green',
9
- Red = 'red',
10
- }
11
- export enum UI_E_SchedulerChipIcon {
12
- StatusCheck = 'status-check',
13
- Information = 'info-stroke',
14
- }
@@ -1,93 +0,0 @@
1
- <template>
2
- <div class="data-table-view">
3
- <atoms-table-data-grid
4
- v-model:selected-row="selectedScheduledTaskLocal"
5
- v-model:page-size="pagination.pageSize"
6
- v-model:page="pagination.page"
7
- :head-items="headItems"
8
- :body-items="bodyItems"
9
- :total-items="props.totalItems"
10
- :total-pages="props.totalPages"
11
- :items-per-page="itemsPerPage"
12
- :z-index-header-shift="2"
13
- :loading="props.isLoading"
14
- type="radio"
15
- class="data-table"
16
- test-id="scheduled-tasks-table"
17
- hide-pagination
18
- hide-page-size
19
- off-select-by-row
20
- server-off
21
- >
22
- <template #icon="{ item }">
23
- <atoms-the-icon :name="item.data.iconClassName" class="icon" />
24
- <span :title="item.text" class="text-ellipsis">
25
- {{ item.text }}
26
- </span>
27
- </template>
28
-
29
- <template #toggleBlock="{ item }">
30
- <common-pages-scheduled-tasks-table-expand-details
31
- :data="item[0].data.expandData"
32
- />
33
- </template>
34
- </atoms-table-data-grid>
35
- </div>
36
- </template>
37
-
38
- <script lang="ts" setup>
39
- import type {
40
- UI_I_HeadItem,
41
- UI_I_BodyItem,
42
- } from '~/components/atoms/table/dataGrid/lib/models/interfaces'
43
- import { itemsPerPage } from '~/components/atoms/table/dataGrid/lib/config/itemsPerPage'
44
- import type { UI_I_Localization } from '~/lib/models/interfaces'
45
- import type { UI_I_Pagination } from '~/lib/models/table/interfaces'
46
- import type { UI_I_ScheduledTasksTableItem } from '~/components/common/pages/scheduledTasks/lib/models/interfaces'
47
- import * as scheduledTaskTable from '~/components/common/pages/scheduledTasks/table/old/lib/config/scheduledTasksTable'
48
-
49
- const selectedScheduledTaskLocal = defineModel<string | null>()
50
- const props = defineProps<{
51
- tableItems: UI_I_ScheduledTasksTableItem[]
52
- totalItems: number
53
- totalPages: number
54
- isLoading: boolean
55
- }>()
56
-
57
- const localization = computed<UI_I_Localization>(() => useLocal())
58
-
59
- const pagination = ref<UI_I_Pagination>({
60
- page: 1,
61
- pageSize: 100,
62
- })
63
-
64
- const headItems = computed<UI_I_HeadItem[]>(() =>
65
- scheduledTaskTable.headItems(localization.value)
66
- )
67
- const bodyItems = computed<UI_I_BodyItem[][]>(() => {
68
- return scheduledTaskTable.bodyItems(props.tableItems || [])
69
- })
70
- </script>
71
-
72
- <style lang="scss" scoped>
73
- .data-table-view {
74
- overflow: hidden;
75
- height: inherit;
76
- margin-bottom: 10px;
77
- :deep(.data-table) {
78
- height: inherit;
79
- .datagrid-outer-wrapper {
80
- height: inherit;
81
- padding-top: 0;
82
- //.datagrid {
83
- // margin-top: 0;
84
- //}
85
- }
86
- }
87
- .icon {
88
- width: 18px;
89
- min-width: 18px;
90
- margin-right: 3px;
91
- }
92
- }
93
- </style>