bfg-common 1.5.473 → 1.5.474

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 (156) hide show
  1. package/CODE_STYLE.md +109 -109
  2. package/assets/img/icons/icons-sprite-dark-3.svg +227 -227
  3. package/assets/img/icons/icons-sprite-dark-5.svg +488 -488
  4. package/assets/img/icons/icons-sprite-light-3.svg +227 -227
  5. package/assets/img/icons/icons-sprite-light-5.svg +488 -488
  6. package/assets/localization/local_be.json +1 -2
  7. package/assets/localization/local_en.json +1 -2
  8. package/assets/localization/local_hy.json +1 -2
  9. package/assets/localization/local_kk.json +1 -2
  10. package/assets/localization/local_ru.json +1 -2
  11. package/assets/localization/local_zh.json +1 -2
  12. package/assets/scss/clarity/local_ar.json +1 -2
  13. package/components/atoms/TheIcon3.vue +50 -50
  14. package/components/atoms/collapse/CollapseNav.vue +170 -170
  15. package/components/atoms/perPage/PerPage.vue +58 -58
  16. package/components/atoms/table/dataGrid/DataGrid.vue +1709 -1709
  17. package/components/atoms/table/dataGrid/DataGridPagination.vue +97 -97
  18. package/components/atoms/table/dataGrid/lib/config/settingsTable.ts +94 -94
  19. package/components/atoms/table/dataGrid/lib/utils/export.ts +16 -16
  20. package/components/atoms/window/Window.vue +458 -458
  21. package/components/common/browse/blocks/contents/filesNew/Skeleton.vue +18 -18
  22. package/components/common/context/lib/models/interfaces.ts +33 -33
  23. package/components/common/diagramMain/modals/lib/config/networkModal.ts +398 -398
  24. package/components/common/diagramMain/modals/lib/config/portModal.ts +251 -251
  25. package/components/common/diagramMain/modals/lib/config/vCenterModal.ts +48 -48
  26. package/components/common/diagramMain/port/Port.vue +580 -580
  27. package/components/common/layout/theHeader/helpMenu/About.vue +79 -82
  28. package/components/common/layout/theHeader/helpMenu/aboutNew/AboutNew.vue +3 -7
  29. package/components/common/layout/theHeader/helpMenu/aboutOld/AboutOld.vue +2 -3
  30. package/components/common/pages/backups/DetailView.vue +52 -52
  31. package/components/common/pages/backups/lib/models/interfaces.ts +36 -36
  32. package/components/common/pages/backups/modals/createBackup/configuration/Configuration.vue +29 -29
  33. package/components/common/pages/backups/modals/createBackup/configuration/backupWindow/BackupWindow.vue +26 -26
  34. package/components/common/pages/backups/modals/createBackup/configuration/maxBandwidth/MaxBandwidth.vue +66 -66
  35. package/components/common/pages/backups/modals/createBackup/configuration/maxBandwidth/lib/config/options.ts +6 -6
  36. package/components/common/pages/backups/modals/createBackup/configuration/strategy/Strategy.vue +35 -35
  37. package/components/common/pages/backups/modals/createBackup/datastores/tableView/TableView.vue +95 -95
  38. package/components/common/pages/backups/modals/createBackup/general/General.vue +141 -141
  39. package/components/common/pages/backups/modals/createBackup/lib/config/strategyOptions.ts +12 -12
  40. package/components/common/pages/backups/modals/lib/config/restore.ts +115 -115
  41. package/components/common/pages/backups/modals/lib/models/interfaces.ts +186 -186
  42. package/components/common/pages/backups/modals/restore/disks/Disks.vue +27 -27
  43. package/components/common/pages/backups/modals/restore/disks/tableView/lib/config/table.ts +117 -117
  44. package/components/common/pages/backups/modals/restore/name/Name.vue +166 -166
  45. package/components/common/pages/backups/modals/restore/name/lib/models/interfaces.ts +6 -6
  46. package/components/common/pages/backups/modals/restore/networks/Networks.vue +67 -67
  47. package/components/common/pages/backups/modals/restore/networks/table/Table.vue +214 -214
  48. package/components/common/pages/backups/modals/restore/types/lib/config/typeOptions.ts +25 -25
  49. package/components/common/pages/backups/tools/Tools.vue +75 -75
  50. package/components/common/pages/backups/tools/lib/config/tabs.ts +36 -36
  51. package/components/common/pages/home/lib/models/interfaces.ts +48 -48
  52. package/components/common/pages/home/widgets/hosts/Hosts.vue +27 -27
  53. package/components/common/pages/home/widgets/hosts/lib/config/items.ts +23 -23
  54. package/components/common/pages/home/widgets/vms/VmsOld.vue +35 -35
  55. package/components/common/pages/home/widgets/vms/lib/config/items.ts +19 -19
  56. package/components/common/pages/scheduledTasks/lib/utils/utils.ts +84 -84
  57. package/components/common/readyToComplete/ReadyToComplete.vue +17 -17
  58. package/components/common/select/radio/RadioGroup.vue +137 -137
  59. package/components/common/spiceConsole/Drawer.vue +392 -392
  60. package/components/common/spiceConsole/SpiceConsole.vue +184 -184
  61. package/components/common/spiceConsole/lib/models/interfaces.ts +5 -5
  62. package/components/common/tools/Actions.vue +207 -207
  63. package/components/common/treeView/TreeView.vue +52 -52
  64. package/components/common/vm/actions/add/folderTreeView/FolderTreeView.vue +72 -72
  65. package/components/common/vm/actions/add/folderTreeView/New.vue +40 -40
  66. package/components/common/vm/actions/common/customizeHardware/virtualHardware/bus/BusNew.vue +4 -1
  67. package/components/common/vm/actions/common/customizeHardware/virtualHardware/bus/BusOld.vue +1 -1
  68. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/CdDvdDriveNew.vue +1 -0
  69. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/CdDvdDriveOld.vue +1 -0
  70. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/Media.vue +1 -0
  71. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/MediaNew.vue +84 -78
  72. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/Cpu.vue +368 -368
  73. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/coresPerSocket/CoresPerSocketNew.vue +4 -1
  74. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/hotPlug/HotPlugNew.vue +4 -1
  75. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/maxCpu/MaxCpuNew.vue +4 -1
  76. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/model/ModelNew.vue +4 -1
  77. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/shares/Shares.vue +140 -140
  78. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/shares/SharesNew.vue +4 -1
  79. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/shares/lib/config/options.ts +28 -28
  80. package/components/common/vm/actions/common/customizeHardware/virtualHardware/limit/LimitNew.vue +4 -1
  81. package/components/common/vm/actions/common/customizeHardware/virtualHardware/memory/hotPlug/HotPlugNew.vue +4 -1
  82. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/NewHardDiskNew.vue +2 -0
  83. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/cache/CacheNew.vue +4 -1
  84. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/file/File.vue +1 -0
  85. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/file/FileNew.vue +5 -1
  86. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/limitIops/LimitIopsNew.vue +4 -1
  87. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/location/Location.vue +154 -154
  88. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/location/LocationNew.vue +4 -1
  89. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/maximumSize/MaximumSize.vue +1 -0
  90. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/maximumSize/MaximumSizeNew.vue +5 -1
  91. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/mode/ModeNew.vue +4 -1
  92. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/provisioning/ProvisioningNew.vue +4 -1
  93. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/sharing/SharingNew.vue +4 -1
  94. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/adapterType/AdapterTypeNew.vue +4 -1
  95. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/location/new/table/Table.vue +99 -99
  96. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/macAddress/MacAddress.vue +119 -119
  97. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/macAddress/MacAddressNew.vue +4 -1
  98. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/directPathIo/DirectPathIoNew.vue +69 -66
  99. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIo.vue +31 -31
  100. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIoNew.vue +4 -1
  101. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/Note.vue +1 -0
  102. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/NoteNew.vue +49 -42
  103. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/nvidiaGrid/NvidiaGridNew.vue +4 -1
  104. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/typeSelection/TypeSelectionNew.vue +4 -1
  105. package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/Other.vue +16 -16
  106. package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/inputDevices/InputDevicesNew.vue +4 -1
  107. package/components/common/vm/actions/common/customizeHardware/virtualHardware/reservation/ReservationNew.vue +4 -1
  108. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/model/ModelNew.vue +4 -1
  109. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/numberDisplays/NumberDisplays.vue +53 -53
  110. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/numberDisplays/NumberDisplaysNew.vue +4 -1
  111. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/totalVideoMemory/TotalVideoMemoryNew.vue +4 -1
  112. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/delay/Delay.vue +32 -32
  113. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/delay/DelayNew.vue +4 -1
  114. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/firmware/Firmware.vue +60 -60
  115. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/firmware/FirmwareNew.vue +4 -1
  116. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/menu/MenuNew.vue +4 -1
  117. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/Order.vue +174 -174
  118. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/OrderNew.vue +4 -1
  119. package/components/common/vm/actions/common/customizeHardware/vmoptions/generalOptions/GeneralOptionsNew.vue +16 -4
  120. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/copyPaste/CopyPasteNew.vue +4 -1
  121. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/fileTransfer/FileTransferNew.vue +4 -1
  122. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/folderSharing/FolderSharingNew.vue +4 -1
  123. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/keymap/Keymap.vue +32 -32
  124. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/keymap/KeymapNew.vue +4 -1
  125. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/password/Password.vue +103 -103
  126. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/password/PasswordNew.vue +4 -1
  127. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirection.vue +28 -28
  128. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirectionNew.vue +4 -1
  129. package/components/common/vm/actions/common/select/compatibility/Old.vue +107 -107
  130. package/components/common/vm/actions/common/select/computeResource/ComputeResource.vue +143 -143
  131. package/components/common/vm/actions/common/select/computeResource/New.vue +184 -184
  132. package/components/common/vm/actions/common/select/computeResource/treeView/TreeView.vue +131 -131
  133. package/components/common/vm/actions/common/select/createType/CreateType.vue +38 -38
  134. package/components/common/vm/actions/common/select/createType/lib/models/interfaces.ts +5 -5
  135. package/components/common/vm/actions/common/select/name/Name.vue +197 -197
  136. package/components/common/vm/actions/common/select/os/Old.vue +152 -152
  137. package/components/common/vm/actions/common/select/os/Os.vue +139 -139
  138. package/components/common/vm/actions/common/select/storage/new/New.vue +320 -320
  139. package/components/common/vm/actions/common/select/storage/new/lib/models/interfaces.ts +5 -5
  140. package/components/common/vm/actions/common/select/storage/new/lib/utils/utils.ts +21 -21
  141. package/components/common/vm/actions/common/select/template/old/Old.vue +50 -50
  142. package/components/common/vm/actions/editSettings/new/Skeleton.vue +88 -88
  143. package/components/common/vm/actions/register/Register.vue +267 -267
  144. package/components/common/vm/actions/register/lib/config/steps.ts +86 -86
  145. package/components/common/wizards/datastore/add/steps/typeMode/lib/config/typeOptions.ts +43 -43
  146. package/components/common/wizards/vm/migrate/select/network/Network.vue +103 -103
  147. package/composables/productNameLocal.ts +30 -30
  148. package/composables/useAppVersion.ts +21 -21
  149. package/package.json +1 -1
  150. package/plugins/date.ts +233 -233
  151. package/plugins/panelStates.ts +70 -70
  152. package/plugins/text.ts +59 -59
  153. package/public/spice-console/lib/images/bitmap.js +203 -203
  154. package/public/spice-console/network/spicechannel.js +440 -440
  155. package/store/main/mutations.ts +7 -7
  156. package/store/main/state.ts +7 -7
@@ -1,267 +1,267 @@
1
- <template>
2
- <div class="register-vm">
3
- <atoms-wizard
4
- :wizard="wizard"
5
- :selected-scheme="selectedScheme"
6
- :title="localization.common.registerVm"
7
- :localization="localization"
8
- test-id="register-wizard"
9
- show
10
- @change-steps="onChangeSteps"
11
- @hide="emits('hide')"
12
- @submit="emits('finish')"
13
- >
14
- <template #modalBody="{ selectedStep }">
15
- <!-- <atoms-loader-->
16
- <!-- v-show="props.isLoading"-->
17
- <!-- id="loader"-->
18
- <!-- test-id="edit-vm-settings-spinner"-->
19
- <!-- />-->
20
- <div class="register-vm-content">
21
- <common-vm-actions-common-select-name
22
- v-show="
23
- selectedStep.id === dynamicSteps.selectName ||
24
- selectedStep.id === dynamicSteps.selectNameFolder
25
- "
26
- :show="
27
- selectedStep.id === dynamicSteps.selectName ||
28
- selectedStep.id === dynamicSteps.selectNameFolder
29
- "
30
- :name-form-submit="nameFormSubmit"
31
- :project="props.project"
32
- :data-center="props.dataCenter"
33
- @submit="onChangeName(...$event)"
34
- @check-name="emits('check-name', $event)"
35
- />
36
- <common-vm-actions-common-select-compute-resource
37
- v-if="isSphere"
38
- v-show="selectedStep.id === dynamicSteps.selectComputeResource"
39
- v-model="vmForm.computeResource"
40
- :compute-resource-submit="computeResourceSubmit"
41
- :data-center="vmForm.dataCenter"
42
- :compute-resource="props.computeResource"
43
- :compute-resource-tree="props.computeResourceTree"
44
- @submit="emits('change-compute-resource', $event)"
45
- @select-compute-resource-tree="
46
- emits('select-compute-resource-tree', $event)
47
- "
48
- @get-compute-resource-tree="
49
- emits('get-compute-resource-tree', $event)
50
- "
51
- @show-compute-resource-tree="
52
- emits('show-compute-resource-tree', $event)
53
- "
54
- @clear-compute-resource-tree="emits('clear-compute-resource-tree')"
55
- />
56
- <common-ready-to-complete
57
- v-if="selectedStep.id === dynamicSteps.readyComplete"
58
- :data="props.readyCompleteTableInfo"
59
- />
60
- </div>
61
- </template>
62
- </atoms-wizard>
63
- </div>
64
- </template>
65
-
66
- <script setup lang="ts">
67
- import type { UI_I_WizardStep } from '~/node_modules/bfg-uikit/components/ui/wizard/lib/models/interfaces'
68
- import type { UI_I_ValidationReturn } from '~/node_modules/bfg-uikit/components/ui/wizard/lib/models/interfaces'
69
- import Wizard from '~/node_modules/bfg-uikit/components/ui/wizard/lib/utils/utils'
70
- import type { UI_I_Localization } from '~/lib/models/interfaces'
71
- import type { UI_T_Project } from '~/lib/models/types'
72
- import type { API_UI_I_Error } from '~/lib/models/store/interfaces'
73
- import type { UI_I_TableInfoItem } from '~/components/atoms/table/info/lib/models/interfaces'
74
- import type { UI_I_TreeNode } from '~/components/common/recursionTree/lib/models/interfaces'
75
- import {
76
- dynamicSteps,
77
- stepsFunc,
78
- stepsSchemeInitial,
79
- } from '~/components/common/vm/actions/register/lib/config/steps'
80
-
81
- const vmForm = defineModel<any>({ required: true })
82
-
83
- const props = withDefaults(
84
- defineProps<{
85
- project: UI_T_Project
86
- readyCompleteTableInfo: UI_I_TableInfoItem[]
87
- dataCenter?: UI_I_TreeNode // для сферы
88
- computeResource?: UI_I_TreeNode // для сферы
89
- computeResourceTree?: UI_I_TreeNode[] // для сферы
90
- }>(),
91
- {
92
- dataCenter: undefined,
93
- computeResource: undefined,
94
- computeResourceTree: undefined,
95
- }
96
- )
97
-
98
- const emits = defineEmits<{
99
- (event: 'finish'): void
100
- (
101
- event: 'check-name',
102
- value: [[string, UI_I_TreeNode | null], (error: API_UI_I_Error) => void]
103
- ): void
104
- (event: 'hide'): void
105
- (event: 'clear-compute-resource-tree'): void // для сферы
106
- (event: 'change-compute-resource', value: UI_I_TreeNode): void // для сферы
107
- (event: 'select-compute-resource-tree', value: UI_I_TreeNode): void // для сферы
108
- (
109
- event: 'get-compute-resource-tree',
110
- value: { id: string | number; cb: () => void }
111
- ): void // для сферы
112
- (event: 'show-compute-resource-tree', value: UI_I_TreeNode): void // для сферы
113
- }>()
114
-
115
- const { $recursion }: any = useNuxtApp()
116
-
117
- const localization = computed<UI_I_Localization>(() => useLocal())
118
- const isSphere = computed<boolean>(() => props.project === 'sphere')
119
-
120
- const wizard: Wizard = new Wizard(
121
- stepsFunc(localization.value),
122
- stepsSchemeInitial
123
- )
124
- if (isSphere.value) {
125
- wizard.changeScheme(1)
126
- wizard.selectStepHard(1)
127
- }
128
-
129
- const selectedScheme = computed<number[]>(() => wizard.selectedScheme.value)
130
- const onChangeSteps = async (value: UI_I_WizardStep[]): Promise<void> => {
131
- wizard.changeSteps(value, validationFunc)
132
- }
133
- const validationFunc = async (
134
- value: UI_I_WizardStep[],
135
- currentStep: UI_I_WizardStep,
136
- nextStep: UI_I_WizardStep
137
- ): Promise<UI_I_ValidationReturn> => {
138
- let stepHasError = false
139
- let stepShouldStop = {
140
- ifOnCurrentStep: false,
141
- ifFromAnyStep: false,
142
- stoppageStepId: -1,
143
- }
144
-
145
- wizard.setLoader(true)
146
- if (
147
- wizard.isValidateForStep(
148
- isSphere.value ? dynamicSteps.selectNameFolder : dynamicSteps.selectName,
149
- currentStep.id,
150
- nextStep.id
151
- )
152
- ) {
153
- const nameValidation = await onCheckName(value)
154
-
155
- value = nameValidation.newValue
156
- stepHasError = stepHasError || nameValidation.stepHasError
157
- } else if (
158
- isSphere.value &&
159
- wizard.isValidateForStep(
160
- dynamicSteps.selectComputeResource,
161
- currentStep.id,
162
- nextStep.id
163
- )
164
- ) {
165
- const computeResourceValidation = await checkComputeResource(value)
166
-
167
- value = computeResourceValidation.newValue
168
- stepHasError = stepHasError || computeResourceValidation.stepHasError
169
- }
170
- wizard.setLoader(false)
171
-
172
- return {
173
- newValue: value,
174
- stepHasError,
175
- stepShouldStop,
176
- }
177
- }
178
-
179
- const nameFormSubmit = ref<null | Function>(null)
180
- const computeResourceSubmit = ref<null | Function>(null)
181
- const onCheckName = async (
182
- value: UI_I_WizardStep[]
183
- ): Promise<UI_I_ValidationReturn> => {
184
- let stepHasError = false
185
-
186
- return new Promise((resolve) => {
187
- const step = isSphere.value
188
- ? dynamicSteps.selectNameFolder
189
- : dynamicSteps.selectName
190
- nameFormSubmit.value = (isValid: boolean) => {
191
- if (!isValid) {
192
- stepHasError = wizard.setValidation(step, 'name', {
193
- fieldMessage: 'aaa',
194
- alertMessage: 'aaa',
195
- })
196
- } else if (wizard.hasMessage(step, 'name')) {
197
- value = wizard.removeValidation(step, 'name', value)
198
- }
199
-
200
- resolve({
201
- stepHasError,
202
- newValue: value,
203
- })
204
- nameFormSubmit.value = null
205
- }
206
- })
207
- }
208
- const checkComputeResource = async (
209
- value: UI_I_WizardStep[]
210
- ): Promise<UI_I_ValidationReturn> => {
211
- let stepHasError = false
212
-
213
- return new Promise((resolve) => {
214
- computeResourceSubmit.value = (isValid: boolean) => {
215
- if (!isValid) {
216
- stepHasError = wizard.setValidation(
217
- dynamicSteps.selectComputeResource,
218
- 'computeResource',
219
- {
220
- fieldMessage: 'aaa',
221
- alertMessage: 'aaa',
222
- }
223
- )
224
- } else if (
225
- wizard.hasMessage(dynamicSteps.selectComputeResource, 'computeResource')
226
- ) {
227
- value = wizard.removeValidation(
228
- dynamicSteps.selectComputeResource,
229
- 'computeResource',
230
- value
231
- )
232
- }
233
-
234
- resolve({
235
- stepHasError,
236
- newValue: value,
237
- })
238
- computeResourceSubmit.value = null
239
- }
240
- })
241
- }
242
-
243
- const onChangeName = (name: string, node: UI_I_TreeNode | null): void => {
244
- vmForm.value.name = name
245
- if (isSphere.value) {
246
- vmForm.value.locationPath = node.id
247
- vmForm.value.dataCenter = $recursion.findParentByValue(
248
- node,
249
- 'datacenter',
250
- 'type',
251
- 'parent'
252
- )
253
- }
254
- }
255
- </script>
256
-
257
- <style scoped lang="scss">
258
- :deep(.modal-body) {
259
- display: flex;
260
- flex-direction: column;
261
- }
262
- .register-vm-content {
263
- display: flex;
264
- flex-direction: column;
265
- flex: 1;
266
- }
267
- </style>
1
+ <template>
2
+ <div class="register-vm">
3
+ <atoms-wizard
4
+ :wizard="wizard"
5
+ :selected-scheme="selectedScheme"
6
+ :title="localization.common.registerVm"
7
+ :localization="localization"
8
+ test-id="register-wizard"
9
+ show
10
+ @change-steps="onChangeSteps"
11
+ @hide="emits('hide')"
12
+ @submit="emits('finish')"
13
+ >
14
+ <template #modalBody="{ selectedStep }">
15
+ <!-- <atoms-loader-->
16
+ <!-- v-show="props.isLoading"-->
17
+ <!-- id="loader"-->
18
+ <!-- test-id="edit-vm-settings-spinner"-->
19
+ <!-- />-->
20
+ <div class="register-vm-content">
21
+ <common-vm-actions-common-select-name
22
+ v-show="
23
+ selectedStep.id === dynamicSteps.selectName ||
24
+ selectedStep.id === dynamicSteps.selectNameFolder
25
+ "
26
+ :show="
27
+ selectedStep.id === dynamicSteps.selectName ||
28
+ selectedStep.id === dynamicSteps.selectNameFolder
29
+ "
30
+ :name-form-submit="nameFormSubmit"
31
+ :project="props.project"
32
+ :data-center="props.dataCenter"
33
+ @submit="onChangeName(...$event)"
34
+ @check-name="emits('check-name', $event)"
35
+ />
36
+ <common-vm-actions-common-select-compute-resource
37
+ v-if="isSphere"
38
+ v-show="selectedStep.id === dynamicSteps.selectComputeResource"
39
+ v-model="vmForm.computeResource"
40
+ :compute-resource-submit="computeResourceSubmit"
41
+ :data-center="vmForm.dataCenter"
42
+ :compute-resource="props.computeResource"
43
+ :compute-resource-tree="props.computeResourceTree"
44
+ @submit="emits('change-compute-resource', $event)"
45
+ @select-compute-resource-tree="
46
+ emits('select-compute-resource-tree', $event)
47
+ "
48
+ @get-compute-resource-tree="
49
+ emits('get-compute-resource-tree', $event)
50
+ "
51
+ @show-compute-resource-tree="
52
+ emits('show-compute-resource-tree', $event)
53
+ "
54
+ @clear-compute-resource-tree="emits('clear-compute-resource-tree')"
55
+ />
56
+ <common-ready-to-complete
57
+ v-if="selectedStep.id === dynamicSteps.readyComplete"
58
+ :data="props.readyCompleteTableInfo"
59
+ />
60
+ </div>
61
+ </template>
62
+ </atoms-wizard>
63
+ </div>
64
+ </template>
65
+
66
+ <script setup lang="ts">
67
+ import type { UI_I_WizardStep } from '~/node_modules/bfg-uikit/components/ui/wizard/lib/models/interfaces'
68
+ import type { UI_I_ValidationReturn } from '~/node_modules/bfg-uikit/components/ui/wizard/lib/models/interfaces'
69
+ import Wizard from '~/node_modules/bfg-uikit/components/ui/wizard/lib/utils/utils'
70
+ import type { UI_I_Localization } from '~/lib/models/interfaces'
71
+ import type { UI_T_Project } from '~/lib/models/types'
72
+ import type { API_UI_I_Error } from '~/lib/models/store/interfaces'
73
+ import type { UI_I_TableInfoItem } from '~/components/atoms/table/info/lib/models/interfaces'
74
+ import type { UI_I_TreeNode } from '~/components/common/recursionTree/lib/models/interfaces'
75
+ import {
76
+ dynamicSteps,
77
+ stepsFunc,
78
+ stepsSchemeInitial,
79
+ } from '~/components/common/vm/actions/register/lib/config/steps'
80
+
81
+ const vmForm = defineModel<any>({ required: true })
82
+
83
+ const props = withDefaults(
84
+ defineProps<{
85
+ project: UI_T_Project
86
+ readyCompleteTableInfo: UI_I_TableInfoItem[]
87
+ dataCenter?: UI_I_TreeNode // для сферы
88
+ computeResource?: UI_I_TreeNode // для сферы
89
+ computeResourceTree?: UI_I_TreeNode[] // для сферы
90
+ }>(),
91
+ {
92
+ dataCenter: undefined,
93
+ computeResource: undefined,
94
+ computeResourceTree: undefined,
95
+ }
96
+ )
97
+
98
+ const emits = defineEmits<{
99
+ (event: 'finish'): void
100
+ (
101
+ event: 'check-name',
102
+ value: [[string, UI_I_TreeNode | null], (error: API_UI_I_Error) => void]
103
+ ): void
104
+ (event: 'hide'): void
105
+ (event: 'clear-compute-resource-tree'): void // для сферы
106
+ (event: 'change-compute-resource', value: UI_I_TreeNode): void // для сферы
107
+ (event: 'select-compute-resource-tree', value: UI_I_TreeNode): void // для сферы
108
+ (
109
+ event: 'get-compute-resource-tree',
110
+ value: { id: string | number; cb: () => void }
111
+ ): void // для сферы
112
+ (event: 'show-compute-resource-tree', value: UI_I_TreeNode): void // для сферы
113
+ }>()
114
+
115
+ const { $recursion }: any = useNuxtApp()
116
+
117
+ const localization = computed<UI_I_Localization>(() => useLocal())
118
+ const isSphere = computed<boolean>(() => props.project === 'sphere')
119
+
120
+ const wizard: Wizard = new Wizard(
121
+ stepsFunc(localization.value),
122
+ stepsSchemeInitial
123
+ )
124
+ if (isSphere.value) {
125
+ wizard.changeScheme(1)
126
+ wizard.selectStepHard(1)
127
+ }
128
+
129
+ const selectedScheme = computed<number[]>(() => wizard.selectedScheme.value)
130
+ const onChangeSteps = async (value: UI_I_WizardStep[]): Promise<void> => {
131
+ wizard.changeSteps(value, validationFunc)
132
+ }
133
+ const validationFunc = async (
134
+ value: UI_I_WizardStep[],
135
+ currentStep: UI_I_WizardStep,
136
+ nextStep: UI_I_WizardStep
137
+ ): Promise<UI_I_ValidationReturn> => {
138
+ let stepHasError = false
139
+ let stepShouldStop = {
140
+ ifOnCurrentStep: false,
141
+ ifFromAnyStep: false,
142
+ stoppageStepId: -1,
143
+ }
144
+
145
+ wizard.setLoader(true)
146
+ if (
147
+ wizard.isValidateForStep(
148
+ isSphere.value ? dynamicSteps.selectNameFolder : dynamicSteps.selectName,
149
+ currentStep.id,
150
+ nextStep.id
151
+ )
152
+ ) {
153
+ const nameValidation = await onCheckName(value)
154
+
155
+ value = nameValidation.newValue
156
+ stepHasError = stepHasError || nameValidation.stepHasError
157
+ } else if (
158
+ isSphere.value &&
159
+ wizard.isValidateForStep(
160
+ dynamicSteps.selectComputeResource,
161
+ currentStep.id,
162
+ nextStep.id
163
+ )
164
+ ) {
165
+ const computeResourceValidation = await checkComputeResource(value)
166
+
167
+ value = computeResourceValidation.newValue
168
+ stepHasError = stepHasError || computeResourceValidation.stepHasError
169
+ }
170
+ wizard.setLoader(false)
171
+
172
+ return {
173
+ newValue: value,
174
+ stepHasError,
175
+ stepShouldStop,
176
+ }
177
+ }
178
+
179
+ const nameFormSubmit = ref<null | Function>(null)
180
+ const computeResourceSubmit = ref<null | Function>(null)
181
+ const onCheckName = async (
182
+ value: UI_I_WizardStep[]
183
+ ): Promise<UI_I_ValidationReturn> => {
184
+ let stepHasError = false
185
+
186
+ return new Promise((resolve) => {
187
+ const step = isSphere.value
188
+ ? dynamicSteps.selectNameFolder
189
+ : dynamicSteps.selectName
190
+ nameFormSubmit.value = (isValid: boolean) => {
191
+ if (!isValid) {
192
+ stepHasError = wizard.setValidation(step, 'name', {
193
+ fieldMessage: 'aaa',
194
+ alertMessage: 'aaa',
195
+ })
196
+ } else if (wizard.hasMessage(step, 'name')) {
197
+ value = wizard.removeValidation(step, 'name', value)
198
+ }
199
+
200
+ resolve({
201
+ stepHasError,
202
+ newValue: value,
203
+ })
204
+ nameFormSubmit.value = null
205
+ }
206
+ })
207
+ }
208
+ const checkComputeResource = async (
209
+ value: UI_I_WizardStep[]
210
+ ): Promise<UI_I_ValidationReturn> => {
211
+ let stepHasError = false
212
+
213
+ return new Promise((resolve) => {
214
+ computeResourceSubmit.value = (isValid: boolean) => {
215
+ if (!isValid) {
216
+ stepHasError = wizard.setValidation(
217
+ dynamicSteps.selectComputeResource,
218
+ 'computeResource',
219
+ {
220
+ fieldMessage: 'aaa',
221
+ alertMessage: 'aaa',
222
+ }
223
+ )
224
+ } else if (
225
+ wizard.hasMessage(dynamicSteps.selectComputeResource, 'computeResource')
226
+ ) {
227
+ value = wizard.removeValidation(
228
+ dynamicSteps.selectComputeResource,
229
+ 'computeResource',
230
+ value
231
+ )
232
+ }
233
+
234
+ resolve({
235
+ stepHasError,
236
+ newValue: value,
237
+ })
238
+ computeResourceSubmit.value = null
239
+ }
240
+ })
241
+ }
242
+
243
+ const onChangeName = (name: string, node: UI_I_TreeNode | null): void => {
244
+ vmForm.value.name = name
245
+ if (isSphere.value) {
246
+ vmForm.value.locationPath = node.id
247
+ vmForm.value.dataCenter = $recursion.findParentByValue(
248
+ node,
249
+ 'datacenter',
250
+ 'type',
251
+ 'parent'
252
+ )
253
+ }
254
+ }
255
+ </script>
256
+
257
+ <style scoped lang="scss">
258
+ :deep(.modal-body) {
259
+ display: flex;
260
+ flex-direction: column;
261
+ }
262
+ .register-vm-content {
263
+ display: flex;
264
+ flex-direction: column;
265
+ flex: 1;
266
+ }
267
+ </style>