bfg-common 1.4.818 → 1.4.820

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.
@@ -1,242 +1,247 @@
1
- <template>
2
- <div class="hardware-hard-disk">
3
- <atoms-stack-block
4
- :has-children="true"
5
- :is-roll-back="props.type === 'removed'"
6
- :removable="props.isRemovable"
7
- :test-id="`hard-disk-stack-block-${props.index}`"
8
- @remove="emits('remove')"
9
- @roll-back="emits('roll-back')"
10
- >
11
- <template #stackBlockKey>
12
- <div
13
- :id="`vm-wizard-toggle-block-hard-disk-${props.index}`"
14
- :data-id="`vm-wizard-toggle-block-hard-disk-${props.index}`"
15
- class="vm-wizard-toggle-block-hard-disk flex-align-center"
16
- >
17
- <span>{{ props.label }}</span>
18
- <atoms-the-icon
19
- v-show="props.hardDiskInvalid"
20
- width="24px"
21
- height="24px"
22
- class="is-error tooltip-trigger"
23
- name="info"
24
- />
25
- </div>
26
- </template>
27
- <template #stackBlockContent>
28
- <div class="flex-align-center flex-space-between mr-1">
29
- <template v-if="props.type === 'removed'">
30
- <span>{{ localization.common.deviceWillRemoved }}</span>
31
- <div class="flex-align-center" @click.stop>
32
- <input
33
- :id="`hard-disk-delete-files-from-datastore-${props.index}`"
34
- v-model="deleteFilesFromDatastore"
35
- :data-id="`hard-disk-delete-files-from-datastore-${props.index}`"
36
- :disabled="props.disabled"
37
- type="checkbox"
38
- class="pointer"
39
- @click.stop
40
- />
41
- <label
42
- :for="`hard-disk-delete-files-from-datastore-${props.index}`"
43
- :class="[
44
- 'label-text-normal pointer',
45
- props.disabled && 'div-disabled',
46
- ]"
47
- >{{ localization.common.deleteFilesFromDatastore }}</label
48
- >
49
- </div>
50
- </template>
51
- <template v-else>
52
- <atoms-tooltip-error
53
- :has-error="!!props.errorText"
54
- :selector="`#vm-wizard-hard-disk-${props.index}`"
55
- @remove="
56
- emits(
57
- 'remove-error-by-title',
58
- `disk_devices[${props.index}].size`
59
- )
60
- "
61
- >
62
- <template #elem>
63
- <input
64
- :id="`vm-wizard-hard-disk-${props.index}`"
65
- v-model.number="size"
66
- :data-id="`vm-wizard-hard-disk-${props.index}`"
67
- type="number"
68
- :class="[
69
- 'spinfree edit-setting-input input-text-color',
70
- { 'has-error': props.hardDiskTypeErrorLocalText },
71
- ]"
72
- :disabled="props.isDisabledSize"
73
- @blur="emits('validate-size')"
74
- @click.stop
75
- />
76
- </template>
77
- <template #content>
78
- {{ props.errorText }}
79
- </template>
80
- </atoms-tooltip-error>
81
- <div class="select ml-1">
82
- <select
83
- :id="`hard-disk-type-select-${props.index}`"
84
- v-model="hardDiskType"
85
- :data-id="`hard-disk-type-select-${props.index}`"
86
- :disabled="props.type === 'exist'"
87
- class="input-text-color"
88
- @change="emits('validate-size')"
89
- @click.stop
90
- >
91
- <option
92
- v-for="(item, key) in props.hardDiskTypeOptions"
93
- :key="key"
94
- :value="item.value"
95
- >
96
- {{ item.text }}
97
- </option>
98
- </select>
99
- </div>
100
- </template>
101
- </div>
102
- </template>
103
- <template #stackChildren>
104
- <common-vm-actions-common-customize-hardware-virtual-hardware-new-hard-disk-maximum-size
105
- :free-mb="props.maxHardDisk"
106
- />
107
- <common-vm-actions-common-customize-hardware-virtual-hardware-new-hard-disk-location
108
- v-if="props.type === 'new'"
109
- :location="props.location"
110
- :index="props.index"
111
- :error-validation-fields="props.errorValidationFields"
112
- :get-datastore-table-func="props.getDatastoreTableFunc"
113
- :datastore="props.datastore"
114
- @change="emits('change-storage', $event)"
115
- @remove-error-by-title="emits('remove-error-by-title', $event)"
116
- />
117
- <common-vm-actions-common-customize-hardware-virtual-hardware-new-hard-disk-file
118
- v-else
119
- :path="props.hardDisk?.source"
120
- />
121
- <common-vm-actions-common-customize-hardware-virtual-hardware-new-hard-disk-provisioning
122
- v-model:disk-provisioning="diskProvisioning"
123
- :index="props.index"
124
- :error-validation-fields="props.errorValidationFields"
125
- :disabled="(props.isEdit && props.type !== 'new') || props.isRunning"
126
- @remove-error-by-title="emits('remove-error-by-title', $event)"
127
- />
128
- <common-vm-actions-common-customize-hardware-virtual-hardware-new-hard-disk-sharing
129
- v-model:sharing="sharing"
130
- :index="props.index"
131
- :error-validation-fields="props.errorValidationFields"
132
- :disabled="props.isRunning && props.type !== 'new'"
133
- @remove-error-by-title="emits('remove-error-by-title', $event)"
134
- />
135
- <common-vm-actions-common-customize-hardware-virtual-hardware-new-hard-disk-limit-iops
136
- v-model:limit-iops="limitIops"
137
- v-model:limit-iops-type="limitIopsType"
138
- :index="props.index"
139
- :error-validation-fields="props.errorValidationFields"
140
- :disabled="props.isRunning && props.type !== 'new'"
141
- @valid="limitIopsInvalid = $event"
142
- @remove-error-by-title="emits('remove-error-by-title', $event)"
143
- />
144
- <common-vm-actions-common-customize-hardware-virtual-hardware-new-hard-disk-mode
145
- v-model:disk-mode="diskMode"
146
- :index="props.index"
147
- :error-validation-fields="props.errorValidationFields"
148
- :disabled="props.isRunning && props.type !== 'new'"
149
- @remove-error-by-title="emits('remove-error-by-title', $event)"
150
- />
151
- <common-vm-actions-common-customize-hardware-virtual-hardware-new-hard-disk-cache
152
- v-model:cache="cache"
153
- :index="props.index"
154
- :error-validation-fields="props.errorValidationFields"
155
- :disabled="(props.isEdit && props.type !== 'new') || props.isRunning"
156
- @remove-error-by-title="emits('remove-error-by-title', $event)"
157
- />
158
- <common-vm-actions-common-customize-hardware-virtual-hardware-bus
159
- v-model:bus="bus"
160
- :index="props.index"
161
- :error-validation-fields="props.errorValidationFields"
162
- :disabled="!props.isNewHardDisk && props.isRunning"
163
- :help-text="localization.common.busVirtioHelpDesc"
164
- :test-id="`vm-wizard-disk-bus-field-${props.index}`"
165
- component-type="disk_devices"
166
- :guest-machine-type="props.guestMachineType"
167
- @remove-error-by-title="emits('remove-error-by-title', $event)"
168
- />
169
- </template>
170
- </atoms-stack-block>
171
- </div>
172
- </template>
173
-
174
- <script setup lang="ts">
175
- import type { UI_I_DatastoreTableItem } from '~/lib/models/store/storage/interfaces'
176
- import type {
177
- UI_I_SendDataNewHardDisk,
178
- } from '~/components/common/vm/actions/common/customizeHardware/virtualHardware/lib/models/interfaces'
179
- import type { UI_T_HardDiskType } from '~/components/common/vm/actions/common/customizeHardware/virtualHardware/lib/models/types'
180
- import type { UI_I_Localization } from '~/lib/models/interfaces'
181
- import type { UI_I_ErrorValidationField } from '~/lib/models/store/interfaces'
182
- import type { UI_I_TablePayload } from '~/lib/models/table/interfaces'
183
- import type { UI_I_OptionItem } from '~/components/atoms/lib/models/interfaces'
184
-
185
- const deleteFilesFromDatastore = defineModel<boolean>('deleteFilesFromDatastore', {required: true})
186
- const size = defineModel<number>('size', {required: true})
187
- const hardDiskType = defineModel<number>('hardDiskType', {required: true})
188
- const diskProvisioning = defineModel<string>('diskProvisioning', {required: true})
189
- const sharing = defineModel<string>('sharing', {required: true})
190
- const limitIops = defineModel<number>('limitIops', {required: true})
191
- const limitIopsType = defineModel<string>('limitIopsType', {required: true})
192
- const limitIopsInvalid = defineModel<boolean>('limitIopsInvalid', {required: true})
193
- const diskMode = defineModel<string>('diskMode', {required: true})
194
- const cache = defineModel<string>('cache', {required: true})
195
- const bus = defineModel<string>('bus', {required: true})
196
-
197
- const props = defineProps<{
198
- isRemovable: boolean
199
- label: string
200
- hardDiskInvalid: boolean
201
- disabled: boolean
202
- errorText: string
203
- hardDiskTypeErrorLocalText: string
204
- isDisabledSize: boolean
205
- hardDiskTypeOptions: UI_I_OptionItem[]
206
- maxHardDisk: number
207
- location: UI_I_DatastoreTableItem | null
208
- isRunning: boolean
209
- isNewHardDisk: boolean
210
- isEdit: boolean
211
- datastore: UI_I_DatastoreTableItem[]
212
- getDatastoreTableFunc: (payload: UI_I_TablePayload) => Promise<void>
213
- errorValidationFields: UI_I_ErrorValidationField<string>[]
214
- index: number
215
- type: UI_T_HardDiskType
216
- hardDisk: UI_I_SendDataNewHardDisk
217
- guestMachineType?: UI_I_OptionItem | null
218
- }>()
219
- const emits = defineEmits<{
220
- (event: 'remove'): void
221
- (event: 'roll-back'): void
222
- (event: 'validate-size'): void
223
- (event: 'change-storage', value: UI_I_DatastoreTableItem): void
224
- (event: 'remove-error-by-title', value: string): void
225
- }>()
226
-
227
- const localization = computed<UI_I_Localization>(() => useLocal())
228
-
229
- </script>
230
-
231
- <style scoped lang="scss">
232
- .hardware-cpu {
233
- #hard-disk {
234
- width: 100px;
235
- -webkit-appearance: none;
236
-
237
- &.has-error {
238
- border: 1px solid #db2100;
239
- }
240
- }
241
- }
242
- </style>
1
+ <template>
2
+ <div class="hardware-hard-disk">
3
+ <atoms-stack-block
4
+ :has-children="true"
5
+ :is-roll-back="props.type === 'removed'"
6
+ :removable="props.isRemovable"
7
+ :test-id="`hard-disk-stack-block-${props.index}`"
8
+ @remove="emits('remove')"
9
+ @roll-back="emits('roll-back')"
10
+ >
11
+ <template #stackBlockKey>
12
+ <div
13
+ :id="`vm-wizard-toggle-block-hard-disk-${props.index}`"
14
+ :data-id="`vm-wizard-toggle-block-hard-disk-${props.index}`"
15
+ class="vm-wizard-toggle-block-hard-disk flex-align-center"
16
+ >
17
+ <span>{{ props.label }}</span>
18
+ <atoms-the-icon
19
+ v-show="props.hardDiskInvalid"
20
+ width="24px"
21
+ height="24px"
22
+ class="is-error tooltip-trigger"
23
+ name="info"
24
+ />
25
+ </div>
26
+ </template>
27
+ <template #stackBlockContent>
28
+ <div class="flex-align-center flex-space-between mr-1">
29
+ <template v-if="props.type === 'removed'">
30
+ <span>{{ localization.common.deviceWillRemoved }}</span>
31
+ <div class="flex-align-center" @click.stop>
32
+ <input
33
+ :id="`hard-disk-delete-files-from-datastore-${props.index}`"
34
+ v-model="deleteFilesFromDatastore"
35
+ :data-id="`hard-disk-delete-files-from-datastore-${props.index}`"
36
+ :disabled="props.disabled"
37
+ type="checkbox"
38
+ class="pointer"
39
+ @click.stop
40
+ />
41
+ <label
42
+ :for="`hard-disk-delete-files-from-datastore-${props.index}`"
43
+ :class="[
44
+ 'label-text-normal pointer',
45
+ props.disabled && 'div-disabled',
46
+ ]"
47
+ >{{ localization.common.deleteFilesFromDatastore }}</label
48
+ >
49
+ </div>
50
+ </template>
51
+ <template v-else>
52
+ <atoms-tooltip-error
53
+ :has-error="!!props.errorText"
54
+ :selector="`#vm-wizard-hard-disk-${props.index}`"
55
+ @remove="
56
+ emits(
57
+ 'remove-error-by-title',
58
+ `disk_devices[${props.index}].size`
59
+ )
60
+ "
61
+ >
62
+ <template #elem>
63
+ <input
64
+ :id="`vm-wizard-hard-disk-${props.index}`"
65
+ v-model.number="size"
66
+ :data-id="`vm-wizard-hard-disk-${props.index}`"
67
+ type="number"
68
+ :class="[
69
+ 'spinfree edit-setting-input input-text-color',
70
+ { 'has-error': props.hardDiskTypeErrorLocalText },
71
+ ]"
72
+ :disabled="props.isDisabledSize"
73
+ @blur="emits('validate-size')"
74
+ @click.stop
75
+ />
76
+ </template>
77
+ <template #content>
78
+ {{ props.errorText }}
79
+ </template>
80
+ </atoms-tooltip-error>
81
+ <div class="select ml-1">
82
+ <select
83
+ :id="`hard-disk-type-select-${props.index}`"
84
+ v-model="hardDiskType"
85
+ :data-id="`hard-disk-type-select-${props.index}`"
86
+ :disabled="props.type === 'exist'"
87
+ class="input-text-color"
88
+ @change="emits('validate-size')"
89
+ @click.stop
90
+ >
91
+ <option
92
+ v-for="(item, key) in props.hardDiskTypeOptions"
93
+ :key="key"
94
+ :value="item.value"
95
+ >
96
+ {{ item.text }}
97
+ </option>
98
+ </select>
99
+ </div>
100
+ </template>
101
+ </div>
102
+ </template>
103
+ <template #stackChildren>
104
+ <common-vm-actions-common-customize-hardware-virtual-hardware-new-hard-disk-maximum-size
105
+ :free-mb="props.maxHardDisk"
106
+ />
107
+ <common-vm-actions-common-customize-hardware-virtual-hardware-new-hard-disk-location
108
+ v-if="props.isNewType"
109
+ :location="props.location"
110
+ :index="props.index"
111
+ :error-validation-fields="props.errorValidationFields"
112
+ :get-datastore-table-func="props.getDatastoreTableFunc"
113
+ :datastore="props.datastore"
114
+ @change="emits('change-storage', $event)"
115
+ @remove-error-by-title="emits('remove-error-by-title', $event)"
116
+ />
117
+ <common-vm-actions-common-customize-hardware-virtual-hardware-new-hard-disk-file
118
+ v-else
119
+ :path="props.hardDisk?.source"
120
+ />
121
+ <common-vm-actions-common-customize-hardware-virtual-hardware-new-hard-disk-provisioning
122
+ v-model:disk-provisioning="diskProvisioning"
123
+ :index="props.index"
124
+ :error-validation-fields="props.errorValidationFields"
125
+ :disabled="(props.isEdit && !props.isNewType) || props.isRunning"
126
+ @remove-error-by-title="emits('remove-error-by-title', $event)"
127
+ />
128
+ <common-vm-actions-common-customize-hardware-virtual-hardware-new-hard-disk-sharing
129
+ v-model:sharing="sharing"
130
+ :index="props.index"
131
+ :error-validation-fields="props.errorValidationFields"
132
+ :disabled="props.isRunning && !props.isNewType"
133
+ @remove-error-by-title="emits('remove-error-by-title', $event)"
134
+ />
135
+ <common-vm-actions-common-customize-hardware-virtual-hardware-new-hard-disk-limit-iops
136
+ v-model:limit-iops="limitIops"
137
+ v-model:limit-iops-type="limitIopsType"
138
+ :index="props.index"
139
+ :error-validation-fields="props.errorValidationFields"
140
+ :disabled="props.isRunning && !props.isNewType"
141
+ @valid="limitIopsInvalid = $event"
142
+ @remove-error-by-title="emits('remove-error-by-title', $event)"
143
+ />
144
+ <common-vm-actions-common-customize-hardware-virtual-hardware-new-hard-disk-mode
145
+ v-model:disk-mode="diskMode"
146
+ :index="props.index"
147
+ :error-validation-fields="props.errorValidationFields"
148
+ :disabled="props.isRunning && !props.isNewType"
149
+ @remove-error-by-title="emits('remove-error-by-title', $event)"
150
+ />
151
+ <common-vm-actions-common-customize-hardware-virtual-hardware-new-hard-disk-cache
152
+ v-model:cache="cache"
153
+ :index="props.index"
154
+ :error-validation-fields="props.errorValidationFields"
155
+ :disabled="(props.isEdit && !props.isNewType) || props.isRunning"
156
+ @remove-error-by-title="emits('remove-error-by-title', $event)"
157
+ />
158
+ <common-vm-actions-common-customize-hardware-virtual-hardware-bus
159
+ v-model:bus="bus"
160
+ :index="props.index"
161
+ :error-validation-fields="props.errorValidationFields"
162
+ :disabled="!props.isNewHardDisk && props.isRunning"
163
+ :help-text="localization.common.busVirtioHelpDesc"
164
+ :test-id="`vm-wizard-disk-bus-field-${props.index}`"
165
+ component-type="disk_devices"
166
+ :guest-machine-type="props.guestMachineType"
167
+ @remove-error-by-title="emits('remove-error-by-title', $event)"
168
+ />
169
+ </template>
170
+ </atoms-stack-block>
171
+ </div>
172
+ </template>
173
+
174
+ <script setup lang="ts">
175
+ import type { UI_I_DatastoreTableItem } from '~/lib/models/store/storage/interfaces'
176
+ import type { UI_I_SendDataNewHardDisk } from '~/components/common/vm/actions/common/customizeHardware/virtualHardware/lib/models/interfaces'
177
+ import type { UI_T_HardDiskType } from '~/components/common/vm/actions/common/customizeHardware/virtualHardware/lib/models/types'
178
+ import type { UI_I_Localization } from '~/lib/models/interfaces'
179
+ import type { UI_I_ErrorValidationField } from '~/lib/models/store/interfaces'
180
+ import type { UI_I_TablePayload } from '~/lib/models/table/interfaces'
181
+ import type { UI_I_OptionItem } from '~/components/atoms/lib/models/interfaces'
182
+
183
+ const deleteFilesFromDatastore = defineModel<boolean>(
184
+ 'deleteFilesFromDatastore',
185
+ { required: true }
186
+ )
187
+ const size = defineModel<number>('size', { required: true })
188
+ const hardDiskType = defineModel<number>('hardDiskType', { required: true })
189
+ const diskProvisioning = defineModel<string>('diskProvisioning', {
190
+ required: true,
191
+ })
192
+ const sharing = defineModel<string>('sharing', { required: true })
193
+ const limitIops = defineModel<number>('limitIops', { required: true })
194
+ const limitIopsType = defineModel<string>('limitIopsType', { required: true })
195
+ const limitIopsInvalid = defineModel<boolean>('limitIopsInvalid', {
196
+ required: true,
197
+ })
198
+ const diskMode = defineModel<string>('diskMode', { required: true })
199
+ const cache = defineModel<string>('cache', { required: true })
200
+ const bus = defineModel<string>('bus', { required: true })
201
+
202
+ const props = defineProps<{
203
+ isRemovable: boolean
204
+ label: string
205
+ hardDiskInvalid: boolean
206
+ disabled: boolean
207
+ errorText: string
208
+ hardDiskTypeErrorLocalText: string
209
+ isDisabledSize: boolean
210
+ hardDiskTypeOptions: UI_I_OptionItem[]
211
+ maxHardDisk: number
212
+ location: UI_I_DatastoreTableItem | null
213
+ isRunning: boolean
214
+ isNewHardDisk: boolean
215
+ isEdit: boolean
216
+ datastore: UI_I_DatastoreTableItem[]
217
+ getDatastoreTableFunc: (payload: UI_I_TablePayload) => Promise<void>
218
+ errorValidationFields: UI_I_ErrorValidationField<string>[]
219
+ index: number
220
+ type: UI_T_HardDiskType
221
+ hardDisk: UI_I_SendDataNewHardDisk
222
+ guestMachineType?: UI_I_OptionItem | null
223
+ isNewType?: boolean
224
+ }>()
225
+ const emits = defineEmits<{
226
+ (event: 'remove'): void
227
+ (event: 'roll-back'): void
228
+ (event: 'validate-size'): void
229
+ (event: 'change-storage', value: UI_I_DatastoreTableItem): void
230
+ (event: 'remove-error-by-title', value: string): void
231
+ }>()
232
+
233
+ const localization = computed<UI_I_Localization>(() => useLocal())
234
+ </script>
235
+
236
+ <style scoped lang="scss">
237
+ .hardware-cpu {
238
+ #hard-disk {
239
+ width: 100px;
240
+ -webkit-appearance: none;
241
+
242
+ &.has-error {
243
+ border: 1px solid #db2100;
244
+ }
245
+ }
246
+ }
247
+ </style>
@@ -236,7 +236,8 @@ watch(
236
236
  watch(
237
237
  () => props.network,
238
238
  (newValue) => {
239
- if (props.type !== 'edit') return
239
+ // if (props.type !== 'edit') return
240
+ if (props.type !== 'edit' && props.type !== 'clone') return
240
241
 
241
242
  locationOptions.value = [
242
243
  { text: newValue.network, value: newValue[valueProp] },
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "bfg-common",
3
3
  "private": false,
4
- "version": "1.4.818",
4
+ "version": "1.4.820",
5
5
  "scripts": {
6
6
  "build": "nuxt build",
7
7
  "dev": "nuxt dev --port=3002",