bfg-common 1.5.556 → 1.5.558

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 (64) hide show
  1. package/assets/localization/local_be.json +4 -20
  2. package/assets/localization/local_en.json +4 -20
  3. package/assets/localization/local_hy.json +4 -20
  4. package/assets/localization/local_kk.json +4 -20
  5. package/assets/localization/local_ru.json +4 -20
  6. package/assets/localization/local_zh.json +5 -21
  7. package/components/common/modals/confirmByInput/ConfirmByInput.vue +1 -9
  8. package/components/common/modals/confirmByInput/ConfirmByInputNew.vue +2 -7
  9. package/components/common/pages/backups/modals/createBackup/New.vue +2 -8
  10. package/components/common/pages/backups/modals/restore/Restore.vue +5 -9
  11. package/components/common/pages/backups/modals/restore/RestoreNew.vue +3 -13
  12. package/components/common/pages/backups/modals/restore/RestoreOld.vue +18 -6
  13. package/components/common/vm/actions/add/Add.vue +46 -119
  14. package/components/common/vm/actions/add/New.vue +16 -54
  15. package/components/common/vm/actions/add/Old.vue +16 -55
  16. package/components/common/vm/actions/common/customizeHardware/CustomizeHardware.vue +14 -81
  17. package/components/common/vm/actions/common/customizeHardware/CustomizeHardwareNew.vue +7 -56
  18. package/components/common/vm/actions/common/customizeHardware/CustomizeHardwareOld.vue +8 -56
  19. package/components/common/vm/actions/common/customizeHardware/virtualHardware/VirtualHardware.vue +73 -142
  20. package/components/common/vm/actions/common/customizeHardware/virtualHardware/VirtualHardwareNew.vue +60 -54
  21. package/components/common/vm/actions/common/customizeHardware/virtualHardware/VirtualHardwareOld.vue +61 -55
  22. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/Cpu.vue +139 -159
  23. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/CpuNew.vue +8 -15
  24. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/CpuOld.vue +8 -13
  25. package/components/common/vm/actions/common/customizeHardware/virtualHardware/memory/Memory.vue +62 -75
  26. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/NewNetwork.vue +58 -74
  27. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newUsbController/NewUsbController.vue +6 -17
  28. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newUsbController/NewUsbControllerNew.vue +6 -3
  29. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newUsbController/NewUsbControllerOld.vue +6 -3
  30. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/VideoCard.vue +17 -39
  31. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/VideoCardNew.vue +6 -5
  32. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/VideoCardOld.vue +6 -5
  33. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/lib/config/options.ts +4 -4
  34. package/components/common/vm/actions/common/customizeHardware/vmoptions/Vmoptions.vue +6 -93
  35. package/components/common/vm/actions/common/customizeHardware/vmoptions/VmoptionsNew.vue +8 -62
  36. package/components/common/vm/actions/common/customizeHardware/vmoptions/VmoptionsOld.vue +8 -60
  37. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/BootOptions.vue +5 -69
  38. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/BootOptionsNew.vue +12 -32
  39. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/BootOptionsOld.vue +12 -33
  40. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/Order.vue +114 -132
  41. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/OrderNew.vue +41 -6
  42. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/OrderOld.vue +44 -6
  43. package/components/common/vm/actions/common/customizeHardware/vmoptions/generalOptions/GeneralOptions.vue +8 -23
  44. package/components/common/vm/actions/common/customizeHardware/vmoptions/generalOptions/GeneralOptionsNew.vue +21 -31
  45. package/components/common/vm/actions/common/customizeHardware/vmoptions/generalOptions/GeneralOptionsOld.vue +26 -34
  46. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/New.vue +28 -34
  47. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/Old.vue +24 -30
  48. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/RemoteConsoleOptions.vue +8 -112
  49. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/keymap/Keymap.vue +3 -3
  50. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/keymap/{KeymapNew.vue → New.vue} +6 -6
  51. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/keymap/{KeymapOld.vue → Old.vue} +5 -5
  52. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/password/Password.vue +6 -7
  53. package/components/common/vm/actions/common/customizeHardware/vmoptions/tools/Tools.vue +4 -38
  54. package/components/common/vm/actions/common/customizeHardware/vmoptions/tools/ToolsNew.vue +7 -26
  55. package/components/common/vm/actions/common/customizeHardware/vmoptions/tools/ToolsOld.vue +24 -50
  56. package/components/common/vm/actions/common/lib/models/interfaces.ts +57 -25
  57. package/components/common/vm/actions/editSettings/EditSettings.vue +21 -35
  58. package/components/common/vm/actions/editSettings/EditSettingsOld.vue +14 -41
  59. package/components/common/vm/actions/editSettings/new/New.vue +14 -41
  60. package/components/common/vm/actions/lib/models/interfaces.ts +4 -29
  61. package/components/common/vm/actions/lib/utils.ts +37 -32
  62. package/package.json +1 -3
  63. /package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/password/{PasswordNew.vue → New.vue} +0 -0
  64. /package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/password/{PasswordOld.vue → Old.vue} +0 -0
@@ -10,7 +10,7 @@
10
10
  v-model:limit="limit"
11
11
  v-model:limit-type="limitType"
12
12
  v-model:limit-invalid="limitInvalid"
13
- v-model:memory-hot-plug="memoryHotPlug"
13
+ v-model:memory-hot-plug="model.memory.hotplug"
14
14
  :error-validation-fields="props.errorValidationFields"
15
15
  :memory-invalid="memoryInvalid"
16
16
  :error-text="memorySizeLocalAndApiErrorsTexts"
@@ -35,7 +35,7 @@
35
35
  v-model:limit="limit"
36
36
  v-model:limit-type="limitType"
37
37
  v-model:limit-invalid="limitInvalid"
38
- v-model:memory-hot-plug="memoryHotPlug"
38
+ v-model:memory-hot-plug="model.memory.hotplug"
39
39
  :error-validation-fields="props.errorValidationFields"
40
40
  :memory-invalid="memoryInvalid"
41
41
  :error-text="memorySizeLocalAndApiErrorsTexts"
@@ -52,31 +52,29 @@
52
52
  </template>
53
53
 
54
54
  <script setup lang="ts">
55
- import type { API_UI_I_VmEditMemory } from '~/lib/models/store/vm/interfaces'
56
- import type { UI_I_SendDataMemory } from '~/components/common/vm/actions/common/customizeHardware/virtualHardware/lib/models/interfaces'
57
55
  import type { UI_I_Localization } from '~/lib/models/interfaces'
58
56
  import type { UI_I_ErrorValidationField } from '~/lib/models/store/interfaces'
59
57
  import type { UI_I_OptionItem } from '~/components/atoms/lib/models/interfaces'
58
+ import type { UI_I_CreateVmData } from '~/components/common/vm/actions/common/lib/models/interfaces'
60
59
  import {
61
60
  memoryOptionsFunc,
62
61
  memoryTypeOptionsFunc,
63
62
  } from '~/components/common/vm/actions/common/customizeHardware/virtualHardware/memory/lib/config/memoryOptions'
64
63
 
64
+ const model = defineModel<UI_I_CreateVmData>({ required: true })
65
+
65
66
  const props = withDefaults(
66
67
  defineProps<{
67
68
  maxMemory: number
68
69
  isEdit: boolean
69
70
  errorValidationFields: UI_I_ErrorValidationField[]
70
71
  state?: string | number
71
- memory?: API_UI_I_VmEditMemory
72
72
  }>(),
73
73
  {
74
74
  state: undefined,
75
- memory: undefined,
76
75
  }
77
76
  )
78
77
  const emits = defineEmits<{
79
- (event: 'send-data', value: UI_I_SendDataMemory): void
80
78
  (event: 'invalid', value: boolean): void
81
79
  (event: 'remove-error-by-title', value: string): void
82
80
  }>()
@@ -103,7 +101,7 @@ const isDisabled = computed<boolean>(() => {
103
101
  })
104
102
 
105
103
  const isMemoryDisabled = computed<boolean>(
106
- () => isDisabled.value && !memoryHotPlug.value
104
+ () => isDisabled.value && !model.value.memory.hotplug
107
105
  )
108
106
 
109
107
  const selectedMemory = ref<number>(4)
@@ -122,6 +120,18 @@ const memoryInMb = computed<number>(() => {
122
120
 
123
121
  return $binary.universalFromTo(+selectedMemory.value, memoryType.value, 'mb')
124
122
  })
123
+ watch(memoryInMb, (newValue) => {
124
+ model.value.memory.size_mb = newValue
125
+ })
126
+ if (model.value.memory.size_mb !== 4096) {
127
+ const sizeInGb = $binary.mbToGb(model.value.memory.size_mb)
128
+ if (sizeInGb < 1) {
129
+ selectedMemory.value = model.value.memory.size_mb
130
+ memoryType.value = 'mb'
131
+ } else {
132
+ selectedMemory.value = sizeInGb
133
+ }
134
+ }
125
135
 
126
136
  const memoryOptions = ref<UI_I_OptionItem[]>(
127
137
  memoryOptionsFunc(localization.value, minMemoryInMb, props.maxMemory)
@@ -211,6 +221,26 @@ watch(reservation, (newValue) => {
211
221
  })
212
222
  const reservationType = ref<string>('mb')
213
223
  const reserveGuestMemory = ref<boolean>(false)
224
+ if (model.value.memory.reservation_mb !== 2) {
225
+ const reservationInGb = $binary.mbToGb(model.value.memory.reservation_mb)
226
+ if (reservationInGb < 1) {
227
+ reservation.value = model.value.memory.reservation_mb.toString()
228
+ reservationType.value = 'mb'
229
+ } else {
230
+ reservation.value = reservationInGb
231
+ reservationType.value = 'gb'
232
+ }
233
+ }
234
+ watch(
235
+ [reservation, reservationType],
236
+ () => {
237
+ model.value.memory.reservation_mb =
238
+ reservationType.value === 'gb'
239
+ ? $binary.gbToMb(+reservation.value)
240
+ : +reservation.value
241
+ },
242
+ { deep: true, immediate: true }
243
+ )
214
244
 
215
245
  const limit = ref<string>('Unlimited')
216
246
  watch(limit, (newValue) => {
@@ -220,90 +250,47 @@ watch(limit, (newValue) => {
220
250
  })
221
251
  const limitType = ref<string>('mb')
222
252
  const limitOptions = computed<UI_I_OptionItem[] | undefined>(() => {
223
- if (memoryHotPlug.value)
253
+ if (model.value.memory.hotplug)
224
254
  return memoryOptionsFunc(
225
255
  localization.value,
226
256
  memoryInMb.value,
227
257
  props.maxMemory
228
258
  )
229
259
  })
230
-
231
- const memoryHotPlug = ref<boolean>(false)
232
- const isDisabledMemoryHotPlug = computed<boolean>(
233
- () => memoryInMb.value >= props.maxMemory || isDisabled.value
234
- )
235
- watch(isDisabledMemoryHotPlug, (newValue) => {
236
- if (newValue) memoryHotPlug.value = false
237
- })
238
-
260
+ if (model.value.memory.limit_mb !== null) {
261
+ if (typeof model.value.memory.limit_mb === 'string')
262
+ limit.value = model.value.memory.limit_mb
263
+ else {
264
+ const limitInGb = $binary.mbToGb(model.value.memory.limit_mb)
265
+ if (limitInGb < 1) {
266
+ limit.value = model.value.memory.limit_mb.toString()
267
+ limitType.value = 'mb'
268
+ } else {
269
+ limit.value = limitInGb
270
+ limitType.value = 'gb'
271
+ }
272
+ }
273
+ }
239
274
  watch(
240
- [memoryInMb, memoryHotPlug, reservation, reservationType, limit, limitType],
275
+ [limit, limitType],
241
276
  () => {
242
- const reservationInMb =
243
- reservationType.value === 'mb'
244
- ? reservation.value
245
- : '' +
246
- $binary.universalFromTo(
247
- reservation.value,
248
- reservationType.value,
249
- 'mb',
250
- 12
251
- )
252
- const limitInMb =
277
+ model.value.memory.limit_mb =
253
278
  limit.value === 'Unlimited'
254
279
  ? limit.value
255
280
  : limitType.value === 'gb'
256
281
  ? $binary.gbToMb(+limit.value)
257
282
  : +limit.value
258
- emits('send-data', {
259
- memory: '' + memoryInMb.value,
260
- hotplug: memoryHotPlug.value,
261
- reservation_mb: reservationInMb,
262
- limit_mb: limitInMb,
263
- })
264
283
  },
265
- { immediate: true }
284
+ { deep: true, immediate: true }
266
285
  )
267
286
 
268
- // Добавляем данные для редактирования
269
- watch(
270
- () => props.memory,
271
- (newValue) => {
272
- if (!newValue) return
273
-
274
- const sizeInGb = $binary.mbToGb(newValue.size_mb)
275
- if (sizeInGb < 1) {
276
- selectedMemory.value = newValue.size_mb
277
- memoryType.value = 'mb'
278
- } else {
279
- selectedMemory.value = sizeInGb
280
- }
281
-
282
- const reservationInGb = $binary.mbToGb(newValue.reservation_mb)
283
- if (reservationInGb < 1) {
284
- reservation.value = newValue.reservation_mb
285
- reservationType.value = 'mb'
286
- } else {
287
- reservation.value = reservationInGb
288
- reservationType.value = 'gb'
289
- }
290
-
291
- if (typeof newValue.limit_mb === 'string') limit.value = newValue.limit_mb
292
- else {
293
- const limitInGb = $binary.mbToGb(newValue.limit_mb)
294
- if (limitInGb < 1) {
295
- limit.value = newValue.limit_mb
296
- limitType.value = 'mb'
297
- } else {
298
- limit.value = limitInGb
299
- limitType.value = 'gb'
300
- }
301
- }
302
-
303
- memoryHotPlug.value = newValue.hotplug
304
- },
305
- { immediate: true }
287
+ // const memoryHotPlug = ref<boolean>(false)
288
+ const isDisabledMemoryHotPlug = computed<boolean>(
289
+ () => memoryInMb.value >= props.maxMemory || isDisabled.value
306
290
  )
291
+ watch(isDisabledMemoryHotPlug, (newValue) => {
292
+ if (newValue) model.value.memory.hotplug = false
293
+ })
307
294
 
308
295
  const onRemoveValidationError = (): void => {
309
296
  emits('remove-error-by-title', 'memory.size_mb')
@@ -1,9 +1,9 @@
1
1
  <template>
2
2
  <common-vm-actions-common-customize-hardware-virtual-hardware-new-network-new
3
3
  v-if="isNewView"
4
- v-model:selected-location="selectedLocation"
5
- v-model:adapter-type="adapterType"
6
- v-model:mac-address="macAddress"
4
+ v-model:selected-location="netBridge"
5
+ v-model:adapter-type="model"
6
+ v-model:mac-address="mac"
7
7
  v-model:mac-address-type="macAddressType"
8
8
  v-model:new-network-invalid="newNetworkInvalid"
9
9
  :index="props.index"
@@ -26,9 +26,9 @@
26
26
  />
27
27
  <common-vm-actions-common-customize-hardware-virtual-hardware-new-network-old
28
28
  v-else
29
- v-model:selected-location="selectedLocation"
30
- v-model:adapter-type="adapterType"
31
- v-model:mac-address="macAddress"
29
+ v-model:selected-location="netBridge"
30
+ v-model:adapter-type="model"
31
+ v-model:mac-address="mac"
32
32
  v-model:mac-address-type="macAddressType"
33
33
  v-model:new-network-invalid="newNetworkInvalid"
34
34
  :index="props.index"
@@ -56,20 +56,45 @@ import type { UI_T_Project } from '~/lib/models/types'
56
56
  import type { UI_I_TablePayload } from '~/lib/models/table/interfaces'
57
57
  import type { UI_I_NetworkTableItem } from '~/lib/models/store/network/interfaces'
58
58
  import type { UI_I_ErrorValidationField } from '~/lib/models/store/interfaces'
59
- import type { UI_I_SendDataNewNetwork } from '~/components/common/vm/actions/common/customizeHardware/virtualHardware/lib/models/interfaces'
60
59
  import type { UI_T_NetworkType } from '~/components/common/vm/actions/common/customizeHardware/virtualHardware/lib/models/types'
61
60
  import type {
62
61
  UI_I_Localization,
63
62
  UI_I_HTMLSelectElement,
64
63
  } from '~/lib/models/interfaces'
65
64
  import type { UI_I_OptionItem } from '~/components/atoms/lib/models/interfaces'
65
+ import type { UI_I_CreateVmData } from '~/components/common/vm/actions/common/lib/models/interfaces'
66
+
67
+ const network = defineModel<UI_I_CreateVmData['network_devices'][0]['network']>(
68
+ 'network',
69
+ { required: true }
70
+ )
71
+ const netBridge = defineModel<
72
+ UI_I_CreateVmData['network_devices'][0]['net_bridge']
73
+ >('netBridge', { required: true })
74
+ watch(netBridge, (newValue) => {
75
+ const selectedOption = locationOptions.value.find(
76
+ (option) => option.value === newValue
77
+ )
78
+ if (selectedOption) {
79
+ network.value = selectedOption.text
80
+ }
81
+ })
82
+
83
+ const mac = defineModel<UI_I_CreateVmData['network_devices'][0]['mac']>('mac', {
84
+ required: true,
85
+ })
86
+ const model = defineModel<UI_I_CreateVmData['network_devices'][0]['model']>(
87
+ 'model',
88
+ {
89
+ required: true,
90
+ }
91
+ )
66
92
 
67
93
  const props = withDefaults(
68
94
  defineProps<{
69
95
  project: UI_T_Project
70
96
  index: number
71
97
  type: UI_T_NetworkType
72
- network: UI_I_SendDataNewNetwork
73
98
  networksTable: UI_I_NetworkTableItem[]
74
99
  errorValidationFields: UI_I_ErrorValidationField[]
75
100
  isEdit: boolean
@@ -80,7 +105,6 @@ const props = withDefaults(
80
105
  }
81
106
  )
82
107
  const emits = defineEmits<{
83
- (event: 'send-data', value: UI_I_SendDataNewNetwork): void
84
108
  (event: 'invalid', value: boolean): void
85
109
  (event: 'remove'): void
86
110
  (event: 'remove-error-by-title', value: string): void
@@ -102,7 +126,7 @@ const isRemovable = computed<boolean>(() => {
102
126
  return (
103
127
  !props.isEdit ||
104
128
  !isRunning.value ||
105
- (isRunning.value && adapterType.value === 'virtio')
129
+ (isRunning.value && model.value === 'virtio')
106
130
  )
107
131
  })
108
132
 
@@ -118,9 +142,15 @@ const label = computed<string>(() => {
118
142
  // }
119
143
 
120
144
  const selectedLocationOld = ref<string>('')
121
- const selectedLocation = ref<string>('')
122
145
  const locationOptions = ref<UI_I_OptionItem[]>([])
123
146
 
147
+ if (netBridge.value) {
148
+ locationOptions.value = [
149
+ { text: network.value, value: netBridge.value },
150
+ { text: `${localization.value.common.browse}...`, value: '' },
151
+ ]
152
+ }
153
+
124
154
  const getNetworks = (): void => {
125
155
  // if (props.networksTable.length) return // Из-за этого кода был баг. Открыть визард вм -> создать сеть -> открыть визард вм и в списке сетей нету новой сети
126
156
 
@@ -149,9 +179,8 @@ watch(
149
179
  watch(
150
180
  () => props.networksTable,
151
181
  (newValue) => {
152
- const isExistValue = newValue.some(
153
- (network) => network[valueProp] === selectedLocation.value
154
- )
182
+ if (!newValue.length && props.type !== 'new') return
183
+
155
184
  if (!newValue.length) {
156
185
  locationOptions.value = [
157
186
  {
@@ -159,29 +188,33 @@ watch(
159
188
  value: 'noAvailableNetworks',
160
189
  },
161
190
  ]
162
- selectedLocation.value = 'noAvailableNetworks'
191
+ netBridge.value = 'noAvailableNetworks'
163
192
  newNetworkInvalid.value = true
164
193
  return
165
194
  }
166
195
  newNetworkInvalid.value = false
167
196
 
197
+ const isExistValue = newValue.some(
198
+ (networkLocal) => networkLocal[valueProp] === netBridge.value
199
+ )
200
+
168
201
  if (props.type === 'edit' || isExistValue) return
169
202
 
170
203
  selectedLocationOld.value = newValue[0][valueProp] || ''
171
- selectedLocation.value = newValue[0][valueProp] || ''
204
+ netBridge.value = newValue[0][valueProp] || ''
172
205
 
173
206
  locationOptions.value = [
174
207
  { text: newValue[0].name, value: newValue[0][valueProp] },
175
208
  { text: `${localization.value.common.browse}...`, value: '' },
176
209
  ]
177
210
  },
178
- { immediate: true }
211
+ { immediate: true, deep: true }
179
212
  )
180
213
 
181
214
  const locationModalIsShow = ref<boolean>(false)
182
215
  const onHideLocationModal = (): void => {
183
216
  locationModalIsShow.value = false
184
- selectedLocation.value = selectedLocationOld.value
217
+ netBridge.value = selectedLocationOld.value
185
218
  }
186
219
  const changeLocation = (event: UI_I_HTMLSelectElement): void => {
187
220
  const value = event.target.value
@@ -191,17 +224,16 @@ const changeLocation = (event: UI_I_HTMLSelectElement): void => {
191
224
  }
192
225
 
193
226
  selectedLocationOld.value = value
194
- selectedLocation.value = value
195
- // netBridge.value = value
227
+ netBridge.value = value
196
228
  }
197
- const onSelectLocation = (network: UI_I_NetworkTableItem): void => {
229
+ const onSelectLocation = (networkLocal: UI_I_NetworkTableItem): void => {
198
230
  locationModalIsShow.value = false
199
231
 
200
- selectedLocationOld.value = network[valueProp]
201
- selectedLocation.value = network[valueProp]
232
+ selectedLocationOld.value = networkLocal[valueProp]
233
+ netBridge.value = networkLocal[valueProp]
202
234
 
203
235
  const hasNetwork = locationOptions.value.some(
204
- (option) => option.value === network[valueProp]
236
+ (option) => option.value === networkLocal[valueProp]
205
237
  )
206
238
  if (hasNetwork) {
207
239
  return
@@ -209,65 +241,17 @@ const onSelectLocation = (network: UI_I_NetworkTableItem): void => {
209
241
 
210
242
  locationOptions.value = [
211
243
  ...locationOptions.value.slice(0, -1),
212
- { text: network.name, value: network[valueProp] },
244
+ { text: networkLocal.name, value: networkLocal[valueProp] },
213
245
  locationOptions.value[locationOptions.value.length - 1],
214
246
  ]
215
247
  }
216
-
217
- const adapterType = ref<string>('rtl8139')
218
-
219
- const target = ref<string>('')
220
-
221
- const macAddress = ref<string>('')
222
248
  const macAddressType = ref<string>('automatic')
223
249
 
224
- watch(
225
- [selectedLocation, adapterType, macAddress, macAddressType, locationOptions],
226
- () => {
227
- const option = locationOptions.value.find(
228
- (option) => option.value === selectedLocation.value
229
- )
230
- if (!option) return
231
-
232
- emits('send-data', {
233
- network: option.text,
234
- // net_bridge: props.project === 'procurator' ? option.value : '',
235
- net_bridge: option.value,
236
- target: target.value,
237
- model: adapterType.value,
238
- mac: macAddress.value,
239
- boot_order: props.network.boot_order,
240
- })
241
- },
242
- { immediate: true }
243
- )
244
-
245
- // Добавляем данные для редактирования
246
- watch(
247
- () => props.network,
248
- (newValue) => {
249
- // if (props.type !== 'edit') return
250
- if (props.type !== 'edit' && props.type !== 'clone') return
251
-
252
- locationOptions.value = [
253
- { text: newValue.network, value: newValue[valueProp] },
254
- { text: `${localization.value.common.browse}...`, value: '' },
255
- ]
256
- selectedLocation.value = newValue[valueProp]
257
-
258
- adapterType.value = newValue.model
259
- target.value = newValue.target
260
- // Сбрасываем mac address при клонировании
261
- macAddress.value = props.type === 'clone' ? '' : newValue.mac
262
- },
263
- { immediate: true }
264
- )
265
-
266
250
  watch(
267
251
  isRunning,
268
252
  (newValue) => {
269
253
  if (newValue && props.type === 'new') {
270
- adapterType.value = 'virtio'
254
+ model.value = 'virtio'
271
255
  }
272
256
  },
273
257
  { immediate: true }
@@ -1,14 +1,14 @@
1
1
  <template>
2
2
  <common-vm-actions-common-customize-hardware-virtual-hardware-new-usb-controller-new
3
3
  v-if="isNewView"
4
- v-model:selected-usb-controller="selectedUsbController"
4
+ v-model="model"
5
5
  :is-edit="props.isEdit"
6
6
  :selected-usb-controller-text="selectedUsbControllerText"
7
7
  :usb-controller-options="usbControllerOptions"
8
8
  />
9
9
  <common-vm-actions-common-customize-hardware-virtual-hardware-new-usb-controller-old
10
10
  v-else
11
- v-model:selected-usb-controller="selectedUsbController"
11
+ v-model="model"
12
12
  :is-edit="props.isEdit"
13
13
  :selected-usb-controller-text="selectedUsbControllerText"
14
14
  :usb-controller-options="usbControllerOptions"
@@ -17,42 +17,31 @@
17
17
 
18
18
  <script setup lang="ts">
19
19
  import type { UI_I_OptionItem } from '~/components/atoms/lib/models/interfaces'
20
+ import type { UI_I_CreateVmData } from '~/components/common/vm/actions/common/lib/models/interfaces'
20
21
  import { usbControllerOptionsConfig } from '~/components/common/vm/actions/common/customizeHardware/virtualHardware/newUsbController/lib/config/options'
21
22
 
23
+ const model = defineModel<UI_I_CreateVmData['usb_controllers'][0]['type']>({ required: true })
24
+
22
25
  const props = withDefaults(
23
26
  defineProps<{
24
- usbController: string
25
27
  isEdit: boolean
26
28
  state?: string | number
27
29
  }>(),
28
30
  {
29
- usbController: 'usb2',
30
31
  state: undefined,
31
32
  }
32
33
  )
33
- const emits = defineEmits<{
34
- (event: 'send-data', value: string): void
35
- }>()
36
34
 
37
35
  const { $store }: any = useNuxtApp()
38
36
  const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
39
37
 
40
38
  const usbControllerOptions = ref<UI_I_OptionItem[]>(usbControllerOptionsConfig)
41
- const selectedUsbController = ref<string>(props.usbController)
42
39
  const selectedUsbControllerText = computed<string>(
43
40
  () =>
44
41
  usbControllerOptions.value.find(
45
- (option) => option.value === selectedUsbController.value
42
+ (option) => option.value === model.value
46
43
  )?.text || ''
47
44
  )
48
-
49
- watch(
50
- selectedUsbController,
51
- (newValue) => {
52
- emits('send-data', newValue)
53
- },
54
- { immediate: true }
55
- )
56
45
  </script>
57
46
 
58
47
  <style scoped lang="scss"></style>
@@ -21,7 +21,7 @@
21
21
  <ui-select
22
22
  v-else
23
23
  id="usb-controller-select"
24
- v-model="selectedUsbController"
24
+ v-model="model"
25
25
  :items="props.usbControllerOptions"
26
26
  :disabled="props.isEdit"
27
27
  width="auto"
@@ -33,10 +33,13 @@
33
33
  </template>
34
34
 
35
35
  <script setup lang="ts">
36
- import type { UI_I_OptionItem } from '~/components/atoms/lib/models/interfaces'
37
36
  import type { UI_I_Localization } from '~/lib/models/interfaces'
37
+ import type { UI_I_OptionItem } from '~/components/atoms/lib/models/interfaces'
38
+ import type { UI_I_CreateVmData } from '~/components/common/vm/actions/common/lib/models/interfaces'
38
39
 
39
- const selectedUsbController = defineModel<string>('selectedUsbController')
40
+ const model = defineModel<UI_I_CreateVmData['usb_controllers'][0]['type']>({
41
+ required: true,
42
+ })
40
43
 
41
44
  const props = defineProps<{
42
45
  isEdit: boolean
@@ -20,7 +20,7 @@
20
20
  <div v-else class="select">
21
21
  <select
22
22
  id="usb-controller-select"
23
- v-model="selectedUsbController"
23
+ v-model="model"
24
24
  :disabled="props.isEdit"
25
25
  data-id="usb-controller-select"
26
26
  @click.stop
@@ -40,10 +40,13 @@
40
40
  </template>
41
41
 
42
42
  <script setup lang="ts">
43
- import type { UI_I_OptionItem } from '~/components/atoms/lib/models/interfaces'
44
43
  import type { UI_I_Localization } from '~/lib/models/interfaces'
44
+ import type { UI_I_OptionItem } from '~/components/atoms/lib/models/interfaces'
45
+ import type { UI_I_CreateVmData } from '~/components/common/vm/actions/common/lib/models/interfaces'
45
46
 
46
- const selectedUsbController = defineModel<string>('selectedUsbController')
47
+ const model = defineModel<UI_I_CreateVmData['usb_controllers'][0]['type']>({
48
+ required: true,
49
+ })
47
50
 
48
51
  const props = defineProps<{
49
52
  isEdit: boolean