bfg-common 1.3.142 → 1.3.143

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 (65) hide show
  1. package/assets/localization/local_be.json +1 -7
  2. package/assets/localization/local_en.json +1 -7
  3. package/assets/localization/local_hy.json +1 -7
  4. package/assets/localization/local_kk.json +1 -7
  5. package/assets/localization/local_ru.json +1 -7
  6. package/assets/localization/local_zh.json +1 -7
  7. package/assets/scss/common/icons/icons-2.scss +222 -222
  8. package/components/atoms/switch/Switch.vue +107 -107
  9. package/components/atoms/table/dataGrid/DataGrid.vue +1576 -1576
  10. package/components/common/diagramMain/lib/models/interfaces.ts +0 -2
  11. package/components/common/monitor/advanced/Advanced.vue +9 -9
  12. package/components/common/monitor/advanced/GraphView.vue +2 -2
  13. package/components/common/monitor/advanced/lib/models/interfaces.ts +2 -1
  14. package/components/common/monitor/advanced/lib/models/types.ts +1 -1
  15. package/components/common/monitor/advanced/table/Table.vue +3 -3
  16. package/components/common/monitor/advanced/table/lib/config/performanceDatatable.ts +4 -4
  17. package/components/common/monitor/advanced/tools/Tools.vue +9 -9
  18. package/components/common/monitor/advanced/tools/chartOptionsModal/ChartOptionsModal.vue +7 -7
  19. package/components/common/monitor/advanced/tools/chartOptionsModal/actions/Actions.vue +2 -2
  20. package/components/common/monitor/advanced/tools/chartOptionsModal/actions/lib/utils/optionsActions.ts +2 -2
  21. package/components/common/monitor/advanced/tools/chartOptionsModal/actions/saveOptionsModal/SaveOptionsModal.vue +1 -1
  22. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/Counters.vue +3 -3
  23. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/table/Table.vue +6 -6
  24. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/table/lib/config/tableConfig.ts +4 -4
  25. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/table/lib/config/utils.ts +5 -5
  26. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/timespan/Timespan.vue +2 -2
  27. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/timespan/form/Form.vue +2 -2
  28. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/timespan/form/lib/config/dateForm.ts +2 -2
  29. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/timespan/object/Object.vue +6 -6
  30. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/timespan/object/lib/config/objectTable.ts +4 -4
  31. package/components/common/monitor/advanced/tools/chartOptionsModal/lib/models/interfaces.ts +1 -1
  32. package/components/common/monitor/advanced/tools/chartOptionsModal/metrics/Metrics.vue +2 -2
  33. package/components/common/monitor/advanced/tools/chartOptionsModal/metrics/lib/config/optionsMetrics.ts +40 -4
  34. package/components/common/monitor/advanced/tools/lib/config/advancedToolbar.ts +130 -125
  35. package/components/common/monitor/advanced/tools/lib/utils/countCores.ts +1 -1
  36. package/components/common/monitor/lib/models/interfaces.ts +2 -2
  37. package/components/common/monitor/overview/filters/Filters.vue +5 -5
  38. package/components/common/monitor/overview/filters/lib/config/filterOptions.ts +6 -5
  39. package/components/common/monitor/overview/filters/lib/models/interfaces.ts +2 -1
  40. package/components/common/monitor/overview/filters/lib/models/types.ts +13 -3
  41. package/components/common/pages/Tasks.vue +120 -120
  42. package/components/common/recursionTree/RecursionTree.vue +203 -203
  43. package/components/common/vm/actions/add/Add.vue +575 -575
  44. package/components/common/vm/actions/clone/Clone.vue +518 -518
  45. package/components/common/vm/actions/common/customizeHardware/CustomizeHardware.vue +269 -269
  46. package/components/common/vm/actions/common/customizeHardware/virtualHardware/VirtualHardware.vue +682 -682
  47. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/CpuModel.vue +220 -220
  48. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/NewPciDevice.vue +164 -164
  49. package/components/common/vm/actions/common/select/storage/lib/config/config.ts +166 -166
  50. package/components/common/vm/actions/editSettings/EditSettings.vue +313 -313
  51. package/composables/useAppVersion.ts +21 -21
  52. package/composables/useEnvLanguage.ts +20 -20
  53. package/composables/useLocal.ts +38 -38
  54. package/lib/utils/sendTask.ts +72 -72
  55. package/minify.js +146 -146
  56. package/package.json +1 -1
  57. package/public/spice-console/application/codec.js +257 -257
  58. package/public/spice-console/lib/rasterEngine.js +907 -907
  59. package/public/spice-console/network/spicechannel.js +369 -369
  60. package/store/main/lib/interfaces.ts +9 -9
  61. package/store/tasks/actions.ts +133 -133
  62. package/store/tasks/getters.ts +25 -25
  63. package/store/tasks/lib/models/interfaces.ts +18 -18
  64. package/store/tasks/mutations.ts +58 -58
  65. package/store/tasks/state.ts +16 -16
@@ -1,313 +1,313 @@
1
- <template>
2
- <div class="edit-vm">
3
- <atoms-modal
4
- test-id="edit-vm-wizard"
5
- :show="true"
6
- :title="localization.editSettings"
7
- :second-title="vmNameCash"
8
- :disabled-submit="loading"
9
- @submit="onUpdate"
10
- @hide="onHideModal"
11
- >
12
- <template #modalBody>
13
- <atoms-loader v-show="!vmSettings || loading" id="loader" />
14
- <div v-if="vmSettings" class="vm-context">
15
- <common-vm-actions-common-customize-hardware
16
- v-model:vm-name="vmName"
17
- v-model:guest-machine-type="vmSettings.guestMachineType"
18
- v-model:guest-os-family="vmSettings.guestOsFamily"
19
- v-model:guest-os-version="vmSettings.guestOsVersion"
20
- :storage="vmSettings.storage"
21
- :hard-disks-for-boot-options="virtualHardwareHardDisksLocal"
22
- :cd-dvd-drives-for-boot-options="virtualHardwareCdDvdDrivesLocal"
23
- :networks-for-boot-options="virtualHardwareNetworksLocal"
24
- :cd-dvd-drives="vmSettings.cdDvdDrives"
25
- :hard-disks="vmSettings.hardDisks"
26
- :networks="vmSettings.networks"
27
- :customize-hardware-submit="0"
28
- :max-cpus="vmSettings.maxCpus"
29
- :max-memory="vmSettings.maxMemory"
30
- :cpu-models="vmSettings.cpuModels"
31
- :cpu="vmSettings.cpu"
32
- :memory="vmSettings.memory"
33
- :video-card="vmSettings.videoCard"
34
- :usb-controller="vmSettings.usbController"
35
- :pci-devices="vmSettings.pciDevices"
36
- :selected-nav-item="selectedNavItem"
37
- :hard-disks-for-edit="vmSettings.hardDisks"
38
- :options="vmSettings.options"
39
- :nodes="props.nodes"
40
- :files="props.files"
41
- :networks-table="props.networksTable"
42
- :error-validation-fields="props.errorValidationFields"
43
- :vm-cpu-help-text-second="props.vmCpuHelpTextSecond"
44
- :passthrough-devices="props.passthroughDevices"
45
- :state="props.state"
46
- :get-datastore-table-func="props.getDatastoreTableFunc"
47
- :datastore="props.datastore"
48
- is-edit
49
- @get-storage="emits('get-storage', $event)"
50
- @get-folders-or-files="emits('get-folders-or-files', $event)"
51
- @get-active-device-child="emits('get-active-device-child', $event)"
52
- @show-datastore-child="emits('show-datastore-child', $event)"
53
- @get-networks-table="emits('get-networks-table', $event)"
54
- @get-pci-devices="emits('get-pci-devices')"
55
- @change-boot-order="onChangeBootOrder"
56
- @send-data="onChangeCustomizeHardware"
57
- />
58
- </div>
59
- </template>
60
- </atoms-modal>
61
- </div>
62
- </template>
63
-
64
- <script setup lang="ts">
65
- import { UI_I_FileTreeNode } from '~/components/lib/models/interfaces'
66
- import { UI_I_NetworkTableItem } from '~/lib/models/store/network/interfaces'
67
- import {
68
- UI_I_EditVmPayload,
69
- UI_I_PciDevice,
70
- } from '~/lib/models/store/vm/interfaces'
71
- import { UI_I_Localization } from '~/lib/models/interfaces'
72
- import { UI_I_SendDataCustomizeHardware } from '~/components/common/vm/actions/common/customizeHardware/lib/models/interfaces'
73
- import {
74
- UI_I_SendDataCpu,
75
- UI_I_SendDataMemory,
76
- UI_I_SendDataNewCdDvdDrive,
77
- UI_I_SendDataNewHardDisk,
78
- UI_I_SendDataNewNetwork,
79
- } from '~/components/common/vm/actions/common/customizeHardware/virtualHardware/lib/models/interfaces'
80
- import { UI_T_SelectedNavItem } from '~/components/common/vm/actions/common/lib/models/types'
81
- import { UI_I_ErrorValidationField } from '~/lib/models/store/interfaces'
82
- import { UI_I_TablePayload } from '~/lib/models/table/interfaces'
83
- import { UI_I_VmSettings } from '~/lib/models/store/vm/interfaces'
84
- import {
85
- UI_I_DatastoreTableItem,
86
- UI_I_FolderOrFileTreePayload,
87
- } from '~/lib/models/store/storage/interfaces'
88
- import { UI_T_ChangeBootOrder } from '~/components/common/vm/actions/lib/models/types'
89
- import { UI_T_EditVmFinishFunc } from '~/components/common/vm/actions/editSettings/lib/models/types'
90
-
91
- const props = defineProps<{
92
- loading: boolean
93
- vmSettings: UI_I_VmSettings | null
94
- nodes: UI_I_FileTreeNode[]
95
- files: UI_I_FileTreeNode[]
96
- networksTable: UI_I_NetworkTableItem[]
97
- errorValidationFields: UI_I_ErrorValidationField<string>[]
98
- vmCpuHelpTextSecond: string
99
- vmId: string
100
- datastore: UI_I_DatastoreTableItem[]
101
- validateSendDataFunc: UI_T_EditVmFinishFunc
102
- getDatastoreTableFunc?: (payload: UI_I_TablePayload) => Promise<void>
103
- state?: string | number
104
- passthroughDevices?: UI_I_PciDevice[]
105
- }>()
106
-
107
- const emits = defineEmits<{
108
- (event: 'hide'): void
109
- (event: 'update-vm', value: UI_I_EditVmPayload): void
110
- (event: 'get-storage', value: UI_I_TablePayload): void
111
- (event: 'get-folders-or-files', value: UI_I_FolderOrFileTreePayload): void
112
- (event: 'get-active-device-child', value: UI_I_FileTreeNode): void
113
- (event: 'show-datastore-child', value: UI_I_FileTreeNode): void
114
- (event: 'get-networks-table', value: UI_I_TablePayload): void
115
- (event: 'get-pci-devices'): void
116
- }>()
117
-
118
- const localization = computed<UI_I_Localization>(() => useLocal())
119
-
120
- const selectedNavItem = ref<UI_T_SelectedNavItem>(0)
121
-
122
- const loading = ref<boolean>(false)
123
- watch(
124
- () => props.loading,
125
- (value) => {
126
- loading.value = value
127
- },
128
- { immediate: true }
129
- )
130
-
131
- const vmSettings = computed<UI_I_VmSettings | null>(() => props.vmSettings)
132
-
133
- const vmName = ref<string>(vmSettings.value?.name || '')
134
- const vmNameCash = ref<string>(vmSettings.value?.name || '')
135
- watch(vmSettings, (newValue) => {
136
- vmName.value = newValue?.name || ''
137
- vmNameCash.value = newValue?.name || ''
138
- })
139
-
140
- const virtualHardwareHardDisks = ref<UI_I_SendDataNewHardDisk[] | null>(null)
141
- const virtualHardwareCdDvdDrives = ref<UI_I_SendDataNewCdDvdDrive[] | null>(
142
- null
143
- )
144
- const virtualHardwareNetworks = ref<UI_I_SendDataNewNetwork[] | null>(null)
145
- const onChangeBootOrder = (data: UI_T_ChangeBootOrder): void => {
146
- virtualHardwareHardDisks.value = data[0]
147
- virtualHardwareCdDvdDrives.value = data[1]
148
- virtualHardwareNetworks.value = data[2]
149
- }
150
-
151
- const customizeHardware = ref<UI_I_SendDataCustomizeHardware | null>(null)
152
- const onChangeCustomizeHardware = (
153
- data: UI_I_SendDataCustomizeHardware
154
- ): void => {
155
- customizeHardware.value = data
156
- }
157
- const onHideModal = (): void => {
158
- emits('hide')
159
- }
160
- const onUpdate = (): void => {
161
- validateSendData()
162
- }
163
-
164
- const virtualHardwareHardDisksLocal = computed<
165
- UI_I_SendDataNewHardDisk[] | null
166
- >(() => customizeHardware.value?.virtualHardware?.hardDisks || null)
167
- const virtualHardwareNetworksLocal = computed<UI_I_SendDataNewNetwork[] | null>(
168
- () => customizeHardware.value?.virtualHardware?.networks || null
169
- )
170
- const virtualHardwareCdDvdDrivesLocal = computed<
171
- UI_I_SendDataNewCdDvdDrive[] | null
172
- >(() => customizeHardware.value?.virtualHardware?.cdDvdDrives || null)
173
-
174
- const virtualHardwareCpu = computed<UI_I_SendDataCpu | null>(
175
- () => customizeHardware.value?.virtualHardware?.cpu || null
176
- )
177
- const virtualHardwareMemory = computed<UI_I_SendDataMemory | null>(
178
- () => customizeHardware.value?.virtualHardware?.memory || null
179
- )
180
-
181
- const validateSendData = async (): Promise<void> => {
182
- loading.value = true
183
- props
184
- .validateSendDataFunc(
185
- vmSettings.value,
186
- virtualHardwareCpu.value,
187
- virtualHardwareMemory.value,
188
- customizeHardware.value,
189
- virtualHardwareNetworks.value,
190
- virtualHardwareHardDisks.value,
191
- virtualHardwareCdDvdDrives.value,
192
- vmName.value,
193
- localization.value,
194
- props.vmId
195
- )
196
- .then((data) => {
197
- loading.value = false
198
-
199
- !data && onHideModal()
200
- })
201
- }
202
- </script>
203
-
204
- <style scoped lang="scss">
205
- .vm-context {
206
- padding: 16px 15px 10px 10px;
207
- height: 100%;
208
- display: flex;
209
- flex-direction: column;
210
-
211
- .context-title-wrap {
212
- padding-bottom: 3px;
213
- border-bottom: 1px solid #a6a6a6;
214
-
215
- h4 {
216
- font-weight: 700;
217
- font-size: 13px;
218
- color: var(--vm-context-title);
219
- }
220
- p {
221
- font-weight: 400;
222
- font-size: 13px;
223
- color: var(--vm-context-sub-title);
224
- }
225
- }
226
-
227
- .finish-block {
228
- padding: 18px 24px 24px 24px;
229
-
230
- .add-hosts-ready-to-complete-mt-12 {
231
- margin-top: 12px;
232
-
233
- .add-hosts-ready-to-complete-bold {
234
- line-height: 18px;
235
- font-weight: 700;
236
- }
237
- }
238
- }
239
-
240
- .vm-hardware-version {
241
- align-self: flex-end;
242
- margin-top: auto;
243
- }
244
- }
245
-
246
- :deep(.modal-dialog) {
247
- width: 840px;
248
- }
249
- :deep(.modal .modal-dialog .modal-content .modal-footer) {
250
- flex: unset;
251
- height: unset;
252
- min-height: unset;
253
- }
254
- :deep(.wizard-modal-titlebar h3) {
255
- color: #000;
256
- font-size: 24px;
257
- font-weight: 200;
258
- line-height: 27px;
259
- margin: 0;
260
- padding: 0;
261
- }
262
- :deep(.clr-wizard-stepnav-item) {
263
- padding-left: 0;
264
- }
265
- :deep(.clr-wizard-stepnav
266
- .clr-wizard-stepnav-item
267
- button
268
- .clr-wizard-stepnav-link-title) {
269
- width: 189px;
270
- font-weight: 700;
271
- font-size: 13px;
272
- }
273
-
274
- #vm-wizard-notification {
275
- h3 {
276
- color: var(--global-font-color7);
277
- margin-top: 6px;
278
- }
279
- p {
280
- color: var(--global-font-color6);
281
- line-height: 16px;
282
- }
283
- }
284
-
285
- .power-on-by-default-wrap {
286
- display: flex;
287
- align-items: center;
288
-
289
- input {
290
- margin-right: 6px;
291
- }
292
- }
293
-
294
- .loading {
295
- :deep(.spinner) {
296
- width: 45px;
297
- height: 45px;
298
- min-width: 45px;
299
- min-height: 45px;
300
- }
301
- }
302
- </style>
303
-
304
- <style>
305
- :root {
306
- --vm-context-title: #333;
307
- --vm-context-sub-title: #000;
308
- }
309
- :root.dark-theme {
310
- --vm-context-title: #adbbc4;
311
- --vm-context-sub-title: #adbbc4;
312
- }
313
- </style>
1
+ <template>
2
+ <div class="edit-vm">
3
+ <atoms-modal
4
+ test-id="edit-vm-wizard"
5
+ :show="true"
6
+ :title="localization.editSettings"
7
+ :second-title="vmNameCash"
8
+ :disabled-submit="loading"
9
+ @submit="onUpdate"
10
+ @hide="onHideModal"
11
+ >
12
+ <template #modalBody>
13
+ <atoms-loader v-show="!vmSettings || loading" id="loader" />
14
+ <div v-if="vmSettings" class="vm-context">
15
+ <common-vm-actions-common-customize-hardware
16
+ v-model:vm-name="vmName"
17
+ v-model:guest-machine-type="vmSettings.guestMachineType"
18
+ v-model:guest-os-family="vmSettings.guestOsFamily"
19
+ v-model:guest-os-version="vmSettings.guestOsVersion"
20
+ :storage="vmSettings.storage"
21
+ :hard-disks-for-boot-options="virtualHardwareHardDisksLocal"
22
+ :cd-dvd-drives-for-boot-options="virtualHardwareCdDvdDrivesLocal"
23
+ :networks-for-boot-options="virtualHardwareNetworksLocal"
24
+ :cd-dvd-drives="vmSettings.cdDvdDrives"
25
+ :hard-disks="vmSettings.hardDisks"
26
+ :networks="vmSettings.networks"
27
+ :customize-hardware-submit="0"
28
+ :max-cpus="vmSettings.maxCpus"
29
+ :max-memory="vmSettings.maxMemory"
30
+ :cpu-models="vmSettings.cpuModels"
31
+ :cpu="vmSettings.cpu"
32
+ :memory="vmSettings.memory"
33
+ :video-card="vmSettings.videoCard"
34
+ :usb-controller="vmSettings.usbController"
35
+ :pci-devices="vmSettings.pciDevices"
36
+ :selected-nav-item="selectedNavItem"
37
+ :hard-disks-for-edit="vmSettings.hardDisks"
38
+ :options="vmSettings.options"
39
+ :nodes="props.nodes"
40
+ :files="props.files"
41
+ :networks-table="props.networksTable"
42
+ :error-validation-fields="props.errorValidationFields"
43
+ :vm-cpu-help-text-second="props.vmCpuHelpTextSecond"
44
+ :passthrough-devices="props.passthroughDevices"
45
+ :state="props.state"
46
+ :get-datastore-table-func="props.getDatastoreTableFunc"
47
+ :datastore="props.datastore"
48
+ is-edit
49
+ @get-storage="emits('get-storage', $event)"
50
+ @get-folders-or-files="emits('get-folders-or-files', $event)"
51
+ @get-active-device-child="emits('get-active-device-child', $event)"
52
+ @show-datastore-child="emits('show-datastore-child', $event)"
53
+ @get-networks-table="emits('get-networks-table', $event)"
54
+ @get-pci-devices="emits('get-pci-devices')"
55
+ @change-boot-order="onChangeBootOrder"
56
+ @send-data="onChangeCustomizeHardware"
57
+ />
58
+ </div>
59
+ </template>
60
+ </atoms-modal>
61
+ </div>
62
+ </template>
63
+
64
+ <script setup lang="ts">
65
+ import { UI_I_FileTreeNode } from '~/components/lib/models/interfaces'
66
+ import { UI_I_NetworkTableItem } from '~/lib/models/store/network/interfaces'
67
+ import {
68
+ UI_I_EditVmPayload,
69
+ UI_I_PciDevice,
70
+ } from '~/lib/models/store/vm/interfaces'
71
+ import { UI_I_Localization } from '~/lib/models/interfaces'
72
+ import { UI_I_SendDataCustomizeHardware } from '~/components/common/vm/actions/common/customizeHardware/lib/models/interfaces'
73
+ import {
74
+ UI_I_SendDataCpu,
75
+ UI_I_SendDataMemory,
76
+ UI_I_SendDataNewCdDvdDrive,
77
+ UI_I_SendDataNewHardDisk,
78
+ UI_I_SendDataNewNetwork,
79
+ } from '~/components/common/vm/actions/common/customizeHardware/virtualHardware/lib/models/interfaces'
80
+ import { UI_T_SelectedNavItem } from '~/components/common/vm/actions/common/lib/models/types'
81
+ import { UI_I_ErrorValidationField } from '~/lib/models/store/interfaces'
82
+ import { UI_I_TablePayload } from '~/lib/models/table/interfaces'
83
+ import { UI_I_VmSettings } from '~/lib/models/store/vm/interfaces'
84
+ import {
85
+ UI_I_DatastoreTableItem,
86
+ UI_I_FolderOrFileTreePayload,
87
+ } from '~/lib/models/store/storage/interfaces'
88
+ import { UI_T_ChangeBootOrder } from '~/components/common/vm/actions/lib/models/types'
89
+ import { UI_T_EditVmFinishFunc } from '~/components/common/vm/actions/editSettings/lib/models/types'
90
+
91
+ const props = defineProps<{
92
+ loading: boolean
93
+ vmSettings: UI_I_VmSettings | null
94
+ nodes: UI_I_FileTreeNode[]
95
+ files: UI_I_FileTreeNode[]
96
+ networksTable: UI_I_NetworkTableItem[]
97
+ errorValidationFields: UI_I_ErrorValidationField<string>[]
98
+ vmCpuHelpTextSecond: string
99
+ vmId: string
100
+ datastore: UI_I_DatastoreTableItem[]
101
+ validateSendDataFunc: UI_T_EditVmFinishFunc
102
+ getDatastoreTableFunc?: (payload: UI_I_TablePayload) => Promise<void>
103
+ state?: string | number
104
+ passthroughDevices?: UI_I_PciDevice[]
105
+ }>()
106
+
107
+ const emits = defineEmits<{
108
+ (event: 'hide'): void
109
+ (event: 'update-vm', value: UI_I_EditVmPayload): void
110
+ (event: 'get-storage', value: UI_I_TablePayload): void
111
+ (event: 'get-folders-or-files', value: UI_I_FolderOrFileTreePayload): void
112
+ (event: 'get-active-device-child', value: UI_I_FileTreeNode): void
113
+ (event: 'show-datastore-child', value: UI_I_FileTreeNode): void
114
+ (event: 'get-networks-table', value: UI_I_TablePayload): void
115
+ (event: 'get-pci-devices'): void
116
+ }>()
117
+
118
+ const localization = computed<UI_I_Localization>(() => useLocal())
119
+
120
+ const selectedNavItem = ref<UI_T_SelectedNavItem>(0)
121
+
122
+ const loading = ref<boolean>(false)
123
+ watch(
124
+ () => props.loading,
125
+ (value) => {
126
+ loading.value = value
127
+ },
128
+ { immediate: true }
129
+ )
130
+
131
+ const vmSettings = computed<UI_I_VmSettings | null>(() => props.vmSettings)
132
+
133
+ const vmName = ref<string>(vmSettings.value?.name || '')
134
+ const vmNameCash = ref<string>(vmSettings.value?.name || '')
135
+ watch(vmSettings, (newValue) => {
136
+ vmName.value = newValue?.name || ''
137
+ vmNameCash.value = newValue?.name || ''
138
+ })
139
+
140
+ const virtualHardwareHardDisks = ref<UI_I_SendDataNewHardDisk[] | null>(null)
141
+ const virtualHardwareCdDvdDrives = ref<UI_I_SendDataNewCdDvdDrive[] | null>(
142
+ null
143
+ )
144
+ const virtualHardwareNetworks = ref<UI_I_SendDataNewNetwork[] | null>(null)
145
+ const onChangeBootOrder = (data: UI_T_ChangeBootOrder): void => {
146
+ virtualHardwareHardDisks.value = data[0]
147
+ virtualHardwareCdDvdDrives.value = data[1]
148
+ virtualHardwareNetworks.value = data[2]
149
+ }
150
+
151
+ const customizeHardware = ref<UI_I_SendDataCustomizeHardware | null>(null)
152
+ const onChangeCustomizeHardware = (
153
+ data: UI_I_SendDataCustomizeHardware
154
+ ): void => {
155
+ customizeHardware.value = data
156
+ }
157
+ const onHideModal = (): void => {
158
+ emits('hide')
159
+ }
160
+ const onUpdate = (): void => {
161
+ validateSendData()
162
+ }
163
+
164
+ const virtualHardwareHardDisksLocal = computed<
165
+ UI_I_SendDataNewHardDisk[] | null
166
+ >(() => customizeHardware.value?.virtualHardware?.hardDisks || null)
167
+ const virtualHardwareNetworksLocal = computed<UI_I_SendDataNewNetwork[] | null>(
168
+ () => customizeHardware.value?.virtualHardware?.networks || null
169
+ )
170
+ const virtualHardwareCdDvdDrivesLocal = computed<
171
+ UI_I_SendDataNewCdDvdDrive[] | null
172
+ >(() => customizeHardware.value?.virtualHardware?.cdDvdDrives || null)
173
+
174
+ const virtualHardwareCpu = computed<UI_I_SendDataCpu | null>(
175
+ () => customizeHardware.value?.virtualHardware?.cpu || null
176
+ )
177
+ const virtualHardwareMemory = computed<UI_I_SendDataMemory | null>(
178
+ () => customizeHardware.value?.virtualHardware?.memory || null
179
+ )
180
+
181
+ const validateSendData = async (): Promise<void> => {
182
+ loading.value = true
183
+ props
184
+ .validateSendDataFunc(
185
+ vmSettings.value,
186
+ virtualHardwareCpu.value,
187
+ virtualHardwareMemory.value,
188
+ customizeHardware.value,
189
+ virtualHardwareNetworks.value,
190
+ virtualHardwareHardDisks.value,
191
+ virtualHardwareCdDvdDrives.value,
192
+ vmName.value,
193
+ localization.value,
194
+ props.vmId
195
+ )
196
+ .then((data) => {
197
+ loading.value = false
198
+
199
+ !data && onHideModal()
200
+ })
201
+ }
202
+ </script>
203
+
204
+ <style scoped lang="scss">
205
+ .vm-context {
206
+ padding: 16px 15px 10px 10px;
207
+ height: 100%;
208
+ display: flex;
209
+ flex-direction: column;
210
+
211
+ .context-title-wrap {
212
+ padding-bottom: 3px;
213
+ border-bottom: 1px solid #a6a6a6;
214
+
215
+ h4 {
216
+ font-weight: 700;
217
+ font-size: 13px;
218
+ color: var(--vm-context-title);
219
+ }
220
+ p {
221
+ font-weight: 400;
222
+ font-size: 13px;
223
+ color: var(--vm-context-sub-title);
224
+ }
225
+ }
226
+
227
+ .finish-block {
228
+ padding: 18px 24px 24px 24px;
229
+
230
+ .add-hosts-ready-to-complete-mt-12 {
231
+ margin-top: 12px;
232
+
233
+ .add-hosts-ready-to-complete-bold {
234
+ line-height: 18px;
235
+ font-weight: 700;
236
+ }
237
+ }
238
+ }
239
+
240
+ .vm-hardware-version {
241
+ align-self: flex-end;
242
+ margin-top: auto;
243
+ }
244
+ }
245
+
246
+ :deep(.modal-dialog) {
247
+ width: 840px;
248
+ }
249
+ :deep(.modal .modal-dialog .modal-content .modal-footer) {
250
+ flex: unset;
251
+ height: unset;
252
+ min-height: unset;
253
+ }
254
+ :deep(.wizard-modal-titlebar h3) {
255
+ color: #000;
256
+ font-size: 24px;
257
+ font-weight: 200;
258
+ line-height: 27px;
259
+ margin: 0;
260
+ padding: 0;
261
+ }
262
+ :deep(.clr-wizard-stepnav-item) {
263
+ padding-left: 0;
264
+ }
265
+ :deep(.clr-wizard-stepnav
266
+ .clr-wizard-stepnav-item
267
+ button
268
+ .clr-wizard-stepnav-link-title) {
269
+ width: 189px;
270
+ font-weight: 700;
271
+ font-size: 13px;
272
+ }
273
+
274
+ #vm-wizard-notification {
275
+ h3 {
276
+ color: var(--global-font-color7);
277
+ margin-top: 6px;
278
+ }
279
+ p {
280
+ color: var(--global-font-color6);
281
+ line-height: 16px;
282
+ }
283
+ }
284
+
285
+ .power-on-by-default-wrap {
286
+ display: flex;
287
+ align-items: center;
288
+
289
+ input {
290
+ margin-right: 6px;
291
+ }
292
+ }
293
+
294
+ .loading {
295
+ :deep(.spinner) {
296
+ width: 45px;
297
+ height: 45px;
298
+ min-width: 45px;
299
+ min-height: 45px;
300
+ }
301
+ }
302
+ </style>
303
+
304
+ <style>
305
+ :root {
306
+ --vm-context-title: #333;
307
+ --vm-context-sub-title: #000;
308
+ }
309
+ :root.dark-theme {
310
+ --vm-context-title: #adbbc4;
311
+ --vm-context-sub-title: #adbbc4;
312
+ }
313
+ </style>
@@ -1,21 +1,21 @@
1
- import type { UI_I_UseAppVersionReturnType } from '~/lib/models/composables/useAppVersion/interfaces'
2
-
3
- export function useAppVersion(): UI_I_UseAppVersionReturnType {
4
- const config = useRuntimeConfig()
5
- const version = config.public.APP_VERSION
6
-
7
- const regexHasDot = /\./
8
- const regexHasDotAndB = /\..*b/
9
- const regexHasDotAndD = /\..*d/
10
-
11
- const isBeta = regexHasDotAndB.test(version)
12
- const isDev =
13
- regexHasDotAndD.test(version) ||
14
- (!regexHasDot.test(version) && version.length < 8)
15
-
16
- return {
17
- version,
18
- isBeta,
19
- isDev,
20
- }
21
- }
1
+ import type { UI_I_UseAppVersionReturnType } from '~/lib/models/composables/useAppVersion/interfaces'
2
+
3
+ export function useAppVersion(): UI_I_UseAppVersionReturnType {
4
+ const config = useRuntimeConfig()
5
+ const version = config.public.APP_VERSION
6
+
7
+ const regexHasDot = /\./
8
+ const regexHasDotAndB = /\..*b/
9
+ const regexHasDotAndD = /\..*d/
10
+
11
+ const isBeta = regexHasDotAndB.test(version)
12
+ const isDev =
13
+ regexHasDotAndD.test(version) ||
14
+ (!regexHasDot.test(version) && version.length < 8)
15
+
16
+ return {
17
+ version,
18
+ isBeta,
19
+ isDev,
20
+ }
21
+ }