bfg-common 1.6.6 → 1.6.7
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 +2 -1
- package/assets/localization/local_en.json +2 -1
- package/assets/localization/local_hy.json +2 -1
- package/assets/localization/local_kk.json +2 -1
- package/assets/localization/local_ru.json +2 -1
- package/assets/localization/local_zh.json +2 -1
- package/components/common/layout/theHeader/ThemeSwitch.vue +1 -1
- package/components/common/mainNavigationPanel/MainNavigationPanelNew.vue +1 -3
- package/components/common/monitor/lib/utils/local_be.json +1 -3
- package/components/common/monitor/lib/utils/local_en.json +1 -3
- package/components/common/monitor/lib/utils/local_hy.json +1 -3
- package/components/common/monitor/lib/utils/local_kk.json +1 -3
- package/components/common/monitor/lib/utils/local_ru.json +1 -3
- package/components/common/monitor/lib/utils/local_zh.json +1 -3
- package/components/common/monitor/utilization/infoBlock/Old.vue +1 -1
- package/components/common/pages/scheduledTasks/table/new/New.vue +10 -12
- package/components/common/pages/tasks/table/Table.vue +22 -24
- package/components/common/vm/actions/consolidate/New.vue +1 -1
- package/components/common/vm/actions/consolidate/Old.vue +2 -2
- package/components/common/vm/actions/rename/New.vue +11 -1
- package/components/common/vm/actions/rename/Rename.vue +6 -0
- package/components/common/vm/snapshots/lib/models/types.ts +1 -0
- package/components/common/vm/snapshots/modals/confirm/New.vue +2 -1
- package/components/common/vm/snapshots/modals/confirm/Old.vue +1 -1
- package/components/common/vm/snapshots/modals/confirm/lib/models/enums.ts +2 -0
- package/components/common/vm/snapshots/modals/lib/config/modalTexts.ts +1 -0
- package/components/common/wizards/vm/migrate/steps/computeResource/tableView/new/New.vue +13 -31
- package/components/common/wizards/vm/migrate/steps/computeResource/tableView/new/lib/config/hostTable.ts +1 -3
- package/package.json +1 -1
- package/components/common/wizards/vm/migrate/steps/computeResource/tableView/new/lib/config/clusterTable.ts +0 -340
|
@@ -3492,7 +3492,8 @@
|
|
|
3492
3492
|
"takeSnapshot": "Зрабіце здымак",
|
|
3493
3493
|
"newSnapshot": "Новы здымак",
|
|
3494
3494
|
"editSnapshot": "Рэдагаваць здымак",
|
|
3495
|
-
"revertLatestSnapshot": "Вярнуцца да апошняга здымка"
|
|
3495
|
+
"revertLatestSnapshot": "Вярнуцца да апошняга здымка",
|
|
3496
|
+
"consolidateSnapshots": "Кансолідаваць здымкі"
|
|
3496
3497
|
},
|
|
3497
3498
|
"importVms": {
|
|
3498
3499
|
"selectSourceTooltipDesc": "Правы карыстальніка esxi павінны адпавядаць ролях Administrator, крэдыт прымаюцца ад esxi і vSphere",
|
|
@@ -3496,7 +3496,8 @@
|
|
|
3496
3496
|
"takeSnapshot": "Take Snapshot",
|
|
3497
3497
|
"newSnapshot": "New Snapshot",
|
|
3498
3498
|
"editSnapshot": "Edit snapshot",
|
|
3499
|
-
"revertLatestSnapshot": "Revert to Latest Snapshot"
|
|
3499
|
+
"revertLatestSnapshot": "Revert to Latest Snapshot",
|
|
3500
|
+
"consolidateSnapshots": "Consolidate Snapshots"
|
|
3500
3501
|
},
|
|
3501
3502
|
"importVms": {
|
|
3502
3503
|
"selectSourceTooltipDesc": "No Trusted infrastructure Administrator, credits are accepted from esxi and vSphere",
|
|
@@ -3496,7 +3496,8 @@
|
|
|
3496
3496
|
"takeSnapshot": "Ակնթարթ նկար",
|
|
3497
3497
|
"newSnapshot": "Նոր սքրինշոթ",
|
|
3498
3498
|
"editSnapshot": "Խմբագրել սքրինշոթը",
|
|
3499
|
-
"revertLatestSnapshot": "Վերադառնալ վերջին նկարին"
|
|
3499
|
+
"revertLatestSnapshot": "Վերադառնալ վերջին նկարին",
|
|
3500
|
+
"consolidateSnapshots": "Միավորել լուսանկարները"
|
|
3500
3501
|
},
|
|
3501
3502
|
"importVms": {
|
|
3502
3503
|
"selectSourceTooltipDesc": "Esxi օգտագործողի իրավունքները պետք է համապատասխանեն Administrator-ի դերերին, կրեդիտներն ընդունվում են esxi-ից և vSphere-ից",
|
|
@@ -3495,7 +3495,8 @@
|
|
|
3495
3495
|
"takeSnapshot": "сурет",
|
|
3496
3496
|
"newSnapshot": "Жаңа снимок",
|
|
3497
3497
|
"editSnapshot": "Снимокты өңдеу",
|
|
3498
|
-
"revertLatestSnapshot": "Варнузза және түтіннің тұманы"
|
|
3498
|
+
"revertLatestSnapshot": "Варнузза және түтіннің тұманы",
|
|
3499
|
+
"consolidateSnapshots": "Суреттерді біріктіру"
|
|
3499
3500
|
},
|
|
3500
3501
|
"importVms": {
|
|
3501
3502
|
"selectSourceTooltipDesc": "Esxi пайдаланушы құқықтары әкімші рөлдеріне сәйкес келуі керек, несиелер esxi және vSphere - ден алынады",
|
|
@@ -3495,7 +3495,8 @@
|
|
|
3495
3495
|
"takeSnapshot": "Сделать снимок",
|
|
3496
3496
|
"newSnapshot": "Новый снимок",
|
|
3497
3497
|
"editSnapshot": "Редактировать снимок",
|
|
3498
|
-
"revertLatestSnapshot": "Вернуться к последнему снимку"
|
|
3498
|
+
"revertLatestSnapshot": "Вернуться к последнему снимку",
|
|
3499
|
+
"consolidateSnapshots": "Консолидация снимков"
|
|
3499
3500
|
},
|
|
3500
3501
|
"importVms": {
|
|
3501
3502
|
"selectSourceTooltipDesc": "Права пользователя vmware дожны соответствовать ролям Administrator, креды принимаются от esxi и vSphere",
|
|
@@ -3493,7 +3493,8 @@
|
|
|
3493
3493
|
"takeSnapshot": "快照",
|
|
3494
3494
|
"newSnapshot": "新快照",
|
|
3495
3495
|
"editSnapshot": "编辑快照",
|
|
3496
|
-
"revertLatestSnapshot": "回到上一张照片"
|
|
3496
|
+
"revertLatestSnapshot": "回到上一张照片",
|
|
3497
|
+
"consolidateSnapshots": "合并快照"
|
|
3497
3498
|
},
|
|
3498
3499
|
"importVms": {
|
|
3499
3500
|
"selectSourceTooltipDesc": "Esxi用户权限必须对应于管理员角色. esxi和vSphere接受积分",
|
|
@@ -143,7 +143,7 @@ const localization = computed<UI_I_Localization>(() => useLocal())
|
|
|
143
143
|
&.pinned {
|
|
144
144
|
.nav-context {
|
|
145
145
|
position: relative;
|
|
146
|
-
z-index: calc(var(--z-
|
|
146
|
+
z-index: calc(var(--z-default) + 1);
|
|
147
147
|
}
|
|
148
148
|
}
|
|
149
149
|
&:not(.pinned) {
|
|
@@ -177,8 +177,6 @@ const localization = computed<UI_I_Localization>(() => useLocal())
|
|
|
177
177
|
}
|
|
178
178
|
}
|
|
179
179
|
&:not(.collapsed) {
|
|
180
|
-
min-width: 240px;
|
|
181
|
-
|
|
182
180
|
:deep(.tooltip-container-hover) {
|
|
183
181
|
display: none;
|
|
184
182
|
}
|
|
@@ -684,7 +684,5 @@
|
|
|
684
684
|
"multicastTx": "Перададзеныя multicast",
|
|
685
685
|
"multicastTxDesc": "Колькасць перададзеных multicast пакетаў",
|
|
686
686
|
"multicastRx": "Атрыманыя multicast",
|
|
687
|
-
"multicastRxDesc": "Колькасць атрыманых multicast пакетаў"
|
|
688
|
-
"memSharedcommon": "Выкарыстанне агульнай памяці",
|
|
689
|
-
"memSharedcommonDesc": "Аб'ём памяці, якая падзяляецца паміж працэсамі (выкарыстанне агульнага сегмента агульнай памяці)"
|
|
687
|
+
"multicastRxDesc": "Колькасць атрыманых multicast пакетаў"
|
|
690
688
|
}
|
|
@@ -684,7 +684,5 @@
|
|
|
684
684
|
"multicastTx": "Multicast transmitted",
|
|
685
685
|
"multicastTxDesc": "Number of multicast packets transmitted",
|
|
686
686
|
"multicastRx": "Multicast received",
|
|
687
|
-
"multicastRxDesc": "Number of multicast packets received"
|
|
688
|
-
"memSharedcommon": "Shared Memory Usage",
|
|
689
|
-
"memSharedcommonDesc": "Amount of memory shared between processes (common shared memory segment usage)"
|
|
687
|
+
"multicastRxDesc": "Number of multicast packets received"
|
|
690
688
|
}
|
|
@@ -684,7 +684,5 @@
|
|
|
684
684
|
"multicastTx": "Փոխանցված multicast",
|
|
685
685
|
"multicastTxDesc": "Փոխանցված multicast փաթեթների քանակը",
|
|
686
686
|
"multicastRx": "Ստացված multicast",
|
|
687
|
-
"multicastRxDesc": "Ստացված multicast փաթեթների քանակը"
|
|
688
|
-
"memSharedcommon": "Համօգտագործվող հիշողության օգտագործում",
|
|
689
|
-
"memSharedcommonDesc": "Պրոցեսների միջև համօգտագործվող հիշողության ծավալը (ընդհանուր համօգտագործվող հիշողության սեգմենտի օգտագործում)"
|
|
687
|
+
"multicastRxDesc": "Ստացված multicast փաթեթների քանակը"
|
|
690
688
|
}
|
|
@@ -684,7 +684,5 @@
|
|
|
684
684
|
"multicastTx": "Жіберілген мультикаст",
|
|
685
685
|
"multicastTxDesc": "Жіберілген мультикаст пакеттерінің саны",
|
|
686
686
|
"multicastRx": "Қабылданған мультикаст",
|
|
687
|
-
"multicastRxDesc": "Қабылданған мультикаст пакеттерінің саны"
|
|
688
|
-
"memSharedcommon": "Ортақ жадты пайдалану",
|
|
689
|
-
"memSharedcommonDesc": "Процестер арасында бөлісетін жад көлемі (ортақ бөлісетін жад сегментін пайдалану)"
|
|
687
|
+
"multicastRxDesc": "Қабылданған мультикаст пакеттерінің саны"
|
|
690
688
|
}
|
|
@@ -684,7 +684,5 @@
|
|
|
684
684
|
"multicastTx": "Multicast отправлено",
|
|
685
685
|
"multicastTxDesc": "Количество отправленных групповых пакетов",
|
|
686
686
|
"multicastRx": "Multicast получено",
|
|
687
|
-
"multicastRxDesc": "Количество полученных групповых пакетов"
|
|
688
|
-
"memSharedcommon": "Использование разделяемой памяти",
|
|
689
|
-
"memSharedcommonDesc": "Объём памяти, совместно используемой процессами (общие сегменты разделяемой памяти)"
|
|
687
|
+
"multicastRxDesc": "Количество полученных групповых пакетов"
|
|
690
688
|
}
|
|
@@ -684,7 +684,5 @@
|
|
|
684
684
|
"multicastTx": "已发送组播",
|
|
685
685
|
"multicastTxDesc": "已发送的组播数据包数",
|
|
686
686
|
"multicastRx": "已接收组播",
|
|
687
|
-
"multicastRxDesc": "已接收的组播数据包数"
|
|
688
|
-
"memSharedcommon": "共享内存使用情况",
|
|
689
|
-
"memSharedcommonDesc": "进程之间共享的内存量(公共共享内存段使用情况)"
|
|
687
|
+
"multicastRxDesc": "已接收的组播数据包数"
|
|
690
688
|
}
|
|
@@ -82,18 +82,16 @@
|
|
|
82
82
|
<ui-icon name="vertical-dotes" width="20" height="20" />
|
|
83
83
|
</span>
|
|
84
84
|
</ui-button>
|
|
85
|
-
<
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
/>
|
|
96
|
-
</Teleport>
|
|
85
|
+
<ui-dropdown
|
|
86
|
+
:show="actionsShowId === item.data.id"
|
|
87
|
+
:test-id="`event-table-action-dropdown-${item.data.id}`"
|
|
88
|
+
:items="schedulerDropActions"
|
|
89
|
+
:elem-id="`event-table-action-${item.data.id}`"
|
|
90
|
+
width="max-content"
|
|
91
|
+
left
|
|
92
|
+
@select="onSelectAction"
|
|
93
|
+
@hide="onHideActionsDropdown"
|
|
94
|
+
/>
|
|
97
95
|
</div>
|
|
98
96
|
</template>
|
|
99
97
|
|
|
@@ -67,30 +67,28 @@
|
|
|
67
67
|
<ui-icon name="vertical-dotes" width="20" height="20" />
|
|
68
68
|
</span>
|
|
69
69
|
</ui-button>
|
|
70
|
-
<
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
>
|
|
81
|
-
<
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
</ui-dropdown>
|
|
93
|
-
</Teleport>
|
|
70
|
+
<ui-dropdown
|
|
71
|
+
:show="actionsShowId === item.data.id"
|
|
72
|
+
:test-id="`data-table-task-dropdown-${item.data.id}`"
|
|
73
|
+
:items="actions"
|
|
74
|
+
:elem-id="`data-table-task-action-${item.data.id}`"
|
|
75
|
+
width="max-content"
|
|
76
|
+
left
|
|
77
|
+
@select="onSelectAction(item.data.target, $event)"
|
|
78
|
+
@hide="onHideActionsDropdown"
|
|
79
|
+
>
|
|
80
|
+
<template #row="{ item: dropMenu }">
|
|
81
|
+
<ui-icon
|
|
82
|
+
v-if="dropMenu.iconName === 'hide'"
|
|
83
|
+
name="password-hide"
|
|
84
|
+
width="16"
|
|
85
|
+
height="16"
|
|
86
|
+
/>
|
|
87
|
+
<span class="action-text">
|
|
88
|
+
{{ dropMenu.text }}
|
|
89
|
+
</span>
|
|
90
|
+
</template>
|
|
91
|
+
</ui-dropdown>
|
|
94
92
|
</div>
|
|
95
93
|
</template>
|
|
96
94
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<common-modals-confirmation
|
|
3
|
-
:headline="localization.
|
|
3
|
+
:headline="localization.snapshots.consolidateSnapshots"
|
|
4
4
|
:description="localization.common.consolidateConfirmationDesc"
|
|
5
5
|
:modal-texts="modalTexts"
|
|
6
6
|
@hide-modal="emits('hide-modal')"
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<common-modals-confirmation
|
|
3
|
-
:headline="localization.
|
|
4
|
-
:description="localization.common.
|
|
3
|
+
:headline="localization.snapshots.consolidateSnapshots"
|
|
4
|
+
:description="localization.common.consolidateConfirmationDesc"
|
|
5
5
|
@hide-modal="emits('hide-modal')"
|
|
6
6
|
@confirm="emits('confirm')"
|
|
7
7
|
/>
|
|
@@ -11,12 +11,21 @@
|
|
|
11
11
|
@hide="emits('hide')"
|
|
12
12
|
>
|
|
13
13
|
<template #content>
|
|
14
|
+
<ui-alert
|
|
15
|
+
v-if="props.errors.length"
|
|
16
|
+
:messages="props.errors.length && !isEmptyName ? props.errors : []"
|
|
17
|
+
test-id="sign-in-error-alert"
|
|
18
|
+
type="error"
|
|
19
|
+
class="mb-2 mx-8"
|
|
20
|
+
size="md"
|
|
21
|
+
hide-close-button
|
|
22
|
+
/>
|
|
14
23
|
<div class="content">
|
|
15
24
|
<form @submit.prevent="onRename">
|
|
16
25
|
<ui-input
|
|
17
26
|
id="name"
|
|
18
27
|
v-model="nameLocal"
|
|
19
|
-
:error="props.
|
|
28
|
+
:error="props.isEmptyName ? localization.common.fieldRequired : ''"
|
|
20
29
|
:label="localization.common.name"
|
|
21
30
|
test-id="rename-vm-name-input"
|
|
22
31
|
type="text"
|
|
@@ -37,6 +46,7 @@ const props = defineProps<{
|
|
|
37
46
|
vmName: string
|
|
38
47
|
isLoading: boolean
|
|
39
48
|
errors: string[]
|
|
49
|
+
isEmptyName: boolean
|
|
40
50
|
}>()
|
|
41
51
|
const emits = defineEmits<{
|
|
42
52
|
(event: 'hide'): void
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
:vm-name="props.vmName"
|
|
5
5
|
:is-loading="isLoading"
|
|
6
6
|
:errors="errors"
|
|
7
|
+
:is-empty-name="isEmptyName"
|
|
7
8
|
@hide="onHide"
|
|
8
9
|
@change-name="onChangeName"
|
|
9
10
|
@remove-validation-errors="onRemoveValidationErrors"
|
|
@@ -64,6 +65,7 @@ const onChangeName = async (name: string): Promise<void> => {
|
|
|
64
65
|
onHide()
|
|
65
66
|
}
|
|
66
67
|
|
|
68
|
+
const isEmptyName = ref<boolean>(false)
|
|
67
69
|
const errors = ref<string[]>([])
|
|
68
70
|
const showValidationErrors = (data: string[]): void => {
|
|
69
71
|
errors.value = data
|
|
@@ -74,6 +76,8 @@ const onRemoveValidationErrors = (): void => {
|
|
|
74
76
|
|
|
75
77
|
const onCheckName = async (name: string): Promise<boolean> => {
|
|
76
78
|
let result = true
|
|
79
|
+
isEmptyName.value = false
|
|
80
|
+
errors.value = []
|
|
77
81
|
|
|
78
82
|
const url = props.nameRequestUrl.replace('{name}', encodeURIComponent(name))
|
|
79
83
|
const { error } = await useMyFetch<null, API_UI_I_Error>(url, {
|
|
@@ -83,9 +87,11 @@ const onCheckName = async (name: string): Promise<boolean> => {
|
|
|
83
87
|
const status = error.value?.statusCode || 200
|
|
84
88
|
switch (status) {
|
|
85
89
|
case 400: // Empty name
|
|
90
|
+
case 404: // 404 получаем в Сфере
|
|
86
91
|
showValidationErrors([
|
|
87
92
|
localization.value.common.emptyNameValidationDescription,
|
|
88
93
|
])
|
|
94
|
+
isEmptyName.value = true
|
|
89
95
|
result = false
|
|
90
96
|
break
|
|
91
97
|
case 405: // Invalid kind
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
@hide-modal="emits('hide')"
|
|
11
11
|
@confirm="emits('submit')"
|
|
12
12
|
>
|
|
13
|
-
<template v-if="props.type === 'revert'" #otherContent>
|
|
13
|
+
<template v-if="props.type === 'revert' || props.type === 'revertLast'" #otherContent>
|
|
14
14
|
<div class="confirm-modal-checkbox-content mt-4 p-3">
|
|
15
15
|
<ui-checkbox
|
|
16
16
|
v-model="suspendOnRevert"
|
|
@@ -79,6 +79,7 @@ const descriptionText = computed<string>(() => {
|
|
|
79
79
|
break
|
|
80
80
|
|
|
81
81
|
case 'revert':
|
|
82
|
+
case 'revertLast':
|
|
82
83
|
description =
|
|
83
84
|
localization.value.snapshots.revertToSnapshotDescription.replace(
|
|
84
85
|
'{0}',
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
@submit="onConfirm"
|
|
9
9
|
>
|
|
10
10
|
<template #modalBody>
|
|
11
|
-
<div v-if="props.type === 'revert'">
|
|
11
|
+
<div v-if="props.type === 'revert' || props.type === 'revertLast'">
|
|
12
12
|
<p class="description-text" data-id="description-revert-content">
|
|
13
13
|
{{ descriptionRevertContent }}
|
|
14
14
|
</p>
|
|
@@ -2,6 +2,7 @@ export enum UI_E_TitleConfirmModal {
|
|
|
2
2
|
'take' = '',
|
|
3
3
|
'edit' = 'edit',
|
|
4
4
|
'revert' = 'revert',
|
|
5
|
+
'revertLast' = 'revert',
|
|
5
6
|
'delete' = 'delete',
|
|
6
7
|
'delete_all' = 'deleteAll',
|
|
7
8
|
'group_delete_all' = 'deleteAll',
|
|
@@ -12,6 +13,7 @@ export enum UI_E_TitleModal {
|
|
|
12
13
|
'take' = '',
|
|
13
14
|
'edit' = '',
|
|
14
15
|
'revert' = 'revertToSnapshot',
|
|
16
|
+
'revertLast' = 'revertLatestSnapshot',
|
|
15
17
|
'delete' = 'deleteSnapshot',
|
|
16
18
|
'delete_all' = 'deleteAllSnapshots',
|
|
17
19
|
'group_delete_all' = 'deleteAllSnapshots',
|
|
@@ -18,6 +18,7 @@ export const modalTexts = (
|
|
|
18
18
|
groupTake: localization.common.create,
|
|
19
19
|
edit: localization.common.save,
|
|
20
20
|
revert: localization.common.revert,
|
|
21
|
+
revertLast: localization.common.revert,
|
|
21
22
|
delete: localization.common.delete,
|
|
22
23
|
delete_all: localization.common.deleteAll,
|
|
23
24
|
group_delete_all: localization.common.deleteAll,
|
|
@@ -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"
|
|
@@ -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,16 +140,13 @@ 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
|
|
|
@@ -222,9 +222,7 @@ export const getBodyDataFunc = (
|
|
|
222
222
|
key: 'icon',
|
|
223
223
|
col: 'col0',
|
|
224
224
|
text: host.name,
|
|
225
|
-
data: {
|
|
226
|
-
iconClassName: `vsphere-icon-${hostIconByState[host.state]}`,
|
|
227
|
-
},
|
|
225
|
+
data: `vsphere-icon-${hostIconByState[host.state]}`,
|
|
228
226
|
testId: `migrate-host-table-item-${index}`,
|
|
229
227
|
},
|
|
230
228
|
|
package/package.json
CHANGED
|
@@ -1,340 +0,0 @@
|
|
|
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
|
-
}
|