bfg-common 1.5.679 → 1.5.683

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 (125) hide show
  1. package/CODE_STYLE.md +109 -109
  2. package/assets/img/icons/icons-sprite-dark-3.svg +227 -227
  3. package/assets/img/icons/icons-sprite-dark-5.svg +488 -488
  4. package/assets/img/icons/icons-sprite-light-3.svg +227 -227
  5. package/assets/img/icons/icons-sprite-light-5.svg +488 -488
  6. package/components/atoms/TheIcon3.vue +50 -50
  7. package/components/atoms/collapse/CollapseNav.vue +170 -170
  8. package/components/atoms/perPage/PerPage.vue +58 -58
  9. package/components/atoms/table/dataGrid/DataGrid.vue +1718 -1718
  10. package/components/atoms/table/dataGrid/DataGridPagination.vue +97 -97
  11. package/components/atoms/table/dataGrid/lib/config/settingsTable.ts +94 -94
  12. package/components/atoms/table/dataGrid/lib/utils/export.ts +16 -16
  13. package/components/common/backup/storage/actions/add/lib/utils.ts +51 -51
  14. package/components/common/browse/blocks/contents/filesNew/Skeleton.vue +18 -18
  15. package/components/common/diagramMain/modals/lib/config/vCenterModal.ts +48 -48
  16. package/components/common/diagramMain/port/Port.vue +580 -580
  17. package/components/common/layout/theHeader/TheHeaderNew.vue +315 -315
  18. package/components/common/layout/theHeader/TheHeaderOld.vue +262 -262
  19. package/components/common/layout/theHeader/helpMenu/About.vue +79 -79
  20. package/components/common/layout/theHeader/helpMenu/aboutOld/AboutOld.vue +79 -79
  21. package/components/common/layout/theHeader/userMenu/modals/changePassword/ChangePassword.vue +93 -93
  22. package/components/common/layout/theHeader/userMenu/modals/changePassword/New.vue +193 -193
  23. package/components/common/layout/theHeader/userMenu/modals/preferences/PreferencesOld.vue +144 -144
  24. package/components/common/layout/theHeader/userMenu/modals/preferences/lib/models/types.ts +7 -7
  25. package/components/common/layout/theHeader/userMenu/modals/preferences/security/Old.vue +216 -216
  26. package/components/common/layout/theHeader/userMenu/modals/preferences/security/Security.vue +31 -31
  27. package/components/common/pages/backups/DetailView.vue +52 -52
  28. package/components/common/pages/backups/lib/models/interfaces.ts +36 -36
  29. package/components/common/pages/backups/modals/Modals.vue +243 -243
  30. package/components/common/pages/backups/modals/createBackup/configuration/maxBandwidth/lib/config/options.ts +6 -6
  31. package/components/common/pages/backups/modals/createBackup/lib/config/readyToCompleteOptions.ts +69 -69
  32. package/components/common/pages/backups/modals/lib/config/restore.ts +115 -115
  33. package/components/common/pages/backups/modals/lib/models/interfaces.ts +186 -186
  34. package/components/common/pages/backups/modals/restore/name/lib/models/interfaces.ts +6 -6
  35. package/components/common/pages/home/lib/models/interfaces.ts +48 -48
  36. package/components/common/pages/home/widgets/hosts/Hosts.vue +27 -27
  37. package/components/common/pages/home/widgets/hosts/lib/config/items.ts +23 -23
  38. package/components/common/pages/home/widgets/vms/VmsOld.vue +35 -35
  39. package/components/common/pages/home/widgets/vms/lib/config/items.ts +19 -19
  40. package/components/common/pages/scheduledTasks/lib/utils/utils.ts +84 -84
  41. package/components/common/qr/Qr.vue +57 -57
  42. package/components/common/readyToComplete/ReadyToComplete.vue +17 -17
  43. package/components/common/select/radio/RadioGroup.vue +137 -137
  44. package/components/common/spiceConsole/Drawer.vue +420 -420
  45. package/components/common/spiceConsole/SpiceConsole.vue +184 -184
  46. package/components/common/spiceConsole/lib/models/interfaces.ts +5 -5
  47. package/components/common/tools/Actions.vue +207 -207
  48. package/components/common/treeView/TreeView.vue +52 -52
  49. package/components/common/vm/actions/add/New.vue +1 -1
  50. package/components/common/vm/actions/add/Old.vue +1 -1
  51. package/components/common/vm/actions/clone/lib/config/steps.ts +295 -295
  52. package/components/common/vm/actions/clone/new/New.vue +438 -438
  53. package/components/common/vm/actions/common/customizeHardware/virtualHardware/VirtualHardware.vue +698 -698
  54. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/shares/lib/config/options.ts +28 -28
  55. package/components/common/vm/actions/common/customizeHardware/virtualHardware/memory/Memory.vue +283 -283
  56. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/NewHardDisk.vue +489 -489
  57. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/Order.vue +156 -156
  58. package/components/common/vm/actions/common/select/compatibility/Old.vue +107 -107
  59. package/components/common/vm/actions/common/select/createType/lib/models/interfaces.ts +5 -5
  60. package/components/common/vm/actions/common/select/options/New.vue +264 -264
  61. package/components/common/vm/actions/common/select/options/Old.vue +109 -110
  62. package/components/common/vm/actions/common/select/options/Options.vue +58 -58
  63. package/components/common/vm/actions/common/select/storage/Old.vue +125 -125
  64. package/components/common/vm/actions/common/select/storage/new/New.vue +311 -311
  65. package/components/common/vm/actions/common/select/storage/new/lib/models/interfaces.ts +5 -5
  66. package/components/common/vm/actions/common/select/storage/new/lib/utils/utils.ts +21 -21
  67. package/components/common/vm/actions/common/select/template/old/Old.vue +50 -50
  68. package/components/common/vm/actions/editSettings/new/Skeleton.vue +88 -88
  69. package/components/common/wizards/common/compatibility/Compatibility.vue +35 -35
  70. package/components/common/wizards/common/compatibility/New.vue +99 -99
  71. package/components/common/wizards/common/compatibility/Old.vue +53 -53
  72. package/components/common/wizards/common/steps/computeResource/New.vue +93 -93
  73. package/components/common/wizards/common/steps/name/Name.vue +178 -178
  74. package/components/common/wizards/common/steps/name/New.vue +221 -221
  75. package/components/common/wizards/common/steps/name/Old.vue +121 -121
  76. package/components/common/wizards/common/steps/name/lib/models/interfaces.ts +4 -4
  77. package/components/common/wizards/common/steps/name/location/New.vue +40 -40
  78. package/components/common/wizards/datastore/add/Add.vue +228 -228
  79. package/components/common/wizards/datastore/add/lib/config/createDatastore.ts +1 -0
  80. package/components/common/wizards/datastore/add/lib/models/interfaces.ts +1 -0
  81. package/components/common/wizards/datastore/add/lib/utils.ts +85 -85
  82. package/components/common/wizards/datastore/add/steps/nameAndDevice/NameAndDeviceNew.vue +232 -227
  83. package/components/common/wizards/datastore/add/steps/nameAndDevice/NameAndDeviceOld.vue +231 -226
  84. package/components/common/wizards/datastore/add/steps/nameAndDevice/advancedOptions/AdvancedOptions.vue +43 -0
  85. package/components/common/wizards/datastore/add/steps/nameAndDevice/advancedOptions/New.vue +101 -0
  86. package/components/common/wizards/datastore/add/steps/nameAndDevice/advancedOptions/Old.vue +101 -0
  87. package/components/common/wizards/datastore/add/steps/nameAndDevice/table/old/Old.vue +2 -3
  88. package/components/common/wizards/datastore/add/steps/readyComplete/lib/config/propertiesDetails.ts +8 -1
  89. package/components/common/wizards/datastore/add/steps/typeMode/lib/config/typeOptions.ts +43 -43
  90. package/composables/useAppVersion.ts +21 -21
  91. package/composables/useEnvLanguage.ts +22 -22
  92. package/composables/useLocal.ts +6 -6
  93. package/composables/useLocalCommon.ts +39 -39
  94. package/lib/models/enums.ts +1 -65
  95. package/package.json +1 -1
  96. package/plugins/console.ts +21 -21
  97. package/plugins/mouse.ts +21 -21
  98. package/plugins/panelStates.ts +70 -70
  99. package/plugins/text.ts +59 -59
  100. package/public/spice-console/application/clientgui.js +854 -854
  101. package/public/spice-console/application/packetfactory.js +211 -211
  102. package/public/spice-console/application/virtualmouse.js +147 -147
  103. package/public/spice-console/lib/images/bitmap.js +203 -203
  104. package/public/spice-console/network/spicechannel.js +440 -440
  105. package/public/spice-console/process/cursorprocess.js +128 -128
  106. package/public/spice-console/process/inputprocess.js +227 -227
  107. package/public/spice-console/process/mainprocess.js +212 -212
  108. package/public/spice-console/run.js +210 -210
  109. package/store/main/mutations.ts +7 -7
  110. package/store/main/state.ts +7 -7
  111. package/store/tasks/mappers/recentTasks.ts +123 -123
  112. package/store/tasks/mutations.ts +82 -82
  113. package/components/common/layout/bottomPanel/BottomPanel.vue +0 -68
  114. package/components/common/layout/bottomPanel/New.vue +0 -227
  115. package/components/common/layout/bottomPanel/Old.vue +0 -144
  116. package/components/common/layout/bottomPanel/lib/config/statusFilter.ts +0 -19
  117. package/components/common/layout/bottomPanel/lib/models/types.ts +0 -1
  118. package/components/common/layout/bottomPanel/recentTasks/RecentTasks.vue +0 -49
  119. package/components/common/layout/bottomPanel/recentTasks/lib/models/interfaces.ts +0 -14
  120. package/components/common/layout/bottomPanel/recentTasks/new/New.vue +0 -428
  121. package/components/common/layout/bottomPanel/recentTasks/new/lib/config/config.ts +0 -259
  122. package/components/common/layout/bottomPanel/recentTasks/old/Old.vue +0 -277
  123. package/components/common/layout/bottomPanel/recentTasks/old/lib/config/recentTaskTable.ts +0 -240
  124. package/components/common/layout/bottomPanel/recentTasks/old/lib/config/tableKeys.ts +0 -15
  125. package/components/common/layout/bottomPanel/recentTasks/old/lib/models/types.ts +0 -14
@@ -1,277 +0,0 @@
1
- <template>
2
- <div class="data-table-view">
3
- <atoms-table-data-grid
4
- v-model:selected-row="selectedRow"
5
- v-model:column-keys="columnKeys"
6
- v-model:page-size="paginationLocal.pageSize"
7
- v-model:page="paginationLocal.page"
8
- :head-items="headItems"
9
- :body-items="bodyItems"
10
- :total-items="props.totalItems"
11
- :total-pages="props.totalPages"
12
- :items-per-page="itemsPerPage"
13
- :loading="props.loading"
14
- test-id="bottom-panel-table"
15
- class="data-table"
16
- row-attribute-id-name="data-recent-tasks-id"
17
- hide-pagination
18
- server-off
19
- @sorting="onSorting"
20
- >
21
- <template #icon="{ item }">
22
- <div v-if="item.data.isIconSvg" class="data-table-view__col-icon">
23
- <atoms-the-icon :name="item.data.iconClassName" />
24
- </div>
25
- <span v-else :class="['datagrid-cell-icon', item.data.iconClassName]" />
26
- <a
27
- v-if="item.data.isLink"
28
- :id="item.data.id"
29
- :data-id="`rtask-${item.data.testId}`"
30
- :title="item.text"
31
- href="javascript:void(0)"
32
- class="text-ellipsis"
33
- @click="onSelectNodeOfTree(item)"
34
- >{{ item.text }}</a
35
- >
36
- <span
37
- v-else
38
- :data-id="`rtask-${item.data.testId}`"
39
- :title="item.text"
40
- class="text-ellipsis"
41
- >
42
- {{ item.text }}
43
- </span>
44
-
45
- <div v-if="item.data.operations?.length">
46
- <div
47
- :id="'status-details-help-icon' + item.id"
48
- class="status-details-help-icon signpost-container relative"
49
- >
50
- <atoms-the-icon
51
- :data-id="'toggle-status-details-help-icon' + item.id"
52
- fill="#0072a3"
53
- width="21px"
54
- height="21px"
55
- name="info-circle"
56
- class="cursor-pointer"
57
- @click.stop="
58
- item.data.isShowStatusDetails = !item.data.isShowStatusDetails
59
- "
60
- />
61
- <atoms-tooltip-signpost
62
- v-if="item.data.isShowStatusDetails"
63
- :elem-id="'status-details-help-icon' + item.id"
64
- test-id="select-datastore-type"
65
- @hide="item.data.isShowStatusDetails = false"
66
- >
67
- <ul class="status-details flex flex-col">
68
- <li
69
- v-for="(item2, key2) in item.data.operations"
70
- :key="key2"
71
- :data-id="item2.testId"
72
- class="status-detail-item flex flex-align-baseline"
73
- >
74
- <atoms-the-icon
75
- :name="item2.iconClassName"
76
- width="16px"
77
- height="16px"
78
- />
79
- <span>{{ item2.operation_type }}:</span>
80
- <span
81
- :title="item2.message"
82
- class="status-detail-item-message"
83
- >{{ item2.message || '--' }}</span
84
- >
85
- </li>
86
- </ul>
87
- </atoms-tooltip-signpost>
88
- </div>
89
- </div>
90
- </template>
91
-
92
- <template #action>
93
- <div class="flex-space-between flex-align-center">
94
- <div class="flex-align-center">
95
- <div class="select">
96
- <select
97
- id="bottom-panel-select-type"
98
- v-model="statusFilter"
99
- data-id="bottom-panel-select-type-select"
100
- class="clr-select"
101
- >
102
- <option :value="-1">{{ localization.common.all }}</option>
103
- <option :value="1">{{ localization.common.running }}</option>
104
- <option :value="3">{{ localization.common.failed }}</option>
105
- </select>
106
- </div>
107
- </div>
108
- </div>
109
- </template>
110
- </atoms-table-data-grid>
111
- </div>
112
- </template>
113
-
114
- <script lang="ts" setup>
115
- import type {
116
- UI_I_ColumnKey,
117
- UI_I_HeadItem,
118
- UI_I_BodyItem,
119
- } from '~/components/atoms/table/dataGrid/lib/models/interfaces'
120
- import type { UI_I_Localization } from '~/lib/models/interfaces'
121
- import type { UI_I_Pagination } from '~/lib/models/table/interfaces'
122
- import type { UI_I_TreeNodeShort } from '~/components/common/recursionTree/lib/models/interfaces'
123
- import type { UI_I_RecentTaskItem } from '~/lib/models/store/tasks/interfaces'
124
- import type { UI_T_TimeValue } from '~/components/common/layout/theHeader/userMenu/modals/preferences/timeFormat/lib/models/types'
125
- import type { UI_T_SelectedStatus } from '~/components/common/layout/bottomPanel/recentTasks/old/lib/models/types'
126
- import type { UI_I_SelectNodePayload } from '~/components/common/pages/home/widgets/warnings/table/lib/models/interfaces'
127
- import type { UI_T_NodeType } from '~/components/common/pages/home/lib/models/types'
128
- import { itemsPerPage } from '~/components/atoms/table/dataGrid/lib/config/itemsPerPage'
129
- import * as table from '~/components/common/layout/bottomPanel/recentTasks/old/lib/config/recentTaskTable'
130
-
131
- const statusFilter = defineModel<UI_T_SelectedStatus>('statusFilter', {
132
- required: true,
133
- })
134
-
135
- const props = defineProps<{
136
- dataTable: UI_I_RecentTaskItem<UI_T_NodeType>[]
137
- pagination: UI_I_Pagination
138
- totalItems: number
139
- totalPages: number
140
- loading: boolean
141
- }>()
142
- const emits = defineEmits<{
143
- (event: 'pagination', value: UI_I_Pagination | null): void
144
- (event: 'sort', value: string): void
145
- }>()
146
-
147
- const localization = computed<UI_I_Localization>(() => useLocal())
148
-
149
- const selectedRow = ref<number[]>([])
150
-
151
- const onSorting = (event: [number, boolean]): void => {
152
- const [column, status] = event
153
- const direction = status ? 'desc' : 'asc'
154
-
155
- const sort = `${column}.${direction}`
156
-
157
- emits('sort', sort)
158
- }
159
-
160
- const paginationLocal = ref<UI_I_Pagination | null>(null)
161
- watch(
162
- () => props.pagination,
163
- (newValue) => {
164
- paginationLocal.value = newValue
165
- },
166
- { immediate: true }
167
- )
168
- watch(
169
- paginationLocal,
170
- (newValue) => {
171
- emits('pagination', newValue)
172
- },
173
- { deep: true, immediate: true }
174
- )
175
-
176
- const columnKeys = ref<UI_I_ColumnKey[]>(table.columnKeys(localization.value))
177
- watch(localization, () => {
178
- columnKeys.value = table.columnKeys(localization.value)
179
- })
180
-
181
- const headItems = computed<UI_I_HeadItem[]>(() =>
182
- table.headItems(localization.value)
183
- )
184
-
185
- const { $store }: any = useNuxtApp()
186
- const timeFormat = computed<UI_T_TimeValue>(
187
- () => $store.getters['main/getTimeFormat']
188
- )
189
-
190
- const bodyItems = ref<UI_I_BodyItem[][]>([])
191
- watch(
192
- [
193
- (): UI_I_RecentTaskItem<UI_T_NodeType>[] => props.dataTable,
194
- statusFilter,
195
- timeFormat,
196
- localization,
197
- ],
198
- ([newValue1]) => {
199
- if (!newValue1?.length) {
200
- bodyItems.value = []
201
- return
202
- }
203
-
204
- bodyItems.value = table.bodyItems(newValue1, statusFilter.value)
205
- },
206
- { deep: true, immediate: true }
207
- )
208
-
209
- const onSelectNodeOfTree = (data: UI_I_BodyItem): void => {
210
- const { type, id, nav } = data.data
211
-
212
- const node: UI_I_TreeNodeShort = {
213
- id,
214
- type,
215
- }
216
-
217
- // useLocalStorage('sSpec', node)
218
-
219
- const path = `/inventory/type=${type};nav=${nav};id=${id}/summary`
220
-
221
- navigateTo(path)
222
-
223
- const payload: UI_I_SelectNodePayload = {
224
- node,
225
- type,
226
- }
227
- $store.dispatch('inventory/A_SELECT_NODE', payload)
228
- }
229
- </script>
230
-
231
- <style lang="scss" scoped>
232
- .data-table-view {
233
- height: inherit;
234
- .data-table {
235
- height: inherit;
236
- :deep(.datagrid-outer-wrapper) {
237
- height: inherit;
238
-
239
- .datagrid-footer__action {
240
- width: 100%;
241
-
242
- .select {
243
- margin-left: 10px;
244
- }
245
- }
246
- }
247
- }
248
- &__col-icon {
249
- min-width: 16px;
250
- height: 16px;
251
- margin-right: 2px;
252
- }
253
- &__action {
254
- padding-left: 0.3rem;
255
- }
256
-
257
- .status-details-help-icon {
258
- margin: 4px 0 0 2px;
259
- }
260
- .status-details {
261
- gap: 4px;
262
-
263
- .status-detail-item {
264
- gap: 4px;
265
-
266
- .status-detail-item-message {
267
- max-width: 200px;
268
- margin-left: 4px;
269
- }
270
-
271
- span {
272
- color: var(--table-color) !important;
273
- }
274
- }
275
- }
276
- }
277
- </style>
@@ -1,240 +0,0 @@
1
- import type { UI_I_Localization } from '~/lib/models/interfaces'
2
- import type {
3
- UI_I_BodyItem,
4
- UI_I_ColumnKey,
5
- UI_I_HeadItem,
6
- } from '~/components/atoms/table/dataGrid/lib/models/interfaces'
7
- import type { UI_I_RecentTaskItem } from '~/lib/models/store/tasks/interfaces'
8
- import type { UI_I_DataTargetForTable } from '~/components/common/layout/bottomPanel/recentTasks/lib/models/interfaces'
9
- import type { UI_T_NodeType } from '~/components/common/pages/home/lib/models/types'
10
- import type { UI_T_SelectedStatus } from '~/components/common/layout/bottomPanel/recentTasks/old/lib/models/types'
11
- import { UI_E_NodeIconsByState } from '~/lib/models/enums'
12
- import { UI_E_TabsByTypeEnum } from '~/components/common/pages/home/widgets/warnings/table/lib/models/enums'
13
- import { UI_E_LocatorByRecentTaskStatus } from '~/lib/models/store/tasks/enums'
14
- import { recentTaskTableKeys } from '~/components/common/layout/bottomPanel/recentTasks/old/lib/config/tableKeys'
15
- import {
16
- constructColumnKey,
17
- constructHeadItem,
18
- } from '~/components/atoms/table/dataGrid/lib/utils/constructDataTable'
19
-
20
- const getItems = (
21
- localization: UI_I_Localization
22
- ): [string, boolean, string, string][] => {
23
- return [
24
- [localization.tasks.taskName, true, '120px', recentTaskTableKeys[0]],
25
- [localization.common.target, true, '180px', recentTaskTableKeys[1]],
26
- [localization.common.status, true, '180px', recentTaskTableKeys[2]],
27
- [localization.common.details, true, '180px', recentTaskTableKeys[3]],
28
- [localization.common.initiator, true, '180px', recentTaskTableKeys[4]],
29
- [localization.common.queuedFor, true, '180px', recentTaskTableKeys[5]],
30
- [localization.common.startTime, true, '180px', recentTaskTableKeys[6]],
31
- [localization.common.completionTime, true, '180px', recentTaskTableKeys[7]],
32
- [localization.common.executionTime, true, '180px', recentTaskTableKeys[8]],
33
- [localization.common.server, true, '180px', recentTaskTableKeys[9]],
34
- [localization.common.zone, true, '180px', recentTaskTableKeys[10]],
35
- ]
36
- }
37
-
38
- export const columnKeys = (
39
- localization: UI_I_Localization
40
- ): UI_I_ColumnKey[] => {
41
- const result: UI_I_ColumnKey[] = []
42
- getItems(localization).forEach((item, i) => {
43
- const col = i === 1 || i === 2 || i === 10 ? 'icon' : `col${i}`
44
- result.push(constructColumnKey(col, item[0], item[1]))
45
- })
46
- return result
47
- }
48
-
49
- export const headItems = (localization: UI_I_Localization): UI_I_HeadItem[] => {
50
- const result: UI_I_HeadItem[] = []
51
- getItems(localization).forEach((item, i) => {
52
- const col = i === 1 || i === 2 || i === 10 ? 'icon' : `col${i}`
53
- result.push(
54
- constructHeadItem(
55
- col,
56
- item[0],
57
- item[3],
58
- true,
59
- item[2],
60
- '',
61
- `recent-task-${item[3]}`
62
- )
63
- )
64
- })
65
- return result
66
- }
67
-
68
- export const bodyItems = (
69
- data: UI_I_RecentTaskItem<UI_T_NodeType>[],
70
- status: UI_T_SelectedStatus
71
- ): UI_I_BodyItem[][] => {
72
- const localization = useLocal()
73
- const { $formattedDatetime, $time }: any = useNuxtApp()
74
-
75
- const currentLanguage:
76
- | 'en_US'
77
- | 'ru_RU'
78
- | 'hy_AM'
79
- | 'be_BY'
80
- | 'kk_KZ'
81
- | 'zh_CHS' = useLocalStorage('lang') || 'en_US'
82
-
83
- const bodyItems: UI_I_BodyItem[][] = []
84
-
85
- data.forEach((recent: UI_I_RecentTaskItem<UI_T_NodeType>, key) => {
86
- if (status !== -1 && recent.status !== status) return
87
-
88
- const iconClassName = UI_E_NodeIconsByState[`${recent.targetType}_Normal`]
89
- const id = recent.extra?.created_id || recent.target
90
- const name =
91
- recent.extra?.created_name || recent.args?.cloned_name || recent.target
92
- const targetData: UI_I_DataTargetForTable = {
93
- iconClassName,
94
- id,
95
- // id: recent.target,
96
- nav: UI_E_TabsByTypeEnum[recent.targetType],
97
- type: recent.targetType,
98
- isLink: !!iconClassName,
99
- testId: `${recent.targetType}-item-${name}`,
100
- }
101
-
102
- const statusData = {
103
- iconClassName: recent.statusIcon,
104
- isIconSvg: true,
105
- testId: `${recent.taskName}-${
106
- UI_E_LocatorByRecentTaskStatus[recent.status]
107
- }-progress`,
108
- operations: recent.statusDetails,
109
- isShowStatusDetails: false,
110
- }
111
-
112
- const zoneData: UI_I_DataTargetForTable = {
113
- iconClassName: 'vsphere-icon-vcenter',
114
- id: recent.zone,
115
- nav: 'v', // неважно
116
- type: 'vm', // неважно
117
- isLink: false,
118
- testId: `${recent.zone}-item-${name}`,
119
- }
120
-
121
- const startTime = recent[recentTaskTableKeys[6]]
122
- const formattedStartTime =
123
- startTime === '--'
124
- ? '--'
125
- : $formattedDatetime(+startTime * 1000, {
126
- hasSeconds: true,
127
- })
128
-
129
- const completionTime = recent[recentTaskTableKeys[7]]
130
- const formattedCompletionTime =
131
- completionTime === '--'
132
- ? '--'
133
- : $formattedDatetime(+completionTime * 1000, {
134
- hasSeconds: true,
135
- })
136
-
137
- // const queuedFor = `${recent[recentTaskTableKeys[5]]} ms`
138
- // const executionTime =
139
- // recent[recentTaskTableKeys[8]] === '--'
140
- // ? '--'
141
- // : `${recent[recentTaskTableKeys[8]]} ms`
142
- const queuedFor = $time.formatTime(
143
- recent[recentTaskTableKeys[5]],
144
- currentLanguage
145
- )
146
- const executionTime =
147
- recent[recentTaskTableKeys[8]] === '--'
148
- ? '--'
149
- : $time.formatTime(recent[recentTaskTableKeys[8]], currentLanguage)
150
-
151
- bodyItems.push([
152
- {
153
- key: 'col0',
154
- text: recent[recentTaskTableKeys[0]],
155
- id: key,
156
- dataId: recent.id,
157
- testId: `table-item-${recent.id}-${name}`,
158
- },
159
- {
160
- key: 'icon',
161
- text: recent[recentTaskTableKeys[1]],
162
- data: targetData,
163
- id: key,
164
- testId: `table-item-${recent.id}-${name}`,
165
- },
166
- {
167
- key: 'icon',
168
- text:
169
- localization.common[recent[recentTaskTableKeys[2]]] ||
170
- recent[recentTaskTableKeys[2]],
171
- data: statusData,
172
- id: key,
173
- testId: `table-item-${recent.id}-${name}`,
174
- },
175
- {
176
- key: 'col3',
177
- text: recent[recentTaskTableKeys[3]],
178
- id: key,
179
- testId: `table-item-${recent.id}-${name}`,
180
- },
181
- {
182
- key: 'col4',
183
- text: recent[recentTaskTableKeys[4]],
184
- id: key,
185
- testId: `table-item-${recent.id}-${name}`,
186
- },
187
- {
188
- key: 'col5',
189
- text: queuedFor,
190
- id: key,
191
- testId: `table-item-${recent.id}-${name}`,
192
- data: {
193
- sortValue: recent[recentTaskTableKeys[5]],
194
- },
195
- },
196
- {
197
- key: 'col6',
198
- text: formattedStartTime,
199
- id: key,
200
- testId: `table-item-${recent.id}-${name}`,
201
- data: {
202
- sortValue: recent[recentTaskTableKeys[6]],
203
- },
204
- },
205
- {
206
- key: 'col7',
207
- text: formattedCompletionTime,
208
- id: key,
209
- testId: `table-item-${recent.id}-${name}`,
210
- data: {
211
- sortValue: recent[recentTaskTableKeys[7]],
212
- },
213
- },
214
- {
215
- key: 'col8',
216
- text: executionTime,
217
- id: key,
218
- testId: `table-item-${recent.id}-${name}`,
219
- data: {
220
- sortValue: recent[recentTaskTableKeys[8]],
221
- },
222
- },
223
- {
224
- key: 'col9',
225
- text: recent[recentTaskTableKeys[9]],
226
- id: key,
227
- testId: `table-item-${recent.id}-${name}`,
228
- },
229
- {
230
- key: 'icon',
231
- text: recent[recentTaskTableKeys[10]],
232
- data: zoneData,
233
- id: key,
234
- testId: `table-item-${recent.id}-${name}`,
235
- },
236
- ])
237
- })
238
-
239
- return bodyItems
240
- }
@@ -1,15 +0,0 @@
1
- import type { UI_T_RecentTaskTableKeys } from '~/components/common/layout/bottomPanel/recentTasks/old/lib/models/types'
2
-
3
- export const recentTaskTableKeys: UI_T_RecentTaskTableKeys[] = [
4
- 'taskName',
5
- 'target',
6
- 'statusText',
7
- 'details',
8
- 'initiator',
9
- 'queuedFor',
10
- 'startTime',
11
- 'completion',
12
- 'execution',
13
- 'server',
14
- 'zone',
15
- ]
@@ -1,14 +0,0 @@
1
- export type UI_T_RecentTaskTableKeys =
2
- | 'taskName'
3
- | 'target'
4
- | 'statusText'
5
- | 'details'
6
- | 'initiator'
7
- | 'queuedFor'
8
- | 'startTime'
9
- | 'completion'
10
- | 'execution'
11
- | 'server'
12
- | 'zone'
13
-
14
- export type UI_T_SelectedStatus = -1 | 1 | 3