bfg-common 1.5.227 → 1.5.229

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 (159) 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/components/atoms/TheIcon3.vue +50 -50
  7. package/components/atoms/perPage/PerPage.vue +58 -58
  8. package/components/atoms/table/dataGrid/lib/config/settingsTable.ts +94 -94
  9. package/components/atoms/table/dataGrid/lib/utils/export.ts +16 -16
  10. package/components/atoms/tabs/VerticalTabs.vue +105 -105
  11. package/components/common/backup/storage/actions/add/Add.vue +247 -247
  12. package/components/common/backup/storage/actions/add/New.vue +281 -281
  13. package/components/common/backup/storage/actions/add/Old.vue +114 -114
  14. package/components/common/backup/storage/actions/add/lib/config/steps.ts +168 -168
  15. package/components/common/backup/storage/actions/add/steps/nameAndConfigure/NameAndConfigure.vue +41 -41
  16. package/components/common/backup/storage/actions/add/steps/nameAndConfigure/NameAndConfigureNew.vue +294 -294
  17. package/components/common/backup/storage/actions/add/steps/readyComplete/ReadyComplete.vue +45 -45
  18. package/components/common/backup/storage/actions/add/steps/readyComplete/lib/config/propertiesDetails.ts +242 -242
  19. package/components/common/backup/storage/actions/delete/Delete.vue +65 -65
  20. package/components/common/browse/blocks/contents/filesNew/Skeleton.vue +18 -18
  21. package/components/common/browse/blocks/lib/models/types.ts +1 -1
  22. package/components/common/browse/lib/models/interfaces.ts +5 -5
  23. package/components/common/context/lib/models/interfaces.ts +31 -31
  24. package/components/common/diagramMain/DiagramMain.vue +897 -897
  25. package/components/common/diagramMain/Header.vue +214 -214
  26. package/components/common/diagramMain/adapter/AdapterItems.vue +61 -61
  27. package/components/common/diagramMain/lib/config/initial.ts +50 -50
  28. package/components/common/diagramMain/lib/models/types.ts +21 -21
  29. package/components/common/diagramMain/lib/utils/utils.ts +331 -331
  30. package/components/common/diagramMain/modals/editSettings/ConfirmTeamingSettingsModal.vue +40 -40
  31. package/components/common/diagramMain/modals/editSettings/tabs/NetworkProperties.vue +214 -214
  32. package/components/common/diagramMain/modals/editSettings/tabs/Security.vue +189 -189
  33. package/components/common/diagramMain/modals/editSettings/tabs/SwitchProperties.vue +163 -163
  34. package/components/common/diagramMain/modals/editSettings/tabs/TeamingFailover.vue +175 -175
  35. package/components/common/diagramMain/modals/editSettings/tabs/port/IpvFourSettings.vue +346 -346
  36. package/components/common/diagramMain/modals/lib/config/initial.ts +180 -180
  37. package/components/common/diagramMain/modals/lib/config/vmKernelAdapter.ts +90 -90
  38. package/components/common/diagramMain/modals/lib/mappers/mappers.ts +87 -87
  39. package/components/common/diagramMain/modals/lib/utils/index.ts +24 -24
  40. package/components/common/diagramMain/modals/migrateVmkernelAdapter/lib/config/steps.ts +114 -114
  41. package/components/common/diagramMain/modals/migrateVmkernelAdapter/steps/ConnectionSettings.vue +169 -169
  42. package/components/common/diagramMain/modals/migrateVmkernelAdapter/steps/SelectVmkernelAdapter.vue +159 -159
  43. package/components/common/diagramMain/modals/migrateVmkernelAdapter/validations/common.ts +14 -14
  44. package/components/common/diagramMain/modals/migrateVmkernelAdapter/validations/connectionSettings.ts +137 -137
  45. package/components/common/diagramMain/modals/migrateVmkernelAdapter/validations/selectVmkernelAdapter.ts +52 -52
  46. package/components/common/diagramMain/modals/migrateVmkernelAdapter/validations/validations.ts +19 -19
  47. package/components/common/diagramMain/port/Ports.vue +47 -47
  48. package/components/common/layout/theHeader/helpMenu/About.vue +82 -82
  49. package/components/common/layout/theHeader/userMenu/modals/preferences/view/ViewOld.vue +112 -112
  50. package/components/common/monitor/overview/OverviewOld.vue +139 -139
  51. package/components/common/pages/home/headline/Headline.vue +45 -45
  52. package/components/common/pages/home/headline/HeadlineOld.vue +42 -42
  53. package/components/common/pages/home/lib/models/interfaces.ts +48 -48
  54. package/components/common/pages/home/widgets/Widgets.vue +49 -49
  55. package/components/common/pages/home/widgets/WidgetsNew.vue +86 -86
  56. package/components/common/pages/home/widgets/WidgetsOld.vue +34 -34
  57. package/components/common/pages/home/widgets/hosts/Hosts.vue +27 -27
  58. package/components/common/pages/home/widgets/hosts/lib/config/items.ts +23 -23
  59. package/components/common/pages/home/widgets/vms/Vms.vue +26 -26
  60. package/components/common/pages/home/widgets/vms/VmsOld.vue +35 -35
  61. package/components/common/pages/home/widgets/vms/lib/config/items.ts +19 -19
  62. package/components/common/pages/packages/Packages.vue +208 -208
  63. package/components/common/pages/shortcuts/block/BlockOld.vue +68 -68
  64. package/components/common/readyToComplete/ReadyToComplete.vue +17 -17
  65. package/components/common/recursionTree/RecursionTree.vue +223 -223
  66. package/components/common/select/button/ButtonDropdown.vue +108 -108
  67. package/components/common/spiceConsole/Drawer.vue +377 -377
  68. package/components/common/spiceConsole/lib/models/interfaces.ts +5 -5
  69. package/components/common/split/horizontal/HorizontalNew.vue +9 -1
  70. package/components/common/vm/actions/add/folderTreeView/FolderTreeView.vue +72 -72
  71. package/components/common/vm/actions/add/folderTreeView/New.vue +40 -40
  72. package/components/common/vm/actions/add/folderTreeView/Old.vue +50 -50
  73. package/components/common/vm/actions/add/lib/config/steps.ts +263 -263
  74. package/components/common/vm/actions/clone/lib/config/steps.ts +291 -291
  75. package/components/common/vm/actions/clone/toTemplate/lib/config/steps.ts +116 -116
  76. package/components/common/vm/actions/common/customizeHardware/CustomizeHardwareNew.vue +337 -337
  77. package/components/common/vm/actions/common/customizeHardware/virtualHardware/VirtualHardwareNew.vue +480 -480
  78. package/components/common/vm/actions/common/customizeHardware/virtualHardware/VirtualHardwareOld.vue +319 -319
  79. package/components/common/vm/actions/common/customizeHardware/virtualHardware/browseView/BrowseView.vue +219 -219
  80. package/components/common/vm/actions/common/customizeHardware/virtualHardware/bus/Bus.vue +100 -100
  81. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/CdDvdDrive.vue +232 -232
  82. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/CdDvdDriveOld.vue +168 -168
  83. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/Media.vue +25 -25
  84. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/MediaNew.vue +78 -78
  85. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/MediaOld.vue +50 -50
  86. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/CpuNew.vue +190 -190
  87. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/model/ModelNew.vue +237 -237
  88. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/shares/Shares.vue +140 -140
  89. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/shares/lib/config/options.ts +28 -28
  90. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/tooltip/TooltipNew.vue +154 -154
  91. package/components/common/vm/actions/common/customizeHardware/virtualHardware/limit/Limit.vue +220 -220
  92. package/components/common/vm/actions/common/customizeHardware/virtualHardware/memory/Memory.vue +307 -307
  93. package/components/common/vm/actions/common/customizeHardware/virtualHardware/memory/MemoryNew.vue +154 -154
  94. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/NewHardDisk.vue +382 -382
  95. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/location/Location.vue +151 -151
  96. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/location/LocationNew.vue +73 -73
  97. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/location/LocationOld.vue +83 -83
  98. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/NewNetwork.vue +288 -288
  99. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/location/new/table/lib/config/config.ts +94 -94
  100. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/macAddress/MacAddress.vue +119 -119
  101. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/NewPciDevice.vue +205 -205
  102. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/directPathIo/DirectPathIoNew.vue +66 -66
  103. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/directPathIo/DirectPathIoOld.vue +62 -62
  104. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIo.vue +31 -31
  105. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIoOld.vue +76 -76
  106. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/Note.vue +15 -15
  107. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/NoteNew.vue +42 -42
  108. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/NoteOld.vue +30 -30
  109. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/nvidiaGrid/NvidiaGridOld.vue +84 -84
  110. package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/Other.vue +16 -16
  111. package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/OtherNew.vue +30 -30
  112. package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/inputDevices/InputDevicesNew.vue +40 -40
  113. package/components/common/vm/actions/common/customizeHardware/vmoptions/Vmoptions.vue +145 -145
  114. package/components/common/vm/actions/common/customizeHardware/vmoptions/VmoptionsNew.vue +106 -106
  115. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/BootOptionsNew.vue +81 -81
  116. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/delay/Delay.vue +32 -32
  117. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/firmware/Firmware.vue +60 -60
  118. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/Order.vue +174 -174
  119. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/OrderNew.vue +67 -67
  120. package/components/common/vm/actions/common/customizeHardware/vmoptions/generalOptions/GeneralOptionsNew.vue +149 -149
  121. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/New.vue +140 -140
  122. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/copyPaste/CopyPasteNew.vue +31 -31
  123. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/fileTransfer/FileTransferNew.vue +31 -31
  124. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/keymap/Keymap.vue +32 -32
  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 +128 -128
  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 +39 -39
  129. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirectionOld.vue +44 -44
  130. package/components/common/vm/actions/common/lib/utils/capabilities.ts +52 -52
  131. package/components/common/vm/actions/common/select/compatibility/Old.vue +107 -107
  132. package/components/common/vm/actions/common/select/computeResource/ComputeResource.vue +134 -134
  133. package/components/common/vm/actions/common/select/computeResource/treeView/New.vue +44 -44
  134. package/components/common/vm/actions/common/select/computeResource/treeView/TreeView.vue +118 -118
  135. package/components/common/vm/actions/common/select/createType/CreateType.vue +38 -38
  136. package/components/common/vm/actions/common/select/createType/New.vue +84 -84
  137. package/components/common/vm/actions/common/select/createType/lib/models/interfaces.ts +5 -5
  138. package/components/common/vm/actions/common/select/name/Name.vue +167 -167
  139. package/components/common/vm/actions/common/select/os/New.vue +122 -122
  140. package/components/common/vm/actions/common/select/os/Old.vue +152 -152
  141. package/components/common/vm/actions/common/select/os/Os.vue +139 -139
  142. package/components/common/vm/actions/common/select/storage/new/lib/models/interfaces.ts +5 -5
  143. package/components/common/vm/actions/common/select/storage/new/lib/utils/utils.ts +21 -21
  144. package/components/common/vm/actions/editSettings/new/Skeleton.vue +88 -88
  145. package/components/common/wizards/vm/migrate/lib/config/constructDataReady.ts +220 -220
  146. package/components/common/wizards/vm/migrate/lib/config/steps.ts +157 -157
  147. package/components/common/wizards/vm/migrate/lib/validations.ts +68 -68
  148. package/components/common/wizards/vm/migrate/select/computeResource/tableView/TableView.vue +137 -137
  149. package/components/common/wizards/vm/migrate/select/network/Network.vue +103 -103
  150. package/components/common/wizards/vm/migrate/select/network/table/network/lib/config/advancedTable.ts +91 -91
  151. package/composables/productNameLocal.ts +30 -30
  152. package/composables/useAppVersion.ts +21 -21
  153. package/package.json +2 -2
  154. package/plugins/date.ts +233 -233
  155. package/public/spice-console/lib/images/bitmap.js +203 -203
  156. package/public/spice-console/network/spicechannel.js +387 -387
  157. package/store/main/mutations.ts +7 -7
  158. package/store/main/state.ts +7 -7
  159. package/store/tasks/mappers/recentTasks.ts +64 -64
@@ -1,247 +1,247 @@
1
- <template>
2
- <common-backup-storage-actions-add-new
3
- v-if="isNewView"
4
- v-model="form"
5
- :project="props.project"
6
- :wizard="wizard"
7
- :selected-scheme="selectedScheme"
8
- :alert-messages="alertMessages"
9
- :title="title"
10
- :hosts="props.hosts"
11
- :datastore="props.datastore"
12
- :get-datastore-table-func="props.getDatastoreTableFunc"
13
- @change-steps="onChangeSteps"
14
- @change-storage="onChangeStorage"
15
- @submit="onCreate"
16
- @hide="onHideModal"
17
- />
18
- <common-backup-storage-actions-add-old
19
- v-else
20
- v-model="form"
21
- :project="props.project"
22
- :wizard="wizard"
23
- :selected-scheme="selectedScheme"
24
- :alert-messages="alertMessages"
25
- :title="title"
26
- :hosts="props.hosts"
27
- :datastore="props.datastore"
28
- :get-datastore-table-func="props.getDatastoreTableFunc"
29
- @change-steps="onChangeSteps"
30
- @change-storage="onChangeStorage"
31
- @submit="onCreate"
32
- @hide="onHideModal"
33
- />
34
- </template>
35
-
36
- <script setup lang="ts">
37
- import type { UI_T_Project } from '~/lib/models/types'
38
- import type { UI_I_CreateDatastoreForm } from '~/components/common/backup/storage/actions/add/lib/models/interfaces'
39
- import type { UI_I_DatastoreTableItem } from '~/lib/models/store/storage/interfaces'
40
- import type { UI_I_TablePayload } from '~/lib/models/table/interfaces'
41
- import type { UI_I_Localization } from '~/lib/models/interfaces'
42
- import type {
43
- UI_I_ValidationReturn,
44
- UI_I_WizardStep,
45
- } from '~/components/atoms/wizard/lib/models/interfaces'
46
- import type { UI_T_DatastoreTypeCode } from '~/components/common/backup/storage/actions/add/lib/models/types'
47
- // TODO use from uikit
48
- import Wizard from "~/components/atoms/wizard/lib/utils/utils";
49
- import {
50
- stepsFunc,
51
- stepsSchemeInitial,
52
- } from '~/components/common/backup/storage/actions/add/lib/config/steps'
53
- import { datastoreDefaultFormFunc } from '~/components/common/backup/storage/actions/add/lib/config/createDatastore'
54
- import {
55
- dynamicSteps,
56
- getStepScheme,
57
- } from '~/components/common/backup/storage/actions/add/lib/config/steps'
58
- import * as validation from '~/components/common/backup/storage/actions/add/lib/validations'
59
-
60
- const props = withDefaults(
61
- defineProps<{
62
- project: UI_T_Project
63
- datastore: UI_I_DatastoreTableItem[]
64
- getDatastoreTableFunc: (payload: UI_I_TablePayload) => Promise<void>
65
- hosts?: any[]
66
- }>(),
67
- { hosts: [] }
68
- )
69
- const emits = defineEmits<{
70
- (event: 'create', value: UI_I_CreateDatastoreForm): void
71
- (event: 'hide'): void
72
- }>()
73
-
74
- const { $store }: any = useNuxtApp()
75
- const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
76
-
77
- const localization = computed<UI_I_Localization>(() => useLocal())
78
-
79
- const title = ref(localization.value.common.newBackupStorage)
80
-
81
- const wizard: Wizard = new Wizard(
82
- stepsFunc(localization.value),
83
- stepsSchemeInitial
84
- )
85
-
86
- const selectedScheme = computed<number[]>(() => wizard.selectedScheme.value)
87
- const alertMessages = computed<string[][]>(() => wizard.alertMessages.value)
88
-
89
- const form = ref<UI_I_CreateDatastoreForm>(
90
- useDeepCopy(datastoreDefaultFormFunc())
91
- )
92
-
93
- const validationFunc = async (
94
- value: UI_I_WizardStep[],
95
- currentStep: UI_I_WizardStep,
96
- nextStep: UI_I_WizardStep
97
- ): Promise<UI_I_ValidationReturn> => {
98
- let stepHasError = false
99
-
100
- if (
101
- wizard.isValidateForStep(dynamicSteps.name, currentStep.id, nextStep.id)
102
- ) {
103
- const nameValidation = await validation.checkDatastoreNameAsync(
104
- localization.value,
105
- value,
106
- form.value,
107
- dynamicSteps.name,
108
- 'name',
109
- wizard,
110
- props.project
111
- )
112
-
113
- value = nameValidation.newValue
114
-
115
- stepHasError = nameValidation.stepHasError
116
- }
117
-
118
- if (
119
- wizard.isValidateForStep(
120
- dynamicSteps.nameAndConfigure,
121
- currentStep.id,
122
- nextStep.id
123
- )
124
- ) {
125
- const nameValidation = await validation.checkDatastoreNameAsync(
126
- localization.value,
127
- value,
128
- form.value,
129
- dynamicSteps.nameAndConfigure,
130
- 'name',
131
- wizard,
132
- props.project
133
- )
134
- value = nameValidation.newValue
135
-
136
- const folderValidation = validation.checkFolderSync(
137
- localization.value,
138
- form.value.folder,
139
- wizard,
140
- value
141
- )
142
- value = folderValidation.newValue
143
-
144
- const serverValidation = validation.checkServerSync(
145
- localization.value,
146
- form.value.server,
147
- wizard,
148
- value
149
- )
150
- value = serverValidation.newValue
151
-
152
- const usernameValidation = validation.checkUsernameSync(
153
- localization.value,
154
- form.value.user,
155
- wizard,
156
- value
157
- )
158
- value = usernameValidation.newValue
159
-
160
- const passwordValidation = validation.checkPasswordSync(
161
- localization.value,
162
- form.value.password,
163
- wizard,
164
- value
165
- )
166
- value = passwordValidation.newValue
167
-
168
- stepHasError =
169
- nameValidation.stepHasError ||
170
- folderValidation.stepHasError ||
171
- serverValidation.stepHasError ||
172
- usernameValidation.stepHasError ||
173
- passwordValidation.stepHasError
174
- }
175
-
176
- if (
177
- wizard.isValidateForStep(
178
- dynamicSteps.hostAccessibility,
179
- currentStep.id,
180
- nextStep.id
181
- )
182
- ) {
183
- const hostsValidation = await validation.checkHostsAccessibilitySync(
184
- localization.value,
185
- form.value.hosts,
186
- wizard,
187
- value
188
- )
189
-
190
- value = hostsValidation.newValue
191
-
192
- stepHasError = hostsValidation.stepHasError
193
- }
194
-
195
- if (
196
- wizard.isValidateForStep(dynamicSteps.storage, currentStep.id, nextStep.id)
197
- ) {
198
- const storageValidation = await validation.checkStorageSync(
199
- localization.value,
200
- form.value.storm_id,
201
- wizard,
202
- value
203
- )
204
-
205
- value = storageValidation.newValue
206
-
207
- stepHasError = storageValidation.stepHasError
208
- }
209
-
210
- return {
211
- newValue: value,
212
- stepHasError,
213
- }
214
- }
215
-
216
- const onChangeSteps = async (value: UI_I_WizardStep[]): Promise<void> =>
217
- wizard.changeSteps(value, validationFunc)
218
-
219
- // Choosing Scheme
220
- watch(
221
- () => form.value.type_code,
222
- (newValue: UI_T_DatastoreTypeCode) => {
223
- const step = getStepScheme(props.project, newValue)
224
- if (step !== undefined) {
225
- wizard.changeScheme(step)
226
- }
227
- },
228
- { immediate: true }
229
- )
230
-
231
- const onChangeStorage = (storage: UI_I_DatastoreTableItem | null): void => {
232
- if (!storage) return
233
-
234
- form.value.storm_id = storage.id
235
- }
236
-
237
- const onCreate = async (
238
- ): Promise<void> => {
239
- emits('create', form.value)
240
- }
241
-
242
- const onHideModal = (): void => {
243
- emits('hide')
244
- }
245
- </script>
246
-
247
- <style scoped lang="scss"></style>
1
+ <template>
2
+ <common-backup-storage-actions-add-new
3
+ v-if="isNewView"
4
+ v-model="form"
5
+ :project="props.project"
6
+ :wizard="wizard"
7
+ :selected-scheme="selectedScheme"
8
+ :alert-messages="alertMessages"
9
+ :title="title"
10
+ :hosts="props.hosts"
11
+ :datastore="props.datastore"
12
+ :get-datastore-table-func="props.getDatastoreTableFunc"
13
+ @change-steps="onChangeSteps"
14
+ @change-storage="onChangeStorage"
15
+ @submit="onCreate"
16
+ @hide="onHideModal"
17
+ />
18
+ <common-backup-storage-actions-add-old
19
+ v-else
20
+ v-model="form"
21
+ :project="props.project"
22
+ :wizard="wizard"
23
+ :selected-scheme="selectedScheme"
24
+ :alert-messages="alertMessages"
25
+ :title="title"
26
+ :hosts="props.hosts"
27
+ :datastore="props.datastore"
28
+ :get-datastore-table-func="props.getDatastoreTableFunc"
29
+ @change-steps="onChangeSteps"
30
+ @change-storage="onChangeStorage"
31
+ @submit="onCreate"
32
+ @hide="onHideModal"
33
+ />
34
+ </template>
35
+
36
+ <script setup lang="ts">
37
+ import type { UI_T_Project } from '~/lib/models/types'
38
+ import type { UI_I_CreateDatastoreForm } from '~/components/common/backup/storage/actions/add/lib/models/interfaces'
39
+ import type { UI_I_DatastoreTableItem } from '~/lib/models/store/storage/interfaces'
40
+ import type { UI_I_TablePayload } from '~/lib/models/table/interfaces'
41
+ import type { UI_I_Localization } from '~/lib/models/interfaces'
42
+ import type {
43
+ UI_I_ValidationReturn,
44
+ UI_I_WizardStep,
45
+ } from '~/components/atoms/wizard/lib/models/interfaces'
46
+ import type { UI_T_DatastoreTypeCode } from '~/components/common/backup/storage/actions/add/lib/models/types'
47
+ // TODO use from uikit
48
+ import Wizard from "~/components/atoms/wizard/lib/utils/utils";
49
+ import {
50
+ stepsFunc,
51
+ stepsSchemeInitial,
52
+ } from '~/components/common/backup/storage/actions/add/lib/config/steps'
53
+ import { datastoreDefaultFormFunc } from '~/components/common/backup/storage/actions/add/lib/config/createDatastore'
54
+ import {
55
+ dynamicSteps,
56
+ getStepScheme,
57
+ } from '~/components/common/backup/storage/actions/add/lib/config/steps'
58
+ import * as validation from '~/components/common/backup/storage/actions/add/lib/validations'
59
+
60
+ const props = withDefaults(
61
+ defineProps<{
62
+ project: UI_T_Project
63
+ datastore: UI_I_DatastoreTableItem[]
64
+ getDatastoreTableFunc: (payload: UI_I_TablePayload) => Promise<void>
65
+ hosts?: any[]
66
+ }>(),
67
+ { hosts: [] }
68
+ )
69
+ const emits = defineEmits<{
70
+ (event: 'create', value: UI_I_CreateDatastoreForm): void
71
+ (event: 'hide'): void
72
+ }>()
73
+
74
+ const { $store }: any = useNuxtApp()
75
+ const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
76
+
77
+ const localization = computed<UI_I_Localization>(() => useLocal())
78
+
79
+ const title = ref(localization.value.common.newBackupStorage)
80
+
81
+ const wizard: Wizard = new Wizard(
82
+ stepsFunc(localization.value),
83
+ stepsSchemeInitial
84
+ )
85
+
86
+ const selectedScheme = computed<number[]>(() => wizard.selectedScheme.value)
87
+ const alertMessages = computed<string[][]>(() => wizard.alertMessages.value)
88
+
89
+ const form = ref<UI_I_CreateDatastoreForm>(
90
+ useDeepCopy(datastoreDefaultFormFunc())
91
+ )
92
+
93
+ const validationFunc = async (
94
+ value: UI_I_WizardStep[],
95
+ currentStep: UI_I_WizardStep,
96
+ nextStep: UI_I_WizardStep
97
+ ): Promise<UI_I_ValidationReturn> => {
98
+ let stepHasError = false
99
+
100
+ if (
101
+ wizard.isValidateForStep(dynamicSteps.name, currentStep.id, nextStep.id)
102
+ ) {
103
+ const nameValidation = await validation.checkDatastoreNameAsync(
104
+ localization.value,
105
+ value,
106
+ form.value,
107
+ dynamicSteps.name,
108
+ 'name',
109
+ wizard,
110
+ props.project
111
+ )
112
+
113
+ value = nameValidation.newValue
114
+
115
+ stepHasError = nameValidation.stepHasError
116
+ }
117
+
118
+ if (
119
+ wizard.isValidateForStep(
120
+ dynamicSteps.nameAndConfigure,
121
+ currentStep.id,
122
+ nextStep.id
123
+ )
124
+ ) {
125
+ const nameValidation = await validation.checkDatastoreNameAsync(
126
+ localization.value,
127
+ value,
128
+ form.value,
129
+ dynamicSteps.nameAndConfigure,
130
+ 'name',
131
+ wizard,
132
+ props.project
133
+ )
134
+ value = nameValidation.newValue
135
+
136
+ const folderValidation = validation.checkFolderSync(
137
+ localization.value,
138
+ form.value.folder,
139
+ wizard,
140
+ value
141
+ )
142
+ value = folderValidation.newValue
143
+
144
+ const serverValidation = validation.checkServerSync(
145
+ localization.value,
146
+ form.value.server,
147
+ wizard,
148
+ value
149
+ )
150
+ value = serverValidation.newValue
151
+
152
+ const usernameValidation = validation.checkUsernameSync(
153
+ localization.value,
154
+ form.value.user,
155
+ wizard,
156
+ value
157
+ )
158
+ value = usernameValidation.newValue
159
+
160
+ const passwordValidation = validation.checkPasswordSync(
161
+ localization.value,
162
+ form.value.password,
163
+ wizard,
164
+ value
165
+ )
166
+ value = passwordValidation.newValue
167
+
168
+ stepHasError =
169
+ nameValidation.stepHasError ||
170
+ folderValidation.stepHasError ||
171
+ serverValidation.stepHasError ||
172
+ usernameValidation.stepHasError ||
173
+ passwordValidation.stepHasError
174
+ }
175
+
176
+ if (
177
+ wizard.isValidateForStep(
178
+ dynamicSteps.hostAccessibility,
179
+ currentStep.id,
180
+ nextStep.id
181
+ )
182
+ ) {
183
+ const hostsValidation = await validation.checkHostsAccessibilitySync(
184
+ localization.value,
185
+ form.value.hosts,
186
+ wizard,
187
+ value
188
+ )
189
+
190
+ value = hostsValidation.newValue
191
+
192
+ stepHasError = hostsValidation.stepHasError
193
+ }
194
+
195
+ if (
196
+ wizard.isValidateForStep(dynamicSteps.storage, currentStep.id, nextStep.id)
197
+ ) {
198
+ const storageValidation = await validation.checkStorageSync(
199
+ localization.value,
200
+ form.value.storm_id,
201
+ wizard,
202
+ value
203
+ )
204
+
205
+ value = storageValidation.newValue
206
+
207
+ stepHasError = storageValidation.stepHasError
208
+ }
209
+
210
+ return {
211
+ newValue: value,
212
+ stepHasError,
213
+ }
214
+ }
215
+
216
+ const onChangeSteps = async (value: UI_I_WizardStep[]): Promise<void> =>
217
+ wizard.changeSteps(value, validationFunc)
218
+
219
+ // Choosing Scheme
220
+ watch(
221
+ () => form.value.type_code,
222
+ (newValue: UI_T_DatastoreTypeCode) => {
223
+ const step = getStepScheme(props.project, newValue)
224
+ if (step !== undefined) {
225
+ wizard.changeScheme(step)
226
+ }
227
+ },
228
+ { immediate: true }
229
+ )
230
+
231
+ const onChangeStorage = (storage: UI_I_DatastoreTableItem | null): void => {
232
+ if (!storage) return
233
+
234
+ form.value.storm_id = storage.id
235
+ }
236
+
237
+ const onCreate = async (
238
+ ): Promise<void> => {
239
+ emits('create', form.value)
240
+ }
241
+
242
+ const onHideModal = (): void => {
243
+ emits('hide')
244
+ }
245
+ </script>
246
+
247
+ <style scoped lang="scss"></style>