bfg-common 1.6.49 → 1.6.50
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/assets/localization/local_be.json +255 -9
- package/assets/localization/local_en.json +264 -17
- package/assets/localization/local_hy.json +257 -11
- package/assets/localization/local_kk.json +255 -9
- package/assets/localization/local_ru.json +264 -18
- package/assets/localization/local_zh.json +255 -9
- package/assets/scss/common/global.scss +11 -0
- package/assets/scss/common/theme.scss +2 -2
- package/components/atoms/stack/StackBlock.vue +1 -1
- package/components/atoms/tooltip/TooltipError.vue +3 -0
- package/components/common/adapterManager/addAdapterModal/AddAdapterModalNew.vue +1 -1
- package/components/common/adapterManager/addAdapterWarningModal/AddAdapterWarningModalNew.vue +0 -1
- package/components/common/adapterManager/ui/table/adapters/AdaptersNew.vue +1 -0
- package/components/common/certificate/CertificateInfo.vue +7 -1
- package/components/common/configure/physicalAdapters/PhysicalAdapters.vue +6 -0
- package/components/common/configure/physicalAdapters/PhysicalAdaptersNew.vue +219 -192
- package/components/common/configure/physicalAdapters/PhysicalAdaptersOld.vue +6 -4
- package/components/common/configure/physicalAdapters/buttons/Buttons.vue +1 -0
- package/components/common/configure/physicalAdapters/modals/edit/Edit.vue +26 -1
- package/components/common/configure/physicalAdapters/modals/edit/EditNew.vue +30 -1
- package/components/common/configure/physicalAdapters/modals/edit/lib/models/interfaces.ts +5 -0
- package/components/common/configure/physicalAdapters/modals/edit/lib/validations/validations.ts +19 -0
- package/components/common/configure/physicalAdapters/tableView/TableViewNew.vue +12 -1
- package/components/common/configure/physicalAdapters/tableView/lib/config/physicalAdaptersTableConfigNew.ts +21 -21
- package/components/common/configure/physicalAdapters/tableView/lib/config/settings.ts +12 -5
- package/components/common/configure/physicalAdapters/tableView/lib/models/interfaces.ts +4 -1
- package/components/common/diagramMain/Diagram.vue +167 -85
- package/components/common/diagramMain/DiagramMain.vue +34 -10
- package/components/common/diagramMain/header/Header.vue +49 -0
- package/components/common/diagramMain/header/HeaderNew.vue +155 -0
- package/components/common/diagramMain/{Header.vue → header/HeaderOld.vue} +78 -67
- package/components/common/diagramMain/modals/Modals.vue +4 -0
- package/components/common/diagramMain/modals/editSettings/tabs/NetworkProperties.vue +2 -2
- package/components/common/diagramMain/modals/lib/config/diagramConfig.ts +43 -2
- package/components/common/diagramMain/modals/lib/config/index.ts +2 -1
- package/components/common/diagramMain/modals/lib/config/vmKernelAdapter.ts +1 -1
- package/components/common/diagramMain/modals/migrateVmkernelAdapter/MigrateVmkernelAdapter.vue +2 -2
- package/components/common/diagramMain/modals/migrateVmkernelAdapter/validations/common.ts +1 -1
- package/components/common/diagramMain/skeleton/Header.vue +31 -0
- package/components/common/diagramMain/skeleton/Switch.vue +75 -0
- package/components/common/layout/theHeader/ThemeSwitch.vue +1 -1
- package/components/common/layout/theHeader/modals/reconnect/New.vue +38 -30
- package/components/common/layout/theHeader/userMenu/modals/changePassword/New.vue +8 -9
- package/components/common/layout/theHeader/userMenu/modals/preferences/New.vue +4 -0
- package/components/common/layout/theHeader/userMenu/modals/preferences/Old.vue +9 -2
- package/components/common/layout/theHeader/userMenu/modals/preferences/changeLanguage/ChangeLanguage.vue +11 -7
- package/components/common/layout/theHeader/userMenu/modals/preferences/defaultConsole/DefaultConsole.vue +7 -1
- package/components/common/layout/theHeader/userMenu/modals/preferences/defaultConsole/lib/config/consoleOptions.ts +8 -5
- package/components/common/layout/theHeader/userMenu/modals/preferences/timeFormat/TimeFormat.vue +9 -5
- package/components/common/layout/theHeader/userMenu/modals/preferences/timeFormat/lib/config/formatOptions.ts +1 -1
- package/components/common/layout/theHeader/userMenu/modals/preferences/view/Old.vue +5 -9
- package/components/common/layout/theHeader/userMenu/modals/preferences/view/View.vue +9 -6
- package/components/common/mainNavigationPanel/MainNavigationPanelNew.vue +3 -1
- package/components/common/monitor/advanced/tools/Tools.vue +10 -9
- package/components/common/monitor/advanced/tools/chartOptionsModal/ChartOptionsModal.vue +16 -19
- package/components/common/monitor/advanced/tools/lib/config/advancedToolbar.ts +62 -9
- package/components/common/noDataProvided/NoDataProvidedNew.vue +1 -1
- package/components/common/pages/backups/modals/createBackup/datastores/tableView/new/lib/config/table.ts +4 -4
- package/components/common/pages/backups/modals/createBackup/datastores/tableView/old/lib/config/table.ts +4 -4
- package/components/common/pages/hardwareHealth/HardwareHealth.vue +4 -0
- package/components/common/pages/hardwareHealth/HardwareHealthNew.vue +12 -3
- package/components/common/pages/hardwareHealth/HardwareHealthOld.vue +3 -0
- package/components/common/pages/hardwareHealth/historyTestimony/Graph.vue +4 -4
- package/components/common/pages/hardwareHealth/historyTestimony/GraphNew.vue +4 -3
- package/components/common/pages/hardwareHealth/historyTestimony/GraphOld.vue +3 -2
- package/components/common/pages/hardwareHealth/historyTestimony/tools/Tools.vue +32 -8
- package/components/common/pages/hardwareHealth/historyTestimony/tools/ToolsNew.vue +11 -18
- package/components/common/pages/hardwareHealth/historyTestimony/tools/ToolsOld.vue +10 -19
- package/components/common/pages/hardwareHealth/historyTestimony/tools/chartOptionsModal/ChartOptionsModal.vue +19 -7
- package/components/common/pages/hardwareHealth/historyTestimony/tools/chartOptionsModal/actions/ActionsNew.vue +1 -1
- package/components/common/pages/hardwareHealth/historyTestimony/tools/lib/config/toolbar.ts +68 -5
- package/components/common/pages/scheduledTasks/table/lib/models/enums.ts +9 -0
- package/components/common/pages/scheduledTasks/table/new/New.vue +12 -10
- package/components/common/pages/tasks/Tasks.vue +4 -1
- package/components/common/pages/tasks/table/Table.vue +25 -23
- package/components/common/readyToComplete/New.vue +1 -0
- package/components/common/split/vertical/New.vue +42 -8
- package/components/common/split/vertical/Old.vue +31 -2
- package/components/common/split/vertical/Vertical.vue +4 -0
- package/components/common/vm/actions/add/New.vue +21 -6
- package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/Media.vue +14 -1
- package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/New.vue +5 -0
- package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/Old.vue +1 -0
- package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/New.vue +1 -0
- package/components/common/vm/actions/common/customizeHardware/virtualHardware/reservation/New.vue +2 -0
- package/components/common/vm/actions/common/select/storage/new/lib/config/table.ts +13 -15
- package/components/common/vm/actions/confirm/Confirm.vue +3 -0
- package/components/common/vm/snapshots/DetailView.vue +6 -6
- package/components/common/wizards/datastore/add/New.vue +6 -0
- package/components/common/wizards/datastore/add/lib/config/steps.ts +1 -1
- package/components/common/wizards/datastore/add/steps/nameAndDevice/NameAndDeviceNew.vue +1 -1
- package/components/common/wizards/datastore/add/steps/nameAndDevice/advancedOptions/New.vue +1 -1
- package/components/common/wizards/network/add/Add.vue +13 -2
- package/components/common/wizards/network/add/AddNew.vue +22 -26
- package/components/common/wizards/network/add/lib/config/initialData.ts +6 -4
- package/components/common/wizards/network/add/lib/config/steps.ts +1 -1
- package/components/common/wizards/network/add/lib/models/interfaces.ts +1 -0
- package/components/common/wizards/network/add/lib/utils/utils.ts +1 -1
- package/components/common/wizards/network/add/steps/connectionSettings/ConnectionSettingsOld.vue +5 -1
- package/components/common/wizards/network/add/steps/ipFourSettings/IpFourSettingsNew.vue +2 -8
- package/components/common/wizards/network/add/steps/ipFourSettings/IpFourSettingsOld.vue +3 -0
- package/components/common/wizards/network/add/steps/portProperties/PortPropertiesNew.vue +2 -8
- package/components/common/wizards/network/add/steps/portProperties/PortPropertiesOld.vue +6 -2
- package/components/common/wizards/network/add/steps/selectTargetDevice/SelectTargetDeviceNew.vue +10 -3
- package/components/common/wizards/network/add/steps/selectTargetDevice/SelectTargetDeviceOld.vue +4 -0
- package/components/common/wizards/network/add/steps/selectTargetDevice/modals/new/SelectNetwork.vue +5 -1
- package/components/common/wizards/network/add/validations/common.ts +1 -1
- package/components/common/wizards/vm/migrate/New.vue +13 -3
- package/components/common/wizards/vm/migrate/lib/config/constructDataReady.ts +5 -0
- package/components/common/wizards/vm/migrate/lib/config/steps.ts +3 -2
- package/components/common/wizards/vm/migrate/steps/computeResource/New.vue +2 -1
- package/components/common/wizards/vm/migrate/steps/computeResource/tableView/new/New.vue +40 -21
- package/components/common/wizards/vm/migrate/steps/computeResource/tableView/new/lib/config/clusterTable.ts +340 -0
- package/components/common/wizards/vm/migrate/steps/computeResource/tableView/new/lib/config/hostTable.ts +44 -14
- package/components/common/wizards/vm/migrate/steps/computeResource/tableView/new/lib/models/enums.ts +4 -0
- package/components/common/wizards/vm/migrate/steps/priority/New.vue +7 -2
- package/components/common/wizards/vm/migrate/steps/selectStorage/New.vue +22 -7
- package/components/common/wizards/vm/migrate/steps/selectStorage/configure/batch/New.vue +6 -0
- package/components/common/wizards/vm/migrate/steps/selectStorage/configure/batch/table/new/New.vue +4 -1
- package/components/common/wizards/vm/migrate/steps/selectStorage/configure/batch/table/new/lib/config/datastoreTable.ts +12 -16
- package/components/common/wizards/vm/migrate/steps/selectStorage/configure/disk/table/new/New.vue +10 -5
- package/components/common/wizards/vm/migrate/steps/selectStorage/configure/disk/table/new/lib/config/diskTable.ts +16 -11
- package/components/common/wizards/vm/migrate/steps/selectStorage/configure/disk/table/old/lib/config/diskTable.ts +7 -1
- package/components/common/wizards/vm/migrate/steps/selectStorage/selectedPerDisk/New.vue +17 -10
- package/components/common/wizards/vm/migrate/steps/type/TypeNew.vue +1 -0
- package/components/common/wizards/vm/migrate/vmOrigin/New.vue +35 -15
- package/lib/models/store/tasks/enums.ts +3 -0
- package/lib/models/store/tasks/types.ts +7 -6
- package/package.json +2 -2
- package/plugins/directives.ts +3 -5
- package/public/spice-console/application/agent.js +18 -17
- package/store/tasks/actions.ts +26 -8
- package/store/tasks/mappers/recentTasks.ts +1 -0
- package/components/common/pages/hardwareHealth/historyTestimony/tools/chartOptionsModal/actions/SaveOptionsModal.vue +0 -81
|
@@ -9,6 +9,7 @@ import {
|
|
|
9
9
|
UI_E_DeviceStatus,
|
|
10
10
|
UI_E_DeviceStatusChipColor,
|
|
11
11
|
UI_E_DeviceStatusIcon,
|
|
12
|
+
UI_E_HostAlarmStatus,
|
|
12
13
|
} from '~/components/common/wizards/vm/migrate/steps/computeResource/tableView/new/lib/models/enums'
|
|
13
14
|
import {
|
|
14
15
|
hostIconByState,
|
|
@@ -31,6 +32,18 @@ const STATUS_MAPPING = {
|
|
|
31
32
|
},
|
|
32
33
|
}
|
|
33
34
|
|
|
35
|
+
// Маппинг для статусов
|
|
36
|
+
const HOST_ALARMS_MAPPING = {
|
|
37
|
+
[UI_E_HostAlarmStatus.Yes]: {
|
|
38
|
+
icon: UI_E_DeviceStatusIcon.StatusCheck,
|
|
39
|
+
chipColor: UI_E_DeviceStatusChipColor.Green,
|
|
40
|
+
},
|
|
41
|
+
[UI_E_HostAlarmStatus.No]: {
|
|
42
|
+
icon: UI_E_DeviceStatusIcon.Close,
|
|
43
|
+
chipColor: UI_E_DeviceStatusChipColor.Red,
|
|
44
|
+
},
|
|
45
|
+
}
|
|
46
|
+
|
|
34
47
|
export const getHeaderDataFunc = (
|
|
35
48
|
localization: UI_I_Localization
|
|
36
49
|
): UI_I_DataTableHeader[] => [
|
|
@@ -50,7 +63,7 @@ export const getHeaderDataFunc = (
|
|
|
50
63
|
text: localization.inventorySummary.state,
|
|
51
64
|
isSortable: true,
|
|
52
65
|
sort: 'asc',
|
|
53
|
-
width: '
|
|
66
|
+
width: '144px',
|
|
54
67
|
show: true,
|
|
55
68
|
filter: false,
|
|
56
69
|
},
|
|
@@ -60,7 +73,7 @@ export const getHeaderDataFunc = (
|
|
|
60
73
|
text: localization.common.cluster,
|
|
61
74
|
isSortable: true,
|
|
62
75
|
sort: 'asc',
|
|
63
|
-
width: '
|
|
76
|
+
width: '120px',
|
|
64
77
|
show: true,
|
|
65
78
|
filter: false,
|
|
66
79
|
},
|
|
@@ -70,7 +83,7 @@ export const getHeaderDataFunc = (
|
|
|
70
83
|
text: localization.common.faultDomain,
|
|
71
84
|
isSortable: true,
|
|
72
85
|
sort: 'asc',
|
|
73
|
-
width: '
|
|
86
|
+
width: '120px',
|
|
74
87
|
show: true,
|
|
75
88
|
filter: false,
|
|
76
89
|
},
|
|
@@ -80,7 +93,7 @@ export const getHeaderDataFunc = (
|
|
|
80
93
|
text: `${localization.common.consumedCpu} %`,
|
|
81
94
|
isSortable: true,
|
|
82
95
|
sort: 'asc',
|
|
83
|
-
width: '
|
|
96
|
+
width: '230px',
|
|
84
97
|
show: true,
|
|
85
98
|
filter: false,
|
|
86
99
|
},
|
|
@@ -90,7 +103,7 @@ export const getHeaderDataFunc = (
|
|
|
90
103
|
text: `${localization.common.consumedMemory} %`,
|
|
91
104
|
isSortable: true,
|
|
92
105
|
sort: 'asc',
|
|
93
|
-
width: '
|
|
106
|
+
width: '230px',
|
|
94
107
|
show: true,
|
|
95
108
|
filter: false,
|
|
96
109
|
},
|
|
@@ -110,7 +123,7 @@ export const getHeaderDataFunc = (
|
|
|
110
123
|
text: localization.inventorySummary.uptime,
|
|
111
124
|
isSortable: true,
|
|
112
125
|
sort: 'asc',
|
|
113
|
-
width: '
|
|
126
|
+
width: '270px',
|
|
114
127
|
show: true,
|
|
115
128
|
filter: false,
|
|
116
129
|
},
|
|
@@ -120,7 +133,7 @@ export const getHeaderDataFunc = (
|
|
|
120
133
|
text: localization.common.certificateValidTo,
|
|
121
134
|
isSortable: true,
|
|
122
135
|
sort: 'asc',
|
|
123
|
-
width: '
|
|
136
|
+
width: '160px',
|
|
124
137
|
show: true,
|
|
125
138
|
filter: false,
|
|
126
139
|
},
|
|
@@ -130,7 +143,7 @@ export const getHeaderDataFunc = (
|
|
|
130
143
|
text: `${localization.common.memorySize} (${localization.common.mb})`,
|
|
131
144
|
isSortable: true,
|
|
132
145
|
sort: 'asc',
|
|
133
|
-
width: '
|
|
146
|
+
width: '160px',
|
|
134
147
|
show: true,
|
|
135
148
|
filter: false,
|
|
136
149
|
},
|
|
@@ -160,7 +173,7 @@ export const getHeaderDataFunc = (
|
|
|
160
173
|
text: localization.common.version,
|
|
161
174
|
isSortable: true,
|
|
162
175
|
sort: 'asc',
|
|
163
|
-
width: '
|
|
176
|
+
width: '270px',
|
|
164
177
|
show: true,
|
|
165
178
|
filter: false,
|
|
166
179
|
},
|
|
@@ -170,7 +183,7 @@ export const getHeaderDataFunc = (
|
|
|
170
183
|
text: localization.common.alarmActions,
|
|
171
184
|
isSortable: true,
|
|
172
185
|
sort: 'asc',
|
|
173
|
-
width: '
|
|
186
|
+
width: '120px',
|
|
174
187
|
show: true,
|
|
175
188
|
filter: false,
|
|
176
189
|
},
|
|
@@ -211,6 +224,21 @@ export const getBodyDataFunc = (
|
|
|
211
224
|
testId: `${host.name}-${index}-status`,
|
|
212
225
|
}
|
|
213
226
|
|
|
227
|
+
const alarmsStatusKey = host.alarm_action
|
|
228
|
+
? UI_E_HostAlarmStatus.Yes
|
|
229
|
+
: UI_E_HostAlarmStatus.No
|
|
230
|
+
const alarmActionData = {
|
|
231
|
+
...HOST_ALARMS_MAPPING[alarmsStatusKey],
|
|
232
|
+
testId: `${host.name}-${index}-alarms-status`,
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
const isLangEn = useLocalStorage('lang') === 'en_US'
|
|
236
|
+
const alarmActionValue = isLangEn
|
|
237
|
+
? host.alarm_action
|
|
238
|
+
? 'True'
|
|
239
|
+
: 'False'
|
|
240
|
+
: localization.common[alarmsStatusKey]
|
|
241
|
+
|
|
214
242
|
return {
|
|
215
243
|
row: index,
|
|
216
244
|
collapse: false,
|
|
@@ -222,7 +250,9 @@ export const getBodyDataFunc = (
|
|
|
222
250
|
key: 'icon',
|
|
223
251
|
col: 'col0',
|
|
224
252
|
text: host.name,
|
|
225
|
-
data:
|
|
253
|
+
data: {
|
|
254
|
+
iconClassName: `vsphere-icon-${hostIconByState[host.state]}`,
|
|
255
|
+
},
|
|
226
256
|
testId: `migrate-host-table-item-${index}`,
|
|
227
257
|
},
|
|
228
258
|
|
|
@@ -269,7 +299,7 @@ export const getBodyDataFunc = (
|
|
|
269
299
|
},
|
|
270
300
|
{
|
|
271
301
|
col: 'col8',
|
|
272
|
-
text: host.cert_valid_to,
|
|
302
|
+
text: host.cert_valid_to || '--',
|
|
273
303
|
testId: `migrate-host-table-item-${index}`,
|
|
274
304
|
},
|
|
275
305
|
|
|
@@ -298,8 +328,8 @@ export const getBodyDataFunc = (
|
|
|
298
328
|
{
|
|
299
329
|
key: 'status',
|
|
300
330
|
col: 'col13',
|
|
301
|
-
text:
|
|
302
|
-
data:
|
|
331
|
+
text: alarmActionValue,
|
|
332
|
+
data: alarmActionData,
|
|
303
333
|
testId: `migrate-host-table-item-${index}`,
|
|
304
334
|
},
|
|
305
335
|
],
|
|
@@ -38,7 +38,7 @@ const props = defineProps<{
|
|
|
38
38
|
.migration-strategy {
|
|
39
39
|
container-type: inline-size;
|
|
40
40
|
margin-top: 16px;
|
|
41
|
-
|
|
41
|
+
padding-bottom: 16px;
|
|
42
42
|
&__radio {
|
|
43
43
|
&-container {
|
|
44
44
|
display: grid;
|
|
@@ -62,7 +62,7 @@ const props = defineProps<{
|
|
|
62
62
|
transition: box-shadow 0.1s ease-in-out;
|
|
63
63
|
}
|
|
64
64
|
|
|
65
|
-
&:not(:checked) {
|
|
65
|
+
&:not(:checked, :disabled) {
|
|
66
66
|
& ~ .radio-label:hover {
|
|
67
67
|
//border-color: var(--select-border);
|
|
68
68
|
box-shadow: inset 0 0 0 1px var(--select-border);
|
|
@@ -76,6 +76,11 @@ const props = defineProps<{
|
|
|
76
76
|
box-shadow: inset 0 0 0 1.5px var(--radio-btn-active-label-border-color);
|
|
77
77
|
}
|
|
78
78
|
}
|
|
79
|
+
&:disabled {
|
|
80
|
+
& ~ .radio-label .migration-strategy__radio-description {
|
|
81
|
+
color: var(--checkbox-radio-label-color-disabled);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
79
84
|
}
|
|
80
85
|
}
|
|
81
86
|
|
|
@@ -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
|
-
|
|
32
|
-
|
|
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
|
|
|
@@ -47,9 +48,8 @@
|
|
|
47
48
|
/>
|
|
48
49
|
|
|
49
50
|
<common-wizards-common-compatibility
|
|
50
|
-
:
|
|
51
|
-
:text="
|
|
52
|
-
status="success"
|
|
51
|
+
:status="compatibilityText[0]"
|
|
52
|
+
:text="compatibilityText[1]"
|
|
53
53
|
/>
|
|
54
54
|
</div>
|
|
55
55
|
</template>
|
|
@@ -62,6 +62,7 @@ import type { UI_I_CollapseNavItem } from '~/components/atoms/collapse/lib/model
|
|
|
62
62
|
import type { UI_I_DatastoreTableItem } from '~/lib/models/store/storage/interfaces'
|
|
63
63
|
import type { UI_I_StorageConfigurePerDiskItem } from '~/components/common/wizards/vm/migrate/steps/selectStorage/configure/disk/table/lib/models/interfaces'
|
|
64
64
|
import type { UI_I_MigrateFormLocal } from '~/components/common/wizards/vm/migrate/lib/models/interfaces'
|
|
65
|
+
import type { UI_T_CompatibilityStatus } from '~/components/common/wizards/common/compatibility/lib/models/types'
|
|
65
66
|
|
|
66
67
|
const model = defineModel<UI_I_MigrateFormLocal>({ required: true })
|
|
67
68
|
const selectedPerDiskKeys = defineModel<number[]>('selectedDiskKeys', {
|
|
@@ -111,6 +112,19 @@ const onChangePerDiskStorage = (
|
|
|
111
112
|
const onApplyChanges = (): void => {
|
|
112
113
|
emits('confirm-changes')
|
|
113
114
|
}
|
|
115
|
+
|
|
116
|
+
const compatibilityText = computed<[UI_T_CompatibilityStatus, string]>(() => {
|
|
117
|
+
let res: [UI_T_CompatibilityStatus, string] = [
|
|
118
|
+
'none',
|
|
119
|
+
localization.value.common.noComputeResourceSelected,
|
|
120
|
+
]
|
|
121
|
+
|
|
122
|
+
if (model.value.storage) {
|
|
123
|
+
res = ['success', localization.value.common.compatibilityChecksSucceeded]
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
return res
|
|
127
|
+
})
|
|
114
128
|
</script>
|
|
115
129
|
|
|
116
130
|
<style lang="scss" scoped>
|
|
@@ -118,5 +132,6 @@ const onApplyChanges = (): void => {
|
|
|
118
132
|
.select-storage {
|
|
119
133
|
@include flex($dir: column);
|
|
120
134
|
margin-top: 16px;
|
|
135
|
+
padding-bottom: 16px;
|
|
121
136
|
}
|
|
122
137
|
</style>
|
|
@@ -61,7 +61,9 @@ const selectOptionsLocal = computed<UI_I_Dropdown[]>(() =>
|
|
|
61
61
|
grid-template-columns: 240px 1fr;
|
|
62
62
|
align-items: center;
|
|
63
63
|
column-gap: 16px;
|
|
64
|
+
border-bottom: 1px solid var(--horizontal-line);
|
|
64
65
|
margin-top: 16px;
|
|
66
|
+
padding-bottom: 16px;
|
|
65
67
|
& > span {
|
|
66
68
|
font-family: 'Inter', sans-serif;
|
|
67
69
|
color: var(--title-form-first-color);
|
|
@@ -69,5 +71,9 @@ const selectOptionsLocal = computed<UI_I_Dropdown[]>(() =>
|
|
|
69
71
|
font-size: 13px;
|
|
70
72
|
}
|
|
71
73
|
}
|
|
74
|
+
&__button {
|
|
75
|
+
display: flex;
|
|
76
|
+
justify-content: flex-end;
|
|
77
|
+
}
|
|
72
78
|
}
|
|
73
79
|
</style>
|
package/components/common/wizards/vm/migrate/steps/selectStorage/configure/batch/table/new/New.vue
CHANGED
|
@@ -86,6 +86,7 @@ const texts = computed<UI_I_TableTexts>(() => ({
|
|
|
86
86
|
|
|
87
87
|
const skeletonData = ref<UI_I_DataTableSkeleton>({
|
|
88
88
|
columnsCount: 4,
|
|
89
|
+
withoutPagination: true,
|
|
89
90
|
headColumns: [],
|
|
90
91
|
bodyColumns: [],
|
|
91
92
|
})
|
|
@@ -118,9 +119,11 @@ watch(
|
|
|
118
119
|
const onSorting = (value: string): void => {
|
|
119
120
|
emits('sort', value)
|
|
120
121
|
}
|
|
122
|
+
|
|
123
|
+
/* TODO: если передать в emit selectedStorageKeyLocal.value, то не работает */
|
|
121
124
|
const onSelectRow = (value: UI_I_DataTableBody[]): void => {
|
|
122
125
|
selectedStorageKeyLocal.value = value?.[0].row as number
|
|
123
|
-
emits('select-storage',
|
|
126
|
+
emits('select-storage', value?.[0].row as number)
|
|
124
127
|
}
|
|
125
128
|
</script>
|
|
126
129
|
|
|
@@ -95,7 +95,7 @@ export const getHeaderDataFunc = (
|
|
|
95
95
|
text: localization.common.name,
|
|
96
96
|
isSortable: false,
|
|
97
97
|
sort: 'asc',
|
|
98
|
-
width: '
|
|
98
|
+
width: '160px',
|
|
99
99
|
show: true,
|
|
100
100
|
filter: false,
|
|
101
101
|
},
|
|
@@ -105,7 +105,7 @@ export const getHeaderDataFunc = (
|
|
|
105
105
|
text: localization.inventorySummary.state,
|
|
106
106
|
isSortable: false,
|
|
107
107
|
sort: 'asc',
|
|
108
|
-
width: '
|
|
108
|
+
width: '160px',
|
|
109
109
|
show: true,
|
|
110
110
|
filter: false,
|
|
111
111
|
},
|
|
@@ -115,7 +115,7 @@ export const getHeaderDataFunc = (
|
|
|
115
115
|
text: localization.common.capacity,
|
|
116
116
|
isSortable: false,
|
|
117
117
|
sort: 'asc',
|
|
118
|
-
width: '
|
|
118
|
+
width: '120px',
|
|
119
119
|
show: true,
|
|
120
120
|
filter: false,
|
|
121
121
|
},
|
|
@@ -125,7 +125,7 @@ export const getHeaderDataFunc = (
|
|
|
125
125
|
text: localization.common.provisioned,
|
|
126
126
|
isSortable: false,
|
|
127
127
|
sort: 'asc',
|
|
128
|
-
width: '
|
|
128
|
+
width: '120px',
|
|
129
129
|
show: true,
|
|
130
130
|
filter: false,
|
|
131
131
|
},
|
|
@@ -135,7 +135,7 @@ export const getHeaderDataFunc = (
|
|
|
135
135
|
text: localization.common.free,
|
|
136
136
|
isSortable: false,
|
|
137
137
|
sort: 'asc',
|
|
138
|
-
width: '
|
|
138
|
+
width: '120px',
|
|
139
139
|
show: true,
|
|
140
140
|
filter: false,
|
|
141
141
|
},
|
|
@@ -145,7 +145,7 @@ export const getHeaderDataFunc = (
|
|
|
145
145
|
text: localization.common.used,
|
|
146
146
|
isSortable: false,
|
|
147
147
|
sort: 'asc',
|
|
148
|
-
width: '
|
|
148
|
+
width: '120px',
|
|
149
149
|
show: true,
|
|
150
150
|
filter: false,
|
|
151
151
|
},
|
|
@@ -155,7 +155,7 @@ export const getHeaderDataFunc = (
|
|
|
155
155
|
text: localization.common.type,
|
|
156
156
|
isSortable: false,
|
|
157
157
|
sort: 'asc',
|
|
158
|
-
width: '
|
|
158
|
+
width: '104px',
|
|
159
159
|
show: true,
|
|
160
160
|
filter: false,
|
|
161
161
|
},
|
|
@@ -165,7 +165,7 @@ export const getHeaderDataFunc = (
|
|
|
165
165
|
text: localization.common.thinProvisioning,
|
|
166
166
|
isSortable: false,
|
|
167
167
|
sort: 'asc',
|
|
168
|
-
width: '
|
|
168
|
+
width: '160px',
|
|
169
169
|
show: true,
|
|
170
170
|
filter: false,
|
|
171
171
|
},
|
|
@@ -175,7 +175,7 @@ export const getHeaderDataFunc = (
|
|
|
175
175
|
text: localization.common.access,
|
|
176
176
|
isSortable: false,
|
|
177
177
|
sort: 'asc',
|
|
178
|
-
width: '
|
|
178
|
+
width: '104px',
|
|
179
179
|
show: true,
|
|
180
180
|
filter: false,
|
|
181
181
|
},
|
|
@@ -195,7 +195,7 @@ export const getHeaderDataFunc = (
|
|
|
195
195
|
text: localization.common.driverType,
|
|
196
196
|
isSortable: false,
|
|
197
197
|
sort: 'asc',
|
|
198
|
-
width: '
|
|
198
|
+
width: '120px',
|
|
199
199
|
show: true,
|
|
200
200
|
filter: false,
|
|
201
201
|
},
|
|
@@ -205,7 +205,7 @@ export const getHeaderDataFunc = (
|
|
|
205
205
|
text: localization.common.device,
|
|
206
206
|
isSortable: false,
|
|
207
207
|
sort: 'asc',
|
|
208
|
-
width: '
|
|
208
|
+
width: '120px',
|
|
209
209
|
show: true,
|
|
210
210
|
filter: false,
|
|
211
211
|
},
|
|
@@ -259,11 +259,7 @@ export const getBodyDataFunc = (
|
|
|
259
259
|
testId: `${storage.name}-${index}-thin-provisioning`,
|
|
260
260
|
}
|
|
261
261
|
|
|
262
|
-
const hardwareAccelerationKey =
|
|
263
|
-
E_StorageHardwareAcceleration[
|
|
264
|
-
storage.hardware_acceleration as keyof typeof E_StorageHardwareAcceleration
|
|
265
|
-
]
|
|
266
|
-
|
|
262
|
+
const hardwareAccelerationKey = storage.hardware_acceleration
|
|
267
263
|
const hardwareAccelerationData = {
|
|
268
264
|
...HARDWARE_ACCELERATION_MAPPING[
|
|
269
265
|
hardwareAccelerationKey as keyof typeof HARDWARE_ACCELERATION_MAPPING
|
package/components/common/wizards/vm/migrate/steps/selectStorage/configure/disk/table/new/New.vue
CHANGED
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
class="disk-table__configure-button"
|
|
24
24
|
@click="emits('configure')"
|
|
25
25
|
>
|
|
26
|
-
<ui-icon name="
|
|
26
|
+
<ui-icon name="settings" width="16" height="16" />
|
|
27
27
|
{{ localization.inventoryTabs.configure }}
|
|
28
28
|
</ui-button>
|
|
29
29
|
</template>
|
|
@@ -159,18 +159,19 @@ const onSelectRow = (value: UI_I_DataTableBody[]): void => {
|
|
|
159
159
|
</style>
|
|
160
160
|
<style lang="scss" scoped>
|
|
161
161
|
.disk-table {
|
|
162
|
-
margin: 16px 0;
|
|
162
|
+
margin: 16px 0 24px;
|
|
163
163
|
:deep(.title-container) {
|
|
164
164
|
h5 {
|
|
165
165
|
margin-bottom: 0;
|
|
166
166
|
}
|
|
167
167
|
.title-container-top-info {
|
|
168
168
|
border-left: 1px solid var(--horizontal-line);
|
|
169
|
-
padding-left:
|
|
170
|
-
margin-left:
|
|
169
|
+
padding-left: 12px;
|
|
170
|
+
margin-left: 12px;
|
|
171
171
|
}
|
|
172
172
|
h6.title-container-top-selected-rows {
|
|
173
|
-
|
|
173
|
+
font-size: 12px;
|
|
174
|
+
line-height: 20px;
|
|
174
175
|
}
|
|
175
176
|
}
|
|
176
177
|
&__icon {
|
|
@@ -180,9 +181,13 @@ const onSelectRow = (value: UI_I_DataTableBody[]): void => {
|
|
|
180
181
|
font-size: 12px;
|
|
181
182
|
}
|
|
182
183
|
&__configure-button {
|
|
184
|
+
column-gap: 4px;
|
|
183
185
|
background: var(--select-bg);
|
|
184
186
|
border: 1px solid var(--line-color);
|
|
185
187
|
color: var(--title-form-first-color);
|
|
188
|
+
&.ui-btn.ui-btn-sm {
|
|
189
|
+
height: 28px;
|
|
190
|
+
}
|
|
186
191
|
&:hover {
|
|
187
192
|
background: var(--custom-button-default-hover-bg-color);
|
|
188
193
|
}
|
|
@@ -43,7 +43,7 @@ export const getHeaderDataFunc = (
|
|
|
43
43
|
text: localization.common.diskGroup,
|
|
44
44
|
isSortable: false,
|
|
45
45
|
sort: 'asc',
|
|
46
|
-
width: '
|
|
46
|
+
width: '140px',
|
|
47
47
|
show: true,
|
|
48
48
|
filter: false,
|
|
49
49
|
},
|
|
@@ -83,7 +83,7 @@ export const getHeaderDataFunc = (
|
|
|
83
83
|
text: localization.common.sharing,
|
|
84
84
|
isSortable: false,
|
|
85
85
|
sort: 'asc',
|
|
86
|
-
width: '
|
|
86
|
+
width: '120px',
|
|
87
87
|
show: true,
|
|
88
88
|
filter: false,
|
|
89
89
|
},
|
|
@@ -93,7 +93,7 @@ export const getHeaderDataFunc = (
|
|
|
93
93
|
text: localization.common.target,
|
|
94
94
|
isSortable: false,
|
|
95
95
|
sort: 'asc',
|
|
96
|
-
width: '
|
|
96
|
+
width: '120px',
|
|
97
97
|
show: true,
|
|
98
98
|
filter: false,
|
|
99
99
|
},
|
|
@@ -103,7 +103,7 @@ export const getHeaderDataFunc = (
|
|
|
103
103
|
text: localization.common.cache,
|
|
104
104
|
isSortable: false,
|
|
105
105
|
sort: 'asc',
|
|
106
|
-
width: '
|
|
106
|
+
width: '120px',
|
|
107
107
|
show: true,
|
|
108
108
|
filter: false,
|
|
109
109
|
},
|
|
@@ -113,7 +113,7 @@ export const getHeaderDataFunc = (
|
|
|
113
113
|
text: localization.common.ioControl,
|
|
114
114
|
isSortable: false,
|
|
115
115
|
sort: 'asc',
|
|
116
|
-
width: '
|
|
116
|
+
width: '120px',
|
|
117
117
|
show: true,
|
|
118
118
|
filter: false,
|
|
119
119
|
},
|
|
@@ -123,7 +123,7 @@ export const getHeaderDataFunc = (
|
|
|
123
123
|
text: localization.common.discard,
|
|
124
124
|
isSortable: false,
|
|
125
125
|
sort: 'asc',
|
|
126
|
-
width: '
|
|
126
|
+
width: '120px',
|
|
127
127
|
show: true,
|
|
128
128
|
filter: false,
|
|
129
129
|
},
|
|
@@ -133,7 +133,7 @@ export const getHeaderDataFunc = (
|
|
|
133
133
|
text: localization.common.diskMode,
|
|
134
134
|
isSortable: false,
|
|
135
135
|
sort: 'asc',
|
|
136
|
-
width: '
|
|
136
|
+
width: '120px',
|
|
137
137
|
show: true,
|
|
138
138
|
filter: false,
|
|
139
139
|
},
|
|
@@ -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,
|
|
@@ -198,7 +203,7 @@ export const getBodyDataFunc = (
|
|
|
198
203
|
},
|
|
199
204
|
{
|
|
200
205
|
col: 'col1',
|
|
201
|
-
text: disk.disk_group,
|
|
206
|
+
text: disk.disk_group || '--',
|
|
202
207
|
},
|
|
203
208
|
{
|
|
204
209
|
col: 'col2',
|
|
@@ -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:
|
|
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:
|
|
133
|
+
text: diskCacheValue,
|
|
128
134
|
id: key,
|
|
129
135
|
testId: `disk-table-${key}`,
|
|
130
136
|
},
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
/>
|
|
11
11
|
|
|
12
12
|
<div>
|
|
13
|
-
<span class="icon-vm vsphere-icon-vm"></span>
|
|
13
|
+
<span class="icon-vm small-margin vsphere-icon-vm"></span>
|
|
14
14
|
</div>
|
|
15
15
|
|
|
16
16
|
<span v-if="props.data.length === 1" class="selected-per-disk__text">{{
|
|
@@ -31,15 +31,13 @@
|
|
|
31
31
|
dropdown-right
|
|
32
32
|
dropdown-bottom
|
|
33
33
|
>
|
|
34
|
-
<div
|
|
35
|
-
v-for="(item, key) in props.data"
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
{{ item }}
|
|
42
|
-
</span>
|
|
34
|
+
<div class="flex flex-col row-gap-2 mt-5">
|
|
35
|
+
<div v-for="(item, key) in props.data" :key="key" class="flex">
|
|
36
|
+
<span class="icon-vm vsphere-icon-vm"></span>
|
|
37
|
+
<span class="selected-per-disk__text">
|
|
38
|
+
{{ item }}
|
|
39
|
+
</span>
|
|
40
|
+
</div>
|
|
43
41
|
</div>
|
|
44
42
|
</common-tooltip-help>
|
|
45
43
|
</div>
|
|
@@ -75,12 +73,19 @@ const onGoBack = (): void => {
|
|
|
75
73
|
color: var(--btn-primary-fill-bg-color);
|
|
76
74
|
margin-right: 8px;
|
|
77
75
|
cursor: pointer;
|
|
76
|
+
&:hover {
|
|
77
|
+
color: var(--btn-primary-fill-hover-bg-color);
|
|
78
|
+
}
|
|
78
79
|
}
|
|
79
80
|
&-vm {
|
|
80
81
|
display: block;
|
|
82
|
+
min-width: 20px;
|
|
81
83
|
width: 20px;
|
|
82
84
|
height: 20px;
|
|
83
85
|
margin-right: 8px;
|
|
86
|
+
&.small-margin {
|
|
87
|
+
margin-right: 4px;
|
|
88
|
+
}
|
|
84
89
|
}
|
|
85
90
|
}
|
|
86
91
|
|
|
@@ -89,6 +94,8 @@ const onGoBack = (): void => {
|
|
|
89
94
|
color: var(--title-form-first-color);
|
|
90
95
|
font-weight: 400;
|
|
91
96
|
font-size: 13px;
|
|
97
|
+
line-height: 18px;
|
|
98
|
+
align-self: center;
|
|
92
99
|
}
|
|
93
100
|
&__all-objects {
|
|
94
101
|
@include flex($align: center);
|