bfg-common 1.6.23 → 1.6.25

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 (87) hide show
  1. package/assets/localization/local_be.json +65 -5
  2. package/assets/localization/local_en.json +72 -12
  3. package/assets/localization/local_hy.json +66 -6
  4. package/assets/localization/local_kk.json +65 -5
  5. package/assets/localization/local_ru.json +71 -11
  6. package/assets/localization/local_zh.json +65 -5
  7. package/assets/scss/common/theme.scss +2 -2
  8. package/components/atoms/stack/StackBlock.vue +1 -1
  9. package/components/common/adapterManager/addAdapterModal/AddAdapterModalNew.vue +1 -1
  10. package/components/common/adapterManager/addAdapterWarningModal/AddAdapterWarningModalNew.vue +0 -1
  11. package/components/common/adapterManager/ui/table/adapters/AdaptersNew.vue +1 -0
  12. package/components/common/configure/physicalAdapters/PhysicalAdapters.vue +6 -0
  13. package/components/common/configure/physicalAdapters/PhysicalAdaptersNew.vue +219 -192
  14. package/components/common/configure/physicalAdapters/PhysicalAdaptersOld.vue +6 -4
  15. package/components/common/configure/physicalAdapters/buttons/Buttons.vue +1 -0
  16. package/components/common/configure/physicalAdapters/modals/edit/Edit.vue +26 -1
  17. package/components/common/configure/physicalAdapters/modals/edit/EditNew.vue +30 -1
  18. package/components/common/configure/physicalAdapters/modals/edit/lib/models/interfaces.ts +5 -0
  19. package/components/common/configure/physicalAdapters/modals/edit/lib/validations/validations.ts +19 -0
  20. package/components/common/configure/physicalAdapters/tableView/TableViewNew.vue +12 -1
  21. package/components/common/configure/physicalAdapters/tableView/lib/config/physicalAdaptersTableConfigNew.ts +21 -21
  22. package/components/common/configure/physicalAdapters/tableView/lib/config/settings.ts +12 -5
  23. package/components/common/configure/physicalAdapters/tableView/lib/models/interfaces.ts +4 -1
  24. package/components/common/diagramMain/DiagramMain.vue +6 -0
  25. package/components/common/diagramMain/modals/Modals.vue +4 -0
  26. package/components/common/diagramMain/modals/editSettings/tabs/NetworkProperties.vue +2 -2
  27. package/components/common/diagramMain/modals/lib/config/vmKernelAdapter.ts +1 -1
  28. package/components/common/diagramMain/modals/migrateVmkernelAdapter/MigrateVmkernelAdapter.vue +2 -2
  29. package/components/common/diagramMain/modals/migrateVmkernelAdapter/validations/common.ts +1 -1
  30. package/components/common/layout/theHeader/ThemeSwitch.vue +1 -1
  31. package/components/common/layout/theHeader/userMenu/modals/changePassword/New.vue +8 -9
  32. package/components/common/layout/theHeader/userMenu/modals/preferences/New.vue +4 -0
  33. package/components/common/layout/theHeader/userMenu/modals/preferences/Old.vue +9 -2
  34. package/components/common/layout/theHeader/userMenu/modals/preferences/changeLanguage/ChangeLanguage.vue +11 -7
  35. package/components/common/layout/theHeader/userMenu/modals/preferences/defaultConsole/DefaultConsole.vue +7 -1
  36. package/components/common/layout/theHeader/userMenu/modals/preferences/defaultConsole/lib/config/consoleOptions.ts +8 -5
  37. package/components/common/layout/theHeader/userMenu/modals/preferences/timeFormat/TimeFormat.vue +9 -5
  38. package/components/common/layout/theHeader/userMenu/modals/preferences/view/Old.vue +5 -9
  39. package/components/common/layout/theHeader/userMenu/modals/preferences/view/View.vue +9 -6
  40. package/components/common/mainNavigationPanel/MainNavigationPanelNew.vue +3 -1
  41. package/components/common/monitor/advanced/table/tableNew/lib/utils/constructBody.ts +27 -27
  42. package/components/common/monitor/lib/utils/local_be.json +39 -31
  43. package/components/common/monitor/lib/utils/local_en.json +39 -31
  44. package/components/common/monitor/lib/utils/local_hy.json +39 -31
  45. package/components/common/monitor/lib/utils/local_kk.json +39 -31
  46. package/components/common/monitor/lib/utils/local_ru.json +39 -31
  47. package/components/common/monitor/lib/utils/local_zh.json +39 -31
  48. package/components/common/noDataProvided/NoDataProvidedNew.vue +1 -1
  49. package/components/common/pages/backups/modals/createBackup/datastores/tableView/new/lib/config/table.ts +4 -4
  50. package/components/common/pages/backups/modals/createBackup/datastores/tableView/old/lib/config/table.ts +4 -4
  51. package/components/common/pages/scheduledTasks/table/lib/models/enums.ts +9 -0
  52. package/components/common/pages/scheduledTasks/table/new/New.vue +12 -10
  53. package/components/common/pages/tasks/Tasks.vue +4 -1
  54. package/components/common/pages/tasks/table/Table.vue +24 -22
  55. package/components/common/split/vertical/New.vue +42 -8
  56. package/components/common/split/vertical/Old.vue +31 -2
  57. package/components/common/split/vertical/Vertical.vue +4 -0
  58. package/components/common/vm/actions/add/New.vue +21 -6
  59. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/New.vue +1 -0
  60. package/components/common/vm/actions/common/select/storage/new/lib/config/table.ts +13 -15
  61. package/components/common/vm/actions/confirm/Confirm.vue +3 -0
  62. package/components/common/vm/snapshots/DetailView.vue +6 -6
  63. package/components/common/wizards/datastore/add/New.vue +6 -0
  64. package/components/common/wizards/datastore/add/steps/nameAndDevice/NameAndDeviceNew.vue +1 -1
  65. package/components/common/wizards/datastore/add/steps/nameAndDevice/advancedOptions/New.vue +1 -1
  66. package/components/common/wizards/network/add/Add.vue +13 -2
  67. package/components/common/wizards/network/add/AddNew.vue +22 -26
  68. package/components/common/wizards/network/add/lib/config/initialData.ts +4 -4
  69. package/components/common/wizards/network/add/lib/utils/utils.ts +1 -1
  70. package/components/common/wizards/network/add/steps/ipFourSettings/IpFourSettingsNew.vue +2 -8
  71. package/components/common/wizards/network/add/steps/portProperties/PortPropertiesNew.vue +2 -8
  72. package/components/common/wizards/network/add/steps/selectTargetDevice/SelectTargetDeviceNew.vue +10 -3
  73. package/components/common/wizards/network/add/steps/selectTargetDevice/modals/new/SelectNetwork.vue +5 -1
  74. package/components/common/wizards/network/add/validations/common.ts +1 -1
  75. package/components/common/wizards/vm/migrate/steps/computeResource/tableView/new/New.vue +31 -13
  76. package/components/common/wizards/vm/migrate/steps/computeResource/tableView/new/lib/config/clusterTable.ts +340 -0
  77. package/components/common/wizards/vm/migrate/steps/computeResource/tableView/new/lib/config/hostTable.ts +3 -1
  78. package/components/common/wizards/vm/migrate/steps/selectStorage/New.vue +5 -4
  79. package/components/common/wizards/vm/migrate/steps/selectStorage/configure/batch/New.vue +4 -0
  80. package/components/common/wizards/vm/migrate/steps/selectStorage/configure/batch/table/new/New.vue +3 -1
  81. package/components/common/wizards/vm/migrate/steps/selectStorage/configure/disk/table/new/lib/config/diskTable.ts +8 -3
  82. package/components/common/wizards/vm/migrate/steps/selectStorage/configure/disk/table/old/lib/config/diskTable.ts +7 -1
  83. package/lib/models/store/tasks/enums.ts +3 -0
  84. package/lib/models/store/tasks/types.ts +7 -6
  85. package/package.json +2 -2
  86. package/store/tasks/actions.ts +26 -8
  87. package/store/tasks/mappers/recentTasks.ts +1 -0
@@ -37,7 +37,7 @@ export const portPropertiesInitial = (
37
37
  localization: UI_I_Localization
38
38
  ): UI_I_PortProperties => ({
39
39
  networkLabel: '',
40
- vlanId: `${localization.common.none} (0)`,
40
+ vlanId: `${localization.common.none2} (0)`,
41
41
  mtu: {
42
42
  option: '0',
43
43
  size: 1500,
@@ -62,15 +62,15 @@ export const connectionSettingsInitial = (
62
62
  localization: UI_I_Localization
63
63
  ): UI_I_ConnectionSettings => ({
64
64
  networkLabel: 'VM Network',
65
- vlanId: `${localization.common.none} (0)`,
65
+ vlanId: `${localization.common.none2} (0)`,
66
66
  })
67
67
 
68
68
  export const vlanIdSelectDataFunc = (
69
69
  localization: UI_I_Localization
70
70
  ): UI_I_VlanIdData[] => [
71
71
  {
72
- text: `${localization.common.none} (0)`,
73
- value: `${localization.common.none} (0)`,
72
+ text: `${localization.common.none2} (0)`,
73
+ value: `${localization.common.none2} (0)`,
74
74
  },
75
75
  {
76
76
  text: `${localization.common.all} (4095)`,
@@ -5,5 +5,5 @@ export const getVlanId = (
5
5
  localization: UI_I_Localization
6
6
  ): string =>
7
7
  (vlanId === `${localization.common.all} (4095)` && '4095') ||
8
- (vlanId === `${localization.common.none} (0)` && '0') ||
8
+ (vlanId === `${localization.common.none2} (0)` && '0') ||
9
9
  vlanId
@@ -281,14 +281,8 @@ const fields = computed({
281
281
  }
282
282
  }
283
283
  :deep(.ui-checkbox-label) {
284
- text-overflow: ellipsis;
285
- white-space: nowrap;
286
- overflow: hidden;
287
-
288
- .ui-checkbox-label-text {
289
- text-overflow: ellipsis;
290
- white-space: nowrap;
291
- overflow: hidden;
284
+ &.md {
285
+ height: unset;
292
286
  }
293
287
  }
294
288
  .tooltip-text {
@@ -299,14 +299,8 @@ const portPropertiesEnabledServices = computed<
299
299
  padding: 0 8px 0 12px;
300
300
  }
301
301
  :deep(.ui-checkbox-label) {
302
- text-overflow: ellipsis;
303
- white-space: nowrap;
304
- overflow: hidden;
305
-
306
- .ui-checkbox-label-text {
307
- text-overflow: ellipsis;
308
- white-space: nowrap;
309
- overflow: hidden;
302
+ &.md {
303
+ height: unset;
310
304
  }
311
305
  }
312
306
  </style>
@@ -103,7 +103,7 @@
103
103
  <template #row="{ item }">
104
104
  <div v-if="item.iconName" class="browse-btn">
105
105
  <ui-button
106
- test-id="button-1"
106
+ test-id="browse-network"
107
107
  type="primary"
108
108
  variant="text"
109
109
  size="lg"
@@ -154,7 +154,7 @@
154
154
  <template #row="{ item }">
155
155
  <div v-if="item.iconName" class="browse-btn">
156
156
  <ui-button
157
- test-id="button-1"
157
+ test-id="browse-standard-switch"
158
158
  type="primary"
159
159
  variant="text"
160
160
  size="lg"
@@ -203,7 +203,7 @@
203
203
  <template #row="{ item }">
204
204
  <div v-if="item.iconName" class="browse-btn">
205
205
  <ui-button
206
- test-id="button-1"
206
+ test-id="browse-switch"
207
207
  type="primary"
208
208
  variant="text"
209
209
  size="lg"
@@ -357,10 +357,17 @@ watch(
357
357
  :deep(.ui-btn) {
358
358
  justify-content: flex-start;
359
359
  height: 32px;
360
+ overflow: hidden;
361
+ text-overflow: ellipsis;
362
+ white-space: nowrap;
363
+ width: 100%;
360
364
 
361
365
  span {
362
366
  text-align: left;
363
367
  color: var(--select-text);
368
+ overflow: hidden;
369
+ text-overflow: ellipsis;
370
+ white-space: nowrap;
364
371
  }
365
372
 
366
373
  &:hover {
@@ -46,7 +46,7 @@ import type {
46
46
  UI_I_DataTable,
47
47
  UI_I_DataTableHeader,
48
48
  UI_I_DataTableBody,
49
- UI_I_TableTexts
49
+ UI_I_TableTexts,
50
50
  } from '~/node_modules/bfg-uikit/components/ui/dataTable/lib/models/interfaces'
51
51
  import type { UI_I_Localization } from '~/lib/models/interfaces'
52
52
  import type {
@@ -147,6 +147,10 @@ const onSelectNetwork = (): void => {
147
147
  <style scoped lang="scss">
148
148
  :deep(.table-container) {
149
149
  padding: 8px 32px !important;
150
+
151
+ .column-manager-button span {
152
+ font-weight: 500;
153
+ }
150
154
  }
151
155
 
152
156
  .row-container {
@@ -21,7 +21,7 @@ export const checkVlanId = (
21
21
  vlanId: string,
22
22
  localization: UI_I_Localization
23
23
  ): boolean =>
24
- vlanId !== `${localization.common.none} (0)` &&
24
+ vlanId !== `${localization.common.none2} (0)` &&
25
25
  vlanId !== `${localization.common.all} (4095)` &&
26
26
  (isIntegerNumberInRange(vlanId, 0, 4095) || vlanId.trim() === '')
27
27
 
@@ -2,7 +2,7 @@
2
2
  <div class="device-table-container">
3
3
  <ui-data-table
4
4
  :data="data"
5
- :options="options"
5
+ :options="tableConfig.options"
6
6
  :loading="props.isLoading"
7
7
  :total-pages="props.totalPages"
8
8
  :total-items="props.totalItems"
@@ -79,13 +79,10 @@ import type {
79
79
  UI_I_TableTexts,
80
80
  } from '~/node_modules/bfg-uikit/components/ui/dataTable/models/interfaces'
81
81
  import type { UI_I_DataTableSkeleton } from '~/node_modules/bfg-uikit/components/ui/dataTable/models/interfaces'
82
- import type { UI_T_SelectComputeResourceTabType } from '~/components/common/wizards/vm/migrate/select/storage/lib/models/types'
82
+ import type { UI_T_SelectComputeResourceTabType } from '~/components/common/wizards/vm/migrate/steps/selectStorage/lib/models/types'
83
83
  import type { UI_T_ComputeResourceTableItem } from '~/components/common/wizards/vm/migrate/steps/computeResource/lib/models/types'
84
- import {
85
- options,
86
- getHeaderDataFunc,
87
- getBodyDataFunc,
88
- } from '~/components/common/wizards/vm/migrate/steps/computeResource/tableView/new/lib/config/hostTable'
84
+ import * as hostTable from '~/components/common/wizards/vm/migrate/steps/computeResource/tableView/new/lib/config/hostTable'
85
+ import * as clusterTable from '~/components/common/wizards/vm/migrate/steps/computeResource/tableView/new/lib/config/clusterTable'
89
86
 
90
87
  const selectedDataLocal = defineModel<number | null>({ required: true })
91
88
  const props = defineProps<{
@@ -120,15 +117,33 @@ const tableSkeleton = ref<UI_I_DataTableSkeleton>({
120
117
  withoutPagination: true,
121
118
  })
122
119
 
120
+ const tableTitleMap = {
121
+ host: localization.value.common.hosts,
122
+ cluster: localization.value.common.clusters,
123
+ } as const
124
+ const tableConfigMap = {
125
+ host: hostTable,
126
+ cluster: clusterTable,
127
+ } as const
128
+
129
+ const tableConfig = computed(
130
+ () => tableConfigMap[props.type as keyof typeof tableConfigMap]
131
+ )
132
+
123
133
  const data = computed<UI_I_DataTable>(() => ({
124
- id: 'compute-resource-host-table',
125
- title: `${localization.value.common.hosts} (${props.totalItems})`,
134
+ id: `compute-resource-${props.type}-table`,
135
+ title: tableDataTitle.value,
126
136
  header: deviceHeadItems.value,
127
137
  body: deviceBodyItems.value,
128
138
  }))
129
-
139
+ const tableDataTitle = computed<string>(
140
+ () =>
141
+ `${tableTitleMap[props.type as keyof typeof tableConfigMap]} (${
142
+ props.totalItems
143
+ })`
144
+ )
130
145
  const deviceHeadItems = computed<UI_I_DataTableHeader[]>(() =>
131
- getHeaderDataFunc(localization.value)
146
+ tableConfig.value.getHeaderDataFunc(localization.value)
132
147
  )
133
148
 
134
149
  const deviceBodyItems = ref<UI_I_DataTableBody[]>([])
@@ -140,13 +155,16 @@ watch(
140
155
  return
141
156
  }
142
157
 
143
- deviceBodyItems.value = getBodyDataFunc(newValue, localization.value)
158
+ deviceBodyItems.value = tableConfig.value.getBodyDataFunc(
159
+ newValue,
160
+ localization.value
161
+ )
144
162
  },
145
163
  { deep: true, immediate: true }
146
164
  )
147
165
 
148
166
  const onSelectRow = (value: UI_I_DataTableBody[]): void => {
149
- selectedDataLocal.value = value?.[0].row
167
+ selectedDataLocal.value = value?.[0].row as number
150
168
  }
151
169
  </script>
152
170
 
@@ -0,0 +1,340 @@
1
+ import type {
2
+ UI_I_DataTableBody,
3
+ UI_I_DataTableOptions,
4
+ UI_I_DataTableHeader,
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_ClusterTableItem } from '~/components/common/wizards/vm/migrate/steps/computeResource/tableView/lib/models/interfaces'
8
+ // import {
9
+ // UI_E_DeviceStatus,
10
+ // UI_E_DeviceStatusChipColor,
11
+ // UI_E_DeviceStatusIcon,
12
+ // } from '~/components/common/wizards/vm/migrate/steps/computeResource/tableView/new/lib/models/enums'
13
+
14
+ // // Маппинг для статусов
15
+ // const STATUS_MAPPING = {
16
+ // [UI_E_DeviceStatus.Unknown]: {
17
+ // icon: UI_E_DeviceStatusIcon.HelpIcon,
18
+ // chipColor: UI_E_DeviceStatusChipColor.Primary,
19
+ // },
20
+ // [UI_E_DeviceStatus.Supported]: {
21
+ // icon: UI_E_DeviceStatusIcon.StatusCheck,
22
+ // chipColor: UI_E_DeviceStatusChipColor.Green,
23
+ // },
24
+ // [UI_E_DeviceStatus.NotSupported]: {
25
+ // icon: UI_E_DeviceStatusIcon.Close,
26
+ // chipColor: UI_E_DeviceStatusChipColor.Red,
27
+ // },
28
+ // }
29
+
30
+ export const getHeaderDataFunc = (
31
+ localization: UI_I_Localization
32
+ ): UI_I_DataTableHeader[] => [
33
+ {
34
+ col: 'col0',
35
+ colName: 'name',
36
+ text: localization.common.name,
37
+ isSortable: true,
38
+ sort: 'asc',
39
+ width: '180px',
40
+ show: true,
41
+ filter: false,
42
+ },
43
+ {
44
+ col: 'col1',
45
+ colName: 'available_cpu',
46
+ text: localization.common.availableCpu,
47
+ isSortable: true,
48
+ sort: 'asc',
49
+ width: '96px',
50
+ show: true,
51
+ filter: false,
52
+ },
53
+ {
54
+ col: 'col2',
55
+ colName: 'available_memory',
56
+ text: localization.common.availableMemory,
57
+ isSortable: true,
58
+ sort: 'asc',
59
+ width: '96px',
60
+ show: true,
61
+ filter: false,
62
+ },
63
+ {
64
+ col: 'col3',
65
+ colName: 'available_storage',
66
+ text: localization.common.availableStorage,
67
+ isSortable: true,
68
+ sort: 'asc',
69
+ width: '96px',
70
+ show: true,
71
+ filter: false,
72
+ },
73
+ {
74
+ col: 'col4',
75
+ colName: 'drs',
76
+ text: localization.common.vSphere_DRS,
77
+ isSortable: true,
78
+ sort: 'asc',
79
+ width: '96px',
80
+ show: true,
81
+ filter: false,
82
+ },
83
+ {
84
+ col: 'col5',
85
+ colName: 'ha',
86
+ text: localization.common.vSphere_HA,
87
+ isSortable: true,
88
+ sort: 'asc',
89
+ width: '96px',
90
+ show: true,
91
+ filter: false,
92
+ },
93
+ {
94
+ col: 'col6',
95
+ colName: 'total_cpu',
96
+ text: localization.common.totalCpu,
97
+ isSortable: true,
98
+ sort: 'asc',
99
+ width: '96px',
100
+ show: true,
101
+ filter: false,
102
+ },
103
+ {
104
+ col: 'col7',
105
+ colName: 'total_memory',
106
+ text: localization.common.totalMemory,
107
+ isSortable: true,
108
+ sort: 'asc',
109
+ width: '96px',
110
+ show: true,
111
+ filter: false,
112
+ },
113
+ {
114
+ col: 'col8',
115
+ colName: 'total_storage',
116
+ text: localization.common.totalStorage,
117
+ isSortable: true,
118
+ sort: 'asc',
119
+ width: '96px',
120
+ show: true,
121
+ filter: false,
122
+ },
123
+ {
124
+ col: 'col9',
125
+ colName: 'vms',
126
+ text: localization.common.vms,
127
+ isSortable: true,
128
+ sort: 'asc',
129
+ width: '96px',
130
+ show: true,
131
+ filter: false,
132
+ },
133
+ {
134
+ col: 'col10',
135
+ colName: 'hosts',
136
+ text: localization.common.hosts,
137
+ isSortable: true,
138
+ sort: 'asc',
139
+ width: '96px',
140
+ show: true,
141
+ filter: false,
142
+ },
143
+ {
144
+ col: 'col11',
145
+ colName: 'cpus',
146
+ text: localization.common.cpus,
147
+ isSortable: true,
148
+ sort: 'asc',
149
+ width: '96px',
150
+ show: true,
151
+ filter: false,
152
+ },
153
+ {
154
+ col: 'col12',
155
+ colName: 'datastores',
156
+ text: localization.common.datastores,
157
+ isSortable: true,
158
+ sort: 'asc',
159
+ width: '96px',
160
+ show: true,
161
+ filter: false,
162
+ },
163
+ {
164
+ col: 'col13',
165
+ colName: 'vsan',
166
+ text: localization.common.vSAN,
167
+ isSortable: true,
168
+ sort: 'asc',
169
+ width: '96px',
170
+ show: true,
171
+ filter: false,
172
+ },
173
+ {
174
+ col: 'col14',
175
+ colName: 'vc',
176
+ text: localization.common.vc,
177
+ isSortable: true,
178
+ sort: 'asc',
179
+ width: '96px',
180
+ show: true,
181
+ filter: false,
182
+ },
183
+ {
184
+ col: 'col15',
185
+ colName: 'evc_cpu_mode',
186
+ text: localization.common.evcCpuMode,
187
+ isSortable: true,
188
+ sort: 'asc',
189
+ width: '96px',
190
+ show: true,
191
+ filter: false,
192
+ },
193
+ {
194
+ col: 'col16',
195
+ colName: 'evc_graphics_mode',
196
+ text: localization.common.evcGraphicsMode,
197
+ isSortable: true,
198
+ sort: 'asc',
199
+ width: '96px',
200
+ show: true,
201
+ filter: false,
202
+ },
203
+ ]
204
+ export const options: UI_I_DataTableOptions = {
205
+ perPageOptions: [{ text: '10', value: 100, default: true }],
206
+ isSelectable: true,
207
+ selectType: 'radio',
208
+ showPagination: false,
209
+ showPageInfo: false,
210
+ isSortable: true,
211
+ server: true,
212
+ isResizable: true,
213
+ showSelectedRows: false,
214
+ showColumnManager: true,
215
+ inModal: true,
216
+ inBlock: false,
217
+ // isFocusable: false,
218
+ // showPaginationOnTop: false,
219
+ // showSearch: false,
220
+ // withActions: false,
221
+ // showExport: false,
222
+ // withCollapse: false,
223
+ }
224
+
225
+ export const getBodyDataFunc = (
226
+ bodyData: UI_I_ClusterTableItem[],
227
+ _localization: UI_I_Localization
228
+ ): UI_I_DataTableBody[] => {
229
+ const { $binary }: any = useNuxtApp()
230
+
231
+ return bodyData.map((cluster, index: number) => {
232
+ // const statusKey = host.state
233
+ // ? UI_E_DeviceStatus.Unknown
234
+ // : UI_E_DeviceStatus.Supported
235
+ // const statusData = {
236
+ // ...STATUS_MAPPING[statusKey],
237
+ // testId: `${host.name}-${index}-status`,
238
+ // }
239
+
240
+ return {
241
+ row: index,
242
+ collapse: false,
243
+ isHiddenCollapse: false,
244
+ collapseToggle: false,
245
+
246
+ data: [
247
+ {
248
+ key: 'icon',
249
+ col: 'col0',
250
+ text: cluster.name,
251
+ data: {
252
+ iconClassName: 'vsphere-icon-cluster',
253
+ },
254
+ testId: `migrate-cluster-table-item-${index}`,
255
+ },
256
+
257
+ {
258
+ col: 'col1',
259
+ text: $binary.roundHz(cluster.available_cpu),
260
+ testId: `migrate-cluster-table-item-${index}`,
261
+ },
262
+ {
263
+ col: 'col2',
264
+ text: $binary.round(cluster.available_memory),
265
+ testId: `migrate-cluster-table-item-${index}`,
266
+ },
267
+ {
268
+ col: 'col3',
269
+ text: $binary.round(cluster.available_storage),
270
+ testId: `migrate-cluster-table-item-${index}`,
271
+ },
272
+ {
273
+ col: 'col4',
274
+ text: cluster.drs,
275
+ testId: `migrate-cluster-table-item-${index}`,
276
+ },
277
+ {
278
+ col: 'col5',
279
+ text: cluster.ha,
280
+ testId: `migrate-cluster-table-item-${index}`,
281
+ },
282
+ {
283
+ col: 'col6',
284
+ text: $binary.roundHz(cluster.total_cpu),
285
+ testId: `migrate-cluster-table-item-${index}`,
286
+ },
287
+ {
288
+ col: 'col7',
289
+ text: $binary.round(cluster.total_memory),
290
+ testId: `migrate-cluster-table-item-${index}`,
291
+ },
292
+ {
293
+ col: 'col8',
294
+ text: $binary.round(cluster.total_storage),
295
+ testId: `migrate-cluster-table-item-${index}`,
296
+ },
297
+ {
298
+ col: 'col9',
299
+ text: cluster.vms,
300
+ testId: `migrate-cluster-table-item-${index}`,
301
+ },
302
+ {
303
+ col: 'col10',
304
+ text: cluster.hosts,
305
+ testId: `migrate-cluster-table-item-${index}`,
306
+ },
307
+ {
308
+ col: 'col11',
309
+ text: cluster.cpus,
310
+ testId: `migrate-cluster-table-item-${index}`,
311
+ },
312
+ {
313
+ col: 'col12',
314
+ text: cluster.datastores,
315
+ testId: `migrate-cluster-table-item-${index}`,
316
+ },
317
+ {
318
+ col: 'col13',
319
+ text: cluster.vsan,
320
+ testId: `migrate-cluster-table-item-${index}`,
321
+ },
322
+ {
323
+ col: 'col14',
324
+ text: cluster.vc,
325
+ testId: `migrate-cluster-table-item-${index}`,
326
+ },
327
+ {
328
+ col: 'col15',
329
+ text: cluster.evc_cpu_mode,
330
+ testId: `migrate-cluster-table-item-${index}`,
331
+ },
332
+ {
333
+ col: 'col16',
334
+ text: cluster.evc_graphics_mode,
335
+ testId: `migrate-cluster-table-item-${index}`,
336
+ },
337
+ ],
338
+ }
339
+ })
340
+ }
@@ -222,7 +222,9 @@ export const getBodyDataFunc = (
222
222
  key: 'icon',
223
223
  col: 'col0',
224
224
  text: host.name,
225
- data: `vsphere-icon-${hostIconByState[host.state]}`,
225
+ data: {
226
+ iconClassName: `vsphere-icon-${hostIconByState[host.state]}`,
227
+ },
226
228
  testId: `migrate-host-table-item-${index}`,
227
229
  },
228
230
 
@@ -27,13 +27,14 @@
27
27
  :is-hide-select-disk-format="props.isHideSelectDiskFormat"
28
28
  >
29
29
  <template v-if="isShowSelectedPerDisks" #buttonConfirm>
30
- <button
31
- class="btn btn-sm btn-primary"
32
- data-id="apply-selected-per-disks-button"
30
+ <ui-button
31
+ test-id="apply-selected-per-disks-button"
32
+ type="primary"
33
+ size="sm"
33
34
  @click="onApplyChanges"
34
35
  >
35
36
  {{ localization.common.confirm }}
36
- </button>
37
+ </ui-button>
37
38
  </template>
38
39
  </common-wizards-vm-migrate-steps-select-storage-configure-batch>
39
40
 
@@ -69,5 +69,9 @@ const selectOptionsLocal = computed<UI_I_Dropdown[]>(() =>
69
69
  font-size: 13px;
70
70
  }
71
71
  }
72
+ &__button {
73
+ display: flex;
74
+ justify-content: flex-end;
75
+ }
72
76
  }
73
77
  </style>
@@ -118,9 +118,11 @@ watch(
118
118
  const onSorting = (value: string): void => {
119
119
  emits('sort', value)
120
120
  }
121
+
122
+ /* TODO: если передать в emit selectedStorageKeyLocal.value, то не работает */
121
123
  const onSelectRow = (value: UI_I_DataTableBody[]): void => {
122
124
  selectedStorageKeyLocal.value = value?.[0].row as number
123
- emits('select-storage', selectedStorageKeyLocal.value)
125
+ emits('select-storage', value?.[0].row as number)
124
126
  }
125
127
  </script>
126
128
 
@@ -158,7 +158,6 @@ export const getBodyDataFunc = (
158
158
  bodyData: UI_I_StorageConfigurePerDiskItem[],
159
159
  localization: UI_I_Localization
160
160
  ): UI_I_DataTableBody[] => {
161
-
162
161
  return bodyData.map((disk, index: number) => {
163
162
  const diskFormat =
164
163
  index === 0 ? 'N/A' : UI_E_SelectStorageDiskFormat[disk.disk_format]
@@ -184,6 +183,12 @@ export const getBodyDataFunc = (
184
183
  : 'False'
185
184
  : localization.common[diskSharingKey]
186
185
 
186
+ const diskCache = disk.extra.cache
187
+ const diskCacheValue =
188
+ !diskCache || ['none', 'n/a'].includes(diskCache.toLowerCase())
189
+ ? '--'
190
+ : disk.extra.cache
191
+
187
192
  return {
188
193
  row: index,
189
194
  collapse: false,
@@ -221,10 +226,10 @@ export const getBodyDataFunc = (
221
226
  data: diskSharingData,
222
227
  },
223
228
 
224
- { col: 'col6', text: disk.extra.target },
229
+ { col: 'col6', text: disk.extra.target || '--' },
225
230
  {
226
231
  col: 'col7',
227
- text: disk.extra.cache,
232
+ text: diskCacheValue,
228
233
  },
229
234
  { col: 'col8', text: disk.extra.io_control },
230
235
  {
@@ -79,6 +79,12 @@ export const bodyItems = (
79
79
  ? disk[vmMigrateDiskTableItemKeys[2]]
80
80
  : `${disk.extra.disk_source} (${disk.extra.disk_size} ${localization.common.mb} )`
81
81
 
82
+ const diskCache = disk.extra[vmMigrateDiskTableItemKeys[7]]
83
+ const diskCacheValue =
84
+ !diskCache || ['none', 'n/a'].includes(diskCache.toLowerCase())
85
+ ? '--'
86
+ : disk.extra[vmMigrateDiskTableItemKeys[7]]
87
+
82
88
  bodyItems.push([
83
89
  {
84
90
  key: 'col0',
@@ -124,7 +130,7 @@ export const bodyItems = (
124
130
  },
125
131
  {
126
132
  key: 'col7',
127
- text: disk.extra[vmMigrateDiskTableItemKeys[7]],
133
+ text: diskCacheValue,
128
134
  id: key,
129
135
  testId: `disk-table-${key}`,
130
136
  },
@@ -3,6 +3,9 @@ export enum UI_E_RecentTaskStatus {
3
3
  'running',
4
4
  'completed',
5
5
  'failed',
6
+ 'canceled',
7
+ 'retrying',
8
+ 'warning',
6
9
  }
7
10
 
8
11
  export enum UI_E_IconNameByRecentTaskStatus {