bfg-common 1.5.420 → 1.5.421

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 (300) hide show
  1. package/CODE_STYLE.md +109 -109
  2. package/assets/img/icons/icons-sprite-dark-3.svg +227 -227
  3. package/assets/img/icons/icons-sprite-dark-5.svg +488 -488
  4. package/assets/img/icons/icons-sprite-light-3.svg +227 -227
  5. package/assets/img/icons/icons-sprite-light-5.svg +488 -488
  6. package/assets/scss/common/theme.scss +214 -0
  7. package/components/atoms/TheIcon3.vue +50 -50
  8. package/components/atoms/collapse/CollapseNav.vue +170 -170
  9. package/components/atoms/perPage/PerPage.vue +58 -58
  10. package/components/atoms/table/dataGrid/lib/config/settingsTable.ts +94 -94
  11. package/components/atoms/table/dataGrid/lib/utils/export.ts +16 -16
  12. package/components/common/backup/storage/actions/add/lib/config/steps.ts +168 -168
  13. package/components/common/backup/storage/actions/add/steps/hostAccessibility/table/old/lib/config/incompatibleTable.ts +3 -3
  14. package/components/common/backup/storage/actions/add/steps/readyComplete/ReadyComplete.vue +45 -45
  15. package/components/common/browse/blocks/contents/filesNew/Skeleton.vue +18 -18
  16. package/components/common/context/lib/models/interfaces.ts +33 -33
  17. package/components/common/diagramMain/modals/lib/config/networkModal.ts +398 -398
  18. package/components/common/layout/theHeader/helpMenu/About.vue +82 -82
  19. package/components/common/pages/backups/Backups.vue +102 -102
  20. package/components/common/pages/backups/DetailView.vue +52 -52
  21. package/components/common/pages/backups/lib/models/interfaces.ts +36 -36
  22. package/components/common/pages/backups/modals/Modals.vue +226 -226
  23. package/components/common/pages/backups/modals/createBackup/CreateBackup.vue +353 -353
  24. package/components/common/pages/backups/modals/createBackup/configuration/Configuration.vue +29 -29
  25. package/components/common/pages/backups/modals/createBackup/configuration/backupWindow/BackupWindow.vue +26 -26
  26. package/components/common/pages/backups/modals/createBackup/configuration/maxBandwidth/MaxBandwidth.vue +66 -66
  27. package/components/common/pages/backups/modals/createBackup/configuration/maxBandwidth/lib/config/options.ts +6 -6
  28. package/components/common/pages/backups/modals/createBackup/configuration/strategy/Strategy.vue +35 -35
  29. package/components/common/pages/backups/modals/createBackup/datastores/Datastores.vue +59 -59
  30. package/components/common/pages/backups/modals/createBackup/datastores/tableView/TableView.vue +95 -95
  31. package/components/common/pages/backups/modals/createBackup/datastores/tableView/lib/config/table.ts +119 -119
  32. package/components/common/pages/backups/modals/createBackup/disks/tableView/lib/config/table.ts +117 -117
  33. package/components/common/pages/backups/modals/createBackup/general/General.vue +48 -48
  34. package/components/common/pages/backups/modals/createBackup/lib/config/steps.ts +117 -117
  35. package/components/common/pages/backups/modals/createBackup/lib/config/strategyOptions.ts +12 -12
  36. package/components/common/pages/backups/modals/lib/config/restore.ts +115 -115
  37. package/components/common/pages/backups/modals/lib/models/interfaces.ts +185 -185
  38. package/components/common/pages/backups/modals/restore/Restore.vue +417 -417
  39. package/components/common/pages/backups/modals/restore/disks/Disks.vue +27 -27
  40. package/components/common/pages/backups/modals/restore/disks/tableView/TableView.vue +102 -102
  41. package/components/common/pages/backups/modals/restore/disks/tableView/lib/config/table.ts +117 -117
  42. package/components/common/pages/backups/modals/restore/lib/config/steps.ts +108 -108
  43. package/components/common/pages/backups/modals/restore/name/Name.vue +160 -160
  44. package/components/common/pages/backups/modals/restore/name/lib/models/interfaces.ts +6 -6
  45. package/components/common/pages/backups/modals/restore/networks/Networks.vue +67 -67
  46. package/components/common/pages/backups/modals/restore/networks/table/Table.vue +214 -214
  47. package/components/common/pages/backups/modals/restore/types/lib/config/typeOptions.ts +25 -25
  48. package/components/common/pages/backups/tools/Tools.vue +75 -75
  49. package/components/common/pages/backups/tools/lib/config/tabs.ts +36 -36
  50. package/components/common/pages/home/headline/HeadlineOld.vue +42 -42
  51. package/components/common/pages/home/lib/models/interfaces.ts +48 -48
  52. package/components/common/pages/home/widgets/hosts/Hosts.vue +27 -27
  53. package/components/common/pages/home/widgets/hosts/lib/config/items.ts +23 -23
  54. package/components/common/pages/home/widgets/vms/VmsOld.vue +35 -35
  55. package/components/common/pages/home/widgets/vms/lib/config/items.ts +19 -19
  56. package/components/common/pages/home/widgets/warnings/lib/config/config.ts +2 -2
  57. package/components/common/pages/scheduledTasks/lib/utils/utils.ts +84 -84
  58. package/components/common/readyToComplete/ReadyToComplete.vue +17 -17
  59. package/components/common/resource/simple/Simple.vue +10 -3
  60. package/components/common/select/button/ButtonDropdown.vue +112 -112
  61. package/components/common/select/radio/RadioGroup.vue +137 -137
  62. package/components/common/selectLanguage/SelectLanguage.vue +1 -1
  63. package/components/common/spiceConsole/Drawer.vue +381 -381
  64. package/components/common/spiceConsole/SpiceConsole.vue +127 -127
  65. package/components/common/spiceConsole/keyboard/Keyboard.vue +1 -1
  66. package/components/common/spiceConsole/lib/models/interfaces.ts +5 -5
  67. package/components/common/split/horizontal/HorizontalNew.vue +5 -22
  68. package/components/common/split/horizontal/HorizontalOld.vue +3 -10
  69. package/components/common/split/vertical/VerticalNew.vue +2 -13
  70. package/components/common/split/vertical/VerticalOld.vue +1 -1
  71. package/components/common/summary/notification/NotificationNew.vue +4 -20
  72. package/components/common/titleBar/titleBarNew/notification/Notification.vue +0 -31
  73. package/components/common/tools/Actions.vue +207 -207
  74. package/components/common/tooltip/Help.vue +5 -18
  75. package/components/common/tooltip/lib/models/types.ts +1 -1
  76. package/components/common/treeView/TreeView.vue +52 -52
  77. package/components/common/vm/actions/add/Add.vue +35 -26
  78. package/components/common/vm/actions/add/New.vue +54 -55
  79. package/components/common/vm/actions/add/Old.vue +398 -388
  80. package/components/common/vm/actions/add/folderTreeView/FolderTreeView.vue +72 -72
  81. package/components/common/vm/actions/add/folderTreeView/New.vue +40 -40
  82. package/components/common/vm/actions/add/folderTreeView/Old.vue +50 -50
  83. package/components/common/vm/actions/clone/Clone.vue +823 -823
  84. package/components/common/vm/actions/clone/lib/config/steps.ts +291 -291
  85. package/components/common/vm/actions/clone/toTemplate/ToTemplate.vue +32 -36
  86. package/components/common/vm/actions/clone/toTemplate/lib/config/steps.ts +116 -116
  87. package/components/common/vm/actions/common/customizeHardware/CustomizeHardware.vue +61 -37
  88. package/components/common/vm/actions/common/customizeHardware/CustomizeHardwareNew.vue +61 -46
  89. package/components/common/vm/actions/common/customizeHardware/CustomizeHardwareOld.vue +59 -36
  90. package/components/common/vm/actions/common/customizeHardware/virtualHardware/VirtualHardware.vue +50 -31
  91. package/components/common/vm/actions/common/customizeHardware/virtualHardware/VirtualHardwareNew.vue +64 -68
  92. package/components/common/vm/actions/common/customizeHardware/virtualHardware/VirtualHardwareOld.vue +339 -321
  93. package/components/common/vm/actions/common/customizeHardware/virtualHardware/browseView/BrowseView.vue +232 -227
  94. package/components/common/vm/actions/common/customizeHardware/virtualHardware/bus/Bus.vue +110 -100
  95. package/components/common/vm/actions/common/customizeHardware/virtualHardware/bus/BusNew.vue +16 -10
  96. package/components/common/vm/actions/common/customizeHardware/virtualHardware/bus/BusOld.vue +16 -10
  97. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/CdDvdDrive.vue +239 -232
  98. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/CdDvdDriveNew.vue +24 -18
  99. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/CdDvdDriveOld.vue +174 -168
  100. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/Media.vue +25 -25
  101. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/MediaNew.vue +70 -78
  102. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/MediaOld.vue +50 -50
  103. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/Cpu.vue +16 -11
  104. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/CpuNew.vue +48 -51
  105. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/CpuOld.vue +20 -15
  106. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/model/ModelNew.vue +4 -4
  107. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/shares/Shares.vue +140 -140
  108. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/shares/lib/config/options.ts +28 -28
  109. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/tooltip/TooltipNew.vue +153 -154
  110. package/components/common/vm/actions/common/customizeHardware/virtualHardware/limit/Limit.vue +221 -220
  111. package/components/common/vm/actions/common/customizeHardware/virtualHardware/memory/Memory.vue +313 -307
  112. package/components/common/vm/actions/common/customizeHardware/virtualHardware/memory/hotPlug/HotPlugNew.vue +2 -2
  113. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/NewHardDisk.vue +392 -385
  114. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/NewHardDiskNew.vue +34 -42
  115. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/NewHardDiskOld.vue +50 -40
  116. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/cache/Cache.vue +6 -6
  117. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/file/FileNew.vue +0 -8
  118. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/file/FileOld.vue +2 -2
  119. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/limitIops/LimitIops.vue +2 -2
  120. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/limitIops/lib/config/options.ts +4 -0
  121. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/location/Location.vue +154 -154
  122. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/location/LocationOld.vue +85 -85
  123. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/location/storageModal/StorageModal.vue +13 -8
  124. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/location/storageModal/new/New.vue +15 -12
  125. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/maximumSize/MaximumSize.vue +23 -23
  126. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/maximumSize/MaximumSizeNew.vue +2 -10
  127. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/maximumSize/MaximumSizeOld.vue +1 -2
  128. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/NewNetwork.vue +293 -288
  129. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/NewNetworkNew.vue +20 -15
  130. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/NewNetworkOld.vue +1 -1
  131. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/location/new/New.vue +1 -1
  132. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/location/new/table/lib/config/config.ts +94 -94
  133. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/macAddress/MacAddress.vue +119 -119
  134. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/NewPciDevice.vue +210 -205
  135. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/NewPciDeviceNew.vue +5 -2
  136. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/NewPciDeviceOld.vue +1 -1
  137. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/directPathIo/DirectPathIoNew.vue +66 -66
  138. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/directPathIo/DirectPathIoOld.vue +62 -62
  139. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIo.vue +31 -31
  140. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIoOld.vue +76 -76
  141. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/Note.vue +15 -15
  142. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/NoteNew.vue +42 -42
  143. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/NoteOld.vue +30 -30
  144. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/nvidiaGrid/NvidiaGridOld.vue +84 -84
  145. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newUsbController/NewUsbController.vue +3 -3
  146. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newUsbController/NewUsbControllerNew.vue +2 -2
  147. package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/Other.vue +16 -16
  148. package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/OtherNew.vue +1 -1
  149. package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/OtherOld.vue +1 -1
  150. package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/inputDevices/InputDevicesNew.vue +0 -10
  151. package/components/common/vm/actions/common/customizeHardware/virtualHardware/reservation/Reservation.vue +1 -0
  152. package/components/common/vm/actions/common/customizeHardware/virtualHardware/reservation/ReservationNew.vue +1 -0
  153. package/components/common/vm/actions/common/customizeHardware/virtualHardware/reservation/ReservationOld.vue +1 -0
  154. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/VideoCard.vue +162 -154
  155. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/VideoCardNew.vue +17 -12
  156. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/VideoCardOld.vue +17 -12
  157. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/model/Model.vue +3 -5
  158. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/numberDisplays/NumberDisplays.vue +53 -53
  159. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/totalVideoMemory/TotalVideoMemory.vue +6 -4
  160. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/totalVideoMemory/lib/config/options.ts +3 -0
  161. package/components/common/vm/actions/common/customizeHardware/vmoptions/Vmoptions.vue +163 -155
  162. package/components/common/vm/actions/common/customizeHardware/vmoptions/VmoptionsNew.vue +138 -130
  163. package/components/common/vm/actions/common/customizeHardware/vmoptions/VmoptionsOld.vue +120 -113
  164. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/BootOptions.vue +15 -9
  165. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/BootOptionsNew.vue +1 -1
  166. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/BootOptionsOld.vue +19 -14
  167. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/Secure.vue +1 -1
  168. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/delay/Delay.vue +32 -32
  169. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/delay/DelayNew.vue +1 -1
  170. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/delay/DelayOld.vue +2 -2
  171. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/firmware/Firmware.vue +60 -60
  172. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/firmware/FirmwareNew.vue +1 -1
  173. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/firmware/FirmwareOld.vue +1 -1
  174. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/menu/MenuNew.vue +1 -1
  175. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/menu/MenuOld.vue +1 -1
  176. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/Order.vue +174 -174
  177. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/OrderNew.vue +2 -2
  178. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/OrderOld.vue +1 -1
  179. package/components/common/vm/actions/common/customizeHardware/vmoptions/generalOptions/GeneralOptions.vue +101 -95
  180. package/components/common/vm/actions/common/customizeHardware/vmoptions/generalOptions/GeneralOptionsNew.vue +1 -1
  181. package/components/common/vm/actions/common/customizeHardware/vmoptions/generalOptions/GeneralOptionsOld.vue +158 -155
  182. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/New.vue +1 -1
  183. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/Old.vue +7 -7
  184. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/PowerControl.vue +2 -2
  185. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/RemoteConsoleOptions.vue +15 -9
  186. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/copyPaste/CopyPasteNew.vue +1 -1
  187. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/fileTransfer/FileTransferNew.vue +1 -1
  188. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/keymap/Keymap.vue +32 -32
  189. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/keymap/KeymapOld.vue +44 -44
  190. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/password/Password.vue +103 -103
  191. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/sharePolicy/SharePolicy.vue +2 -2
  192. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirection.vue +28 -28
  193. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirectionOld.vue +44 -44
  194. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/zlibCompression/ZlibCompression.vue +2 -2
  195. package/components/common/vm/actions/common/customizeHardware/vmoptions/tools/ToolsNew.vue +3 -3
  196. package/components/common/vm/actions/common/customizeHardware/vmoptions/tools/ToolsOld.vue +17 -12
  197. package/components/common/vm/actions/common/select/compatibility/New.vue +0 -18
  198. package/components/common/vm/actions/common/select/compatibility/Old.vue +107 -107
  199. package/components/common/vm/actions/common/select/computeResource/ComputeResource.vue +143 -143
  200. package/components/common/vm/actions/common/select/computeResource/New.vue +168 -184
  201. package/components/common/vm/actions/common/select/computeResource/treeView/Old.vue +1 -1
  202. package/components/common/vm/actions/common/select/computeResource/treeView/TreeView.vue +131 -131
  203. package/components/common/vm/actions/common/select/createType/CreateType.vue +38 -38
  204. package/components/common/vm/actions/common/select/createType/New.vue +0 -16
  205. package/components/common/vm/actions/common/select/createType/Old.vue +0 -9
  206. package/components/common/vm/actions/common/select/createType/lib/config/items.ts +48 -48
  207. package/components/common/vm/actions/common/select/createType/lib/models/interfaces.ts +5 -5
  208. package/components/common/vm/actions/common/select/name/Name.vue +13 -7
  209. package/components/common/vm/actions/common/select/name/New.vue +15 -30
  210. package/components/common/vm/actions/common/select/name/Old.vue +11 -8
  211. package/components/common/vm/actions/common/select/options/New.vue +8 -3
  212. package/components/common/vm/actions/common/select/options/Old.vue +10 -5
  213. package/components/common/vm/actions/common/select/options/Options.vue +8 -3
  214. package/components/common/vm/actions/common/select/os/New.vue +0 -10
  215. package/components/common/vm/actions/common/select/os/Old.vue +152 -152
  216. package/components/common/vm/actions/common/select/os/Os.vue +139 -139
  217. package/components/common/vm/actions/common/select/storage/Old.vue +13 -10
  218. package/components/common/vm/actions/common/select/storage/Storage.vue +164 -155
  219. package/components/common/vm/actions/common/select/storage/new/New.vue +278 -300
  220. package/components/common/vm/actions/common/select/storage/new/lib/models/interfaces.ts +5 -5
  221. package/components/common/vm/actions/common/select/storage/new/lib/utils/utils.ts +21 -21
  222. package/components/common/vm/actions/common/select/template/old/Old.vue +50 -50
  223. package/components/common/vm/actions/common/select/template/treeView/New.vue +0 -10
  224. package/components/common/vm/actions/common/select/template/treeView/Old.vue +1 -1
  225. package/components/common/vm/actions/confirm/Confirm.vue +11 -6
  226. package/components/common/vm/actions/editSettings/EditSettings.vue +252 -242
  227. package/components/common/vm/actions/editSettings/EditSettingsOld.vue +35 -24
  228. package/components/common/vm/actions/editSettings/new/New.vue +34 -23
  229. package/components/common/vm/actions/editSettings/new/Skeleton.vue +88 -88
  230. package/components/common/vmt/actions/add/Add.vue +25 -19
  231. package/components/common/vmt/actions/add/New.vue +1 -0
  232. package/components/common/vmt/actions/add/Old.vue +0 -10
  233. package/components/common/vmt/actions/add/lib/models/interfaces.ts +23 -23
  234. package/components/common/wizards/datastore/add/Add.vue +14 -7
  235. package/components/common/wizards/datastore/add/New.vue +24 -17
  236. package/components/common/wizards/datastore/add/Old.vue +18 -14
  237. package/components/common/wizards/datastore/add/lib/config/steps.ts +2 -1
  238. package/components/common/wizards/datastore/add/lib/models/enums.ts +1 -1
  239. package/components/common/wizards/datastore/add/steps/hostAccessibility/HostAccessibility.vue +9 -4
  240. package/components/common/wizards/datastore/add/steps/hostAccessibility/HostAccessibilityNew.vue +10 -5
  241. package/components/common/wizards/datastore/add/steps/hostAccessibility/HostAccessibilityOld.vue +12 -7
  242. package/components/common/wizards/datastore/add/steps/hostAccessibility/table/Table.vue +0 -2
  243. package/components/common/wizards/datastore/add/steps/hostAccessibility/table/new/New.vue +3 -3
  244. package/components/common/wizards/datastore/add/steps/hostAccessibility/table/old/Old.vue +5 -5
  245. package/components/common/wizards/datastore/add/steps/hostAccessibility/table/old/lib/config/incompatibleTable.ts +3 -3
  246. package/components/common/wizards/datastore/add/steps/nameAndConfigure/NameAndConfigure.vue +0 -2
  247. package/components/common/wizards/datastore/add/steps/nameAndConfigure/NameAndConfigureNew.vue +27 -26
  248. package/components/common/wizards/datastore/add/steps/nameAndConfigure/NameAndConfigureOld.vue +5 -11
  249. package/components/common/wizards/datastore/add/steps/nameAndConfigure/_serversList/DeletePopover.vue +0 -9
  250. package/components/common/wizards/datastore/add/steps/nameAndConfigure/_serversList/ServersList.vue +9 -4
  251. package/components/common/wizards/datastore/add/steps/nameAndDevice/NameAndDevice.vue +18 -14
  252. package/components/common/wizards/datastore/add/steps/nameAndDevice/NameAndDeviceNew.vue +20 -15
  253. package/components/common/wizards/datastore/add/steps/nameAndDevice/NameAndDeviceOld.vue +26 -17
  254. package/components/common/wizards/datastore/add/steps/nameAndDevice/table/Table.vue +12 -17
  255. package/components/common/wizards/datastore/add/steps/nameAndDevice/table/new/New.vue +2 -13
  256. package/components/common/wizards/datastore/add/steps/nameAndDevice/table/new/lib/config/lunDiskTable.ts +14 -14
  257. package/components/common/wizards/datastore/add/steps/nameAndDevice/table/new/lib/models/enums.ts +3 -3
  258. package/components/common/wizards/datastore/add/steps/nameAndDevice/table/old/Old.vue +18 -13
  259. package/components/common/wizards/datastore/add/steps/readyComplete/ReadyCompleteNew.vue +1 -1
  260. package/components/common/wizards/datastore/add/steps/typeMode/lib/config/typeOptions.ts +43 -43
  261. package/components/common/wizards/network/add/Add.vue +2 -2
  262. package/components/common/wizards/network/add/lib/models/interfaces.ts +2 -2
  263. package/components/common/wizards/network/add/modals/SelectNetwork.vue +7 -5
  264. package/components/common/wizards/network/add/modals/SelectStandardSwitch.vue +7 -15
  265. package/components/common/wizards/network/add/modals/SelectSwitch.vue +7 -15
  266. package/components/common/wizards/network/add/modals/lib/models/interfaces.ts +21 -0
  267. package/components/common/wizards/network/add/steps/ConnectionSettings.vue +3 -3
  268. package/components/common/wizards/network/add/steps/CreateStandardSwitch.vue +3 -3
  269. package/components/common/wizards/network/add/steps/IpFourSettings.vue +6 -6
  270. package/components/common/wizards/network/add/steps/PhysicalAdapter.vue +2 -2
  271. package/components/common/wizards/network/add/steps/PortProperties.vue +12 -12
  272. package/components/common/wizards/network/add/steps/SelectConnectionType.vue +112 -104
  273. package/components/common/wizards/network/add/steps/SelectedTargetDevice.vue +467 -467
  274. package/components/common/wizards/vm/common/computeResource/TreeView.vue +1 -1
  275. package/components/common/wizards/vm/common/validation/compatibility/Compatibility.vue +1 -1
  276. package/components/common/wizards/vm/migrate/Migrate.vue +353 -349
  277. package/components/common/wizards/vm/migrate/lib/config/constructDataReady.ts +221 -220
  278. package/components/common/wizards/vm/migrate/lib/config/steps.ts +157 -157
  279. package/components/common/wizards/vm/migrate/lib/validations.ts +68 -68
  280. package/components/common/wizards/vm/migrate/select/computeResource/ComputeResource.vue +13 -8
  281. package/components/common/wizards/vm/migrate/select/computeResource/tableView/lib/config/tableKeys.ts +8 -8
  282. package/components/common/wizards/vm/migrate/select/computeResource/tableView/lib/models/types.ts +4 -4
  283. package/components/common/wizards/vm/migrate/select/network/Network.vue +103 -103
  284. package/components/common/wizards/vm/migrate/select/network/table/network/lib/config/advancedTable.ts +91 -91
  285. package/components/common/wizards/vm/migrate/select/network/table/network/lib/config/basicTable.ts +1 -1
  286. package/components/common/wizards/vm/migrate/select/targetServer/new/New.vue +4 -7
  287. package/components/common/wizards/vm/migrate/select/type/lib/config/typeOptions.ts +45 -45
  288. package/composables/productNameLocal.ts +30 -30
  289. package/composables/useAppVersion.ts +21 -21
  290. package/lib/models/enums.ts +1 -1
  291. package/package.json +1 -1
  292. package/plugins/date.ts +233 -233
  293. package/plugins/panelStates.ts +70 -70
  294. package/plugins/text.ts +59 -59
  295. package/public/spice-console/lib/images/bitmap.js +203 -203
  296. package/public/spice-console/network/spicechannel.js +390 -390
  297. package/store/main/mutations.ts +7 -7
  298. package/store/main/state.ts +7 -7
  299. package/store/tasks/lib/models/enums.ts +4 -4
  300. package/store/tasks/mappers/recentTasks.ts +79 -79
@@ -1,417 +1,417 @@
1
- <template>
2
- <div class="restore">
3
- <atoms-wizard
4
- show
5
- :wizard="wizard"
6
- :selected-scheme="selectedScheme"
7
- :title="localization.common.restore"
8
- :localization="localization"
9
- test-id="restore"
10
- @change-steps="onChangeSteps"
11
- @hide="onHideModal"
12
- @submit="onRestore"
13
- >
14
- <template #modalBody="{ selectedStep }">
15
- <div
16
- v-show="isLoading"
17
- class="loader-wrap absolute left-0 right-0 top-0 bottom-0"
18
- >
19
- <atoms-loader-pre-loader
20
- id="loader"
21
- :show="isLoading"
22
- class="absolute-center"
23
- test-id="backup-restore-spinner"
24
- />
25
- </div>
26
- <atoms-alert
27
- v-show="errors.length"
28
- :items="errors"
29
- status="alert-danger"
30
- test-id="restore-alert"
31
- @remove="onRemoveValidationErrors"
32
- />
33
-
34
- <common-pages-backups-modals-restore-types
35
- v-show="selectedStep.id === dynamicSteps.selectType"
36
- v-model="model"
37
- />
38
-
39
- <common-pages-backups-modals-restore-name
40
- v-show="selectedStep.id === dynamicSteps.selectName"
41
- v-model="model"
42
- :show="selectedStep.id === dynamicSteps.selectName"
43
- :name-form-submit="nameFormSubmit"
44
- @check-name="onCheckName"
45
- />
46
-
47
- <!-- TODO refactoring-->
48
- <common-vm-actions-common-select-storage
49
- v-show="selectedStep.id === dynamicSteps.selectStorage"
50
- :storage-submit="storageSubmit"
51
- :datastore="props.datastore"
52
- :is-datastore-loading="props.datastoreLoading"
53
- :storage="model.pvm.storage"
54
- :get-datastore-table-func="getDatastoreTableFunc"
55
- @submit="onChangeStorage"
56
- />
57
-
58
- <common-pages-backups-modals-restore-disks
59
- v-show="selectedStep.id === dynamicSteps.selectDisks"
60
- v-model="model"
61
- />
62
- <common-pages-backups-modals-restore-networks
63
- v-if="selectedStep.id === dynamicSteps.selectNetwork"
64
- v-model="model"
65
- :alert-messages="[]"
66
- :networks="props.networks"
67
- @get-networks="onGetNetworks"
68
- />
69
-
70
- <common-ready-to-complete
71
- v-show="selectedStep.id === dynamicSteps.readyComplete"
72
- :data="readyToCompleteInfo"
73
- />
74
- </template>
75
- </atoms-wizard>
76
- </div>
77
-
78
- <common-modals-confirmation
79
- v-if="isShowConfirm"
80
- :headline="localization.common.attention"
81
- :description="localization.common.restoreBackupConfirmDescription"
82
- @hide-modal="isShowConfirm = false"
83
- @confirm="onFinish"
84
- />
85
- </template>
86
-
87
- <script setup lang="ts">
88
- import type { UI_I_Localization } from '~/lib/models/interfaces'
89
- import type {
90
- UI_I_WizardStep,
91
- UI_I_ValidationReturn,
92
- } from '~/components/atoms/wizard/lib/models/interfaces'
93
- import Wizard from '~/components/atoms/wizard/lib/utils/utils'
94
- import type { UI_I_DatastoreTableItem } from '~/lib/models/store/storage/interfaces'
95
- import type { UI_I_TableInfoItem } from '~/components/atoms/table/info/lib/models/interfaces'
96
- import type { UI_I_NetworkTableItem } from '~/lib/models/store/network/interfaces'
97
- import type { UI_I_NameCheck } from '~/components/common/pages/backups/modals/restore/name/lib/models/interfaces'
98
- import type { UI_I_RestoreForm } from '~/components/common/pages/backups/modals/lib/models/interfaces'
99
- import {
100
- stepsSchemeInitial,
101
- stepsFunc,
102
- dynamicSteps,
103
- } from '~/components/common/pages/backups/modals/restore/lib/config/steps'
104
- import { restoreCodes } from '~/components/common/pages/backups/modals/restore/lib/config/restoreCodes'
105
-
106
- const model = defineModel<UI_I_RestoreForm>({ required: true })
107
-
108
- const props = defineProps<{
109
- datastore: UI_I_DatastoreTableItem[]
110
- datastoreLoading: boolean
111
- networks: UI_I_NetworkTableItem[]
112
- }>()
113
- const emits = defineEmits<{
114
- (event: 'get-datastore', value: string): void
115
- (event: 'get-networks', value: string): void
116
- (event: 'check-name', value: UI_I_NameCheck): void
117
- (event: 'finish'): void
118
- (event: 'hide'): void
119
- }>()
120
-
121
- const { $store }: any = useNuxtApp()
122
-
123
- const localization = computed<UI_I_Localization>(() => useLocal())
124
-
125
- const wizard: Wizard = new Wizard(
126
- stepsFunc(localization.value),
127
- stepsSchemeInitial
128
- )
129
-
130
- watch(
131
- () => model.value.restore_code,
132
- (newValue) => {
133
- wizard.changeScheme(newValue - 1)
134
- },
135
- { immediate: true }
136
- )
137
- const selectedScheme = computed<number[]>(() => wizard.selectedScheme.value)
138
- const onChangeSteps = async (value: UI_I_WizardStep[]): Promise<void> => {
139
- wizard.changeSteps(value, validationFunc)
140
- }
141
-
142
- const nameFormSubmit = ref<null | Function>(null)
143
- const storageSubmit = ref<null | Function>(null)
144
-
145
- const validationFunc = async (
146
- value: UI_I_WizardStep[],
147
- currentStep: UI_I_WizardStep,
148
- nextStep: UI_I_WizardStep
149
- ): Promise<UI_I_ValidationReturn> => {
150
- let stepHasError = false
151
- const stepShouldStop = {
152
- ifOnCurrentStep: false,
153
- ifFromAnyStep: false,
154
- stoppageStepId: -1,
155
- }
156
-
157
- wizard.setLoader(true)
158
-
159
- if (
160
- wizard.isValidateForStep(
161
- dynamicSteps.selectName,
162
- currentStep.id,
163
- nextStep.id
164
- )
165
- ) {
166
- const nameValidation = await checkName(value)
167
-
168
- value = nameValidation.newValue
169
- stepHasError = stepHasError || nameValidation.stepHasError
170
- }
171
-
172
- if (
173
- wizard.isValidateForStep(
174
- dynamicSteps.selectStorage,
175
- currentStep.id,
176
- nextStep.id
177
- )
178
- ) {
179
- const validation = await checkStorage(value)
180
-
181
- value = validation.newValue
182
- stepHasError = stepHasError || validation.stepHasError
183
- }
184
-
185
- if (
186
- wizard.isValidateForStep(
187
- dynamicSteps.selectDisks,
188
- currentStep.id,
189
- nextStep.id
190
- )
191
- ) {
192
- const validation = checkDisks(value)
193
-
194
- value = validation.newValue
195
- stepHasError = stepHasError || validation.stepHasError
196
- }
197
-
198
- wizard.setLoader(false)
199
-
200
- return {
201
- newValue: value,
202
- stepHasError,
203
- stepShouldStop,
204
- }
205
- }
206
-
207
- const checkName = async (
208
- value: UI_I_WizardStep[]
209
- ): Promise<UI_I_ValidationReturn> => {
210
- let stepHasError = false
211
-
212
- return new Promise((resolve) => {
213
- nameFormSubmit.value = (isValid: boolean): void => {
214
- if (!isValid) {
215
- stepHasError = wizard.setValidation(dynamicSteps.selectName, 'name', {
216
- fieldMessage: 'aaa',
217
- alertMessage: 'aaa',
218
- })
219
- } else if (wizard.hasMessage(dynamicSteps.selectName, 'name')) {
220
- value = wizard.removeValidation(dynamicSteps.selectName, 'name', value)
221
- }
222
-
223
- resolve({
224
- stepHasError,
225
- newValue: value,
226
- })
227
- nameFormSubmit.value = null
228
- }
229
- })
230
- }
231
-
232
- const checkStorage = async (
233
- value: UI_I_WizardStep[]
234
- ): Promise<UI_I_ValidationReturn> => {
235
- let stepHasError = false
236
-
237
- return new Promise((resolve) => {
238
- storageSubmit.value = (isValid: boolean): void => {
239
- if (!isValid) {
240
- stepHasError = wizard.setValidation(
241
- dynamicSteps.selectStorage,
242
- 'storage',
243
- {
244
- fieldMessage: 'aaa',
245
- alertMessage: 'aaa',
246
- }
247
- )
248
- } else if (wizard.hasMessage(dynamicSteps.selectStorage, 'storage')) {
249
- value = wizard.removeValidation(
250
- dynamicSteps.selectStorage,
251
- 'storage',
252
- value
253
- )
254
- }
255
-
256
- resolve({
257
- stepHasError,
258
- newValue: value,
259
- })
260
- storageSubmit.value = null
261
- }
262
- })
263
- }
264
-
265
- const checkDisks = (value: UI_I_WizardStep[]): UI_I_ValidationReturn => {
266
- let stepHasError = false
267
-
268
- const isValidStores = !!model.value?.pvm.disk_devices.length
269
- if (!isValidStores) {
270
- stepHasError = wizard.setValidation(
271
- dynamicSteps.selectDisks,
272
- 'disk_devices',
273
- {
274
- fieldMessage: localization.value.common.diskIsRequired,
275
- alertMessage: localization.value.common.diskIsRequired,
276
- }
277
- )
278
- showValidationErrors([localization.value.common.diskIsRequired])
279
- } else if (wizard.hasMessage(dynamicSteps.selectDisks, 'disk_devices')) {
280
- value = wizard.removeValidation(
281
- dynamicSteps.selectDisks,
282
- 'disk_devices',
283
- value
284
- )
285
- onRemoveValidationErrors()
286
- }
287
-
288
- return {
289
- stepHasError,
290
- newValue: value,
291
- }
292
- }
293
-
294
- const getDatastoreTableFunc = async (): Promise<void> => {
295
- emits('get-datastore', model.value.bucket)
296
- }
297
-
298
- const selectedStorageName = ref<string>('')
299
- const onChangeStorage = (storage: UI_I_DatastoreTableItem | null): void => {
300
- if (!storage) return
301
- selectedStorageName.value = storage.name
302
- model.value.pvm.storage = {
303
- id: storage.id,
304
- folder: '',
305
- }
306
- }
307
-
308
- const onCheckName = async (data: UI_I_NameCheck): Promise<void> => {
309
- emits('check-name', data)
310
- }
311
-
312
- const isLoading = ref<boolean>(true)
313
- // В Сфере и Прокураторе одно и тоже
314
- const getPvm = async (): Promise<void> => {
315
- await $store.dispatch('backup/A_GET_PVM', {
316
- target: model.value.backup_storage,
317
- bucketId: model.value.bucket, // TODO bucket поменять на vm так как это сейчас vm
318
- backupId: model.value.backup,
319
- })
320
-
321
- model.value.pvm = useDeepCopy($store.getters['backup/getPvm'])
322
- isLoading.value = false
323
- }
324
- getPvm()
325
-
326
- const readyToCompleteInfo = computed<UI_I_TableInfoItem[]>(() => {
327
- const result = []
328
-
329
- switch (model.value.restore_code) {
330
- case restoreCodes.diskOnly:
331
- case restoreCodes.existing:
332
- result.push({
333
- label: localization.value.common.backup,
334
- value: model.value.backup,
335
- })
336
- break
337
- case restoreCodes.asNew:
338
- result.push({
339
- label: localization.value.common.vmName,
340
- value: model.value.pvm.name,
341
- })
342
-
343
- // Datastores
344
- result.push({
345
- label: localization.value.common.datastore,
346
- value: selectedStorageName.value,
347
- })
348
-
349
- // Disks
350
- model.value.pvm.disk_devices.forEach((disk_device, i) => {
351
- if (!disk_device.source) return
352
-
353
- result.push({
354
- label: `${localization.value.common.disk} ${i}`,
355
- value: disk_device.source,
356
- })
357
- })
358
-
359
- // Networks
360
- model.value.pvm.network_devices.forEach((network) => {
361
- result.push({
362
- label: localization.value.common.network,
363
- value: network.network,
364
- })
365
- })
366
- break
367
- // case 1:
368
- // result.push({
369
- // label: localization.value.common.vmName,
370
- // value: model.value.pvm.name,
371
- // })
372
- // break
373
- }
374
-
375
- return result
376
- })
377
-
378
- const errors = ref<string[]>([])
379
- const showValidationErrors = (data: string[]): void => {
380
- errors.value = data
381
- }
382
- const onRemoveValidationErrors = (): void => {
383
- errors.value = []
384
- }
385
-
386
- const onFinish = (): void => {
387
- emits('finish')
388
- }
389
- const onHideModal = (): void => {
390
- emits('hide')
391
- }
392
-
393
- const onRestore = (): void => {
394
- if (model.value.restore_code === restoreCodes.existing) {
395
- isShowConfirm.value = true
396
- } else {
397
- onFinish()
398
- }
399
- }
400
-
401
- const isShowConfirm = ref<boolean>(false)
402
-
403
- const onGetNetworks = (hostId: string): void => {
404
- emits('get-networks', hostId)
405
- }
406
- </script>
407
-
408
- <style scoped lang="scss">
409
- :deep(.modal-body) {
410
- display: flex;
411
- flex-direction: column;
412
- }
413
- .loader-wrap {
414
- background-color: rgba(0, 0, 0, 0.3);
415
- z-index: var(--z-fixed);
416
- }
417
- </style>
1
+ <template>
2
+ <div class="restore">
3
+ <atoms-wizard
4
+ show
5
+ :wizard="wizard"
6
+ :selected-scheme="selectedScheme"
7
+ :title="localization.common.restore"
8
+ :localization="localization"
9
+ test-id="restore"
10
+ @change-steps="onChangeSteps"
11
+ @hide="onHideModal"
12
+ @submit="onRestore"
13
+ >
14
+ <template #modalBody="{ selectedStep }">
15
+ <div
16
+ v-show="isLoading"
17
+ class="loader-wrap absolute left-0 right-0 top-0 bottom-0"
18
+ >
19
+ <atoms-loader-pre-loader
20
+ id="loader"
21
+ :show="isLoading"
22
+ class="absolute-center"
23
+ test-id="backup-restore-spinner"
24
+ />
25
+ </div>
26
+ <atoms-alert
27
+ v-show="errors.length"
28
+ :items="errors"
29
+ status="alert-danger"
30
+ test-id="restore-alert"
31
+ @remove="onRemoveValidationErrors"
32
+ />
33
+
34
+ <common-pages-backups-modals-restore-types
35
+ v-show="selectedStep.id === dynamicSteps.selectType"
36
+ v-model="model"
37
+ />
38
+
39
+ <common-pages-backups-modals-restore-name
40
+ v-show="selectedStep.id === dynamicSteps.selectName"
41
+ v-model="model"
42
+ :show="selectedStep.id === dynamicSteps.selectName"
43
+ :name-form-submit="nameFormSubmit"
44
+ @check-name="onCheckName"
45
+ />
46
+
47
+ <!-- TODO refactoring-->
48
+ <common-vm-actions-common-select-storage
49
+ v-show="selectedStep.id === dynamicSteps.selectStorage"
50
+ :storage-submit="storageSubmit"
51
+ :datastore="props.datastore"
52
+ :is-datastore-loading="props.datastoreLoading"
53
+ :storage="model.pvm.storage"
54
+ :get-datastore-table-func="getDatastoreTableFunc"
55
+ @submit="onChangeStorage"
56
+ />
57
+
58
+ <common-pages-backups-modals-restore-disks
59
+ v-show="selectedStep.id === dynamicSteps.selectDisks"
60
+ v-model="model"
61
+ />
62
+ <common-pages-backups-modals-restore-networks
63
+ v-if="selectedStep.id === dynamicSteps.selectNetwork"
64
+ v-model="model"
65
+ :alert-messages="[]"
66
+ :networks="props.networks"
67
+ @get-networks="onGetNetworks"
68
+ />
69
+
70
+ <common-ready-to-complete
71
+ v-show="selectedStep.id === dynamicSteps.readyComplete"
72
+ :data="readyToCompleteInfo"
73
+ />
74
+ </template>
75
+ </atoms-wizard>
76
+ </div>
77
+
78
+ <common-modals-confirmation
79
+ v-if="isShowConfirm"
80
+ :headline="localization.common.attention"
81
+ :description="localization.common.restoreBackupConfirmDescription"
82
+ @hide-modal="isShowConfirm = false"
83
+ @confirm="onFinish"
84
+ />
85
+ </template>
86
+
87
+ <script setup lang="ts">
88
+ import type { UI_I_Localization } from '~/lib/models/interfaces'
89
+ import type {
90
+ UI_I_WizardStep,
91
+ UI_I_ValidationReturn,
92
+ } from '~/components/atoms/wizard/lib/models/interfaces'
93
+ import Wizard from '~/components/atoms/wizard/lib/utils/utils'
94
+ import type { UI_I_DatastoreTableItem } from '~/lib/models/store/storage/interfaces'
95
+ import type { UI_I_TableInfoItem } from '~/components/atoms/table/info/lib/models/interfaces'
96
+ import type { UI_I_NetworkTableItem } from '~/lib/models/store/network/interfaces'
97
+ import type { UI_I_NameCheck } from '~/components/common/pages/backups/modals/restore/name/lib/models/interfaces'
98
+ import type { UI_I_RestoreForm } from '~/components/common/pages/backups/modals/lib/models/interfaces'
99
+ import {
100
+ stepsSchemeInitial,
101
+ stepsFunc,
102
+ dynamicSteps,
103
+ } from '~/components/common/pages/backups/modals/restore/lib/config/steps'
104
+ import { restoreCodes } from '~/components/common/pages/backups/modals/restore/lib/config/restoreCodes'
105
+
106
+ const model = defineModel<UI_I_RestoreForm>({ required: true })
107
+
108
+ const props = defineProps<{
109
+ datastore: UI_I_DatastoreTableItem[]
110
+ datastoreLoading: boolean
111
+ networks: UI_I_NetworkTableItem[]
112
+ }>()
113
+ const emits = defineEmits<{
114
+ (event: 'get-datastore', value: string): void
115
+ (event: 'get-networks', value: string): void
116
+ (event: 'check-name', value: UI_I_NameCheck): void
117
+ (event: 'finish'): void
118
+ (event: 'hide'): void
119
+ }>()
120
+
121
+ const { $store }: any = useNuxtApp()
122
+
123
+ const localization = computed<UI_I_Localization>(() => useLocal())
124
+
125
+ const wizard: Wizard = new Wizard(
126
+ stepsFunc(localization.value),
127
+ stepsSchemeInitial
128
+ )
129
+
130
+ watch(
131
+ () => model.value.restore_code,
132
+ (newValue) => {
133
+ wizard.changeScheme(newValue - 1)
134
+ },
135
+ { immediate: true }
136
+ )
137
+ const selectedScheme = computed<number[]>(() => wizard.selectedScheme.value)
138
+ const onChangeSteps = async (value: UI_I_WizardStep[]): Promise<void> => {
139
+ wizard.changeSteps(value, validationFunc)
140
+ }
141
+
142
+ const nameFormSubmit = ref<null | Function>(null)
143
+ const storageSubmit = ref<null | Function>(null)
144
+
145
+ const validationFunc = async (
146
+ value: UI_I_WizardStep[],
147
+ currentStep: UI_I_WizardStep,
148
+ nextStep: UI_I_WizardStep
149
+ ): Promise<UI_I_ValidationReturn> => {
150
+ let stepHasError = false
151
+ const stepShouldStop = {
152
+ ifOnCurrentStep: false,
153
+ ifFromAnyStep: false,
154
+ stoppageStepId: -1,
155
+ }
156
+
157
+ wizard.setLoader(true)
158
+
159
+ if (
160
+ wizard.isValidateForStep(
161
+ dynamicSteps.selectName,
162
+ currentStep.id,
163
+ nextStep.id
164
+ )
165
+ ) {
166
+ const nameValidation = await checkName(value)
167
+
168
+ value = nameValidation.newValue
169
+ stepHasError = stepHasError || nameValidation.stepHasError
170
+ }
171
+
172
+ if (
173
+ wizard.isValidateForStep(
174
+ dynamicSteps.selectStorage,
175
+ currentStep.id,
176
+ nextStep.id
177
+ )
178
+ ) {
179
+ const validation = await checkStorage(value)
180
+
181
+ value = validation.newValue
182
+ stepHasError = stepHasError || validation.stepHasError
183
+ }
184
+
185
+ if (
186
+ wizard.isValidateForStep(
187
+ dynamicSteps.selectDisks,
188
+ currentStep.id,
189
+ nextStep.id
190
+ )
191
+ ) {
192
+ const validation = checkDisks(value)
193
+
194
+ value = validation.newValue
195
+ stepHasError = stepHasError || validation.stepHasError
196
+ }
197
+
198
+ wizard.setLoader(false)
199
+
200
+ return {
201
+ newValue: value,
202
+ stepHasError,
203
+ stepShouldStop,
204
+ }
205
+ }
206
+
207
+ const checkName = async (
208
+ value: UI_I_WizardStep[]
209
+ ): Promise<UI_I_ValidationReturn> => {
210
+ let stepHasError = false
211
+
212
+ return new Promise((resolve) => {
213
+ nameFormSubmit.value = (isValid: boolean): void => {
214
+ if (!isValid) {
215
+ stepHasError = wizard.setValidation(dynamicSteps.selectName, 'name', {
216
+ fieldMessage: 'aaa',
217
+ alertMessage: 'aaa',
218
+ })
219
+ } else if (wizard.hasMessage(dynamicSteps.selectName, 'name')) {
220
+ value = wizard.removeValidation(dynamicSteps.selectName, 'name', value)
221
+ }
222
+
223
+ resolve({
224
+ stepHasError,
225
+ newValue: value,
226
+ })
227
+ nameFormSubmit.value = null
228
+ }
229
+ })
230
+ }
231
+
232
+ const checkStorage = async (
233
+ value: UI_I_WizardStep[]
234
+ ): Promise<UI_I_ValidationReturn> => {
235
+ let stepHasError = false
236
+
237
+ return new Promise((resolve) => {
238
+ storageSubmit.value = (isValid: boolean): void => {
239
+ if (!isValid) {
240
+ stepHasError = wizard.setValidation(
241
+ dynamicSteps.selectStorage,
242
+ 'storage',
243
+ {
244
+ fieldMessage: 'aaa',
245
+ alertMessage: 'aaa',
246
+ }
247
+ )
248
+ } else if (wizard.hasMessage(dynamicSteps.selectStorage, 'storage')) {
249
+ value = wizard.removeValidation(
250
+ dynamicSteps.selectStorage,
251
+ 'storage',
252
+ value
253
+ )
254
+ }
255
+
256
+ resolve({
257
+ stepHasError,
258
+ newValue: value,
259
+ })
260
+ storageSubmit.value = null
261
+ }
262
+ })
263
+ }
264
+
265
+ const checkDisks = (value: UI_I_WizardStep[]): UI_I_ValidationReturn => {
266
+ let stepHasError = false
267
+
268
+ const isValidStores = !!model.value?.pvm.disk_devices.length
269
+ if (!isValidStores) {
270
+ stepHasError = wizard.setValidation(
271
+ dynamicSteps.selectDisks,
272
+ 'disk_devices',
273
+ {
274
+ fieldMessage: localization.value.common.diskIsRequired,
275
+ alertMessage: localization.value.common.diskIsRequired,
276
+ }
277
+ )
278
+ showValidationErrors([localization.value.common.diskIsRequired])
279
+ } else if (wizard.hasMessage(dynamicSteps.selectDisks, 'disk_devices')) {
280
+ value = wizard.removeValidation(
281
+ dynamicSteps.selectDisks,
282
+ 'disk_devices',
283
+ value
284
+ )
285
+ onRemoveValidationErrors()
286
+ }
287
+
288
+ return {
289
+ stepHasError,
290
+ newValue: value,
291
+ }
292
+ }
293
+
294
+ const getDatastoreTableFunc = async (): Promise<void> => {
295
+ emits('get-datastore', model.value.bucket)
296
+ }
297
+
298
+ const selectedStorageName = ref<string>('')
299
+ const onChangeStorage = (storage: UI_I_DatastoreTableItem | null): void => {
300
+ if (!storage) return
301
+ selectedStorageName.value = storage.name
302
+ model.value.pvm.storage = {
303
+ id: storage.id,
304
+ folder: '',
305
+ }
306
+ }
307
+
308
+ const onCheckName = async (data: UI_I_NameCheck): Promise<void> => {
309
+ emits('check-name', data)
310
+ }
311
+
312
+ const isLoading = ref<boolean>(true)
313
+ // В Сфере и Прокураторе одно и тоже
314
+ const getPvm = async (): Promise<void> => {
315
+ await $store.dispatch('backup/A_GET_PVM', {
316
+ target: model.value.backup_storage,
317
+ bucketId: model.value.bucket, // TODO bucket поменять на vm так как это сейчас vm
318
+ backupId: model.value.backup,
319
+ })
320
+
321
+ model.value.pvm = useDeepCopy($store.getters['backup/getPvm'])
322
+ isLoading.value = false
323
+ }
324
+ getPvm()
325
+
326
+ const readyToCompleteInfo = computed<UI_I_TableInfoItem[]>(() => {
327
+ const result = []
328
+
329
+ switch (model.value.restore_code) {
330
+ case restoreCodes.diskOnly:
331
+ case restoreCodes.existing:
332
+ result.push({
333
+ label: localization.value.common.backup,
334
+ value: model.value.backup,
335
+ })
336
+ break
337
+ case restoreCodes.asNew:
338
+ result.push({
339
+ label: localization.value.common.vmName,
340
+ value: model.value.pvm.name,
341
+ })
342
+
343
+ // Datastores
344
+ result.push({
345
+ label: localization.value.common.datastore,
346
+ value: selectedStorageName.value,
347
+ })
348
+
349
+ // Disks
350
+ model.value.pvm.disk_devices.forEach((disk_device, i) => {
351
+ if (!disk_device.source) return
352
+
353
+ result.push({
354
+ label: `${localization.value.common.disk} ${i}`,
355
+ value: disk_device.source,
356
+ })
357
+ })
358
+
359
+ // Networks
360
+ model.value.pvm.network_devices.forEach((network) => {
361
+ result.push({
362
+ label: localization.value.common.network,
363
+ value: network.network,
364
+ })
365
+ })
366
+ break
367
+ // case 1:
368
+ // result.push({
369
+ // label: localization.value.common.vmName,
370
+ // value: model.value.pvm.name,
371
+ // })
372
+ // break
373
+ }
374
+
375
+ return result
376
+ })
377
+
378
+ const errors = ref<string[]>([])
379
+ const showValidationErrors = (data: string[]): void => {
380
+ errors.value = data
381
+ }
382
+ const onRemoveValidationErrors = (): void => {
383
+ errors.value = []
384
+ }
385
+
386
+ const onFinish = (): void => {
387
+ emits('finish')
388
+ }
389
+ const onHideModal = (): void => {
390
+ emits('hide')
391
+ }
392
+
393
+ const onRestore = (): void => {
394
+ if (model.value.restore_code === restoreCodes.existing) {
395
+ isShowConfirm.value = true
396
+ } else {
397
+ onFinish()
398
+ }
399
+ }
400
+
401
+ const isShowConfirm = ref<boolean>(false)
402
+
403
+ const onGetNetworks = (hostId: string): void => {
404
+ emits('get-networks', hostId)
405
+ }
406
+ </script>
407
+
408
+ <style scoped lang="scss">
409
+ :deep(.modal-body) {
410
+ display: flex;
411
+ flex-direction: column;
412
+ }
413
+ .loader-wrap {
414
+ background-color: rgba(0, 0, 0, 0.3);
415
+ z-index: var(--z-fixed);
416
+ }
417
+ </style>