bfg-common 1.5.242 → 1.5.243

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