bfg-common 1.5.486 → 1.5.487
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/assets/localization/local_be.json +2 -1
- package/assets/localization/local_en.json +2 -1
- package/assets/localization/local_hy.json +2 -1
- package/assets/localization/local_kk.json +2 -1
- package/assets/localization/local_ru.json +2 -1
- package/assets/localization/local_zh.json +2 -1
- package/assets/scss/common/theme.scss +2 -2
- package/components/common/layout/theHeader/feedback/new/New.vue +2 -2
- package/components/common/layout/theHeader/feedback/new/description/Description.vue +3 -3
- package/components/common/layout/theHeader/feedback/new/tabs/Tabs.vue +4 -2
- package/components/common/layout/theHeader/feedback/new/tabs/lib/config/tabs.ts +3 -2
- package/components/common/layout/theHeader/feedback/new/tabs/lib/models/interfaces.ts +5 -0
- package/components/common/layout/theHeader/helpMenu/aboutNew/AboutNew.vue +96 -95
- package/components/common/layout/theHeader/userMenu/modals/changePassword/ChangePasswordNew.vue +1 -2
- package/components/common/layout/theHeader/userMenu/modals/preferences/PreferencesNew.vue +9 -0
- package/components/common/layout/theHeader/userMenu/modals/preferences/view/ViewNew.vue +6 -2
- package/components/common/monitor/advanced/tools/chartOptionsModal/ChartOptionsModalNew.vue +1 -0
- package/components/common/monitor/overview/OverviewNew.vue +4 -1
- package/components/common/monitor/overview/filters/customIntervalModal/CustomIntervalModal.vue +0 -2
- package/components/common/monitor/overview/filters/customIntervalModal/customIntervalModalNew/CustomIntervalModalNew.vue +6 -6
- package/components/common/pages/tasks/table/Table.vue +8 -9
- package/components/common/vm/actions/add/Add.vue +877 -850
- package/components/common/vm/actions/add/New.vue +8 -2
- package/components/common/vm/actions/add/Old.vue +8 -2
- package/components/common/vm/actions/add/lib/config/steps.ts +14 -3
- package/components/common/vm/actions/common/select/name/Name.vue +3 -0
- package/components/common/vm/actions/common/select/name/Old.vue +131 -124
- package/components/common/vmt/actions/add/Add.vue +549 -548
- package/package.json +1 -1
@@ -2,7 +2,7 @@
|
|
2
2
|
<ui-wizard
|
3
3
|
:steps="props.wizard.steps"
|
4
4
|
:selected-scheme="props.selectedScheme"
|
5
|
-
:title="
|
5
|
+
:title="props.title"
|
6
6
|
:texts="texts"
|
7
7
|
:is-loading="props.isLoading"
|
8
8
|
:class="[{ 'select-template-step': props.isShowSelectTemplate }]"
|
@@ -72,7 +72,9 @@
|
|
72
72
|
"
|
73
73
|
:name-form-submit="props.nameFormSubmit"
|
74
74
|
:project="props.project"
|
75
|
+
:is-vmt="props.isVmt"
|
75
76
|
:data-center="props.dataCenter"
|
77
|
+
:validate-empty-name="props.validateEmptyName"
|
76
78
|
@submit="emits('change-name', $event)"
|
77
79
|
@check-name="emits('check-name', $event)"
|
78
80
|
@has-errors="isNameAlertWrapperEmpty = $event"
|
@@ -249,6 +251,7 @@
|
|
249
251
|
<div class="select-block-wrap customize-hardware flex flex-col">
|
250
252
|
<common-vm-actions-common-customize-hardware
|
251
253
|
:project="props.project"
|
254
|
+
:is-vmt="props.isVmt"
|
252
255
|
:vm-name="vmForm.name"
|
253
256
|
:guest-machine-type="vmForm.guestMachineType"
|
254
257
|
:guest-os-family="vmForm.guestOsFamily"
|
@@ -311,6 +314,7 @@
|
|
311
314
|
>
|
312
315
|
<common-vm-actions-common-customize-hardware
|
313
316
|
:project="props.project"
|
317
|
+
:is-vmt="props.isVmt"
|
314
318
|
:vm-name="vmForm.name"
|
315
319
|
:guest-machine-type="vmForm.guestMachineType"
|
316
320
|
:guest-os-family="vmForm.guestOsFamily"
|
@@ -474,6 +478,7 @@ const isPowerOnByDefault = defineModel<boolean>('isPowerOnByDefault', {
|
|
474
478
|
const props = withDefaults(
|
475
479
|
defineProps<{
|
476
480
|
project: UI_T_Project
|
481
|
+
isVmt: boolean
|
477
482
|
nodes: UI_I_FileTreeNode[]
|
478
483
|
files: UI_I_FileTreeNode[]
|
479
484
|
networksTable: UI_I_NetworkTableItem[]
|
@@ -508,7 +513,9 @@ const props = withDefaults(
|
|
508
513
|
selectedNavItem: UI_T_SelectedNavItem
|
509
514
|
compatibilityInfo: string
|
510
515
|
isShowPowerOn: boolean
|
516
|
+
validateEmptyName: boolean
|
511
517
|
isShowSelectTemplate: boolean
|
518
|
+
title: string
|
512
519
|
computeResourceSubmit: null | Function // для сферы
|
513
520
|
dataCenter?: UI_I_TreeNode // для сферы
|
514
521
|
computeResource?: UI_I_TreeNode // для сферы
|
@@ -528,7 +535,6 @@ const props = withDefaults(
|
|
528
535
|
)
|
529
536
|
|
530
537
|
const emits = defineEmits<{
|
531
|
-
(event: 'check-name', value: [string, (error: API_UI_I_Error) => void]): void
|
532
538
|
(event: 'get-storage', value: UI_I_TablePayload): void
|
533
539
|
(event: 'get-folders-or-files', value: UI_I_FolderOrFileTreePayload): void
|
534
540
|
(event: 'get-active-device-child', value: UI_I_FileTreeNode): void
|
@@ -3,7 +3,7 @@
|
|
3
3
|
<atoms-wizard
|
4
4
|
:wizard="props.wizard"
|
5
5
|
:selected-scheme="props.selectedScheme"
|
6
|
-
:title="
|
6
|
+
:title="props.title"
|
7
7
|
:localization="localization"
|
8
8
|
test-id="new-virtual-machine-wizard"
|
9
9
|
show
|
@@ -40,7 +40,9 @@
|
|
40
40
|
"
|
41
41
|
:name-form-submit="props.nameFormSubmit"
|
42
42
|
:project="props.project"
|
43
|
+
:is-vmt="props.isVmt"
|
43
44
|
:data-center="props.dataCenter"
|
45
|
+
:validate-empty-name="props.validateEmptyName"
|
44
46
|
@submit="emits('change-name', $event)"
|
45
47
|
@check-name="emits('check-name', $event)"
|
46
48
|
/>
|
@@ -106,6 +108,7 @@
|
|
106
108
|
<common-vm-actions-common-customize-hardware
|
107
109
|
v-show="selectedStep.id === dynamicSteps.customizeHardware"
|
108
110
|
:project="props.project"
|
111
|
+
:is-vmt="props.isVmt"
|
109
112
|
:vm-name="vmForm.name"
|
110
113
|
:guest-machine-type="vmForm.guestMachineType"
|
111
114
|
:guest-os-family="vmForm.guestOsFamily"
|
@@ -146,6 +149,7 @@
|
|
146
149
|
<common-vm-actions-common-customize-hardware
|
147
150
|
v-if="props.vmtSettings"
|
148
151
|
v-show="selectedStep.id === dynamicSteps.customizeHardwareTemplate"
|
152
|
+
:is-vmt="props.isVmt"
|
149
153
|
:project="props.project"
|
150
154
|
:vm-name="vmForm.name"
|
151
155
|
:guest-machine-type="vmForm.guestMachineType"
|
@@ -282,6 +286,7 @@ const isPowerOnByDefault = defineModel<boolean>('isPowerOnByDefault', {
|
|
282
286
|
const props = withDefaults(
|
283
287
|
defineProps<{
|
284
288
|
project: UI_T_Project
|
289
|
+
isVmt: boolean
|
285
290
|
nodes: UI_I_FileTreeNode[]
|
286
291
|
files: UI_I_FileTreeNode[]
|
287
292
|
networksTable: UI_I_NetworkTableItem[]
|
@@ -316,6 +321,8 @@ const props = withDefaults(
|
|
316
321
|
selectedNavItem: UI_T_SelectedNavItem
|
317
322
|
compatibilityInfo: string
|
318
323
|
isShowPowerOn: boolean
|
324
|
+
validateEmptyName: boolean
|
325
|
+
title: string
|
319
326
|
computeResourceSubmit?: null | Function // для сферы
|
320
327
|
dataCenter?: UI_I_TreeNode // для сферы
|
321
328
|
computeResource?: UI_I_TreeNode // для сферы
|
@@ -334,7 +341,6 @@ const props = withDefaults(
|
|
334
341
|
)
|
335
342
|
|
336
343
|
const emits = defineEmits<{
|
337
|
-
(event: 'check-name', value: [string, (error: API_UI_I_Error) => void]): void
|
338
344
|
(event: 'get-storage', value: UI_I_TablePayload): void
|
339
345
|
(event: 'get-folders-or-files', value: UI_I_FolderOrFileTreePayload): void
|
340
346
|
(event: 'get-active-device-child', value: UI_I_FileTreeNode): void
|
@@ -20,7 +20,8 @@ export const dynamicSteps = {
|
|
20
20
|
}
|
21
21
|
|
22
22
|
export const stepsFunc = (
|
23
|
-
localization: UI_I_Localization
|
23
|
+
localization: UI_I_Localization,
|
24
|
+
isVmt: boolean
|
24
25
|
): UI_I_WizardStep[] => {
|
25
26
|
return [
|
26
27
|
{
|
@@ -28,7 +29,7 @@ export const stepsFunc = (
|
|
28
29
|
stepName: '',
|
29
30
|
title: localization.vmWizard.selectCreationType,
|
30
31
|
subTitle: localization.common.howWouldLikeCreateVirtualMachine,
|
31
|
-
status: UI_E_WIZARD_STATUS.SELECTED,
|
32
|
+
status: !isVmt ? UI_E_WIZARD_STATUS.SELECTED : UI_E_WIZARD_STATUS.COMPLETED,
|
32
33
|
isValid: true,
|
33
34
|
testId: 'vm-select-creation-type',
|
34
35
|
fields: {},
|
@@ -70,7 +71,7 @@ export const stepsFunc = (
|
|
70
71
|
stepName: '',
|
71
72
|
title: localization.vmWizard.selectNameFolder,
|
72
73
|
subTitle: localization.common.specifyUniqueNameTargetLocation,
|
73
|
-
status: UI_E_WIZARD_STATUS.INACTIVE,
|
74
|
+
status: !isVmt ? UI_E_WIZARD_STATUS.INACTIVE : UI_E_WIZARD_STATUS.SELECTED,
|
74
75
|
isValid: true,
|
75
76
|
testId: 'vm-select-name-folder',
|
76
77
|
fields: {
|
@@ -317,4 +318,14 @@ export const stepsSchemeInitial = [
|
|
317
318
|
dynamicSteps.customizeHardwareTemplate,
|
318
319
|
dynamicSteps.readyComplete,
|
319
320
|
],
|
321
|
+
// 10 Create Template (Sphere)
|
322
|
+
[
|
323
|
+
dynamicSteps.selectNameFolder,
|
324
|
+
dynamicSteps.selectComputeResource,
|
325
|
+
dynamicSteps.selectStorage,
|
326
|
+
dynamicSteps.compatibility,
|
327
|
+
dynamicSteps.selectGuestOS,
|
328
|
+
dynamicSteps.customizeHardware,
|
329
|
+
dynamicSteps.readyComplete,
|
330
|
+
],
|
320
331
|
]
|
@@ -14,6 +14,7 @@
|
|
14
14
|
v-model:vm-name="vmName"
|
15
15
|
v-model:is-show-help="isShowHelp"
|
16
16
|
:project="props.project"
|
17
|
+
:is-vmt="props.isVmt"
|
17
18
|
:errors="errors"
|
18
19
|
:data-center="props.dataCenter"
|
19
20
|
@remove-validation-errors="onRemoveValidationErrors"
|
@@ -32,12 +33,14 @@ const props = withDefaults(
|
|
32
33
|
nameFormSubmit: null | Function
|
33
34
|
show: boolean
|
34
35
|
project: UI_T_Project
|
36
|
+
isVmt?: boolean
|
35
37
|
validateEmptyName?: boolean
|
36
38
|
dataCenter?: UI_I_TreeNode // для сферы
|
37
39
|
existName?: string
|
38
40
|
}>(),
|
39
41
|
{
|
40
42
|
validateEmptyName: false,
|
43
|
+
isVmt: false,
|
41
44
|
dataCenter: undefined,
|
42
45
|
existName: undefined,
|
43
46
|
}
|
@@ -1,124 +1,131 @@
|
|
1
|
-
<template>
|
2
|
-
<div class="select-name">
|
3
|
-
<atoms-alert
|
4
|
-
v-show="props.errors.length"
|
5
|
-
:items="props.errors"
|
6
|
-
status="alert-danger"
|
7
|
-
test-id="name-alert"
|
8
|
-
@remove="emits('remove-validation-errors')"
|
9
|
-
/>
|
10
|
-
|
11
|
-
<form id="virtual-machine-form" @submit.prevent>
|
12
|
-
<label for="virtual-machine-name">{{ localization.common.name }}:</label>
|
13
|
-
<input
|
14
|
-
id="virtual-machine-name"
|
15
|
-
v-model.trim="vmName"
|
16
|
-
data-id="virtual-machine-name-input"
|
17
|
-
type="text"
|
18
|
-
maxlength="54"
|
19
|
-
/>
|
20
|
-
<div id="vm-name-help-icon" class="content-signpost relative">
|
21
|
-
<atoms-the-icon
|
22
|
-
data-id="show-vm-name-help-icon"
|
23
|
-
class="icon-show-help"
|
24
|
-
fill="#0072a3"
|
25
|
-
width="24px"
|
26
|
-
height="24px"
|
27
|
-
name="info-circle"
|
28
|
-
@click="isShowHelp = !isShowHelp"
|
29
|
-
/>
|
30
|
-
<atoms-tooltip-signpost
|
31
|
-
v-if="isShowHelp"
|
32
|
-
test-id="help-signpost"
|
33
|
-
elem-id="vm-name-help-icon"
|
34
|
-
@hide="isShowHelp = false"
|
35
|
-
>
|
36
|
-
<p>
|
37
|
-
{{ localization.common.vmNameValidationDescription }}
|
38
|
-
</p>
|
39
|
-
</atoms-tooltip-signpost>
|
40
|
-
</div>
|
41
|
-
</form>
|
42
|
-
|
43
|
-
<template v-if="props.project === 'sphere'">
|
44
|
-
<p class="new-vm-name-and-folder-instructions mt-1">
|
45
|
-
{{
|
46
|
-
</p>
|
47
|
-
<div class="tree-view-wrap">
|
48
|
-
<common-vm-actions-add-folder-tree-view
|
49
|
-
:data-center="props.dataCenter"
|
50
|
-
@select-node="emits('select-node', $event)"
|
51
|
-
/>
|
52
|
-
</div>
|
53
|
-
</template>
|
54
|
-
</div>
|
55
|
-
</template>
|
56
|
-
|
57
|
-
<script setup lang="ts">
|
58
|
-
// import { API_UI_I_Error } from '~/lib/models/store/interfaces'
|
59
|
-
import type { UI_I_Localization } from '~/lib/models/interfaces'
|
60
|
-
import type { UI_T_Project } from '~/lib/models/types'
|
61
|
-
import type { UI_I_TreeNode } from '~/components/common/recursionTree/lib/models/interfaces'
|
62
|
-
|
63
|
-
const vmName = defineModel<string>('vmName', { required: true })
|
64
|
-
const isShowHelp = defineModel<boolean>('isShowHelp', { required: true })
|
65
|
-
|
66
|
-
const props = withDefaults(
|
67
|
-
defineProps<{
|
68
|
-
project: UI_T_Project
|
69
|
-
errors: string[]
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
(event: '
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
.
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
}
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
1
|
+
<template>
|
2
|
+
<div class="select-name">
|
3
|
+
<atoms-alert
|
4
|
+
v-show="props.errors.length"
|
5
|
+
:items="props.errors"
|
6
|
+
status="alert-danger"
|
7
|
+
test-id="name-alert"
|
8
|
+
@remove="emits('remove-validation-errors')"
|
9
|
+
/>
|
10
|
+
|
11
|
+
<form id="virtual-machine-form" @submit.prevent>
|
12
|
+
<label for="virtual-machine-name">{{ localization.common.name }}:</label>
|
13
|
+
<input
|
14
|
+
id="virtual-machine-name"
|
15
|
+
v-model.trim="vmName"
|
16
|
+
data-id="virtual-machine-name-input"
|
17
|
+
type="text"
|
18
|
+
maxlength="54"
|
19
|
+
/>
|
20
|
+
<div id="vm-name-help-icon" class="content-signpost relative">
|
21
|
+
<atoms-the-icon
|
22
|
+
data-id="show-vm-name-help-icon"
|
23
|
+
class="icon-show-help"
|
24
|
+
fill="#0072a3"
|
25
|
+
width="24px"
|
26
|
+
height="24px"
|
27
|
+
name="info-circle"
|
28
|
+
@click="isShowHelp = !isShowHelp"
|
29
|
+
/>
|
30
|
+
<atoms-tooltip-signpost
|
31
|
+
v-if="isShowHelp"
|
32
|
+
test-id="help-signpost"
|
33
|
+
elem-id="vm-name-help-icon"
|
34
|
+
@hide="isShowHelp = false"
|
35
|
+
>
|
36
|
+
<p>
|
37
|
+
{{ localization.common.vmNameValidationDescription }}
|
38
|
+
</p>
|
39
|
+
</atoms-tooltip-signpost>
|
40
|
+
</div>
|
41
|
+
</form>
|
42
|
+
|
43
|
+
<template v-if="props.project === 'sphere'">
|
44
|
+
<p class="new-vm-name-and-folder-instructions mt-1">
|
45
|
+
{{ locationDescription }}
|
46
|
+
</p>
|
47
|
+
<div class="tree-view-wrap">
|
48
|
+
<common-vm-actions-add-folder-tree-view
|
49
|
+
:data-center="props.dataCenter"
|
50
|
+
@select-node="emits('select-node', $event)"
|
51
|
+
/>
|
52
|
+
</div>
|
53
|
+
</template>
|
54
|
+
</div>
|
55
|
+
</template>
|
56
|
+
|
57
|
+
<script setup lang="ts">
|
58
|
+
// import { API_UI_I_Error } from '~/lib/models/store/interfaces'
|
59
|
+
import type { UI_I_Localization } from '~/lib/models/interfaces'
|
60
|
+
import type { UI_T_Project } from '~/lib/models/types'
|
61
|
+
import type { UI_I_TreeNode } from '~/components/common/recursionTree/lib/models/interfaces'
|
62
|
+
|
63
|
+
const vmName = defineModel<string>('vmName', { required: true })
|
64
|
+
const isShowHelp = defineModel<boolean>('isShowHelp', { required: true })
|
65
|
+
|
66
|
+
const props = withDefaults(
|
67
|
+
defineProps<{
|
68
|
+
project: UI_T_Project
|
69
|
+
errors: string[]
|
70
|
+
isVmt: boolean
|
71
|
+
dataCenter?: UI_I_TreeNode // для сферы
|
72
|
+
}>(),
|
73
|
+
{
|
74
|
+
dataCenter: undefined,
|
75
|
+
}
|
76
|
+
)
|
77
|
+
const emits = defineEmits<{
|
78
|
+
(event: 'remove-validation-errors'): void
|
79
|
+
(event: 'select-node', value: UI_I_TreeNode): void
|
80
|
+
}>()
|
81
|
+
|
82
|
+
const localization = computed<UI_I_Localization>(() => useLocal())
|
83
|
+
|
84
|
+
const locationDescription = computed<string>(() =>
|
85
|
+
props.isVmt
|
86
|
+
? localization.value.vmt.selectLocationTemplate
|
87
|
+
: localization.value.common.selectLocationVirtualMachine
|
88
|
+
)
|
89
|
+
</script>
|
90
|
+
|
91
|
+
<style scoped lang="scss">
|
92
|
+
.select-name {
|
93
|
+
form {
|
94
|
+
display: flex;
|
95
|
+
align-items: center;
|
96
|
+
padding-top: 20px;
|
97
|
+
|
98
|
+
label {
|
99
|
+
width: 216px;
|
100
|
+
}
|
101
|
+
input {
|
102
|
+
width: 345px;
|
103
|
+
}
|
104
|
+
}
|
105
|
+
|
106
|
+
.tree-view-wrap {
|
107
|
+
position: relative;
|
108
|
+
border: 1px solid #000;
|
109
|
+
padding: 5px;
|
110
|
+
max-height: 300px;
|
111
|
+
min-height: 200px;
|
112
|
+
overflow: auto;
|
113
|
+
margin-bottom: 10px;
|
114
|
+
}
|
115
|
+
}
|
116
|
+
.content-signpost {
|
117
|
+
user-select: none;
|
118
|
+
|
119
|
+
.icon-show-help {
|
120
|
+
cursor: pointer;
|
121
|
+
}
|
122
|
+
|
123
|
+
.help-title {
|
124
|
+
font-size: 22px;
|
125
|
+
margin-bottom: 24px;
|
126
|
+
}
|
127
|
+
.signpost {
|
128
|
+
max-width: 360px;
|
129
|
+
}
|
130
|
+
}
|
131
|
+
</style>
|