bfg-common 1.6.47 → 1.6.49
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 +9 -255
- package/assets/localization/local_en.json +17 -264
- package/assets/localization/local_hy.json +11 -257
- package/assets/localization/local_kk.json +9 -255
- package/assets/localization/local_ru.json +18 -264
- package/assets/localization/local_zh.json +9 -255
- package/assets/scss/common/global.scss +0 -11
- package/assets/scss/common/theme.scss +2 -2
- package/components/atoms/stack/StackBlock.vue +1 -1
- package/components/atoms/tooltip/TooltipError.vue +0 -3
- package/components/common/adapterManager/addAdapterModal/AddAdapterModalNew.vue +1 -1
- package/components/common/adapterManager/addAdapterWarningModal/AddAdapterWarningModalNew.vue +1 -0
- package/components/common/adapterManager/ui/table/adapters/AdaptersNew.vue +0 -1
- package/components/common/certificate/CertificateInfo.vue +1 -7
- package/components/common/configure/physicalAdapters/PhysicalAdapters.vue +0 -6
- package/components/common/configure/physicalAdapters/PhysicalAdaptersNew.vue +192 -219
- package/components/common/configure/physicalAdapters/PhysicalAdaptersOld.vue +4 -6
- package/components/common/configure/physicalAdapters/buttons/Buttons.vue +0 -1
- package/components/common/configure/physicalAdapters/modals/edit/Edit.vue +1 -26
- package/components/common/configure/physicalAdapters/modals/edit/EditNew.vue +1 -30
- package/components/common/configure/physicalAdapters/modals/edit/lib/models/interfaces.ts +0 -5
- package/components/common/configure/physicalAdapters/tableView/TableViewNew.vue +1 -12
- package/components/common/configure/physicalAdapters/tableView/lib/config/physicalAdaptersTableConfigNew.ts +21 -21
- package/components/common/configure/physicalAdapters/tableView/lib/config/settings.ts +5 -12
- package/components/common/configure/physicalAdapters/tableView/lib/models/interfaces.ts +1 -4
- package/components/common/diagramMain/Diagram.vue +85 -167
- package/components/common/diagramMain/DiagramMain.vue +10 -34
- package/components/common/diagramMain/{header/HeaderOld.vue → Header.vue} +67 -78
- package/components/common/diagramMain/modals/Modals.vue +0 -4
- package/components/common/diagramMain/modals/editSettings/tabs/NetworkProperties.vue +2 -2
- package/components/common/diagramMain/modals/lib/config/diagramConfig.ts +2 -43
- package/components/common/diagramMain/modals/lib/config/index.ts +1 -2
- 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/layout/theHeader/ThemeSwitch.vue +1 -1
- package/components/common/layout/theHeader/modals/reconnect/New.vue +30 -38
- package/components/common/layout/theHeader/userMenu/modals/changePassword/New.vue +9 -8
- package/components/common/layout/theHeader/userMenu/modals/preferences/New.vue +0 -4
- package/components/common/layout/theHeader/userMenu/modals/preferences/Old.vue +2 -9
- package/components/common/layout/theHeader/userMenu/modals/preferences/changeLanguage/ChangeLanguage.vue +7 -11
- package/components/common/layout/theHeader/userMenu/modals/preferences/defaultConsole/DefaultConsole.vue +1 -7
- package/components/common/layout/theHeader/userMenu/modals/preferences/defaultConsole/lib/config/consoleOptions.ts +5 -8
- package/components/common/layout/theHeader/userMenu/modals/preferences/timeFormat/TimeFormat.vue +5 -9
- 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 +9 -5
- package/components/common/layout/theHeader/userMenu/modals/preferences/view/View.vue +6 -9
- package/components/common/mainNavigationPanel/MainNavigationPanelNew.vue +1 -3
- 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/HardwareHealthNew.vue +1 -1
- package/components/common/pages/hardwareHealth/historyTestimony/GraphNew.vue +1 -1
- package/components/common/pages/hardwareHealth/historyTestimony/tools/chartOptionsModal/actions/ActionsNew.vue +1 -1
- package/components/common/pages/scheduledTasks/table/lib/models/enums.ts +0 -9
- package/components/common/pages/scheduledTasks/table/new/New.vue +10 -12
- package/components/common/pages/tasks/Tasks.vue +1 -4
- package/components/common/pages/tasks/table/Table.vue +23 -25
- package/components/common/readyToComplete/New.vue +0 -1
- package/components/common/split/vertical/New.vue +8 -42
- package/components/common/split/vertical/Old.vue +2 -31
- package/components/common/split/vertical/Vertical.vue +0 -4
- package/components/common/vm/actions/add/New.vue +6 -21
- package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/Media.vue +1 -14
- package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/New.vue +0 -5
- package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/Old.vue +0 -1
- package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/New.vue +0 -1
- package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/NewHardDisk.vue +2 -1
- package/components/common/vm/actions/common/customizeHardware/virtualHardware/reservation/New.vue +0 -2
- package/components/common/vm/actions/common/select/storage/new/lib/config/table.ts +15 -13
- package/components/common/vm/actions/confirm/Confirm.vue +0 -3
- package/components/common/vm/snapshots/DetailView.vue +6 -6
- package/components/common/wizards/datastore/add/New.vue +0 -6
- 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 +2 -13
- package/components/common/wizards/network/add/AddNew.vue +26 -22
- package/components/common/wizards/network/add/lib/config/initialData.ts +4 -6
- package/components/common/wizards/network/add/lib/config/steps.ts +1 -1
- package/components/common/wizards/network/add/lib/models/interfaces.ts +0 -1
- package/components/common/wizards/network/add/lib/utils/utils.ts +1 -1
- package/components/common/wizards/network/add/steps/connectionSettings/ConnectionSettingsOld.vue +1 -5
- package/components/common/wizards/network/add/steps/ipFourSettings/IpFourSettingsNew.vue +8 -2
- package/components/common/wizards/network/add/steps/ipFourSettings/IpFourSettingsOld.vue +0 -3
- package/components/common/wizards/network/add/steps/portProperties/PortPropertiesNew.vue +8 -2
- package/components/common/wizards/network/add/steps/portProperties/PortPropertiesOld.vue +2 -6
- package/components/common/wizards/network/add/steps/selectTargetDevice/SelectTargetDeviceNew.vue +3 -10
- package/components/common/wizards/network/add/steps/selectTargetDevice/SelectTargetDeviceOld.vue +0 -4
- package/components/common/wizards/network/add/steps/selectTargetDevice/modals/new/SelectNetwork.vue +1 -5
- package/components/common/wizards/network/add/validations/common.ts +1 -1
- package/components/common/wizards/vm/migrate/New.vue +3 -13
- package/components/common/wizards/vm/migrate/lib/config/constructDataReady.ts +0 -5
- package/components/common/wizards/vm/migrate/lib/config/steps.ts +2 -3
- package/components/common/wizards/vm/migrate/steps/computeResource/New.vue +1 -2
- package/components/common/wizards/vm/migrate/steps/computeResource/tableView/new/New.vue +21 -40
- package/components/common/wizards/vm/migrate/steps/computeResource/tableView/new/lib/config/hostTable.ts +14 -44
- package/components/common/wizards/vm/migrate/steps/computeResource/tableView/new/lib/models/enums.ts +0 -4
- package/components/common/wizards/vm/migrate/steps/priority/New.vue +2 -7
- package/components/common/wizards/vm/migrate/steps/selectStorage/New.vue +7 -22
- package/components/common/wizards/vm/migrate/steps/selectStorage/configure/batch/New.vue +0 -6
- package/components/common/wizards/vm/migrate/steps/selectStorage/configure/batch/table/new/New.vue +1 -4
- package/components/common/wizards/vm/migrate/steps/selectStorage/configure/batch/table/new/lib/config/datastoreTable.ts +16 -12
- package/components/common/wizards/vm/migrate/steps/selectStorage/configure/disk/table/new/New.vue +5 -10
- package/components/common/wizards/vm/migrate/steps/selectStorage/configure/disk/table/new/lib/config/diskTable.ts +11 -16
- package/components/common/wizards/vm/migrate/steps/selectStorage/configure/disk/table/old/lib/config/diskTable.ts +1 -7
- package/components/common/wizards/vm/migrate/steps/selectStorage/selectedPerDisk/New.vue +10 -17
- package/components/common/wizards/vm/migrate/steps/type/TypeNew.vue +0 -1
- package/components/common/wizards/vm/migrate/vmOrigin/New.vue +15 -35
- package/lib/models/store/tasks/enums.ts +0 -3
- package/lib/models/store/tasks/types.ts +6 -7
- package/package.json +2 -2
- package/plugins/directives.ts +5 -3
- package/public/spice-console/application/agent.js +17 -18
- package/store/tasks/actions.ts +8 -26
- package/store/tasks/mappers/recentTasks.ts +0 -1
- package/components/common/configure/physicalAdapters/modals/edit/lib/validations/validations.ts +0 -19
- package/components/common/diagramMain/header/Header.vue +0 -49
- package/components/common/diagramMain/header/HeaderNew.vue +0 -155
- package/components/common/diagramMain/skeleton/Header.vue +0 -31
- package/components/common/diagramMain/skeleton/Switch.vue +0 -75
- package/components/common/wizards/vm/migrate/steps/computeResource/tableView/new/lib/config/clusterTable.ts +0 -340
|
@@ -299,8 +299,14 @@ const portPropertiesEnabledServices = computed<
|
|
|
299
299
|
padding: 0 8px 0 12px;
|
|
300
300
|
}
|
|
301
301
|
:deep(.ui-checkbox-label) {
|
|
302
|
-
|
|
303
|
-
|
|
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;
|
|
304
310
|
}
|
|
305
311
|
}
|
|
306
312
|
</style>
|
|
@@ -22,7 +22,6 @@
|
|
|
22
22
|
<fieldset>
|
|
23
23
|
<atoms-tooltip-error
|
|
24
24
|
:has-error="!!props.messagesFields.network_name.field"
|
|
25
|
-
test-id="network-label-error"
|
|
26
25
|
>
|
|
27
26
|
<template #elem>
|
|
28
27
|
<input
|
|
@@ -78,7 +77,7 @@
|
|
|
78
77
|
class="is-error tooltip-trigger"
|
|
79
78
|
name="info"
|
|
80
79
|
/>
|
|
81
|
-
<div class="tooltip-top-left tooltip-content error"
|
|
80
|
+
<div class="tooltip-top-left tooltip-content error">
|
|
82
81
|
{{ props.messagesFields['new_network.vlan'].field }}
|
|
83
82
|
</div>
|
|
84
83
|
</div>
|
|
@@ -112,7 +111,6 @@
|
|
|
112
111
|
</div>
|
|
113
112
|
<atoms-tooltip-error
|
|
114
113
|
:has-error="!!props.messagesFields.mtu.field"
|
|
115
|
-
test-id="invalid-mtu-error"
|
|
116
114
|
>
|
|
117
115
|
<template #elem>
|
|
118
116
|
<input
|
|
@@ -241,9 +239,7 @@ const emits = defineEmits<{
|
|
|
241
239
|
}>()
|
|
242
240
|
|
|
243
241
|
const localization = computed<UI_I_Localization>(() => useLocal())
|
|
244
|
-
const vlanIdSelectDataLocal = computed<UI_I_Localization>(() =>
|
|
245
|
-
vlanIdSelectDataFunc(localization.value)
|
|
246
|
-
)
|
|
242
|
+
const vlanIdSelectDataLocal = computed<UI_I_Localization>(() => vlanIdSelectDataFunc(localization.value))
|
|
247
243
|
|
|
248
244
|
const fields = computed({
|
|
249
245
|
get(): UI_I_PortProperties {
|
package/components/common/wizards/network/add/steps/selectTargetDevice/SelectTargetDeviceNew.vue
CHANGED
|
@@ -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="
|
|
106
|
+
test-id="button-1"
|
|
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="
|
|
157
|
+
test-id="button-1"
|
|
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="
|
|
206
|
+
test-id="button-1"
|
|
207
207
|
type="primary"
|
|
208
208
|
variant="text"
|
|
209
209
|
size="lg"
|
|
@@ -357,17 +357,10 @@ 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%;
|
|
364
360
|
|
|
365
361
|
span {
|
|
366
362
|
text-align: left;
|
|
367
363
|
color: var(--select-text);
|
|
368
|
-
overflow: hidden;
|
|
369
|
-
text-overflow: ellipsis;
|
|
370
|
-
white-space: nowrap;
|
|
371
364
|
}
|
|
372
365
|
|
|
373
366
|
&:hover {
|
package/components/common/wizards/network/add/steps/selectTargetDevice/SelectTargetDeviceOld.vue
CHANGED
|
@@ -34,7 +34,6 @@
|
|
|
34
34
|
fieldsLocal.selected === '0' &&
|
|
35
35
|
!!props.messagesFields.network.field
|
|
36
36
|
"
|
|
37
|
-
test-id="existing-network-error"
|
|
38
37
|
>
|
|
39
38
|
<template #elem>
|
|
40
39
|
<fieldset class="fieldset-block">
|
|
@@ -98,7 +97,6 @@
|
|
|
98
97
|
fieldsLocal.selected === '1' &&
|
|
99
98
|
!!props.messagesFields.switch.field
|
|
100
99
|
"
|
|
101
|
-
test-id="existing-standard-switch-error"
|
|
102
100
|
>
|
|
103
101
|
<template #elem>
|
|
104
102
|
<fieldset class="fieldset-block">
|
|
@@ -162,7 +160,6 @@
|
|
|
162
160
|
fieldsLocal.selected === '2' &&
|
|
163
161
|
!!props.messagesFields.switch2.field
|
|
164
162
|
"
|
|
165
|
-
test-id="standard-switch-error"
|
|
166
163
|
>
|
|
167
164
|
<template #elem>
|
|
168
165
|
<fieldset class="fieldset-block">
|
|
@@ -232,7 +229,6 @@
|
|
|
232
229
|
:has-error="
|
|
233
230
|
!!props.messagesFields['new_switch.mtu'].field
|
|
234
231
|
"
|
|
235
|
-
test-id="invalid-mtu-error"
|
|
236
232
|
>
|
|
237
233
|
<template #elem>
|
|
238
234
|
<input
|
package/components/common/wizards/network/add/steps/selectTargetDevice/modals/new/SelectNetwork.vue
CHANGED
|
@@ -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,10 +147,6 @@ 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
|
-
}
|
|
154
150
|
}
|
|
155
151
|
|
|
156
152
|
.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.
|
|
24
|
+
vlanId !== `${localization.common.none} (0)` &&
|
|
25
25
|
vlanId !== `${localization.common.all} (4095)` &&
|
|
26
26
|
(isIntegerNumberInRange(vlanId, 0, 4095) || vlanId.trim() === '')
|
|
27
27
|
|
|
@@ -187,13 +187,8 @@
|
|
|
187
187
|
>
|
|
188
188
|
<template #subTitle>
|
|
189
189
|
<div ref="subTitleBlock6">
|
|
190
|
-
<div class="subtitle-block
|
|
190
|
+
<div class="subtitle-block">
|
|
191
191
|
<ui-wizard-subtitle :sub-title="selectedStep.subTitle" />
|
|
192
|
-
|
|
193
|
-
<common-wizards-vm-migrate-vm-origin
|
|
194
|
-
v-if="props.vmOrigin"
|
|
195
|
-
:vm-origin="props.vmOrigin"
|
|
196
|
-
/>
|
|
197
192
|
</div>
|
|
198
193
|
</div>
|
|
199
194
|
</template>
|
|
@@ -212,13 +207,8 @@
|
|
|
212
207
|
>
|
|
213
208
|
<template #subTitle>
|
|
214
209
|
<div ref="subTitleBlock7">
|
|
215
|
-
<div class="subtitle-block
|
|
210
|
+
<div class="subtitle-block">
|
|
216
211
|
<ui-wizard-subtitle :sub-title="selectedStep.subTitle" />
|
|
217
|
-
|
|
218
|
-
<common-wizards-vm-migrate-vm-origin
|
|
219
|
-
v-if="props.vmOrigin"
|
|
220
|
-
:vm-origin="props.vmOrigin"
|
|
221
|
-
/>
|
|
222
212
|
</div>
|
|
223
213
|
</div>
|
|
224
214
|
</template>
|
|
@@ -303,7 +293,7 @@ const texts = computed<UI_I_WizardTexts>(() => ({
|
|
|
303
293
|
back: localization.value.common.backCap,
|
|
304
294
|
processing: localization.value.common.processing,
|
|
305
295
|
next: localization.value.common.next,
|
|
306
|
-
finish: localization.value.common.
|
|
296
|
+
finish: localization.value.common.create,
|
|
307
297
|
incompleteTitle: localization.value.common.incompleteProcess,
|
|
308
298
|
incompleteMessage: localization.value.common.incompleteProcessMessage,
|
|
309
299
|
incompleteCancel: localization.value.common.cancel,
|
|
@@ -26,7 +26,6 @@ const migrateOnlyStorageDataView = (
|
|
|
26
26
|
label: localization.common.storage,
|
|
27
27
|
value: storage?.name,
|
|
28
28
|
permissions: ['batch-configure'],
|
|
29
|
-
iconClassName: 'vsphere-icon-datastore',
|
|
30
29
|
},
|
|
31
30
|
{
|
|
32
31
|
label: localization.common.diskFormat,
|
|
@@ -125,7 +124,6 @@ const storageDetailsFunc = (
|
|
|
125
124
|
label: localization.common.virtualMachine,
|
|
126
125
|
value: name,
|
|
127
126
|
permissions: ['batch-configure', 'configure-disk'],
|
|
128
|
-
iconClassName: 'vsphere-icon-vm',
|
|
129
127
|
},
|
|
130
128
|
]
|
|
131
129
|
|
|
@@ -150,7 +148,6 @@ const storageDetailsFunc = (
|
|
|
150
148
|
label: localization.common[key],
|
|
151
149
|
value: value.name,
|
|
152
150
|
permissions: [],
|
|
153
|
-
iconClassName: `vsphere-icon-${key}`,
|
|
154
151
|
})
|
|
155
152
|
}
|
|
156
153
|
})
|
|
@@ -168,7 +165,6 @@ const storageDetailsFunc = (
|
|
|
168
165
|
label: localization.common.host,
|
|
169
166
|
value: '', //selectedComputeResource.selectedNode.name,
|
|
170
167
|
permissions: [],
|
|
171
|
-
iconClassName: 'vsphere-icon-host',
|
|
172
168
|
},
|
|
173
169
|
{
|
|
174
170
|
label: localization.migrateVm.migrationStrategy,
|
|
@@ -180,7 +176,6 @@ const storageDetailsFunc = (
|
|
|
180
176
|
label: localization.common.networks,
|
|
181
177
|
value: setSelectNetworkDataView(localization, form),
|
|
182
178
|
permissions: [],
|
|
183
|
-
iconClassName: 'vsphere-icon-network',
|
|
184
179
|
},
|
|
185
180
|
]
|
|
186
181
|
const storageResult = migrateOnlyStorageDataView(localization, form, name)
|
|
@@ -30,8 +30,7 @@ export const stepsFunc = (
|
|
|
30
30
|
{
|
|
31
31
|
id: dynamicSteps.selectMigrationType,
|
|
32
32
|
title: localization.common.selectMigrationType,
|
|
33
|
-
subTitle:
|
|
34
|
-
localization.migrateVm.changeComputeResourceStorageVirtualMachine,
|
|
33
|
+
subTitle: localization.migrateVm.changeComputeResourceStorageVirtualMachine,
|
|
35
34
|
status: UI_E_WIZARD_STATUS[!isScheduledTasks ? 'SELECTED' : 'INACTIVE'],
|
|
36
35
|
fields: {},
|
|
37
36
|
isValid: true,
|
|
@@ -100,7 +99,7 @@ export const stepsFunc = (
|
|
|
100
99
|
{
|
|
101
100
|
id: dynamicSteps.readyComplete,
|
|
102
101
|
title: localization.common.readyComplete,
|
|
103
|
-
subTitle:
|
|
102
|
+
subTitle: '',
|
|
104
103
|
status: UI_E_WIZARD_STATUS.INACTIVE,
|
|
105
104
|
fields: {},
|
|
106
105
|
isValid: true,
|
|
@@ -88,9 +88,8 @@ const onTabChange = (name: keyof UI_I_SelectedTableDataKeys): void => {
|
|
|
88
88
|
@import 'assets/scss/common/mixins';
|
|
89
89
|
.compute-resource {
|
|
90
90
|
@include flex($dir: column);
|
|
91
|
+
top: 16px;
|
|
91
92
|
height: inherit;
|
|
92
|
-
margin-top: 16px;
|
|
93
|
-
margin-bottom: 16px;
|
|
94
93
|
.tree-view-wrap {
|
|
95
94
|
max-height: 250px;
|
|
96
95
|
min-height: 200px;
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
<div class="device-table-container">
|
|
3
3
|
<ui-data-table
|
|
4
4
|
:data="data"
|
|
5
|
-
:options="
|
|
5
|
+
:options="options"
|
|
6
6
|
:loading="props.isLoading"
|
|
7
7
|
:total-pages="props.totalPages"
|
|
8
8
|
:total-items="props.totalItems"
|
|
@@ -52,8 +52,8 @@
|
|
|
52
52
|
>
|
|
53
53
|
<ui-icon
|
|
54
54
|
:name="item.data.icon"
|
|
55
|
-
width="
|
|
56
|
-
height="
|
|
55
|
+
width="14px"
|
|
56
|
+
height="14px"
|
|
57
57
|
class="chip-icon"
|
|
58
58
|
></ui-icon>
|
|
59
59
|
{{ item.text }}
|
|
@@ -79,10 +79,13 @@ 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/
|
|
82
|
+
import type { UI_T_SelectComputeResourceTabType } from '~/components/common/wizards/vm/migrate/select/storage/lib/models/types'
|
|
83
83
|
import type { UI_T_ComputeResourceTableItem } from '~/components/common/wizards/vm/migrate/steps/computeResource/lib/models/types'
|
|
84
|
-
import
|
|
85
|
-
|
|
84
|
+
import {
|
|
85
|
+
options,
|
|
86
|
+
getHeaderDataFunc,
|
|
87
|
+
getBodyDataFunc,
|
|
88
|
+
} from '~/components/common/wizards/vm/migrate/steps/computeResource/tableView/new/lib/config/hostTable'
|
|
86
89
|
|
|
87
90
|
const selectedDataLocal = defineModel<number | null>({ required: true })
|
|
88
91
|
const props = defineProps<{
|
|
@@ -117,33 +120,15 @@ const tableSkeleton = ref<UI_I_DataTableSkeleton>({
|
|
|
117
120
|
withoutPagination: true,
|
|
118
121
|
})
|
|
119
122
|
|
|
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
|
-
|
|
133
123
|
const data = computed<UI_I_DataTable>(() => ({
|
|
134
|
-
id:
|
|
135
|
-
title:
|
|
124
|
+
id: 'compute-resource-host-table',
|
|
125
|
+
title: `${localization.value.common.hosts} (${props.totalItems})`,
|
|
136
126
|
header: deviceHeadItems.value,
|
|
137
127
|
body: deviceBodyItems.value,
|
|
138
128
|
}))
|
|
139
|
-
|
|
140
|
-
() =>
|
|
141
|
-
`${tableTitleMap[props.type as keyof typeof tableConfigMap]} (${
|
|
142
|
-
props.totalItems
|
|
143
|
-
})`
|
|
144
|
-
)
|
|
129
|
+
|
|
145
130
|
const deviceHeadItems = computed<UI_I_DataTableHeader[]>(() =>
|
|
146
|
-
|
|
131
|
+
getHeaderDataFunc(localization.value)
|
|
147
132
|
)
|
|
148
133
|
|
|
149
134
|
const deviceBodyItems = ref<UI_I_DataTableBody[]>([])
|
|
@@ -155,22 +140,19 @@ watch(
|
|
|
155
140
|
return
|
|
156
141
|
}
|
|
157
142
|
|
|
158
|
-
deviceBodyItems.value =
|
|
159
|
-
newValue,
|
|
160
|
-
localization.value
|
|
161
|
-
)
|
|
143
|
+
deviceBodyItems.value = getBodyDataFunc(newValue, localization.value)
|
|
162
144
|
},
|
|
163
145
|
{ deep: true, immediate: true }
|
|
164
146
|
)
|
|
165
147
|
|
|
166
148
|
const onSelectRow = (value: UI_I_DataTableBody[]): void => {
|
|
167
|
-
selectedDataLocal.value = value?.[0].row
|
|
149
|
+
selectedDataLocal.value = value?.[0].row
|
|
168
150
|
}
|
|
169
151
|
</script>
|
|
170
152
|
|
|
171
153
|
<style lang="scss" scoped>
|
|
172
154
|
.device-table-container {
|
|
173
|
-
margin:
|
|
155
|
+
margin: 20px 0 24px;
|
|
174
156
|
:deep(.column-manager-button.sm span) {
|
|
175
157
|
font-weight: 500;
|
|
176
158
|
}
|
|
@@ -187,15 +169,15 @@ const onSelectRow = (value: UI_I_DataTableBody[]): void => {
|
|
|
187
169
|
}
|
|
188
170
|
.progress {
|
|
189
171
|
&-line {
|
|
190
|
-
height:
|
|
172
|
+
height: 12px;
|
|
191
173
|
width: 100%;
|
|
192
|
-
background:
|
|
174
|
+
background: #e9ebed8f;
|
|
193
175
|
border-radius: 6px;
|
|
194
176
|
|
|
195
177
|
&-fill {
|
|
196
|
-
height:
|
|
197
|
-
min-width:
|
|
198
|
-
background:
|
|
178
|
+
height: 12px;
|
|
179
|
+
min-width: 12px;
|
|
180
|
+
background: #008fd6;
|
|
199
181
|
border-radius: 6px;
|
|
200
182
|
}
|
|
201
183
|
}
|
|
@@ -203,7 +185,6 @@ const onSelectRow = (value: UI_I_DataTableBody[]): void => {
|
|
|
203
185
|
&-text {
|
|
204
186
|
width: 53px;
|
|
205
187
|
min-width: 53px;
|
|
206
|
-
font-size: 12px;
|
|
207
188
|
margin-left: 8px;
|
|
208
189
|
text-align: right;
|
|
209
190
|
|
|
@@ -9,7 +9,6 @@ import {
|
|
|
9
9
|
UI_E_DeviceStatus,
|
|
10
10
|
UI_E_DeviceStatusChipColor,
|
|
11
11
|
UI_E_DeviceStatusIcon,
|
|
12
|
-
UI_E_HostAlarmStatus,
|
|
13
12
|
} from '~/components/common/wizards/vm/migrate/steps/computeResource/tableView/new/lib/models/enums'
|
|
14
13
|
import {
|
|
15
14
|
hostIconByState,
|
|
@@ -32,18 +31,6 @@ const STATUS_MAPPING = {
|
|
|
32
31
|
},
|
|
33
32
|
}
|
|
34
33
|
|
|
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
|
-
|
|
47
34
|
export const getHeaderDataFunc = (
|
|
48
35
|
localization: UI_I_Localization
|
|
49
36
|
): UI_I_DataTableHeader[] => [
|
|
@@ -63,7 +50,7 @@ export const getHeaderDataFunc = (
|
|
|
63
50
|
text: localization.inventorySummary.state,
|
|
64
51
|
isSortable: true,
|
|
65
52
|
sort: 'asc',
|
|
66
|
-
width: '
|
|
53
|
+
width: '96px',
|
|
67
54
|
show: true,
|
|
68
55
|
filter: false,
|
|
69
56
|
},
|
|
@@ -73,7 +60,7 @@ export const getHeaderDataFunc = (
|
|
|
73
60
|
text: localization.common.cluster,
|
|
74
61
|
isSortable: true,
|
|
75
62
|
sort: 'asc',
|
|
76
|
-
width: '
|
|
63
|
+
width: '96px',
|
|
77
64
|
show: true,
|
|
78
65
|
filter: false,
|
|
79
66
|
},
|
|
@@ -83,7 +70,7 @@ export const getHeaderDataFunc = (
|
|
|
83
70
|
text: localization.common.faultDomain,
|
|
84
71
|
isSortable: true,
|
|
85
72
|
sort: 'asc',
|
|
86
|
-
width: '
|
|
73
|
+
width: '96px',
|
|
87
74
|
show: true,
|
|
88
75
|
filter: false,
|
|
89
76
|
},
|
|
@@ -93,7 +80,7 @@ export const getHeaderDataFunc = (
|
|
|
93
80
|
text: `${localization.common.consumedCpu} %`,
|
|
94
81
|
isSortable: true,
|
|
95
82
|
sort: 'asc',
|
|
96
|
-
width: '
|
|
83
|
+
width: '96px',
|
|
97
84
|
show: true,
|
|
98
85
|
filter: false,
|
|
99
86
|
},
|
|
@@ -103,7 +90,7 @@ export const getHeaderDataFunc = (
|
|
|
103
90
|
text: `${localization.common.consumedMemory} %`,
|
|
104
91
|
isSortable: true,
|
|
105
92
|
sort: 'asc',
|
|
106
|
-
width: '
|
|
93
|
+
width: '96px',
|
|
107
94
|
show: true,
|
|
108
95
|
filter: false,
|
|
109
96
|
},
|
|
@@ -123,7 +110,7 @@ export const getHeaderDataFunc = (
|
|
|
123
110
|
text: localization.inventorySummary.uptime,
|
|
124
111
|
isSortable: true,
|
|
125
112
|
sort: 'asc',
|
|
126
|
-
width: '
|
|
113
|
+
width: '96px',
|
|
127
114
|
show: true,
|
|
128
115
|
filter: false,
|
|
129
116
|
},
|
|
@@ -133,7 +120,7 @@ export const getHeaderDataFunc = (
|
|
|
133
120
|
text: localization.common.certificateValidTo,
|
|
134
121
|
isSortable: true,
|
|
135
122
|
sort: 'asc',
|
|
136
|
-
width: '
|
|
123
|
+
width: '96px',
|
|
137
124
|
show: true,
|
|
138
125
|
filter: false,
|
|
139
126
|
},
|
|
@@ -143,7 +130,7 @@ export const getHeaderDataFunc = (
|
|
|
143
130
|
text: `${localization.common.memorySize} (${localization.common.mb})`,
|
|
144
131
|
isSortable: true,
|
|
145
132
|
sort: 'asc',
|
|
146
|
-
width: '
|
|
133
|
+
width: '96px',
|
|
147
134
|
show: true,
|
|
148
135
|
filter: false,
|
|
149
136
|
},
|
|
@@ -173,7 +160,7 @@ export const getHeaderDataFunc = (
|
|
|
173
160
|
text: localization.common.version,
|
|
174
161
|
isSortable: true,
|
|
175
162
|
sort: 'asc',
|
|
176
|
-
width: '
|
|
163
|
+
width: '96px',
|
|
177
164
|
show: true,
|
|
178
165
|
filter: false,
|
|
179
166
|
},
|
|
@@ -183,7 +170,7 @@ export const getHeaderDataFunc = (
|
|
|
183
170
|
text: localization.common.alarmActions,
|
|
184
171
|
isSortable: true,
|
|
185
172
|
sort: 'asc',
|
|
186
|
-
width: '
|
|
173
|
+
width: '96px',
|
|
187
174
|
show: true,
|
|
188
175
|
filter: false,
|
|
189
176
|
},
|
|
@@ -224,21 +211,6 @@ export const getBodyDataFunc = (
|
|
|
224
211
|
testId: `${host.name}-${index}-status`,
|
|
225
212
|
}
|
|
226
213
|
|
|
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
|
-
|
|
242
214
|
return {
|
|
243
215
|
row: index,
|
|
244
216
|
collapse: false,
|
|
@@ -250,9 +222,7 @@ export const getBodyDataFunc = (
|
|
|
250
222
|
key: 'icon',
|
|
251
223
|
col: 'col0',
|
|
252
224
|
text: host.name,
|
|
253
|
-
data: {
|
|
254
|
-
iconClassName: `vsphere-icon-${hostIconByState[host.state]}`,
|
|
255
|
-
},
|
|
225
|
+
data: `vsphere-icon-${hostIconByState[host.state]}`,
|
|
256
226
|
testId: `migrate-host-table-item-${index}`,
|
|
257
227
|
},
|
|
258
228
|
|
|
@@ -299,7 +269,7 @@ export const getBodyDataFunc = (
|
|
|
299
269
|
},
|
|
300
270
|
{
|
|
301
271
|
col: 'col8',
|
|
302
|
-
text: host.cert_valid_to
|
|
272
|
+
text: host.cert_valid_to,
|
|
303
273
|
testId: `migrate-host-table-item-${index}`,
|
|
304
274
|
},
|
|
305
275
|
|
|
@@ -328,8 +298,8 @@ export const getBodyDataFunc = (
|
|
|
328
298
|
{
|
|
329
299
|
key: 'status',
|
|
330
300
|
col: 'col13',
|
|
331
|
-
text:
|
|
332
|
-
data:
|
|
301
|
+
text: host.alarm_action,
|
|
302
|
+
data: statusData,
|
|
333
303
|
testId: `migrate-host-table-item-${index}`,
|
|
334
304
|
},
|
|
335
305
|
],
|
|
@@ -38,7 +38,7 @@ const props = defineProps<{
|
|
|
38
38
|
.migration-strategy {
|
|
39
39
|
container-type: inline-size;
|
|
40
40
|
margin-top: 16px;
|
|
41
|
-
|
|
41
|
+
|
|
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) {
|
|
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,11 +76,6 @@ 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
|
-
}
|
|
84
79
|
}
|
|
85
80
|
}
|
|
86
81
|
|
|
@@ -27,14 +27,13 @@
|
|
|
27
27
|
:is-hide-select-disk-format="props.isHideSelectDiskFormat"
|
|
28
28
|
>
|
|
29
29
|
<template v-if="isShowSelectedPerDisks" #buttonConfirm>
|
|
30
|
-
<
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
size="sm"
|
|
30
|
+
<button
|
|
31
|
+
class="btn btn-sm btn-primary"
|
|
32
|
+
data-id="apply-selected-per-disks-button"
|
|
34
33
|
@click="onApplyChanges"
|
|
35
34
|
>
|
|
36
35
|
{{ localization.common.confirm }}
|
|
37
|
-
</
|
|
36
|
+
</button>
|
|
38
37
|
</template>
|
|
39
38
|
</common-wizards-vm-migrate-steps-select-storage-configure-batch>
|
|
40
39
|
|
|
@@ -48,8 +47,9 @@
|
|
|
48
47
|
/>
|
|
49
48
|
|
|
50
49
|
<common-wizards-common-compatibility
|
|
51
|
-
:
|
|
52
|
-
:text="
|
|
50
|
+
:loading="!model.storage"
|
|
51
|
+
:text="localization.common.compatibilityChecksSucceeded"
|
|
52
|
+
status="success"
|
|
53
53
|
/>
|
|
54
54
|
</div>
|
|
55
55
|
</template>
|
|
@@ -62,7 +62,6 @@ 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'
|
|
66
65
|
|
|
67
66
|
const model = defineModel<UI_I_MigrateFormLocal>({ required: true })
|
|
68
67
|
const selectedPerDiskKeys = defineModel<number[]>('selectedDiskKeys', {
|
|
@@ -112,19 +111,6 @@ const onChangePerDiskStorage = (
|
|
|
112
111
|
const onApplyChanges = (): void => {
|
|
113
112
|
emits('confirm-changes')
|
|
114
113
|
}
|
|
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
|
-
})
|
|
128
114
|
</script>
|
|
129
115
|
|
|
130
116
|
<style lang="scss" scoped>
|
|
@@ -132,6 +118,5 @@ const compatibilityText = computed<[UI_T_CompatibilityStatus, string]>(() => {
|
|
|
132
118
|
.select-storage {
|
|
133
119
|
@include flex($dir: column);
|
|
134
120
|
margin-top: 16px;
|
|
135
|
-
padding-bottom: 16px;
|
|
136
121
|
}
|
|
137
122
|
</style>
|