bfg-common 1.5.248 → 1.5.249
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 +1 -7
- package/assets/localization/local_en.json +1 -7
- package/assets/localization/local_hy.json +1 -7
- package/assets/localization/local_kk.json +1 -7
- package/assets/localization/local_ru.json +1 -7
- package/assets/localization/local_zh.json +1 -7
- package/assets/scss/common/theme.scss +0 -16
- package/components/atoms/stack/StackBlock.vue +185 -185
- package/components/atoms/table/info/lib/models/interfaces.ts +10 -10
- package/components/common/backup/storage/actions/add/New.vue +9 -4
- package/components/common/backup/storage/actions/add/steps/nameAndConfigure/NameAndConfigureNew.vue +18 -9
- package/components/common/backup/storage/actions/add/steps/typeMode/TypeModeNew.vue +12 -3
- package/components/common/layout/theHeader/feedback/new/additionalDetails/Headline.vue +8 -67
- package/components/common/layout/theHeader/feedback/new/subtitle/Subtitle.vue +8 -72
- package/components/common/layout/theHeader/userMenu/modals/preferences/PreferencesOld.vue +9 -1
- package/components/common/pages/tasks/table/Table.vue +15 -7
- package/components/common/pages/tasks/table/expandDetails/ExpandDetails.vue +15 -9
- package/components/common/tooltip/Help.vue +132 -0
- package/components/common/tooltip/lib/models/types.ts +1 -0
- package/components/common/vm/actions/common/customizeHardware/virtualHardware/bus/BusNew.vue +10 -99
- package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/CpuNew.vue +52 -3
- package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/model/ModelNew.vue +32 -151
- package/components/common/vm/actions/common/select/name/New.vue +10 -70
- package/components/common/wizards/datastore/add/New.vue +8 -3
- package/components/common/wizards/datastore/add/steps/nameAndConfigure/NameAndConfigureNew.vue +20 -6
- package/components/common/wizards/datastore/add/steps/nameAndDevice/NameAndDeviceNew.vue +9 -3
- package/components/common/wizards/datastore/add/steps/typeMode/TypeModeNew.vue +8 -3
- package/package.json +1 -1
- package/components/common/backup/storage/actions/add/steps/common/tooltipInfo/TooltipInfo.vue +0 -94
- package/components/common/pages/tasks/table/errorInfo/ErrorInfo.vue +0 -128
- package/components/common/wizards/datastore/add/steps/common/tooltipInfo/TooltipInfo.vue +0 -93
|
@@ -537,7 +537,6 @@
|
|
|
537
537
|
"example": "Прыклад",
|
|
538
538
|
"existingHardDisk": "Існуючы жорсткі дыск",
|
|
539
539
|
"existingHost": "Існуючыя гаспадары",
|
|
540
|
-
"existing": "Існуючыя",
|
|
541
540
|
"openNewWindow": "Адкрыць у новым акне",
|
|
542
541
|
"exitFullscreen": "Выхад з поўнаэкраннага рэжыму",
|
|
543
542
|
"exitMaintenanceMode": "Выйсці з рэжыму абслугоўвання",
|
|
@@ -2371,12 +2370,7 @@
|
|
|
2371
2370
|
"gotIt": "Зразумець",
|
|
2372
2371
|
"nodeSetupStarted": "Запусціла налада вузла",
|
|
2373
2372
|
"nodeSetupStartedDesc": "Налада вузла была паспяхова запушчана. Гэта можа заняць хвіліну. Далейшыя дзеянні не патрабуецца.",
|
|
2374
|
-
"valueMustBeAtLeastOneHourAfterStart": "Значэнне павінна быць не менш чым на гадзіну пазней часу пачатку"
|
|
2375
|
-
"addNew": "Дадаць новы",
|
|
2376
|
-
"noExistingHostsAvailable": "На дадзены момант няма даступных хостаў.",
|
|
2377
|
-
"currentSphere": "Бягучая сфера",
|
|
2378
|
-
"addHostsLastStepSubTitle": "Праверце падрабязнасці перад даданнем хостаў.",
|
|
2379
|
-
"addHostsLastStepDesc": "Да зоны Sphere будзе падключана {0} новых хостаў, і яны будуць перамешчаныя ў гэты кластар."
|
|
2373
|
+
"valueMustBeAtLeastOneHourAfterStart": "Значэнне павінна быць не менш чым на гадзіну пазней часу пачатку"
|
|
2380
2374
|
},
|
|
2381
2375
|
"auth": {
|
|
2382
2376
|
"welcomeTo": "Сардэчна запрашаем у",
|
|
@@ -536,7 +536,6 @@
|
|
|
536
536
|
"example": "Example",
|
|
537
537
|
"existingHardDisk": "Existing Hard Disk",
|
|
538
538
|
"existingHost": "Existing hosts",
|
|
539
|
-
"existing": "Existing",
|
|
540
539
|
"openNewWindow": "Open in New Window",
|
|
541
540
|
"exitFullscreen": "Exit Full Screen",
|
|
542
541
|
"exitMaintenanceMode": "Exit Maintenance Mode",
|
|
@@ -2375,12 +2374,7 @@
|
|
|
2375
2374
|
"gotIt": "Got It",
|
|
2376
2375
|
"nodeSetupStarted": "Node Setup Started",
|
|
2377
2376
|
"nodeSetupStartedDesc": "Node setup has been successfully started. This may take a moment to complete. No further action is required.",
|
|
2378
|
-
"valueMustBeAtLeastOneHourAfterStart": "The value must be at least one hour later than the start time."
|
|
2379
|
-
"addNew": "Add New",
|
|
2380
|
-
"noExistingHostsAvailable": "There are currently no existing hosts available.",
|
|
2381
|
-
"currentSphere": "Current Sphere",
|
|
2382
|
-
"addHostsLastStepSubTitle": "Review the details before the hosts are added.",
|
|
2383
|
-
"addHostsLastStepDesc": "{0} new host(s) will be connected to Sphere Zone and moved to this cluster."
|
|
2377
|
+
"valueMustBeAtLeastOneHourAfterStart": "The value must be at least one hour later than the start time."
|
|
2384
2378
|
},
|
|
2385
2379
|
"auth": {
|
|
2386
2380
|
"welcomeTo": "Welcome to",
|
|
@@ -535,7 +535,6 @@
|
|
|
535
535
|
"eventTypeId": "Միջոցառման տեսակի ID",
|
|
536
536
|
"example": "Օրինակ",
|
|
537
537
|
"existingHardDisk": "Գոյություն ունեցող կոշտ սկավառակ",
|
|
538
|
-
"existing": "Գոյություն ունեցող",
|
|
539
538
|
"existingHost": "Գոյություն ունեցող հանգույցներ",
|
|
540
539
|
"openNewWindow": "Բացեք նոր պատուհանում",
|
|
541
540
|
"exitFullscreen": "Դուրս գալ ամբողջ էկրանով ռեժիմից",
|
|
@@ -2375,12 +2374,7 @@
|
|
|
2375
2374
|
"gotIt": "հասկացա",
|
|
2376
2375
|
"nodeSetupStarted": "Հանգույցի կարգավորումը սկսվեց",
|
|
2377
2376
|
"nodeSetupStartedDesc": "Հանգույցի կարգավորումը հաջողությամբ սկսվեց: Սա կարող է տեւել մի պահ: Այլ գործողություն չի պահանջվում:",
|
|
2378
|
-
"valueMustBeAtLeastOneHourAfterStart": "Արժեքը պետք է լինի առնվազն մեկ ժամ ուշ, քան մեկնարկի ժամանակը"
|
|
2379
|
-
"addNew": "Ավելացնել նոր",
|
|
2380
|
-
"noExistingHostsAvailable": "Այս պահին հասանելի հոսթեր չկան։",
|
|
2381
|
-
"currentSphere": "Ընթացիկ ոլորտ",
|
|
2382
|
-
"addHostsLastStepSubTitle": "Ստուգեք մանրամասները մինչև հոսթերը ավելացնելը։",
|
|
2383
|
-
"addHostsLastStepDesc": "{0} նոր հոսթ կկապվի Sphere գոտուն և կտեղափոխվի այս կլաստեր։"
|
|
2377
|
+
"valueMustBeAtLeastOneHourAfterStart": "Արժեքը պետք է լինի առնվազն մեկ ժամ ուշ, քան մեկնարկի ժամանակը"
|
|
2384
2378
|
},
|
|
2385
2379
|
"auth": {
|
|
2386
2380
|
"welcomeTo": "Բարի գալուստ",
|
|
@@ -535,7 +535,6 @@
|
|
|
535
535
|
"eventTypeId": "Оқиға түрінің идентификаторы",
|
|
536
536
|
"example": "Мысал",
|
|
537
537
|
"existingHardDisk": "Қолданыстағы қатты диск",
|
|
538
|
-
"existing": "Бар",
|
|
539
538
|
"existingHost": "Бар түйіндер",
|
|
540
539
|
"openNewWindow": "Жаңа терезеде ашу",
|
|
541
540
|
"exitFullscreen": "Толық экран режимінен шығу",
|
|
@@ -2374,12 +2373,7 @@
|
|
|
2374
2373
|
"gotIt": "Түсіндім",
|
|
2375
2374
|
"nodeSetupStarted": "Түйін орнату басталды",
|
|
2376
2375
|
"nodeSetupStartedDesc": "Түйін орнату сәтті басталды. Бұл біраз уақыт алуы мүмкін. Бұдан әрі әрекет қажет емес.",
|
|
2377
|
-
"valueMustBeAtLeastOneHourAfterStart": "Мән басталу уақытынан кемінде бір сағат кеш болуы керек"
|
|
2378
|
-
"addNew": "Жаңа қосу",
|
|
2379
|
-
"noExistingHostsAvailable": "Қазіргі уақытта қолжетімді хосттар жоқ.",
|
|
2380
|
-
"currentSphere": "Ағымдағы сала",
|
|
2381
|
-
"addHostsLastStepSubTitle": "Хосттар қосылмас бұрын мәліметтерді қарап шығыңыз.",
|
|
2382
|
-
"addHostsLastStepDesc": "{0} жаңа хост Sphere аймағына қосылып, осы кластерге ауыстырылады."
|
|
2376
|
+
"valueMustBeAtLeastOneHourAfterStart": "Мән басталу уақытынан кемінде бір сағат кеш болуы керек"
|
|
2383
2377
|
},
|
|
2384
2378
|
"auth": {
|
|
2385
2379
|
"welcomeTo": "Қош келдіңіз",
|
|
@@ -535,7 +535,6 @@
|
|
|
535
535
|
"eventTypeId": "Идентификатор типа события",
|
|
536
536
|
"example": "Пример",
|
|
537
537
|
"existingHardDisk": "Существующий жесткий диск",
|
|
538
|
-
"existing": "Существующий",
|
|
539
538
|
"existingHost": "Существующие узлы",
|
|
540
539
|
"openNewWindow": "Открыть в новом окне",
|
|
541
540
|
"exitFullscreen": "Выход из полноэкранного режима",
|
|
@@ -2374,12 +2373,7 @@
|
|
|
2374
2373
|
"gotIt": "Понял",
|
|
2375
2374
|
"nodeSetupStarted": "Начата настройка узла",
|
|
2376
2375
|
"nodeSetupStartedDesc": "Настройка узла успешно запущена. Это может занять некоторое время. Никаких дальнейших действий не требуется.",
|
|
2377
|
-
"valueMustBeAtLeastOneHourAfterStart": "Значение должно быть не менее чем на час позже времени начала"
|
|
2378
|
-
"addNew": "Добавить",
|
|
2379
|
-
"noExistingHostsAvailable": "В настоящее время нет доступных хостов.",
|
|
2380
|
-
"currentSphere": "Текущая сфера",
|
|
2381
|
-
"addHostsLastStepSubTitle": "Проверьте детали перед добавлением хостов.",
|
|
2382
|
-
"addHostsLastStepDesc": "{0} новых хостов будет подключено к зоне Sphere и перемещено в этот кластер."
|
|
2376
|
+
"valueMustBeAtLeastOneHourAfterStart": "Значение должно быть не менее чем на час позже времени начала"
|
|
2383
2377
|
},
|
|
2384
2378
|
"auth": {
|
|
2385
2379
|
"welcomeTo": "Добро пожаловать в",
|
|
@@ -535,7 +535,6 @@
|
|
|
535
535
|
"eventTypeId": "事件類型標識符",
|
|
536
536
|
"example": "例子",
|
|
537
537
|
"existingHardDisk": "现有硬盘",
|
|
538
|
-
"existing": "现存的",
|
|
539
538
|
"existingHost": "现有节点",
|
|
540
539
|
"openNewWindow": "在新窗口中打开",
|
|
541
540
|
"exitFullscreen": "退出全屏",
|
|
@@ -2372,12 +2371,7 @@
|
|
|
2372
2371
|
"gotIt": "得到了",
|
|
2373
2372
|
"nodeSetupStarted": "节点设置开始",
|
|
2374
2373
|
"nodeSetupStartedDesc": "节点设置已成功启动。这可能需要一些时间才能完成。无需采取进一步的行动。",
|
|
2375
|
-
"valueMustBeAtLeastOneHourAfterStart": "该值必须至少比开始时间晚一小时。"
|
|
2376
|
-
"addNew": "添加新内容",
|
|
2377
|
-
"noExistingHostsAvailable": "当前没有可用的主机。",
|
|
2378
|
-
"currentSphere": "当前领域",
|
|
2379
|
-
"addHostsLastStepSubTitle": "在添加主机之前请查看详细信息。",
|
|
2380
|
-
"addHostsLastStepDesc": "将有 {0} 台新主机连接到 Sphere 区域并移动到此集群。"
|
|
2374
|
+
"valueMustBeAtLeastOneHourAfterStart": "该值必须至少比开始时间晚一小时。"
|
|
2381
2375
|
},
|
|
2382
2376
|
"auth": {
|
|
2383
2377
|
"welcomeTo": "欢迎来到",
|
|
@@ -172,14 +172,6 @@
|
|
|
172
172
|
|
|
173
173
|
// VM Add Edit new view
|
|
174
174
|
--select-file-type-label: #4d5d69;
|
|
175
|
-
|
|
176
|
-
// Add Hosts new view
|
|
177
|
-
--add-hosts-hosts-row-between-line: #e9ebeda3;
|
|
178
|
-
--add-hosts-hosts-row-child-value: #4d5d69;
|
|
179
|
-
--add-hosts-hosts-row-child-vm-bg-color: #e9ebeda3;
|
|
180
|
-
--add-hosts-hosts-row-child-vm-color: #4d5d69;
|
|
181
|
-
--add-hosts-ready-complete-description: #4d5d69;
|
|
182
|
-
--add-hosts-ready-complete-host-item-color: #4d5d69;
|
|
183
175
|
}
|
|
184
176
|
|
|
185
177
|
:root.dark-theme {
|
|
@@ -344,12 +336,4 @@
|
|
|
344
336
|
|
|
345
337
|
// VM Add Edit new view
|
|
346
338
|
--select-file-type-label: #e9eaec;
|
|
347
|
-
|
|
348
|
-
// Add Hosts new view
|
|
349
|
-
--add-hosts-hosts-row-between-line: #e9ebed1f;
|
|
350
|
-
--add-hosts-hosts-row-child-value: #e9eaec;
|
|
351
|
-
--add-hosts-hosts-row-child-vm-bg-color: #e9ebed1f;
|
|
352
|
-
--add-hosts-hosts-row-child-vm-color: #e9eaec;
|
|
353
|
-
--add-hosts-ready-complete-description: #e9eaec;
|
|
354
|
-
--add-hosts-ready-complete-host-item-color: #e9eaec;
|
|
355
339
|
}
|
|
@@ -1,185 +1,185 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
<div
|
|
3
|
-
:class="[
|
|
4
|
-
'stack-block',
|
|
5
|
-
open ? 'stack-block-expanded' : 'stack-block-expandable',
|
|
6
|
-
{ 'not-children': !props.hasChildren },
|
|
7
|
-
]"
|
|
8
|
-
>
|
|
9
|
-
<div
|
|
10
|
-
:id="`${props.testId}-toggle`"
|
|
11
|
-
:data-id="`${props.testId}-toggle`"
|
|
12
|
-
class="stack-block-label"
|
|
13
|
-
@click="onToggle"
|
|
14
|
-
>
|
|
15
|
-
<atoms-the-icon name="angle" class="angle-icon" fill="#565656" />
|
|
16
|
-
|
|
17
|
-
<div class="stack-view-key">
|
|
18
|
-
<slot name="stackBlockKey" />
|
|
19
|
-
</div>
|
|
20
|
-
<div class="stack-block-content">
|
|
21
|
-
<slot name="stackBlockContent" />
|
|
22
|
-
</div>
|
|
23
|
-
|
|
24
|
-
<span
|
|
25
|
-
v-if="props.removable && props.isRollBack"
|
|
26
|
-
:data-id="`${props.testId}-roll-back`"
|
|
27
|
-
class="icon-roll-back"
|
|
28
|
-
@mousedown="onRollBack"
|
|
29
|
-
@click.stop
|
|
30
|
-
/>
|
|
31
|
-
<atoms-the-icon
|
|
32
|
-
v-else-if="props.removable"
|
|
33
|
-
:data-id="`${props.testId}-remove`"
|
|
34
|
-
class="remove-icon"
|
|
35
|
-
name="close-circle"
|
|
36
|
-
@mousedown="onRemove"
|
|
37
|
-
@click.stop
|
|
38
|
-
/>
|
|
39
|
-
<span v-else class="empty-icon"></span>
|
|
40
|
-
</div>
|
|
41
|
-
|
|
42
|
-
<div v-show="open" class="stack-children">
|
|
43
|
-
<div style="height: auto">
|
|
44
|
-
<slot name="stackChildren" />
|
|
45
|
-
</div>
|
|
46
|
-
</div>
|
|
47
|
-
</div>
|
|
48
|
-
</template>
|
|
49
|
-
|
|
50
|
-
<script setup lang="ts">
|
|
51
|
-
const props = withDefaults(
|
|
52
|
-
defineProps<{
|
|
53
|
-
hasChildren: boolean
|
|
54
|
-
removable?: boolean
|
|
55
|
-
testId?: string
|
|
56
|
-
openByDefault?: boolean
|
|
57
|
-
isRollBack?: boolean
|
|
58
|
-
}>(),
|
|
59
|
-
{ testId: 'ui-stack-block', openByDefault: false }
|
|
60
|
-
)
|
|
61
|
-
const emits = defineEmits<{
|
|
62
|
-
(event: 'toggle', value: boolean): void
|
|
63
|
-
(event: 'remove'): void
|
|
64
|
-
(event: 'roll-back'): void
|
|
65
|
-
}>()
|
|
66
|
-
|
|
67
|
-
const open = ref<boolean>(props.openByDefault || false)
|
|
68
|
-
const onToggle = (): void => {
|
|
69
|
-
if (!props.hasChildren) return
|
|
70
|
-
setTimeout(() => {
|
|
71
|
-
open.value = !open.value
|
|
72
|
-
emits('toggle', open.value)
|
|
73
|
-
}, 0)
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
const onRemove = (): void => {
|
|
77
|
-
emits('remove')
|
|
78
|
-
}
|
|
79
|
-
const onRollBack = (): void => {
|
|
80
|
-
emits('roll-back')
|
|
81
|
-
}
|
|
82
|
-
</script>
|
|
83
|
-
|
|
84
|
-
<style scoped lang="scss">
|
|
85
|
-
.stack-block {
|
|
86
|
-
cursor: pointer;
|
|
87
|
-
background-color: var(--block-view-bg-color);
|
|
88
|
-
border-color: var(--global-border-color);
|
|
89
|
-
|
|
90
|
-
&.stack-block-expandable:hover {
|
|
91
|
-
border-bottom: 1px solid #666;
|
|
92
|
-
|
|
93
|
-
.stack-block-label {
|
|
94
|
-
background-color: var(--block-view-bg-color);
|
|
95
|
-
border-color: var(--global-border-color);
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
.stack-block-label {
|
|
100
|
-
padding: 6px 12px;
|
|
101
|
-
flex: 1 1 auto;
|
|
102
|
-
max-width: unset;
|
|
103
|
-
display: flex;
|
|
104
|
-
background-color: var(--block-view-bg-color);
|
|
105
|
-
border-color: var(--global-border-color);
|
|
106
|
-
|
|
107
|
-
&:hover {
|
|
108
|
-
.remove-icon {
|
|
109
|
-
opacity: 1;
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
&::before {
|
|
114
|
-
display: none;
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
.angle-icon {
|
|
118
|
-
width: 14px;
|
|
119
|
-
height: 14px;
|
|
120
|
-
margin-right: 4px;
|
|
121
|
-
transform: rotate(90deg);
|
|
122
|
-
align-self: center;
|
|
123
|
-
}
|
|
124
|
-
|
|
125
|
-
.remove-icon {
|
|
126
|
-
width: 18px;
|
|
127
|
-
height: 18px;
|
|
128
|
-
opacity: 0;
|
|
129
|
-
cursor: pointer;
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
.stack-view-key {
|
|
133
|
-
flex: 0 0 40%;
|
|
134
|
-
max-width: 40%;
|
|
135
|
-
}
|
|
136
|
-
|
|
137
|
-
.stack-block-content {
|
|
138
|
-
padding: 0;
|
|
139
|
-
flex: 1 1 auto;
|
|
140
|
-
width: 60%;
|
|
141
|
-
background-color: transparent;
|
|
142
|
-
word-break: break-all;
|
|
143
|
-
}
|
|
144
|
-
|
|
145
|
-
.empty-icon {
|
|
146
|
-
width: 18px;
|
|
147
|
-
height: 18px;
|
|
148
|
-
}
|
|
149
|
-
}
|
|
150
|
-
|
|
151
|
-
&.stack-block-expanded {
|
|
152
|
-
.stack-block-label {
|
|
153
|
-
color: #ffffff;
|
|
154
|
-
background-color: #29414e;
|
|
155
|
-
|
|
156
|
-
.angle-icon {
|
|
157
|
-
fill: #ffffff;
|
|
158
|
-
transform: rotate(180deg);
|
|
159
|
-
}
|
|
160
|
-
|
|
161
|
-
.remove-icon {
|
|
162
|
-
fill: #ffffff;
|
|
163
|
-
}
|
|
164
|
-
}
|
|
165
|
-
}
|
|
166
|
-
|
|
167
|
-
&.not-children {
|
|
168
|
-
cursor: default;
|
|
169
|
-
.stack-block-label {
|
|
170
|
-
background-color: transparent;
|
|
171
|
-
color: #333333;
|
|
172
|
-
|
|
173
|
-
&:hover {
|
|
174
|
-
cursor: default;
|
|
175
|
-
background-color: transparent;
|
|
176
|
-
border-bottom: none;
|
|
177
|
-
}
|
|
178
|
-
|
|
179
|
-
.angle-icon {
|
|
180
|
-
opacity: 0;
|
|
181
|
-
}
|
|
182
|
-
}
|
|
183
|
-
}
|
|
184
|
-
}
|
|
185
|
-
</style>
|
|
1
|
+
<template>
|
|
2
|
+
<div
|
|
3
|
+
:class="[
|
|
4
|
+
'stack-block',
|
|
5
|
+
open ? 'stack-block-expanded' : 'stack-block-expandable',
|
|
6
|
+
{ 'not-children': !props.hasChildren },
|
|
7
|
+
]"
|
|
8
|
+
>
|
|
9
|
+
<div
|
|
10
|
+
:id="`${props.testId}-toggle`"
|
|
11
|
+
:data-id="`${props.testId}-toggle`"
|
|
12
|
+
class="stack-block-label"
|
|
13
|
+
@click="onToggle"
|
|
14
|
+
>
|
|
15
|
+
<atoms-the-icon name="angle" class="angle-icon" fill="#565656" />
|
|
16
|
+
|
|
17
|
+
<div class="stack-view-key">
|
|
18
|
+
<slot name="stackBlockKey" />
|
|
19
|
+
</div>
|
|
20
|
+
<div class="stack-block-content">
|
|
21
|
+
<slot name="stackBlockContent" />
|
|
22
|
+
</div>
|
|
23
|
+
|
|
24
|
+
<span
|
|
25
|
+
v-if="props.removable && props.isRollBack"
|
|
26
|
+
:data-id="`${props.testId}-roll-back`"
|
|
27
|
+
class="icon-roll-back"
|
|
28
|
+
@mousedown="onRollBack"
|
|
29
|
+
@click.stop
|
|
30
|
+
/>
|
|
31
|
+
<atoms-the-icon
|
|
32
|
+
v-else-if="props.removable"
|
|
33
|
+
:data-id="`${props.testId}-remove`"
|
|
34
|
+
class="remove-icon"
|
|
35
|
+
name="close-circle"
|
|
36
|
+
@mousedown="onRemove"
|
|
37
|
+
@click.stop
|
|
38
|
+
/>
|
|
39
|
+
<span v-else class="empty-icon"></span>
|
|
40
|
+
</div>
|
|
41
|
+
|
|
42
|
+
<div v-show="open" class="stack-children">
|
|
43
|
+
<div style="height: auto">
|
|
44
|
+
<slot name="stackChildren" />
|
|
45
|
+
</div>
|
|
46
|
+
</div>
|
|
47
|
+
</div>
|
|
48
|
+
</template>
|
|
49
|
+
|
|
50
|
+
<script setup lang="ts">
|
|
51
|
+
const props = withDefaults(
|
|
52
|
+
defineProps<{
|
|
53
|
+
hasChildren: boolean
|
|
54
|
+
removable?: boolean
|
|
55
|
+
testId?: string
|
|
56
|
+
openByDefault?: boolean
|
|
57
|
+
isRollBack?: boolean
|
|
58
|
+
}>(),
|
|
59
|
+
{ testId: 'ui-stack-block', openByDefault: false }
|
|
60
|
+
)
|
|
61
|
+
const emits = defineEmits<{
|
|
62
|
+
(event: 'toggle', value: boolean): void
|
|
63
|
+
(event: 'remove'): void
|
|
64
|
+
(event: 'roll-back'): void
|
|
65
|
+
}>()
|
|
66
|
+
|
|
67
|
+
const open = ref<boolean>(props.openByDefault || false)
|
|
68
|
+
const onToggle = (): void => {
|
|
69
|
+
if (!props.hasChildren) return
|
|
70
|
+
setTimeout(() => {
|
|
71
|
+
open.value = !open.value
|
|
72
|
+
emits('toggle', open.value)
|
|
73
|
+
}, 0)
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
const onRemove = (): void => {
|
|
77
|
+
emits('remove')
|
|
78
|
+
}
|
|
79
|
+
const onRollBack = (): void => {
|
|
80
|
+
emits('roll-back')
|
|
81
|
+
}
|
|
82
|
+
</script>
|
|
83
|
+
|
|
84
|
+
<style scoped lang="scss">
|
|
85
|
+
.stack-block {
|
|
86
|
+
cursor: pointer;
|
|
87
|
+
background-color: var(--block-view-bg-color);
|
|
88
|
+
border-color: var(--global-border-color);
|
|
89
|
+
|
|
90
|
+
&.stack-block-expandable:hover {
|
|
91
|
+
border-bottom: 1px solid #666;
|
|
92
|
+
|
|
93
|
+
.stack-block-label {
|
|
94
|
+
background-color: var(--block-view-bg-color);
|
|
95
|
+
border-color: var(--global-border-color);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
.stack-block-label {
|
|
100
|
+
padding: 6px 12px;
|
|
101
|
+
flex: 1 1 auto;
|
|
102
|
+
max-width: unset;
|
|
103
|
+
display: flex;
|
|
104
|
+
background-color: var(--block-view-bg-color);
|
|
105
|
+
border-color: var(--global-border-color);
|
|
106
|
+
|
|
107
|
+
&:hover {
|
|
108
|
+
.remove-icon {
|
|
109
|
+
opacity: 1;
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
&::before {
|
|
114
|
+
display: none;
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
.angle-icon {
|
|
118
|
+
width: 14px;
|
|
119
|
+
height: 14px;
|
|
120
|
+
margin-right: 4px;
|
|
121
|
+
transform: rotate(90deg);
|
|
122
|
+
align-self: center;
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
.remove-icon {
|
|
126
|
+
width: 18px;
|
|
127
|
+
height: 18px;
|
|
128
|
+
opacity: 0;
|
|
129
|
+
cursor: pointer;
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
.stack-view-key {
|
|
133
|
+
flex: 0 0 40%;
|
|
134
|
+
max-width: 40%;
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
.stack-block-content {
|
|
138
|
+
padding: 0;
|
|
139
|
+
flex: 1 1 auto;
|
|
140
|
+
width: 60%;
|
|
141
|
+
background-color: transparent;
|
|
142
|
+
word-break: break-all;
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
.empty-icon {
|
|
146
|
+
width: 18px;
|
|
147
|
+
height: 18px;
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
&.stack-block-expanded {
|
|
152
|
+
.stack-block-label {
|
|
153
|
+
color: #ffffff;
|
|
154
|
+
background-color: #29414e;
|
|
155
|
+
|
|
156
|
+
.angle-icon {
|
|
157
|
+
fill: #ffffff;
|
|
158
|
+
transform: rotate(180deg);
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
.remove-icon {
|
|
162
|
+
fill: #ffffff;
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
&.not-children {
|
|
168
|
+
cursor: default;
|
|
169
|
+
.stack-block-label {
|
|
170
|
+
background-color: transparent;
|
|
171
|
+
color: #333333;
|
|
172
|
+
|
|
173
|
+
&:hover {
|
|
174
|
+
cursor: default;
|
|
175
|
+
background-color: transparent;
|
|
176
|
+
border-bottom: none;
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
.angle-icon {
|
|
180
|
+
opacity: 0;
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
</style>
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
export interface UI_I_TableInfoItem {
|
|
2
|
-
label: string
|
|
3
|
-
value: any
|
|
4
|
-
isProperty?: boolean
|
|
5
|
-
key?: string
|
|
6
|
-
localization?: string
|
|
7
|
-
localizationTemplate?: string
|
|
8
|
-
isCapital?: boolean
|
|
9
|
-
iconName?: string
|
|
10
|
-
}
|
|
1
|
+
export interface UI_I_TableInfoItem {
|
|
2
|
+
label: string
|
|
3
|
+
value: any
|
|
4
|
+
isProperty?: boolean
|
|
5
|
+
key?: string
|
|
6
|
+
localization?: string
|
|
7
|
+
localizationTemplate?: string
|
|
8
|
+
isCapital?: boolean
|
|
9
|
+
iconName?: string
|
|
10
|
+
}
|
|
@@ -21,10 +21,15 @@
|
|
|
21
21
|
<div class="subtitle-block flex-row">
|
|
22
22
|
<ui-wizard-subtitle :sub-title="selectedStep.subTitle" />
|
|
23
23
|
|
|
24
|
-
<common-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
24
|
+
<common-tooltip-help
|
|
25
|
+
test-id="datastore-type-subtitle-tooltip"
|
|
26
|
+
help-id="datastore-type-subtitle-tooltip-icon"
|
|
27
|
+
:title="localization.common.information"
|
|
28
|
+
:help-text="localization.common.datastoreTypeHelpDesc"
|
|
29
|
+
dropdown-width="272px"
|
|
30
|
+
dropdown-left
|
|
31
|
+
dropdown-top
|
|
32
|
+
class="ml-2"
|
|
28
33
|
/>
|
|
29
34
|
</div>
|
|
30
35
|
</div>
|
package/components/common/backup/storage/actions/add/steps/nameAndConfigure/NameAndConfigureNew.vue
CHANGED
|
@@ -35,9 +35,14 @@
|
|
|
35
35
|
<span class="basics-step-row-title-text">
|
|
36
36
|
{{ localization.common.folder }}
|
|
37
37
|
</span>
|
|
38
|
-
<common-
|
|
39
|
-
|
|
40
|
-
|
|
38
|
+
<common-tooltip-help
|
|
39
|
+
test-id="backup-storage-tooltip-info-folder"
|
|
40
|
+
help-id="backup-storage-tooltip-info-folder-icon"
|
|
41
|
+
:title="localization.common.information"
|
|
42
|
+
:help-text="localization.backup.specifyFolderPathExample"
|
|
43
|
+
dropdown-width="272px"
|
|
44
|
+
dropdown-left
|
|
45
|
+
dropdown-top
|
|
41
46
|
/>
|
|
42
47
|
</div>
|
|
43
48
|
<div class="basics-step-row-content">
|
|
@@ -58,9 +63,14 @@
|
|
|
58
63
|
<span class="basics-step-row-title-text">
|
|
59
64
|
{{ localization.common.server }}
|
|
60
65
|
</span>
|
|
61
|
-
<common-
|
|
62
|
-
|
|
63
|
-
|
|
66
|
+
<common-tooltip-help
|
|
67
|
+
test-id="backup-storage-tooltip-info-server"
|
|
68
|
+
help-id="backup-storage-tooltip-info-server-icon"
|
|
69
|
+
:title="localization.common.information"
|
|
70
|
+
:help-text="localization.backup.specifyServerAddressExample"
|
|
71
|
+
dropdown-width="272px"
|
|
72
|
+
dropdown-left
|
|
73
|
+
dropdown-top
|
|
64
74
|
/>
|
|
65
75
|
</div>
|
|
66
76
|
<div class="basics-step-row-content">
|
|
@@ -127,9 +137,7 @@ const props = defineProps<{
|
|
|
127
137
|
alertMessages: string[]
|
|
128
138
|
messagesFields: UI_I_WizardStep['fields']
|
|
129
139
|
}>()
|
|
130
|
-
|
|
131
|
-
(event: 'remove-errors'): void
|
|
132
|
-
}>()
|
|
140
|
+
|
|
133
141
|
|
|
134
142
|
const localization = computed<UI_I_Localization>(() => useLocal())
|
|
135
143
|
|
|
@@ -139,6 +147,7 @@ const isEmptyAlertMessages = computed<boolean>(() => {
|
|
|
139
147
|
(props.alertMessages && !props.alertMessages.flat().length)
|
|
140
148
|
)
|
|
141
149
|
})
|
|
150
|
+
|
|
142
151
|
/* Validation error text for Name input field */
|
|
143
152
|
const nameErrorText = computed<string>(() => {
|
|
144
153
|
if (isEmptyAlertMessages.value && props.messagesFields?.name?.field) {
|
|
@@ -17,9 +17,14 @@
|
|
|
17
17
|
</template>
|
|
18
18
|
|
|
19
19
|
<template #tooltip>
|
|
20
|
-
<common-
|
|
21
|
-
|
|
22
|
-
|
|
20
|
+
<common-tooltip-help
|
|
21
|
+
:test-id="`${option.testId}-${key}`"
|
|
22
|
+
:help-id="`${option.testId}-${key}`"
|
|
23
|
+
:help-text="option.tooltipContent"
|
|
24
|
+
:title="localization.common.information"
|
|
25
|
+
dropdown-width="272px"
|
|
26
|
+
dropdown-left
|
|
27
|
+
dropdown-top
|
|
23
28
|
/>
|
|
24
29
|
</template>
|
|
25
30
|
</ui-radio>
|
|
@@ -30,11 +35,15 @@
|
|
|
30
35
|
<script lang="ts" setup>
|
|
31
36
|
// TODO this component is duplicate
|
|
32
37
|
import type { UI_I_RadioOption } from '~/components/common/select/radio/lib/models/interfaces'
|
|
38
|
+
import type {UI_I_Localization} from "~/lib/models/interfaces";
|
|
33
39
|
|
|
34
40
|
const datastoreTypeModeLocal = defineModel<number>({ required: true })
|
|
35
41
|
const props = defineProps<{
|
|
36
42
|
options: UI_I_RadioOption[]
|
|
37
43
|
}>()
|
|
44
|
+
|
|
45
|
+
const localization = computed<UI_I_Localization>(() => useLocal())
|
|
46
|
+
|
|
38
47
|
</script>
|
|
39
48
|
|
|
40
49
|
<style>
|