bfg-common 1.5.711 → 1.5.713

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 (106) 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 +4 -2
  7. package/assets/localization/local_en.json +4 -2
  8. package/assets/localization/local_hy.json +4 -2
  9. package/assets/localization/local_kk.json +4 -2
  10. package/assets/localization/local_ru.json +4 -2
  11. package/assets/localization/local_zh.json +4 -2
  12. package/components/atoms/TheIcon3.vue +50 -50
  13. package/components/atoms/collapse/CollapseNav.vue +170 -170
  14. package/components/atoms/perPage/PerPage.vue +58 -58
  15. package/components/atoms/table/dataGrid/DataGrid.vue +1718 -1718
  16. package/components/atoms/table/dataGrid/DataGridPagination.vue +97 -97
  17. package/components/atoms/table/dataGrid/lib/config/settingsTable.ts +94 -94
  18. package/components/atoms/table/dataGrid/lib/utils/export.ts +16 -16
  19. package/components/common/backup/storage/actions/add/lib/utils.ts +51 -51
  20. package/components/common/browse/blocks/contents/filesNew/Skeleton.vue +18 -18
  21. package/components/common/diagramMain/modals/lib/config/vCenterModal.ts +48 -48
  22. package/components/common/diagramMain/port/Port.vue +580 -580
  23. package/components/common/layout/theHeader/TheHeader.vue +191 -183
  24. package/components/common/layout/theHeader/TheHeaderNew.vue +11 -5
  25. package/components/common/layout/theHeader/TheHeaderOld.vue +11 -5
  26. package/components/common/layout/theHeader/helpMenu/About.vue +79 -79
  27. package/components/common/layout/theHeader/helpMenu/aboutOld/AboutOld.vue +79 -79
  28. package/components/common/layout/theHeader/userMenu/UserMenu.vue +113 -107
  29. package/components/common/layout/theHeader/userMenu/modals/preferences/Preferences.vue +86 -78
  30. package/components/common/layout/theHeader/userMenu/modals/preferences/PreferencesNew.vue +115 -111
  31. package/components/common/layout/theHeader/userMenu/modals/preferences/PreferencesOld.vue +8 -4
  32. package/components/common/layout/theHeader/userMenu/modals/preferences/changeLanguage/ChangeLanguage.vue +108 -114
  33. package/components/common/layout/theHeader/userMenu/modals/preferences/changeLanguage/New.vue +88 -65
  34. package/components/common/layout/theHeader/userMenu/modals/preferences/changeLanguage/Old.vue +89 -66
  35. package/components/common/layout/theHeader/userMenu/modals/preferences/lib/models/types.ts +7 -7
  36. package/components/common/layout/theHeader/userMenu/modals/preferences/timeFormat/TimeFormat.vue +54 -41
  37. package/components/common/layout/theHeader/userMenu/modals/preferences/view/View.vue +46 -33
  38. package/components/common/pages/backups/DetailView.vue +52 -52
  39. package/components/common/pages/backups/lib/models/interfaces.ts +36 -36
  40. package/components/common/pages/backups/modals/Modals.vue +243 -243
  41. package/components/common/pages/backups/modals/createBackup/configuration/maxBandwidth/lib/config/options.ts +6 -6
  42. package/components/common/pages/backups/modals/createBackup/lib/config/readyToCompleteOptions.ts +69 -69
  43. package/components/common/pages/backups/modals/lib/config/restore.ts +115 -115
  44. package/components/common/pages/backups/modals/lib/models/interfaces.ts +186 -186
  45. package/components/common/pages/backups/modals/restore/name/lib/models/interfaces.ts +6 -6
  46. package/components/common/pages/home/lib/models/interfaces.ts +48 -48
  47. package/components/common/pages/home/widgets/hosts/Hosts.vue +27 -27
  48. package/components/common/pages/home/widgets/hosts/lib/config/items.ts +23 -23
  49. package/components/common/pages/home/widgets/vms/VmsOld.vue +35 -35
  50. package/components/common/pages/home/widgets/vms/lib/config/items.ts +19 -19
  51. package/components/common/pages/scheduledTasks/lib/utils/utils.ts +84 -84
  52. package/components/common/pages/tasks/table/lib/config/config.ts +279 -270
  53. package/components/common/readyToComplete/ReadyToComplete.vue +17 -17
  54. package/components/common/select/radio/RadioGroup.vue +137 -137
  55. package/components/common/selectLanguage/SelectLanguage.vue +200 -200
  56. package/components/common/spiceConsole/Drawer.vue +420 -420
  57. package/components/common/spiceConsole/SpiceConsole.vue +184 -184
  58. package/components/common/spiceConsole/lib/models/interfaces.ts +5 -5
  59. package/components/common/tools/Actions.vue +207 -207
  60. package/components/common/treeView/TreeView.vue +52 -52
  61. package/components/common/vm/actions/clone/lib/config/steps.ts +295 -295
  62. package/components/common/vm/actions/clone/new/New.vue +438 -438
  63. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/shares/lib/config/options.ts +28 -28
  64. package/components/common/vm/actions/common/customizeHardware/virtualHardware/memory/Memory.vue +283 -283
  65. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/Order.vue +156 -156
  66. package/components/common/vm/actions/common/select/compatibility/Old.vue +107 -107
  67. package/components/common/vm/actions/common/select/createType/lib/models/interfaces.ts +5 -5
  68. package/components/common/vm/actions/common/select/options/New.vue +264 -264
  69. package/components/common/vm/actions/common/select/options/Options.vue +58 -58
  70. package/components/common/vm/actions/common/select/storage/Old.vue +125 -125
  71. package/components/common/vm/actions/common/select/storage/new/New.vue +311 -311
  72. package/components/common/vm/actions/common/select/storage/new/lib/models/interfaces.ts +5 -5
  73. package/components/common/vm/actions/common/select/storage/new/lib/utils/utils.ts +21 -21
  74. package/components/common/vm/actions/common/select/template/old/Old.vue +50 -50
  75. package/components/common/vm/actions/editSettings/new/Skeleton.vue +88 -88
  76. package/components/common/wizards/common/compatibility/Compatibility.vue +35 -35
  77. package/components/common/wizards/common/steps/computeResource/New.vue +93 -93
  78. package/components/common/wizards/common/steps/name/Name.vue +178 -178
  79. package/components/common/wizards/common/steps/name/New.vue +221 -221
  80. package/components/common/wizards/common/steps/name/Old.vue +121 -121
  81. package/components/common/wizards/common/steps/name/lib/models/interfaces.ts +4 -4
  82. package/components/common/wizards/common/steps/name/location/New.vue +40 -40
  83. package/components/common/wizards/datastore/add/Add.vue +228 -228
  84. package/components/common/wizards/datastore/add/lib/utils.ts +85 -85
  85. package/components/common/wizards/datastore/add/steps/typeMode/lib/config/typeOptions.ts +43 -43
  86. package/composables/useAppVersion.ts +21 -21
  87. package/composables/useLocal.ts +6 -6
  88. package/composables/useLocalCommon.ts +39 -39
  89. package/package.json +1 -1
  90. package/plugins/console.ts +21 -21
  91. package/plugins/mouse.ts +21 -21
  92. package/plugins/panelStates.ts +70 -70
  93. package/plugins/text.ts +59 -59
  94. package/public/spice-console/application/clientgui.js +854 -854
  95. package/public/spice-console/application/packetfactory.js +211 -211
  96. package/public/spice-console/application/virtualmouse.js +147 -147
  97. package/public/spice-console/lib/images/bitmap.js +203 -203
  98. package/public/spice-console/network/spicechannel.js +440 -440
  99. package/public/spice-console/process/cursorprocess.js +128 -128
  100. package/public/spice-console/process/inputprocess.js +227 -227
  101. package/public/spice-console/process/mainprocess.js +212 -212
  102. package/public/spice-console/run.js +210 -210
  103. package/store/main/mutations.ts +7 -7
  104. package/store/main/state.ts +7 -7
  105. package/store/tasks/mappers/recentTasks.ts +123 -123
  106. package/store/tasks/mutations.ts +82 -82
@@ -1,4 +1,4 @@
1
- export interface UI_I_NameTestIds {
2
- name: string
3
- helpIcon: string
4
- }
1
+ export interface UI_I_NameTestIds {
2
+ name: string
3
+ helpIcon: string
4
+ }
@@ -1,40 +1,40 @@
1
- <template>
2
- <div class="tree-view">
3
- <ui-tree
4
- :nodes="props.nodes"
5
- :expand-all="false"
6
- :is-loading="props.loading"
7
- @toggle-node="onShowNodes"
8
- @select-node="emits('select-node', $event)"
9
- >
10
- <template #content="{ node }">
11
- <div class="flex-align-center">
12
- <span :class="['node-icon', node.iconClassName]"></span>
13
- <span class="node-name">{{ node.name }}</span>
14
- </div>
15
- </template>
16
- </ui-tree>
17
- </div>
18
- </template>
19
-
20
- <script setup lang="ts">
21
- import type { UI_I_TreeNode } from '~/components/common/recursionTree/lib/models/interfaces'
22
-
23
- const props = defineProps<{
24
- loading: boolean
25
- nodes: UI_I_TreeNode[]
26
- }>()
27
- const emits = defineEmits<{
28
- (event: 'select-node', value: UI_I_TreeNode): void
29
- (event: 'show-nodes', value: {
30
- node: UI_I_TreeNode
31
- cb: () => void
32
- }): void
33
- }>()
34
-
35
- const onShowNodes = (node: UI_I_TreeNode) => {
36
- emits('show-nodes', { node, cb: (): void => {} })
37
- }
38
- </script>
39
-
40
- <style scoped lang="scss"></style>
1
+ <template>
2
+ <div class="tree-view">
3
+ <ui-tree
4
+ :nodes="props.nodes"
5
+ :expand-all="false"
6
+ :is-loading="props.loading"
7
+ @toggle-node="onShowNodes"
8
+ @select-node="emits('select-node', $event)"
9
+ >
10
+ <template #content="{ node }">
11
+ <div class="flex-align-center">
12
+ <span :class="['node-icon', node.iconClassName]"></span>
13
+ <span class="node-name">{{ node.name }}</span>
14
+ </div>
15
+ </template>
16
+ </ui-tree>
17
+ </div>
18
+ </template>
19
+
20
+ <script setup lang="ts">
21
+ import type { UI_I_TreeNode } from '~/components/common/recursionTree/lib/models/interfaces'
22
+
23
+ const props = defineProps<{
24
+ loading: boolean
25
+ nodes: UI_I_TreeNode[]
26
+ }>()
27
+ const emits = defineEmits<{
28
+ (event: 'select-node', value: UI_I_TreeNode): void
29
+ (event: 'show-nodes', value: {
30
+ node: UI_I_TreeNode
31
+ cb: () => void
32
+ }): void
33
+ }>()
34
+
35
+ const onShowNodes = (node: UI_I_TreeNode) => {
36
+ emits('show-nodes', { node, cb: (): void => {} })
37
+ }
38
+ </script>
39
+
40
+ <style scoped lang="scss"></style>
@@ -1,228 +1,228 @@
1
- <template>
2
- <common-wizards-datastore-add-new
3
- v-if="isNewView"
4
- v-model="form"
5
- :project="props.project"
6
- :wizard="wizard"
7
- :alert-messages="alertMessages"
8
- :selected-scheme="selectedScheme"
9
- :selected-node="props.selectedNode"
10
- :title="title"
11
- :nfs-hosts="props.nfsHosts"
12
- :host-id="props.hostId"
13
- @change-steps="onChangeSteps"
14
- @hide="onHideModal"
15
- @submit="onCreateDatastore"
16
- />
17
- <common-wizards-datastore-add-old
18
- v-else
19
- v-model="form"
20
- :project="props.project"
21
- :wizard="wizard"
22
- :alert-messages="alertMessages"
23
- :selected-scheme="selectedScheme"
24
- :title="title"
25
- :nfs-hosts="props.nfsHosts"
26
- :host-id="props.hostId"
27
- @change-steps="onChangeSteps"
28
- @hide-alert="onHideAlert"
29
- @hide="onHideModal"
30
- @submit="onCreateDatastore"
31
- />
32
- </template>
33
-
34
- <script setup lang="ts">
35
- import type {
36
- UI_I_WizardStep,
37
- UI_I_ValidationReturn,
38
- } from '~/node_modules/bfg-uikit/components/ui/wizard/lib/models/interfaces'
39
- import Wizard from '~/node_modules/bfg-uikit/components/ui/wizard/lib/utils/utils'
40
- import type { UI_I_Localization } from '~/lib/models/interfaces'
41
- import type { UI_T_Project } from '~/lib/models/types'
42
- import type { UI_I_TreeNode } from '~/components/common/recursionTree/lib/models/interfaces'
43
- import type { UI_T_DatastoreTypeCode } from '~/components/common/wizards/datastore/add/lib/models/types'
44
- import type { UI_I_CreateDatastoreForm } from '~/components/common/wizards/datastore/add/lib/models/interfaces'
45
- import type { UI_I_CompatibleHosts } from '~/components/common/wizards/datastore/add/steps/hostAccessibility/table/lib/models/interfaces'
46
- import {
47
- stepsFunc,
48
- stepsSchemeInitial,
49
- getStepScheme,
50
- dynamicSteps,
51
- } from '~/components/common/wizards/datastore/add/lib/config/steps'
52
- import { datastoreDefaultFormFunc } from '~/components/common/wizards/datastore/add/lib/config/createDatastore'
53
- import * as validation from '~/components/common/wizards/datastore/add/lib/validations'
54
-
55
- const props = withDefaults(
56
- defineProps<{
57
- project: UI_T_Project
58
- selectedNode: UI_I_TreeNode
59
- nfsHosts?: UI_I_CompatibleHosts
60
- hostId?: string
61
- isMainFilter?: boolean
62
- datacenterId?: string // For Sphere
63
- }>(),
64
- {
65
- nfsHosts: undefined,
66
- hostId: undefined,
67
- isMainFilter: undefined,
68
- datacenterId: '',
69
- }
70
- )
71
- const emits = defineEmits<{
72
- (event: 'hide'): void
73
- (event: 'finish', value: UI_I_CreateDatastoreForm): void
74
- (event: 'main-filter', value: string): void
75
- }>()
76
-
77
- const localization = computed<UI_I_Localization>(() => useLocal())
78
- const { $store }: any = useNuxtApp()
79
-
80
- const wizard: Wizard = new Wizard(
81
- stepsFunc(localization.value),
82
- stepsSchemeInitial
83
- )
84
-
85
- const selectedScheme = computed<number[]>(() => wizard.selectedScheme.value)
86
- const alertMessages = computed<string[][]>(() => wizard.alertMessages.value)
87
-
88
- const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
89
-
90
- const title = computed<string>(() => localization.value.common.newDatastore)
91
-
92
- const form = ref<UI_I_CreateDatastoreForm>(
93
- useDeepCopy(datastoreDefaultFormFunc(props.hostId))
94
- )
95
- const validationFunc = async (
96
- value: UI_I_WizardStep[],
97
- currentStep: UI_I_WizardStep,
98
- nextStep: UI_I_WizardStep
99
- ): Promise<UI_I_ValidationReturn> => {
100
- let stepHasError = false
101
-
102
- if (
103
- wizard.isValidateForStep(
104
- dynamicSteps.nameAndDevice,
105
- currentStep.id,
106
- nextStep.id
107
- )
108
- ) {
109
- const nameValidation = await validation.checkDatastoreNameAsync(
110
- localization.value,
111
- value,
112
- form.value,
113
- dynamicSteps.nameAndDevice,
114
- 'datastoreName',
115
- wizard,
116
- props.project,
117
- props.datacenterId
118
- )
119
-
120
- value = nameValidation.newValue
121
-
122
- const lunDiskValidation = validation.checkSelectedLunDiskSync(
123
- localization.value,
124
- form.value,
125
- wizard,
126
- value,
127
- props.project,
128
- props.hostId
129
- )
130
-
131
- value = lunDiskValidation.newValue
132
-
133
- stepHasError = nameValidation.stepHasError || lunDiskValidation.stepHasError
134
- }
135
-
136
- if (
137
- wizard.isValidateForStep(
138
- dynamicSteps.nameAndConfigure,
139
- currentStep.id,
140
- nextStep.id
141
- )
142
- ) {
143
- const nameValidation = await validation.checkDatastoreNameAsync(
144
- localization.value,
145
- value,
146
- form.value,
147
- dynamicSteps.nameAndConfigure,
148
- 'name',
149
- wizard,
150
- props.project,
151
- props.datacenterId
152
- )
153
- value = nameValidation.newValue
154
-
155
- const folderValidation = validation.checkNfsFolderSync(
156
- localization.value,
157
- form.value.folder,
158
- wizard,
159
- value
160
- )
161
- value = folderValidation.newValue
162
-
163
- const serverValidation = validation.checkNfsServerSync(
164
- localization.value,
165
- form.value.server,
166
- wizard,
167
- value
168
- )
169
- value = serverValidation.newValue
170
-
171
- stepHasError =
172
- nameValidation.stepHasError ||
173
- folderValidation.stepHasError ||
174
- serverValidation.stepHasError
175
- }
176
-
177
- if (
178
- wizard.isValidateForStep(
179
- dynamicSteps.hostAccessibility,
180
- currentStep.id,
181
- nextStep.id
182
- )
183
- ) {
184
- const nameValidation = await validation.checkHostsAccessibilitySync(
185
- localization.value,
186
- form.value.hosts,
187
- wizard,
188
- value
189
- )
190
-
191
- value = nameValidation.newValue
192
-
193
- stepHasError = nameValidation.stepHasError
194
- }
195
-
196
- return {
197
- newValue: value,
198
- stepHasError,
199
- }
200
- }
201
-
202
- const onChangeSteps = async (value: UI_I_WizardStep[]): Promise<void> =>
203
- wizard.changeSteps(value, validationFunc)
204
-
205
- // Choosing Scheme
206
- watch(
207
- () => form.value.type_code,
208
- (newValue: UI_T_DatastoreTypeCode) => {
209
- const step = getStepScheme(props.project, newValue, props.hostId)
210
- if (step !== undefined) {
211
- wizard.changeScheme(step)
212
- }
213
- },
214
- { immediate: true }
215
- )
216
-
217
- const onHideAlert = (stepId: number): void => {
218
- wizard.hideAlertMessagesByStepId(stepId)
219
- }
220
- const onHideModal = (): void => {
221
- emits('hide')
222
- }
223
- const onCreateDatastore = (): void => {
224
- emits('finish', form.value)
225
- }
226
- </script>
227
-
228
- <style scoped lang="scss"></style>
1
+ <template>
2
+ <common-wizards-datastore-add-new
3
+ v-if="isNewView"
4
+ v-model="form"
5
+ :project="props.project"
6
+ :wizard="wizard"
7
+ :alert-messages="alertMessages"
8
+ :selected-scheme="selectedScheme"
9
+ :selected-node="props.selectedNode"
10
+ :title="title"
11
+ :nfs-hosts="props.nfsHosts"
12
+ :host-id="props.hostId"
13
+ @change-steps="onChangeSteps"
14
+ @hide="onHideModal"
15
+ @submit="onCreateDatastore"
16
+ />
17
+ <common-wizards-datastore-add-old
18
+ v-else
19
+ v-model="form"
20
+ :project="props.project"
21
+ :wizard="wizard"
22
+ :alert-messages="alertMessages"
23
+ :selected-scheme="selectedScheme"
24
+ :title="title"
25
+ :nfs-hosts="props.nfsHosts"
26
+ :host-id="props.hostId"
27
+ @change-steps="onChangeSteps"
28
+ @hide-alert="onHideAlert"
29
+ @hide="onHideModal"
30
+ @submit="onCreateDatastore"
31
+ />
32
+ </template>
33
+
34
+ <script setup lang="ts">
35
+ import type {
36
+ UI_I_WizardStep,
37
+ UI_I_ValidationReturn,
38
+ } from '~/node_modules/bfg-uikit/components/ui/wizard/lib/models/interfaces'
39
+ import Wizard from '~/node_modules/bfg-uikit/components/ui/wizard/lib/utils/utils'
40
+ import type { UI_I_Localization } from '~/lib/models/interfaces'
41
+ import type { UI_T_Project } from '~/lib/models/types'
42
+ import type { UI_I_TreeNode } from '~/components/common/recursionTree/lib/models/interfaces'
43
+ import type { UI_T_DatastoreTypeCode } from '~/components/common/wizards/datastore/add/lib/models/types'
44
+ import type { UI_I_CreateDatastoreForm } from '~/components/common/wizards/datastore/add/lib/models/interfaces'
45
+ import type { UI_I_CompatibleHosts } from '~/components/common/wizards/datastore/add/steps/hostAccessibility/table/lib/models/interfaces'
46
+ import {
47
+ stepsFunc,
48
+ stepsSchemeInitial,
49
+ getStepScheme,
50
+ dynamicSteps,
51
+ } from '~/components/common/wizards/datastore/add/lib/config/steps'
52
+ import { datastoreDefaultFormFunc } from '~/components/common/wizards/datastore/add/lib/config/createDatastore'
53
+ import * as validation from '~/components/common/wizards/datastore/add/lib/validations'
54
+
55
+ const props = withDefaults(
56
+ defineProps<{
57
+ project: UI_T_Project
58
+ selectedNode: UI_I_TreeNode
59
+ nfsHosts?: UI_I_CompatibleHosts
60
+ hostId?: string
61
+ isMainFilter?: boolean
62
+ datacenterId?: string // For Sphere
63
+ }>(),
64
+ {
65
+ nfsHosts: undefined,
66
+ hostId: undefined,
67
+ isMainFilter: undefined,
68
+ datacenterId: '',
69
+ }
70
+ )
71
+ const emits = defineEmits<{
72
+ (event: 'hide'): void
73
+ (event: 'finish', value: UI_I_CreateDatastoreForm): void
74
+ (event: 'main-filter', value: string): void
75
+ }>()
76
+
77
+ const localization = computed<UI_I_Localization>(() => useLocal())
78
+ const { $store }: any = useNuxtApp()
79
+
80
+ const wizard: Wizard = new Wizard(
81
+ stepsFunc(localization.value),
82
+ stepsSchemeInitial
83
+ )
84
+
85
+ const selectedScheme = computed<number[]>(() => wizard.selectedScheme.value)
86
+ const alertMessages = computed<string[][]>(() => wizard.alertMessages.value)
87
+
88
+ const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
89
+
90
+ const title = computed<string>(() => localization.value.common.newDatastore)
91
+
92
+ const form = ref<UI_I_CreateDatastoreForm>(
93
+ useDeepCopy(datastoreDefaultFormFunc(props.hostId))
94
+ )
95
+ const validationFunc = async (
96
+ value: UI_I_WizardStep[],
97
+ currentStep: UI_I_WizardStep,
98
+ nextStep: UI_I_WizardStep
99
+ ): Promise<UI_I_ValidationReturn> => {
100
+ let stepHasError = false
101
+
102
+ if (
103
+ wizard.isValidateForStep(
104
+ dynamicSteps.nameAndDevice,
105
+ currentStep.id,
106
+ nextStep.id
107
+ )
108
+ ) {
109
+ const nameValidation = await validation.checkDatastoreNameAsync(
110
+ localization.value,
111
+ value,
112
+ form.value,
113
+ dynamicSteps.nameAndDevice,
114
+ 'datastoreName',
115
+ wizard,
116
+ props.project,
117
+ props.datacenterId
118
+ )
119
+
120
+ value = nameValidation.newValue
121
+
122
+ const lunDiskValidation = validation.checkSelectedLunDiskSync(
123
+ localization.value,
124
+ form.value,
125
+ wizard,
126
+ value,
127
+ props.project,
128
+ props.hostId
129
+ )
130
+
131
+ value = lunDiskValidation.newValue
132
+
133
+ stepHasError = nameValidation.stepHasError || lunDiskValidation.stepHasError
134
+ }
135
+
136
+ if (
137
+ wizard.isValidateForStep(
138
+ dynamicSteps.nameAndConfigure,
139
+ currentStep.id,
140
+ nextStep.id
141
+ )
142
+ ) {
143
+ const nameValidation = await validation.checkDatastoreNameAsync(
144
+ localization.value,
145
+ value,
146
+ form.value,
147
+ dynamicSteps.nameAndConfigure,
148
+ 'name',
149
+ wizard,
150
+ props.project,
151
+ props.datacenterId
152
+ )
153
+ value = nameValidation.newValue
154
+
155
+ const folderValidation = validation.checkNfsFolderSync(
156
+ localization.value,
157
+ form.value.folder,
158
+ wizard,
159
+ value
160
+ )
161
+ value = folderValidation.newValue
162
+
163
+ const serverValidation = validation.checkNfsServerSync(
164
+ localization.value,
165
+ form.value.server,
166
+ wizard,
167
+ value
168
+ )
169
+ value = serverValidation.newValue
170
+
171
+ stepHasError =
172
+ nameValidation.stepHasError ||
173
+ folderValidation.stepHasError ||
174
+ serverValidation.stepHasError
175
+ }
176
+
177
+ if (
178
+ wizard.isValidateForStep(
179
+ dynamicSteps.hostAccessibility,
180
+ currentStep.id,
181
+ nextStep.id
182
+ )
183
+ ) {
184
+ const nameValidation = await validation.checkHostsAccessibilitySync(
185
+ localization.value,
186
+ form.value.hosts,
187
+ wizard,
188
+ value
189
+ )
190
+
191
+ value = nameValidation.newValue
192
+
193
+ stepHasError = nameValidation.stepHasError
194
+ }
195
+
196
+ return {
197
+ newValue: value,
198
+ stepHasError,
199
+ }
200
+ }
201
+
202
+ const onChangeSteps = async (value: UI_I_WizardStep[]): Promise<void> =>
203
+ wizard.changeSteps(value, validationFunc)
204
+
205
+ // Choosing Scheme
206
+ watch(
207
+ () => form.value.type_code,
208
+ (newValue: UI_T_DatastoreTypeCode) => {
209
+ const step = getStepScheme(props.project, newValue, props.hostId)
210
+ if (step !== undefined) {
211
+ wizard.changeScheme(step)
212
+ }
213
+ },
214
+ { immediate: true }
215
+ )
216
+
217
+ const onHideAlert = (stepId: number): void => {
218
+ wizard.hideAlertMessagesByStepId(stepId)
219
+ }
220
+ const onHideModal = (): void => {
221
+ emits('hide')
222
+ }
223
+ const onCreateDatastore = (): void => {
224
+ emits('finish', form.value)
225
+ }
226
+ </script>
227
+
228
+ <style scoped lang="scss"></style>