bfg-common 1.5.439 → 1.5.440
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 +4 -1
- package/assets/localization/local_en.json +5 -2
- package/assets/localization/local_hy.json +4 -1
- package/assets/localization/local_kk.json +4 -1
- package/assets/localization/local_ru.json +4 -1
- package/assets/localization/local_zh.json +4 -1
- package/components/common/tooltip/Help.vue +2 -2
- package/components/common/vm/actions/add/Add.vue +10 -0
- package/components/common/vm/actions/add/New.vue +13 -2
- package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/maximumSize/MaximumSize.vue +23 -23
- package/components/common/vm/actions/common/select/options/New.vue +49 -5
- package/components/common/vm/actions/common/select/template/Template.vue +11 -4
- package/components/common/vm/actions/common/select/template/new/New.vue +22 -5
- package/components/common/vm/actions/common/select/template/treeView/New.vue +30 -4
- package/components/common/vm/actions/common/select/template/treeView/TreeView.vue +10 -3
- package/package.json +1 -1
@@ -1845,6 +1845,7 @@
|
|
1845
1845
|
"showDatastoresConnectedAllHosts": "Паказаць сховішчы даных, падлучаныя да ўсіх хостаў",
|
1846
1846
|
"selectCloneOptions": "Выберыце параметры клонавання",
|
1847
1847
|
"selectOptionsTargetVm": "Выберыце параметры мэтавага VM",
|
1848
|
+
"selectTargetVmOptions": "Абярыце параметры мэтавай ВМ",
|
1848
1849
|
"selectFurtherCloneOptions": "Выберыце дадатковыя параметры клонавання",
|
1849
1850
|
"customizeTheOperatingSystem": "Наладзьце аперацыйную сістэму",
|
1850
1851
|
"customizeThisVirtualMachineHardware": "Наладзьце апаратнае забеспячэнне гэтай віртуальнай машыны",
|
@@ -2444,6 +2445,7 @@
|
|
2444
2445
|
"metricsCollectionAndBenchmarkingForDisks": "Збор метрык і бенчмаркінг для дыскаў",
|
2445
2446
|
"publicNetwork": "Публічная сетка",
|
2446
2447
|
"clusterNetwork": "Кластарная сетка",
|
2448
|
+
"checkCompletedSuccessfully": "Праверка завяршылася паспяхова.",
|
2447
2449
|
"serverFqdnOrIpAddress": "FQDN або IP-адрас сервера vCenter",
|
2448
2450
|
"import": "Імпарт"
|
2449
2451
|
},
|
@@ -3284,7 +3286,8 @@
|
|
3284
3286
|
"customizeVMHardware": "Наладзіць абсталяванне гэтай віртуальнай машыны.",
|
3285
3287
|
"autoPowerOn": "Аўтазапуск",
|
3286
3288
|
"powerVMAfterCreation": "Уключыць віртуальную машыну пасля стварэння.",
|
3287
|
-
"selectTemplateForCreatingVm": "Выберыце шаблон для стварэння віртуальнай машыны"
|
3289
|
+
"selectTemplateForCreatingVm": "Выберыце шаблон для стварэння віртуальнай машыны",
|
3290
|
+
"selectAdvancedOptionsTargetVm": "Абярыце дадатковыя параметры для мэтавай ВМ."
|
3288
3291
|
},
|
3289
3292
|
"feedback": {
|
3290
3293
|
"additionalDetailsHelp": "Даведка па дадатковых звестках",
|
@@ -1847,6 +1847,7 @@
|
|
1847
1847
|
"showDatastoresConnectedAllHosts": "Show datastores connected to all hosts",
|
1848
1848
|
"selectCloneOptions": "Select Clone Options",
|
1849
1849
|
"selectOptionsTargetVm": "Select the options of the target VM",
|
1850
|
+
"selectTargetVmOptions": "Select Target VM Options",
|
1850
1851
|
"selectFurtherCloneOptions": "Select further clone options",
|
1851
1852
|
"customizeTheOperatingSystem": "Customize the operating system",
|
1852
1853
|
"customizeThisVirtualMachineHardware": "Customize this virtual machine's hardware",
|
@@ -2435,7 +2436,7 @@
|
|
2435
2436
|
"reasonShutdownOperation": "Log a reason for this shutdown operation:",
|
2436
2437
|
"descShutdownOperation": "Shutting down or rebooting a host that is not in maintenance mode will not safely stop the running virtual machines on this host. If the host is part of a vSAN cluster, you might lose access to the vSAN data on the host. Put the host in maintenance mode before you reboot or shut down the host.",
|
2437
2438
|
"shutDownSelectedHost": "Shut down the selected host?",
|
2438
|
-
"checkSystemReadiness": "Check
|
2439
|
+
"checkSystemReadiness": "Check System Readiness",
|
2439
2440
|
"checkSystemReadinessTooltip": "This process performs automated validations to ensure the system is fully prepared for DSTORM creation. It includes checking time synchronization, verifying host compliance with required specifications, and collecting metrics with benchmarking for both network and disk components. Successfully completing these checks confirms that the environment meets all prerequisites and is ready for a smooth and reliable DSTORM deployment.",
|
2440
2441
|
"newDstormWizardSubtitle1": "Auto-checking system readiness for DSTORM creation.",
|
2441
2442
|
"newDstormWizardSubtitle2": "Review the list of compatible and incompatible hosts before proceeding.",
|
@@ -2448,6 +2449,7 @@
|
|
2448
2449
|
"metricsCollectionAndBenchmarkingForDisks": "Metrics Collection and Benchmarking for Disks",
|
2449
2450
|
"publicNetwork": "Public Network",
|
2450
2451
|
"clusterNetwork": "Cluster Network",
|
2452
|
+
"checkCompletedSuccessfully": "Check completed successfully.",
|
2451
2453
|
"serverFqdnOrIpAddress": "vCenter Server FQDN or IP address",
|
2452
2454
|
"import": "Import"
|
2453
2455
|
},
|
@@ -3288,7 +3290,8 @@
|
|
3288
3290
|
"customizeVMHardware": "Customize this virtual machine’s hardware.",
|
3289
3291
|
"autoPowerOn": "Auto Power On",
|
3290
3292
|
"powerVMAfterCreation": "Power on virtual machine after creation.",
|
3291
|
-
"selectTemplateForCreatingVm": "Select template for creating virtual machine"
|
3293
|
+
"selectTemplateForCreatingVm": "Select template for creating virtual machine",
|
3294
|
+
"selectAdvancedOptionsTargetVm": "Select advanced options for the target VM."
|
3292
3295
|
},
|
3293
3296
|
"feedback": {
|
3294
3297
|
"additionalDetailsHelp": "Additional Details Help",
|
@@ -1847,6 +1847,7 @@
|
|
1847
1847
|
"showDatastoresConnectedAllHosts": "Ցուցադրել տվյալների պահեստները, որոնք միացված են բոլոր հոսթներին",
|
1848
1848
|
"selectCloneOptions": "Ընտրեք կլոնավորման տարբերակները",
|
1849
1849
|
"selectOptionsTargetVm": "Ընտրեք թիրախային VM- ի պարամետրերը",
|
1850
|
+
"selectTargetVmOptions": "Ընտրեք նպատակային ՎՄ-ի պարամետրերը",
|
1850
1851
|
"selectFurtherCloneOptions": "Ընտրեք կլոնավորման հետագա տարբերակները",
|
1851
1852
|
"customizeTheOperatingSystem": "Անհատականացրեք օպերացիոն համակարգը",
|
1852
1853
|
"customizeThisVirtualMachineHardware": "Անհատականացրեք այս վիրտուալ մեքենայի ապարատը",
|
@@ -2448,6 +2449,7 @@
|
|
2448
2449
|
"metricsCollectionAndBenchmarkingForDisks": "Սկավառակների համար չափորոշիչների հավաքագրում և համեմատություն",
|
2449
2450
|
"publicNetwork": "Հանրային ցանց",
|
2450
2451
|
"clusterNetwork": "Կլաստերի ցանց",
|
2452
|
+
"checkCompletedSuccessfully": "Ստուգումը հաջողությամբ ավարտվեց։",
|
2451
2453
|
"serverFqdnOrIpAddress": "vCenter սերվերի FQDN կամ IP հասցե",
|
2452
2454
|
"import": "Ներմուծել"
|
2453
2455
|
},
|
@@ -3288,7 +3290,8 @@
|
|
3288
3290
|
"customizeVMHardware": "Անհատականացնել այս վիրտուալ մեքենայի սարքավորումները։",
|
3289
3291
|
"autoPowerOn": "Ավտոմատ միացում",
|
3290
3292
|
"powerVMAfterCreation": "Վիրտուալ մեքենան միացնել ստեղծումից հետո։",
|
3291
|
-
"selectTemplateForCreatingVm": "Ընտրեք վիրտուալ մեքենա ստեղծելու ձևանմուշ"
|
3293
|
+
"selectTemplateForCreatingVm": "Ընտրեք վիրտուալ մեքենա ստեղծելու ձևանմուշ",
|
3294
|
+
"selectAdvancedOptionsTargetVm": "Ընտրեք նպատակային ՎՄ-ի լրացուցիչ կարգավորումները։"
|
3292
3295
|
},
|
3293
3296
|
"feedback": {
|
3294
3297
|
"additionalDetailsHelp": "Լրացուցիչ մանրամասներ Օգնություն",
|
@@ -1847,6 +1847,7 @@
|
|
1847
1847
|
"showDatastoresConnectedAllHosts": "Барлық хосттарға қосылған деректер қоймаларын көрсету",
|
1848
1848
|
"selectCloneOptions": "Клондау опцияларын таңдаңыз",
|
1849
1849
|
"selectOptionsTargetVm": "Мақсатты параметрлерді таңдаңыз VM",
|
1850
|
+
"selectTargetVmOptions": "Мақсатты ВМ параметрлерін таңдаңыз",
|
1850
1851
|
"selectFurtherCloneOptions": "Қосымша клондау опцияларын таңдаңыз",
|
1851
1852
|
"customizeTheOperatingSystem": "Операциялық жүйені теңшеңіз",
|
1852
1853
|
"customizeThisVirtualMachineHardware": "Осы виртуалды машинаның аппараттық құралын теңшеңіз",
|
@@ -2447,6 +2448,7 @@
|
|
2447
2448
|
"metricsCollectionAndBenchmarkingForDisks": "Дисклерге арналған көрсеткіштерді жинау және салыстыру",
|
2448
2449
|
"publicNetwork": "Жалпы желі",
|
2449
2450
|
"clusterNetwork": "Кластер желісі",
|
2451
|
+
"checkCompletedSuccessfully": "Тексеру сәтті аяқталды.",
|
2450
2452
|
"serverFqdnOrIpAddress": "vCenter серверінің FQDN немесе IP мекенжайы",
|
2451
2453
|
"import": "Импорт"
|
2452
2454
|
},
|
@@ -3287,7 +3289,8 @@
|
|
3287
3289
|
"customizeVMHardware": "Бұл виртуалды машинаның жабдығын баптау.",
|
3288
3290
|
"autoPowerOn": "Автоқосу",
|
3289
3291
|
"powerVMAfterCreation": "Виртуалды машинаны жасау кейін қосу.",
|
3290
|
-
"selectTemplateForCreatingVm": "Виртуалды машина жасау үшін үлгіні таңдаңыз"
|
3292
|
+
"selectTemplateForCreatingVm": "Виртуалды машина жасау үшін үлгіні таңдаңыз",
|
3293
|
+
"selectAdvancedOptionsTargetVm": "Мақсатты ВМ үшін қосымша параметрлерді таңдаңыз."
|
3291
3294
|
},
|
3292
3295
|
"feedback": {
|
3293
3296
|
"additionalDetailsHelp": "Қосымша мәліметтер анықтамасы",
|
@@ -1847,6 +1847,7 @@
|
|
1847
1847
|
"showDatastoresConnectedAllHosts": "Показать хранилища данных, подключенные ко всем хостам",
|
1848
1848
|
"selectCloneOptions": "Выберите параметры клонирования",
|
1849
1849
|
"selectOptionsTargetVm": "Выберите параметры целевой ВМ",
|
1850
|
+
"selectTargetVmOptions": "Выберите параметры целевой ВМ",
|
1850
1851
|
"selectFurtherCloneOptions": "Выберите дополнительные параметры клонирования",
|
1851
1852
|
"customizeTheOperatingSystem": "Настроить операционную систему.",
|
1852
1853
|
"customizeThisVirtualMachineHardware": "Настроить оборудование виртуальной машины.",
|
@@ -2447,6 +2448,7 @@
|
|
2447
2448
|
"metricsCollectionAndBenchmarkingForDisks": "Сбор метрик и бенчмаркинг по дискам",
|
2448
2449
|
"publicNetwork": "Публичная сеть",
|
2449
2450
|
"clusterNetwork": "Сеть кластера",
|
2451
|
+
"checkCompletedSuccessfully": "Проверка завершена успешно.",
|
2450
2452
|
"serverFqdnOrIpAddress": "vCenter Server FQDN или IP-адрес",
|
2451
2453
|
"import": "Импорт"
|
2452
2454
|
},
|
@@ -3287,7 +3289,8 @@
|
|
3287
3289
|
"customizeVMHardware": "Настроить оборудование этой виртуальной машины.",
|
3288
3290
|
"autoPowerOn": "Автоматическое включение",
|
3289
3291
|
"powerVMAfterCreation": "Включить виртуальную машину после создания.",
|
3290
|
-
"selectTemplateForCreatingVm": "Выберите шаблон для создания виртуальной машины"
|
3292
|
+
"selectTemplateForCreatingVm": "Выберите шаблон для создания виртуальной машины",
|
3293
|
+
"selectAdvancedOptionsTargetVm": "Выберите дополнительные параметры для целевой ВМ."
|
3291
3294
|
},
|
3292
3295
|
"feedback": {
|
3293
3296
|
"additionalDetailsHelp": "Дополнительная информация Помощь",
|
@@ -1846,6 +1846,7 @@
|
|
1846
1846
|
"showDatastoresConnectedAllHosts": "显示连接到所有主机的数据存储",
|
1847
1847
|
"selectCloneOptions": "选择克隆选项",
|
1848
1848
|
"selectOptionsTargetVm": "选择目标VM的参数",
|
1849
|
+
"selectTargetVmOptions": "选择目标虚拟机选项",
|
1849
1850
|
"selectFurtherCloneOptions": "选择更多克隆选项",
|
1850
1851
|
"customizeTheOperatingSystem": "定制操作系统",
|
1851
1852
|
"customizeThisVirtualMachineHardware": "自定义该虚拟机的硬件",
|
@@ -2445,6 +2446,7 @@
|
|
2445
2446
|
"metricsCollectionAndBenchmarkingForDisks": "磁盘指标收集和基准测试",
|
2446
2447
|
"publicNetwork": "公共网络",
|
2447
2448
|
"clusterNetwork": "集群网络",
|
2449
|
+
"checkCompletedSuccessfully": "检查已成功完成。",
|
2448
2450
|
"serverFqdnOrIpAddress": "vCenter 服务器 FQDN 或 IP 地址",
|
2449
2451
|
"import": "导入"
|
2450
2452
|
},
|
@@ -3285,7 +3287,8 @@
|
|
3285
3287
|
"customizeVMHardware": "自定义此虚拟机的硬件。",
|
3286
3288
|
"autoPowerOn": "自动开机",
|
3287
3289
|
"powerVMAfterCreation": "创建后启动虚拟机。",
|
3288
|
-
"selectTemplateForCreatingVm": "选择创建虚拟机的模板"
|
3290
|
+
"selectTemplateForCreatingVm": "选择创建虚拟机的模板",
|
3291
|
+
"selectAdvancedOptionsTargetVm": "为目标虚拟机选择高级选项。"
|
3289
3292
|
},
|
3290
3293
|
"feedback": {
|
3291
3294
|
"additionalDetailsHelp": "其他详细信息帮助",
|
@@ -126,7 +126,7 @@ const tooltipStatus = computed<string>(() =>
|
|
126
126
|
--help-color: #4d5d69;
|
127
127
|
--help-icon-hover-color: #4d5d69;
|
128
128
|
--help-icon-active-color: #008fd6;
|
129
|
-
--help-close-icon-color: #
|
129
|
+
--help-close-icon-color: #213444;
|
130
130
|
}
|
131
131
|
:root.dark-theme {
|
132
132
|
--help-color: #e9eaec;
|
@@ -173,7 +173,7 @@ const tooltipStatus = computed<string>(() =>
|
|
173
173
|
|
174
174
|
:deep(.help-text) {
|
175
175
|
font-size: 13px;
|
176
|
-
line-height:
|
176
|
+
line-height: 18px;
|
177
177
|
color: var(--help-color);
|
178
178
|
word-break: break-word;
|
179
179
|
white-space: normal;
|
@@ -39,12 +39,14 @@
|
|
39
39
|
:selected-nav-item="selectedNavItem"
|
40
40
|
:compatibility-info="compatibilityInfo"
|
41
41
|
:is-show-power-on="isShowPowerOn"
|
42
|
+
:is-show-select-template="isShowSelectTemplate"
|
42
43
|
:compute-resource-submit="computeResourceSubmit"
|
43
44
|
:data-center="props.dataCenter"
|
44
45
|
:compute-resource="props.computeResource"
|
45
46
|
:compute-resource-tree="props.computeResourceTree"
|
46
47
|
:vmt-settings="props.vmtSettings"
|
47
48
|
:is-loading="isLoading"
|
49
|
+
:selected-template-id="props.selectedTemplateId"
|
48
50
|
@check-name="emits('check-name', $event)"
|
49
51
|
@get-storage="emits('get-storage', $event)"
|
50
52
|
@get-folders-or-files="emits('get-folders-or-files', $event)"
|
@@ -223,6 +225,7 @@ const props = withDefaults(
|
|
223
225
|
dataCenter?: UI_I_TreeNode // для сферы
|
224
226
|
computeResource?: UI_I_TreeNode // для сферы
|
225
227
|
computeResourceTree?: UI_I_TreeNode[] // для сферы
|
228
|
+
selectedTemplateId?: string // для сферы
|
226
229
|
}>(),
|
227
230
|
{
|
228
231
|
capabilities: undefined,
|
@@ -230,6 +233,7 @@ const props = withDefaults(
|
|
230
233
|
dataCenter: undefined,
|
231
234
|
computeResource: undefined,
|
232
235
|
computeResourceTree: undefined,
|
236
|
+
selectedTemplateId: '',
|
233
237
|
}
|
234
238
|
)
|
235
239
|
|
@@ -292,6 +296,12 @@ watch(
|
|
292
296
|
const selectedScheme = computed<number[]>(() => wizard.selectedScheme.value)
|
293
297
|
// const alertMessages = computed<string[][]>(() => wizard.alertMessages.value)
|
294
298
|
|
299
|
+
const isShowSelectTemplate = computed<boolean>(
|
300
|
+
() =>
|
301
|
+
wizard.selectedStepId === dynamicSteps.selectTemplate &&
|
302
|
+
selectedCreateType.value === '1'
|
303
|
+
)
|
304
|
+
|
295
305
|
const isShowPowerOn = computed<boolean>(
|
296
306
|
() =>
|
297
307
|
wizard.selectedStepId > dynamicSteps.customizeHardware &&
|
@@ -5,6 +5,8 @@
|
|
5
5
|
:title="localization.common.newVirtualMachine2"
|
6
6
|
:texts="texts"
|
7
7
|
:is-loading="props.isLoading"
|
8
|
+
:class="[{ 'select-template-step': props.isShowSelectTemplate }]"
|
9
|
+
test-id="add-vm-or-vmt-wizard"
|
8
10
|
show
|
9
11
|
@change-steps="emits('change-steps', $event)"
|
10
12
|
@hide="emits('hide')"
|
@@ -36,6 +38,7 @@
|
|
36
38
|
<common-vm-actions-common-select-template
|
37
39
|
:template-submit="props.templateSubmit"
|
38
40
|
:templates-tree="props.templatesTree"
|
41
|
+
:selected-template-id="props.selectedTemplateId"
|
39
42
|
@submit="emits('change-template', $event)"
|
40
43
|
/>
|
41
44
|
</template>
|
@@ -163,7 +166,7 @@
|
|
163
166
|
<div ref="subTitleBlockSelectOptions">
|
164
167
|
<div class="subtitle-block">
|
165
168
|
<ui-wizard-subtitle
|
166
|
-
:sub-title="localization.vmWizard.
|
169
|
+
:sub-title="localization.vmWizard.selectAdvancedOptionsTargetVm"
|
167
170
|
/>
|
168
171
|
</div>
|
169
172
|
</div>
|
@@ -392,7 +395,7 @@
|
|
392
395
|
/>
|
393
396
|
</div>
|
394
397
|
|
395
|
-
<div class="divider my-4"></div>
|
398
|
+
<div v-if="props.isShowPowerOn" class="divider my-4"></div>
|
396
399
|
|
397
400
|
<common-ready-to-complete
|
398
401
|
v-if="selectedStep.id === dynamicSteps.readyComplete"
|
@@ -505,12 +508,14 @@ const props = withDefaults(
|
|
505
508
|
selectedNavItem: UI_T_SelectedNavItem
|
506
509
|
compatibilityInfo: string
|
507
510
|
isShowPowerOn: boolean
|
511
|
+
isShowSelectTemplate: boolean
|
508
512
|
computeResourceSubmit: null | Function // для сферы
|
509
513
|
dataCenter?: UI_I_TreeNode // для сферы
|
510
514
|
computeResource?: UI_I_TreeNode // для сферы
|
511
515
|
computeResourceTree?: UI_I_TreeNode[] // для сферы
|
512
516
|
vmtSettings?: UI_I_VmSettings | null // для шаблонов
|
513
517
|
isLoading?: boolean
|
518
|
+
selectedTemplateId?: string
|
514
519
|
}>(),
|
515
520
|
{
|
516
521
|
dataCenter: undefined,
|
@@ -518,6 +523,7 @@ const props = withDefaults(
|
|
518
523
|
computeResourceTree: undefined,
|
519
524
|
vmtSettings: undefined,
|
520
525
|
isLoading: undefined,
|
526
|
+
selectedTemplateId: '',
|
521
527
|
}
|
522
528
|
)
|
523
529
|
|
@@ -665,4 +671,9 @@ const isCompatibilityAlertWrapperEmpty = ref<boolean>(false)
|
|
665
671
|
min-height: 1px;
|
666
672
|
background-color: var(--ready-to-complate-run-border-color);
|
667
673
|
}
|
674
|
+
.select-template-step {
|
675
|
+
:deep(.ui-wizard-content-right-bottom) {
|
676
|
+
height: 8px;
|
677
|
+
}
|
678
|
+
}
|
668
679
|
</style>
|
@@ -1,23 +1,23 @@
|
|
1
|
-
<template>
|
2
|
-
<common-vm-actions-common-customize-hardware-virtual-hardware-new-hard-disk-maximum-size-new
|
3
|
-
v-if="isNewView"
|
4
|
-
:free-gb="freeGb"
|
5
|
-
/>
|
6
|
-
<common-vm-actions-common-customize-hardware-virtual-hardware-new-hard-disk-maximum-size-old
|
7
|
-
v-else
|
8
|
-
:free-gb="freeGb"
|
9
|
-
/>
|
10
|
-
</template>
|
11
|
-
|
12
|
-
<script setup lang="ts">
|
13
|
-
const props = defineProps<{
|
14
|
-
freeMb: number
|
15
|
-
}>()
|
16
|
-
|
17
|
-
const { $store, $binary }: any = useNuxtApp()
|
18
|
-
const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
|
19
|
-
|
20
|
-
const freeGb = computed<number>(() => $binary.round(props.freeMb))
|
21
|
-
</script>
|
22
|
-
|
23
|
-
<style scoped></style>
|
1
|
+
<template>
|
2
|
+
<common-vm-actions-common-customize-hardware-virtual-hardware-new-hard-disk-maximum-size-new
|
3
|
+
v-if="isNewView"
|
4
|
+
:free-gb="freeGb"
|
5
|
+
/>
|
6
|
+
<common-vm-actions-common-customize-hardware-virtual-hardware-new-hard-disk-maximum-size-old
|
7
|
+
v-else
|
8
|
+
:free-gb="freeGb"
|
9
|
+
/>
|
10
|
+
</template>
|
11
|
+
|
12
|
+
<script setup lang="ts">
|
13
|
+
const props = defineProps<{
|
14
|
+
freeMb: number
|
15
|
+
}>()
|
16
|
+
|
17
|
+
const { $store, $binary }: any = useNuxtApp()
|
18
|
+
const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
|
19
|
+
|
20
|
+
const freeGb = computed<number>(() => $binary.round(props.freeMb))
|
21
|
+
</script>
|
22
|
+
|
23
|
+
<style scoped></style>
|
@@ -1,7 +1,11 @@
|
|
1
1
|
<template>
|
2
2
|
<div
|
3
3
|
ref="mainContainer"
|
4
|
-
:class="[
|
4
|
+
:class="[
|
5
|
+
'select-options grid gap-3 mt-4',
|
6
|
+
{ 'is-sm-size': isContainerSm },
|
7
|
+
{ 'three-items': !props.isCreateTemplate },
|
8
|
+
]"
|
5
9
|
>
|
6
10
|
<div
|
7
11
|
:class="[
|
@@ -17,8 +21,14 @@
|
|
17
21
|
:title="localization.vmWizard.customizeOS"
|
18
22
|
:disabled="props.isCreateTemplate"
|
19
23
|
test-id="customize-os"
|
24
|
+
size="md"
|
20
25
|
/>
|
21
|
-
<p
|
26
|
+
<p
|
27
|
+
:class="[
|
28
|
+
'checkbox-block-description mt-2 ml-7 mr-3',
|
29
|
+
{ disabled: props.isCreateTemplate },
|
30
|
+
]"
|
31
|
+
>
|
22
32
|
{{ localization.vmWizard.customizeOperatingSystem }}
|
23
33
|
</p>
|
24
34
|
</div>
|
@@ -37,8 +47,14 @@
|
|
37
47
|
:title="localization.common.customizeHardware"
|
38
48
|
:disabled="props.isCreateTemplate"
|
39
49
|
test-id="customize-hardware"
|
50
|
+
size="md"
|
40
51
|
/>
|
41
|
-
<p
|
52
|
+
<p
|
53
|
+
:class="[
|
54
|
+
'checkbox-block-description mt-2 ml-7 mr-3',
|
55
|
+
{ disabled: props.isCreateTemplate },
|
56
|
+
]"
|
57
|
+
>
|
42
58
|
{{ localization.vmWizard.customizeVMHardware }}
|
43
59
|
</p>
|
44
60
|
</div>
|
@@ -56,8 +72,14 @@
|
|
56
72
|
:title="localization.vmWizard.autoPowerOn"
|
57
73
|
:disabled="props.isCreateTemplate"
|
58
74
|
test-id="power-on"
|
75
|
+
size="md"
|
59
76
|
/>
|
60
|
-
<p
|
77
|
+
<p
|
78
|
+
:class="[
|
79
|
+
'checkbox-block-description mt-2 ml-7 mr-3',
|
80
|
+
{ disabled: props.isCreateTemplate },
|
81
|
+
]"
|
82
|
+
>
|
61
83
|
{{ localization.vmWizard.powerVMAfterCreation }}
|
62
84
|
</p>
|
63
85
|
</div>
|
@@ -137,9 +159,18 @@ watch(
|
|
137
159
|
)
|
138
160
|
</script>
|
139
161
|
|
162
|
+
<style>
|
163
|
+
:root {
|
164
|
+
--select-option-target-vm-checkbox-description-disabled: #bdc3c7;
|
165
|
+
}
|
166
|
+
:root.dark-theme {
|
167
|
+
--select-option-target-vm-checkbox-description-disabled: #bdc3c770;
|
168
|
+
}
|
169
|
+
</style>
|
170
|
+
|
140
171
|
<style scoped lang="scss">
|
141
172
|
.select-options {
|
142
|
-
grid-template-columns: 1fr 1fr
|
173
|
+
grid-template-columns: 1fr 1fr;
|
143
174
|
grid-template-rows: max-content;
|
144
175
|
overflow-y: auto;
|
145
176
|
padding-bottom: 16px;
|
@@ -148,6 +179,10 @@ watch(
|
|
148
179
|
grid-template-columns: 1fr;
|
149
180
|
}
|
150
181
|
|
182
|
+
&.three-items {
|
183
|
+
grid-template-columns: 1fr 1fr 1fr;
|
184
|
+
}
|
185
|
+
|
151
186
|
.checkbox-container {
|
152
187
|
width: 100%;
|
153
188
|
background-color: var(--select-bg);
|
@@ -172,11 +207,20 @@ watch(
|
|
172
207
|
|
173
208
|
:deep(.ui-checkbox-label) {
|
174
209
|
align-items: flex-start;
|
210
|
+
|
211
|
+
.ui-checkbox-label-text {
|
212
|
+
line-height: 18px;
|
213
|
+
margin-top: 1px;
|
214
|
+
}
|
175
215
|
}
|
176
216
|
|
177
217
|
.checkbox-block-description {
|
178
218
|
color: #9da6ad;
|
179
219
|
line-height: 18px;
|
220
|
+
|
221
|
+
&.disabled {
|
222
|
+
color: var(--select-option-target-vm-checkbox-description-disabled);
|
223
|
+
}
|
180
224
|
}
|
181
225
|
}
|
182
226
|
}
|
@@ -3,6 +3,7 @@
|
|
3
3
|
v-if="isNewView"
|
4
4
|
:templates-tree="props.templatesTree"
|
5
5
|
:errors="errors"
|
6
|
+
:selected-template-id="props.selectedTemplateId"
|
6
7
|
@remove="onRemove"
|
7
8
|
@select="onSelect"
|
8
9
|
/>
|
@@ -19,10 +20,16 @@
|
|
19
20
|
import type { UI_I_Localization } from '~/lib/models/interfaces'
|
20
21
|
import type { UI_I_TreeNode } from '~/components/common/recursionTree/lib/models/interfaces'
|
21
22
|
|
22
|
-
const props =
|
23
|
-
|
24
|
-
|
25
|
-
|
23
|
+
const props = withDefaults(
|
24
|
+
defineProps<{
|
25
|
+
templateSubmit: null | Function
|
26
|
+
templatesTree: UI_I_TreeNode[]
|
27
|
+
selectedTemplateId?: string
|
28
|
+
}>(),
|
29
|
+
{
|
30
|
+
selectedTemplateId: '',
|
31
|
+
}
|
32
|
+
)
|
26
33
|
const emits = defineEmits<{
|
27
34
|
(event: 'submit', value: UI_I_TreeNode): void
|
28
35
|
}>()
|
@@ -1,5 +1,5 @@
|
|
1
1
|
<template>
|
2
|
-
<div class="select-template">
|
2
|
+
<div :class="['select-template', { 'has-error': props.errors.length }]">
|
3
3
|
<ui-alert
|
4
4
|
v-if="props.errors.length"
|
5
5
|
:messages="props.errors"
|
@@ -11,6 +11,7 @@
|
|
11
11
|
/>
|
12
12
|
<common-vm-actions-common-select-template-tree-view
|
13
13
|
:templates-tree="props.templatesTree"
|
14
|
+
:selected-template-id="props.selectedTemplateId"
|
14
15
|
@select-node="emits('select', $event)"
|
15
16
|
/>
|
16
17
|
</div>
|
@@ -19,10 +20,16 @@
|
|
19
20
|
<script setup lang="ts">
|
20
21
|
import type { UI_I_TreeNode } from '~/components/common/recursionTree/lib/models/interfaces'
|
21
22
|
|
22
|
-
const props =
|
23
|
-
|
24
|
-
|
25
|
-
|
23
|
+
const props = withDefaults(
|
24
|
+
defineProps<{
|
25
|
+
templatesTree: UI_I_TreeNode[]
|
26
|
+
errors: string[]
|
27
|
+
selectedTemplateId?: string
|
28
|
+
}>(),
|
29
|
+
{
|
30
|
+
selectedTemplateId: '',
|
31
|
+
}
|
32
|
+
)
|
26
33
|
|
27
34
|
const emits = defineEmits<{
|
28
35
|
(event: 'remove'): void
|
@@ -35,6 +42,16 @@ const emits = defineEmits<{
|
|
35
42
|
height: calc(100% - 12px);
|
36
43
|
overflow: hidden;
|
37
44
|
|
45
|
+
&.has-error {
|
46
|
+
display: grid;
|
47
|
+
grid-template-rows: max-content 1fr;
|
48
|
+
|
49
|
+
.tree-view-wrap {
|
50
|
+
margin-top: 0;
|
51
|
+
height: 100%;
|
52
|
+
}
|
53
|
+
}
|
54
|
+
|
38
55
|
.alert-template {
|
39
56
|
margin-bottom: 16px;
|
40
57
|
}
|
@@ -22,10 +22,16 @@
|
|
22
22
|
<script setup lang="ts">
|
23
23
|
import type { UI_I_TreeNode } from '~/components/common/recursionTree/lib/models/interfaces'
|
24
24
|
|
25
|
-
const props =
|
26
|
-
|
27
|
-
|
28
|
-
|
25
|
+
const props = withDefaults(
|
26
|
+
defineProps<{
|
27
|
+
loading: boolean
|
28
|
+
nodes: UI_I_TreeNode[]
|
29
|
+
selectedTemplateId?: string
|
30
|
+
}>(),
|
31
|
+
{
|
32
|
+
selectedTemplateId: '',
|
33
|
+
}
|
34
|
+
)
|
29
35
|
const emits = defineEmits<{
|
30
36
|
(event: 'select-node', value: UI_I_TreeNode): void
|
31
37
|
(
|
@@ -37,9 +43,29 @@ const emits = defineEmits<{
|
|
37
43
|
): void
|
38
44
|
}>()
|
39
45
|
|
46
|
+
const { $recursion }: any = useNuxtApp()
|
47
|
+
|
40
48
|
const onToggleNode = (node: UI_I_TreeNode): void => {
|
41
49
|
emits('get-nodes', { node, cb: () => {} })
|
42
50
|
}
|
51
|
+
|
52
|
+
onMounted(() => {
|
53
|
+
if (!props.selectedTemplateId) return
|
54
|
+
|
55
|
+
$recursion.findAndActivate(
|
56
|
+
props.nodes,
|
57
|
+
['vm_template', props.selectedTemplateId],
|
58
|
+
['type', 'id'],
|
59
|
+
'nodes'
|
60
|
+
)
|
61
|
+
const selectedNode = $recursion.find(
|
62
|
+
props.nodes,
|
63
|
+
props.selectedTemplateId,
|
64
|
+
'id',
|
65
|
+
'nodes'
|
66
|
+
)
|
67
|
+
emits('select-node', selectedNode)
|
68
|
+
})
|
43
69
|
</script>
|
44
70
|
|
45
71
|
<style>
|
@@ -3,6 +3,7 @@
|
|
3
3
|
v-if="isNewView"
|
4
4
|
:loading="loading"
|
5
5
|
:nodes="nodes"
|
6
|
+
:selected-template-id="props.selectedTemplateId"
|
6
7
|
@select-node="onSelectNode"
|
7
8
|
@get-nodes="onShowNodes"
|
8
9
|
/>
|
@@ -18,9 +19,15 @@
|
|
18
19
|
<script setup lang="ts">
|
19
20
|
import type { UI_I_TreeNode } from '~/components/common/recursionTree/lib/models/interfaces'
|
20
21
|
|
21
|
-
const props =
|
22
|
-
|
23
|
-
|
22
|
+
const props = withDefaults(
|
23
|
+
defineProps<{
|
24
|
+
templatesTree: UI_I_TreeNode[]
|
25
|
+
selectedTemplateId?: string
|
26
|
+
}>(),
|
27
|
+
{
|
28
|
+
selectedTemplateId: '',
|
29
|
+
}
|
30
|
+
)
|
24
31
|
|
25
32
|
const emits = defineEmits<{
|
26
33
|
(event: 'select-node', value: UI_I_TreeNode): void
|