bfg-common 1.4.393 → 1.4.395

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 (290) hide show
  1. package/components/common/layout/theHeader/feedback/new/New.vue +12 -12
  2. package/components/common/layout/theHeader/feedback/new/additionalDetails/Headline.vue +7 -4
  3. package/components/common/layout/theHeader/feedback/new/description/Description.vue +1 -1
  4. package/components/common/layout/theHeader/feedback/new/email/Email.vue +1 -1
  5. package/components/common/layout/theHeader/feedback/new/subtitle/Subtitle.vue +6 -3
  6. package/components/common/layout/theHeader/feedback/new/tabs/Tabs.vue +24 -8
  7. package/components/common/layout/theHeader/feedback/new/tabs/lib/config/tabs.ts +2 -2
  8. package/components/common/summary/notification/Notification.vue +28 -0
  9. package/components/common/summary/notification/NotificationNew.vue +135 -0
  10. package/components/common/summary/notification/NotificationOld.vue +46 -0
  11. package/components/common/vm/actions/common/_customizeHardware/CustomizeHardware.vue +274 -0
  12. package/components/common/vm/actions/common/_customizeHardware/lib/config/navItems.ts +21 -0
  13. package/components/common/vm/actions/common/_customizeHardware/lib/models/interfaces.ts +7 -0
  14. package/components/common/vm/actions/common/_customizeHardware/virtualHardware/VirtualHardware.vue +702 -0
  15. package/components/common/vm/actions/common/_customizeHardware/virtualHardware/browseView/BrowseView.vue +203 -0
  16. package/components/common/vm/actions/common/_customizeHardware/virtualHardware/browseView/lib/models/interfaces.ts +8 -0
  17. package/components/common/vm/actions/common/_customizeHardware/virtualHardware/bus/Bus.vue +156 -0
  18. package/components/common/vm/actions/common/_customizeHardware/virtualHardware/bus/lib/config/options.ts +20 -0
  19. package/components/common/vm/actions/common/_customizeHardware/virtualHardware/cdDvdDrive/CdDvdDrive.vue +270 -0
  20. package/components/common/vm/actions/common/_customizeHardware/virtualHardware/cdDvdDrive/lib/config/fileTypes.ts +9 -0
  21. package/components/common/vm/actions/common/_customizeHardware/virtualHardware/cdDvdDrive/lib/config/options.ts +11 -0
  22. package/components/common/vm/actions/common/_customizeHardware/virtualHardware/cdDvdDrive/lib/models/types.ts +1 -0
  23. package/components/common/vm/actions/common/_customizeHardware/virtualHardware/cdDvdDrive/media/Media.vue +57 -0
  24. package/components/common/vm/actions/common/_customizeHardware/virtualHardware/cpu/Cpu.vue +403 -0
  25. package/components/common/vm/actions/common/_customizeHardware/virtualHardware/cpu/Hv.vue +99 -0
  26. package/components/common/vm/actions/common/_customizeHardware/virtualHardware/cpu/Iommu.vue +55 -0
  27. package/components/common/vm/actions/common/_customizeHardware/virtualHardware/cpu/Pc.vue +55 -0
  28. package/components/common/vm/actions/common/_customizeHardware/virtualHardware/cpu/Sa.vue +106 -0
  29. package/components/common/vm/actions/common/_customizeHardware/virtualHardware/cpu/lib/config/cpuOptions.ts +21 -0
  30. package/components/common/vm/actions/common/_customizeHardware/virtualHardware/cpu/shares/Shares.vue +160 -0
  31. package/components/common/vm/actions/common/_customizeHardware/virtualHardware/cpu/shares/lib/config/options.ts +28 -0
  32. package/components/common/vm/actions/common/_customizeHardware/virtualHardware/cpu/tooltip/Tooltip.vue +59 -0
  33. package/components/common/vm/actions/common/_customizeHardware/virtualHardware/lib/config/binaryOptions.ts +12 -0
  34. package/components/common/vm/actions/common/_customizeHardware/virtualHardware/lib/config/dropdownItems.ts +66 -0
  35. package/components/common/vm/actions/common/_customizeHardware/virtualHardware/lib/models/interfaces.ts +118 -0
  36. package/components/common/vm/actions/common/_customizeHardware/virtualHardware/lib/models/types.ts +4 -0
  37. package/components/common/vm/actions/common/_customizeHardware/virtualHardware/limit/Limit.vue +236 -0
  38. package/components/common/vm/actions/common/_customizeHardware/virtualHardware/limit/lib/config/options.ts +28 -0
  39. package/components/common/vm/actions/common/_customizeHardware/virtualHardware/memory/Memory.vue +329 -0
  40. package/components/common/vm/actions/common/_customizeHardware/virtualHardware/memory/lib/config/memoryOptions.ts +35 -0
  41. package/components/common/vm/actions/common/_customizeHardware/virtualHardware/newHardDisk/NewHardDisk.vue +462 -0
  42. package/components/common/vm/actions/common/_customizeHardware/virtualHardware/newHardDisk/cache/Cache.vue +81 -0
  43. package/components/common/vm/actions/common/_customizeHardware/virtualHardware/newHardDisk/cache/lib/config/options.ts +7 -0
  44. package/components/common/vm/actions/common/_customizeHardware/virtualHardware/newHardDisk/limitIops/LimitIops.vue +153 -0
  45. package/components/common/vm/actions/common/_customizeHardware/virtualHardware/newHardDisk/limitIops/lib/config/options.ts +28 -0
  46. package/components/common/vm/actions/common/_customizeHardware/virtualHardware/newHardDisk/location/Location.vue +172 -0
  47. package/components/common/vm/actions/common/_customizeHardware/virtualHardware/newHardDisk/location/StorageModalOld.vue +52 -0
  48. package/components/common/vm/actions/common/_customizeHardware/virtualHardware/newHardDisk/mode/Mode.vue +88 -0
  49. package/components/common/vm/actions/common/_customizeHardware/virtualHardware/newHardDisk/mode/lib/config/options.ts +18 -0
  50. package/components/common/vm/actions/common/_customizeHardware/virtualHardware/newHardDisk/provisioning/Provisioning.vue +88 -0
  51. package/components/common/vm/actions/common/_customizeHardware/virtualHardware/newHardDisk/provisioning/lib/config/options.ts +15 -0
  52. package/components/common/vm/actions/common/_customizeHardware/virtualHardware/newHardDisk/sharing/Sharing.vue +86 -0
  53. package/components/common/vm/actions/common/_customizeHardware/virtualHardware/newHardDisk/sharing/lib/config/options.ts +12 -0
  54. package/components/common/vm/actions/common/_customizeHardware/virtualHardware/newNetwork/Location.vue +145 -0
  55. package/components/common/vm/actions/common/_customizeHardware/virtualHardware/newNetwork/NewNetwork.vue +305 -0
  56. package/components/common/vm/actions/common/_customizeHardware/virtualHardware/newNetwork/adapterType/AdapterType.vue +87 -0
  57. package/components/common/vm/actions/common/_customizeHardware/virtualHardware/newNetwork/adapterType/lib/config/options.ts +9 -0
  58. package/components/common/vm/actions/common/_customizeHardware/virtualHardware/newNetwork/macAddress/MacAddress.vue +148 -0
  59. package/components/common/vm/actions/common/_customizeHardware/virtualHardware/newNetwork/macAddress/lib/config/options.ts +11 -0
  60. package/components/common/vm/actions/common/_customizeHardware/virtualHardware/newPciDevice/NewPciDevice.vue +168 -0
  61. package/components/common/vm/actions/common/_customizeHardware/virtualHardware/newPciDevice/directPathIo/DirectPathIo.vue +48 -0
  62. package/components/common/vm/actions/common/_customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIo.vue +49 -0
  63. package/components/common/vm/actions/common/_customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/lib/config/options.ts +10 -0
  64. package/components/common/vm/actions/common/_customizeHardware/virtualHardware/newPciDevice/lib/config/options.ts +7 -0
  65. package/components/common/vm/actions/common/_customizeHardware/virtualHardware/newPciDevice/note/Note.vue +27 -0
  66. package/components/common/vm/actions/common/_customizeHardware/virtualHardware/newPciDevice/nvidiaGrid/NvidiaGrid.vue +42 -0
  67. package/components/common/vm/actions/common/_customizeHardware/virtualHardware/newPciDevice/typeSelection/TypeSelection.vue +57 -0
  68. package/components/common/vm/actions/common/_customizeHardware/virtualHardware/newUsbController/NewUsbController.vue +82 -0
  69. package/components/common/vm/actions/common/_customizeHardware/virtualHardware/newUsbController/lib/config/options.ts +6 -0
  70. package/components/common/vm/actions/common/_customizeHardware/virtualHardware/other/Other.vue +32 -0
  71. package/components/common/vm/actions/common/_customizeHardware/virtualHardware/reservation/Reservation.vue +237 -0
  72. package/components/common/vm/actions/common/_customizeHardware/virtualHardware/reservation/lib/config/options.ts +33 -0
  73. package/components/common/vm/actions/common/_customizeHardware/virtualHardware/videoCard/Graphics.vue +50 -0
  74. package/components/common/vm/actions/common/_customizeHardware/virtualHardware/videoCard/VideoCard.vue +182 -0
  75. package/components/common/vm/actions/common/_customizeHardware/virtualHardware/videoCard/lib/config/options.ts +11 -0
  76. package/components/common/vm/actions/common/_customizeHardware/virtualHardware/videoCard/model/Model.vue +59 -0
  77. package/components/common/vm/actions/common/_customizeHardware/virtualHardware/videoCard/model/lib/config/options.ts +10 -0
  78. package/components/common/vm/actions/common/_customizeHardware/virtualHardware/videoCard/numberDisplays/NumberDisplays.vue +83 -0
  79. package/components/common/vm/actions/common/_customizeHardware/virtualHardware/videoCard/numberDisplays/lib/config/options.ts +14 -0
  80. package/components/common/vm/actions/common/_customizeHardware/vmoptions/Vmoptions.vue +181 -0
  81. package/components/common/vm/actions/common/_customizeHardware/vmoptions/bootOptions/BootOptions.vue +114 -0
  82. package/components/common/vm/actions/common/_customizeHardware/vmoptions/bootOptions/Secure.vue +50 -0
  83. package/components/common/vm/actions/common/_customizeHardware/vmoptions/bootOptions/delay/Delay.vue +54 -0
  84. package/components/common/vm/actions/common/_customizeHardware/vmoptions/bootOptions/delay/lib/config/config.ts +14 -0
  85. package/components/common/vm/actions/common/_customizeHardware/vmoptions/bootOptions/firmware/Firmware.vue +84 -0
  86. package/components/common/vm/actions/common/_customizeHardware/vmoptions/bootOptions/firmware/lib/config/config.ts +11 -0
  87. package/components/common/vm/actions/common/_customizeHardware/vmoptions/bootOptions/order/Order.vue +201 -0
  88. package/components/common/vm/actions/common/_customizeHardware/vmoptions/bootOptions/order/lib/models/interfaces.ts +9 -0
  89. package/components/common/vm/actions/common/_customizeHardware/vmoptions/generalOptions/GeneralOptions.vue +192 -0
  90. package/components/common/vm/actions/common/_customizeHardware/vmoptions/lib/models/interfaces.ts +34 -0
  91. package/components/common/vm/actions/common/_customizeHardware/vmoptions/remoteConsoleOptions/PlaybackCompression.vue +52 -0
  92. package/components/common/vm/actions/common/_customizeHardware/vmoptions/remoteConsoleOptions/PowerControl.vue +50 -0
  93. package/components/common/vm/actions/common/_customizeHardware/vmoptions/remoteConsoleOptions/RemoteConsoleOptions.vue +254 -0
  94. package/components/common/vm/actions/common/_customizeHardware/vmoptions/remoteConsoleOptions/imgCompression/ImgCompression.vue +85 -0
  95. package/components/common/vm/actions/common/_customizeHardware/vmoptions/remoteConsoleOptions/imgCompression/lib/config/config.ts +14 -0
  96. package/components/common/vm/actions/common/_customizeHardware/vmoptions/remoteConsoleOptions/jpegCompression/JpegCompression.vue +85 -0
  97. package/components/common/vm/actions/common/_customizeHardware/vmoptions/remoteConsoleOptions/jpegCompression/lib/config/config.ts +12 -0
  98. package/components/common/vm/actions/common/_customizeHardware/vmoptions/remoteConsoleOptions/keymap/Keymap.vue +56 -0
  99. package/components/common/vm/actions/common/_customizeHardware/vmoptions/remoteConsoleOptions/keymap/lib/config/config.ts +6 -0
  100. package/components/common/vm/actions/common/_customizeHardware/vmoptions/remoteConsoleOptions/mouseMode/MouseMode.vue +57 -0
  101. package/components/common/vm/actions/common/_customizeHardware/vmoptions/remoteConsoleOptions/mouseMode/lib/config/config.ts +11 -0
  102. package/components/common/vm/actions/common/_customizeHardware/vmoptions/remoteConsoleOptions/password/Password.vue +142 -0
  103. package/components/common/vm/actions/common/_customizeHardware/vmoptions/remoteConsoleOptions/password/lib/models/interfaces.ts +5 -0
  104. package/components/common/vm/actions/common/_customizeHardware/vmoptions/remoteConsoleOptions/password/lib/utils.ts +12 -0
  105. package/components/common/vm/actions/common/_customizeHardware/vmoptions/remoteConsoleOptions/sharePolicy/SharePolicy.vue +56 -0
  106. package/components/common/vm/actions/common/_customizeHardware/vmoptions/remoteConsoleOptions/sharePolicy/lib/config/config.ts +11 -0
  107. package/components/common/vm/actions/common/_customizeHardware/vmoptions/remoteConsoleOptions/streamingMode/StreamingMode.vue +85 -0
  108. package/components/common/vm/actions/common/_customizeHardware/vmoptions/remoteConsoleOptions/streamingMode/lib/config/config.ts +12 -0
  109. package/components/common/vm/actions/common/_customizeHardware/vmoptions/remoteConsoleOptions/type/Type.vue +85 -0
  110. package/components/common/vm/actions/common/_customizeHardware/vmoptions/remoteConsoleOptions/type/lib/config/config.ts +7 -0
  111. package/components/common/vm/actions/common/_customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirection.vue +57 -0
  112. package/components/common/vm/actions/common/_customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/lib/config/config.ts +14 -0
  113. package/components/common/vm/actions/common/_customizeHardware/vmoptions/remoteConsoleOptions/zlibCompression/ZlibCompression.vue +85 -0
  114. package/components/common/vm/actions/common/_customizeHardware/vmoptions/remoteConsoleOptions/zlibCompression/lib/config/config.ts +12 -0
  115. package/components/common/vm/actions/common/_customizeHardware/vmoptions/tools/Tools.vue +72 -0
  116. package/components/common/vm/actions/common/customizeHardware/CustomizeHardware.vue +119 -126
  117. package/components/common/vm/actions/common/customizeHardware/CustomizeHardwareNew.vue +189 -0
  118. package/components/common/vm/actions/common/customizeHardware/CustomizeHardwareOld.vue +158 -0
  119. package/components/common/vm/actions/common/customizeHardware/lib/config/navItems.ts +17 -2
  120. package/components/common/vm/actions/common/customizeHardware/virtualHardware/VirtualHardware.vue +165 -182
  121. package/components/common/vm/actions/common/customizeHardware/virtualHardware/VirtualHardwareNew.vue +392 -0
  122. package/components/common/vm/actions/common/customizeHardware/virtualHardware/VirtualHardwareOld.vue +267 -0
  123. package/components/common/vm/actions/common/customizeHardware/virtualHardware/bus/Bus.vue +34 -93
  124. package/components/common/vm/actions/common/customizeHardware/virtualHardware/bus/BusNew.vue +118 -0
  125. package/components/common/vm/actions/common/customizeHardware/virtualHardware/bus/BusOld.vue +109 -0
  126. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/CdDvdDrive.vue +69 -111
  127. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/CdDvdDriveNew.vue +159 -0
  128. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/CdDvdDriveOld.vue +158 -0
  129. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/Media.vue +13 -45
  130. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/MediaNew.vue +55 -0
  131. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/MediaOld.vue +42 -0
  132. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/Cpu.vue +73 -139
  133. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/CpuNew.vue +185 -0
  134. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/CpuOld.vue +174 -0
  135. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/Hv.vue +90 -90
  136. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/Iommu.vue +50 -50
  137. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/Pc.vue +50 -50
  138. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/Sa.vue +98 -98
  139. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/coresPerSocket/CoresPerSocket.vue +86 -0
  140. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/coresPerSocket/CoresPerSocketNew.vue +68 -0
  141. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/coresPerSocket/CoresPerSocketOld.vue +63 -0
  142. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/cpuHotPlug/CpuHotPlug.vue +40 -0
  143. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/cpuHotPlug/CpuHotPlugNew.vue +31 -0
  144. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/cpuHotPlug/CpuHotPlugOld.vue +38 -0
  145. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/cpuModel/CpuModel.vue +121 -0
  146. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/cpuModel/CpuModelNew.vue +209 -0
  147. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/cpuModel/CpuModelOld.vue +171 -0
  148. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/maxCpu/MaxCpu.vue +94 -0
  149. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/maxCpu/MaxCpuNew.vue +40 -0
  150. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/maxCpu/MaxCpuOld.vue +51 -0
  151. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/shares/Shares.vue +29 -49
  152. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/shares/SharesNew.vue +58 -0
  153. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/shares/SharesOld.vue +76 -0
  154. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/tooltip/Tooltip.vue +10 -48
  155. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/tooltip/TooltipNew.vue +111 -0
  156. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/tooltip/TooltipOld.vue +59 -0
  157. package/components/common/vm/actions/common/customizeHardware/virtualHardware/lib/config/dropdownItems.ts +83 -2
  158. package/components/common/vm/actions/common/customizeHardware/virtualHardware/limit/Limit.vue +32 -52
  159. package/components/common/vm/actions/common/customizeHardware/virtualHardware/limit/LimitNew.vue +70 -0
  160. package/components/common/vm/actions/common/customizeHardware/virtualHardware/limit/LimitOld.vue +75 -0
  161. package/components/common/vm/actions/common/customizeHardware/virtualHardware/memory/Memory.vue +53 -94
  162. package/components/common/vm/actions/common/customizeHardware/virtualHardware/memory/MemoryNew.vue +151 -0
  163. package/components/common/vm/actions/common/customizeHardware/virtualHardware/memory/MemoryOld.vue +154 -0
  164. package/components/common/vm/actions/common/customizeHardware/virtualHardware/memory/hotPlug/HotPlug.vue +29 -0
  165. package/components/common/vm/actions/common/customizeHardware/virtualHardware/memory/hotPlug/HotPlugNew.vue +30 -0
  166. package/components/common/vm/actions/common/customizeHardware/virtualHardware/memory/hotPlug/HotPlugOld.vue +43 -0
  167. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/NewHardDisk.vue +77 -188
  168. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/NewHardDiskNew.vue +224 -0
  169. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/NewHardDiskOld.vue +240 -0
  170. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/cache/Cache.vue +21 -47
  171. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/cache/CacheNew.vue +40 -0
  172. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/cache/CacheOld.vue +57 -0
  173. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/file/File.vue +22 -0
  174. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/file/FileNew.vue +28 -0
  175. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/file/FileOld.vue +24 -0
  176. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/limitIops/LimitIops.vue +32 -85
  177. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/limitIops/LimitIopsNew.vue +63 -0
  178. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/limitIops/LimitIopsOld.vue +86 -0
  179. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/location/Location.vue +5 -16
  180. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/location/StorageModal.vue +52 -0
  181. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/location/StorageModalNew.vue +74 -0
  182. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/location/StorageModalOld.vue +1 -1
  183. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/maximumSize/MaximumSize.vue +23 -0
  184. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/maximumSize/MaximumSizeNew.vue +28 -0
  185. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/maximumSize/MaximumSizeOld.vue +25 -0
  186. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/mode/Mode.vue +24 -47
  187. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/mode/ModeNew.vue +46 -0
  188. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/mode/ModeOld.vue +57 -0
  189. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/provisioning/Provisioning.vue +24 -51
  190. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/provisioning/ProvisioningNew.vue +44 -0
  191. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/provisioning/ProvisioningOld.vue +58 -0
  192. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/sharing/Sharing.vue +24 -47
  193. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/sharing/SharingNew.vue +44 -0
  194. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/sharing/SharingOld.vue +58 -0
  195. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/NewNetwork.vue +56 -89
  196. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/NewNetworkNew.vue +124 -0
  197. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/NewNetworkOld.vue +131 -0
  198. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/adapterType/AdapterType.vue +22 -49
  199. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/adapterType/AdapterTypeNew.vue +49 -0
  200. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/adapterType/AdapterTypeOld.vue +60 -0
  201. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/macAddress/MacAddress.vue +51 -80
  202. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/macAddress/MacAddressNew.vue +69 -0
  203. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/macAddress/MacAddressOld.vue +84 -0
  204. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/directPathIo/DirectPathIo.vue +1 -1
  205. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newUsbController/NewUsbController.vue +16 -40
  206. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newUsbController/NewUsbControllerNew.vue +53 -0
  207. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newUsbController/NewUsbControllerOld.vue +61 -0
  208. package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/Other.vue +8 -24
  209. package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/OtherNew.vue +27 -0
  210. package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/OtherOld.vue +32 -0
  211. package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/inputDevices/InputDevices.vue +15 -0
  212. package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/inputDevices/InputDevicesNew.vue +33 -0
  213. package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/inputDevices/InputDevicesOld.vue +21 -0
  214. package/components/common/vm/actions/common/customizeHardware/virtualHardware/reservation/Reservation.vue +30 -71
  215. package/components/common/vm/actions/common/customizeHardware/virtualHardware/reservation/ReservationNew.vue +98 -0
  216. package/components/common/vm/actions/common/customizeHardware/virtualHardware/reservation/ReservationOld.vue +96 -0
  217. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/VideoCard.vue +39 -77
  218. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/VideoCardNew.vue +96 -0
  219. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/VideoCardOld.vue +108 -0
  220. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/model/Model.vue +16 -41
  221. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/model/ModelNew.vue +40 -0
  222. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/model/ModelOld.vue +44 -0
  223. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/numberDisplays/NumberDisplays.vue +21 -47
  224. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/numberDisplays/NumberDisplaysNew.vue +45 -0
  225. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/numberDisplays/NumberDisplaysOld.vue +56 -0
  226. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/totalVideoMemory/TotalVideoMemory.vue +105 -0
  227. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/totalVideoMemory/TotalVideoMemoryNew.vue +54 -0
  228. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/totalVideoMemory/TotalVideoMemoryOld.vue +60 -0
  229. package/components/common/vm/actions/common/customizeHardware/vmoptions/Vmoptions.vue +57 -93
  230. package/components/common/vm/actions/common/customizeHardware/vmoptions/VmoptionsNew.vue +102 -0
  231. package/components/common/vm/actions/common/customizeHardware/vmoptions/VmoptionsOld.vue +96 -0
  232. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/BootOptions.vue +39 -53
  233. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/BootOptionsNew.vue +75 -0
  234. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/BootOptionsOld.vue +80 -0
  235. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/delay/Delay.vue +13 -41
  236. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/delay/DelayNew.vue +35 -0
  237. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/delay/DelayOld.vue +41 -0
  238. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/firmware/Firmware.vue +20 -47
  239. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/firmware/FirmwareNew.vue +42 -0
  240. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/firmware/FirmwareOld.vue +56 -0
  241. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/menu/Menu.vue +20 -0
  242. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/menu/MenuNew.vue +25 -0
  243. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/menu/MenuOld.vue +36 -0
  244. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/Order.vue +13 -43
  245. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/OrderNew.vue +50 -0
  246. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/OrderOld.vue +60 -0
  247. package/components/common/vm/actions/common/customizeHardware/vmoptions/generalOptions/GeneralOptions.vue +40 -155
  248. package/components/common/vm/actions/common/customizeHardware/vmoptions/generalOptions/GeneralOptionsNew.vue +141 -0
  249. package/components/common/vm/actions/common/customizeHardware/vmoptions/generalOptions/GeneralOptionsOld.vue +137 -0
  250. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/New.vue +140 -0
  251. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/Old.vue +254 -0
  252. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/PowerControl.vue +1 -1
  253. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/RemoteConsoleOptions.vue +28 -110
  254. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/copyPaste/CopyPaste.vue +26 -0
  255. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/copyPaste/CopyPasteNew.vue +30 -0
  256. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/copyPaste/CopyPasteOld.vue +41 -0
  257. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/fileTransfer/FileTransfer.vue +26 -0
  258. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/fileTransfer/FileTransferNew.vue +30 -0
  259. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/fileTransfer/FileTransferOld.vue +41 -0
  260. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/folderSharing/FolderSharing.vue +20 -0
  261. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/folderSharing/FolderSharingNew.vue +30 -0
  262. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/folderSharing/FolderSharingOld.vue +37 -0
  263. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/keymap/Keymap.vue +16 -40
  264. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/keymap/KeymapNew.vue +39 -0
  265. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/keymap/KeymapOld.vue +43 -0
  266. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/password/Password.vue +32 -73
  267. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/password/PasswordNew.vue +100 -0
  268. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/password/PasswordOld.vue +92 -0
  269. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirection.vue +13 -42
  270. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirectionNew.vue +38 -0
  271. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirectionOld.vue +44 -0
  272. package/components/common/vm/actions/common/customizeHardware/vmoptions/tools/Tools.vue +15 -38
  273. package/components/common/vm/actions/common/customizeHardware/vmoptions/tools/ToolsNew.vue +39 -0
  274. package/components/common/vm/actions/common/customizeHardware/vmoptions/tools/ToolsOld.vue +48 -0
  275. package/package.json +2 -2
  276. /package/components/common/vm/actions/common/{customizeHardware → _customizeHardware}/virtualHardware/cpu/CoresPerSocket.vue +0 -0
  277. /package/components/common/vm/actions/common/{customizeHardware → _customizeHardware}/virtualHardware/cpu/CpuHotPlug.vue +0 -0
  278. /package/components/common/vm/actions/common/{customizeHardware → _customizeHardware}/virtualHardware/cpu/CpuModel.vue +0 -0
  279. /package/components/common/vm/actions/common/{customizeHardware → _customizeHardware}/virtualHardware/cpu/MaxCpu.vue +0 -0
  280. /package/components/common/vm/actions/common/{customizeHardware → _customizeHardware}/virtualHardware/memory/MemoryHotPlug.vue +0 -0
  281. /package/components/common/vm/actions/common/{customizeHardware → _customizeHardware}/virtualHardware/newHardDisk/DiskFile.vue +0 -0
  282. /package/components/common/vm/actions/common/{customizeHardware → _customizeHardware}/virtualHardware/newHardDisk/MaximumSize.vue +0 -0
  283. /package/components/common/vm/actions/common/{customizeHardware → _customizeHardware}/virtualHardware/newHardDisk/location/storageModalNew/StorageModalNew.vue +0 -0
  284. /package/components/common/vm/actions/common/{customizeHardware → _customizeHardware}/virtualHardware/newHardDisk/location/storageModalNew/lib/config/table.ts +0 -0
  285. /package/components/common/vm/actions/common/{customizeHardware → _customizeHardware}/virtualHardware/other/InputDevices.vue +0 -0
  286. /package/components/common/vm/actions/common/{customizeHardware → _customizeHardware}/virtualHardware/videoCard/TotalVideoMemory.vue +0 -0
  287. /package/components/common/vm/actions/common/{customizeHardware → _customizeHardware}/vmoptions/bootOptions/Menu.vue +0 -0
  288. /package/components/common/vm/actions/common/{customizeHardware → _customizeHardware}/vmoptions/remoteConsoleOptions/CopyPaste.vue +0 -0
  289. /package/components/common/vm/actions/common/{customizeHardware → _customizeHardware}/vmoptions/remoteConsoleOptions/FileTransfer.vue +0 -0
  290. /package/components/common/vm/actions/common/{customizeHardware → _customizeHardware}/vmoptions/remoteConsoleOptions/FolderSharing.vue +0 -0
@@ -0,0 +1,462 @@
1
+ <template>
2
+ <div class="hardware-hard-disk">
3
+ <atoms-stack-block
4
+ :has-children="true"
5
+ :is-roll-back="props.type === 'removed'"
6
+ :removable="isRemovable"
7
+ :test-id="`hard-disk-stack-block-${props.index}`"
8
+ @remove="onRemoveHardDisk"
9
+ @roll-back="onRollBackHardDisk"
10
+ >
11
+ <template #stackBlockKey>
12
+ <div
13
+ :id="`vm-wizard-toggle-block-hard-disk-${props.index}`"
14
+ :data-id="`vm-wizard-toggle-block-hard-disk-${props.index}`"
15
+ class="vm-wizard-toggle-block-hard-disk flex-align-center"
16
+ >
17
+ <span>{{ label }}</span>
18
+ <atoms-the-icon
19
+ v-show="hardDiskInvalid"
20
+ width="24px"
21
+ height="24px"
22
+ class="is-error tooltip-trigger"
23
+ name="info"
24
+ />
25
+ </div>
26
+ </template>
27
+ <template #stackBlockContent>
28
+ <div class="flex-align-center flex-space-between mr-1">
29
+ <template v-if="props.type === 'removed'">
30
+ <span>{{ localization.common.deviceWillRemoved }}</span>
31
+ <div class="flex-align-center" @click.stop>
32
+ <input
33
+ :id="`hard-disk-delete-files-from-datastore-${props.index}`"
34
+ v-model="deleteFilesFromDatastore"
35
+ :data-id="`hard-disk-delete-files-from-datastore-${props.index}`"
36
+ :disabled="props.disabled"
37
+ type="checkbox"
38
+ class="pointer"
39
+ @click.stop
40
+ />
41
+ <label
42
+ :for="`hard-disk-delete-files-from-datastore-${props.index}`"
43
+ :class="[
44
+ 'label-text-normal pointer',
45
+ props.disabled && 'div-disabled',
46
+ ]"
47
+ >{{ localization.common.deleteFilesFromDatastore }}</label
48
+ >
49
+ </div>
50
+ </template>
51
+ <template v-else>
52
+ <atoms-tooltip-error
53
+ :has-error="!!hardDiskLocalAndApiErrorsTexts"
54
+ :selector="`#vm-wizard-hard-disk-${props.index}`"
55
+ @remove="
56
+ emits(
57
+ 'remove-error-by-title',
58
+ `disk_devices[${props.index}].size`
59
+ )
60
+ "
61
+ >
62
+ <template #elem>
63
+ <input
64
+ :id="`vm-wizard-hard-disk-${props.index}`"
65
+ v-model.number="size"
66
+ :data-id="`vm-wizard-hard-disk-${props.index}`"
67
+ type="number"
68
+ :class="[
69
+ 'spinfree edit-setting-input input-text-color',
70
+ { 'has-error': hardDiskTypeErrorLocalText },
71
+ ]"
72
+ :disabled="isDisabledSize"
73
+ @blur="onValidateSize"
74
+ @click.stop
75
+ />
76
+ </template>
77
+ <template #content>
78
+ {{ hardDiskLocalAndApiErrorsTexts }}
79
+ </template>
80
+ </atoms-tooltip-error>
81
+ <div class="select ml-1">
82
+ <select
83
+ :id="`hard-disk-type-select-${props.index}`"
84
+ v-model="hardDiskType"
85
+ :data-id="`hard-disk-type-select-${props.index}`"
86
+ :disabled="props.type === 'exist'"
87
+ class="input-text-color"
88
+ @change="onValidateSize"
89
+ @click.stop
90
+ >
91
+ <option
92
+ v-for="(item, key) in hardDiskTypeOptions"
93
+ :key="key"
94
+ :value="item.value"
95
+ >
96
+ {{ item.text }}
97
+ </option>
98
+ </select>
99
+ </div>
100
+ </template>
101
+ </div>
102
+ </template>
103
+ <template #stackChildren>
104
+ <common-vm-actions-common-customize-hardware-virtual-hardware-new-hard-disk-maximum-size
105
+ :free-mb="maxHardDisk"
106
+ />
107
+ <common-vm-actions-common-customize-hardware-virtual-hardware-new-hard-disk-location
108
+ v-if="props.type === 'new'"
109
+ :location="location"
110
+ :index="props.index"
111
+ :error-validation-fields="props.errorValidationFields"
112
+ :get-datastore-table-func="props.getDatastoreTableFunc"
113
+ :datastore="props.datastore"
114
+ @change="onChangeStorage"
115
+ @remove-error-by-title="emits('remove-error-by-title', $event)"
116
+ />
117
+ <common-vm-actions-common-customize-hardware-virtual-hardware-new-hard-disk-file
118
+ v-else
119
+ :path="props.hardDisk?.source"
120
+ />
121
+ <common-vm-actions-common-customize-hardware-virtual-hardware-new-hard-disk-provisioning
122
+ v-model:disk-provisioning="diskProvisioning"
123
+ :index="props.index"
124
+ :error-validation-fields="props.errorValidationFields"
125
+ :disabled="(props.isEdit && props.type !== 'new') || isRunning"
126
+ @remove-error-by-title="emits('remove-error-by-title', $event)"
127
+ />
128
+ <common-vm-actions-common-customize-hardware-virtual-hardware-new-hard-disk-sharing
129
+ v-model:sharing="sharing"
130
+ :index="props.index"
131
+ :error-validation-fields="props.errorValidationFields"
132
+ :disabled="isRunning && props.type !== 'new'"
133
+ @remove-error-by-title="emits('remove-error-by-title', $event)"
134
+ />
135
+ <common-vm-actions-common-customize-hardware-virtual-hardware-new-hard-disk-limit-iops
136
+ v-model:limit-iops="limitIops"
137
+ v-model:limit-iops-type="limitIopsType"
138
+ :index="props.index"
139
+ :error-validation-fields="props.errorValidationFields"
140
+ @valid="limitIopsInvalid = $event"
141
+ @remove-error-by-title="emits('remove-error-by-title', $event)"
142
+ />
143
+ <common-vm-actions-common-customize-hardware-virtual-hardware-new-hard-disk-mode
144
+ v-model:diskMode="diskMode"
145
+ :index="props.index"
146
+ :error-validation-fields="props.errorValidationFields"
147
+ :disabled="isRunning && props.type !== 'new'"
148
+ @remove-error-by-title="emits('remove-error-by-title', $event)"
149
+ />
150
+ <common-vm-actions-common-customize-hardware-virtual-hardware-new-hard-disk-cache
151
+ v-model:cache="cache"
152
+ :index="props.index"
153
+ :error-validation-fields="props.errorValidationFields"
154
+ :disabled="(props.isEdit && props.type !== 'new') || isRunning"
155
+ @remove-error-by-title="emits('remove-error-by-title', $event)"
156
+ />
157
+ <common-vm-actions-common-customize-hardware-virtual-hardware-bus
158
+ v-model:bus="bus"
159
+ :index="props.index"
160
+ :error-validation-fields="props.errorValidationFields"
161
+ :disabled="isRunning"
162
+ :help-text="localization.common.busVirtioHelpDesc"
163
+ :test-id="`vm-wizard-disk-bus-field-${props.index}`"
164
+ component-type="disk_devices"
165
+ :guest-machine-type="props.guestMachineType"
166
+ @remove-error-by-title="emits('remove-error-by-title', $event)"
167
+ />
168
+ </template>
169
+ </atoms-stack-block>
170
+ </div>
171
+ </template>
172
+
173
+ <script setup lang="ts">
174
+ import type { UI_I_DatastoreTableItem } from '~/lib/models/store/storage/interfaces'
175
+ import type {
176
+ UI_I_SendDataNewHardDisk,
177
+ UI_I_SendDataNewHardDiskStorage,
178
+ } from '~/components/common/vm/actions/common/customizeHardware/virtualHardware/lib/models/interfaces'
179
+ import type { UI_T_HardDiskType } from '~/components/common/vm/actions/common/customizeHardware/virtualHardware/lib/models/types'
180
+ import type { UI_I_Localization } from '~/lib/models/interfaces'
181
+ import type { UI_I_ErrorValidationField } from '~/lib/models/store/interfaces'
182
+ import type { UI_I_TablePayload } from '~/lib/models/table/interfaces'
183
+ import type { UI_I_OptionItem } from '~/components/atoms/lib/models/interfaces'
184
+ import { binaryOptionsFunc } from '~/components/common/vm/actions/common/customizeHardware/virtualHardware/lib/config/binaryOptions'
185
+
186
+ const props = defineProps<{
187
+ storage: UI_I_DatastoreTableItem | null
188
+ hardDisk: UI_I_SendDataNewHardDisk
189
+ type: UI_T_HardDiskType
190
+ index: number
191
+ errorValidationFields: UI_I_ErrorValidationField<string>[]
192
+ getDatastoreTableFunc: (payload: UI_I_TablePayload) => Promise<void>
193
+ datastore: UI_I_DatastoreTableItem[]
194
+ isEdit: boolean
195
+ state?: string | number
196
+ guestMachineType?: UI_I_OptionItem | null
197
+ }>()
198
+ const emits = defineEmits<{
199
+ (event: 'send-data', value: UI_I_SendDataNewHardDisk): void
200
+ (event: 'invalid', value: boolean): void
201
+ (event: 'remove'): void
202
+ (event: 'roll-back'): void
203
+ (event: 'remove-error-by-title', value: string): void
204
+ }>()
205
+
206
+ const localization = computed<UI_I_Localization>(() => useLocal())
207
+
208
+ const isRunning = computed<boolean>(() => {
209
+ return props.state === 2
210
+ })
211
+
212
+ const isRemovable = computed<boolean>(() => {
213
+ return (
214
+ !props.isEdit ||
215
+ !isRunning.value ||
216
+ (isRunning.value && bus.value === 'virtio')
217
+ )
218
+ })
219
+
220
+ const typeError = computed<string>(() => `disk_devices[${props.index}].size`)
221
+
222
+ const apiErrorLocal = computed<string>(() => {
223
+ return (
224
+ props.errorValidationFields?.find(
225
+ (message) => message.field === typeError.value
226
+ )?.error_message || ''
227
+ )
228
+ })
229
+
230
+ const { $binary } = useNuxtApp()
231
+
232
+ const label = computed<string>(() => {
233
+ if (props.type === 'edit' || props.type === 'removed')
234
+ return `${localization.value.common.hardDisk} ${props.index + 1}`
235
+
236
+ return `${localization.value.common.newHardDisk} *`
237
+ })
238
+
239
+ const maxHardDisk = computed<number>(() => {
240
+ if (props.type === 'exist') return $binary.gbToMb(props.hardDisk.size)
241
+
242
+ if (!storage.value) return 0
243
+
244
+ if (props.isEdit)
245
+ return storage.value.capacity.free_mb + $binary.gbToMb(props.hardDisk.size)
246
+
247
+ return storage.value.capacity.free_mb
248
+ })
249
+ const hardDiskTypeErrorLocalText = computed<string>(() => {
250
+ if (+sizeInMb.value > maxHardDisk.value) {
251
+ return localization.value.common.diskCapacitySpecifiedGreater
252
+ }
253
+
254
+ if (+sizeInMb.value <= 0) {
255
+ return localization.value.common.diskCapacityCannotZero
256
+ }
257
+
258
+ return ''
259
+ })
260
+
261
+ const hardDiskLocalAndApiErrorsTexts = computed<string>(() => {
262
+ const localError = hardDiskTypeErrorLocalText.value
263
+ const apiError = apiErrorLocal.value
264
+
265
+ let result = ''
266
+ if (localError && !apiError) result = localError
267
+ if (!localError && apiError) result = apiError
268
+ if (localError && apiError) result = localError + ', ' + apiError
269
+ if (!localError && apiError) result = apiError
270
+
271
+ return result
272
+ })
273
+
274
+ const deleteFilesFromDatastore = ref<boolean>(false)
275
+
276
+ const hardDiskType = ref<string>('gb')
277
+ const hardDiskTypeOptions = ref<UI_I_OptionItem[]>(
278
+ binaryOptionsFunc(localization.value)
279
+ )
280
+
281
+ const size = ref<number>(props.hardDisk.size) // Изначально всегда приходит в gb
282
+ const sizeInMb = computed<number>(() => {
283
+ if (hardDiskType.value === 'mb') {
284
+ return size.value
285
+ }
286
+
287
+ return $binary.universalFromTo(size.value, hardDiskType.value, 'mb')
288
+ })
289
+ const onValidateSize = (): void => {
290
+ if (props.type !== 'edit') return
291
+ if (sizeInMb.value < $binary.gbToMb(props.hardDisk.size)) {
292
+ size.value = $binary.universalFromTo(
293
+ props.hardDisk.size,
294
+ 'gb',
295
+ hardDiskType.value
296
+ )
297
+ }
298
+ }
299
+
300
+ const isDisabledSize = computed<boolean>(() => {
301
+ return props.type === 'exist' || (props.type === 'edit' && readOnly.value)
302
+ })
303
+
304
+ const onRemoveHardDisk = (): void => {
305
+ emits('remove')
306
+ }
307
+ const onRollBackHardDisk = (): void => {
308
+ emits('roll-back')
309
+ }
310
+
311
+ const location = ref<UI_I_DatastoreTableItem | null>(props.storage || null)
312
+ watch(
313
+ () => props.storage,
314
+ (newValue) => {
315
+ location.value = newValue
316
+ storage.value = newValue
317
+ }
318
+ )
319
+ const storage = ref<UI_I_DatastoreTableItem | null>(props.storage)
320
+ const onChangeStorage = (item: UI_I_DatastoreTableItem): void => {
321
+ storage.value = item
322
+ }
323
+
324
+ const diskProvisioning = ref<string>('thick')
325
+ const sharing = ref<string>('')
326
+ const shares = ref<number>(0)
327
+
328
+ const limitIops = ref<number>(16)
329
+ const limitIopsType = ref<string>('unlimited')
330
+ const limitIopsInvalid = ref<boolean>(false)
331
+
332
+ const diskMode = ref<string>('dependent')
333
+
334
+ const cache = ref<string>('none')
335
+
336
+ const bus = ref<string>('ide')
337
+
338
+ const readOnly = ref<boolean>(false)
339
+
340
+ const discard = ref<string>('')
341
+
342
+ const io = ref<string>('')
343
+
344
+ const target = ref<string>('')
345
+
346
+ watch(
347
+ [
348
+ sizeInMb,
349
+ storage,
350
+ diskProvisioning,
351
+ sharing,
352
+ limitIops,
353
+ limitIopsType,
354
+ diskMode,
355
+ cache,
356
+ bus,
357
+ deleteFilesFromDatastore,
358
+ (): void => props.type,
359
+ ],
360
+ () => {
361
+ const limitIopsLocal =
362
+ limitIopsType.value === 'unlimited' ? 0 : limitIops.value
363
+ const storageLocal: UI_I_SendDataNewHardDiskStorage = {
364
+ id: storage.value?.id || '',
365
+ name: storage.value?.name || '',
366
+ type: storage.value?.type_text || '',
367
+ pool: storage.value?.pool_name || '',
368
+ user: '',
369
+ endpoint: '',
370
+ password: '',
371
+ protocol: '',
372
+ options: '',
373
+ }
374
+
375
+ emits('send-data', {
376
+ create: props.hardDisk.create,
377
+ attach: props.hardDisk.attach,
378
+ source: props.hardDisk.source,
379
+ size: Math.ceil(sizeInMb.value),
380
+ bus: bus.value,
381
+ target: target.value,
382
+ storage: storageLocal,
383
+ device_type: 'disk',
384
+ provision_type: diskProvisioning.value,
385
+ disk_mode: diskMode.value,
386
+ sharing: sharing.value === 'yes',
387
+ read_only: readOnly.value,
388
+ shares: shares.value,
389
+ cache: cache.value,
390
+ io: io.value,
391
+ limit_iops: limitIopsLocal,
392
+ discard: discard.value,
393
+ capacity: Math.ceil(sizeInMb.value),
394
+ boot_order: props.hardDisk.boot_order,
395
+ detach: props.type === 'removed',
396
+ remove: props.type === 'removed' && deleteFilesFromDatastore.value, // Проверяем если удалили диск и указали Delete files from datastore
397
+ })
398
+ },
399
+ { immediate: true }
400
+ )
401
+
402
+ // Добавляем данные для редактирования
403
+ watch(
404
+ () => props.hardDisk,
405
+ (newValue) => {
406
+ // TODO refactoring
407
+ if (props.type === 'exist') {
408
+ diskProvisioning.value = newValue.provision_type || 'thick'
409
+ return
410
+ }
411
+ if (props.type !== 'edit') return
412
+
413
+ diskProvisioning.value = newValue.provision_type || 'thick'
414
+ sharing.value = newValue.sharing ? 'yes' : ''
415
+ shares.value = newValue.shares || 0
416
+ // limitIopsType.value = newValue.io === 'native' ? 'unlimited' : 'custom'
417
+ limitIopsType.value = newValue.limit_iops === 0 ? 'unlimited' : 'custom'
418
+ limitIops.value = newValue.limit_iops || 16
419
+ diskMode.value = newValue.disk_mode || 'dependent'
420
+ cache.value = newValue.cache || 'none'
421
+ bus.value = newValue.bus || 'ide'
422
+ readOnly.value = newValue.read_only || false
423
+ discard.value = newValue.discard || ''
424
+ io.value = newValue.io || ''
425
+ target.value = newValue.target || ''
426
+ },
427
+ { immediate: true }
428
+ )
429
+ watch(
430
+ isRunning,
431
+ (newValue) => {
432
+ if (newValue && props.type === 'new') {
433
+ bus.value = 'virtio'
434
+ }
435
+ },
436
+ { immediate: true }
437
+ )
438
+
439
+ const hardDiskInvalid = computed<boolean>(() => {
440
+ return !!hardDiskTypeErrorLocalText.value || limitIopsInvalid.value
441
+ })
442
+ watch(
443
+ hardDiskInvalid,
444
+ (newValue) => {
445
+ emits('invalid', newValue)
446
+ },
447
+ { immediate: true }
448
+ )
449
+ </script>
450
+
451
+ <style scoped lang="scss">
452
+ .hardware-cpu {
453
+ #hard-disk {
454
+ width: 100px;
455
+ -webkit-appearance: none;
456
+
457
+ &.has-error {
458
+ border: 1px solid #db2100;
459
+ }
460
+ }
461
+ }
462
+ </style>
@@ -0,0 +1,81 @@
1
+ <template>
2
+ <div class="">
3
+ <atoms-stack-block :has-children="false">
4
+ <template #stackBlockKey>
5
+ {{ localization.common.cache }}
6
+ </template>
7
+ <template #stackBlockContent>
8
+ <atoms-tooltip-error
9
+ :has-error="!!apiError"
10
+ :selector="`.vm-wizard-disk-device-cache-field-${props.index}`"
11
+ @remove="onRemoveValidationError"
12
+ >
13
+ <template #elem>
14
+ <div class="select">
15
+ <select
16
+ :id="`vm-wizard-disk-device-cache-field-${props.index}`"
17
+ v-model="cacheLocal"
18
+ :data-id="`vm-wizard-disk-device-cache-field-${props.index}`"
19
+ :class="`vm-wizard-disk-device-cache-field-${props.index}`"
20
+ :disabled="props.disabled"
21
+ >
22
+ <option
23
+ v-for="(item, key) in cacheOptions"
24
+ :key="key"
25
+ :value="item.value"
26
+ >
27
+ {{ item.text }}
28
+ </option>
29
+ </select>
30
+ </div>
31
+ </template>
32
+ <template #content>{{ apiError }}</template>
33
+ </atoms-tooltip-error>
34
+ </template>
35
+ </atoms-stack-block>
36
+ </div>
37
+ </template>
38
+
39
+ <script setup lang="ts">
40
+ import type { UI_I_Localization } from '~/lib/models/interfaces'
41
+ import type { UI_I_ErrorValidationField } from '~/lib/models/store/interfaces'
42
+ import { cacheOptions } from '~/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/cache/lib/config/options'
43
+
44
+ const localization = computed<UI_I_Localization>(() => useLocal())
45
+
46
+ const props = defineProps<{
47
+ cache: string
48
+ index: number
49
+ disabled: boolean
50
+ errorValidationFields: UI_I_ErrorValidationField[]
51
+ }>()
52
+ const emits = defineEmits<{
53
+ (event: 'update:cache', value: string): void
54
+ (event: 'remove-error-by-title', value: string): void
55
+ }>()
56
+
57
+ const cacheLocal = computed<string>({
58
+ get() {
59
+ return props.cache
60
+ },
61
+ set(newValue) {
62
+ emits('update:cache', newValue)
63
+ },
64
+ })
65
+
66
+ const typeError = computed<string>(() => `disk_devices[${props.index}].cache`)
67
+
68
+ const apiError = computed<string>(() => {
69
+ return (
70
+ props.errorValidationFields?.find(
71
+ (message) => message.field === typeError.value
72
+ )?.error_message || ''
73
+ )
74
+ })
75
+
76
+ const onRemoveValidationError = (): void => {
77
+ emits('remove-error-by-title', typeError.value)
78
+ }
79
+ </script>
80
+
81
+ <style scoped></style>
@@ -0,0 +1,7 @@
1
+ export const cacheOptions = [
2
+ { text: 'None', value: 'none' },
3
+ { text: 'Write Through', value: 'writethrough' },
4
+ { text: 'Write Back', value: 'writeback' },
5
+ { text: 'Direct Sync', value: 'directsync' },
6
+ { text: 'Unsafe', value: 'unsafe' },
7
+ ]
@@ -0,0 +1,153 @@
1
+ <template>
2
+ <div class="">
3
+ <atoms-stack-block :has-children="false">
4
+ <template #stackBlockKey>
5
+ {{ localization.common.limitIops }}
6
+ </template>
7
+ <template #stackBlockContent>
8
+ <div class="flex-align-center">
9
+ <atoms-tooltip-error
10
+ :has-error="!!apiError"
11
+ :selector="`.vm-wizard-disk-device-io-field-${props.index}`"
12
+ @remove="onRemoveValidationError"
13
+ >
14
+ <template #elem>
15
+ <div class="select mr-1">
16
+ <select
17
+ :id="`vm-wizard-disk-device-io-field-${props.index}`"
18
+ v-model="limitIopsTypeLocal"
19
+ :data-id="`vm-wizard-disk-device-io-field-${props.index}`"
20
+ :class="`vm-wizard-disk-device-io-field-${props.index}`"
21
+ @click.stop
22
+ >
23
+ <option
24
+ v-for="(item, key) in limitIopsTypeOptions"
25
+ :key="key"
26
+ :value="item.value"
27
+ >
28
+ {{ item.text }}
29
+ </option>
30
+ </select>
31
+ </div>
32
+ </template>
33
+ <template #content>{{ apiError }}</template>
34
+ </atoms-tooltip-error>
35
+
36
+ <atoms-combobox
37
+ v-show="limitIopsType !== 'unlimited'"
38
+ v-model.number="limitIopsLocal"
39
+ :items="limitIopsOptions"
40
+ :test-id="`limit-iops-combobox-${props.index}`"
41
+ @click.stop
42
+ />
43
+ <div v-show="limitIopsErrorText" class="flex-align-center">
44
+ <atoms-tooltip>
45
+ <template #elem>
46
+ <atoms-the-icon
47
+ width="24px"
48
+ height="24px"
49
+ class="is-error tooltip-trigger"
50
+ name="info"
51
+ />
52
+ </template>
53
+ <template #content>
54
+ {{ limitIopsErrorText }}
55
+ </template>
56
+ </atoms-tooltip>
57
+ </div>
58
+ </div>
59
+ </template>
60
+ </atoms-stack-block>
61
+ </div>
62
+ </template>
63
+
64
+ <script setup lang="ts">
65
+ import type { UI_I_Localization } from '~/lib/models/interfaces'
66
+ import type { UI_I_ErrorValidationField } from '~/lib/models/store/interfaces'
67
+ import type { UI_I_OptionItem } from '~/components/atoms/lib/models/interfaces'
68
+ import {
69
+ limitIopsOptionsFunc,
70
+ limitIopsTypeOptionsFunc,
71
+ } from '~/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/limitIops/lib/config/options'
72
+
73
+ const localization = computed<UI_I_Localization>(() => useLocal())
74
+
75
+ const props = defineProps<{
76
+ limitIops: number
77
+ limitIopsType: string
78
+ index: number
79
+ errorValidationFields: UI_I_ErrorValidationField<string>[]
80
+ }>()
81
+ const emits = defineEmits<{
82
+ (event: 'update:limit-iops', value: number): void
83
+ (event: 'update:limit-iops-type', value: string): void
84
+ (event: 'valid', value: boolean): void
85
+ (event: 'remove-error-by-title', value: string): void
86
+ }>()
87
+
88
+ const limitIopsTypeOptions = ref<UI_I_OptionItem[]>(
89
+ limitIopsTypeOptionsFunc(localization.value)
90
+ )
91
+
92
+ const minLimitIops = 16
93
+ const maxLimitIops = 2_147_483_647
94
+ const limitIopsOptions = ref<UI_I_OptionItem[]>(
95
+ limitIopsOptionsFunc(localization.value, minLimitIops, maxLimitIops)
96
+ )
97
+
98
+ const limitIopsLocal = computed<number>({
99
+ get() {
100
+ return props.limitIops
101
+ },
102
+ set(newValue) {
103
+ emits('update:limit-iops', +newValue)
104
+ },
105
+ })
106
+ const limitIopsTypeLocal = computed<string>({
107
+ get() {
108
+ return props.limitIopsType
109
+ },
110
+ set(newValue) {
111
+ emits('update:limit-iops-type', newValue)
112
+ },
113
+ })
114
+
115
+ const limitIopsErrorText = computed<string>(() => {
116
+ if (limitIopsTypeLocal.value === 'unlimited') return ''
117
+
118
+ const validValue = /^\d+(\.\d+)?$/.test(props.limitIops + '')
119
+ if (!validValue) {
120
+ return localization.value.common.inputContainsInvalidCharacters
121
+ }
122
+
123
+ if (+props.limitIops < minLimitIops || +props.limitIops > maxLimitIops) {
124
+ return localization.value.common.enterValueBetween
125
+ .replace('{0}', '' + minLimitIops)
126
+ .replace('{1}', '' + maxLimitIops)
127
+ }
128
+ return ''
129
+ })
130
+ watch(
131
+ limitIopsErrorText,
132
+ (newValue) => {
133
+ emits('valid', !!newValue)
134
+ },
135
+ { immediate: true }
136
+ )
137
+
138
+ const typeError = computed<string>(() => `disk_devices[${props.index}].io`)
139
+
140
+ const apiError = computed<string>(() => {
141
+ return (
142
+ props.errorValidationFields?.find(
143
+ (message) => message.field === typeError.value
144
+ )?.error_message || ''
145
+ )
146
+ })
147
+
148
+ const onRemoveValidationError = (): void => {
149
+ emits('remove-error-by-title', typeError.value)
150
+ }
151
+ </script>
152
+
153
+ <style scoped></style>