bfg-common 1.3.81 → 1.3.83
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 +6 -2
- package/assets/localization/local_en.json +6 -2
- package/assets/localization/local_hy.json +6 -2
- package/assets/localization/local_kk.json +6 -2
- package/assets/localization/local_ru.json +6 -2
- package/assets/localization/local_zh.json +6 -2
- package/components/common/wizards/vm/migrate/select/network/Network.vue +6 -6
- package/components/common/wizards/vm/migrate/select/network/table/disk/Disk.vue +42 -22
- package/components/common/wizards/vm/migrate/select/network/table/disk/lib/config/advancedTable.ts +41 -43
- package/components/common/wizards/vm/migrate/select/network/table/disk/lib/config/basicTable.ts +20 -24
- package/components/common/wizards/vm/migrate/select/network/table/disk/lib/config/tableKeys.ts +6 -3
- package/components/common/wizards/vm/migrate/select/network/table/disk/lib/models/interfaces.ts +11 -0
- package/components/common/wizards/vm/migrate/select/network/table/disk/lib/models/types.ts +10 -1
- package/package.json +1 -1
- package/plugins/recursion.ts +23 -1
|
@@ -2166,7 +2166,6 @@
|
|
|
2166
2166
|
"removeNetworkPortBindingDescSecond": "Выдаленне гэтых прывязак да партоў VMkernel таксама прывядзе да выдалення ўсіх актыўных шляхоў да мэтавым аб'ектах iSCSI. Звязаныя сховішчы дадзеных стануць недаступныя. Вы хочаце адключыць гэтыя адаптары VMkernel ад iSCSI адаптараў?",
|
|
2167
2167
|
"newPasswordMustDifferentOld": "Новы пароль павінен адрознівацца ад старога",
|
|
2168
2168
|
"standardPortGroup": "Стандартная група партоў",
|
|
2169
|
-
"inherited": "Успадкаваны",
|
|
2170
2169
|
"toFindObjectsYouHaveAccess": "Каб знайсці аб'екты, да якіх у вас ёсць доступ, перайдзіце да",
|
|
2171
2170
|
"inventoryShortcuts": "Ярлыкі інвентара",
|
|
2172
2171
|
"youHavePrivilegesViewObjectDeleted": "У вас няма прывілеяў для прагляду гэтага аб'екта, інакш ён будзе выдалены.",
|
|
@@ -2191,5 +2190,10 @@
|
|
|
2191
2190
|
"checkVmStoragePolicyCompliance": "Праверце адпаведнасць палітыцы захоўвання віртуальнай машыны",
|
|
2192
2191
|
"disable2": "Адключыць",
|
|
2193
2192
|
"enable2": "Уключыць",
|
|
2194
|
-
"refresh2": "Абнавіць"
|
|
2193
|
+
"refresh2": "Абнавіць",
|
|
2194
|
+
"inherited": "Успадкаваны",
|
|
2195
|
+
"migrateNetworkingForAllAdapters": "Перанясіце сетку віртуальнай машыны, выбраўшы новую сетку прызначэння для ўсіх сеткавых адаптараў віртуальнай машыны, далучаных да той жа зыходнай сеткі.",
|
|
2196
|
+
"migrateNetworkingForEachAdapters": "Перанясіце сетку ВМ, выбраўшы новую сетку прызначэння для кожнага сеткавага адаптара ВМ.",
|
|
2197
|
+
"networkIsInUseAt": "{network} выкарыстоўваецца ў:",
|
|
2198
|
+
"editIscsiAuthenticationDescription": "Ініцыятар выкарыстоўвае гэтыя параметры для праверкі сапраўднасці для ўсіх мэтавых аб'ектаў, калі іншае не прадугледжана канкрэтнымі мэтавымі параметрамі. Пераканайцеся, што гэтыя параметры супадаюць на баку сховішчы."
|
|
2195
2199
|
}
|
|
@@ -2169,7 +2169,6 @@
|
|
|
2169
2169
|
"removeNetworkPortBindingDescSecond": "Removing these VMkernel port bindings will also remove all active paths to the iSCSI targets. The associated datastores will become unavailable. Do you want to disassociate these VMKernel adapters from the iSCSI adapters?",
|
|
2170
2170
|
"standardPortGroup": "Standard port group",
|
|
2171
2171
|
"newPasswordMustDifferentOld": "The new password must be different from the old one",
|
|
2172
|
-
"inherited": "Inherited",
|
|
2173
2172
|
"toFindObjectsYouHaveAccess": "To find the objects you have access to, go to",
|
|
2174
2173
|
"inventoryShortcuts": "Inventory Shortcuts",
|
|
2175
2174
|
"youHavePrivilegesViewObjectDeleted": "You have no privileges to view this object or it is deleted.",
|
|
@@ -2195,5 +2194,10 @@
|
|
|
2195
2194
|
"checkVmStoragePolicyCompliance": "Check VM Storage Policy Compliance",
|
|
2196
2195
|
"disable2": "Disable",
|
|
2197
2196
|
"enable2": "Enable",
|
|
2198
|
-
"refresh2": "Refresh"
|
|
2197
|
+
"refresh2": "Refresh",
|
|
2198
|
+
"inherited": "Inherited",
|
|
2199
|
+
"migrateNetworkingForAllAdapters": "Migrate VM networking by selecting a new destination network for all VM network adapters attached to the same source network.",
|
|
2200
|
+
"migrateNetworkingForEachAdapters": "Migrate VM networking by selecting a new destination network for each VM network adapter.",
|
|
2201
|
+
"networkIsInUseAt": "{ network } is in use at:",
|
|
2202
|
+
"editIscsiAuthenticationDescription": "The initiator uses these settings for authentication for all targets unless otherwise overriden by the specific target settings. Make sure that these parameters match on the storage side."
|
|
2199
2203
|
}
|
|
@@ -2170,7 +2170,6 @@
|
|
|
2170
2170
|
"standardPortGroup": "Ստանդարտ նավահանգիստների խումբ",
|
|
2171
2171
|
"newPasswordMustDifferentOld": "Նոր գաղտնաբառը պետք է տարբերվի հինից",
|
|
2172
2172
|
"VMKernelNetworkAdapter": "VMkernel ցանցային ադապտեր",
|
|
2173
|
-
"inherited": "Ժառանգված",
|
|
2174
2173
|
"toFindObjectsYouHaveAccess": "Օբյեկտները գտնելու համար, որոնց հասանելի եք, գնացեք",
|
|
2175
2174
|
"inventoryShortcuts": "Գույքագրման դյուրանցումներ",
|
|
2176
2175
|
"youHavePrivilegesViewObjectDeleted": "Դուք այս օբյեկտը դիտելու արտոնություններ չունեք, կամ այն ջնջված է:",
|
|
@@ -2195,5 +2194,10 @@
|
|
|
2195
2194
|
"checkVmStoragePolicyCompliance": "Ստուգեք VM-ի պահպանման քաղաքականության համապատասխանությունը",
|
|
2196
2195
|
"disable2": "Արգելել",
|
|
2197
2196
|
"enable2": "Միացնել",
|
|
2198
|
-
"refresh2": "Թարմացնել"
|
|
2197
|
+
"refresh2": "Թարմացնել",
|
|
2198
|
+
"inherited": "Ժառանգված",
|
|
2199
|
+
"migrateNetworkingForAllAdapters": "Տեղափոխեք VM ցանցը՝ ընտրելով նոր նպատակակետ ցանց բոլոր VM ցանցային ադապտերների համար, որոնք կցված են նույն աղբյուրի ցանցին:",
|
|
2200
|
+
"migrateNetworkingForEachAdapters": "Տեղափոխեք VM ցանցը՝ ընտրելով նոր նպատակակետ ցանց յուրաքանչյուր VM ցանցային ադապտերի համար:",
|
|
2201
|
+
"networkIsInUseAt": "{ network }-ն օգտագործվում է հետևյալ հասցեում՝",
|
|
2202
|
+
"editIscsiAuthenticationDescription": "Նախաձեռնողն օգտագործում է այս պարամետրերը ՝ բոլոր նպատակային օբյեկտների վավերականությունը ստուգելու համար, եթե այլ բան նախատեսված չէ հատուկ նպատակային պարամետրերով: Համոզվեք, որ այս ընտրանքները համընկնում են պահեստավորման կողմում:"
|
|
2199
2203
|
}
|
|
@@ -2169,7 +2169,6 @@
|
|
|
2169
2169
|
"removeNetworkPortBindingDescSecond": "Осы VMkernel порт байланыстарын жою iSCSI мақсаттарына барлық белсенді жолдарды жояды. Байланысты деректер қоймалары қолжетімсіз болады. Осы VMKernel адаптерлерін iSCSI адаптерлерінен ажыратқыңыз келе ме?",
|
|
2170
2170
|
"newPasswordMustDifferentOld": "Жаңа құпия сөз ескіден өзгеше болуы керек",
|
|
2171
2171
|
"standardPortGroup": "Стандартты порттар тобы",
|
|
2172
|
-
"inherited": "Мұрагерлік",
|
|
2173
2172
|
"toFindObjectsYouHaveAccess": "Қол жеткізуге болатын нысандарды табу үшін өтіңіз",
|
|
2174
2173
|
"inventoryShortcuts": "Түгендеу таңбашалары",
|
|
2175
2174
|
"youHavePrivilegesViewObjectDeleted": "Бұл нысанды көру құқығыңыз жоқ немесе ол жойылған.",
|
|
@@ -2194,5 +2193,10 @@
|
|
|
2194
2193
|
"checkVmStoragePolicyCompliance": "VM сақтау саясаты сәйкестігін тексеріңіз",
|
|
2195
2194
|
"disable2": "Тыйым салу",
|
|
2196
2195
|
"enable2": "Қосу",
|
|
2197
|
-
"refresh2": "Жаңарту"
|
|
2196
|
+
"refresh2": "Жаңарту",
|
|
2197
|
+
"inherited": "Мұрагерлік",
|
|
2198
|
+
"migrateNetworkingForAllAdapters": "Бір бастапқы желіге тіркелген барлық VM желі адаптерлері үшін жаңа тағайындалған желіні таңдау арқылы VM желісін тасымалдаңыз.",
|
|
2199
|
+
"migrateNetworkingForEachAdapters": "Әрбір VM желі адаптері үшін жаңа тағайындалған желіні таңдау арқылы VM желісін тасымалдаңыз.",
|
|
2200
|
+
"networkIsInUseAt": "{ network } мына жерде қолданылады:",
|
|
2201
|
+
"editIscsiAuthenticationDescription": "Бастамашы осы параметрлерді барлық мақсаттар үшін аутентификациялау үшін пайдаланады, егер нақты мақсатты параметрлермен басқаша анықталмаса. Бұл параметрлердің сақтау жағында сәйкес келетініне көз жеткізіңіз."
|
|
2198
2202
|
}
|
|
@@ -2175,7 +2175,6 @@
|
|
|
2175
2175
|
"removeNetworkPortBindingDescSecond": "Удаление этих привязок к портам VMkernel также приведет к удалению всех активных путей к целевым объектам iSCSI. Связанные хранилища данных станут недоступны. Вы хотите отключить эти адаптеры VMkernel от адаптеров iSCSI?",
|
|
2176
2176
|
"newPasswordMustDifferentOld": "Новый пароль должен отличаться от старого",
|
|
2177
2177
|
"standardPortGroup": "Стандартная группа портов",
|
|
2178
|
-
"inherited": "Унаследованный",
|
|
2179
2178
|
"toFindObjectsYouHaveAccess": "Чтобы найти объекты, к которым у вас есть доступ, перейдите по ссылке",
|
|
2180
2179
|
"inventoryShortcuts": "Ярлыки инвентаря",
|
|
2181
2180
|
"youHavePrivilegesViewObjectDeleted": "У вас нет прав на просмотр этого объекта, или он удален.",
|
|
@@ -2200,5 +2199,10 @@
|
|
|
2200
2199
|
"checkVmStoragePolicyCompliance": "Проверьте соответствие политике хранения виртуальных машин",
|
|
2201
2200
|
"disable2": "Автостарт выкл",
|
|
2202
2201
|
"enable2": "Автостарт вкл",
|
|
2203
|
-
"refresh2": "Обновить систему"
|
|
2202
|
+
"refresh2": "Обновить систему",
|
|
2203
|
+
"inherited": "Унаследованный",
|
|
2204
|
+
"migrateNetworkingForAllAdapters": "Перенесите сеть виртуальной машины, выбрав новую целевую сеть для всех сетевых адаптеров виртуальной машины, подключенных к той же исходной сети.",
|
|
2205
|
+
"migrateNetworkingForEachAdapters": "Перенесите сеть виртуальной машины, выбрав новую целевую сеть для каждого сетевого адаптера виртуальной машины.",
|
|
2206
|
+
"networkIsInUseAt": "{ network } используется по адресу:",
|
|
2207
|
+
"editIscsiAuthenticationDescription": "Инициатор использует эти параметры для проверки подлинности для всех целевых объектов, если иное не предусмотрено конкретными целевыми параметрами. Убедитесь, что эти параметры совпадают на стороне хранилища."
|
|
2204
2208
|
}
|
|
@@ -2169,7 +2169,6 @@
|
|
|
2169
2169
|
"removeNetworkPortBindingDescSecond": "删除这些VMkernel端口绑定还将删除iSCSI目标的所有活动路径。 关联的数据存储将变得不可用。 是否要取消这些VMKernel适配器与iSCSI适配器的关联?",
|
|
2170
2170
|
"newPasswordMustDifferentOld": "新密码必须与旧密码不同",
|
|
2171
2171
|
"standardPortGroup": "继承的",
|
|
2172
|
-
"inherited": "继承",
|
|
2173
2172
|
"toFindObjectsYouHaveAccess": "要查找您有权访问的对象,请转至",
|
|
2174
2173
|
"inventoryShortcuts": "库存快捷方式",
|
|
2175
2174
|
"youHavePrivilegesViewObjectDeleted": "您无权查看该对象,或者该对象已被删除。",
|
|
@@ -2194,5 +2193,10 @@
|
|
|
2194
2193
|
"checkVmStoragePolicyCompliance": "检查虚拟机存储策略合规性",
|
|
2195
2194
|
"disable2": "禁止",
|
|
2196
2195
|
"enable2": "打开",
|
|
2197
|
-
"refresh2": "刷新"
|
|
2196
|
+
"refresh2": "刷新",
|
|
2197
|
+
"inherited": "继承",
|
|
2198
|
+
"migrateNetworkingForAllAdapters": "通过为连接到同一源网络的所有 VM 网络适配器选择新的目标网络来迁移 VM 网络。",
|
|
2199
|
+
"migrateNetworkingForEachAdapters": "通过为每个 VM 网络适配器选择新的目标网络来迁移 VM 网络。",
|
|
2200
|
+
"networkIsInUseAt": "{ 网络 } 正在使用:",
|
|
2201
|
+
"editIscsiAuthenticationDescription": "启动器使用这些设置对所有目标进行身份验证,除非特定目标设置另有复盖。 确保这些参数在存储端匹配。"
|
|
2198
2202
|
}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
<common-wizards-vm-migrate-select-network-table-disk
|
|
4
4
|
v-model="selected"
|
|
5
5
|
:type="tableType"
|
|
6
|
-
:
|
|
6
|
+
:networks="[]"
|
|
7
7
|
/>
|
|
8
8
|
|
|
9
9
|
<div class="vm-migrate-advanced-view-button">
|
|
@@ -11,9 +11,9 @@
|
|
|
11
11
|
class="btn btn-sm migrate-network-advanced-btn"
|
|
12
12
|
@click="isShowNetworkBasic = !isShowNetworkBasic"
|
|
13
13
|
>
|
|
14
|
-
<span v-if="isShowNetworkBasic"> ≪ </span>
|
|
14
|
+
<span v-if="!isShowNetworkBasic"> ≪ </span>
|
|
15
15
|
{{ buttonText }}
|
|
16
|
-
<span v-if="
|
|
16
|
+
<span v-if="isShowNetworkBasic"> ≫ </span>
|
|
17
17
|
</button>
|
|
18
18
|
</div>
|
|
19
19
|
|
|
@@ -30,11 +30,11 @@ import type { UI_I_Localization } from '~/lib/models/interfaces'
|
|
|
30
30
|
|
|
31
31
|
const localization = computed<UI_I_Localization>(() => useLocal())
|
|
32
32
|
|
|
33
|
-
const selected = ref<number
|
|
34
|
-
const isShowNetworkBasic = ref<boolean>(
|
|
33
|
+
const selected = ref<number | null>(null)
|
|
34
|
+
const isShowNetworkBasic = ref<boolean>(true)
|
|
35
35
|
|
|
36
36
|
const buttonText = computed(
|
|
37
|
-
() => localization.value[isShowNetworkBasic.value ? '
|
|
37
|
+
() => localization.value[isShowNetworkBasic.value ? 'advanced' : 'basic']
|
|
38
38
|
)
|
|
39
39
|
|
|
40
40
|
const tableType = computed<string>(() =>
|
|
@@ -1,20 +1,35 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<div class="table-wrap">
|
|
3
3
|
<atoms-table-data-grid
|
|
4
|
-
v-model:selected-row="
|
|
4
|
+
v-model:selected-row="selectedNetworkLocal"
|
|
5
5
|
v-model:column-keys="columnKeys"
|
|
6
6
|
v-model:page-size="pagination.pageSize"
|
|
7
7
|
v-model:page="pagination.page"
|
|
8
|
-
type="checkbox"
|
|
9
8
|
:head-items="headItems"
|
|
10
9
|
:body-items="bodyItems"
|
|
11
10
|
:total-items="bodyItems.length"
|
|
12
11
|
:total-pages="1"
|
|
12
|
+
class="select-network"
|
|
13
13
|
server-off
|
|
14
14
|
hide-footer
|
|
15
15
|
hide-page-size
|
|
16
|
-
@sorting="sorting"
|
|
17
16
|
>
|
|
17
|
+
<template #select="{ item }">
|
|
18
|
+
<span class="select select-network__select">
|
|
19
|
+
<select
|
|
20
|
+
:id="item.data.id"
|
|
21
|
+
v-model="item.data.value"
|
|
22
|
+
:disabled="item.data.disabled"
|
|
23
|
+
>
|
|
24
|
+
<option
|
|
25
|
+
v-for="option in item.data.option"
|
|
26
|
+
:key="option"
|
|
27
|
+
:value="option"
|
|
28
|
+
:label="option"
|
|
29
|
+
/>
|
|
30
|
+
</select>
|
|
31
|
+
</span>
|
|
32
|
+
</template>
|
|
18
33
|
</atoms-table-data-grid>
|
|
19
34
|
</div>
|
|
20
35
|
</template>
|
|
@@ -27,20 +42,26 @@ import type {
|
|
|
27
42
|
UI_I_HeadItem,
|
|
28
43
|
UI_I_BodyItem,
|
|
29
44
|
} from '~/components/atoms/table/dataGrid/lib/models/interfaces'
|
|
45
|
+
import type { UI_T_MigrateSelectNetwork } from '~/components/common/wizards/vm/migrate/select/network/table/disk/lib/models/types'
|
|
30
46
|
import * as basicTable from '~/components/common/wizards/vm/migrate/select/network/table/disk/lib/config/basicTable'
|
|
31
47
|
import * as advancedTable from '~/components/common/wizards/vm/migrate/select/network/table/disk/lib/config/advancedTable'
|
|
32
48
|
|
|
33
49
|
const props = defineProps<{
|
|
34
|
-
modelValue: number
|
|
35
|
-
|
|
50
|
+
modelValue: number | null
|
|
51
|
+
networks: UI_T_MigrateSelectNetwork[]
|
|
36
52
|
type: 'basic' | 'advanced'
|
|
37
53
|
}>()
|
|
38
54
|
const emits = defineEmits<{
|
|
39
|
-
(event: 'update:model-value', value: number
|
|
55
|
+
(event: 'update:model-value', value: number | null): void
|
|
40
56
|
}>()
|
|
41
57
|
|
|
42
58
|
const localization = computed<UI_I_Localization>(() => useLocal())
|
|
43
59
|
|
|
60
|
+
const pagination = ref<UI_I_Pagination>({
|
|
61
|
+
page: 1,
|
|
62
|
+
pageSize: 100,
|
|
63
|
+
})
|
|
64
|
+
|
|
44
65
|
const table: any = {
|
|
45
66
|
basic: basicTable,
|
|
46
67
|
advanced: advancedTable,
|
|
@@ -57,29 +78,28 @@ watch(localization, () => {
|
|
|
57
78
|
})
|
|
58
79
|
|
|
59
80
|
const bodyItems = computed<UI_I_BodyItem[][]>(() => {
|
|
60
|
-
return table[props.type].bodyItems(props.
|
|
81
|
+
return table[props.type].bodyItems(props.networks)
|
|
61
82
|
})
|
|
62
83
|
|
|
63
|
-
const
|
|
64
|
-
const pagination = ref<UI_I_Pagination>({
|
|
65
|
-
page: 1,
|
|
66
|
-
pageSize: 100,
|
|
67
|
-
})
|
|
68
|
-
|
|
69
|
-
const sorting = (data: [string, boolean]): void => {
|
|
70
|
-
const [column, status] = data
|
|
71
|
-
const direction = status ? 'asc' : 'desc'
|
|
72
|
-
sort.value = `${column}.${direction}`
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
const selectedRow = computed<number[]>({
|
|
84
|
+
const selectedNetworkLocal = computed<number | null>({
|
|
76
85
|
get() {
|
|
77
86
|
return props.modelValue
|
|
78
87
|
},
|
|
79
|
-
set(newValue: number
|
|
88
|
+
set(newValue: number | null) {
|
|
80
89
|
emits('update:model-value', newValue)
|
|
81
90
|
},
|
|
82
91
|
})
|
|
83
92
|
</script>
|
|
84
93
|
|
|
85
|
-
<style lang="scss" scoped
|
|
94
|
+
<style lang="scss" scoped>
|
|
95
|
+
.select-network {
|
|
96
|
+
&__select {
|
|
97
|
+
width: 100%;
|
|
98
|
+
height: 24px;
|
|
99
|
+
min-width: 107px;
|
|
100
|
+
& > select {
|
|
101
|
+
height: 100%;
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
</style>
|
package/components/common/wizards/vm/migrate/select/network/table/disk/lib/config/advancedTable.ts
CHANGED
|
@@ -1,13 +1,10 @@
|
|
|
1
1
|
import type {
|
|
2
|
-
UI_I_ColumnKey,
|
|
3
2
|
UI_I_HeadItem,
|
|
4
3
|
UI_I_BodyItem,
|
|
5
4
|
} from '~/components/atoms/table/dataGrid/lib/models/interfaces'
|
|
6
5
|
import type { UI_I_Localization } from '~/lib/models/interfaces'
|
|
7
|
-
import {
|
|
8
|
-
|
|
9
|
-
constructHeadItem,
|
|
10
|
-
} from '~/components/atoms/table/dataGrid/lib/utils/constructDataTable'
|
|
6
|
+
import { constructHeadItem } from '~/components/atoms/table/dataGrid/lib/utils/constructDataTable'
|
|
7
|
+
import type { UI_I_MigrateSelectNetworkAdvancedItem } from '~/components/common/wizards/vm/migrate/select/network/table/disk/lib/models/interfaces'
|
|
11
8
|
import { networkAdvancedTableItemKeys } from '~/components/common/wizards/vm/migrate/select/network/table/disk/lib/config/tableKeys'
|
|
12
9
|
|
|
13
10
|
const getItems = (
|
|
@@ -26,52 +23,53 @@ const getItems = (
|
|
|
26
23
|
]
|
|
27
24
|
}
|
|
28
25
|
|
|
29
|
-
export const columnKeys = (
|
|
30
|
-
localization: UI_I_Localization
|
|
31
|
-
): UI_I_ColumnKey[] => {
|
|
32
|
-
const result: UI_I_ColumnKey[] = []
|
|
33
|
-
getItems(localization).forEach((item, i) => {
|
|
34
|
-
const col = `col${i}`
|
|
35
|
-
result.push(constructColumnKey(col, item[0], item[1]))
|
|
36
|
-
})
|
|
37
|
-
return result
|
|
38
|
-
}
|
|
39
|
-
|
|
40
26
|
export const headItems = (localization: UI_I_Localization): UI_I_HeadItem[] => {
|
|
41
27
|
const result: UI_I_HeadItem[] = []
|
|
42
28
|
getItems(localization).forEach((item, i) => {
|
|
43
|
-
const col = `col${i}`
|
|
44
|
-
result.push(constructHeadItem(col, item[0], item[3],
|
|
29
|
+
const col = i === 3 ? 'select' : `col${i}`
|
|
30
|
+
result.push(constructHeadItem(col, item[0], item[3], false, item[2]))
|
|
45
31
|
})
|
|
46
32
|
return result
|
|
47
33
|
}
|
|
48
34
|
|
|
49
|
-
export const bodyItems = (
|
|
35
|
+
export const bodyItems = (
|
|
36
|
+
data: UI_I_MigrateSelectNetworkAdvancedItem[]
|
|
37
|
+
): UI_I_BodyItem[][] => {
|
|
50
38
|
const bodyItems: UI_I_BodyItem[][] = []
|
|
51
39
|
|
|
52
|
-
data.forEach(
|
|
53
|
-
|
|
54
|
-
{
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
40
|
+
data.forEach(
|
|
41
|
+
(network: UI_I_MigrateSelectNetworkAdvancedItem, key: number) => {
|
|
42
|
+
const data = {
|
|
43
|
+
id: `${network.vm_name}-select`,
|
|
44
|
+
disabled: false,
|
|
45
|
+
value: network.destination_network[0],
|
|
46
|
+
option: network.destination_network,
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
bodyItems.push([
|
|
50
|
+
{
|
|
51
|
+
key: 'col0',
|
|
52
|
+
text: network[networkAdvancedTableItemKeys[0]],
|
|
53
|
+
id: key,
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
key: 'col1',
|
|
57
|
+
text: network[networkAdvancedTableItemKeys[1]],
|
|
58
|
+
id: key,
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
key: 'col2',
|
|
62
|
+
text: network[networkAdvancedTableItemKeys[2]],
|
|
63
|
+
id: key,
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
key: 'select',
|
|
67
|
+
text: network[networkAdvancedTableItemKeys[3]],
|
|
68
|
+
data,
|
|
69
|
+
id: key,
|
|
70
|
+
},
|
|
71
|
+
])
|
|
72
|
+
}
|
|
73
|
+
)
|
|
76
74
|
return bodyItems
|
|
77
75
|
}
|
package/components/common/wizards/vm/migrate/select/network/table/disk/lib/config/basicTable.ts
CHANGED
|
@@ -1,13 +1,10 @@
|
|
|
1
1
|
import type {
|
|
2
|
-
UI_I_ColumnKey,
|
|
3
2
|
UI_I_HeadItem,
|
|
4
3
|
UI_I_BodyItem,
|
|
5
4
|
} from '~/components/atoms/table/dataGrid/lib/models/interfaces'
|
|
6
5
|
import type { UI_I_Localization } from '~/lib/models/interfaces'
|
|
7
|
-
import {
|
|
8
|
-
|
|
9
|
-
constructHeadItem,
|
|
10
|
-
} from '~/components/atoms/table/dataGrid/lib/utils/constructDataTable'
|
|
6
|
+
import { constructHeadItem } from '~/components/atoms/table/dataGrid/lib/utils/constructDataTable'
|
|
7
|
+
import type { UI_I_MigrateSelectNetworkBasicItem } from '~/components/common/wizards/vm/migrate/select/network/table/disk/lib/models/interfaces'
|
|
11
8
|
import { networkBasicsTableItemKeys } from '~/components/common/wizards/vm/migrate/select/network/table/disk/lib/config/tableKeys'
|
|
12
9
|
|
|
13
10
|
const getItems = (
|
|
@@ -25,44 +22,43 @@ const getItems = (
|
|
|
25
22
|
]
|
|
26
23
|
}
|
|
27
24
|
|
|
28
|
-
export const columnKeys = (
|
|
29
|
-
localization: UI_I_Localization
|
|
30
|
-
): UI_I_ColumnKey[] => {
|
|
31
|
-
const result: UI_I_ColumnKey[] = []
|
|
32
|
-
getItems(localization).forEach((item, i) => {
|
|
33
|
-
const col = `col${i}`
|
|
34
|
-
result.push(constructColumnKey(col, item[0], item[1]))
|
|
35
|
-
})
|
|
36
|
-
return result
|
|
37
|
-
}
|
|
38
|
-
|
|
39
25
|
export const headItems = (localization: UI_I_Localization): UI_I_HeadItem[] => {
|
|
40
26
|
const result: UI_I_HeadItem[] = []
|
|
41
27
|
getItems(localization).forEach((item, i) => {
|
|
42
|
-
const col = `col${i}`
|
|
43
|
-
result.push(constructHeadItem(col, item[0], item[3],
|
|
28
|
+
const col = i === 2 ? 'select' : `col${i}`
|
|
29
|
+
result.push(constructHeadItem(col, item[0], item[3], false, item[2]))
|
|
44
30
|
})
|
|
45
31
|
return result
|
|
46
32
|
}
|
|
47
33
|
|
|
48
|
-
export const bodyItems = (
|
|
34
|
+
export const bodyItems = (
|
|
35
|
+
data: UI_I_MigrateSelectNetworkBasicItem[]
|
|
36
|
+
): UI_I_BodyItem[][] => {
|
|
49
37
|
const bodyItems: UI_I_BodyItem[][] = []
|
|
50
38
|
|
|
51
|
-
data.forEach((
|
|
39
|
+
data.forEach((network: UI_I_MigrateSelectNetworkBasicItem, key: number) => {
|
|
40
|
+
const data = {
|
|
41
|
+
id: `${network.source_network}-select`,
|
|
42
|
+
disabled: false,
|
|
43
|
+
value: network.destination_network[0],
|
|
44
|
+
option: network.destination_network,
|
|
45
|
+
}
|
|
46
|
+
|
|
52
47
|
bodyItems.push([
|
|
53
48
|
{
|
|
54
49
|
key: 'col0',
|
|
55
|
-
text:
|
|
50
|
+
text: network[networkBasicsTableItemKeys[0]],
|
|
56
51
|
id: key,
|
|
57
52
|
},
|
|
58
53
|
{
|
|
59
54
|
key: 'col1',
|
|
60
|
-
text:
|
|
55
|
+
text: network[networkBasicsTableItemKeys[1]],
|
|
61
56
|
id: key,
|
|
62
57
|
},
|
|
63
58
|
{
|
|
64
|
-
key: '
|
|
65
|
-
text:
|
|
59
|
+
key: 'select',
|
|
60
|
+
text: network[networkBasicsTableItemKeys[2]],
|
|
61
|
+
data,
|
|
66
62
|
id: key,
|
|
67
63
|
},
|
|
68
64
|
])
|
package/components/common/wizards/vm/migrate/select/network/table/disk/lib/config/tableKeys.ts
CHANGED
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
import type {
|
|
2
|
-
|
|
2
|
+
UI_T_NetworkBasicsTableKeysTuple,
|
|
3
3
|
UI_T_NetworkAdvancedTableKeysTuple,
|
|
4
4
|
} from '~/components/common/wizards/vm/migrate/select/network/table/disk/lib/models/types'
|
|
5
5
|
|
|
6
|
-
export const networkBasicsTableItemKeys:
|
|
7
|
-
|
|
6
|
+
export const networkBasicsTableItemKeys: UI_T_NetworkBasicsTableKeysTuple = [
|
|
7
|
+
'source_network',
|
|
8
|
+
'used_by',
|
|
9
|
+
'destination_network',
|
|
10
|
+
]
|
|
8
11
|
|
|
9
12
|
export const networkAdvancedTableItemKeys: UI_T_NetworkAdvancedTableKeysTuple =
|
|
10
13
|
['vm_name', 'network_adapter', 'source_network', 'destination_network']
|
package/components/common/wizards/vm/migrate/select/network/table/disk/lib/models/interfaces.ts
CHANGED
|
@@ -1 +1,12 @@
|
|
|
1
|
+
export interface UI_I_MigrateSelectNetworkBasicItem {
|
|
2
|
+
source_network: string
|
|
3
|
+
used_by: string
|
|
4
|
+
destination_network: string
|
|
5
|
+
}
|
|
1
6
|
|
|
7
|
+
export interface UI_I_MigrateSelectNetworkAdvancedItem {
|
|
8
|
+
vm_name: string
|
|
9
|
+
network_adapter: string
|
|
10
|
+
source_network: string
|
|
11
|
+
destination_network: string
|
|
12
|
+
}
|
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
import type {
|
|
2
|
+
UI_I_MigrateSelectNetworkBasicItem,
|
|
3
|
+
UI_I_MigrateSelectNetworkAdvancedItem,
|
|
4
|
+
} from '~/components/common/wizards/vm/migrate/select/network/table/disk/lib/models/interfaces'
|
|
5
|
+
|
|
1
6
|
export type UI_T_NetworkAdvancedTableKeysTuple = [
|
|
2
7
|
'vm_name',
|
|
3
8
|
'network_adapter',
|
|
@@ -5,8 +10,12 @@ export type UI_T_NetworkAdvancedTableKeysTuple = [
|
|
|
5
10
|
'destination_network'
|
|
6
11
|
]
|
|
7
12
|
|
|
8
|
-
export type
|
|
13
|
+
export type UI_T_NetworkBasicsTableKeysTuple = [
|
|
9
14
|
'source_network',
|
|
10
15
|
'used_by',
|
|
11
16
|
'destination_network'
|
|
12
17
|
]
|
|
18
|
+
|
|
19
|
+
export type UI_T_MigrateSelectNetwork =
|
|
20
|
+
| UI_I_MigrateSelectNetworkBasicItem
|
|
21
|
+
| UI_I_MigrateSelectNetworkAdvancedItem
|
package/package.json
CHANGED
package/plugins/recursion.ts
CHANGED
|
@@ -28,6 +28,27 @@ export default defineNuxtPlugin(() => {
|
|
|
28
28
|
}
|
|
29
29
|
return result
|
|
30
30
|
}
|
|
31
|
+
self.findParentNodeByType = function (
|
|
32
|
+
node: any,
|
|
33
|
+
types: string[],
|
|
34
|
+
valueProp: string,
|
|
35
|
+
parentProp: string
|
|
36
|
+
) {
|
|
37
|
+
if (!node[parentProp] || types.includes(node[valueProp])) {
|
|
38
|
+
return node
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
if (types.includes(node[parentProp][valueProp])) {
|
|
42
|
+
return node[parentProp]
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
return self.findParentNodeByType(
|
|
46
|
+
node[parentProp],
|
|
47
|
+
types,
|
|
48
|
+
valueProp,
|
|
49
|
+
parentProp
|
|
50
|
+
)
|
|
51
|
+
}
|
|
31
52
|
|
|
32
53
|
self.findAndShow = function (
|
|
33
54
|
arr: any[],
|
|
@@ -214,7 +235,8 @@ export default defineNuxtPlugin(() => {
|
|
|
214
235
|
|
|
215
236
|
if (node[valueProp] === value) return node
|
|
216
237
|
const parent = node[parentProp]
|
|
217
|
-
if (parent)
|
|
238
|
+
if (parent)
|
|
239
|
+
return self.findParentByValue(parent, value, valueProp, parentProp)
|
|
218
240
|
|
|
219
241
|
return null
|
|
220
242
|
}
|