bfg-common 1.5.558 → 1.5.559

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 (173) 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 +26 -5
  7. package/assets/localization/local_en.json +26 -5
  8. package/assets/localization/local_hy.json +26 -5
  9. package/assets/localization/local_kk.json +26 -5
  10. package/assets/localization/local_ru.json +26 -5
  11. package/assets/localization/local_zh.json +27 -6
  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/Add.vue +251 -251
  20. package/components/common/backup/storage/actions/add/lib/utils.ts +51 -51
  21. package/components/common/browse/blocks/contents/filesNew/Skeleton.vue +18 -18
  22. package/components/common/diagramMain/modals/lib/config/portModal.ts +251 -251
  23. package/components/common/diagramMain/modals/lib/config/vCenterModal.ts +48 -48
  24. package/components/common/diagramMain/port/Port.vue +580 -580
  25. package/components/common/layout/theHeader/helpMenu/About.vue +79 -79
  26. package/components/common/layout/theHeader/helpMenu/aboutOld/AboutOld.vue +79 -79
  27. package/components/common/modals/confirmByInput/ConfirmByInput.vue +9 -1
  28. package/components/common/modals/confirmByInput/ConfirmByInputNew.vue +7 -2
  29. package/components/common/pages/backups/DetailView.vue +52 -52
  30. package/components/common/pages/backups/lib/models/interfaces.ts +36 -36
  31. package/components/common/pages/backups/modals/Modals.vue +243 -243
  32. package/components/common/pages/backups/modals/createBackup/New.vue +8 -2
  33. package/components/common/pages/backups/modals/createBackup/configuration/maxBandwidth/lib/config/options.ts +6 -6
  34. package/components/common/pages/backups/modals/createBackup/lib/config/readyToCompleteOptions.ts +69 -69
  35. package/components/common/pages/backups/modals/lib/config/restore.ts +115 -115
  36. package/components/common/pages/backups/modals/lib/models/interfaces.ts +186 -186
  37. package/components/common/pages/backups/modals/restore/Restore.vue +9 -5
  38. package/components/common/pages/backups/modals/restore/RestoreNew.vue +13 -3
  39. package/components/common/pages/backups/modals/restore/RestoreOld.vue +6 -18
  40. package/components/common/pages/backups/modals/restore/name/lib/models/interfaces.ts +6 -6
  41. package/components/common/pages/home/lib/models/interfaces.ts +48 -48
  42. package/components/common/pages/home/widgets/hosts/Hosts.vue +27 -27
  43. package/components/common/pages/home/widgets/hosts/lib/config/items.ts +23 -23
  44. package/components/common/pages/home/widgets/vms/VmsOld.vue +35 -35
  45. package/components/common/pages/home/widgets/vms/lib/config/items.ts +19 -19
  46. package/components/common/pages/scheduledTasks/lib/utils/utils.ts +84 -84
  47. package/components/common/readyToComplete/ReadyToComplete.vue +17 -17
  48. package/components/common/select/radio/RadioGroup.vue +137 -137
  49. package/components/common/spiceConsole/Drawer.vue +420 -420
  50. package/components/common/spiceConsole/SpiceConsole.vue +184 -184
  51. package/components/common/spiceConsole/lib/models/interfaces.ts +5 -5
  52. package/components/common/tools/Actions.vue +207 -207
  53. package/components/common/treeView/TreeView.vue +52 -52
  54. package/components/common/vm/actions/add/Add.vue +119 -46
  55. package/components/common/vm/actions/add/New.vue +54 -16
  56. package/components/common/vm/actions/add/Old.vue +55 -16
  57. package/components/common/vm/actions/add/lib/config/steps.ts +347 -347
  58. package/components/common/vm/actions/clone/Clone.vue +809 -809
  59. package/components/common/vm/actions/clone/new/New.vue +457 -457
  60. package/components/common/vm/actions/clone/old/Old.vue +378 -378
  61. package/components/common/vm/actions/common/customizeHardware/CustomizeHardware.vue +81 -14
  62. package/components/common/vm/actions/common/customizeHardware/CustomizeHardwareNew.vue +56 -7
  63. package/components/common/vm/actions/common/customizeHardware/CustomizeHardwareOld.vue +56 -8
  64. package/components/common/vm/actions/common/customizeHardware/virtualHardware/VirtualHardware.vue +142 -73
  65. package/components/common/vm/actions/common/customizeHardware/virtualHardware/VirtualHardwareNew.vue +54 -60
  66. package/components/common/vm/actions/common/customizeHardware/virtualHardware/VirtualHardwareOld.vue +55 -61
  67. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/Cpu.vue +159 -139
  68. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/CpuNew.vue +15 -8
  69. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/CpuOld.vue +13 -8
  70. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/shares/Shares.vue +140 -140
  71. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/shares/lib/config/options.ts +28 -28
  72. package/components/common/vm/actions/common/customizeHardware/virtualHardware/memory/Memory.vue +75 -62
  73. package/components/common/vm/actions/common/customizeHardware/virtualHardware/memory/MemoryNew.vue +158 -158
  74. package/components/common/vm/actions/common/customizeHardware/virtualHardware/memory/MemoryOld.vue +155 -155
  75. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/NewHardDisk.vue +427 -427
  76. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/location/Location.vue +154 -154
  77. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/NewNetwork.vue +74 -58
  78. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/macAddress/MacAddress.vue +119 -119
  79. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIo.vue +31 -31
  80. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newUsbController/NewUsbController.vue +17 -6
  81. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newUsbController/NewUsbControllerNew.vue +3 -6
  82. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newUsbController/NewUsbControllerOld.vue +3 -6
  83. package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/Other.vue +16 -16
  84. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/VideoCard.vue +39 -17
  85. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/VideoCardNew.vue +5 -6
  86. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/VideoCardOld.vue +5 -6
  87. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/lib/config/options.ts +4 -4
  88. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/numberDisplays/NumberDisplays.vue +53 -53
  89. package/components/common/vm/actions/common/customizeHardware/vmoptions/Vmoptions.vue +93 -6
  90. package/components/common/vm/actions/common/customizeHardware/vmoptions/VmoptionsNew.vue +62 -8
  91. package/components/common/vm/actions/common/customizeHardware/vmoptions/VmoptionsOld.vue +60 -8
  92. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/BootOptions.vue +69 -5
  93. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/BootOptionsNew.vue +32 -12
  94. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/BootOptionsOld.vue +33 -12
  95. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/delay/Delay.vue +32 -32
  96. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/firmware/Firmware.vue +60 -60
  97. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/Order.vue +132 -114
  98. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/OrderNew.vue +6 -41
  99. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/OrderOld.vue +6 -44
  100. package/components/common/vm/actions/common/customizeHardware/vmoptions/generalOptions/GeneralOptions.vue +23 -8
  101. package/components/common/vm/actions/common/customizeHardware/vmoptions/generalOptions/GeneralOptionsNew.vue +31 -21
  102. package/components/common/vm/actions/common/customizeHardware/vmoptions/generalOptions/GeneralOptionsOld.vue +34 -26
  103. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/New.vue +34 -28
  104. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/Old.vue +30 -24
  105. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/RemoteConsoleOptions.vue +112 -8
  106. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/keymap/Keymap.vue +3 -3
  107. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/keymap/{New.vue → KeymapNew.vue} +6 -6
  108. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/keymap/{Old.vue → KeymapOld.vue} +5 -5
  109. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/password/Password.vue +7 -6
  110. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirection.vue +28 -28
  111. package/components/common/vm/actions/common/customizeHardware/vmoptions/tools/Tools.vue +38 -4
  112. package/components/common/vm/actions/common/customizeHardware/vmoptions/tools/ToolsNew.vue +26 -7
  113. package/components/common/vm/actions/common/customizeHardware/vmoptions/tools/ToolsOld.vue +50 -24
  114. package/components/common/vm/actions/common/lib/models/interfaces.ts +25 -57
  115. package/components/common/vm/actions/common/select/compatibility/Old.vue +107 -107
  116. package/components/common/vm/actions/common/select/createType/CreateType.vue +38 -38
  117. package/components/common/vm/actions/common/select/createType/lib/models/interfaces.ts +5 -5
  118. package/components/common/vm/actions/common/select/os/Old.vue +152 -152
  119. package/components/common/vm/actions/common/select/os/Os.vue +139 -139
  120. package/components/common/vm/actions/common/select/storage/Old.vue +125 -125
  121. package/components/common/vm/actions/common/select/storage/Storage.vue +178 -178
  122. package/components/common/vm/actions/common/select/storage/new/New.vue +311 -311
  123. package/components/common/vm/actions/common/select/storage/new/lib/models/interfaces.ts +5 -5
  124. package/components/common/vm/actions/common/select/storage/new/lib/utils/utils.ts +21 -21
  125. package/components/common/vm/actions/common/select/template/old/Old.vue +50 -50
  126. package/components/common/vm/actions/editSettings/EditSettings.vue +35 -21
  127. package/components/common/vm/actions/editSettings/EditSettingsOld.vue +41 -14
  128. package/components/common/vm/actions/editSettings/new/New.vue +41 -14
  129. package/components/common/vm/actions/editSettings/new/Skeleton.vue +88 -88
  130. package/components/common/vm/actions/lib/models/interfaces.ts +29 -4
  131. package/components/common/vm/actions/lib/utils.ts +32 -37
  132. package/components/common/vm/actions/register/Register.vue +352 -352
  133. package/components/common/vm/actions/register/lib/config/steps.ts +86 -86
  134. package/components/common/wizards/common/compatibility/Compatibility.vue +35 -35
  135. package/components/common/wizards/common/compatibility/New.vue +99 -99
  136. package/components/common/wizards/common/compatibility/Old.vue +53 -53
  137. package/components/common/wizards/common/steps/computeResource/ComputeResource.vue +86 -86
  138. package/components/common/wizards/common/steps/computeResource/New.vue +93 -93
  139. package/components/common/wizards/common/steps/computeResource/Old.vue +103 -103
  140. package/components/common/wizards/common/steps/name/Name.vue +178 -178
  141. package/components/common/wizards/common/steps/name/New.vue +221 -221
  142. package/components/common/wizards/common/steps/name/Old.vue +121 -121
  143. package/components/common/wizards/common/steps/name/lib/models/interfaces.ts +4 -4
  144. package/components/common/wizards/common/steps/name/location/Location.vue +85 -85
  145. package/components/common/wizards/common/steps/name/location/New.vue +40 -40
  146. package/components/common/wizards/datastore/add/Add.vue +228 -228
  147. package/components/common/wizards/datastore/add/lib/utils.ts +85 -85
  148. package/components/common/wizards/datastore/add/steps/typeMode/lib/config/typeOptions.ts +43 -43
  149. package/components/common/wizards/vm/migrate/select/computeResource/ComputeResource.vue +205 -205
  150. package/components/common/wizards/vm/migrate/select/network/Network.vue +103 -103
  151. package/composables/useAppVersion.ts +21 -21
  152. package/composables/useLocal.ts +6 -6
  153. package/composables/useLocalCommon.ts +39 -39
  154. package/package.json +3 -1
  155. package/plugins/console.ts +21 -21
  156. package/plugins/date.ts +233 -233
  157. package/plugins/mouse.ts +21 -21
  158. package/plugins/panelStates.ts +70 -70
  159. package/plugins/text.ts +59 -59
  160. package/public/spice-console/application/clientgui.js +854 -854
  161. package/public/spice-console/application/packetfactory.js +211 -211
  162. package/public/spice-console/application/virtualmouse.js +147 -147
  163. package/public/spice-console/lib/images/bitmap.js +203 -203
  164. package/public/spice-console/network/spicechannel.js +440 -440
  165. package/public/spice-console/process/cursorprocess.js +121 -121
  166. package/public/spice-console/process/inputprocess.js +227 -227
  167. package/public/spice-console/process/mainprocess.js +210 -210
  168. package/public/spice-console/run.js +210 -210
  169. package/store/main/mutations.ts +7 -7
  170. package/store/main/state.ts +7 -7
  171. package/store/tasks/mappers/recentTasks.ts +4 -0
  172. /package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/password/{New.vue → PasswordNew.vue} +0 -0
  173. /package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/password/{Old.vue → PasswordOld.vue} +0 -0
@@ -1,50 +1,50 @@
1
- <template>
2
- <div class="select-template">
3
- <atoms-alert
4
- v-show="props.errors.length"
5
- :items="props.errors"
6
- status="alert-danger"
7
- test-id="template-alert"
8
- @remove="emits('remove')"
9
- />
10
-
11
- <p class="template-description">
12
- {{ localization.vmWizard.selectTemplateForCreatingVm }}
13
- </p>
14
- <div class="tree-view-wrap">
15
- <common-vm-actions-common-select-template-tree-view
16
- :templates-tree="props.templatesTree"
17
- @select-node="emits('select', $event)"
18
- />
19
- </div>
20
- </div>
21
- </template>
22
-
23
- <script setup lang="ts">
24
- import type { UI_I_Localization } from '~/lib/models/interfaces'
25
- import type { UI_I_TreeNode } from '~/components/common/recursionTree/lib/models/interfaces'
26
-
27
- const props = defineProps<{
28
- templatesTree: UI_I_TreeNode[]
29
- errors: string[]
30
- }>()
31
-
32
- const emits = defineEmits<{
33
- (event: 'remove'): void
34
- (event: 'select', value: UI_I_TreeNode): void
35
- }>()
36
-
37
- const localization = computed<UI_I_Localization>(() => useLocal())
38
- </script>
39
-
40
- <style scoped lang="scss">
41
- .tree-view-wrap {
42
- position: relative;
43
- border: 1px solid #000;
44
- padding: 5px;
45
- max-height: 300px;
46
- min-height: 200px;
47
- overflow: auto;
48
- margin-bottom: 10px;
49
- }
50
- </style>
1
+ <template>
2
+ <div class="select-template">
3
+ <atoms-alert
4
+ v-show="props.errors.length"
5
+ :items="props.errors"
6
+ status="alert-danger"
7
+ test-id="template-alert"
8
+ @remove="emits('remove')"
9
+ />
10
+
11
+ <p class="template-description">
12
+ {{ localization.vmWizard.selectTemplateForCreatingVm }}
13
+ </p>
14
+ <div class="tree-view-wrap">
15
+ <common-vm-actions-common-select-template-tree-view
16
+ :templates-tree="props.templatesTree"
17
+ @select-node="emits('select', $event)"
18
+ />
19
+ </div>
20
+ </div>
21
+ </template>
22
+
23
+ <script setup lang="ts">
24
+ import type { UI_I_Localization } from '~/lib/models/interfaces'
25
+ import type { UI_I_TreeNode } from '~/components/common/recursionTree/lib/models/interfaces'
26
+
27
+ const props = defineProps<{
28
+ templatesTree: UI_I_TreeNode[]
29
+ errors: string[]
30
+ }>()
31
+
32
+ const emits = defineEmits<{
33
+ (event: 'remove'): void
34
+ (event: 'select', value: UI_I_TreeNode): void
35
+ }>()
36
+
37
+ const localization = computed<UI_I_Localization>(() => useLocal())
38
+ </script>
39
+
40
+ <style scoped lang="scss">
41
+ .tree-view-wrap {
42
+ position: relative;
43
+ border: 1px solid #000;
44
+ padding: 5px;
45
+ max-height: 300px;
46
+ min-height: 200px;
47
+ overflow: auto;
48
+ margin-bottom: 10px;
49
+ }
50
+ </style>
@@ -1,6 +1,7 @@
1
1
  <template>
2
2
  <common-vm-actions-edit-settings-new
3
3
  v-if="isNewView"
4
+ v-model:vm-name="vmName"
4
5
  v-model:vm-settings="vmSettingsLocal"
5
6
  :nodes="props.nodes"
6
7
  :files="props.files"
@@ -12,6 +13,9 @@
12
13
  :selected-nav-item="selectedNavItem"
13
14
  :vm-cpu-help-text-second="props.vmCpuHelpTextSecond"
14
15
  :error-validation-fields="props.errorValidationFields"
16
+ :virtual-hardware-networks="virtualHardwareNetworksLocal"
17
+ :virtual-hardware-hard-disks="virtualHardwareHardDisksLocal"
18
+ :virtual-hardware-cd-dvd-drives="virtualHardwareCdDvdDrivesLocal"
15
19
  :state="props.state"
16
20
  :vm-name-old="props.vmSettings?.name"
17
21
  :passthrough-devices="props.passthroughDevices"
@@ -19,19 +23,21 @@
19
23
  :get-datastore-table-func="props.getDatastoreTableFunc"
20
24
  :customize-hardware-submit="customizeHardwareSubmit"
21
25
  :is-vmt="props.isVmt"
22
- :max-memory="maxMemory"
23
- :cpu-models="cpuModels"
24
26
  @hide="emits('hide')"
25
27
  @validate="validateSendData"
28
+ @update-vm="emits('update-vm')"
26
29
  @get-storage="emits('get-storage', $event)"
27
30
  @get-pci-devices="emits('get-pci-devices')"
31
+ @change-boot-order="onChangeBootOrder"
28
32
  @get-networks-table="emits('get-networks-table', $event)"
29
33
  @get-folders-or-files="emits('get-folders-or-files', $event)"
30
34
  @show-datastore-child="emits('show-datastore-child', $event)"
31
35
  @get-active-device-child="emits('get-active-device-child', $event)"
36
+ @change-customize-hardware="onChangeCustomizeHardware"
32
37
  />
33
38
  <common-vm-actions-edit-settings-old
34
39
  v-else
40
+ v-model:vm-name="vmName"
35
41
  v-model:vm-settings="vmSettingsLocal"
36
42
  :nodes="props.nodes"
37
43
  :files="props.files"
@@ -43,6 +49,9 @@
43
49
  :selected-nav-item="selectedNavItem"
44
50
  :vm-cpu-help-text-second="props.vmCpuHelpTextSecond"
45
51
  :error-validation-fields="props.errorValidationFields"
52
+ :virtual-hardware-networks="virtualHardwareNetworksLocal"
53
+ :virtual-hardware-hard-disks="virtualHardwareHardDisksLocal"
54
+ :virtual-hardware-cd-dvd-drives="virtualHardwareCdDvdDrivesLocal"
46
55
  :state="props.state"
47
56
  :vm-name-old="props.vmSettings?.name"
48
57
  :passthrough-devices="props.passthroughDevices"
@@ -50,16 +59,17 @@
50
59
  :get-datastore-table-func="props.getDatastoreTableFunc"
51
60
  :customize-hardware-submit="customizeHardwareSubmit"
52
61
  :is-vmt="props.isVmt"
53
- :max-memory="maxMemory"
54
- :cpu-models="cpuModels"
55
62
  @hide="emits('hide')"
56
63
  @validate="validateSendData"
64
+ @update-vm="emits('update-vm')"
57
65
  @get-storage="emits('get-storage', $event)"
58
66
  @get-pci-devices="emits('get-pci-devices')"
67
+ @change-boot-order="onChangeBootOrder"
59
68
  @get-networks-table="emits('get-networks-table', $event)"
60
69
  @get-folders-or-files="emits('get-folders-or-files', $event)"
61
70
  @show-datastore-child="emits('show-datastore-child', $event)"
62
71
  @get-active-device-child="emits('get-active-device-child', $event)"
72
+ @change-customize-hardware="onChangeCustomizeHardware"
63
73
  />
64
74
  </template>
65
75
 
@@ -88,11 +98,10 @@ import type {
88
98
  UI_I_DatastoreTableItem,
89
99
  UI_I_FolderOrFileTreePayload,
90
100
  } from '~/lib/models/store/storage/interfaces'
101
+ import type { UI_T_ChangeBootOrder } from '~/components/common/vm/actions/lib/models/types'
91
102
  import type { UI_T_EditVmFinishFunc } from '~/components/common/vm/actions/editSettings/lib/models/types'
92
103
  import type { UI_I_Capabilities } from '~/components/common/vm/actions/common/lib/models/interfaces'
93
- import type { UI_I_OptionItem } from '~/components/atoms/lib/models/interfaces'
94
104
  import { mapCapabilities } from '~/components/common/vm/actions/common/lib/utils/capabilities'
95
- import { capabilities } from '~/components/common/vm/actions/common/lib/config/capabilities'
96
105
 
97
106
  const props = withDefaults(
98
107
  defineProps<{
@@ -149,9 +158,6 @@ watch(
149
158
  { deep: true, immediate: true }
150
159
  )
151
160
 
152
- const cpuModels = ref<UI_I_OptionItem[]>(capabilities.value.cpuModels)
153
- const maxMemory = ref<number>(capabilities.value.maxMemory)
154
-
155
161
  const selectedNavItem = ref<UI_T_SelectedNavItem>(0)
156
162
 
157
163
  const loadingLocal = ref<boolean>(false)
@@ -168,26 +174,34 @@ const vmSettingsLocal = computed<UI_I_VmSettings | null>(() => props.vmSettings)
168
174
  const vmName = ref<string>(vmSettingsLocal.value?.name || '')
169
175
  watch(vmSettingsLocal, (newValue) => {
170
176
  vmName.value = newValue?.name || ''
171
- console.log(newValue, 11111111111);
172
- }, {deep: true})
177
+ })
173
178
 
174
179
  const virtualHardwareHardDisks = ref<UI_I_SendDataNewHardDisk[] | null>(null)
175
180
  const virtualHardwareCdDvdDrives = ref<UI_I_SendDataNewCdDvdDrive[] | null>(
176
181
  null
177
182
  )
178
183
  const virtualHardwareNetworks = ref<UI_I_SendDataNewNetwork[] | null>(null)
179
- // const onChangeBootOrder = (data: UI_T_ChangeBootOrder): void => {
180
- // virtualHardwareHardDisks.value = data[0]
181
- // virtualHardwareCdDvdDrives.value = data[1]
182
- // virtualHardwareNetworks.value = data[2]
183
- // }
184
+ const onChangeBootOrder = (data: UI_T_ChangeBootOrder): void => {
185
+ virtualHardwareHardDisks.value = data[0]
186
+ virtualHardwareCdDvdDrives.value = data[1]
187
+ virtualHardwareNetworks.value = data[2]
188
+ }
184
189
 
185
190
  const customizeHardware = ref<UI_I_SendDataCustomizeHardware | null>(null)
186
- // const onChangeCustomizeHardware = (
187
- // data: UI_I_SendDataCustomizeHardware
188
- // ): void => {
189
- // customizeHardware.value = data
190
- // }
191
+ const onChangeCustomizeHardware = (
192
+ data: UI_I_SendDataCustomizeHardware
193
+ ): void => {
194
+ customizeHardware.value = data
195
+ }
196
+ const virtualHardwareHardDisksLocal = computed<
197
+ UI_I_SendDataNewHardDisk[] | null
198
+ >(() => customizeHardware.value?.virtualHardware?.hardDisks || null)
199
+ const virtualHardwareNetworksLocal = computed<UI_I_SendDataNewNetwork[] | null>(
200
+ () => customizeHardware.value?.virtualHardware?.networks || null
201
+ )
202
+ const virtualHardwareCdDvdDrivesLocal = computed<
203
+ UI_I_SendDataNewCdDvdDrive[] | null
204
+ >(() => customizeHardware.value?.virtualHardware?.cdDvdDrives || null)
191
205
 
192
206
  const virtualHardwareCpu = computed<UI_I_SendDataCpu | null>(
193
207
  () => customizeHardware.value?.virtualHardware?.cpu || null
@@ -17,19 +17,29 @@
17
17
  />
18
18
  <div v-if="vmSettings" class="vm-context">
19
19
  <common-vm-actions-common-customize-hardware
20
- v-model="vmSettings"
20
+ v-model:vm-name="vmName"
21
+ v-model:guest-machine-type="vmSettings.guestMachineType"
22
+ v-model:guest-os-family="vmSettings.guestOsFamily"
23
+ v-model:guest-os-version="vmSettings.guestOsVersion"
21
24
  :project="props.project"
22
25
  :storage="vmSettings.storage"
23
- :cd-dvd-drives="vmSettings.disk_devices.filter((disk) => disk.device_type === 'cdrom')"
24
- :hard-disks="vmSettings.disk_devices.filter((disk) => disk.device_type !== 'cdrom')"
25
- :max-memory="props.maxMemory"
26
- :cpu-models="props.cpuModels"
27
- :video-card="vmSettings.video_card"
28
- :usb-controller="vmSettings.usb_controllers"
29
- :pci-devices="vmSettings.passthrough_pci_devices"
30
- :hard-disks-for-edit="vmSettings.disk_devices.filter((disk) => disk.device_type !== 'cdrom')"
26
+ :hard-disks-for-boot-options="props.virtualHardwareHardDisks"
27
+ :cd-dvd-drives-for-boot-options="props.virtualHardwareCdDvdDrives"
28
+ :networks-for-boot-options="props.virtualHardwareNetworks"
29
+ :cd-dvd-drives="vmSettings.cdDvdDrives"
30
+ :hard-disks="vmSettings.hardDisks"
31
+ :networks="vmSettings.networks"
32
+ :max-cpus="vmSettings.maxCpus"
33
+ :max-memory="vmSettings.maxMemory"
34
+ :cpu-models="vmSettings.cpuModels"
35
+ :cpu="vmSettings.cpu"
36
+ :memory="vmSettings.memory"
37
+ :video-card="vmSettings.videoCard"
38
+ :usb-controller="vmSettings.usbController"
39
+ :pci-devices="vmSettings.pciDevices"
40
+ :selected-nav-item="selectedNavItem"
41
+ :hard-disks-for-edit="vmSettings.hardDisks"
31
42
  :options="vmSettings.options"
32
- :selected-nav-item="props.selectedNavItem"
33
43
  :nodes="props.nodes"
34
44
  :files="props.files"
35
45
  :networks-table="props.networksTable"
@@ -50,6 +60,8 @@
50
60
  @show-datastore-child="emits('show-datastore-child', $event)"
51
61
  @get-networks-table="emits('get-networks-table', $event)"
52
62
  @get-pci-devices="emits('get-pci-devices')"
63
+ @change-boot-order="emits('change-boot-order', $event)"
64
+ @send-data="emits('change-customize-hardware', $event)"
53
65
  />
54
66
  </div>
55
67
  </template>
@@ -66,6 +78,12 @@ import type {
66
78
  UI_I_VmSettings,
67
79
  } from '~/lib/models/store/vm/interfaces'
68
80
  import type { UI_I_Localization } from '~/lib/models/interfaces'
81
+ import type { UI_I_SendDataCustomizeHardware } from '~/components/common/vm/actions/common/customizeHardware/lib/models/interfaces'
82
+ import type {
83
+ UI_I_SendDataNewCdDvdDrive,
84
+ UI_I_SendDataNewHardDisk,
85
+ UI_I_SendDataNewNetwork,
86
+ } from '~/components/common/vm/actions/common/customizeHardware/virtualHardware/lib/models/interfaces'
69
87
  import type { UI_T_SelectedNavItem } from '~/components/common/vm/actions/common/lib/models/types'
70
88
  import type { UI_I_ErrorValidationField } from '~/lib/models/store/interfaces'
71
89
  import type { UI_I_TablePayload } from '~/lib/models/table/interfaces'
@@ -73,7 +91,9 @@ import type {
73
91
  UI_I_DatastoreTableItem,
74
92
  UI_I_FolderOrFileTreePayload,
75
93
  } from '~/lib/models/store/storage/interfaces'
76
- import type { UI_I_OptionItem } from '~/components/atoms/lib/models/interfaces'
94
+ import type { UI_T_ChangeBootOrder } from '~/components/common/vm/actions/lib/models/types'
95
+
96
+ const vmName = defineModel<string>('vmName', { required: true })
77
97
 
78
98
  const vmSettings = defineModel<UI_I_VmSettings | null>('vmSettings', {
79
99
  required: true,
@@ -90,9 +110,10 @@ const props = withDefaults(
90
110
  networksTable: UI_I_NetworkTableItem[]
91
111
  selectedNavItem: UI_T_SelectedNavItem
92
112
  vmCpuHelpTextSecond: string
93
- errorValidationFields: UI_I_ErrorValidationField[]
94
- maxMemory: number
95
- cpuModels: UI_I_OptionItem[]
113
+ errorValidationFields: UI_I_ErrorValidationField<string>[]
114
+ virtualHardwareNetworks: UI_I_SendDataNewNetwork[] | null
115
+ virtualHardwareHardDisks: UI_I_SendDataNewHardDisk[] | null
116
+ virtualHardwareCdDvdDrives: UI_I_SendDataNewCdDvdDrive[] | null
96
117
  state?: string | number
97
118
  vmNameOld?: string
98
119
  passthroughDevices?: UI_I_PciDevice[]
@@ -115,12 +136,18 @@ const props = withDefaults(
115
136
  const emits = defineEmits<{
116
137
  (event: 'hide'): void
117
138
  (event: 'validate'): void
139
+ (event: 'update-vm'): void
118
140
  (event: 'get-storage', value: UI_I_TablePayload): void
119
141
  (event: 'get-pci-devices'): void
142
+ (event: 'change-boot-order', value: UI_T_ChangeBootOrder): void
120
143
  (event: 'get-networks-table', value: UI_I_TablePayload): void
121
144
  (event: 'get-folders-or-files', value: UI_I_FolderOrFileTreePayload): void
122
145
  (event: 'show-datastore-child', value: UI_I_FileTreeNode): void
123
146
  (event: 'get-active-device-child', value: UI_I_FileTreeNode): void
147
+ (
148
+ event: 'change-customize-hardware',
149
+ value: UI_I_SendDataCustomizeHardware
150
+ ): void
124
151
  }>()
125
152
 
126
153
  const localization = computed<UI_I_Localization>(() => useLocal())
@@ -20,19 +20,29 @@
20
20
 
21
21
  <div v-else class="vm-context px-8">
22
22
  <common-vm-actions-common-customize-hardware
23
- v-model="vmSettings"
23
+ v-model:vm-name="vmName"
24
+ v-model:guest-machine-type="vmSettings.guestMachineType"
25
+ v-model:guest-os-family="vmSettings.guestOsFamily"
26
+ v-model:guest-os-version="vmSettings.guestOsVersion"
24
27
  :project="props.project"
25
28
  :storage="vmSettings.storage"
26
- :cd-dvd-drives="vmSettings.disk_devices.filter((disk) => disk.device_type === 'cdrom')"
27
- :hard-disks="vmSettings.disk_devices.filter((disk) => disk.device_type !== 'cdrom')"
28
- :max-memory="props.maxMemory"
29
- :cpu-models="props.cpuModels"
30
- :video-card="vmSettings.video_card"
31
- :usb-controller="vmSettings.usb_controllers"
32
- :pci-devices="vmSettings.passthrough_pci_devices"
33
- :hard-disks-for-edit="vmSettings.disk_devices.filter((disk) => disk.device_type !== 'cdrom')"
34
- :options="vmSettings.options"
29
+ :hard-disks-for-boot-options="props.virtualHardwareHardDisks"
30
+ :cd-dvd-drives-for-boot-options="props.virtualHardwareCdDvdDrives"
31
+ :networks-for-boot-options="props.virtualHardwareNetworks"
32
+ :cd-dvd-drives="vmSettings.cdDvdDrives"
33
+ :hard-disks="vmSettings.hardDisks"
34
+ :networks="vmSettings.networks"
35
+ :max-cpus="vmSettings.maxCpus"
36
+ :max-memory="vmSettings.maxMemory"
37
+ :cpu-models="vmSettings.cpuModels"
38
+ :cpu="vmSettings.cpu"
39
+ :memory="vmSettings.memory"
40
+ :video-card="vmSettings.videoCard"
41
+ :usb-controller="vmSettings.usbController"
42
+ :pci-devices="vmSettings.pciDevices"
35
43
  :selected-nav-item="props.selectedNavItem"
44
+ :hard-disks-for-edit="vmSettings.hardDisks"
45
+ :options="vmSettings.options"
36
46
  :nodes="props.nodes"
37
47
  :files="props.files"
38
48
  :networks-table="props.networksTable"
@@ -53,6 +63,8 @@
53
63
  @show-datastore-child="emits('show-datastore-child', $event)"
54
64
  @get-networks-table="emits('get-networks-table', $event)"
55
65
  @get-pci-devices="emits('get-pci-devices')"
66
+ @change-boot-order="emits('change-boot-order', $event)"
67
+ @send-data="emits('change-customize-hardware', $event)"
56
68
  />
57
69
  </div>
58
70
  </template>
@@ -72,6 +84,12 @@ import type {
72
84
  UI_I_VmSettings,
73
85
  } from '~/lib/models/store/vm/interfaces'
74
86
  import type { UI_I_Localization } from '~/lib/models/interfaces'
87
+ import type { UI_I_SendDataCustomizeHardware } from '~/components/common/vm/actions/common/customizeHardware/lib/models/interfaces'
88
+ import type {
89
+ UI_I_SendDataNewCdDvdDrive,
90
+ UI_I_SendDataNewHardDisk,
91
+ UI_I_SendDataNewNetwork,
92
+ } from '~/components/common/vm/actions/common/customizeHardware/virtualHardware/lib/models/interfaces'
75
93
  import type { UI_T_SelectedNavItem } from '~/components/common/vm/actions/common/lib/models/types'
76
94
  import type { UI_I_ErrorValidationField } from '~/lib/models/store/interfaces'
77
95
  import type { UI_I_TablePayload } from '~/lib/models/table/interfaces'
@@ -79,9 +97,11 @@ import type {
79
97
  UI_I_DatastoreTableItem,
80
98
  UI_I_FolderOrFileTreePayload,
81
99
  } from '~/lib/models/store/storage/interfaces'
82
- import type { UI_I_OptionItem } from '~/components/atoms/lib/models/interfaces'
100
+ import type { UI_T_ChangeBootOrder } from '~/components/common/vm/actions/lib/models/types'
83
101
  import { modalTexts } from '~/components/common/vm/actions/editSettings/lib/config/modal'
84
102
 
103
+ const vmName = defineModel<string>('vmName', { required: true })
104
+
85
105
  const vmSettings = defineModel<UI_I_VmSettings | null>('vmSettings', {
86
106
  required: true,
87
107
  })
@@ -97,9 +117,10 @@ const props = withDefaults(
97
117
  networksTable: UI_I_NetworkTableItem[]
98
118
  selectedNavItem: UI_T_SelectedNavItem
99
119
  vmCpuHelpTextSecond: string
100
- errorValidationFields: UI_I_ErrorValidationField[]
101
- maxMemory: number
102
- cpuModels: UI_I_OptionItem[]
120
+ errorValidationFields: UI_I_ErrorValidationField<string>[]
121
+ virtualHardwareNetworks: UI_I_SendDataNewNetwork[] | null
122
+ virtualHardwareHardDisks: UI_I_SendDataNewHardDisk[] | null
123
+ virtualHardwareCdDvdDrives: UI_I_SendDataNewCdDvdDrive[] | null
103
124
  state?: string | number
104
125
  vmNameOld?: string
105
126
  passthroughDevices?: UI_I_PciDevice[]
@@ -122,12 +143,18 @@ const props = withDefaults(
122
143
  const emits = defineEmits<{
123
144
  (event: 'hide'): void
124
145
  (event: 'validate'): void
146
+ (event: 'update-vm'): void
125
147
  (event: 'get-storage', value: UI_I_TablePayload): void
126
148
  (event: 'get-pci-devices'): void
149
+ (event: 'change-boot-order', value: UI_T_ChangeBootOrder): void
127
150
  (event: 'get-networks-table', value: UI_I_TablePayload): void
128
151
  (event: 'get-folders-or-files', value: UI_I_FolderOrFileTreePayload): void
129
152
  (event: 'show-datastore-child', value: UI_I_FileTreeNode): void
130
153
  (event: 'get-active-device-child', value: UI_I_FileTreeNode): void
154
+ (
155
+ event: 'change-customize-hardware',
156
+ value: UI_I_SendDataCustomizeHardware
157
+ ): void
131
158
  }>()
132
159
 
133
160
  const localization = computed<UI_I_Localization>(() => useLocal())
@@ -1,88 +1,88 @@
1
- <template>
2
- <div class="skeleton-wrap">
3
- <div class="tabs">
4
- <ui-skeleton-item width="64px" height="16px" />
5
- <ui-skeleton-item width="64px" height="16px" />
6
- </div>
7
- <div class="actions">
8
- <ui-skeleton-item width="80px" height="16px" />
9
- <ui-skeleton-item width="152px" height="32px" border-radius="6px" />
10
- </div>
11
- <div class="stack-block-wrap">
12
- <div class="stack-block">
13
- <div class="stack-label flex-1">
14
- <ui-skeleton-item width="16px" height="16px" border-radius="50%" />
15
- <ui-skeleton-item height="16px" />
16
- </div>
17
- <div class="stack-value flex-1">
18
- <ui-skeleton-item width="102px" height="32px" border-radius="8px" />
19
- </div>
20
- </div>
21
-
22
- <div v-for="item in 2" :key="item" class="stack-block">
23
- <div class="stack-label flex-1">
24
- <ui-skeleton-item width="16px" height="16px" border-radius="50%" />
25
- <ui-skeleton-item height="16px" />
26
- </div>
27
- <div class="stack-value flex-1">
28
- <ui-skeleton-item width="102px" height="32px" border-radius="8px" />
29
- <ui-skeleton-item width="80px" height="32px" border-radius="8px" />
30
- </div>
31
- </div>
32
-
33
- <div v-for="item in 5" :key="item" class="stack-block">
34
- <div class="stack-label flex-1">
35
- <ui-skeleton-item width="16px" height="16px" border-radius="50%" />
36
- <ui-skeleton-item height="16px" />
37
- </div>
38
- <div class="stack-value flex-1">
39
- <ui-skeleton-item width="196px" height="32px" border-radius="8px" />
40
- </div>
41
- </div>
42
- </div>
43
- </div>
44
- </template>
45
-
46
- <script setup lang="ts"></script>
47
-
48
- <style scoped lang="scss">
49
- .skeleton-wrap {
50
- padding: 0 32px;
51
-
52
- .tabs {
53
- display: flex;
54
- align-items: center;
55
- gap: 32px;
56
- padding: 8px 0 12px;
57
- border-bottom: 1px solid var(--divider-color);
58
- }
59
-
60
- .actions {
61
- display: flex;
62
- align-items: center;
63
- justify-content: space-between;
64
- margin: 12px 0;
65
- }
66
-
67
- .stack-block-wrap {
68
- display: grid;
69
- grid-gap: 12px;
70
-
71
- .stack-block {
72
- display: flex;
73
- align-items: center;
74
- gap: 12px;
75
- padding: 8px 12px;
76
- background: var(--stack-block-bg-color);
77
- border-radius: 6px;
78
-
79
- .stack-label,
80
- .stack-value {
81
- display: flex;
82
- align-items: center;
83
- gap: 8px;
84
- }
85
- }
86
- }
87
- }
88
- </style>
1
+ <template>
2
+ <div class="skeleton-wrap">
3
+ <div class="tabs">
4
+ <ui-skeleton-item width="64px" height="16px" />
5
+ <ui-skeleton-item width="64px" height="16px" />
6
+ </div>
7
+ <div class="actions">
8
+ <ui-skeleton-item width="80px" height="16px" />
9
+ <ui-skeleton-item width="152px" height="32px" border-radius="6px" />
10
+ </div>
11
+ <div class="stack-block-wrap">
12
+ <div class="stack-block">
13
+ <div class="stack-label flex-1">
14
+ <ui-skeleton-item width="16px" height="16px" border-radius="50%" />
15
+ <ui-skeleton-item height="16px" />
16
+ </div>
17
+ <div class="stack-value flex-1">
18
+ <ui-skeleton-item width="102px" height="32px" border-radius="8px" />
19
+ </div>
20
+ </div>
21
+
22
+ <div v-for="item in 2" :key="item" class="stack-block">
23
+ <div class="stack-label flex-1">
24
+ <ui-skeleton-item width="16px" height="16px" border-radius="50%" />
25
+ <ui-skeleton-item height="16px" />
26
+ </div>
27
+ <div class="stack-value flex-1">
28
+ <ui-skeleton-item width="102px" height="32px" border-radius="8px" />
29
+ <ui-skeleton-item width="80px" height="32px" border-radius="8px" />
30
+ </div>
31
+ </div>
32
+
33
+ <div v-for="item in 5" :key="item" class="stack-block">
34
+ <div class="stack-label flex-1">
35
+ <ui-skeleton-item width="16px" height="16px" border-radius="50%" />
36
+ <ui-skeleton-item height="16px" />
37
+ </div>
38
+ <div class="stack-value flex-1">
39
+ <ui-skeleton-item width="196px" height="32px" border-radius="8px" />
40
+ </div>
41
+ </div>
42
+ </div>
43
+ </div>
44
+ </template>
45
+
46
+ <script setup lang="ts"></script>
47
+
48
+ <style scoped lang="scss">
49
+ .skeleton-wrap {
50
+ padding: 0 32px;
51
+
52
+ .tabs {
53
+ display: flex;
54
+ align-items: center;
55
+ gap: 32px;
56
+ padding: 8px 0 12px;
57
+ border-bottom: 1px solid var(--divider-color);
58
+ }
59
+
60
+ .actions {
61
+ display: flex;
62
+ align-items: center;
63
+ justify-content: space-between;
64
+ margin: 12px 0;
65
+ }
66
+
67
+ .stack-block-wrap {
68
+ display: grid;
69
+ grid-gap: 12px;
70
+
71
+ .stack-block {
72
+ display: flex;
73
+ align-items: center;
74
+ gap: 12px;
75
+ padding: 8px 12px;
76
+ background: var(--stack-block-bg-color);
77
+ border-radius: 6px;
78
+
79
+ .stack-label,
80
+ .stack-value {
81
+ display: flex;
82
+ align-items: center;
83
+ gap: 8px;
84
+ }
85
+ }
86
+ }
87
+ }
88
+ </style>