bfg-common 1.5.537 → 1.5.539

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 (30) hide show
  1. package/assets/localization/local_be.json +1 -1
  2. package/assets/localization/local_en.json +1 -1
  3. package/assets/localization/local_hy.json +1 -1
  4. package/assets/localization/local_kk.json +1 -1
  5. package/assets/localization/local_ru.json +1 -1
  6. package/assets/localization/local_zh.json +1 -1
  7. package/assets/scss/clarity/local_ar.json +1 -1
  8. package/components/common/pages/backups/modals/restore/networks/Networks.vue +1 -1
  9. package/components/common/vm/actions/add/Add.vue +3 -2
  10. package/components/common/vm/actions/add/New.vue +3 -2
  11. package/components/common/vm/actions/add/Old.vue +5 -3
  12. package/components/common/vm/actions/clone/Clone.vue +3 -2
  13. package/components/common/vm/actions/clone/new/New.vue +50 -47
  14. package/components/common/vm/actions/clone/old/Old.vue +3 -3
  15. package/components/common/vm/actions/common/select/storage/Old.vue +125 -132
  16. package/components/common/vm/actions/common/select/storage/Storage.vue +178 -167
  17. package/components/common/vm/actions/common/select/storage/new/New.vue +311 -330
  18. package/components/common/vm/actions/register/Register.vue +5 -5
  19. package/components/common/wizards/common/{steps/computeResource/compatibility → compatibility}/Compatibility.vue +7 -3
  20. package/components/common/wizards/common/{steps/computeResource/compatibility → compatibility}/New.vue +2 -1
  21. package/components/common/wizards/common/{steps/computeResource/compatibility → compatibility}/Old.vue +4 -5
  22. package/components/common/wizards/common/{steps/computeResource/compatibility → compatibility}/lib/models/enums.ts +1 -1
  23. package/components/common/wizards/common/compatibility/lib/models/types.ts +1 -0
  24. package/components/common/wizards/common/steps/computeResource/ComputeResource.vue +2 -1
  25. package/components/common/wizards/common/steps/computeResource/New.vue +3 -2
  26. package/components/common/wizards/common/steps/computeResource/Old.vue +3 -2
  27. package/components/common/wizards/vm/migrate/select/computeResource/ComputeResource.vue +205 -195
  28. package/components/common/wizards/vm/migrate/select/network/Network.vue +1 -1
  29. package/components/common/wizards/vm/migrate/select/storage/Storage.vue +1 -1
  30. package/package.json +1 -1
@@ -1,167 +1,178 @@
1
- <template>
2
- <common-vm-actions-common-select-storage-new
3
- v-if="isNewView"
4
- v-model:selected-row="selectedRow"
5
- v-model:pagination="pagination"
6
- :datastore="props.datastore"
7
- :is-datastore-loading="props.isDatastoreLoading"
8
- :errors="errors"
9
- :selected-storage="selectedStorage"
10
- :hide-compatibility="props.hideCompatibility"
11
- :hide-alert="props.hideAlert"
12
- :is-in-wizard="props.isInWizard"
13
- :table-options="props.tableOptions"
14
- @remove-error="onRemoveValidationErrors"
15
- @change-storage="changeStorage"
16
- />
17
- <common-vm-actions-common-select-storage-old
18
- v-else
19
- v-model:selected-row="selectedRow"
20
- v-model:pagination="pagination"
21
- :datastore="props.datastore"
22
- :is-datastore-loading="props.isDatastoreLoading"
23
- :errors="errors"
24
- :selected-storage="selectedStorage"
25
- :hide-compatibility="props.hideCompatibility"
26
- @remove-error="onRemoveValidationErrors"
27
- @change-storage="changeStorage"
28
- />
29
- </template>
30
-
31
- <script setup lang="ts">
32
- import type { UI_I_DataTableOptions } from '~/node_modules/bfg-uikit/components/ui/dataTable/models/interfaces'
33
- import type {
34
- UI_I_Pagination,
35
- UI_I_TablePayload,
36
- } from '~/lib/models/table/interfaces'
37
- import type { UI_I_DatastoreTableItem } from '~/lib/models/store/storage/interfaces'
38
- import type { UI_I_Localization } from '~/lib/models/interfaces'
39
-
40
- const props = withDefaults(
41
- defineProps<{
42
- storageSubmit: null | Function
43
- datastore: UI_I_DatastoreTableItem[]
44
- isDatastoreLoading: boolean
45
- getDatastoreTableFunc: (payload: UI_I_TablePayload) => Promise<void>
46
- storage?: UI_I_DatastoreTableItem
47
- hideCompatibility?: boolean
48
- hideAlert?: boolean
49
- isInWizard?: boolean
50
- tableOptions?: UI_I_DataTableOptions
51
- }>(),
52
- {
53
- storage: undefined,
54
- hideCompatibility: undefined,
55
- hideAlert: undefined,
56
- isInWizard: undefined,
57
- tableOptions: undefined,
58
- }
59
- )
60
- const emits = defineEmits<{
61
- (event: 'submit', value: UI_I_DatastoreTableItem): void
62
- (event: 'change-storage', value: UI_I_DatastoreTableItem): void
63
- (event: 'is-selected-row', value: boolean): void
64
- (event: 'has-errors', value: boolean): void
65
- }>()
66
-
67
- const { $store }: any = useNuxtApp()
68
- const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
69
-
70
- const localization = computed<UI_I_Localization>(() => useLocal())
71
-
72
- const pagination = ref<UI_I_Pagination>({
73
- page: 1,
74
- pageSize: 100,
75
- })
76
- const getStorage = async (): Promise<void> => {
77
- const payload: UI_I_TablePayload = {
78
- pagination: pagination.value,
79
- sortBy: null,
80
- type: 'datastore',
81
- schema: 'full',
82
- }
83
-
84
- props.getDatastoreTableFunc(payload).then(() => {
85
- selectedRow.value = null
86
- setStorageFromProps()
87
- })
88
- }
89
- getStorage()
90
-
91
- const selectedStorage = ref<UI_I_DatastoreTableItem | null>(null)
92
- const selectedRow = ref<number | null>(null)
93
- const changeStorage = (index: number): void => {
94
- if (!props.datastore) return
95
- selectedStorage.value = props.datastore[index]
96
- selectedRow.value = index
97
- emits('change-storage', selectedStorage.value)
98
- }
99
-
100
- const setStorageFromProps = (): void => {
101
- if (!props.storage) return
102
- props.datastore.forEach((item, index) => {
103
- if (item.id === props.storage.id) changeStorage(index)
104
- })
105
- }
106
- watch(
107
- () => props.storage,
108
- () => {
109
- setStorageFromProps()
110
- },
111
- { immediate: true }
112
- )
113
- watch(
114
- () => props.datastore,
115
- (newValue) => {
116
- const hasSelectedRow: boolean = !!newValue.filter?.(item => item.id === selectedStorage.value?.id).length
117
- if(!hasSelectedRow) {
118
- selectedRow.value = null
119
- selectedStorage.value = null
120
- }
121
- },
122
- { immediate: true }
123
- )
124
- watch(
125
- selectedRow,
126
- (newValue) => {
127
- emits('is-selected-row', typeof newValue === 'number')
128
- },
129
- { immediate: true }
130
- )
131
-
132
- watch(
133
- () => props.storageSubmit,
134
- (newValue) => {
135
- newValue && submit(newValue)
136
- }
137
- )
138
- const submit = (cb: Function): void => {
139
- if (!selectedStorage.value) {
140
- showValidationErrors([
141
- localization.value.common.selectValidDestinationStorage,
142
- ])
143
- cb(false)
144
- return
145
- }
146
-
147
- emits('submit', selectedStorage.value)
148
- cb(true)
149
- }
150
-
151
- const errors = ref<string[]>([])
152
- const showValidationErrors = (arr: string[]): void => {
153
- errors.value = arr
154
- }
155
- const onRemoveValidationErrors = (): void => {
156
- errors.value = []
157
- }
158
- watch(
159
- errors,
160
- (newValue) => {
161
- emits('has-errors', !newValue.length)
162
- },
163
- { immediate: true, deep: true }
164
- )
165
- </script>
166
-
167
- <style scoped lang="scss"></style>
1
+ <template>
2
+ <common-vm-actions-common-select-storage-new
3
+ v-if="isNewView"
4
+ v-model:selected-row="selectedRow"
5
+ v-model:pagination="pagination"
6
+ :datastore="props.datastore"
7
+ :is-datastore-loading="props.isDatastoreLoading"
8
+ :errors="errors"
9
+ :selected-storage="selectedStorage"
10
+ :hide-compatibility="props.hideCompatibility"
11
+ :hide-alert="props.hideAlert"
12
+ :is-in-wizard="props.isInWizard"
13
+ :table-options="props.tableOptions"
14
+ :compatibility="compatibility"
15
+ @remove-error="onRemoveValidationErrors"
16
+ @change-storage="changeStorage"
17
+ />
18
+ <common-vm-actions-common-select-storage-old
19
+ v-else
20
+ v-model:selected-row="selectedRow"
21
+ v-model:pagination="pagination"
22
+ :datastore="props.datastore"
23
+ :is-datastore-loading="props.isDatastoreLoading"
24
+ :errors="errors"
25
+ :selected-storage="selectedStorage"
26
+ :hide-compatibility="props.hideCompatibility"
27
+ :compatibility="compatibility"
28
+ @remove-error="onRemoveValidationErrors"
29
+ @change-storage="changeStorage"
30
+ />
31
+ </template>
32
+
33
+ <script setup lang="ts">
34
+ import type { UI_I_DataTableOptions } from '~/node_modules/bfg-uikit/components/ui/dataTable/models/interfaces'
35
+ import type {
36
+ UI_I_Pagination,
37
+ UI_I_TablePayload,
38
+ } from '~/lib/models/table/interfaces'
39
+ import type { UI_I_DatastoreTableItem } from '~/lib/models/store/storage/interfaces'
40
+ import type { UI_I_Localization } from '~/lib/models/interfaces'
41
+ import type { UI_T_CompatibilityStatus } from '~/components/common/wizards/common/compatibility/lib/models/types'
42
+
43
+ const props = withDefaults(
44
+ defineProps<{
45
+ storageSubmit: null | Function
46
+ datastore: UI_I_DatastoreTableItem[]
47
+ isDatastoreLoading: boolean
48
+ getDatastoreTableFunc: (payload: UI_I_TablePayload) => Promise<void>
49
+ storage?: UI_I_DatastoreTableItem
50
+ hideCompatibility?: boolean
51
+ hideAlert?: boolean
52
+ isInWizard?: boolean
53
+ tableOptions?: UI_I_DataTableOptions
54
+ }>(),
55
+ {
56
+ storage: undefined,
57
+ hideCompatibility: undefined,
58
+ hideAlert: undefined,
59
+ isInWizard: undefined,
60
+ tableOptions: undefined,
61
+ }
62
+ )
63
+ const emits = defineEmits<{
64
+ (event: 'submit', value: UI_I_DatastoreTableItem): void
65
+ (event: 'change-storage', value: UI_I_DatastoreTableItem): void
66
+ (event: 'is-selected-row', value: boolean): void
67
+ (event: 'has-errors', value: boolean): void
68
+ }>()
69
+
70
+ const { $store }: any = useNuxtApp()
71
+ const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
72
+
73
+ const localization = computed<UI_I_Localization>(() => useLocal())
74
+
75
+ const pagination = ref<UI_I_Pagination>({
76
+ page: 1,
77
+ pageSize: 100,
78
+ })
79
+ const getStorage = async (): Promise<void> => {
80
+ const payload: UI_I_TablePayload = {
81
+ pagination: pagination.value,
82
+ sortBy: null,
83
+ type: 'datastore',
84
+ schema: 'full',
85
+ }
86
+
87
+ props.getDatastoreTableFunc(payload).then(() => {
88
+ selectedRow.value = null
89
+ setStorageFromProps()
90
+ })
91
+ }
92
+ getStorage()
93
+
94
+ const selectedStorage = ref<UI_I_DatastoreTableItem | null>(null)
95
+ const selectedRow = ref<number | null>(null)
96
+ const changeStorage = (index: number): void => {
97
+ if (!props.datastore) return
98
+ selectedStorage.value = props.datastore[index]
99
+ selectedRow.value = index
100
+ emits('change-storage', selectedStorage.value)
101
+ }
102
+
103
+ const setStorageFromProps = (): void => {
104
+ if (!props.storage) return
105
+ props.datastore.forEach((item, index) => {
106
+ if (item.id === props.storage.id) changeStorage(index)
107
+ })
108
+ }
109
+ watch(
110
+ () => props.storage,
111
+ () => {
112
+ setStorageFromProps()
113
+ },
114
+ { immediate: true }
115
+ )
116
+ watch(
117
+ () => props.datastore,
118
+ (newValue) => {
119
+ const hasSelectedRow: boolean = !!newValue.filter?.(
120
+ (item) => item.id === selectedStorage.value?.id
121
+ ).length
122
+ if (!hasSelectedRow) {
123
+ selectedRow.value = null
124
+ selectedStorage.value = null
125
+ }
126
+ },
127
+ { immediate: true }
128
+ )
129
+ watch(
130
+ selectedRow,
131
+ (newValue) => {
132
+ emits('is-selected-row', typeof newValue === 'number')
133
+ },
134
+ { immediate: true }
135
+ )
136
+
137
+ watch(
138
+ () => props.storageSubmit,
139
+ (newValue) => {
140
+ newValue && submit(newValue)
141
+ }
142
+ )
143
+ const submit = (cb: Function): void => {
144
+ if (!selectedStorage.value) {
145
+ showValidationErrors([
146
+ localization.value.common.selectValidDestinationStorage,
147
+ ])
148
+ cb(false)
149
+ return
150
+ }
151
+
152
+ emits('submit', selectedStorage.value)
153
+ cb(true)
154
+ }
155
+
156
+ const compatibility = computed<[UI_T_CompatibilityStatus, string]>(() => {
157
+ if (!selectedStorage.value)
158
+ return ['none', localization.value.vmWizard.noStorageSelected]
159
+ return ['success', localization.value.common.compatibilityChecksSucceeded]
160
+ })
161
+
162
+ const errors = ref<string[]>([])
163
+ const showValidationErrors = (arr: string[]): void => {
164
+ errors.value = arr
165
+ }
166
+ const onRemoveValidationErrors = (): void => {
167
+ errors.value = []
168
+ }
169
+ watch(
170
+ errors,
171
+ (newValue) => {
172
+ emits('has-errors', !newValue.length)
173
+ },
174
+ { immediate: true, deep: true }
175
+ )
176
+ </script>
177
+
178
+ <style scoped lang="scss"></style>