bfg-common 1.5.229 → 1.5.231
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/img/icons/icons-sprite-dark-3.svg +227 -227
- package/assets/img/icons/icons-sprite-dark-5.svg +488 -488
- package/assets/img/icons/icons-sprite-light-3.svg +227 -227
- package/assets/img/icons/icons-sprite-light-5.svg +488 -488
- package/assets/localization/local_be.json +8 -4
- package/assets/localization/local_en.json +15 -11
- package/assets/localization/local_hy.json +8 -4
- package/assets/localization/local_kk.json +8 -4
- package/assets/localization/local_ru.json +10 -6
- package/assets/localization/local_zh.json +8 -4
- package/assets/scss/common/normalize.scss +1 -0
- package/components/atoms/table/info/lib/models/interfaces.ts +10 -10
- package/components/common/browse/blocks/lib/models/types.ts +1 -1
- package/components/common/browse/lib/models/interfaces.ts +5 -5
- package/components/common/diagramMain/adapter/AdapterItems.vue +61 -61
- package/components/common/diagramMain/lib/config/initial.ts +50 -50
- package/components/common/diagramMain/lib/models/types.ts +21 -21
- package/components/common/diagramMain/lib/utils/utils.ts +331 -331
- package/components/common/diagramMain/modals/editSettings/ConfirmTeamingSettingsModal.vue +40 -40
- package/components/common/diagramMain/modals/editSettings/tabs/NetworkProperties.vue +214 -214
- package/components/common/diagramMain/modals/editSettings/tabs/Security.vue +189 -189
- package/components/common/diagramMain/modals/editSettings/tabs/SwitchProperties.vue +163 -163
- package/components/common/diagramMain/modals/editSettings/tabs/TeamingFailover.vue +175 -175
- package/components/common/diagramMain/modals/editSettings/tabs/port/IpvFourSettings.vue +346 -346
- package/components/common/diagramMain/modals/lib/config/initial.ts +180 -180
- package/components/common/diagramMain/modals/lib/config/vmKernelAdapter.ts +90 -90
- package/components/common/diagramMain/modals/lib/mappers/mappers.ts +87 -87
- package/components/common/diagramMain/modals/lib/utils/index.ts +24 -24
- package/components/common/diagramMain/modals/migrateVmkernelAdapter/lib/config/steps.ts +114 -114
- package/components/common/diagramMain/modals/migrateVmkernelAdapter/steps/ConnectionSettings.vue +169 -169
- package/components/common/diagramMain/modals/migrateVmkernelAdapter/steps/SelectVmkernelAdapter.vue +159 -159
- package/components/common/diagramMain/modals/migrateVmkernelAdapter/validations/common.ts +14 -14
- package/components/common/diagramMain/modals/migrateVmkernelAdapter/validations/connectionSettings.ts +137 -137
- package/components/common/diagramMain/modals/migrateVmkernelAdapter/validations/selectVmkernelAdapter.ts +52 -52
- package/components/common/diagramMain/modals/migrateVmkernelAdapter/validations/validations.ts +19 -19
- package/components/common/diagramMain/port/Ports.vue +47 -47
- package/components/common/readyToComplete/New.vue +16 -1
- package/components/common/vm/actions/add/New.vue +98 -36
- package/components/common/vm/actions/add/lib/config/steps.ts +1 -1
- package/components/common/vm/actions/common/customizeHardware/CustomizeHardwareNew.vue +14 -3
- package/components/common/vm/actions/common/customizeHardware/virtualHardware/VirtualHardwareNew.vue +2 -2
- package/components/common/vm/actions/common/customizeHardware/vmoptions/VmoptionsNew.vue +1 -1
- package/components/common/vm/actions/common/select/compatibility/Compatibility.vue +8 -0
- package/components/common/vm/actions/common/select/compatibility/New.vue +14 -7
- package/components/common/vm/actions/common/select/computeResource/ComputeResource.vue +8 -0
- package/components/common/vm/actions/common/select/computeResource/New.vue +29 -7
- package/components/common/vm/actions/common/select/createType/New.vue +18 -10
- package/components/common/vm/actions/common/select/name/Name.vue +9 -2
- package/components/common/vm/actions/common/select/name/New.vue +36 -8
- package/components/common/vm/actions/common/select/os/New.vue +16 -10
- package/components/common/vm/actions/common/select/storage/Storage.vue +8 -0
- package/components/common/vm/actions/common/select/storage/new/New.vue +27 -8
- package/components/common/vm/actions/common/select/storage/new/lib/config/table.ts +9 -9
- package/components/common/vm/actions/editSettings/new/New.vue +1 -1
- package/package.json +1 -1
|
@@ -49,7 +49,10 @@
|
|
|
49
49
|
>
|
|
50
50
|
<template #subTitle>
|
|
51
51
|
<div ref="subTitleBlockName" class="subtitle-block">
|
|
52
|
-
<div
|
|
52
|
+
<div
|
|
53
|
+
id="name-alert-wrapper"
|
|
54
|
+
:class="[{ 'mb-4': !isNameAlertWrapperEmpty }]"
|
|
55
|
+
></div>
|
|
53
56
|
<ui-wizard-subtitle
|
|
54
57
|
:sub-title="
|
|
55
58
|
localization.vmWizard.specifyUniqueNameAndTargetLocationForVm
|
|
@@ -68,6 +71,7 @@
|
|
|
68
71
|
:data-center="props.dataCenter"
|
|
69
72
|
@submit="emits('change-name', $event)"
|
|
70
73
|
@check-name="emits('check-name', $event)"
|
|
74
|
+
@has-errors="isNameAlertWrapperEmpty = $event"
|
|
71
75
|
/>
|
|
72
76
|
</template>
|
|
73
77
|
</ui-wizard-block>
|
|
@@ -79,14 +83,19 @@
|
|
|
79
83
|
:sub-title-height="heightComputeResource"
|
|
80
84
|
>
|
|
81
85
|
<template #subTitle>
|
|
82
|
-
<div ref="subTitleBlockComputeResource"
|
|
83
|
-
<div
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
86
|
+
<div ref="subTitleBlockComputeResource">
|
|
87
|
+
<div class="subtitle-block">
|
|
88
|
+
<div
|
|
89
|
+
id="compute-resource-alert-wrapper"
|
|
90
|
+
:class="[{ 'mb-4': !isComputeResourceAlertWrapperEmpty }]"
|
|
91
|
+
></div>
|
|
92
|
+
<ui-wizard-subtitle
|
|
93
|
+
:sub-title="
|
|
94
|
+
localization.vmWizard
|
|
95
|
+
.selectDestinationComputeResourceForThisOperation
|
|
96
|
+
"
|
|
97
|
+
/>
|
|
98
|
+
</div>
|
|
90
99
|
</div>
|
|
91
100
|
</template>
|
|
92
101
|
<template #content>
|
|
@@ -107,6 +116,7 @@
|
|
|
107
116
|
emits('show-compute-resource-tree', $event)
|
|
108
117
|
"
|
|
109
118
|
@clear-compute-resource-tree="emits('clear-compute-resource-tree')"
|
|
119
|
+
@has-errors="isComputeResourceAlertWrapperEmpty = $event"
|
|
110
120
|
/>
|
|
111
121
|
</template>
|
|
112
122
|
</ui-wizard-block>
|
|
@@ -115,13 +125,18 @@
|
|
|
115
125
|
:sub-title-height="heightStorage"
|
|
116
126
|
>
|
|
117
127
|
<template #subTitle>
|
|
118
|
-
<div ref="subTitleBlockStorage"
|
|
119
|
-
<div
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
128
|
+
<div ref="subTitleBlockStorage">
|
|
129
|
+
<div class="subtitle-block">
|
|
130
|
+
<div
|
|
131
|
+
id="storage-alert-wrapper"
|
|
132
|
+
:class="[{ 'mb-4': !isStorageAlertWrapperEmpty }]"
|
|
133
|
+
></div>
|
|
134
|
+
<ui-wizard-subtitle
|
|
135
|
+
:sub-title="
|
|
136
|
+
localization.vmWizard.selectStorageForConfigurationDiskFiles
|
|
137
|
+
"
|
|
138
|
+
/>
|
|
139
|
+
</div>
|
|
125
140
|
</div>
|
|
126
141
|
</template>
|
|
127
142
|
<template #content>
|
|
@@ -131,6 +146,7 @@
|
|
|
131
146
|
:get-datastore-table-func="props.getDatastoreTableFunc"
|
|
132
147
|
:storage="props.vmtSettings?.storage"
|
|
133
148
|
@submit="emits('change-storage', $event)"
|
|
149
|
+
@has-errors="isStorageAlertWrapperEmpty = $event"
|
|
134
150
|
/>
|
|
135
151
|
</template>
|
|
136
152
|
</ui-wizard-block>
|
|
@@ -146,11 +162,16 @@
|
|
|
146
162
|
:sub-title-height="heightCompatibility"
|
|
147
163
|
>
|
|
148
164
|
<template #subTitle>
|
|
149
|
-
<div ref="subTitleBlockCompatibility"
|
|
150
|
-
<div
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
165
|
+
<div ref="subTitleBlockCompatibility">
|
|
166
|
+
<div class="subtitle-block">
|
|
167
|
+
<div
|
|
168
|
+
id="compatibility-alert-wrapper"
|
|
169
|
+
:class="[{ 'mb-4': !isCompatibilityAlertWrapperEmpty }]"
|
|
170
|
+
></div>
|
|
171
|
+
<ui-wizard-subtitle
|
|
172
|
+
:sub-title="localization.vmWizard.compatibilitySubTitle"
|
|
173
|
+
/>
|
|
174
|
+
</div>
|
|
154
175
|
</div>
|
|
155
176
|
</template>
|
|
156
177
|
<template #content>
|
|
@@ -159,6 +180,7 @@
|
|
|
159
180
|
:error-validation-fields="props.errorValidationFields"
|
|
160
181
|
@change="emits('change-compatibility', $event)"
|
|
161
182
|
@remove-error-by-title="emits('remove-error-by-title', $event)"
|
|
183
|
+
@has-errors="isCompatibilityAlertWrapperEmpty = $event"
|
|
162
184
|
/>
|
|
163
185
|
</template>
|
|
164
186
|
</ui-wizard-block>
|
|
@@ -170,15 +192,19 @@
|
|
|
170
192
|
:sub-title-height="heightOs"
|
|
171
193
|
>
|
|
172
194
|
<template #subTitle>
|
|
173
|
-
<div ref="subTitleBlockOs"
|
|
174
|
-
<div
|
|
175
|
-
<
|
|
176
|
-
|
|
177
|
-
|
|
195
|
+
<div ref="subTitleBlockOs">
|
|
196
|
+
<div class="subtitle-block">
|
|
197
|
+
<!-- <div id="compatibility-alert-wrapper"></div>-->
|
|
198
|
+
<ui-wizard-subtitle
|
|
199
|
+
:sub-title="localization.common.chooseGuestOSInstalledVM"
|
|
200
|
+
/>
|
|
201
|
+
</div>
|
|
178
202
|
</div>
|
|
179
203
|
</template>
|
|
180
204
|
<template #content>
|
|
181
|
-
<div
|
|
205
|
+
<div
|
|
206
|
+
class="select-block-wrap overflow-auto h-full flex flex-col pb-4"
|
|
207
|
+
>
|
|
182
208
|
<common-vm-actions-common-select-os
|
|
183
209
|
v-model:machine-type="vmForm.guestMachineType"
|
|
184
210
|
v-model:guest-os-family="vmForm.guestOsFamily"
|
|
@@ -201,9 +227,7 @@
|
|
|
201
227
|
v-if="selectedStep.id === dynamicSteps.customizeHardware"
|
|
202
228
|
>
|
|
203
229
|
<template #content>
|
|
204
|
-
<div
|
|
205
|
-
class="select-block-wrap overflow-auto h-full flex flex-col pr-8"
|
|
206
|
-
>
|
|
230
|
+
<div class="select-block-wrap customize-hardware flex flex-col">
|
|
207
231
|
<common-vm-actions-common-customize-hardware
|
|
208
232
|
:project="props.project"
|
|
209
233
|
:vm-name="vmForm.name"
|
|
@@ -244,7 +268,9 @@
|
|
|
244
268
|
@get-networks-table="emits('get-networks-table', $event)"
|
|
245
269
|
@get-pci-devices="emits('get-pci-devices')"
|
|
246
270
|
/>
|
|
247
|
-
<div
|
|
271
|
+
<div
|
|
272
|
+
class="vm-hardware-version-wrap justify-end flex flex-1 mt-4 mr-8"
|
|
273
|
+
>
|
|
248
274
|
<span class="vm-hardware-version">{{
|
|
249
275
|
props.compatibilityInfo
|
|
250
276
|
}}</span>
|
|
@@ -320,16 +346,29 @@
|
|
|
320
346
|
</div>
|
|
321
347
|
</template>
|
|
322
348
|
</ui-wizard-block>
|
|
323
|
-
<ui-wizard-block
|
|
349
|
+
<ui-wizard-block
|
|
350
|
+
v-if="selectedStep.id === dynamicSteps.readyComplete"
|
|
351
|
+
:sub-title-height="heightReadyComplete"
|
|
352
|
+
>
|
|
353
|
+
<template #subTitle>
|
|
354
|
+
<div ref="subTitleBlockReadyComplete">
|
|
355
|
+
<div class="subtitle-block">
|
|
356
|
+
<ui-wizard-subtitle
|
|
357
|
+
:sub-title="localization.vmWizard.lastCreateSubtitle"
|
|
358
|
+
/>
|
|
359
|
+
</div>
|
|
360
|
+
</div>
|
|
361
|
+
</template>
|
|
324
362
|
<template #content>
|
|
325
363
|
<div
|
|
326
|
-
class="select-block-wrap
|
|
364
|
+
class="select-block-wrap h-full flex flex-col mt-3"
|
|
327
365
|
>
|
|
328
366
|
<div v-if="props.isShowPowerOn" class="power-on-by-default-wrap">
|
|
329
367
|
<ui-checkbox
|
|
330
368
|
v-model="isPowerOnByDefault"
|
|
331
369
|
test-id="power-on-by-default"
|
|
332
370
|
:label-text="localization.common.powerOnByDefault"
|
|
371
|
+
size="md"
|
|
333
372
|
/>
|
|
334
373
|
</div>
|
|
335
374
|
|
|
@@ -339,7 +378,7 @@
|
|
|
339
378
|
v-if="selectedStep.id === dynamicSteps.readyComplete"
|
|
340
379
|
:data="props.readyCompleteTableInfo"
|
|
341
380
|
/>
|
|
342
|
-
<div class="vm-hardware-version-wrap justify-end flex flex-1 mt-4">
|
|
381
|
+
<div class="vm-hardware-version-wrap justify-end flex flex-1 mt-4 pb-4">
|
|
343
382
|
<span class="vm-hardware-version">{{
|
|
344
383
|
props.compatibilityInfo
|
|
345
384
|
}}</span>
|
|
@@ -515,6 +554,15 @@ const { height: heightCompatibility } = useElementSize(
|
|
|
515
554
|
)
|
|
516
555
|
const subTitleBlockOs = ref<HTMLElement | null>(null)
|
|
517
556
|
const { height: heightOs } = useElementSize(subTitleBlockOs)
|
|
557
|
+
const subTitleBlockReadyComplete = ref<HTMLElement | null>(null)
|
|
558
|
+
const { height: heightReadyComplete } = useElementSize(
|
|
559
|
+
subTitleBlockReadyComplete
|
|
560
|
+
)
|
|
561
|
+
|
|
562
|
+
const isNameAlertWrapperEmpty = ref<boolean>(false)
|
|
563
|
+
const isComputeResourceAlertWrapperEmpty = ref<boolean>(false)
|
|
564
|
+
const isStorageAlertWrapperEmpty = ref<boolean>(false)
|
|
565
|
+
const isCompatibilityAlertWrapperEmpty = ref<boolean>(false)
|
|
518
566
|
</script>
|
|
519
567
|
|
|
520
568
|
<style>
|
|
@@ -531,14 +579,28 @@ const { height: heightOs } = useElementSize(subTitleBlockOs)
|
|
|
531
579
|
.subtitle-block {
|
|
532
580
|
display: flex;
|
|
533
581
|
flex-direction: column;
|
|
534
|
-
row-gap: 16px;
|
|
535
582
|
border-bottom: 1px solid var(--wizard-line);
|
|
536
583
|
padding-bottom: 12px;
|
|
537
|
-
//margin-bottom: 16px;
|
|
538
584
|
}
|
|
539
585
|
.select-block-wrap {
|
|
586
|
+
&.customize-hardware {
|
|
587
|
+
height: inherit;
|
|
588
|
+
max-height: 100%;
|
|
589
|
+
padding-bottom: 40px;
|
|
590
|
+
|
|
591
|
+
:deep(.tabs-wrapper),
|
|
592
|
+
:deep(.errors-alert),
|
|
593
|
+
:deep(.action-wrap) {
|
|
594
|
+
margin-right: 32px;
|
|
595
|
+
}
|
|
596
|
+
:deep(.virtual-hardware-content-block),
|
|
597
|
+
:deep(.vm-options) {
|
|
598
|
+
padding-right: 18px;
|
|
599
|
+
}
|
|
600
|
+
}
|
|
540
601
|
.vm-hardware-version-wrap {
|
|
541
602
|
align-items: flex-end;
|
|
603
|
+
text-align: right;
|
|
542
604
|
|
|
543
605
|
.vm-hardware-version {
|
|
544
606
|
font-size: 13px;
|
|
@@ -189,7 +189,7 @@ export const stepsFunc = (
|
|
|
189
189
|
id: dynamicSteps.readyComplete,
|
|
190
190
|
stepName: '',
|
|
191
191
|
title: localization.common.readyComplete,
|
|
192
|
-
subTitle: localization.
|
|
192
|
+
subTitle: localization.vmWizard.lastCreateSubtitle,
|
|
193
193
|
status: UI_E_WIZARD_STATUS.INACTIVE,
|
|
194
194
|
isValid: true,
|
|
195
195
|
testId: 'vm-ready-complete',
|
|
@@ -1,11 +1,17 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<div
|
|
2
|
+
<div
|
|
3
|
+
:class="[
|
|
4
|
+
'customize-hardware',
|
|
5
|
+
themeMode,
|
|
6
|
+
{ 'alert-show': props.errors.length },
|
|
7
|
+
]"
|
|
8
|
+
>
|
|
3
9
|
<ui-tabs
|
|
4
10
|
v-model="selectedNavItem"
|
|
5
11
|
:tabs="navItemsLocal"
|
|
6
12
|
test-id="vm-wizard-tabs"
|
|
7
13
|
type="underline"
|
|
8
|
-
class="navigation
|
|
14
|
+
class="navigation"
|
|
9
15
|
/>
|
|
10
16
|
<ui-alert
|
|
11
17
|
v-show="props.errors.length"
|
|
@@ -13,7 +19,8 @@
|
|
|
13
19
|
status="alert-danger"
|
|
14
20
|
test-id="customize-hardware-alert"
|
|
15
21
|
class="errors-alert"
|
|
16
|
-
|
|
22
|
+
size="md"
|
|
23
|
+
@hide="emits('remove-validation-errors')"
|
|
17
24
|
/>
|
|
18
25
|
|
|
19
26
|
<div v-show="selectedNavItem === 0">
|
|
@@ -207,6 +214,10 @@ const themeMode = useLocalStorage('themeMode')
|
|
|
207
214
|
display: grid;
|
|
208
215
|
grid-template-rows: auto minmax(0, 1fr);
|
|
209
216
|
|
|
217
|
+
&.alert-show {
|
|
218
|
+
grid-template-rows: auto auto minmax(0, 1fr);
|
|
219
|
+
}
|
|
220
|
+
|
|
210
221
|
.errors-alert {
|
|
211
222
|
margin-top: 12px;
|
|
212
223
|
}
|
package/components/common/vm/actions/common/customizeHardware/virtualHardware/VirtualHardwareNew.vue
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<div class="virtual-hardware">
|
|
3
|
-
<div class="action-wrap py-3
|
|
3
|
+
<div class="action-wrap py-3">
|
|
4
4
|
<span class="device-count">{{ deviceCountText }}</span>
|
|
5
5
|
|
|
6
6
|
<div class="add-device-dropdown-wrap">
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
</div>
|
|
32
32
|
</div>
|
|
33
33
|
|
|
34
|
-
<div class="overflow-auto
|
|
34
|
+
<div class="overflow-auto virtual-hardware-content-block">
|
|
35
35
|
<div class="stack-view">
|
|
36
36
|
<common-vm-actions-common-customize-hardware-virtual-hardware-cpu
|
|
37
37
|
:max-cpus="props.maxCpus"
|
|
@@ -30,6 +30,7 @@ const props = defineProps<{
|
|
|
30
30
|
const emits = defineEmits<{
|
|
31
31
|
(event: 'change', value: UI_I_OptionItem): void
|
|
32
32
|
(event: 'remove-error-by-title', value: string): void
|
|
33
|
+
(event: 'has-errors', value: boolean): void
|
|
33
34
|
}>()
|
|
34
35
|
|
|
35
36
|
const { $store }: any = useNuxtApp()
|
|
@@ -90,6 +91,13 @@ const apiError = computed<string>(() => {
|
|
|
90
91
|
)?.error_message || ''
|
|
91
92
|
)
|
|
92
93
|
})
|
|
94
|
+
watch(
|
|
95
|
+
apiError,
|
|
96
|
+
(newValue) => {
|
|
97
|
+
emits('has-errors', !newValue.length)
|
|
98
|
+
},
|
|
99
|
+
{ immediate: true, deep: true }
|
|
100
|
+
)
|
|
93
101
|
|
|
94
102
|
const onRemoveValidationError = (): void => {
|
|
95
103
|
emits('remove-error-by-title', 'compatibility')
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
<h3 class="select-compatibility-description pb-4">
|
|
14
14
|
{{ props.description }}
|
|
15
15
|
</h3>
|
|
16
|
-
<div class="version-select-wrap
|
|
16
|
+
<div class="version-select-wrap">
|
|
17
17
|
<div
|
|
18
18
|
v-for="item in versionsLocal"
|
|
19
19
|
:key="item.value"
|
|
@@ -106,7 +106,7 @@ const versionsLocal = computed(() => {
|
|
|
106
106
|
--select-compatibility-description-color: #4d5d69;
|
|
107
107
|
}
|
|
108
108
|
:root.dark-theme {
|
|
109
|
-
--select-compatibility-bg-color:
|
|
109
|
+
--select-compatibility-bg-color: #1b2a371f;
|
|
110
110
|
--select-compatibility-border-color: #e9ebed1f;
|
|
111
111
|
--select-compatibility-border-hover-color: #e9ebed3d;
|
|
112
112
|
--select-compatibility-selected-bg-color: #2ba2de14;
|
|
@@ -121,33 +121,39 @@ const versionsLocal = computed(() => {
|
|
|
121
121
|
.select-compatibility-description {
|
|
122
122
|
font-size: 13px;
|
|
123
123
|
color: var(--select-compatibility-description-color);
|
|
124
|
+
line-height: 18px;
|
|
124
125
|
}
|
|
125
126
|
|
|
126
127
|
.version-select-wrap {
|
|
128
|
+
display: grid;
|
|
129
|
+
grid-template-columns: repeat(3, 32.3%);
|
|
127
130
|
gap: 12px;
|
|
128
131
|
|
|
129
132
|
.version-select {
|
|
130
133
|
background-color: var(--select-compatibility-bg-color);
|
|
131
|
-
|
|
134
|
+
box-shadow: inset 0 0 0 1px var(--select-compatibility-border-color);
|
|
132
135
|
padding: 12px;
|
|
133
136
|
border-radius: 8px;
|
|
134
137
|
|
|
135
138
|
&:not(.selected):not(.disabled) {
|
|
136
139
|
cursor: pointer;
|
|
137
140
|
&:hover {
|
|
138
|
-
|
|
141
|
+
box-shadow: inset 0 0 0 1px
|
|
142
|
+
var(--select-compatibility-border-hover-color);
|
|
139
143
|
}
|
|
140
144
|
}
|
|
141
145
|
|
|
142
146
|
&.selected {
|
|
143
147
|
background-color: var(--select-compatibility-selected-bg-color);
|
|
144
|
-
|
|
148
|
+
box-shadow: inset 0 0 0 1.5px
|
|
149
|
+
var(--select-compatibility-selected-border-color);
|
|
145
150
|
}
|
|
146
151
|
|
|
147
152
|
.description {
|
|
148
153
|
font-size: 13px;
|
|
149
|
-
color: #9da6ad;
|
|
154
|
+
color: #9da6ad !important;
|
|
150
155
|
margin: 8px 0 0 28px;
|
|
156
|
+
line-height: 18px;
|
|
151
157
|
}
|
|
152
158
|
|
|
153
159
|
:deep(.radio-label) {
|
|
@@ -158,7 +164,8 @@ const versionsLocal = computed(() => {
|
|
|
158
164
|
|
|
159
165
|
@container (max-width: 600px) {
|
|
160
166
|
.version-select-wrap {
|
|
161
|
-
|
|
167
|
+
grid-template-columns: 1fr;
|
|
168
|
+
padding-bottom: 22px;
|
|
162
169
|
}
|
|
163
170
|
}
|
|
164
171
|
}
|
|
@@ -53,6 +53,7 @@ const emits = defineEmits<{
|
|
|
53
53
|
(event: 'show-compute-resource-tree', value: UI_I_TreeNode): void
|
|
54
54
|
(event: 'select-compute-resource-tree', value: UI_I_TreeNode): void
|
|
55
55
|
(event: 'clear-compute-resource-tree'): void
|
|
56
|
+
(event: 'has-errors', value: boolean): void
|
|
56
57
|
}>()
|
|
57
58
|
|
|
58
59
|
const { $store }: any = useNuxtApp()
|
|
@@ -94,6 +95,13 @@ const showValidationErrors = (text: string): void => {
|
|
|
94
95
|
const onRemoveValidationErrors = (): void => {
|
|
95
96
|
errors.value = []
|
|
96
97
|
}
|
|
98
|
+
watch(
|
|
99
|
+
errors,
|
|
100
|
+
(newValue) => {
|
|
101
|
+
emits('has-errors', !newValue.length)
|
|
102
|
+
},
|
|
103
|
+
{ immediate: true, deep: true }
|
|
104
|
+
)
|
|
97
105
|
|
|
98
106
|
const selectedNode = defineModel<UI_I_TreeNode | null>('modelValue')
|
|
99
107
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<div class="select-compute-resource">
|
|
2
|
+
<div class="select-compute-resource pb-4">
|
|
3
3
|
<Teleport to="#compute-resource-alert-wrapper">
|
|
4
4
|
<ui-alert
|
|
5
5
|
v-show="props.errors.length"
|
|
@@ -7,7 +7,8 @@
|
|
|
7
7
|
status="alert-danger"
|
|
8
8
|
test-id="computed-resource-alert"
|
|
9
9
|
class="errors-alert"
|
|
10
|
-
|
|
10
|
+
size="md"
|
|
11
|
+
@hide="emits('remove-validation-errors')"
|
|
11
12
|
/>
|
|
12
13
|
</Teleport>
|
|
13
14
|
|
|
@@ -32,7 +33,7 @@
|
|
|
32
33
|
<p class="compatibility">
|
|
33
34
|
{{ localization.inventorySummary.compatibility }}
|
|
34
35
|
</p>
|
|
35
|
-
<div class="compatibility-message flex-align-
|
|
36
|
+
<div class="compatibility-message flex-align-start">
|
|
36
37
|
<ui-skeleton-item v-if="!selectedNode" width="160px" height="16px" />
|
|
37
38
|
<template v-else-if="props.compatibilityText[1]">
|
|
38
39
|
<ui-icon
|
|
@@ -40,6 +41,7 @@
|
|
|
40
41
|
name="error"
|
|
41
42
|
width="16"
|
|
42
43
|
height="16"
|
|
44
|
+
class="icon-compatibility-alert"
|
|
43
45
|
/>
|
|
44
46
|
|
|
45
47
|
<ui-icon
|
|
@@ -47,6 +49,7 @@
|
|
|
47
49
|
name="success-fill"
|
|
48
50
|
width="16"
|
|
49
51
|
height="16"
|
|
52
|
+
class="icon-compatibility-alert"
|
|
50
53
|
/>
|
|
51
54
|
<span class="compatibility-message-description">{{
|
|
52
55
|
props.compatibilityText[1]
|
|
@@ -92,28 +95,43 @@ const localization = computed<UI_I_Localization>(() => useLocal())
|
|
|
92
95
|
--select-compute-resource-border-color: #e9ebed;
|
|
93
96
|
--select-compute-resource-location-bg-color: #ffffff;
|
|
94
97
|
--select-compute-resource-compatibility-title-color: #4d5d69;
|
|
98
|
+
--select-compute-resource-compatibilityd-empty-escription-color: #4d5d69;
|
|
95
99
|
--select-compute-resource-compatibility-description-color: #4d5d69;
|
|
96
100
|
}
|
|
97
101
|
:root.dark-theme {
|
|
98
102
|
--select-compute-resource-border-color: #e9ebed1f;
|
|
99
|
-
--select-compute-resource-location-bg-color:
|
|
103
|
+
--select-compute-resource-location-bg-color: #1b2a371f;
|
|
100
104
|
--select-compute-resource-compatibility-title-color: #e9eaec;
|
|
101
|
-
--select-compute-resource-
|
|
105
|
+
--select-compute-resource-compatibilityd-empty-escription-color: #9da6ad;
|
|
106
|
+
--select-compute-resource-compatibility-description-color: #e9eaec;
|
|
102
107
|
}
|
|
103
108
|
</style>
|
|
104
109
|
<style scoped lang="scss">
|
|
105
110
|
.select-compute-resource {
|
|
106
111
|
.tree-view-wrap {
|
|
107
112
|
height: 170px;
|
|
113
|
+
max-height: 240px;
|
|
108
114
|
border-radius: 8px;
|
|
109
115
|
border: 1px solid var(--select-compute-resource-border-color);
|
|
110
|
-
padding:
|
|
116
|
+
padding: 8px;
|
|
111
117
|
background-color: var(--select-compute-resource-location-bg-color);
|
|
112
118
|
margin: 16px 0 24px;
|
|
113
119
|
overflow: auto;
|
|
114
120
|
|
|
115
121
|
:deep(.tree-content) {
|
|
116
122
|
padding: 0 !important;
|
|
123
|
+
|
|
124
|
+
.node-wrapper {
|
|
125
|
+
border-radius: 4px;
|
|
126
|
+
|
|
127
|
+
.node-name {
|
|
128
|
+
font-size: 12px;
|
|
129
|
+
margin-left: 8px;
|
|
130
|
+
overflow: hidden;
|
|
131
|
+
text-overflow: ellipsis;
|
|
132
|
+
white-space: nowrap;
|
|
133
|
+
}
|
|
134
|
+
}
|
|
117
135
|
}
|
|
118
136
|
}
|
|
119
137
|
|
|
@@ -129,8 +147,12 @@ const localization = computed<UI_I_Localization>(() => useLocal())
|
|
|
129
147
|
border: 1px solid var(--select-compute-resource-border-color);
|
|
130
148
|
padding: 12px;
|
|
131
149
|
background-color: var(--select-compute-resource-location-bg-color);
|
|
132
|
-
gap:
|
|
150
|
+
gap: 10px;
|
|
133
151
|
|
|
152
|
+
.icon-compatibility-alert {
|
|
153
|
+
min-width: 16px;
|
|
154
|
+
min-height: 16px;
|
|
155
|
+
}
|
|
134
156
|
.compatibility-message-description {
|
|
135
157
|
font-size: 13px;
|
|
136
158
|
color: var(--select-compute-resource-compatibility-description-color);
|
|
@@ -17,11 +17,13 @@
|
|
|
17
17
|
:test-id="item.testId"
|
|
18
18
|
:disabled="item.disabled"
|
|
19
19
|
size="md"
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
20
|
+
>
|
|
21
|
+
<template #description
|
|
22
|
+
><p class="description">
|
|
23
|
+
{{ item.description }}
|
|
24
|
+
</p></template
|
|
25
|
+
>
|
|
26
|
+
</ui-radio>
|
|
25
27
|
</div>
|
|
26
28
|
</div>
|
|
27
29
|
</template>
|
|
@@ -55,20 +57,25 @@ const props = defineProps<{
|
|
|
55
57
|
<style scoped lang="scss">
|
|
56
58
|
.select-create-type-block {
|
|
57
59
|
background-color: var(--select-create-type-block-bg-color);
|
|
58
|
-
border: 1px solid var(--select-create-type-block-border-color);
|
|
60
|
+
//border: 1px solid var(--select-create-type-block-border-color);
|
|
61
|
+
box-shadow: inset 0 0 0 1px var(--select-create-type-block-border-color);
|
|
59
62
|
padding: 12px;
|
|
60
63
|
border-radius: 8px;
|
|
61
64
|
|
|
62
65
|
&:not(.selected):not(.disabled) {
|
|
63
66
|
cursor: pointer;
|
|
64
67
|
&:hover {
|
|
65
|
-
border-color: var(--select-create-type-block-border-hover-color);
|
|
68
|
+
//border-color: var(--select-create-type-block-border-hover-color);
|
|
69
|
+
box-shadow: inset 0 0 0 1px
|
|
70
|
+
var(--select-create-type-block-border-hover-color);
|
|
66
71
|
}
|
|
67
72
|
}
|
|
68
73
|
|
|
69
74
|
&.selected {
|
|
70
75
|
background-color: var(--select-create-type-block-selected-bg-color);
|
|
71
|
-
border: 1.5px solid var(--select-create-type-block-selected-border-color);
|
|
76
|
+
//border: 1.5px solid var(--select-create-type-block-selected-border-color);
|
|
77
|
+
box-shadow: inset 0 0 0 1.5px
|
|
78
|
+
var(--select-create-type-block-selected-border-color);
|
|
72
79
|
}
|
|
73
80
|
|
|
74
81
|
&:not(:last-child) {
|
|
@@ -77,8 +84,9 @@ const props = defineProps<{
|
|
|
77
84
|
|
|
78
85
|
.description {
|
|
79
86
|
font-size: 13px;
|
|
80
|
-
color: #9da6ad;
|
|
81
|
-
margin: 8px 0 0 28px;
|
|
87
|
+
color: #9da6ad !important;
|
|
88
|
+
//margin: 8px 0 0 28px;
|
|
89
|
+
line-height: 18px;
|
|
82
90
|
}
|
|
83
91
|
}
|
|
84
92
|
</style>
|
|
@@ -40,6 +40,7 @@ const emits = defineEmits<{
|
|
|
40
40
|
event: 'check-name',
|
|
41
41
|
value: [[string, UI_I_TreeNode | null], (error: any) => void]
|
|
42
42
|
): void
|
|
43
|
+
(event: 'has-errors', value: boolean): void
|
|
43
44
|
}>()
|
|
44
45
|
|
|
45
46
|
const { $store }: any = useNuxtApp()
|
|
@@ -145,6 +146,13 @@ const showValidationErrors = (data: string[]): void => {
|
|
|
145
146
|
const onRemoveValidationErrors = (): void => {
|
|
146
147
|
errors.value = []
|
|
147
148
|
}
|
|
149
|
+
watch(
|
|
150
|
+
errors,
|
|
151
|
+
(newValue) => {
|
|
152
|
+
emits('has-errors', !newValue.length)
|
|
153
|
+
},
|
|
154
|
+
{ immediate: true, deep: true }
|
|
155
|
+
)
|
|
148
156
|
|
|
149
157
|
watch(
|
|
150
158
|
() => props.show,
|
|
@@ -163,5 +171,4 @@ watch(
|
|
|
163
171
|
const isShowHelp = ref<boolean>(false)
|
|
164
172
|
</script>
|
|
165
173
|
|
|
166
|
-
<style scoped lang="scss">
|
|
167
|
-
</style>
|
|
174
|
+
<style scoped lang="scss"></style>
|