bfg-common 1.5.237 → 1.5.239

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 (147) hide show
  1. package/CODE_STYLE.md +109 -109
  2. package/components/atoms/TheIcon3.vue +50 -50
  3. package/components/atoms/perPage/PerPage.vue +58 -58
  4. package/components/atoms/stack/StackBlock.vue +185 -185
  5. package/components/atoms/table/dataGrid/DataGrid.vue +1717 -1717
  6. package/components/atoms/table/dataGrid/lib/config/settingsTable.ts +94 -94
  7. package/components/atoms/table/dataGrid/lib/utils/export.ts +16 -16
  8. package/components/atoms/table/info/lib/models/interfaces.ts +10 -10
  9. package/components/atoms/tabs/VerticalTabs.vue +105 -105
  10. package/components/common/backup/storage/actions/add/Add.vue +247 -247
  11. package/components/common/backup/storage/actions/add/New.vue +281 -281
  12. package/components/common/backup/storage/actions/add/Old.vue +114 -114
  13. package/components/common/backup/storage/actions/add/lib/config/steps.ts +168 -168
  14. package/components/common/backup/storage/actions/add/steps/nameAndConfigure/NameAndConfigure.vue +41 -41
  15. package/components/common/backup/storage/actions/add/steps/nameAndConfigure/NameAndConfigureNew.vue +294 -294
  16. package/components/common/backup/storage/actions/add/steps/readyComplete/ReadyComplete.vue +45 -45
  17. package/components/common/backup/storage/actions/add/steps/readyComplete/lib/config/propertiesDetails.ts +242 -242
  18. package/components/common/backup/storage/actions/delete/Delete.vue +65 -65
  19. package/components/common/browse/BrowseNew.vue +1 -7
  20. package/components/common/browse/blocks/contents/filesNew/Skeleton.vue +18 -18
  21. package/components/common/context/lib/models/interfaces.ts +31 -31
  22. package/components/common/diagramMain/DiagramMain.vue +897 -897
  23. package/components/common/diagramMain/Header.vue +214 -214
  24. package/components/common/layout/theHeader/helpMenu/About.vue +82 -82
  25. package/components/common/layout/theHeader/userMenu/modals/preferences/view/ViewOld.vue +112 -112
  26. package/components/common/monitor/overview/OverviewOld.vue +139 -139
  27. package/components/common/pages/home/headline/Headline.vue +45 -45
  28. package/components/common/pages/home/headline/HeadlineOld.vue +42 -42
  29. package/components/common/pages/home/lib/models/interfaces.ts +48 -48
  30. package/components/common/pages/home/widgets/Widgets.vue +49 -49
  31. package/components/common/pages/home/widgets/WidgetsNew.vue +86 -86
  32. package/components/common/pages/home/widgets/WidgetsOld.vue +34 -34
  33. package/components/common/pages/home/widgets/hosts/Hosts.vue +27 -27
  34. package/components/common/pages/home/widgets/hosts/lib/config/items.ts +23 -23
  35. package/components/common/pages/home/widgets/vms/Vms.vue +26 -26
  36. package/components/common/pages/home/widgets/vms/VmsOld.vue +35 -35
  37. package/components/common/pages/home/widgets/vms/lib/config/items.ts +19 -19
  38. package/components/common/pages/packages/Packages.vue +208 -208
  39. package/components/common/pages/shortcuts/block/BlockOld.vue +68 -68
  40. package/components/common/readyToComplete/ReadyToComplete.vue +17 -17
  41. package/components/common/recursionTree/RecursionTree.vue +223 -223
  42. package/components/common/select/button/ButtonDropdown.vue +108 -108
  43. package/components/common/spiceConsole/Drawer.vue +377 -377
  44. package/components/common/spiceConsole/lib/models/interfaces.ts +5 -5
  45. package/components/common/vm/actions/add/folderTreeView/FolderTreeView.vue +72 -72
  46. package/components/common/vm/actions/add/folderTreeView/New.vue +40 -40
  47. package/components/common/vm/actions/add/folderTreeView/Old.vue +50 -50
  48. package/components/common/vm/actions/clone/lib/config/steps.ts +291 -291
  49. package/components/common/vm/actions/clone/toTemplate/lib/config/steps.ts +116 -116
  50. package/components/common/vm/actions/common/customizeHardware/CustomizeHardwareNew.vue +1 -1
  51. package/components/common/vm/actions/common/customizeHardware/virtualHardware/VirtualHardwareNew.vue +7 -7
  52. package/components/common/vm/actions/common/customizeHardware/virtualHardware/VirtualHardwareOld.vue +319 -319
  53. package/components/common/vm/actions/common/customizeHardware/virtualHardware/browseView/BrowseView.vue +219 -219
  54. package/components/common/vm/actions/common/customizeHardware/virtualHardware/bus/Bus.vue +100 -100
  55. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/CdDvdDrive.vue +232 -232
  56. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/CdDvdDriveNew.vue +0 -1
  57. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/CdDvdDriveOld.vue +168 -168
  58. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/Media.vue +25 -25
  59. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/MediaNew.vue +78 -78
  60. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/MediaOld.vue +50 -50
  61. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/CpuNew.vue +190 -194
  62. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/model/ModelNew.vue +237 -242
  63. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/shares/Shares.vue +140 -140
  64. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/shares/SharesNew.vue +1 -6
  65. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/shares/lib/config/options.ts +28 -28
  66. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/tooltip/TooltipNew.vue +154 -154
  67. package/components/common/vm/actions/common/customizeHardware/virtualHardware/limit/Limit.vue +220 -220
  68. package/components/common/vm/actions/common/customizeHardware/virtualHardware/memory/Memory.vue +307 -307
  69. package/components/common/vm/actions/common/customizeHardware/virtualHardware/memory/MemoryNew.vue +154 -158
  70. package/components/common/vm/actions/common/customizeHardware/virtualHardware/memory/hotPlug/HotPlugNew.vue +2 -8
  71. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/NewHardDisk.vue +382 -382
  72. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/NewHardDiskNew.vue +0 -1
  73. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/file/FileNew.vue +3 -8
  74. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/location/Location.vue +151 -151
  75. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/location/LocationNew.vue +73 -73
  76. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/location/LocationOld.vue +83 -83
  77. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/maximumSize/MaximumSizeNew.vue +4 -8
  78. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/provisioning/ProvisioningNew.vue +1 -6
  79. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/sharing/SharingNew.vue +1 -6
  80. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/NewNetwork.vue +288 -288
  81. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/NewNetworkNew.vue +1 -1
  82. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/location/new/table/lib/config/config.ts +94 -94
  83. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/macAddress/MacAddress.vue +119 -119
  84. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/NewPciDevice.vue +205 -205
  85. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/directPathIo/DirectPathIoNew.vue +66 -66
  86. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/directPathIo/DirectPathIoOld.vue +62 -62
  87. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIo.vue +31 -31
  88. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIoOld.vue +76 -76
  89. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/Note.vue +15 -15
  90. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/NoteNew.vue +42 -42
  91. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/NoteOld.vue +30 -30
  92. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/nvidiaGrid/NvidiaGridOld.vue +84 -84
  93. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newUsbController/NewUsbControllerNew.vue +0 -1
  94. package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/Other.vue +16 -16
  95. package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/OtherNew.vue +30 -36
  96. package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/inputDevices/InputDevicesNew.vue +40 -40
  97. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/VideoCardNew.vue +2 -5
  98. package/components/common/vm/actions/common/customizeHardware/vmoptions/Vmoptions.vue +145 -145
  99. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/BootOptionsNew.vue +81 -85
  100. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/delay/Delay.vue +32 -32
  101. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/firmware/Firmware.vue +60 -60
  102. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/Order.vue +174 -174
  103. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/OrderNew.vue +67 -71
  104. package/components/common/vm/actions/common/customizeHardware/vmoptions/generalOptions/GeneralOptionsNew.vue +149 -150
  105. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/New.vue +140 -146
  106. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/copyPaste/CopyPasteNew.vue +31 -31
  107. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/fileTransfer/FileTransferNew.vue +31 -31
  108. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/keymap/Keymap.vue +32 -32
  109. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/password/Password.vue +103 -103
  110. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/password/PasswordNew.vue +128 -128
  111. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirection.vue +28 -28
  112. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirectionNew.vue +39 -39
  113. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirectionOld.vue +44 -44
  114. package/components/common/vm/actions/common/customizeHardware/vmoptions/tools/ToolsNew.vue +1 -5
  115. package/components/common/vm/actions/common/lib/utils/capabilities.ts +52 -52
  116. package/components/common/vm/actions/common/select/compatibility/Old.vue +107 -107
  117. package/components/common/vm/actions/common/select/computeResource/treeView/New.vue +44 -44
  118. package/components/common/vm/actions/common/select/computeResource/treeView/TreeView.vue +118 -118
  119. package/components/common/vm/actions/common/select/createType/CreateType.vue +38 -38
  120. package/components/common/vm/actions/common/select/createType/lib/models/interfaces.ts +5 -5
  121. package/components/common/vm/actions/common/select/os/Old.vue +152 -152
  122. package/components/common/vm/actions/common/select/os/Os.vue +139 -139
  123. package/components/common/vm/actions/common/select/storage/new/lib/models/interfaces.ts +5 -5
  124. package/components/common/vm/actions/common/select/storage/new/lib/utils/utils.ts +21 -21
  125. package/components/common/vm/actions/editSettings/new/Skeleton.vue +88 -88
  126. package/components/common/wizards/vm/migrate/lib/config/constructDataReady.ts +220 -220
  127. package/components/common/wizards/vm/migrate/lib/config/steps.ts +157 -157
  128. package/components/common/wizards/vm/migrate/lib/validations.ts +68 -68
  129. package/components/common/wizards/vm/migrate/select/computeResource/tableView/TableView.vue +135 -137
  130. package/components/common/wizards/vm/migrate/select/network/Network.vue +103 -103
  131. package/components/common/wizards/vm/migrate/select/network/table/network/lib/config/advancedTable.ts +91 -91
  132. package/composables/productNameLocal.ts +30 -30
  133. package/composables/useAppVersion.ts +21 -21
  134. package/package.json +2 -2
  135. package/plugins/cron.ts +75 -0
  136. package/plugins/date.ts +233 -233
  137. package/plugins/helpers.ts +18 -0
  138. package/plugins/number.ts +18 -0
  139. package/plugins/panelStates.ts +70 -0
  140. package/plugins/text.ts +59 -48
  141. package/plugins/time.ts +17 -0
  142. package/public/spice-console/lib/images/bitmap.js +203 -203
  143. package/public/spice-console/network/spicechannel.js +387 -387
  144. package/store/main/mutations.ts +7 -7
  145. package/store/main/state.ts +7 -7
  146. package/store/tasks/mappers/recentTasks.ts +64 -64
  147. /package/{components/common/split/horizontal/lib/models → lib/models/plugins/panelStates}/interfaces.ts +0 -0
@@ -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>