bfg-common 1.5.210 → 1.5.212

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 (215) hide show
  1. package/CODE_STYLE.md +109 -109
  2. package/assets/img/icons/icons-sprite-dark-3.svg +227 -227
  3. package/assets/img/icons/icons-sprite-dark-5.svg +488 -488
  4. package/assets/img/icons/icons-sprite-light-3.svg +227 -227
  5. package/assets/img/icons/icons-sprite-light-5.svg +488 -488
  6. package/components/atoms/TheIcon3.vue +50 -50
  7. package/components/atoms/perPage/PerPage.vue +58 -58
  8. package/components/atoms/table/dataGrid/lib/config/settingsTable.ts +94 -94
  9. package/components/atoms/table/dataGrid/lib/utils/export.ts +16 -16
  10. package/components/atoms/tabs/VerticalTabs.vue +105 -105
  11. package/components/common/backup/lib/utils/getBackupOrBackupStorageId.ts +29 -0
  12. package/components/common/backup/storage/actions/add/Add.vue +36 -0
  13. package/components/common/backup/storage/actions/add/temp/Add.vue +508 -0
  14. package/components/common/backup/storage/actions/add/temp/lib/config/stepItems.ts +203 -0
  15. package/components/common/backup/storage/actions/add/temp/lib/models/interfaces.ts +58 -0
  16. package/components/common/backup/storage/actions/add/temp/lib/models/types.ts +14 -0
  17. package/components/common/backup/storage/actions/add/temp/lib/utils.ts +70 -0
  18. package/components/common/backup/storage/actions/add/temp/local/Local.vue +65 -0
  19. package/components/common/backup/storage/actions/add/temp/local/createName/CreateName.vue +158 -0
  20. package/components/common/backup/storage/actions/add/temp/local/createName/lib/config/defaultForm.ts +15 -0
  21. package/components/common/backup/storage/actions/add/temp/nfs/Nfs.vue +106 -0
  22. package/components/common/backup/storage/actions/add/temp/nfs/accessibility/Accessibility.vue +104 -0
  23. package/components/common/backup/storage/actions/add/temp/nfs/accessibility/lib/config/tabsPannel.ts +25 -0
  24. package/components/common/backup/storage/actions/add/temp/nfs/accessibility/lib/models/interfaces.ts +9 -0
  25. package/components/common/backup/storage/actions/add/temp/nfs/accessibility/lib/models/types.ts +5 -0
  26. package/components/common/backup/storage/actions/add/temp/nfs/accessibility/tablesView/TablesView.vue +141 -0
  27. package/components/common/backup/storage/actions/add/temp/nfs/accessibility/tablesView/lib/config/compatibleTable.ts +62 -0
  28. package/components/common/backup/storage/actions/add/temp/nfs/accessibility/tablesView/lib/config/hostsTableItems.ts +53 -0
  29. package/components/common/backup/storage/actions/add/temp/nfs/accessibility/tablesView/lib/config/incompatibleTable.ts +68 -0
  30. package/components/common/backup/storage/actions/add/temp/nfs/accessibility/tablesView/lib/config/tableKeys.ts +15 -0
  31. package/components/common/backup/storage/actions/add/temp/nfs/configuration/Configuration.vue +469 -0
  32. package/components/common/backup/storage/actions/add/temp/nfs/configuration/lib/config/defaultForm.ts +51 -0
  33. package/components/common/backup/storage/actions/add/temp/nfs/configuration/lib/models/interfaces.ts +14 -0
  34. package/components/common/backup/storage/actions/add/temp/nfs/configuration/serversList/DeletePopover.vue +99 -0
  35. package/components/common/backup/storage/actions/add/temp/nfs/configuration/serversList/ServersList.vue +125 -0
  36. package/components/common/backup/storage/actions/add/temp/nfs/configuration/serversList/lib/config/serversListConfig.ts +40 -0
  37. package/components/common/backup/storage/actions/add/temp/nfs/configuration/serversList/lib/config/tableKeys.ts +3 -0
  38. package/components/common/backup/storage/actions/add/temp/nfs/configuration/serversList/lib/models/interfaces.ts +13 -0
  39. package/components/common/backup/storage/actions/add/temp/nfs/configuration/serversList/lib/models/types.ts +1 -0
  40. package/components/common/backup/storage/actions/add/temp/nfs/kerberosAuthentication/KerberosAuthentication.vue +55 -0
  41. package/components/common/backup/storage/actions/add/temp/nfs/kerberosAuthentication/lib/config/radioOptions.ts +27 -0
  42. package/components/common/backup/storage/actions/add/temp/nfs/version/Version.vue +42 -0
  43. package/components/common/backup/storage/actions/add/temp/nfs/version/lib/config/versionOptions.ts +22 -0
  44. package/components/common/backup/storage/actions/add/temp/readyComplete/ReadyComplete.vue +85 -0
  45. package/components/common/backup/storage/actions/add/temp/readyComplete/lib/config/propertiesDetails.ts +139 -0
  46. package/components/common/backup/storage/actions/add/temp/readyComplete/lib/models/interfaces.ts +4 -0
  47. package/components/common/backup/storage/actions/add/temp/samba/Samba.vue +95 -0
  48. package/components/common/backup/storage/actions/add/temp/samba/accessibility/Accessibility.vue +104 -0
  49. package/components/common/backup/storage/actions/add/temp/samba/accessibility/lib/config/tabsPannel.ts +25 -0
  50. package/components/common/backup/storage/actions/add/temp/samba/accessibility/lib/models/interfaces.ts +9 -0
  51. package/components/common/backup/storage/actions/add/temp/samba/accessibility/lib/models/types.ts +5 -0
  52. package/components/common/backup/storage/actions/add/temp/samba/accessibility/tablesView/TablesView.vue +141 -0
  53. package/components/common/backup/storage/actions/add/temp/samba/accessibility/tablesView/lib/config/compatibleTable.ts +62 -0
  54. package/components/common/backup/storage/actions/add/temp/samba/accessibility/tablesView/lib/config/hostsTableItems.ts +53 -0
  55. package/components/common/backup/storage/actions/add/temp/samba/accessibility/tablesView/lib/config/incompatibleTable.ts +68 -0
  56. package/components/common/backup/storage/actions/add/temp/samba/accessibility/tablesView/lib/config/tableKeys.ts +15 -0
  57. package/components/common/backup/storage/actions/add/temp/samba/configuration/Configuration.vue +470 -0
  58. package/components/common/backup/storage/actions/add/temp/samba/configuration/lib/config/defaultForm.ts +51 -0
  59. package/components/common/backup/storage/actions/add/temp/samba/configuration/lib/models/interfaces.ts +14 -0
  60. package/components/common/backup/storage/actions/add/temp/samba/configuration/serversList/DeletePopover.vue +99 -0
  61. package/components/common/backup/storage/actions/add/temp/samba/configuration/serversList/ServersList.vue +124 -0
  62. package/components/common/backup/storage/actions/add/temp/samba/configuration/serversList/lib/config/serversListConfig.ts +40 -0
  63. package/components/common/backup/storage/actions/add/temp/samba/configuration/serversList/lib/config/tableKeys.ts +3 -0
  64. package/components/common/backup/storage/actions/add/temp/samba/configuration/serversList/lib/models/interfaces.ts +13 -0
  65. package/components/common/backup/storage/actions/add/temp/samba/configuration/serversList/lib/models/types.ts +1 -0
  66. package/components/common/backup/storage/actions/add/temp/samba/kerberosAuthentication/KerberosAuthentication.vue +55 -0
  67. package/components/common/backup/storage/actions/add/temp/samba/kerberosAuthentication/lib/config/radioOptions.ts +27 -0
  68. package/components/common/backup/storage/actions/add/temp/sharedStorm/SharedStorm.vue +80 -0
  69. package/components/common/backup/storage/actions/add/temp/sharedStorm/createName/CreateName.vue +156 -0
  70. package/components/common/backup/storage/actions/add/temp/sharedStorm/createName/lib/config/defaultForm.ts +15 -0
  71. package/components/common/backup/storage/actions/add/temp/sharedStorm/storage/Storage.vue +71 -0
  72. package/components/common/backup/storage/actions/add/temp/sharedStorm/storage/lib/config/defaultForm.ts +15 -0
  73. package/components/common/backup/storage/actions/add/temp/types/Types.vue +78 -0
  74. package/components/common/backup/storage/actions/add/temp/types/lib/config/typeOptions.ts +52 -0
  75. package/components/common/backup/storage/actions/delete/Delete.vue +65 -0
  76. package/components/common/backup/storage/actions/delete/lib/models/interfaces.ts +5 -0
  77. package/components/common/browse/blocks/contents/filesNew/Skeleton.vue +18 -18
  78. package/components/common/browse/blocks/lib/models/types.ts +1 -1
  79. package/components/common/browse/lib/models/interfaces.ts +5 -5
  80. package/components/common/context/lib/models/interfaces.ts +31 -31
  81. package/components/common/diagramMain/DiagramMain.vue +897 -897
  82. package/components/common/diagramMain/Header.vue +214 -214
  83. package/components/common/diagramMain/adapter/AdapterItems.vue +61 -61
  84. package/components/common/diagramMain/lib/config/initial.ts +50 -50
  85. package/components/common/diagramMain/lib/models/types.ts +21 -21
  86. package/components/common/diagramMain/lib/utils/utils.ts +331 -331
  87. package/components/common/diagramMain/modals/editSettings/ConfirmTeamingSettingsModal.vue +40 -40
  88. package/components/common/diagramMain/modals/editSettings/tabs/NetworkProperties.vue +214 -214
  89. package/components/common/diagramMain/modals/editSettings/tabs/Security.vue +189 -189
  90. package/components/common/diagramMain/modals/editSettings/tabs/SwitchProperties.vue +163 -163
  91. package/components/common/diagramMain/modals/editSettings/tabs/TeamingFailover.vue +175 -175
  92. package/components/common/diagramMain/modals/editSettings/tabs/port/IpvFourSettings.vue +346 -346
  93. package/components/common/diagramMain/modals/lib/config/initial.ts +180 -180
  94. package/components/common/diagramMain/modals/lib/config/vmKernelAdapter.ts +90 -90
  95. package/components/common/diagramMain/modals/lib/mappers/mappers.ts +87 -87
  96. package/components/common/diagramMain/modals/lib/utils/index.ts +24 -24
  97. package/components/common/diagramMain/modals/migrateVmkernelAdapter/lib/config/steps.ts +114 -114
  98. package/components/common/diagramMain/modals/migrateVmkernelAdapter/steps/ConnectionSettings.vue +169 -169
  99. package/components/common/diagramMain/modals/migrateVmkernelAdapter/steps/SelectVmkernelAdapter.vue +159 -159
  100. package/components/common/diagramMain/modals/migrateVmkernelAdapter/validations/common.ts +14 -14
  101. package/components/common/diagramMain/modals/migrateVmkernelAdapter/validations/connectionSettings.ts +137 -137
  102. package/components/common/diagramMain/modals/migrateVmkernelAdapter/validations/selectVmkernelAdapter.ts +52 -52
  103. package/components/common/diagramMain/modals/migrateVmkernelAdapter/validations/validations.ts +19 -19
  104. package/components/common/diagramMain/port/Ports.vue +47 -47
  105. package/components/common/layout/theHeader/helpMenu/About.vue +82 -82
  106. package/components/common/layout/theHeader/userMenu/modals/preferences/view/ViewOld.vue +112 -112
  107. package/components/common/monitor/overview/OverviewOld.vue +139 -139
  108. package/components/common/pages/home/headline/Headline.vue +45 -45
  109. package/components/common/pages/home/headline/HeadlineOld.vue +42 -42
  110. package/components/common/pages/home/lib/models/interfaces.ts +48 -48
  111. package/components/common/pages/home/widgets/Widgets.vue +49 -49
  112. package/components/common/pages/home/widgets/WidgetsNew.vue +86 -86
  113. package/components/common/pages/home/widgets/WidgetsOld.vue +34 -34
  114. package/components/common/pages/home/widgets/hosts/Hosts.vue +27 -27
  115. package/components/common/pages/home/widgets/hosts/lib/config/items.ts +23 -23
  116. package/components/common/pages/home/widgets/vms/Vms.vue +26 -26
  117. package/components/common/pages/home/widgets/vms/VmsOld.vue +35 -35
  118. package/components/common/pages/home/widgets/vms/lib/config/items.ts +19 -19
  119. package/components/common/pages/packages/Packages.vue +208 -208
  120. package/components/common/pages/shortcuts/block/BlockOld.vue +68 -68
  121. package/components/common/readyToComplete/ReadyToComplete.vue +17 -17
  122. package/components/common/recursionTree/RecursionTree.vue +223 -223
  123. package/components/common/select/button/ButtonDropdown.vue +108 -108
  124. package/components/common/spiceConsole/Drawer.vue +377 -377
  125. package/components/common/spiceConsole/lib/models/interfaces.ts +5 -5
  126. package/components/common/vm/actions/add/folderTreeView/FolderTreeView.vue +72 -72
  127. package/components/common/vm/actions/add/folderTreeView/New.vue +40 -40
  128. package/components/common/vm/actions/add/folderTreeView/Old.vue +50 -50
  129. package/components/common/vm/actions/add/lib/config/steps.ts +263 -263
  130. package/components/common/vm/actions/clone/lib/config/steps.ts +291 -291
  131. package/components/common/vm/actions/clone/toTemplate/lib/config/steps.ts +116 -116
  132. package/components/common/vm/actions/common/customizeHardware/CustomizeHardwareNew.vue +337 -337
  133. package/components/common/vm/actions/common/customizeHardware/virtualHardware/VirtualHardwareNew.vue +480 -480
  134. package/components/common/vm/actions/common/customizeHardware/virtualHardware/VirtualHardwareOld.vue +319 -319
  135. package/components/common/vm/actions/common/customizeHardware/virtualHardware/browseView/BrowseView.vue +219 -219
  136. package/components/common/vm/actions/common/customizeHardware/virtualHardware/bus/Bus.vue +100 -100
  137. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/CdDvdDrive.vue +232 -232
  138. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/CdDvdDriveOld.vue +168 -168
  139. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/Media.vue +25 -25
  140. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/MediaNew.vue +78 -78
  141. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/MediaOld.vue +50 -50
  142. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/CpuNew.vue +190 -190
  143. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/model/ModelNew.vue +237 -237
  144. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/shares/Shares.vue +140 -140
  145. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/shares/lib/config/options.ts +28 -28
  146. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/tooltip/TooltipNew.vue +154 -154
  147. package/components/common/vm/actions/common/customizeHardware/virtualHardware/limit/Limit.vue +220 -220
  148. package/components/common/vm/actions/common/customizeHardware/virtualHardware/memory/Memory.vue +307 -307
  149. package/components/common/vm/actions/common/customizeHardware/virtualHardware/memory/MemoryNew.vue +154 -154
  150. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/NewHardDisk.vue +382 -382
  151. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/location/Location.vue +151 -151
  152. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/location/LocationNew.vue +73 -73
  153. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/location/LocationOld.vue +83 -83
  154. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/NewNetwork.vue +288 -288
  155. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/location/new/table/lib/config/config.ts +94 -94
  156. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/macAddress/MacAddress.vue +119 -119
  157. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/NewPciDevice.vue +205 -205
  158. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/directPathIo/DirectPathIoNew.vue +66 -66
  159. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/directPathIo/DirectPathIoOld.vue +62 -62
  160. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIo.vue +31 -31
  161. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIoOld.vue +76 -76
  162. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/Note.vue +15 -15
  163. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/NoteNew.vue +42 -42
  164. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/NoteOld.vue +30 -30
  165. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/nvidiaGrid/NvidiaGridOld.vue +84 -84
  166. package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/Other.vue +16 -16
  167. package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/OtherNew.vue +30 -30
  168. package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/inputDevices/InputDevicesNew.vue +40 -40
  169. package/components/common/vm/actions/common/customizeHardware/vmoptions/Vmoptions.vue +145 -145
  170. package/components/common/vm/actions/common/customizeHardware/vmoptions/VmoptionsNew.vue +106 -106
  171. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/BootOptionsNew.vue +81 -81
  172. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/delay/Delay.vue +32 -32
  173. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/firmware/Firmware.vue +60 -60
  174. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/Order.vue +174 -174
  175. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/OrderNew.vue +67 -67
  176. package/components/common/vm/actions/common/customizeHardware/vmoptions/generalOptions/GeneralOptionsNew.vue +149 -149
  177. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/New.vue +140 -140
  178. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/copyPaste/CopyPasteNew.vue +31 -31
  179. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/fileTransfer/FileTransferNew.vue +31 -31
  180. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/keymap/Keymap.vue +32 -32
  181. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/password/Password.vue +103 -103
  182. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/password/PasswordNew.vue +128 -128
  183. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirection.vue +28 -28
  184. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirectionNew.vue +39 -39
  185. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirectionOld.vue +44 -44
  186. package/components/common/vm/actions/common/lib/utils/capabilities.ts +52 -52
  187. package/components/common/vm/actions/common/select/compatibility/Old.vue +107 -107
  188. package/components/common/vm/actions/common/select/computeResource/ComputeResource.vue +134 -134
  189. package/components/common/vm/actions/common/select/computeResource/treeView/New.vue +44 -44
  190. package/components/common/vm/actions/common/select/computeResource/treeView/TreeView.vue +118 -118
  191. package/components/common/vm/actions/common/select/createType/CreateType.vue +38 -38
  192. package/components/common/vm/actions/common/select/createType/New.vue +84 -84
  193. package/components/common/vm/actions/common/select/createType/lib/models/interfaces.ts +5 -5
  194. package/components/common/vm/actions/common/select/name/Name.vue +167 -167
  195. package/components/common/vm/actions/common/select/os/New.vue +122 -122
  196. package/components/common/vm/actions/common/select/os/Old.vue +152 -152
  197. package/components/common/vm/actions/common/select/os/Os.vue +139 -139
  198. package/components/common/vm/actions/common/select/storage/new/lib/models/interfaces.ts +5 -5
  199. package/components/common/vm/actions/common/select/storage/new/lib/utils/utils.ts +21 -21
  200. package/components/common/vm/actions/editSettings/new/Skeleton.vue +88 -88
  201. package/components/common/wizards/vm/migrate/lib/config/constructDataReady.ts +220 -220
  202. package/components/common/wizards/vm/migrate/lib/config/steps.ts +157 -157
  203. package/components/common/wizards/vm/migrate/lib/validations.ts +68 -68
  204. package/components/common/wizards/vm/migrate/select/computeResource/tableView/TableView.vue +137 -137
  205. package/components/common/wizards/vm/migrate/select/network/Network.vue +103 -103
  206. package/components/common/wizards/vm/migrate/select/network/table/network/lib/config/advancedTable.ts +91 -91
  207. package/composables/productNameLocal.ts +30 -30
  208. package/composables/useAppVersion.ts +21 -21
  209. package/package.json +1 -1
  210. package/plugins/date.ts +233 -233
  211. package/public/spice-console/lib/images/bitmap.js +203 -203
  212. package/public/spice-console/network/spicechannel.js +387 -387
  213. package/store/main/mutations.ts +7 -7
  214. package/store/main/state.ts +7 -7
  215. package/store/tasks/mappers/recentTasks.ts +64 -64
@@ -0,0 +1,203 @@
1
+ import type { UI_I_VerticalStepItem } from '~/components/atoms/lib/models/interfaces'
2
+ import type { UI_I_Localization } from '~/lib/models/interfaces'
3
+ import type {
4
+ UI_T_WizardDatastoreMode,
5
+ UI_T_DatastoreType,
6
+ UI_T_NfsType,
7
+ } from '~/components/common/backup/storage/actions/add/temp/lib/models/types'
8
+
9
+ const stepFromSamba = (
10
+ localization: UI_I_Localization,
11
+ mode: UI_T_WizardDatastoreMode
12
+ ): UI_I_VerticalStepItem[] => {
13
+ const steps = [
14
+ {
15
+ text: localization.common.type,
16
+ disabled: false,
17
+ complete: false,
18
+ testId: 'type',
19
+ },
20
+ {
21
+ text: localization.common.nameAndConfiguration,
22
+ disabled: true,
23
+ complete: false,
24
+ testId: 'name-and-configuration',
25
+ },
26
+ ]
27
+
28
+ if (mode === 'sphere') {
29
+ steps.push({
30
+ text: localization.common.hostsAccessibility,
31
+ disabled: true,
32
+ complete: false,
33
+ testId: 'hosts-accessibility',
34
+ })
35
+ }
36
+
37
+ steps.push({
38
+ text: localization.common.readyComplete,
39
+ disabled: true,
40
+ complete: false,
41
+ testId: 'ready-complete',
42
+ })
43
+
44
+ return steps
45
+ }
46
+
47
+ const stepFromNfs = (
48
+ localization: UI_I_Localization,
49
+ mode: UI_T_WizardDatastoreMode
50
+ ): UI_I_VerticalStepItem[] => {
51
+ const steps = [
52
+ {
53
+ text: localization.common.type,
54
+ disabled: false,
55
+ complete: false,
56
+ testId: 'type',
57
+ },
58
+ // { text: localization.common.nfsVersion, disabled: true, complete: false,
59
+ // testId: 'nfs-version' },
60
+ {
61
+ text: localization.common.nameAndConfiguration,
62
+ disabled: true,
63
+ complete: false,
64
+ testId: 'name-and-configuration'
65
+ },
66
+ ]
67
+
68
+ if (mode === 'sphere') {
69
+ steps.push({
70
+ text: localization.common.hostsAccessibility,
71
+ disabled: true,
72
+ complete: false,
73
+ testId: 'hosts-accessibility'
74
+ })
75
+ }
76
+
77
+ steps.push({
78
+ text: localization.common.readyComplete,
79
+ disabled: true,
80
+ complete: false,
81
+ testId: 'ready-complete'
82
+ })
83
+
84
+ return steps
85
+ }
86
+
87
+ // const stemFromVvol = (localization: UI_I_Localization): UI_I_VerticalStepItem[] => {
88
+ // return [
89
+ // { text: localization.common.type, disabled: false, complete: false },
90
+ // {
91
+ // text: localization.common.nameAndContainerSelection,
92
+ // disabled: true,
93
+ // complete: false,
94
+ // },
95
+ // { text: localization.common.hostsAccessibility, disabled: true, complete: false },
96
+ // { text: localization.common.readyComplete, disabled: true, complete: false },
97
+ // ]
98
+ // }
99
+ const stemFromLocal = (
100
+ localization: UI_I_Localization,
101
+ mode: UI_T_WizardDatastoreMode
102
+ ): UI_I_VerticalStepItem[] => {
103
+ const isModeProcurator = mode === 'procurator'
104
+ return [
105
+ { text: localization.common.type, disabled: false, complete: false, testId: 'type', },
106
+ {
107
+ text: localization.common[
108
+ isModeProcurator ? 'selectDatastoreName' : 'nameAndDeviceSelection'
109
+ ],
110
+ disabled: true,
111
+ complete: false,
112
+ testId: 'datastore-name',
113
+ },
114
+ {
115
+ text: localization.common.readyComplete,
116
+ disabled: true,
117
+ complete: false,
118
+ testId: 'ready-complete'
119
+ },
120
+ ]
121
+ }
122
+ const stemFromSharedStorm = (
123
+ localization: UI_I_Localization,
124
+ ): UI_I_VerticalStepItem[] => {
125
+ return [
126
+ { text: localization.common.type, disabled: false, complete: false, testId: 'type', },
127
+ {
128
+ text: localization.common.selectDatastoreName,
129
+ disabled: true,
130
+ complete: false,
131
+ testId: 'datastore-name',
132
+ },
133
+ {
134
+ text: localization.common.selectStorage,
135
+ disabled: true,
136
+ complete: false,
137
+ testId: 'datastore-storage',
138
+ },
139
+ {
140
+ text: localization.common.readyComplete,
141
+ disabled: true,
142
+ complete: false,
143
+ testId: 'ready-complete'
144
+ },
145
+ ]
146
+ }
147
+
148
+ export const stepItemsFunc = (
149
+ localization: UI_I_Localization,
150
+ type: UI_T_DatastoreType,
151
+ mode: UI_T_WizardDatastoreMode
152
+ ): UI_I_VerticalStepItem[] => {
153
+ const handlers = {
154
+ samba: stepFromSamba,
155
+ nfs: stepFromNfs,
156
+ local: stemFromLocal,
157
+ 'shared-storm': stemFromSharedStorm,
158
+ }
159
+
160
+ return handlers[type](localization, mode)
161
+ }
162
+
163
+ interface SubTitles {
164
+ samba: string[]
165
+ nfs: string[]
166
+ local: string[]
167
+ 'shared-storm': string[]
168
+ }
169
+
170
+ export const subTitleFunc = (
171
+ localization: UI_I_Localization,
172
+ type: UI_T_DatastoreType,
173
+ position: number,
174
+ version?: UI_T_NfsType
175
+ ): string => {
176
+ position = position - 1
177
+
178
+ if (type === 'nfs' && version === 'nfs-3' && position === 2) {
179
+ position = position + 1
180
+ }
181
+
182
+ const descriptionForNfs: string[] = [
183
+ localization.common.selectNfsVersion,
184
+ localization.common.nameAndConfigurationDesc,
185
+ // localization.common.kerberosAuthenticationDesc.replace(
186
+ // '{0}',
187
+ // version?.toUpperCase() || ''
188
+ // ),
189
+ // localization.common.hostsAccessibilityDesc,
190
+ ]
191
+ const descriptionForSamba: string[] = [
192
+ localization.common.nameAndConfigurationDesc,
193
+ ]
194
+
195
+ const subTitles: SubTitles = {
196
+ nfs: descriptionForNfs,
197
+ samba: descriptionForSamba,
198
+ local: [],
199
+ 'shared-storm': [],
200
+ }
201
+
202
+ return subTitles[type][position]
203
+ }
@@ -0,0 +1,58 @@
1
+ import type { UI_T_NfsType } from '~/components/common/backup/storage/actions/add/temp/lib/models/types'
2
+
3
+ // TODO refactoring
4
+ export interface UI_I_NfsPoolNameForm<T = number> {
5
+ server: string
6
+ folder: string
7
+ user: string
8
+ password: string
9
+ version: T
10
+ readonly: boolean
11
+ hosts: string[]
12
+ }
13
+ export interface UI_I_CreateDatastoreBodyRequest {
14
+ name: string
15
+ pool_name: string
16
+ type_code: number
17
+ }
18
+ interface I_NfsForm extends UI_I_NfsPoolNameForm<UI_T_NfsType> {
19
+ name: string
20
+ type_code: number
21
+ }
22
+ interface I_SambaForm {
23
+ name: string
24
+ type_code: number
25
+ server: string
26
+ folder: string
27
+ user: string
28
+ password: string
29
+ readonly: boolean
30
+ hosts: string[]
31
+ }
32
+ interface I_SharedStormForm {
33
+ name: string
34
+ storm_id: string
35
+ type_code: number
36
+ }
37
+
38
+ export interface UI_I_CreateDatastoreForm {
39
+ local: {
40
+ name: string
41
+ hosts: string[]
42
+ type_code: number
43
+ }
44
+ nfs: I_NfsForm
45
+ samba: I_SambaForm
46
+ sharedStorm: I_SharedStormForm
47
+ }
48
+
49
+ export interface UI_I_CreateStorageUuid {
50
+ code: number
51
+ pool_name: string
52
+ }
53
+
54
+ export interface I_SharedStormData {
55
+ name: string
56
+ storm_id: string
57
+ storm_name: string
58
+ }
@@ -0,0 +1,14 @@
1
+ export type UI_T_DatastoreType = 'local' | 'samba' | 'nfs' | 'shared-storm'
2
+ export type UI_T_NfsType = 'nfs-3' | 'nfs-4.1'
3
+ export type UI_T_VmfsType = 'vmfs-6' | 'vmfs-5'
4
+ export type UI_T_KerberosAuthentication =
5
+ | 'dont-use'
6
+ | 'use-only-krb5'
7
+ | 'use-integrity'
8
+
9
+ export type UI_T_WizardDatastoreMode = 'procurator' | 'sphere'
10
+
11
+ export interface UI_I_DatastoreValidityName {
12
+ valid: boolean
13
+ msg: any
14
+ }
@@ -0,0 +1,70 @@
1
+ import type { API_UI_I_Error } from '~/lib/models/store/interfaces'
2
+ import type {
3
+ UI_I_DatastoreValidityName,
4
+ UI_T_WizardDatastoreMode,
5
+ } from '~/components/common/backup/storage/actions/add/temp/lib/models/types'
6
+ // import {
7
+ // UI_I_CreateDatastoreBodyRequest,
8
+ // I_CreateStorageUuid,
9
+ // } from '~/components/common/wizards/datastore/add/lib/models/interfaces'
10
+
11
+ // type T_StoragePoolNameResult = {
12
+ // data: I_CreateStorageUuid
13
+ // msg: API_UI_I_Error
14
+ // }
15
+
16
+ // type T_NullableStoragePoolNameResult = {
17
+ // [K in keyof T_StoragePoolNameResult]: T_StoragePoolNameResult[K] | null
18
+ // }
19
+
20
+ export const checkValidityName = async (
21
+ name: string,
22
+ mode: UI_T_WizardDatastoreMode = 'procurator'
23
+ ): Promise<UI_I_DatastoreValidityName> => {
24
+ // TODO move to projects!!!
25
+
26
+ const kind = 10 // TODO move in global space
27
+ const url =
28
+ mode === 'procurator'
29
+ ? `/ui/ds/validate?name=${encodeURIComponent(name)}`
30
+ : `/ui/object/validate_name?name=${encodeURIComponent(name)}&kind=${kind}`
31
+ // @ts-ignore
32
+ const { error } = await useMyFetch<null, API_UI_I_Error>(url, {
33
+ method: 'GET',
34
+ })
35
+
36
+ if (error.value && error.value.data.error_code !== 0) {
37
+ const existError = error.value.data?.error_message || error.value.data
38
+
39
+ return { valid: false, msg: existError }
40
+ }
41
+
42
+ return { valid: true, msg: null }
43
+ }
44
+
45
+ // export const getStoragePoolName = async <T>(
46
+ // url: string,
47
+ // params: T
48
+ // ): Promise<T_NullableStoragePoolNameResult> => {
49
+ // const { data, error } = await useMyFetch<I_CreateStorageUuid, API_UI_I_Error>(
50
+ // url,
51
+ // {
52
+ // method: 'POST',
53
+ // body: params,
54
+ // }
55
+ // )
56
+ //
57
+ // if (error.value) return { data: null, msg: error.value }
58
+ //
59
+ // return { data: data.value, msg: null }
60
+ // }
61
+
62
+ // export const createDatastore = async <T = UI_I_CreateDatastoreBodyRequest>(
63
+ // params: T
64
+ // ): Promise<API_UI_I_Error> => {
65
+ // const { error } = await useMyFetch<any, API_UI_I_Error>('/api/v1/pn/ds', {
66
+ // method: 'POST',
67
+ // body: params,
68
+ // })
69
+ // return error.value
70
+ // }
@@ -0,0 +1,65 @@
1
+ <template>
2
+ <div class="local-step flex flex-col h-full">
3
+ <span
4
+ v-if="mode === 'sphere' && props.stepPosition === 1"
5
+ class="vmfs-container__desc"
6
+ >
7
+ {{ localization.common.nameAndDeviceSelectionDesc }}
8
+ </span>
9
+
10
+ <common-backup-storage-actions-add-temp-local-create-name
11
+ v-show="mode === 'procurator' && props.stepPosition === 1"
12
+ :local-create-name-submit="props.localCreateNameSubmit"
13
+ test-id="local"
14
+ @loading="(e) => emits('loading', e)"
15
+ @submit="(e) => emits('submit', e)"
16
+ />
17
+
18
+ <common-backup-storage-actions-add-temp-shared-storm-device-selection
19
+ v-show="mode === 'sphere' && props.stepPosition === 1"
20
+ v-model:lun-disk="selectedLunDisk"
21
+ mode="sphere"
22
+ :device-selection-submit="props.localCreateNameSubmit"
23
+ :step-position="props.stepPosition"
24
+ :datastore-type="props.datastoreType"
25
+ :datacenter-hosts="props.datacenterHosts"
26
+ :is-main-filter="props.isMainFilter"
27
+ @loading="(e) => emits('loading', e)"
28
+ @submit="(e) => emits('submit', e)"
29
+ @main-filter="emits('main-filter', $event)"
30
+ />
31
+ </div>
32
+ </template>
33
+
34
+ <script lang="ts" setup>
35
+ import type { UI_T_Project } from '~/lib/models/types'
36
+ import type { UI_I_CreateStorageLunDiskItem } from '~/components/common/wizards/datastore/add/steps/nameAndDevice/table/lib/models/interfaces'
37
+ import type { UI_I_SelectHostOptions } from '~/components/common/wizards/datastore/add/steps/nameAndDevice/lib/models/interfaces'
38
+ import type { UI_T_DatastoreTypeCode } from '~/components/common/wizards/datastore/add/lib/models/types'
39
+ import type { UI_I_Localization } from '~/lib/models/interfaces'
40
+
41
+ const props = defineProps<{
42
+ stepPosition: number
43
+ localCreateNameSubmit: number
44
+ datastoreType: UI_T_DatastoreTypeCode
45
+ mode: UI_T_Project
46
+ datacenterHosts?: UI_I_SelectHostOptions[]
47
+ isMainFilter?: boolean
48
+ }>()
49
+ const emits = defineEmits<{
50
+ (event: 'loading', value: boolean): void
51
+ (event: 'submit', value: string): void
52
+ (event: 'main-filter', value: string): void
53
+ }>()
54
+
55
+ const localization = computed<UI_I_Localization>(() => useLocal())
56
+
57
+ const selectedLunDisk = ref<UI_I_CreateStorageLunDiskItem[]>([])
58
+ </script>
59
+
60
+ <style lang="scss" scoped>
61
+ .local-step {
62
+ overflow-y: auto;
63
+ overflow-x: hidden;
64
+ }
65
+ </style>
@@ -0,0 +1,158 @@
1
+ <template>
2
+ <div class="create-datastore-name">
3
+ <atoms-alert
4
+ v-show="errors.length"
5
+ test-id="datastore-creat-name"
6
+ status="alert-danger"
7
+ :items="errors"
8
+ @remove="onRemoveValidationErrors"
9
+ />
10
+
11
+ <div class="clr-form-control clr-row flex flex-row">
12
+ <label for="datastore-name" class="clr-control-label clr-col-md-2">{{
13
+ localization.common.datastoreName
14
+ }}</label>
15
+
16
+ <div class="clr-control-container" :class="nameErrorText && 'clr-error'">
17
+ <div class="flex-align-center">
18
+ <input
19
+ id="datastore-name"
20
+ v-model.trim="form.name.value"
21
+ :data-id="`${props.testId}-backup-storage-name-input`"
22
+ type="text"
23
+ class="clr-input"
24
+ @blur="onBlurInputName"
25
+ @input="onInputName"
26
+ />
27
+ <atoms-the-icon class="error-icon" name="info-circle" />
28
+ </div>
29
+
30
+ <div class="clr-subtext ng-star-inserted">
31
+ {{ nameErrorText }}
32
+ </div>
33
+ </div>
34
+ </div>
35
+ </div>
36
+ </template>
37
+
38
+ <script lang="ts" setup>
39
+ import type { UI_I_ValidationTouchResult } from '~/lib/models/plugins/validation/interfaces'
40
+ import type { UI_I_Localization } from '~/lib/models/interfaces'
41
+ import type { UI_I_FormValidationDataStore } from '~/components/common/wizards/datastore/add/sharedStorm/deviceSelection/lib/models/interfaces'
42
+ import { defaultFormFunc } from '~/components/common/backup/storage/actions/add/temp/local/createName/lib/config/defaultForm'
43
+ import { checkValidityName } from '~/components/common/backup/storage/actions/add/temp/lib/utils'
44
+
45
+ const props = defineProps<{
46
+ localCreateNameSubmit: number
47
+ testId: string
48
+ }>()
49
+ const emits = defineEmits<{
50
+ (event: 'loading', value: boolean): void
51
+ (event: 'submit', value: string): void
52
+ }>()
53
+
54
+ const localization = computed<UI_I_Localization>(() => useLocal())
55
+ const { $validation } = useNuxtApp()
56
+
57
+ const validation = $validation.call({})
58
+ const defaultForm: UI_I_FormValidationDataStore = defaultFormFunc(
59
+ localization.value
60
+ )
61
+ const form = ref<UI_I_FormValidationDataStore>(useDeepCopy(defaultForm))
62
+
63
+ const setForm = (): void => {
64
+ form.value = useDeepCopy(defaultForm)
65
+ validation.setForm(form)
66
+ }
67
+ setForm()
68
+
69
+ const validForm = ref<UI_I_ValidationTouchResult | null>(null)
70
+
71
+ /* Validation for Name input */
72
+ const isInitNameValidation = ref<boolean>(false)
73
+ const onBlurInputName = (): void => {
74
+ validForm.value = validation.touch()
75
+ isInitNameValidation.value = true
76
+ }
77
+ const onInputName = (): void => {
78
+ validForm.value = validation.touch()
79
+ }
80
+ const nameErrorText = computed<string>(() => {
81
+ if (!isInitNameValidation.value) return ''
82
+ return validForm.value?.errors?.name?.[0] || ''
83
+ })
84
+ /* Validation Name input end */
85
+
86
+ const errors = ref<string[]>([])
87
+ const showValidationErrors = (data: string[]): void => {
88
+ errors.value = data
89
+ }
90
+ const onRemoveValidationErrors = (): void => {
91
+ errors.value = []
92
+ }
93
+ const submit = async (): Promise<void> => {
94
+ const name = form.value.name.value
95
+
96
+ if (!name) {
97
+ validForm.value = validation.touch()
98
+ isInitNameValidation.value = true
99
+ if (nameErrorText.value) return
100
+ }
101
+
102
+ if (name) {
103
+ emits('loading', true)
104
+
105
+ const { valid, msg } = await checkValidityName(name)
106
+
107
+ emits('loading', false)
108
+
109
+ if (!valid) {
110
+ showValidationErrors([msg])
111
+ return
112
+ }
113
+ }
114
+
115
+ onRemoveValidationErrors()
116
+ emits('submit', name)
117
+ }
118
+ watch(
119
+ () => props.localCreateNameSubmit,
120
+ () => {
121
+ submit()
122
+ }
123
+ )
124
+ </script>
125
+
126
+ <style lang="scss" scoped>
127
+ .create-datastore-name {
128
+ &__alert-info {
129
+ :deep(.alert-text) {
130
+ font-size: 11px;
131
+ letter-spacing: normal;
132
+ }
133
+ }
134
+ .clr-form-control {
135
+ .clr-control-container {
136
+ min-height: 48px;
137
+ input {
138
+ width: 375px;
139
+ }
140
+ &.clr-error {
141
+ .clr-subtext,
142
+ .error-icon {
143
+ display: block;
144
+ }
145
+ }
146
+ .clr-subtext,
147
+ .error-icon {
148
+ display: none;
149
+ }
150
+ .error-icon {
151
+ fill: #db2100;
152
+ width: 24px;
153
+ height: 24px;
154
+ }
155
+ }
156
+ }
157
+ }
158
+ </style>
@@ -0,0 +1,15 @@
1
+ import type { UI_I_Localization } from '~/lib/models/interfaces'
2
+
3
+ export const defaultFormFunc = (localization: UI_I_Localization): any => {
4
+ return {
5
+ name: {
6
+ value: '',
7
+ validations: [
8
+ {
9
+ value: 'required',
10
+ errorText: localization.common.specifyDatastoreName,
11
+ },
12
+ ],
13
+ },
14
+ }
15
+ }
@@ -0,0 +1,106 @@
1
+ <template>
2
+ <div class="nfs-container flex flex-col h-full">
3
+ <span class="nfs-container__desc">{{ stepSubTitle }}</span>
4
+
5
+ <!-- <common-backup-storage-actions-add-temp-nfs-version-->
6
+ <!-- v-show="props.stepPosition === 1"-->
7
+ <!-- v-model:version="nfsVersion"-->
8
+ <!-- />-->
9
+
10
+ <common-backup-storage-actions-add-temp-nfs-configuration
11
+ v-show="props.stepPosition === 1"
12
+ :mode="props.mode"
13
+ :nfs-version="nfsVersion"
14
+ :nfs-configuration-submit="nfsConfigurationSubmit"
15
+ @loading="(e) => emits('loading', e)"
16
+ @next="onChangeConfigurationAndNext"
17
+ />
18
+
19
+ <!-- <templates-home-datastore-actions-add-nfs-kerberos-authentication-->
20
+ <!-- v-show="nfsVersion === 'nfs-4.1' && props.stepPosition === 3"-->
21
+ <!-- :nfs-version="nfsVersion"-->
22
+ <!-- />--><!-- TODO Он будет когда будем делать групповое -->
23
+
24
+ <common-backup-storage-actions-add-temp-nfs-accessibility
25
+ v-if="showHostAccessibility"
26
+ :host-accessibility-submit="props.hostAccessibilitySubmit"
27
+ :hosts="props.hosts"
28
+ @next="onChangeAccessibilityAndNext"
29
+ />
30
+ <!-- TODO Он будет когда будем делать групповое -->
31
+ </div>
32
+ </template>
33
+
34
+ <script lang="ts" setup>
35
+ import type { UI_I_Localization } from '~/lib/models/interfaces'
36
+ import type {
37
+ UI_T_DatastoreType,
38
+ UI_T_NfsType,
39
+ UI_T_WizardDatastoreMode,
40
+ } from '~/components/common/backup/storage/actions/add/temp/lib/models/types'
41
+ import type { UI_I_ConfigurationSendDataNfs } from '~/components/common/backup/storage/actions/add/temp/nfs/configuration/lib/models/interfaces'
42
+ import { subTitleFunc } from '~/components/common/backup/storage/actions/add/temp/lib/config/stepItems'
43
+
44
+ const props = defineProps<{
45
+ mode: UI_T_WizardDatastoreMode
46
+ stepPosition: number
47
+ datastoreType: UI_T_DatastoreType
48
+ nfsConfigurationSubmit: number
49
+ hostAccessibilitySubmit: number
50
+ hosts?: any
51
+ }>()
52
+ const emits = defineEmits<{
53
+ (event: 'loading', value: boolean): void
54
+ (event: 'submit', value: UI_I_ConfigurationSendDataNfs): void
55
+ (event: 'change-nfs-version', value: UI_T_NfsType): void
56
+ }>()
57
+
58
+ const localization = computed<UI_I_Localization>(() => useLocal())
59
+
60
+ const nfsVersion = ref<UI_T_NfsType>('nfs-4.1')
61
+
62
+ const stepSubTitle = computed<string>(() => {
63
+ const { datastoreType, stepPosition } = props
64
+ return subTitleFunc(
65
+ localization.value,
66
+ datastoreType,
67
+ stepPosition,
68
+ nfsVersion.value
69
+ )
70
+ })
71
+
72
+ // const showHostAccessibility = computed<boolean>(() => {
73
+ // return (
74
+ // (props.stepPosition === 4 && nfsVersion.value === 'nfs-4.1') ||
75
+ // (props.stepPosition === 3 && nfsVersion.value === 'nfs-3')
76
+ // )
77
+ // })
78
+ const showHostAccessibility = computed<boolean>(() => {
79
+ return props.mode === 'sphere' && props.stepPosition === 3
80
+ })
81
+
82
+ watch(nfsVersion, (newValue: UI_T_NfsType) => {
83
+ emits('change-nfs-version', newValue)
84
+ })
85
+
86
+ let sendData: any = null
87
+ const onChangeConfigurationAndNext = (
88
+ event: UI_I_ConfigurationSendDataNfs
89
+ ): void => {
90
+ sendData = {
91
+ name: event.name,
92
+ folder: event.folder,
93
+ server: event.server,
94
+ user: event.user,
95
+ password: event.password,
96
+ hosts: [],
97
+ }
98
+ emits('submit', sendData)
99
+ }
100
+ const onChangeAccessibilityAndNext = (hosts: string[]): void => {
101
+ sendData.hosts = hosts
102
+ emits('submit', sendData)
103
+ }
104
+ </script>
105
+
106
+ <style lang="scss" scoped></style>