bfg-common 1.5.485 → 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.
Files changed (31) hide show
  1. package/assets/localization/local_be.json +2 -1
  2. package/assets/localization/local_en.json +2 -1
  3. package/assets/localization/local_hy.json +2 -1
  4. package/assets/localization/local_kk.json +2 -1
  5. package/assets/localization/local_ru.json +2 -1
  6. package/assets/localization/local_zh.json +2 -1
  7. package/assets/scss/common/theme.scss +2 -2
  8. package/components/atoms/window/Window.vue +460 -460
  9. package/components/common/layout/theHeader/feedback/new/New.vue +2 -2
  10. package/components/common/layout/theHeader/feedback/new/description/Description.vue +3 -3
  11. package/components/common/layout/theHeader/feedback/new/tabs/Tabs.vue +4 -2
  12. package/components/common/layout/theHeader/feedback/new/tabs/lib/config/tabs.ts +3 -2
  13. package/components/common/layout/theHeader/feedback/new/tabs/lib/models/interfaces.ts +5 -0
  14. package/components/common/layout/theHeader/helpMenu/aboutNew/AboutNew.vue +96 -95
  15. package/components/common/layout/theHeader/userMenu/modals/changePassword/ChangePasswordNew.vue +1 -2
  16. package/components/common/layout/theHeader/userMenu/modals/preferences/PreferencesNew.vue +9 -0
  17. package/components/common/layout/theHeader/userMenu/modals/preferences/view/ViewNew.vue +6 -2
  18. package/components/common/monitor/advanced/tools/chartOptionsModal/ChartOptionsModalNew.vue +1 -0
  19. package/components/common/monitor/overview/OverviewNew.vue +4 -1
  20. package/components/common/monitor/overview/filters/customIntervalModal/CustomIntervalModal.vue +0 -2
  21. package/components/common/monitor/overview/filters/customIntervalModal/customIntervalModalNew/CustomIntervalModalNew.vue +6 -6
  22. package/components/common/pages/backups/modals/Modals.vue +1 -1
  23. package/components/common/pages/tasks/table/Table.vue +8 -9
  24. package/components/common/vm/actions/add/Add.vue +877 -850
  25. package/components/common/vm/actions/add/New.vue +8 -2
  26. package/components/common/vm/actions/add/Old.vue +8 -2
  27. package/components/common/vm/actions/add/lib/config/steps.ts +14 -3
  28. package/components/common/vm/actions/common/select/name/Name.vue +3 -0
  29. package/components/common/vm/actions/common/select/name/Old.vue +131 -124
  30. package/components/common/vmt/actions/add/Add.vue +549 -548
  31. 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="localization.common.newVirtualMachine2"
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="localization.common.newVirtualMachine2"
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
- {{ localization.common.selectLocationVirtualMachine }}
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
- dataCenter?: UI_I_TreeNode // для сферы
71
- }>(),
72
- {
73
- dataCenter: undefined,
74
- }
75
- )
76
- const emits = defineEmits<{
77
- (event: 'remove-validation-errors'): void
78
- (event: 'select-node', value: UI_I_TreeNode): void
79
- }>()
80
-
81
- const localization = computed<UI_I_Localization>(() => useLocal())
82
- </script>
83
-
84
- <style scoped lang="scss">
85
- .select-name {
86
- form {
87
- display: flex;
88
- align-items: center;
89
- padding-top: 20px;
90
-
91
- label {
92
- width: 216px;
93
- }
94
- input {
95
- width: 345px;
96
- }
97
- }
98
-
99
- .tree-view-wrap {
100
- position: relative;
101
- border: 1px solid #000;
102
- padding: 5px;
103
- max-height: 300px;
104
- min-height: 200px;
105
- overflow: auto;
106
- margin-bottom: 10px;
107
- }
108
- }
109
- .content-signpost {
110
- user-select: none;
111
-
112
- .icon-show-help {
113
- cursor: pointer;
114
- }
115
-
116
- .help-title {
117
- font-size: 22px;
118
- margin-bottom: 24px;
119
- }
120
- .signpost {
121
- max-width: 360px;
122
- }
123
- }
124
- </style>
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>