bfg-common 1.5.574 → 1.5.575

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 (163) 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/components/atoms/TheIcon3.vue +50 -50
  7. package/components/atoms/collapse/CollapseNav.vue +170 -170
  8. package/components/atoms/perPage/PerPage.vue +58 -58
  9. package/components/atoms/table/dataGrid/DataGrid.vue +1718 -1718
  10. package/components/atoms/table/dataGrid/DataGridPagination.vue +97 -97
  11. package/components/atoms/table/dataGrid/lib/config/settingsTable.ts +94 -94
  12. package/components/atoms/table/dataGrid/lib/utils/export.ts +16 -16
  13. package/components/common/backup/storage/actions/add/Add.vue +3 -2
  14. package/components/common/backup/storage/actions/add/New.vue +3 -2
  15. package/components/common/backup/storage/actions/add/Old.vue +5 -4
  16. package/components/common/backup/storage/actions/add/lib/utils.ts +51 -51
  17. package/components/common/backup/storage/actions/add/steps/readyComplete/ReadyComplete.vue +45 -45
  18. package/components/common/backup/storage/actions/add/steps/readyComplete/lib/config/propertiesDetails.ts +7 -7
  19. package/components/common/browse/blocks/contents/filesNew/Skeleton.vue +18 -18
  20. package/components/common/diagramMain/modals/lib/config/portModal.ts +251 -251
  21. package/components/common/diagramMain/modals/lib/config/vCenterModal.ts +48 -48
  22. package/components/common/diagramMain/port/Port.vue +580 -580
  23. package/components/common/layout/theHeader/helpMenu/About.vue +79 -79
  24. package/components/common/layout/theHeader/helpMenu/aboutOld/AboutOld.vue +79 -79
  25. package/components/common/pages/backups/DetailView.vue +52 -52
  26. package/components/common/pages/backups/lib/models/interfaces.ts +36 -36
  27. package/components/common/pages/backups/modals/Modals.vue +243 -243
  28. package/components/common/pages/backups/modals/createBackup/configuration/maxBandwidth/lib/config/options.ts +6 -6
  29. package/components/common/pages/backups/modals/createBackup/lib/config/readyToCompleteOptions.ts +69 -69
  30. package/components/common/pages/backups/modals/lib/config/restore.ts +115 -115
  31. package/components/common/pages/backups/modals/lib/models/interfaces.ts +186 -186
  32. package/components/common/pages/backups/modals/restore/name/lib/models/interfaces.ts +6 -6
  33. package/components/common/pages/home/lib/models/interfaces.ts +48 -48
  34. package/components/common/pages/home/widgets/hosts/Hosts.vue +27 -27
  35. package/components/common/pages/home/widgets/hosts/lib/config/items.ts +23 -23
  36. package/components/common/pages/home/widgets/vms/VmsOld.vue +35 -35
  37. package/components/common/pages/home/widgets/vms/lib/config/items.ts +19 -19
  38. package/components/common/pages/scheduledTasks/lib/utils/utils.ts +84 -84
  39. package/components/common/readyToComplete/ReadyToComplete.vue +17 -17
  40. package/components/common/select/radio/RadioGroup.vue +137 -137
  41. package/components/common/spiceConsole/Drawer.vue +420 -420
  42. package/components/common/spiceConsole/SpiceConsole.vue +184 -184
  43. package/components/common/spiceConsole/lib/models/interfaces.ts +5 -5
  44. package/components/common/tools/Actions.vue +207 -207
  45. package/components/common/treeView/TreeView.vue +52 -52
  46. package/components/common/vm/actions/add/Add.vue +120 -46
  47. package/components/common/vm/actions/add/New.vue +54 -16
  48. package/components/common/vm/actions/add/Old.vue +55 -16
  49. package/components/common/vm/actions/add/lib/config/steps.ts +347 -347
  50. package/components/common/vm/actions/clone/Clone.vue +115 -43
  51. package/components/common/vm/actions/clone/new/New.vue +50 -14
  52. package/components/common/vm/actions/clone/old/Old.vue +52 -16
  53. package/components/common/vm/actions/common/customizeHardware/CustomizeHardware.vue +81 -14
  54. package/components/common/vm/actions/common/customizeHardware/CustomizeHardwareNew.vue +56 -7
  55. package/components/common/vm/actions/common/customizeHardware/CustomizeHardwareOld.vue +56 -8
  56. package/components/common/vm/actions/common/customizeHardware/virtualHardware/VirtualHardware.vue +206 -211
  57. package/components/common/vm/actions/common/customizeHardware/virtualHardware/VirtualHardwareNew.vue +120 -225
  58. package/components/common/vm/actions/common/customizeHardware/virtualHardware/VirtualHardwareOld.vue +118 -220
  59. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/CdDvdDrive.vue +53 -66
  60. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/Cpu.vue +159 -139
  61. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/CpuNew.vue +15 -8
  62. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/CpuOld.vue +13 -8
  63. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/shares/Shares.vue +140 -140
  64. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/shares/lib/config/options.ts +28 -28
  65. package/components/common/vm/actions/common/customizeHardware/virtualHardware/memory/Memory.vue +75 -62
  66. package/components/common/vm/actions/common/customizeHardware/virtualHardware/memory/MemoryNew.vue +158 -158
  67. package/components/common/vm/actions/common/customizeHardware/virtualHardware/memory/MemoryOld.vue +155 -155
  68. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/NewHardDisk.vue +149 -241
  69. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/NewHardDiskNew.vue +4 -3
  70. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/NewHardDiskOld.vue +3 -2
  71. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/location/Location.vue +154 -154
  72. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/NewNetwork.vue +100 -62
  73. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/macAddress/MacAddress.vue +119 -119
  74. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIo.vue +31 -31
  75. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newUsbController/NewUsbController.vue +17 -6
  76. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newUsbController/NewUsbControllerNew.vue +3 -6
  77. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newUsbController/NewUsbControllerOld.vue +3 -6
  78. package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/Other.vue +16 -16
  79. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/VideoCard.vue +39 -17
  80. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/VideoCardNew.vue +5 -6
  81. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/VideoCardOld.vue +5 -6
  82. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/lib/config/options.ts +4 -4
  83. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/numberDisplays/NumberDisplays.vue +53 -53
  84. package/components/common/vm/actions/common/customizeHardware/vmoptions/Vmoptions.vue +93 -6
  85. package/components/common/vm/actions/common/customizeHardware/vmoptions/VmoptionsNew.vue +60 -8
  86. package/components/common/vm/actions/common/customizeHardware/vmoptions/VmoptionsOld.vue +58 -8
  87. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/BootOptions.vue +69 -5
  88. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/BootOptionsNew.vue +32 -12
  89. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/BootOptionsOld.vue +33 -12
  90. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/delay/Delay.vue +32 -32
  91. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/firmware/Firmware.vue +60 -60
  92. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/Order.vue +132 -114
  93. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/OrderNew.vue +6 -41
  94. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/OrderOld.vue +6 -44
  95. package/components/common/vm/actions/common/customizeHardware/vmoptions/generalOptions/GeneralOptions.vue +23 -8
  96. package/components/common/vm/actions/common/customizeHardware/vmoptions/generalOptions/GeneralOptionsNew.vue +31 -21
  97. package/components/common/vm/actions/common/customizeHardware/vmoptions/generalOptions/GeneralOptionsOld.vue +34 -26
  98. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/New.vue +34 -28
  99. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/Old.vue +30 -24
  100. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/RemoteConsoleOptions.vue +112 -8
  101. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/keymap/Keymap.vue +3 -3
  102. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/keymap/{New.vue → KeymapNew.vue} +6 -6
  103. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/keymap/{Old.vue → KeymapOld.vue} +5 -5
  104. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/password/Password.vue +7 -6
  105. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirection.vue +28 -28
  106. package/components/common/vm/actions/common/customizeHardware/vmoptions/tools/Tools.vue +60 -42
  107. package/components/common/vm/actions/common/lib/models/interfaces.ts +25 -58
  108. package/components/common/vm/actions/common/select/compatibility/Old.vue +107 -107
  109. package/components/common/vm/actions/common/select/createType/CreateType.vue +38 -38
  110. package/components/common/vm/actions/common/select/createType/lib/models/interfaces.ts +5 -5
  111. package/components/common/vm/actions/common/select/storage/Old.vue +125 -125
  112. package/components/common/vm/actions/common/select/storage/Storage.vue +178 -178
  113. package/components/common/vm/actions/common/select/storage/new/New.vue +311 -311
  114. package/components/common/vm/actions/common/select/storage/new/lib/models/interfaces.ts +5 -5
  115. package/components/common/vm/actions/common/select/storage/new/lib/utils/utils.ts +21 -21
  116. package/components/common/vm/actions/common/select/template/old/Old.vue +50 -50
  117. package/components/common/vm/actions/editSettings/EditSettings.vue +90 -32
  118. package/components/common/vm/actions/editSettings/EditSettingsOld.vue +41 -14
  119. package/components/common/vm/actions/editSettings/new/New.vue +41 -14
  120. package/components/common/vm/actions/editSettings/new/Skeleton.vue +88 -88
  121. package/components/common/vm/actions/lib/models/interfaces.ts +29 -4
  122. package/components/common/vm/actions/lib/utils.ts +36 -64
  123. package/components/common/vm/actions/register/Register.vue +352 -352
  124. package/components/common/vm/actions/register/lib/config/steps.ts +86 -86
  125. package/components/common/wizards/common/compatibility/Compatibility.vue +35 -35
  126. package/components/common/wizards/common/compatibility/New.vue +99 -99
  127. package/components/common/wizards/common/compatibility/Old.vue +53 -53
  128. package/components/common/wizards/common/steps/computeResource/ComputeResource.vue +86 -86
  129. package/components/common/wizards/common/steps/computeResource/New.vue +93 -93
  130. package/components/common/wizards/common/steps/computeResource/Old.vue +103 -103
  131. package/components/common/wizards/common/steps/name/Name.vue +178 -178
  132. package/components/common/wizards/common/steps/name/New.vue +221 -221
  133. package/components/common/wizards/common/steps/name/Old.vue +121 -121
  134. package/components/common/wizards/common/steps/name/lib/models/interfaces.ts +4 -4
  135. package/components/common/wizards/common/steps/name/location/Location.vue +85 -85
  136. package/components/common/wizards/common/steps/name/location/New.vue +40 -40
  137. package/components/common/wizards/datastore/add/Add.vue +228 -228
  138. package/components/common/wizards/datastore/add/lib/utils.ts +85 -85
  139. package/components/common/wizards/datastore/add/steps/typeMode/lib/config/typeOptions.ts +43 -43
  140. package/components/common/wizards/vm/migrate/select/computeResource/ComputeResource.vue +205 -205
  141. package/components/common/wizards/vm/migrate/select/network/Network.vue +103 -103
  142. package/composables/useAppVersion.ts +21 -21
  143. package/composables/useLocal.ts +6 -6
  144. package/composables/useLocalCommon.ts +39 -39
  145. package/package.json +1 -1
  146. package/plugins/console.ts +21 -21
  147. package/plugins/date.ts +233 -233
  148. package/plugins/mouse.ts +21 -21
  149. package/plugins/panelStates.ts +70 -70
  150. package/plugins/text.ts +59 -59
  151. package/public/spice-console/application/clientgui.js +854 -854
  152. package/public/spice-console/application/packetfactory.js +211 -211
  153. package/public/spice-console/application/virtualmouse.js +147 -147
  154. package/public/spice-console/lib/images/bitmap.js +203 -203
  155. package/public/spice-console/network/spicechannel.js +440 -440
  156. package/public/spice-console/process/cursorprocess.js +121 -121
  157. package/public/spice-console/process/inputprocess.js +227 -227
  158. package/public/spice-console/process/mainprocess.js +210 -210
  159. package/public/spice-console/run.js +210 -210
  160. package/store/main/mutations.ts +7 -7
  161. package/store/main/state.ts +7 -7
  162. /package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/password/{New.vue → PasswordNew.vue} +0 -0
  163. /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,7 +1,8 @@
1
1
  <template>
2
2
  <common-vm-actions-edit-settings-new
3
3
  v-if="isNewView"
4
- v-model:vm-settings="model"
4
+ v-model:vm-name="vmName"
5
+ v-model:vm-settings="vmSettingsLocal"
5
6
  :nodes="props.nodes"
6
7
  :files="props.files"
7
8
  :project="props.project"
@@ -12,27 +13,32 @@
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
- :vm-name-old="vmNameOld"
20
+ :vm-name-old="props.vmSettings?.name"
17
21
  :passthrough-devices="props.passthroughDevices"
18
22
  :mediated-devices="props.mediatedDevices"
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
35
- v-model:vm-settings="model"
40
+ v-model:vm-name="vmName"
41
+ v-model:vm-settings="vmSettingsLocal"
36
42
  :nodes="props.nodes"
37
43
  :files="props.files"
38
44
  :project="props.project"
@@ -43,23 +49,27 @@
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
- :vm-name-old="vmNameOld"
56
+ :vm-name-old="props.vmSettings?.name"
48
57
  :passthrough-devices="props.passthroughDevices"
49
58
  :mediated-devices="props.mediatedDevices"
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
 
@@ -70,7 +80,17 @@ import type { UI_I_NetworkTableItem } from '~/lib/models/store/network/interface
70
80
  import type {
71
81
  UI_I_MediatedDevice,
72
82
  UI_I_PciDevice,
83
+ UI_I_VmSettings,
73
84
  } from '~/lib/models/store/vm/interfaces'
85
+ import type { UI_I_Localization } from '~/lib/models/interfaces'
86
+ import type { UI_I_SendDataCustomizeHardware } from '~/components/common/vm/actions/common/customizeHardware/lib/models/interfaces'
87
+ import type {
88
+ UI_I_SendDataNewCdDvdDrive,
89
+ UI_I_SendDataNewHardDisk,
90
+ UI_I_SendDataNewNetwork,
91
+ UI_I_SendDataCpu,
92
+ UI_I_SendDataMemory,
93
+ } from '~/components/common/vm/actions/common/customizeHardware/virtualHardware/lib/models/interfaces'
74
94
  import type { UI_T_SelectedNavItem } from '~/components/common/vm/actions/common/lib/models/types'
75
95
  import type { UI_I_ErrorValidationField } from '~/lib/models/store/interfaces'
76
96
  import type { UI_I_TablePayload } from '~/lib/models/table/interfaces'
@@ -78,25 +98,20 @@ import type {
78
98
  UI_I_DatastoreTableItem,
79
99
  UI_I_FolderOrFileTreePayload,
80
100
  } from '~/lib/models/store/storage/interfaces'
101
+ import type { UI_T_ChangeBootOrder } from '~/components/common/vm/actions/lib/models/types'
81
102
  import type { UI_T_EditVmFinishFunc } from '~/components/common/vm/actions/editSettings/lib/models/types'
82
- import type {
83
- UI_I_Capabilities,
84
- UI_I_CreateVmData,
85
- } from '~/components/common/vm/actions/common/lib/models/interfaces'
86
- import type { UI_I_OptionItem } from '~/components/atoms/lib/models/interfaces'
103
+ import type { UI_I_Capabilities } from '~/components/common/vm/actions/common/lib/models/interfaces'
87
104
  import { mapCapabilities } from '~/components/common/vm/actions/common/lib/utils/capabilities'
88
- import { capabilities } from '~/components/common/vm/actions/common/lib/config/capabilities'
89
-
90
- const model = defineModel<UI_I_CreateVmData>({ required: true })
91
105
 
92
106
  const props = withDefaults(
93
107
  defineProps<{
94
108
  project: UI_T_Project
95
109
  loading: boolean
110
+ vmSettings: UI_I_VmSettings | null
96
111
  nodes: UI_I_FileTreeNode[]
97
112
  files: UI_I_FileTreeNode[]
98
113
  networksTable: UI_I_NetworkTableItem[]
99
- errorValidationFields: UI_I_ErrorValidationField[]
114
+ errorValidationFields: UI_I_ErrorValidationField<string>[]
100
115
  vmCpuHelpTextSecond: string
101
116
  vmId: string
102
117
  datastore: UI_I_DatastoreTableItem[]
@@ -133,7 +148,7 @@ const emits = defineEmits<{
133
148
  const { $store }: any = useNuxtApp()
134
149
  const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
135
150
 
136
- const vmNameOld = computed<string>(() => model.value?.name || '')
151
+ const localization = computed<UI_I_Localization>(() => useLocal())
137
152
 
138
153
  watch(
139
154
  () => props.capabilities,
@@ -143,9 +158,6 @@ watch(
143
158
  { deep: true, immediate: true }
144
159
  )
145
160
 
146
- const cpuModels = ref<UI_I_OptionItem[]>(capabilities.value.cpuModels)
147
- const maxMemory = ref<number>(capabilities.value.maxMemory)
148
-
149
161
  const selectedNavItem = ref<UI_T_SelectedNavItem>(0)
150
162
 
151
163
  const loadingLocal = ref<boolean>(false)
@@ -157,12 +169,45 @@ watch(
157
169
  { immediate: true }
158
170
  )
159
171
 
160
- watch(
161
- model,
162
- (newValue) => {
163
- console.log(newValue, 11111111111)
164
- },
165
- { deep: true }
172
+ const vmSettingsLocal = computed<UI_I_VmSettings | null>(() => props.vmSettings)
173
+
174
+ const vmName = ref<string>(vmSettingsLocal.value?.name || '')
175
+ watch(vmSettingsLocal, (newValue) => {
176
+ vmName.value = newValue?.name || ''
177
+ })
178
+
179
+ const virtualHardwareHardDisks = ref<UI_I_SendDataNewHardDisk[] | null>(null)
180
+ const virtualHardwareCdDvdDrives = ref<UI_I_SendDataNewCdDvdDrive[] | null>(
181
+ null
182
+ )
183
+ const virtualHardwareNetworks = ref<UI_I_SendDataNewNetwork[] | null>(null)
184
+ const onChangeBootOrder = (data: UI_T_ChangeBootOrder): void => {
185
+ virtualHardwareHardDisks.value = data[0]
186
+ virtualHardwareCdDvdDrives.value = data[1]
187
+ virtualHardwareNetworks.value = data[2]
188
+ }
189
+
190
+ const customizeHardware = ref<UI_I_SendDataCustomizeHardware | null>(null)
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)
205
+
206
+ const virtualHardwareCpu = computed<UI_I_SendDataCpu | null>(
207
+ () => customizeHardware.value?.virtualHardware?.cpu || null
208
+ )
209
+ const virtualHardwareMemory = computed<UI_I_SendDataMemory | null>(
210
+ () => customizeHardware.value?.virtualHardware?.memory || null
166
211
  )
167
212
 
168
213
  const customizeHardwareSubmit = ref<null | Function>(null)
@@ -183,11 +228,24 @@ const validateSendData = async (): Promise<void> => {
183
228
  }
184
229
 
185
230
  loadingLocal.value = true
186
- props.validateSendDataFunc(model.value, props.vmId).then((data) => {
187
- loadingLocal.value = false
188
-
189
- !data && emits('update-vm')
190
- })
231
+ props
232
+ .validateSendDataFunc(
233
+ vmSettingsLocal.value,
234
+ virtualHardwareCpu.value,
235
+ virtualHardwareMemory.value,
236
+ customizeHardware.value,
237
+ virtualHardwareNetworks.value,
238
+ virtualHardwareHardDisks.value,
239
+ virtualHardwareCdDvdDrives.value,
240
+ vmName.value,
241
+ localization.value,
242
+ props.vmId
243
+ )
244
+ .then((data) => {
245
+ loadingLocal.value = false
246
+
247
+ !data && emits('update-vm')
248
+ })
191
249
  }
192
250
  </script>
193
251
 
@@ -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())