bfg-common 1.5.216 → 1.5.217

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 (201) 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/browse/blocks/contents/filesNew/Skeleton.vue +18 -18
  12. package/components/common/context/lib/models/interfaces.ts +31 -31
  13. package/components/common/diagramMain/DiagramMain.vue +897 -897
  14. package/components/common/diagramMain/Header.vue +214 -214
  15. package/components/common/layout/theHeader/helpMenu/About.vue +82 -82
  16. package/components/common/layout/theHeader/userMenu/modals/preferences/changeLanguage/ChangeLanguage.vue +3 -3
  17. package/components/common/layout/theHeader/userMenu/modals/preferences/view/ViewOld.vue +112 -112
  18. package/components/common/monitor/overview/OverviewOld.vue +139 -139
  19. package/components/common/pages/home/headline/Headline.vue +45 -45
  20. package/components/common/pages/home/headline/HeadlineOld.vue +42 -42
  21. package/components/common/pages/home/lib/models/interfaces.ts +48 -48
  22. package/components/common/pages/home/widgets/Widgets.vue +49 -49
  23. package/components/common/pages/home/widgets/WidgetsNew.vue +86 -86
  24. package/components/common/pages/home/widgets/WidgetsOld.vue +34 -34
  25. package/components/common/pages/home/widgets/hosts/Hosts.vue +27 -27
  26. package/components/common/pages/home/widgets/hosts/lib/config/items.ts +23 -23
  27. package/components/common/pages/home/widgets/vms/Vms.vue +26 -26
  28. package/components/common/pages/home/widgets/vms/VmsOld.vue +35 -35
  29. package/components/common/pages/home/widgets/vms/lib/config/items.ts +19 -19
  30. package/components/common/pages/packages/Packages.vue +208 -208
  31. package/components/common/pages/shortcuts/block/BlockOld.vue +68 -68
  32. package/components/common/readyToComplete/ReadyToComplete.vue +17 -17
  33. package/components/common/recursionTree/RecursionTree.vue +223 -223
  34. package/components/common/select/button/ButtonDropdown.vue +108 -108
  35. package/components/common/selectLanguage/lib/config/config.ts +6 -6
  36. package/components/common/spiceConsole/Drawer.vue +377 -377
  37. package/components/common/spiceConsole/lib/models/interfaces.ts +5 -5
  38. package/components/common/vm/actions/add/folderTreeView/FolderTreeView.vue +72 -72
  39. package/components/common/vm/actions/add/folderTreeView/New.vue +40 -40
  40. package/components/common/vm/actions/add/folderTreeView/Old.vue +50 -50
  41. package/components/common/vm/actions/add/lib/config/steps.ts +263 -263
  42. package/components/common/vm/actions/clone/lib/config/steps.ts +291 -291
  43. package/components/common/vm/actions/clone/toTemplate/lib/config/steps.ts +116 -116
  44. package/components/common/vm/actions/common/customizeHardware/CustomizeHardwareNew.vue +337 -337
  45. package/components/common/vm/actions/common/customizeHardware/virtualHardware/VirtualHardwareNew.vue +480 -480
  46. package/components/common/vm/actions/common/customizeHardware/virtualHardware/VirtualHardwareOld.vue +319 -319
  47. package/components/common/vm/actions/common/customizeHardware/virtualHardware/browseView/BrowseView.vue +219 -219
  48. package/components/common/vm/actions/common/customizeHardware/virtualHardware/bus/Bus.vue +100 -100
  49. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/CdDvdDrive.vue +232 -232
  50. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/CdDvdDriveOld.vue +168 -168
  51. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/Media.vue +25 -25
  52. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/MediaNew.vue +78 -78
  53. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/MediaOld.vue +50 -50
  54. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/CpuNew.vue +190 -190
  55. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/model/ModelNew.vue +237 -237
  56. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/shares/Shares.vue +140 -140
  57. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/shares/lib/config/options.ts +28 -28
  58. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/tooltip/TooltipNew.vue +154 -154
  59. package/components/common/vm/actions/common/customizeHardware/virtualHardware/limit/Limit.vue +220 -220
  60. package/components/common/vm/actions/common/customizeHardware/virtualHardware/memory/Memory.vue +307 -307
  61. package/components/common/vm/actions/common/customizeHardware/virtualHardware/memory/MemoryNew.vue +154 -154
  62. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/NewHardDisk.vue +382 -382
  63. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/location/Location.vue +151 -151
  64. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/location/LocationNew.vue +73 -73
  65. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/location/LocationOld.vue +83 -83
  66. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/NewNetwork.vue +288 -288
  67. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/location/new/table/lib/config/config.ts +94 -94
  68. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/macAddress/MacAddress.vue +119 -119
  69. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/NewPciDevice.vue +205 -205
  70. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/directPathIo/DirectPathIoNew.vue +66 -66
  71. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/directPathIo/DirectPathIoOld.vue +62 -62
  72. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIo.vue +31 -31
  73. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIoOld.vue +76 -76
  74. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/Note.vue +15 -15
  75. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/NoteNew.vue +42 -42
  76. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/NoteOld.vue +30 -30
  77. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/nvidiaGrid/NvidiaGridOld.vue +84 -84
  78. package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/Other.vue +16 -16
  79. package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/OtherNew.vue +30 -30
  80. package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/inputDevices/InputDevicesNew.vue +40 -40
  81. package/components/common/vm/actions/common/customizeHardware/vmoptions/Vmoptions.vue +145 -145
  82. package/components/common/vm/actions/common/customizeHardware/vmoptions/VmoptionsNew.vue +106 -106
  83. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/BootOptionsNew.vue +81 -81
  84. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/delay/Delay.vue +32 -32
  85. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/firmware/Firmware.vue +60 -60
  86. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/Order.vue +174 -174
  87. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/OrderNew.vue +67 -67
  88. package/components/common/vm/actions/common/customizeHardware/vmoptions/generalOptions/GeneralOptionsNew.vue +149 -149
  89. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/New.vue +140 -140
  90. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/copyPaste/CopyPasteNew.vue +31 -31
  91. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/fileTransfer/FileTransferNew.vue +31 -31
  92. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/keymap/Keymap.vue +32 -32
  93. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/password/Password.vue +103 -103
  94. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/password/PasswordNew.vue +128 -128
  95. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirection.vue +28 -28
  96. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirectionNew.vue +39 -39
  97. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirectionOld.vue +44 -44
  98. package/components/common/vm/actions/common/lib/utils/capabilities.ts +52 -52
  99. package/components/common/vm/actions/common/select/compatibility/Old.vue +107 -107
  100. package/components/common/vm/actions/common/select/computeResource/ComputeResource.vue +134 -134
  101. package/components/common/vm/actions/common/select/computeResource/treeView/New.vue +44 -44
  102. package/components/common/vm/actions/common/select/computeResource/treeView/TreeView.vue +118 -118
  103. package/components/common/vm/actions/common/select/createType/CreateType.vue +38 -38
  104. package/components/common/vm/actions/common/select/createType/New.vue +84 -84
  105. package/components/common/vm/actions/common/select/createType/lib/models/interfaces.ts +5 -5
  106. package/components/common/vm/actions/common/select/name/Name.vue +167 -167
  107. package/components/common/vm/actions/common/select/os/New.vue +122 -122
  108. package/components/common/vm/actions/common/select/os/Old.vue +152 -152
  109. package/components/common/vm/actions/common/select/os/Os.vue +139 -139
  110. package/components/common/vm/actions/common/select/storage/new/lib/models/interfaces.ts +5 -5
  111. package/components/common/vm/actions/common/select/storage/new/lib/utils/utils.ts +21 -21
  112. package/components/common/vm/actions/editSettings/new/Skeleton.vue +88 -88
  113. package/components/common/wizards/vm/migrate/lib/config/constructDataReady.ts +220 -220
  114. package/components/common/wizards/vm/migrate/lib/config/steps.ts +157 -157
  115. package/components/common/wizards/vm/migrate/lib/validations.ts +68 -68
  116. package/components/common/wizards/vm/migrate/select/computeResource/tableView/TableView.vue +137 -137
  117. package/components/common/wizards/vm/migrate/select/network/Network.vue +103 -103
  118. package/components/common/wizards/vm/migrate/select/network/table/network/lib/config/advancedTable.ts +91 -91
  119. package/composables/productNameLocal.ts +30 -30
  120. package/composables/useAppVersion.ts +21 -21
  121. package/lib/models/interfaces.ts +1 -0
  122. package/package.json +2 -2
  123. package/plugins/date.ts +233 -233
  124. package/public/spice-console/lib/images/bitmap.js +203 -203
  125. package/public/spice-console/network/spicechannel.js +387 -387
  126. package/store/main/mutations.ts +7 -7
  127. package/store/main/state.ts +7 -7
  128. package/store/tasks/mappers/recentTasks.ts +64 -64
  129. package/components/common/backup/lib/utils/getBackupOrBackupStorageId.ts +0 -29
  130. package/components/common/backup/storage/actions/add/Add.vue +0 -51
  131. package/components/common/backup/storage/actions/add/temp/Add.vue +0 -527
  132. package/components/common/backup/storage/actions/add/temp/lib/config/stepItems.ts +0 -236
  133. package/components/common/backup/storage/actions/add/temp/lib/models/interfaces.ts +0 -58
  134. package/components/common/backup/storage/actions/add/temp/lib/models/types.ts +0 -14
  135. package/components/common/backup/storage/actions/add/temp/lib/utils.ts +0 -71
  136. package/components/common/backup/storage/actions/add/temp/local/Local.vue +0 -83
  137. package/components/common/backup/storage/actions/add/temp/local/accessibility/Accessibility.vue +0 -104
  138. package/components/common/backup/storage/actions/add/temp/local/accessibility/lib/config/tabsPannel.ts +0 -25
  139. package/components/common/backup/storage/actions/add/temp/local/accessibility/lib/models/interfaces.ts +0 -9
  140. package/components/common/backup/storage/actions/add/temp/local/accessibility/lib/models/types.ts +0 -5
  141. package/components/common/backup/storage/actions/add/temp/local/accessibility/tablesView/TablesView.vue +0 -141
  142. package/components/common/backup/storage/actions/add/temp/local/accessibility/tablesView/lib/config/compatibleTable.ts +0 -62
  143. package/components/common/backup/storage/actions/add/temp/local/accessibility/tablesView/lib/config/hostsTableItems.ts +0 -27
  144. package/components/common/backup/storage/actions/add/temp/local/accessibility/tablesView/lib/config/incompatibleTable.ts +0 -68
  145. package/components/common/backup/storage/actions/add/temp/local/accessibility/tablesView/lib/config/tableKeys.ts +0 -15
  146. package/components/common/backup/storage/actions/add/temp/local/createName/CreateName.vue +0 -160
  147. package/components/common/backup/storage/actions/add/temp/local/createName/lib/config/defaultForm.ts +0 -15
  148. package/components/common/backup/storage/actions/add/temp/nfs/Nfs.vue +0 -106
  149. package/components/common/backup/storage/actions/add/temp/nfs/accessibility/Accessibility.vue +0 -104
  150. package/components/common/backup/storage/actions/add/temp/nfs/accessibility/lib/config/tabsPannel.ts +0 -25
  151. package/components/common/backup/storage/actions/add/temp/nfs/accessibility/lib/models/interfaces.ts +0 -9
  152. package/components/common/backup/storage/actions/add/temp/nfs/accessibility/lib/models/types.ts +0 -5
  153. package/components/common/backup/storage/actions/add/temp/nfs/accessibility/tablesView/TablesView.vue +0 -141
  154. package/components/common/backup/storage/actions/add/temp/nfs/accessibility/tablesView/lib/config/compatibleTable.ts +0 -62
  155. package/components/common/backup/storage/actions/add/temp/nfs/accessibility/tablesView/lib/config/hostsTableItems.ts +0 -27
  156. package/components/common/backup/storage/actions/add/temp/nfs/accessibility/tablesView/lib/config/incompatibleTable.ts +0 -68
  157. package/components/common/backup/storage/actions/add/temp/nfs/accessibility/tablesView/lib/config/tableKeys.ts +0 -15
  158. package/components/common/backup/storage/actions/add/temp/nfs/configuration/Configuration.vue +0 -469
  159. package/components/common/backup/storage/actions/add/temp/nfs/configuration/lib/config/defaultForm.ts +0 -51
  160. package/components/common/backup/storage/actions/add/temp/nfs/configuration/lib/models/interfaces.ts +0 -14
  161. package/components/common/backup/storage/actions/add/temp/nfs/configuration/serversList/DeletePopover.vue +0 -99
  162. package/components/common/backup/storage/actions/add/temp/nfs/configuration/serversList/ServersList.vue +0 -125
  163. package/components/common/backup/storage/actions/add/temp/nfs/configuration/serversList/lib/config/serversListConfig.ts +0 -40
  164. package/components/common/backup/storage/actions/add/temp/nfs/configuration/serversList/lib/config/tableKeys.ts +0 -3
  165. package/components/common/backup/storage/actions/add/temp/nfs/configuration/serversList/lib/models/interfaces.ts +0 -13
  166. package/components/common/backup/storage/actions/add/temp/nfs/configuration/serversList/lib/models/types.ts +0 -1
  167. package/components/common/backup/storage/actions/add/temp/nfs/kerberosAuthentication/KerberosAuthentication.vue +0 -55
  168. package/components/common/backup/storage/actions/add/temp/nfs/kerberosAuthentication/lib/config/radioOptions.ts +0 -27
  169. package/components/common/backup/storage/actions/add/temp/nfs/version/Version.vue +0 -42
  170. package/components/common/backup/storage/actions/add/temp/nfs/version/lib/config/versionOptions.ts +0 -22
  171. package/components/common/backup/storage/actions/add/temp/readyComplete/ReadyComplete.vue +0 -85
  172. package/components/common/backup/storage/actions/add/temp/readyComplete/lib/config/propertiesDetails.ts +0 -165
  173. package/components/common/backup/storage/actions/add/temp/readyComplete/lib/models/interfaces.ts +0 -4
  174. package/components/common/backup/storage/actions/add/temp/samba/Samba.vue +0 -95
  175. package/components/common/backup/storage/actions/add/temp/samba/accessibility/Accessibility.vue +0 -104
  176. package/components/common/backup/storage/actions/add/temp/samba/accessibility/lib/config/tabsPannel.ts +0 -25
  177. package/components/common/backup/storage/actions/add/temp/samba/accessibility/lib/models/interfaces.ts +0 -9
  178. package/components/common/backup/storage/actions/add/temp/samba/accessibility/lib/models/types.ts +0 -5
  179. package/components/common/backup/storage/actions/add/temp/samba/accessibility/tablesView/TablesView.vue +0 -141
  180. package/components/common/backup/storage/actions/add/temp/samba/accessibility/tablesView/lib/config/compatibleTable.ts +0 -62
  181. package/components/common/backup/storage/actions/add/temp/samba/accessibility/tablesView/lib/config/hostsTableItems.ts +0 -53
  182. package/components/common/backup/storage/actions/add/temp/samba/accessibility/tablesView/lib/config/incompatibleTable.ts +0 -68
  183. package/components/common/backup/storage/actions/add/temp/samba/accessibility/tablesView/lib/config/tableKeys.ts +0 -15
  184. package/components/common/backup/storage/actions/add/temp/samba/configuration/Configuration.vue +0 -470
  185. package/components/common/backup/storage/actions/add/temp/samba/configuration/lib/config/defaultForm.ts +0 -51
  186. package/components/common/backup/storage/actions/add/temp/samba/configuration/lib/models/interfaces.ts +0 -14
  187. package/components/common/backup/storage/actions/add/temp/samba/configuration/serversList/DeletePopover.vue +0 -99
  188. package/components/common/backup/storage/actions/add/temp/samba/configuration/serversList/ServersList.vue +0 -124
  189. package/components/common/backup/storage/actions/add/temp/samba/configuration/serversList/lib/config/serversListConfig.ts +0 -40
  190. package/components/common/backup/storage/actions/add/temp/samba/configuration/serversList/lib/config/tableKeys.ts +0 -3
  191. package/components/common/backup/storage/actions/add/temp/samba/configuration/serversList/lib/models/interfaces.ts +0 -13
  192. package/components/common/backup/storage/actions/add/temp/samba/configuration/serversList/lib/models/types.ts +0 -1
  193. package/components/common/backup/storage/actions/add/temp/samba/kerberosAuthentication/KerberosAuthentication.vue +0 -55
  194. package/components/common/backup/storage/actions/add/temp/samba/kerberosAuthentication/lib/config/radioOptions.ts +0 -27
  195. package/components/common/backup/storage/actions/add/temp/sharedStorm/SharedStorm.vue +0 -106
  196. package/components/common/backup/storage/actions/add/temp/sharedStorm/storage/Storage.vue +0 -71
  197. package/components/common/backup/storage/actions/add/temp/sharedStorm/storage/lib/config/defaultForm.ts +0 -15
  198. package/components/common/backup/storage/actions/add/temp/types/Types.vue +0 -79
  199. package/components/common/backup/storage/actions/add/temp/types/lib/config/typeOptions.ts +0 -62
  200. package/components/common/backup/storage/actions/delete/Delete.vue +0 -65
  201. package/components/common/backup/storage/actions/delete/lib/models/interfaces.ts +0 -5
@@ -1,84 +1,84 @@
1
- <template>
2
- <div class="select-create-type py-3">
3
- <div
4
- v-for="item in props.items"
5
- v-development="item.disabled"
6
- :key="item.value"
7
- :class="[
8
- 'select-create-type-block',
9
- { selected: item.value === model, disabled: item.disabled },
10
- ]"
11
- @click="model = item.value"
12
- >
13
- <ui-radio
14
- v-model="model"
15
- :label="item.text"
16
- :value="item.value"
17
- :test-id="item.testId"
18
- :disabled="item.disabled"
19
- size="md"
20
- />
21
-
22
- <p class="description">
23
- {{ item.description }}
24
- </p>
25
- </div>
26
- </div>
27
- </template>
28
-
29
- <script setup lang="ts">
30
- import type { UI_I_VmCreateTypeOption } from '~/components/common/vm/actions/common/select/createType/lib/models/interfaces'
31
-
32
- const model = defineModel<string>()
33
-
34
- const props = defineProps<{
35
- items: UI_I_VmCreateTypeOption[]
36
- }>()
37
- </script>
38
-
39
- <style>
40
- :root {
41
- --select-create-type-block-bg-color: #ffffff;
42
- --select-create-type-block-border-color: #e9ebed;
43
- --select-create-type-block-border-hover-color: #d3d6da;
44
- --select-create-type-block-selected-bg-color: #f0f8fd;
45
- --select-create-type-block-selected-border-color: #008fd6;
46
- }
47
- :root.dark-theme {
48
- --select-create-type-block-bg-color: transparent;
49
- --select-create-type-block-border-color: #e9ebed1f;
50
- --select-create-type-block-border-hover-color: #e9ebed3d;
51
- --select-create-type-block-selected-bg-color: #2ba2de14;
52
- --select-create-type-block-selected-border-color: #2ba2de;
53
- }
54
- </style>
55
- <style scoped lang="scss">
56
- .select-create-type-block {
57
- background-color: var(--select-create-type-block-bg-color);
58
- border: 1px solid var(--select-create-type-block-border-color);
59
- padding: 12px;
60
- border-radius: 8px;
61
-
62
- &:not(.selected):not(.disabled) {
63
- cursor: pointer;
64
- &:hover {
65
- border-color: var(--select-create-type-block-border-hover-color);
66
- }
67
- }
68
-
69
- &.selected {
70
- background-color: var(--select-create-type-block-selected-bg-color);
71
- border: 1.5px solid var(--select-create-type-block-selected-border-color);
72
- }
73
-
74
- &:not(:last-child) {
75
- margin-bottom: 12px;
76
- }
77
-
78
- .description {
79
- font-size: 13px;
80
- color: #9da6ad;
81
- margin: 8px 0 0 28px;
82
- }
83
- }
84
- </style>
1
+ <template>
2
+ <div class="select-create-type py-3">
3
+ <div
4
+ v-for="item in props.items"
5
+ v-development="item.disabled"
6
+ :key="item.value"
7
+ :class="[
8
+ 'select-create-type-block',
9
+ { selected: item.value === model, disabled: item.disabled },
10
+ ]"
11
+ @click="model = item.value"
12
+ >
13
+ <ui-radio
14
+ v-model="model"
15
+ :label="item.text"
16
+ :value="item.value"
17
+ :test-id="item.testId"
18
+ :disabled="item.disabled"
19
+ size="md"
20
+ />
21
+
22
+ <p class="description">
23
+ {{ item.description }}
24
+ </p>
25
+ </div>
26
+ </div>
27
+ </template>
28
+
29
+ <script setup lang="ts">
30
+ import type { UI_I_VmCreateTypeOption } from '~/components/common/vm/actions/common/select/createType/lib/models/interfaces'
31
+
32
+ const model = defineModel<string>()
33
+
34
+ const props = defineProps<{
35
+ items: UI_I_VmCreateTypeOption[]
36
+ }>()
37
+ </script>
38
+
39
+ <style>
40
+ :root {
41
+ --select-create-type-block-bg-color: #ffffff;
42
+ --select-create-type-block-border-color: #e9ebed;
43
+ --select-create-type-block-border-hover-color: #d3d6da;
44
+ --select-create-type-block-selected-bg-color: #f0f8fd;
45
+ --select-create-type-block-selected-border-color: #008fd6;
46
+ }
47
+ :root.dark-theme {
48
+ --select-create-type-block-bg-color: transparent;
49
+ --select-create-type-block-border-color: #e9ebed1f;
50
+ --select-create-type-block-border-hover-color: #e9ebed3d;
51
+ --select-create-type-block-selected-bg-color: #2ba2de14;
52
+ --select-create-type-block-selected-border-color: #2ba2de;
53
+ }
54
+ </style>
55
+ <style scoped lang="scss">
56
+ .select-create-type-block {
57
+ background-color: var(--select-create-type-block-bg-color);
58
+ border: 1px solid var(--select-create-type-block-border-color);
59
+ padding: 12px;
60
+ border-radius: 8px;
61
+
62
+ &:not(.selected):not(.disabled) {
63
+ cursor: pointer;
64
+ &:hover {
65
+ border-color: var(--select-create-type-block-border-hover-color);
66
+ }
67
+ }
68
+
69
+ &.selected {
70
+ background-color: var(--select-create-type-block-selected-bg-color);
71
+ border: 1.5px solid var(--select-create-type-block-selected-border-color);
72
+ }
73
+
74
+ &:not(:last-child) {
75
+ margin-bottom: 12px;
76
+ }
77
+
78
+ .description {
79
+ font-size: 13px;
80
+ color: #9da6ad;
81
+ margin: 8px 0 0 28px;
82
+ }
83
+ }
84
+ </style>
@@ -1,5 +1,5 @@
1
- import type { UI_I_OptionItem } from '~/components/atoms/lib/models/interfaces'
2
-
3
- export interface UI_I_VmCreateTypeOption extends UI_I_OptionItem {
4
- description: string
5
- }
1
+ import type { UI_I_OptionItem } from '~/components/atoms/lib/models/interfaces'
2
+
3
+ export interface UI_I_VmCreateTypeOption extends UI_I_OptionItem {
4
+ description: string
5
+ }
@@ -1,167 +1,167 @@
1
- <template>
2
- <common-vm-actions-common-select-name-new
3
- v-if="isNewView"
4
- v-model:vm-name="vmName"
5
- v-model:is-show-help="isShowHelp"
6
- :project="props.project"
7
- :errors="errors"
8
- :data-center="props.dataCenter"
9
- @remove-validation-errors="onRemoveValidationErrors"
10
- @select-node="onSelectNode"
11
- />
12
- <common-vm-actions-common-select-name-old
13
- v-else
14
- v-model:vm-name="vmName"
15
- v-model:is-show-help="isShowHelp"
16
- :project="props.project"
17
- :errors="errors"
18
- :data-center="props.dataCenter"
19
- @remove-validation-errors="onRemoveValidationErrors"
20
- @select-node="onSelectNode"
21
- />
22
- </template>
23
-
24
- <script setup lang="ts">
25
- // import { API_UI_I_Error } from '~/lib/models/store/interfaces'
26
- import type { UI_I_Localization } from '~/lib/models/interfaces'
27
- import type { UI_T_Project } from '~/lib/models/types'
28
- import type { UI_I_TreeNode } from '~/components/common/recursionTree/lib/models/interfaces'
29
-
30
- const props = defineProps<{
31
- nameFormSubmit: null | Function
32
- show: boolean
33
- project: UI_T_Project
34
- dataCenter?: UI_I_TreeNode // для сферы
35
- }>()
36
- const emits = defineEmits<{
37
- (event: 'submit', value: [string, UI_I_TreeNode | null]): void
38
- (event: 'loading', value: boolean): void
39
- (
40
- event: 'check-name',
41
- value: [[string, UI_I_TreeNode | null], (error: any) => void]
42
- ): void
43
- }>()
44
-
45
- const { $store }: any = useNuxtApp()
46
- const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
47
-
48
- const localization = computed<UI_I_Localization>(() => useLocal())
49
-
50
- const vmName = ref<string>('')
51
-
52
- const selectedNode = ref<UI_I_TreeNode | null>(null)
53
- const onSelectNode = (node: UI_I_TreeNode): void => {
54
- selectedNode.value = node
55
- }
56
-
57
- watch(
58
- () => props.nameFormSubmit,
59
- (newValue) => {
60
- newValue && submit(newValue)
61
- }
62
- )
63
-
64
- const isParentDatacenter = (node: UI_I_TreeNode | null): boolean => {
65
- if (!node) return false
66
-
67
- if (node.parent?.type === 'datacenter') return true
68
- if (node.parent?.type === 'folder') return isParentDatacenter(node.parent)
69
- return false
70
- }
71
- const submit = async (cb: Function): Promise<void> => {
72
- const name = vmName.value
73
-
74
- if (name !== '') {
75
- const isNameValid = await checkNameIsValid(name)
76
- if (!isNameValid) {
77
- cb(false)
78
- return
79
- }
80
- }
81
-
82
- if (props.project === 'sphere') {
83
- // const isDatacenterFolder = isParentDatacenter(selectedNode.value)
84
-
85
- if (
86
- // selectedNode.value?.type !== 'datacenter' &&
87
- // selectedNode.value?.type === 'folder' &&
88
- // !isDatacenterFolder
89
- // TODO рефакторинг, здесь сейчас проверяем является ли выбранный элемент датацентром или папкой(вм)
90
- ![3, 7].includes(selectedNode.value?.kind)
91
- ) {
92
- showValidationErrors([
93
- localization.value.common.enterValidLocationVirtualMachine,
94
- ])
95
- cb(false)
96
- return
97
- }
98
- }
99
-
100
- onRemoveValidationErrors()
101
- emits('submit', [name, selectedNode.value])
102
- cb(true)
103
- }
104
- const checkNameIsValid = async (name: string): Promise<boolean> => {
105
- emits('loading', true)
106
-
107
- return new Promise((resolve) => {
108
- emits('check-name', [
109
- [name, selectedNode.value],
110
- (error) => {
111
- emits('loading', false)
112
-
113
- const status = error?.statusCode || 200
114
- switch (status) {
115
- case 405: // Invalid kind
116
- showValidationErrors([
117
- localization.value.common.kindValidationDescription,
118
- ])
119
- resolve(false)
120
- break
121
- case 406: // Invalid name
122
- showValidationErrors([
123
- localization.value.common.vmNameValidationDescription,
124
- ])
125
- resolve(false)
126
- break
127
- case 409: // Name exist
128
- showValidationErrors([
129
- localization.value.common.vmNameExistInSelectedLocation,
130
- ])
131
- resolve(false)
132
- break
133
- }
134
-
135
- resolve(true)
136
- },
137
- ])
138
- })
139
- }
140
-
141
- const errors = ref<string[]>([])
142
- const showValidationErrors = (data: string[]): void => {
143
- errors.value = data
144
- }
145
- const onRemoveValidationErrors = (): void => {
146
- errors.value = []
147
- }
148
-
149
- watch(
150
- () => props.show,
151
- (newValue) => {
152
- if (!newValue) return
153
-
154
- const input = document.getElementById('virtual-machine-name')
155
- if (!input) return
156
-
157
- setTimeout(() => {
158
- input.focus()
159
- }, 0)
160
- }
161
- )
162
-
163
- const isShowHelp = ref<boolean>(false)
164
- </script>
165
-
166
- <style scoped lang="scss">
167
- </style>
1
+ <template>
2
+ <common-vm-actions-common-select-name-new
3
+ v-if="isNewView"
4
+ v-model:vm-name="vmName"
5
+ v-model:is-show-help="isShowHelp"
6
+ :project="props.project"
7
+ :errors="errors"
8
+ :data-center="props.dataCenter"
9
+ @remove-validation-errors="onRemoveValidationErrors"
10
+ @select-node="onSelectNode"
11
+ />
12
+ <common-vm-actions-common-select-name-old
13
+ v-else
14
+ v-model:vm-name="vmName"
15
+ v-model:is-show-help="isShowHelp"
16
+ :project="props.project"
17
+ :errors="errors"
18
+ :data-center="props.dataCenter"
19
+ @remove-validation-errors="onRemoveValidationErrors"
20
+ @select-node="onSelectNode"
21
+ />
22
+ </template>
23
+
24
+ <script setup lang="ts">
25
+ // import { API_UI_I_Error } from '~/lib/models/store/interfaces'
26
+ import type { UI_I_Localization } from '~/lib/models/interfaces'
27
+ import type { UI_T_Project } from '~/lib/models/types'
28
+ import type { UI_I_TreeNode } from '~/components/common/recursionTree/lib/models/interfaces'
29
+
30
+ const props = defineProps<{
31
+ nameFormSubmit: null | Function
32
+ show: boolean
33
+ project: UI_T_Project
34
+ dataCenter?: UI_I_TreeNode // для сферы
35
+ }>()
36
+ const emits = defineEmits<{
37
+ (event: 'submit', value: [string, UI_I_TreeNode | null]): void
38
+ (event: 'loading', value: boolean): void
39
+ (
40
+ event: 'check-name',
41
+ value: [[string, UI_I_TreeNode | null], (error: any) => void]
42
+ ): void
43
+ }>()
44
+
45
+ const { $store }: any = useNuxtApp()
46
+ const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
47
+
48
+ const localization = computed<UI_I_Localization>(() => useLocal())
49
+
50
+ const vmName = ref<string>('')
51
+
52
+ const selectedNode = ref<UI_I_TreeNode | null>(null)
53
+ const onSelectNode = (node: UI_I_TreeNode): void => {
54
+ selectedNode.value = node
55
+ }
56
+
57
+ watch(
58
+ () => props.nameFormSubmit,
59
+ (newValue) => {
60
+ newValue && submit(newValue)
61
+ }
62
+ )
63
+
64
+ const isParentDatacenter = (node: UI_I_TreeNode | null): boolean => {
65
+ if (!node) return false
66
+
67
+ if (node.parent?.type === 'datacenter') return true
68
+ if (node.parent?.type === 'folder') return isParentDatacenter(node.parent)
69
+ return false
70
+ }
71
+ const submit = async (cb: Function): Promise<void> => {
72
+ const name = vmName.value
73
+
74
+ if (name !== '') {
75
+ const isNameValid = await checkNameIsValid(name)
76
+ if (!isNameValid) {
77
+ cb(false)
78
+ return
79
+ }
80
+ }
81
+
82
+ if (props.project === 'sphere') {
83
+ // const isDatacenterFolder = isParentDatacenter(selectedNode.value)
84
+
85
+ if (
86
+ // selectedNode.value?.type !== 'datacenter' &&
87
+ // selectedNode.value?.type === 'folder' &&
88
+ // !isDatacenterFolder
89
+ // TODO рефакторинг, здесь сейчас проверяем является ли выбранный элемент датацентром или папкой(вм)
90
+ ![3, 7].includes(selectedNode.value?.kind)
91
+ ) {
92
+ showValidationErrors([
93
+ localization.value.common.enterValidLocationVirtualMachine,
94
+ ])
95
+ cb(false)
96
+ return
97
+ }
98
+ }
99
+
100
+ onRemoveValidationErrors()
101
+ emits('submit', [name, selectedNode.value])
102
+ cb(true)
103
+ }
104
+ const checkNameIsValid = async (name: string): Promise<boolean> => {
105
+ emits('loading', true)
106
+
107
+ return new Promise((resolve) => {
108
+ emits('check-name', [
109
+ [name, selectedNode.value],
110
+ (error) => {
111
+ emits('loading', false)
112
+
113
+ const status = error?.statusCode || 200
114
+ switch (status) {
115
+ case 405: // Invalid kind
116
+ showValidationErrors([
117
+ localization.value.common.kindValidationDescription,
118
+ ])
119
+ resolve(false)
120
+ break
121
+ case 406: // Invalid name
122
+ showValidationErrors([
123
+ localization.value.common.vmNameValidationDescription,
124
+ ])
125
+ resolve(false)
126
+ break
127
+ case 409: // Name exist
128
+ showValidationErrors([
129
+ localization.value.common.vmNameExistInSelectedLocation,
130
+ ])
131
+ resolve(false)
132
+ break
133
+ }
134
+
135
+ resolve(true)
136
+ },
137
+ ])
138
+ })
139
+ }
140
+
141
+ const errors = ref<string[]>([])
142
+ const showValidationErrors = (data: string[]): void => {
143
+ errors.value = data
144
+ }
145
+ const onRemoveValidationErrors = (): void => {
146
+ errors.value = []
147
+ }
148
+
149
+ watch(
150
+ () => props.show,
151
+ (newValue) => {
152
+ if (!newValue) return
153
+
154
+ const input = document.getElementById('virtual-machine-name')
155
+ if (!input) return
156
+
157
+ setTimeout(() => {
158
+ input.focus()
159
+ }, 0)
160
+ }
161
+ )
162
+
163
+ const isShowHelp = ref<boolean>(false)
164
+ </script>
165
+
166
+ <style scoped lang="scss">
167
+ </style>