bfg-common 1.5.43 → 1.5.45

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 (185) 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/normalize.scss +339 -339
  7. package/components/atoms/TheIcon3.vue +50 -50
  8. package/components/atoms/collapse/CollapseNav.vue +165 -165
  9. package/components/atoms/dropdown/dropdown/Dropdown.vue +168 -168
  10. package/components/atoms/modal/bySteps/BySteps.vue +253 -253
  11. package/components/atoms/perPage/PerPage.vue +58 -58
  12. package/components/atoms/stack/StackBlock.vue +185 -185
  13. package/components/atoms/table/dataGrid/DataGrid.vue +1 -1
  14. package/components/atoms/table/dataGrid/DataGridColumnSwitch.vue +222 -222
  15. package/components/atoms/table/dataGrid/lib/config/settingsTable.ts +94 -94
  16. package/components/atoms/table/dataGrid/lib/utils/export.ts +16 -16
  17. package/components/atoms/tabs/VerticalTabs.vue +105 -105
  18. package/components/atoms/tooltip/Signpost.vue +227 -227
  19. package/components/common/accordion/Recursion.vue +222 -222
  20. package/components/common/browse/BrowseNew.vue +237 -237
  21. package/components/common/browse/BrowseOld.vue +217 -217
  22. package/components/common/browse/blocks/contents/Files.vue +37 -37
  23. package/components/common/browse/blocks/contents/FilesOld.vue +72 -72
  24. package/components/common/browse/blocks/contents/filesNew/FilesNew.vue +96 -96
  25. package/components/common/browse/blocks/contents/filesNew/Skeleton.vue +18 -18
  26. package/components/common/context/Context.vue +111 -111
  27. package/components/common/context/lib/models/interfaces.ts +31 -31
  28. package/components/common/context/recursion/Recursion.vue +87 -87
  29. package/components/common/context/recursion/RecursionNew.vue +238 -238
  30. package/components/common/context/recursion/RecursionOld.vue +228 -228
  31. package/components/common/details/DetailsItem.vue +109 -109
  32. package/components/common/diagramMain/DiagramMain.vue +897 -897
  33. package/components/common/diagramMain/Header.vue +214 -214
  34. package/components/common/layout/theHeader/helpMenu/About.vue +82 -82
  35. package/components/common/layout/theHeader/helpMenu/aboutNew/AboutNew.vue +103 -103
  36. package/components/common/layout/theHeader/userMenu/modals/preferences/view/ViewOld.vue +112 -112
  37. package/components/common/mainNavigationPanel/MainNavigationPanelNew.vue +336 -336
  38. package/components/common/mainNavigationPanel/MainNavigationPanelOld.vue +311 -311
  39. package/components/common/modals/unsavedChanges/UnsavedChanges.vue +56 -56
  40. package/components/common/monitor/overview/OverviewOld.vue +139 -139
  41. package/components/common/pages/home/StatusContent.vue +49 -49
  42. package/components/common/pages/home/headline/Headline.vue +45 -45
  43. package/components/common/pages/home/headline/HeadlineOld.vue +42 -42
  44. package/components/common/pages/home/lib/models/interfaces.ts +48 -48
  45. package/components/common/pages/home/widgets/Widgets.vue +49 -49
  46. package/components/common/pages/home/widgets/WidgetsNew.vue +86 -86
  47. package/components/common/pages/home/widgets/WidgetsOld.vue +34 -34
  48. package/components/common/pages/home/widgets/hosts/Hosts.vue +27 -27
  49. package/components/common/pages/home/widgets/hosts/lib/config/items.ts +23 -23
  50. package/components/common/pages/home/widgets/vms/Vms.vue +26 -26
  51. package/components/common/pages/home/widgets/vms/VmsOld.vue +35 -35
  52. package/components/common/pages/home/widgets/vms/lib/config/items.ts +19 -19
  53. package/components/common/pages/licensing/Licensing.vue +128 -0
  54. package/components/common/pages/licensing/lib/models/interfaces.ts +22 -0
  55. package/components/common/pages/licensing/lib/utils/validation.ts +29 -0
  56. package/components/common/pages/licensing/listView/ListView.vue +50 -0
  57. package/components/common/pages/licensing/listView/lib/config/list.ts +57 -0
  58. package/components/common/pages/licensing/listView/lib/models/interfaces.ts +5 -0
  59. package/components/common/pages/licensing/modals/assign/Assign.vue +247 -0
  60. package/components/common/pages/licensing/modals/assign/lib/config/tabsPannel.ts +17 -0
  61. package/components/common/pages/licensing/modals/assign/lib/models/interfaces.ts +5 -0
  62. package/components/common/pages/licensing/modals/assign/lib/utils/error.ts +25 -0
  63. package/components/common/pages/licensing/modals/assign/new/New.vue +216 -0
  64. package/components/common/pages/licensing/modals/assign/tableView/TableView.vue +193 -0
  65. package/components/common/pages/licensing/modals/assign/tableView/lib/config/table.ts +100 -0
  66. package/components/common/pages/licensing/modals/assign/tableView/lib/config/tableKeys.ts +10 -0
  67. package/components/common/pages/licensing/modals/assign/tableView/lib/models/interfaces.ts +9 -0
  68. package/components/common/pages/licensing/modals/assign/tableView/lib/models/types.ts +8 -0
  69. package/components/common/pages/packages/Packages.vue +208 -208
  70. package/components/common/pages/shortcuts/block/BlockNew.vue +96 -96
  71. package/components/common/pages/shortcuts/block/BlockOld.vue +68 -68
  72. package/components/common/portlets/customAttributes/Portlet.vue +667 -667
  73. package/components/common/portlets/tag/Portlet.vue +433 -433
  74. package/components/common/recursionTree/RecursionTree.vue +223 -223
  75. package/components/common/select/button/ButtonDropdown.vue +108 -108
  76. package/components/common/spiceConsole/Drawer.vue +370 -370
  77. package/components/common/spiceConsole/lib/models/interfaces.ts +5 -5
  78. package/components/common/split/horizontal/HorizontalNew.vue +376 -376
  79. package/components/common/split/horizontal/HorizontalOld.vue +337 -337
  80. package/components/common/split/vertical/Vertical.vue +160 -160
  81. package/components/common/tools/Actions.vue +188 -188
  82. package/components/common/vm/actions/add/Add.vue +774 -774
  83. package/components/common/vm/actions/add/lib/config/steps.ts +247 -247
  84. package/components/common/vm/actions/clone/Clone.vue +798 -798
  85. package/components/common/vm/actions/clone/lib/config/steps.ts +291 -291
  86. package/components/common/vm/actions/clone/toTemplate/ToTemplate.vue +634 -634
  87. package/components/common/vm/actions/clone/toTemplate/lib/config/steps.ts +116 -116
  88. package/components/common/vm/actions/common/customizeHardware/CustomizeHardware.vue +275 -275
  89. package/components/common/vm/actions/common/customizeHardware/CustomizeHardwareNew.vue +274 -274
  90. package/components/common/vm/actions/common/customizeHardware/CustomizeHardwareOld.vue +177 -177
  91. package/components/common/vm/actions/common/customizeHardware/virtualHardware/VirtualHardware.vue +698 -698
  92. package/components/common/vm/actions/common/customizeHardware/virtualHardware/VirtualHardwareNew.vue +410 -410
  93. package/components/common/vm/actions/common/customizeHardware/virtualHardware/VirtualHardwareOld.vue +319 -319
  94. package/components/common/vm/actions/common/customizeHardware/virtualHardware/browseView/BrowseView.vue +219 -219
  95. package/components/common/vm/actions/common/customizeHardware/virtualHardware/bus/Bus.vue +99 -99
  96. package/components/common/vm/actions/common/customizeHardware/virtualHardware/bus/BusNew.vue +117 -117
  97. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/CdDvdDrive.vue +232 -232
  98. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/CdDvdDriveNew.vue +164 -164
  99. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/CdDvdDriveOld.vue +168 -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 -70
  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 +338 -338
  104. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/shares/Shares.vue +140 -140
  105. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/shares/lib/config/options.ts +28 -28
  106. package/components/common/vm/actions/common/customizeHardware/virtualHardware/limit/Limit.vue +220 -220
  107. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/NewHardDisk.vue +368 -368
  108. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/NewHardDiskNew.vue +232 -232
  109. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/NewHardDiskOld.vue +250 -250
  110. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/mode/ModeOld.vue +56 -56
  111. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/sharing/SharingNew.vue +44 -44
  112. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/NewNetwork.vue +286 -286
  113. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/NewNetworkNew.vue +124 -124
  114. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/location/LocationOld.vue +134 -134
  115. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/location/new/New.vue +63 -63
  116. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/location/new/table/lib/config/config.ts +95 -95
  117. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/macAddress/MacAddress.vue +119 -119
  118. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/macAddress/MacAddressNew.vue +69 -69
  119. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/macAddress/MacAddressOld.vue +83 -83
  120. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/NewPciDevice.vue +205 -205
  121. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/directPathIo/DirectPathIoNew.vue +66 -66
  122. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/directPathIo/DirectPathIoOld.vue +62 -62
  123. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIo.vue +31 -31
  124. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIoNew.vue +84 -84
  125. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIoOld.vue +76 -76
  126. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/Note.vue +15 -15
  127. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/NoteNew.vue +42 -42
  128. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/NoteOld.vue +30 -30
  129. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/nvidiaGrid/NvidiaGrid.vue +41 -41
  130. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/nvidiaGrid/NvidiaGridNew.vue +81 -81
  131. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/nvidiaGrid/NvidiaGridOld.vue +84 -84
  132. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newUsbController/NewUsbControllerNew.vue +56 -56
  133. package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/Other.vue +16 -16
  134. package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/OtherNew.vue +30 -30
  135. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/VideoCardNew.vue +104 -104
  136. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/VideoCardOld.vue +112 -112
  137. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/totalVideoMemory/TotalVideoMemoryNew.vue +54 -54
  138. package/components/common/vm/actions/common/customizeHardware/vmoptions/Vmoptions.vue +145 -145
  139. package/components/common/vm/actions/common/customizeHardware/vmoptions/VmoptionsNew.vue +102 -102
  140. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/BootOptionsNew.vue +75 -75
  141. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/delay/Delay.vue +26 -26
  142. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/firmware/Firmware.vue +57 -57
  143. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/firmware/FirmwareNew.vue +42 -42
  144. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/menu/MenuNew.vue +25 -25
  145. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/Order.vue +171 -171
  146. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/OrderNew.vue +50 -50
  147. package/components/common/vm/actions/common/customizeHardware/vmoptions/generalOptions/GeneralOptionsNew.vue +141 -141
  148. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/New.vue +140 -140
  149. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/copyPaste/CopyPasteNew.vue +30 -30
  150. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/fileTransfer/FileTransferNew.vue +30 -30
  151. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/folderSharing/FolderSharingNew.vue +30 -30
  152. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/keymap/Keymap.vue +32 -32
  153. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/keymap/KeymapNew.vue +39 -39
  154. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/password/Password.vue +103 -103
  155. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/password/PasswordNew.vue +102 -102
  156. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/password/PasswordOld.vue +94 -94
  157. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirection.vue +28 -28
  158. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirectionNew.vue +38 -38
  159. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirectionOld.vue +44 -44
  160. package/components/common/vm/actions/common/lib/utils/capabilities.ts +52 -52
  161. package/components/common/vm/actions/common/select/createType/CreateType.vue +74 -74
  162. package/components/common/vm/actions/common/select/storage/Storage.vue +130 -130
  163. package/components/common/vm/actions/common/select/storage/StorageOld.vue +129 -129
  164. package/components/common/vm/actions/common/select/template/Template.vue +65 -65
  165. package/components/common/vm/actions/common/select/template/TemplateTreeView.vue +88 -88
  166. package/components/common/vm/actions/editSettings/new/Skeleton.vue +88 -88
  167. package/components/common/wizards/datastore/add/lib/config/steps.ts +138 -138
  168. package/components/common/wizards/datastore/add/nfs/accessibility/Accessibility.vue +60 -60
  169. package/components/common/wizards/datastore/add/readyComplete/ReadyComplete.vue +92 -92
  170. package/components/common/wizards/network/add/steps/SelectConnectionType.vue +105 -105
  171. package/components/common/wizards/vm/migrate/lib/config/constructDataReady.ts +220 -220
  172. package/components/common/wizards/vm/migrate/select/network/Network.vue +103 -103
  173. package/components/common/wizards/vm/migrate/select/network/table/network/Network.vue +150 -150
  174. package/components/common/wizards/vm/migrate/select/network/table/network/lib/config/advancedTable.ts +91 -91
  175. package/components/common/wizards/vm/migrate/select/priority/Priority.vue +43 -43
  176. package/composables/productNameLocal.ts +30 -30
  177. package/composables/useAppVersion.ts +21 -21
  178. package/package.json +1 -1
  179. package/plugins/date.ts +233 -233
  180. package/plugins/directives.ts +24 -24
  181. package/public/spice-console/lib/images/bitmap.js +203 -203
  182. package/public/spice-console/network/spicechannel.js +383 -383
  183. package/store/main/mutations.ts +7 -7
  184. package/store/main/state.ts +7 -7
  185. package/store/tasks/mappers/recentTasks.ts +64 -64
@@ -1,232 +1,232 @@
1
- <template>
2
- <ui-stack-block
3
- :has-children="true"
4
- :is-roll-back="props.type === 'removed'"
5
- :removable="props.isRemovable"
6
- :test-id="`hard-disk-stack-block-${props.index}`"
7
- @remove="emits('remove')"
8
- @roll-back="emits('roll-back')"
9
- >
10
- <template #stackBlockKey>
11
- <div
12
- :id="`vm-wizard-toggle-block-hard-disk-${props.index}`"
13
- :data-id="`vm-wizard-toggle-block-hard-disk-${props.index}`"
14
- class="vm-wizard-toggle-block-hard-disk flex-align-center"
15
- >
16
- <span class="title">{{ props.label }}</span>
17
- <ui-icon
18
- v-show="props.hardDiskInvalid"
19
- width="18px"
20
- height="18px"
21
- name="error-outline"
22
- />
23
- </div>
24
- </template>
25
- <template #stackBlockContent>
26
- <!-- <div class="flex-align-center flex-space-between mr-1">-->
27
- <div class="new-hard-disk-content flex-align-center">
28
- <template v-if="props.type === 'removed'">
29
- <span>{{ localization.common.deviceWillRemoved }}</span>
30
- <div class="flex-align-center" @click.stop>
31
- <ui-checkbox
32
- v-model="deleteFilesFromDatastore"
33
- :test-id="`hard-disk-delete-files-from-datastore-${props.index}`"
34
- :disabled="props.disabled"
35
- :label-text="localization.common.deleteFilesFromDatastore"
36
- />
37
- </div>
38
- </template>
39
- <template v-else>
40
- <ui-input-with-tooltip
41
- :id="`vm-wizard-hard-disk-${props.index}`"
42
- v-model.number="size"
43
- :test-id="`vm-wizard-hard-disk-${props.index}`"
44
- :disabled="props.isDisabledSize"
45
- :class="[
46
- 'spinfree edit-setting-input input-text-color',
47
- { 'has-error': props.hardDiskTypeErrorLocalText },
48
- ]"
49
- :error-text="props.errorText"
50
- input-style="rounded"
51
- type="number"
52
- size="md"
53
- @blur="emits('validate-size')"
54
- @click.stop
55
- />
56
-
57
- <ui-select
58
- :id="`hard-disk-type-select-${props.index}`"
59
- v-model="hardDiskType"
60
- width="auto"
61
- :items="props.hardDiskTypeOptions"
62
- :disabled="props.type === 'exist'"
63
- :test-id="`hard-disk-type-select-${props.index}`"
64
- class="unit"
65
- @change="emits('validate-size')"
66
- @click.stop
67
- />
68
- </template>
69
- </div>
70
- </template>
71
- <template #stackChildren>
72
- <common-vm-actions-common-customize-hardware-virtual-hardware-new-hard-disk-maximum-size
73
- :free-mb="props.maxHardDisk"
74
- />
75
- <common-vm-actions-common-customize-hardware-virtual-hardware-new-hard-disk-location
76
- v-if="props.isNewType"
77
- :location="props.location"
78
- :index="props.index"
79
- :error-validation-fields="props.errorValidationFields"
80
- :get-datastore-table-func="props.getDatastoreTableFunc"
81
- :datastore="props.datastore"
82
- @change="emits('change-storage', $event)"
83
- @remove-error-by-title="emits('remove-error-by-title', $event)"
84
- />
85
- <common-vm-actions-common-customize-hardware-virtual-hardware-new-hard-disk-file
86
- v-else
87
- :path="props.hardDisk?.source"
88
- />
89
- <common-vm-actions-common-customize-hardware-virtual-hardware-new-hard-disk-provisioning
90
- v-model:disk-provisioning="diskProvisioning"
91
- :index="props.index"
92
- :error-validation-fields="props.errorValidationFields"
93
- :disabled="(props.isEdit && !props.isNewType) || props.isRunning"
94
- @remove-error-by-title="emits('remove-error-by-title', $event)"
95
- />
96
- <common-vm-actions-common-customize-hardware-virtual-hardware-new-hard-disk-sharing
97
- v-model:sharing="sharing"
98
- :index="props.index"
99
- :error-validation-fields="props.errorValidationFields"
100
- :disabled="props.isRunning && !props.isNewType"
101
- @remove-error-by-title="emits('remove-error-by-title', $event)"
102
- />
103
- <common-vm-actions-common-customize-hardware-virtual-hardware-new-hard-disk-limit-iops
104
- v-model:limit-iops="limitIops"
105
- v-model:limit-iops-type="limitIopsType"
106
- :index="props.index"
107
- :error-validation-fields="props.errorValidationFields"
108
- :disabled="props.isRunning && !props.isNewType"
109
- @valid="limitIopsInvalid = $event"
110
- @remove-error-by-title="emits('remove-error-by-title', $event)"
111
- />
112
- <common-vm-actions-common-customize-hardware-virtual-hardware-new-hard-disk-mode
113
- v-model:disk-mode="diskMode"
114
- :index="props.index"
115
- :error-validation-fields="props.errorValidationFields"
116
- :disabled="props.isRunning && !props.isNewType"
117
- @remove-error-by-title="emits('remove-error-by-title', $event)"
118
- />
119
- <common-vm-actions-common-customize-hardware-virtual-hardware-new-hard-disk-cache
120
- v-model:cache="cache"
121
- :index="props.index"
122
- :error-validation-fields="props.errorValidationFields"
123
- :disabled="(props.isEdit && !props.isNewType) || props.isRunning"
124
- @remove-error-by-title="emits('remove-error-by-title', $event)"
125
- />
126
- <common-vm-actions-common-customize-hardware-virtual-hardware-bus
127
- v-model:bus="bus"
128
- :index="props.index"
129
- :error-validation-fields="props.errorValidationFields"
130
- :disabled="!props.isNewHardDisk && props.isRunning"
131
- :help-text="localization.common.busVirtioHelpDesc"
132
- :test-id="`vm-wizard-disk-bus-field-${props.index}`"
133
- component-type="disk_devices"
134
- :guest-machine-type="props.guestMachineType"
135
- :compute-resource="props.computeResource"
136
- @remove-error-by-title="emits('remove-error-by-title', $event)"
137
- />
138
- </template>
139
- </ui-stack-block>
140
- </template>
141
-
142
- <script setup lang="ts">
143
- import type { UI_I_DatastoreTableItem } from '~/lib/models/store/storage/interfaces'
144
- import type { UI_I_SendDataNewHardDisk } from '~/components/common/vm/actions/common/customizeHardware/virtualHardware/lib/models/interfaces'
145
- import type { UI_T_HardDiskType } from '~/components/common/vm/actions/common/customizeHardware/virtualHardware/lib/models/types'
146
- import type { UI_I_Localization } from '~/lib/models/interfaces'
147
- import type { UI_I_ErrorValidationField } from '~/lib/models/store/interfaces'
148
- import type { UI_I_TablePayload } from '~/lib/models/table/interfaces'
149
- import type { UI_I_OptionItem } from '~/components/atoms/lib/models/interfaces'
150
- import type { UI_I_TreeNode } from '~/components/common/recursionTree/lib/models/interfaces'
151
-
152
- const deleteFilesFromDatastore = defineModel<boolean>(
153
- 'deleteFilesFromDatastore',
154
- { required: true }
155
- )
156
- const size = defineModel<number>('size', { required: true })
157
- const hardDiskType = defineModel<number>('hardDiskType', { required: true })
158
- const diskProvisioning = defineModel<string>('diskProvisioning', {
159
- required: true,
160
- })
161
- const sharing = defineModel<string>('sharing', { required: true })
162
- const limitIops = defineModel<number>('limitIops', { required: true })
163
- const limitIopsType = defineModel<string>('limitIopsType', { required: true })
164
- const limitIopsInvalid = defineModel<boolean>('limitIopsInvalid', {
165
- required: true,
166
- })
167
- const diskMode = defineModel<string>('diskMode', { required: true })
168
- const cache = defineModel<string>('cache', { required: true })
169
- const bus = defineModel<string>('bus', { required: true })
170
-
171
- const props = defineProps<{
172
- isRemovable: boolean
173
- label: string
174
- hardDiskInvalid: boolean
175
- disabled: boolean
176
- errorText: string
177
- hardDiskTypeErrorLocalText: string
178
- isDisabledSize: boolean
179
- hardDiskTypeOptions: UI_I_OptionItem[]
180
- maxHardDisk: number
181
- location: UI_I_DatastoreTableItem | null
182
- isRunning: boolean
183
- isNewHardDisk: boolean
184
- isEdit: boolean
185
- datastore: UI_I_DatastoreTableItem[]
186
- getDatastoreTableFunc: (payload: UI_I_TablePayload) => Promise<void>
187
- errorValidationFields: UI_I_ErrorValidationField<string>[]
188
- index: number
189
- type: UI_T_HardDiskType
190
- hardDisk: UI_I_SendDataNewHardDisk
191
- guestMachineType?: UI_I_OptionItem | null
192
- isNewType?: boolean
193
- computeResource?: UI_I_TreeNode | null
194
- }>()
195
- const emits = defineEmits<{
196
- (event: 'remove'): void
197
- (event: 'roll-back'): void
198
- (event: 'validate-size'): void
199
- (event: 'change-storage', value: UI_I_DatastoreTableItem): void
200
- (event: 'remove-error-by-title', value: string): void
201
- }>()
202
-
203
- const localization = computed<UI_I_Localization>(() => useLocal())
204
- </script>
205
-
206
- <style scoped lang="scss">
207
- .title {
208
- margin-right: 10px;
209
- }
210
-
211
- .new-hard-disk-content {
212
- gap: 8px;
213
- }
214
-
215
- :deep(.ui-main-select-toggle) {
216
- display: flex;
217
- justify-content: space-between;
218
- width: 108px;
219
- }
220
- .light-theme {
221
- :deep(.ui-main-select-toggle) {
222
- background-color: #ffffff;
223
- }
224
- }
225
-
226
- :deep(.unit .ui-main-select-toggle) {
227
- width: 80px;
228
- }
229
- :deep(.ui-main.ui-main-sm .ui-main-input) {
230
- height: 26px;
231
- }
232
- </style>
1
+ <template>
2
+ <ui-stack-block
3
+ :has-children="true"
4
+ :is-roll-back="props.type === 'removed'"
5
+ :removable="props.isRemovable"
6
+ :test-id="`hard-disk-stack-block-${props.index}`"
7
+ @remove="emits('remove')"
8
+ @roll-back="emits('roll-back')"
9
+ >
10
+ <template #stackBlockKey>
11
+ <div
12
+ :id="`vm-wizard-toggle-block-hard-disk-${props.index}`"
13
+ :data-id="`vm-wizard-toggle-block-hard-disk-${props.index}`"
14
+ class="vm-wizard-toggle-block-hard-disk flex-align-center"
15
+ >
16
+ <span class="title">{{ props.label }}</span>
17
+ <ui-icon
18
+ v-show="props.hardDiskInvalid"
19
+ width="18px"
20
+ height="18px"
21
+ name="error-outline"
22
+ />
23
+ </div>
24
+ </template>
25
+ <template #stackBlockContent>
26
+ <!-- <div class="flex-align-center flex-space-between mr-1">-->
27
+ <div class="new-hard-disk-content flex-align-center">
28
+ <template v-if="props.type === 'removed'">
29
+ <span>{{ localization.common.deviceWillRemoved }}</span>
30
+ <div class="flex-align-center" @click.stop>
31
+ <ui-checkbox
32
+ v-model="deleteFilesFromDatastore"
33
+ :test-id="`hard-disk-delete-files-from-datastore-${props.index}`"
34
+ :disabled="props.disabled"
35
+ :label-text="localization.common.deleteFilesFromDatastore"
36
+ />
37
+ </div>
38
+ </template>
39
+ <template v-else>
40
+ <ui-input-with-tooltip
41
+ :id="`vm-wizard-hard-disk-${props.index}`"
42
+ v-model.number="size"
43
+ :test-id="`vm-wizard-hard-disk-${props.index}`"
44
+ :disabled="props.isDisabledSize"
45
+ :class="[
46
+ 'spinfree edit-setting-input input-text-color',
47
+ { 'has-error': props.hardDiskTypeErrorLocalText },
48
+ ]"
49
+ :error-text="props.errorText"
50
+ input-style="rounded"
51
+ type="number"
52
+ size="md"
53
+ @blur="emits('validate-size')"
54
+ @click.stop
55
+ />
56
+
57
+ <ui-select
58
+ :id="`hard-disk-type-select-${props.index}`"
59
+ v-model="hardDiskType"
60
+ width="auto"
61
+ :items="props.hardDiskTypeOptions"
62
+ :disabled="props.type === 'exist'"
63
+ :test-id="`hard-disk-type-select-${props.index}`"
64
+ class="unit"
65
+ @change="emits('validate-size')"
66
+ @click.stop
67
+ />
68
+ </template>
69
+ </div>
70
+ </template>
71
+ <template #stackChildren>
72
+ <common-vm-actions-common-customize-hardware-virtual-hardware-new-hard-disk-maximum-size
73
+ :free-mb="props.maxHardDisk"
74
+ />
75
+ <common-vm-actions-common-customize-hardware-virtual-hardware-new-hard-disk-location
76
+ v-if="props.isNewType"
77
+ :location="props.location"
78
+ :index="props.index"
79
+ :error-validation-fields="props.errorValidationFields"
80
+ :get-datastore-table-func="props.getDatastoreTableFunc"
81
+ :datastore="props.datastore"
82
+ @change="emits('change-storage', $event)"
83
+ @remove-error-by-title="emits('remove-error-by-title', $event)"
84
+ />
85
+ <common-vm-actions-common-customize-hardware-virtual-hardware-new-hard-disk-file
86
+ v-else
87
+ :path="props.hardDisk?.source"
88
+ />
89
+ <common-vm-actions-common-customize-hardware-virtual-hardware-new-hard-disk-provisioning
90
+ v-model:disk-provisioning="diskProvisioning"
91
+ :index="props.index"
92
+ :error-validation-fields="props.errorValidationFields"
93
+ :disabled="(props.isEdit && !props.isNewType) || props.isRunning"
94
+ @remove-error-by-title="emits('remove-error-by-title', $event)"
95
+ />
96
+ <common-vm-actions-common-customize-hardware-virtual-hardware-new-hard-disk-sharing
97
+ v-model:sharing="sharing"
98
+ :index="props.index"
99
+ :error-validation-fields="props.errorValidationFields"
100
+ :disabled="props.isRunning && !props.isNewType"
101
+ @remove-error-by-title="emits('remove-error-by-title', $event)"
102
+ />
103
+ <common-vm-actions-common-customize-hardware-virtual-hardware-new-hard-disk-limit-iops
104
+ v-model:limit-iops="limitIops"
105
+ v-model:limit-iops-type="limitIopsType"
106
+ :index="props.index"
107
+ :error-validation-fields="props.errorValidationFields"
108
+ :disabled="props.isRunning && !props.isNewType"
109
+ @valid="limitIopsInvalid = $event"
110
+ @remove-error-by-title="emits('remove-error-by-title', $event)"
111
+ />
112
+ <common-vm-actions-common-customize-hardware-virtual-hardware-new-hard-disk-mode
113
+ v-model:disk-mode="diskMode"
114
+ :index="props.index"
115
+ :error-validation-fields="props.errorValidationFields"
116
+ :disabled="props.isRunning && !props.isNewType"
117
+ @remove-error-by-title="emits('remove-error-by-title', $event)"
118
+ />
119
+ <common-vm-actions-common-customize-hardware-virtual-hardware-new-hard-disk-cache
120
+ v-model:cache="cache"
121
+ :index="props.index"
122
+ :error-validation-fields="props.errorValidationFields"
123
+ :disabled="(props.isEdit && !props.isNewType) || props.isRunning"
124
+ @remove-error-by-title="emits('remove-error-by-title', $event)"
125
+ />
126
+ <common-vm-actions-common-customize-hardware-virtual-hardware-bus
127
+ v-model:bus="bus"
128
+ :index="props.index"
129
+ :error-validation-fields="props.errorValidationFields"
130
+ :disabled="!props.isNewHardDisk && props.isRunning"
131
+ :help-text="localization.common.busVirtioHelpDesc"
132
+ :test-id="`vm-wizard-disk-bus-field-${props.index}`"
133
+ component-type="disk_devices"
134
+ :guest-machine-type="props.guestMachineType"
135
+ :compute-resource="props.computeResource"
136
+ @remove-error-by-title="emits('remove-error-by-title', $event)"
137
+ />
138
+ </template>
139
+ </ui-stack-block>
140
+ </template>
141
+
142
+ <script setup lang="ts">
143
+ import type { UI_I_DatastoreTableItem } from '~/lib/models/store/storage/interfaces'
144
+ import type { UI_I_SendDataNewHardDisk } from '~/components/common/vm/actions/common/customizeHardware/virtualHardware/lib/models/interfaces'
145
+ import type { UI_T_HardDiskType } from '~/components/common/vm/actions/common/customizeHardware/virtualHardware/lib/models/types'
146
+ import type { UI_I_Localization } from '~/lib/models/interfaces'
147
+ import type { UI_I_ErrorValidationField } from '~/lib/models/store/interfaces'
148
+ import type { UI_I_TablePayload } from '~/lib/models/table/interfaces'
149
+ import type { UI_I_OptionItem } from '~/components/atoms/lib/models/interfaces'
150
+ import type { UI_I_TreeNode } from '~/components/common/recursionTree/lib/models/interfaces'
151
+
152
+ const deleteFilesFromDatastore = defineModel<boolean>(
153
+ 'deleteFilesFromDatastore',
154
+ { required: true }
155
+ )
156
+ const size = defineModel<number>('size', { required: true })
157
+ const hardDiskType = defineModel<number>('hardDiskType', { required: true })
158
+ const diskProvisioning = defineModel<string>('diskProvisioning', {
159
+ required: true,
160
+ })
161
+ const sharing = defineModel<string>('sharing', { required: true })
162
+ const limitIops = defineModel<number>('limitIops', { required: true })
163
+ const limitIopsType = defineModel<string>('limitIopsType', { required: true })
164
+ const limitIopsInvalid = defineModel<boolean>('limitIopsInvalid', {
165
+ required: true,
166
+ })
167
+ const diskMode = defineModel<string>('diskMode', { required: true })
168
+ const cache = defineModel<string>('cache', { required: true })
169
+ const bus = defineModel<string>('bus', { required: true })
170
+
171
+ const props = defineProps<{
172
+ isRemovable: boolean
173
+ label: string
174
+ hardDiskInvalid: boolean
175
+ disabled: boolean
176
+ errorText: string
177
+ hardDiskTypeErrorLocalText: string
178
+ isDisabledSize: boolean
179
+ hardDiskTypeOptions: UI_I_OptionItem[]
180
+ maxHardDisk: number
181
+ location: UI_I_DatastoreTableItem | null
182
+ isRunning: boolean
183
+ isNewHardDisk: boolean
184
+ isEdit: boolean
185
+ datastore: UI_I_DatastoreTableItem[]
186
+ getDatastoreTableFunc: (payload: UI_I_TablePayload) => Promise<void>
187
+ errorValidationFields: UI_I_ErrorValidationField<string>[]
188
+ index: number
189
+ type: UI_T_HardDiskType
190
+ hardDisk: UI_I_SendDataNewHardDisk
191
+ guestMachineType?: UI_I_OptionItem | null
192
+ isNewType?: boolean
193
+ computeResource?: UI_I_TreeNode | null
194
+ }>()
195
+ const emits = defineEmits<{
196
+ (event: 'remove'): void
197
+ (event: 'roll-back'): void
198
+ (event: 'validate-size'): void
199
+ (event: 'change-storage', value: UI_I_DatastoreTableItem): void
200
+ (event: 'remove-error-by-title', value: string): void
201
+ }>()
202
+
203
+ const localization = computed<UI_I_Localization>(() => useLocal())
204
+ </script>
205
+
206
+ <style scoped lang="scss">
207
+ .title {
208
+ margin-right: 10px;
209
+ }
210
+
211
+ .new-hard-disk-content {
212
+ gap: 8px;
213
+ }
214
+
215
+ :deep(.ui-main-select-toggle) {
216
+ display: flex;
217
+ justify-content: space-between;
218
+ width: 108px;
219
+ }
220
+ .light-theme {
221
+ :deep(.ui-main-select-toggle) {
222
+ background-color: #ffffff;
223
+ }
224
+ }
225
+
226
+ :deep(.unit .ui-main-select-toggle) {
227
+ width: 80px;
228
+ }
229
+ :deep(.ui-main.ui-main-sm .ui-main-input) {
230
+ height: 26px;
231
+ }
232
+ </style>