bfg-common 1.5.38 → 1.5.40

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 (199) 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/localization/local_be.json +2 -1
  7. package/assets/localization/local_en.json +2 -1
  8. package/assets/localization/local_hy.json +2 -1
  9. package/assets/localization/local_kk.json +2 -1
  10. package/assets/localization/local_ru.json +2 -1
  11. package/assets/localization/local_zh.json +2 -2
  12. package/assets/scss/common/normalize.scss +339 -339
  13. package/components/atoms/TheIcon3.vue +50 -50
  14. package/components/atoms/collapse/CollapseNav.vue +165 -165
  15. package/components/atoms/dropdown/dropdown/Dropdown.vue +168 -168
  16. package/components/atoms/modal/bySteps/BySteps.vue +253 -253
  17. package/components/atoms/perPage/PerPage.vue +58 -58
  18. package/components/atoms/stack/StackBlock.vue +185 -185
  19. package/components/atoms/table/dataGrid/DataGridColumnSwitch.vue +222 -222
  20. package/components/atoms/table/dataGrid/lib/config/settingsTable.ts +94 -94
  21. package/components/atoms/table/dataGrid/lib/utils/export.ts +16 -16
  22. package/components/atoms/tabs/VerticalTabs.vue +105 -105
  23. package/components/atoms/tooltip/Signpost.vue +227 -227
  24. package/components/common/accordion/Recursion.vue +222 -222
  25. package/components/common/browse/BrowseNew.vue +237 -237
  26. package/components/common/browse/BrowseOld.vue +217 -217
  27. package/components/common/browse/blocks/contents/Files.vue +37 -37
  28. package/components/common/browse/blocks/contents/FilesOld.vue +72 -72
  29. package/components/common/browse/blocks/contents/filesNew/FilesNew.vue +96 -96
  30. package/components/common/browse/blocks/contents/filesNew/Skeleton.vue +18 -18
  31. package/components/common/browse/blocks/lib/models/types.ts +1 -1
  32. package/components/common/browse/lib/models/interfaces.ts +5 -5
  33. package/components/common/context/Context.vue +111 -111
  34. package/components/common/context/lib/models/interfaces.ts +31 -31
  35. package/components/common/context/recursion/Recursion.vue +87 -87
  36. package/components/common/context/recursion/RecursionNew.vue +238 -238
  37. package/components/common/context/recursion/RecursionOld.vue +228 -228
  38. package/components/common/details/DetailsItem.vue +109 -109
  39. package/components/common/diagramMain/DiagramMain.vue +897 -897
  40. package/components/common/diagramMain/Header.vue +214 -214
  41. package/components/common/diagramMain/adapter/AdapterItems.vue +61 -61
  42. package/components/common/diagramMain/lib/config/initial.ts +50 -50
  43. package/components/common/diagramMain/lib/models/types.ts +21 -21
  44. package/components/common/diagramMain/lib/utils/utils.ts +331 -331
  45. package/components/common/diagramMain/modals/editSettings/ConfirmTeamingSettingsModal.vue +40 -40
  46. package/components/common/diagramMain/modals/editSettings/tabs/NetworkProperties.vue +214 -214
  47. package/components/common/diagramMain/modals/editSettings/tabs/Security.vue +189 -189
  48. package/components/common/diagramMain/modals/editSettings/tabs/SwitchProperties.vue +163 -163
  49. package/components/common/diagramMain/modals/editSettings/tabs/TeamingFailover.vue +175 -175
  50. package/components/common/diagramMain/modals/editSettings/tabs/port/IpvFourSettings.vue +346 -346
  51. package/components/common/diagramMain/modals/editSettings/tabs/port/PortProperties.vue +205 -205
  52. package/components/common/diagramMain/modals/lib/config/initial.ts +180 -180
  53. package/components/common/diagramMain/modals/lib/config/vmKernelAdapter.ts +90 -90
  54. package/components/common/diagramMain/modals/lib/mappers/mappers.ts +87 -87
  55. package/components/common/diagramMain/modals/lib/utils/index.ts +24 -24
  56. package/components/common/diagramMain/modals/migrateVmkernelAdapter/lib/config/steps.ts +114 -114
  57. package/components/common/diagramMain/modals/migrateVmkernelAdapter/steps/ConnectionSettings.vue +169 -169
  58. package/components/common/diagramMain/modals/migrateVmkernelAdapter/steps/SelectVmkernelAdapter.vue +159 -159
  59. package/components/common/diagramMain/modals/migrateVmkernelAdapter/validations/common.ts +14 -14
  60. package/components/common/diagramMain/modals/migrateVmkernelAdapter/validations/connectionSettings.ts +137 -137
  61. package/components/common/diagramMain/modals/migrateVmkernelAdapter/validations/selectVmkernelAdapter.ts +52 -52
  62. package/components/common/diagramMain/modals/migrateVmkernelAdapter/validations/validations.ts +19 -19
  63. package/components/common/diagramMain/port/Ports.vue +47 -47
  64. package/components/common/layout/theHeader/helpMenu/About.vue +82 -82
  65. package/components/common/layout/theHeader/helpMenu/aboutNew/AboutNew.vue +103 -103
  66. package/components/common/layout/theHeader/userMenu/modals/preferences/view/ViewOld.vue +112 -112
  67. package/components/common/mainNavigationPanel/MainNavigationPanelNew.vue +336 -336
  68. package/components/common/mainNavigationPanel/MainNavigationPanelOld.vue +311 -311
  69. package/components/common/modals/unsavedChanges/UnsavedChanges.vue +56 -56
  70. package/components/common/monitor/overview/OverviewOld.vue +139 -139
  71. package/components/common/pages/home/StatusContent.vue +49 -49
  72. package/components/common/pages/home/headline/Headline.vue +45 -45
  73. package/components/common/pages/home/headline/HeadlineOld.vue +42 -42
  74. package/components/common/pages/home/lib/models/interfaces.ts +48 -48
  75. package/components/common/pages/home/resource/lib/models/interfaces.ts +4 -1
  76. package/components/common/pages/home/resource/lib/utils/resourceMeter.ts +4 -1
  77. package/components/common/pages/home/widgets/Widgets.vue +49 -49
  78. package/components/common/pages/home/widgets/WidgetsNew.vue +86 -86
  79. package/components/common/pages/home/widgets/WidgetsOld.vue +34 -34
  80. package/components/common/pages/home/widgets/hosts/Hosts.vue +27 -27
  81. package/components/common/pages/home/widgets/hosts/lib/config/items.ts +23 -23
  82. package/components/common/pages/home/widgets/vms/Vms.vue +26 -26
  83. package/components/common/pages/home/widgets/vms/VmsOld.vue +35 -35
  84. package/components/common/pages/home/widgets/vms/lib/config/items.ts +19 -19
  85. package/components/common/pages/packages/Packages.vue +208 -208
  86. package/components/common/pages/shortcuts/block/BlockNew.vue +96 -96
  87. package/components/common/pages/shortcuts/block/BlockOld.vue +68 -68
  88. package/components/common/portlets/customAttributes/Portlet.vue +667 -667
  89. package/components/common/portlets/tag/Portlet.vue +433 -433
  90. package/components/common/recursionTree/RecursionTree.vue +223 -223
  91. package/components/common/select/button/ButtonDropdown.vue +108 -108
  92. package/components/common/spiceConsole/Drawer.vue +370 -370
  93. package/components/common/spiceConsole/lib/models/interfaces.ts +5 -5
  94. package/components/common/split/horizontal/HorizontalNew.vue +376 -376
  95. package/components/common/split/horizontal/HorizontalOld.vue +337 -337
  96. package/components/common/split/vertical/Vertical.vue +160 -160
  97. package/components/common/tools/Actions.vue +188 -188
  98. package/components/common/vm/actions/add/Add.vue +772 -773
  99. package/components/common/vm/actions/add/lib/config/steps.ts +247 -247
  100. package/components/common/vm/actions/clone/Clone.vue +668 -635
  101. package/components/common/vm/actions/clone/lib/config/steps.ts +178 -178
  102. package/components/common/vm/actions/clone/toTemplate/ToTemplate.vue +634 -634
  103. package/components/common/vm/actions/clone/toTemplate/lib/config/steps.ts +116 -116
  104. package/components/common/vm/actions/common/customizeHardware/CustomizeHardware.vue +275 -275
  105. package/components/common/vm/actions/common/customizeHardware/CustomizeHardwareNew.vue +274 -274
  106. package/components/common/vm/actions/common/customizeHardware/CustomizeHardwareOld.vue +177 -177
  107. package/components/common/vm/actions/common/customizeHardware/virtualHardware/VirtualHardware.vue +698 -698
  108. package/components/common/vm/actions/common/customizeHardware/virtualHardware/VirtualHardwareNew.vue +410 -410
  109. package/components/common/vm/actions/common/customizeHardware/virtualHardware/VirtualHardwareOld.vue +319 -319
  110. package/components/common/vm/actions/common/customizeHardware/virtualHardware/browseView/BrowseView.vue +219 -219
  111. package/components/common/vm/actions/common/customizeHardware/virtualHardware/bus/Bus.vue +99 -99
  112. package/components/common/vm/actions/common/customizeHardware/virtualHardware/bus/BusNew.vue +117 -117
  113. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/CdDvdDrive.vue +232 -232
  114. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/CdDvdDriveNew.vue +164 -164
  115. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/CdDvdDriveOld.vue +168 -168
  116. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/Media.vue +25 -25
  117. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/MediaNew.vue +70 -70
  118. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/MediaOld.vue +50 -50
  119. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/Cpu.vue +338 -338
  120. package/components/common/vm/actions/common/customizeHardware/virtualHardware/limit/Limit.vue +220 -220
  121. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/NewHardDisk.vue +368 -368
  122. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/NewHardDiskNew.vue +232 -232
  123. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/NewHardDiskOld.vue +250 -250
  124. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/mode/ModeOld.vue +56 -56
  125. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/sharing/SharingNew.vue +44 -44
  126. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/NewNetwork.vue +286 -286
  127. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/NewNetworkNew.vue +124 -124
  128. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/location/LocationOld.vue +134 -134
  129. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/location/new/New.vue +63 -63
  130. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/location/new/table/lib/config/config.ts +95 -95
  131. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/macAddress/MacAddress.vue +119 -119
  132. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/macAddress/MacAddressNew.vue +69 -69
  133. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/macAddress/MacAddressOld.vue +83 -83
  134. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/NewPciDevice.vue +205 -205
  135. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/directPathIo/DirectPathIoNew.vue +66 -66
  136. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/directPathIo/DirectPathIoOld.vue +62 -62
  137. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIo.vue +31 -31
  138. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIoNew.vue +84 -84
  139. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIoOld.vue +76 -76
  140. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/Note.vue +15 -15
  141. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/NoteNew.vue +42 -42
  142. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/NoteOld.vue +30 -30
  143. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/nvidiaGrid/NvidiaGrid.vue +41 -41
  144. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/nvidiaGrid/NvidiaGridNew.vue +81 -81
  145. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/nvidiaGrid/NvidiaGridOld.vue +84 -84
  146. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newUsbController/NewUsbControllerNew.vue +56 -56
  147. package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/Other.vue +16 -16
  148. package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/OtherNew.vue +30 -30
  149. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/VideoCardNew.vue +104 -104
  150. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/VideoCardOld.vue +112 -112
  151. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/totalVideoMemory/TotalVideoMemoryNew.vue +54 -54
  152. package/components/common/vm/actions/common/customizeHardware/vmoptions/Vmoptions.vue +145 -145
  153. package/components/common/vm/actions/common/customizeHardware/vmoptions/VmoptionsNew.vue +102 -102
  154. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/BootOptionsNew.vue +75 -75
  155. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/delay/Delay.vue +26 -26
  156. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/firmware/Firmware.vue +57 -57
  157. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/firmware/FirmwareNew.vue +42 -42
  158. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/menu/MenuNew.vue +25 -25
  159. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/Order.vue +171 -171
  160. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/OrderNew.vue +50 -50
  161. package/components/common/vm/actions/common/customizeHardware/vmoptions/generalOptions/GeneralOptionsNew.vue +141 -141
  162. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/New.vue +140 -140
  163. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/copyPaste/CopyPasteNew.vue +30 -30
  164. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/fileTransfer/FileTransferNew.vue +30 -30
  165. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/folderSharing/FolderSharingNew.vue +30 -30
  166. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/keymap/Keymap.vue +32 -32
  167. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/keymap/KeymapNew.vue +39 -39
  168. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/password/Password.vue +103 -103
  169. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/password/PasswordNew.vue +102 -102
  170. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/password/PasswordOld.vue +94 -94
  171. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirection.vue +28 -28
  172. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirectionNew.vue +38 -38
  173. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirectionOld.vue +44 -44
  174. package/components/common/vm/actions/common/select/createType/CreateType.vue +74 -74
  175. package/components/common/vm/actions/common/select/os/os.vue +18 -32
  176. package/components/common/vm/actions/common/select/storage/Storage.vue +130 -130
  177. package/components/common/vm/actions/common/select/storage/StorageOld.vue +129 -129
  178. package/components/common/vm/actions/common/select/template/Template.vue +65 -62
  179. package/components/common/vm/actions/common/select/template/TemplateTreeView.vue +88 -88
  180. package/components/common/vm/actions/editSettings/new/Skeleton.vue +88 -88
  181. package/components/common/wizards/datastore/add/lib/config/steps.ts +138 -138
  182. package/components/common/wizards/datastore/add/nfs/accessibility/Accessibility.vue +60 -60
  183. package/components/common/wizards/datastore/add/readyComplete/ReadyComplete.vue +92 -92
  184. package/components/common/wizards/network/add/steps/SelectConnectionType.vue +105 -105
  185. package/components/common/wizards/vm/migrate/lib/config/constructDataReady.ts +220 -220
  186. package/components/common/wizards/vm/migrate/select/network/Network.vue +103 -103
  187. package/components/common/wizards/vm/migrate/select/network/table/network/Network.vue +150 -150
  188. package/components/common/wizards/vm/migrate/select/network/table/network/lib/config/advancedTable.ts +91 -91
  189. package/components/common/wizards/vm/migrate/select/priority/Priority.vue +43 -43
  190. package/composables/productNameLocal.ts +30 -30
  191. package/composables/useAppVersion.ts +21 -21
  192. package/package.json +2 -2
  193. package/plugins/date.ts +233 -233
  194. package/plugins/directives.ts +24 -24
  195. package/public/spice-console/lib/images/bitmap.js +203 -203
  196. package/public/spice-console/network/spicechannel.js +383 -383
  197. package/store/main/mutations.ts +7 -7
  198. package/store/main/state.ts +7 -7
  199. package/store/tasks/mappers/recentTasks.ts +64 -64
@@ -1,338 +1,338 @@
1
- <template>
2
- <common-vm-actions-common-customize-hardware-virtual-hardware-cpu-new
3
- v-if="isNewView"
4
- v-model:selected-cpu="selectedCpu"
5
- v-model:selected-core-per-socket="selectedCorePerSocket"
6
- v-model:enable-cpu-hot-add="enableCpuHotAdd"
7
- v-model:selected-max-cpu="selectedMaxCpu"
8
- v-model:reservation="reservation"
9
- v-model:reservation-type="reservationType"
10
- v-model:limit="limit"
11
- v-model:limit-type="limitType"
12
- v-model:shares="shares"
13
- v-model:shares-type="sharesType"
14
- v-model:cpu-model="cpuModel"
15
- v-model:passthrough-host-cpu="passthroughHostCpu"
16
- v-model:host-model-cpu="hostModelCpu"
17
- :max-cpus="props.maxCpus"
18
- :cpu-models="props.cpuModels"
19
- :is-edit="props.isEdit"
20
- :error-validation-fields="props.errorValidationFields"
21
- :cpu-invalid="cpuInvalid"
22
- :vcpus-local-and-api-errors-texts="vcpusLocalAndApiErrorsTexts"
23
- :cpu-options="cpuOptions"
24
- :is-cpu-disabled="isCpuDisabled"
25
- :selected-cpus="selectedCpus"
26
- :is-disabled="isDisabled"
27
- :enable-cpu-hot-add-disabled="enableCpuHotAddDisabled"
28
- :max-cpu-options="maxCpuOptions"
29
- :vm-cpu-help-text-second="vmCpuHelpTextSecond"
30
- @remove-error-by-title="emits('remove-error-by-title', $event)"
31
- @remove-validation-error="onRemoveValidationError"
32
- @max-cpu-invalid="maxCpuInvalid = $event"
33
- @reservation-invalid="reservationInvalid = $event"
34
- @limit-invalid="limitInvalid = $event"
35
- @shares-invalid="sharesInvalid = $event"
36
- />
37
- <common-vm-actions-common-customize-hardware-virtual-hardware-cpu-old
38
- v-else
39
- v-model:selected-cpu="selectedCpu"
40
- v-model:selected-core-per-socket="selectedCorePerSocket"
41
- v-model:enable-cpu-hot-add="enableCpuHotAdd"
42
- v-model:selected-max-cpu="selectedMaxCpu"
43
- v-model:reservation="reservation"
44
- v-model:reservation-type="reservationType"
45
- v-model:limit="limit"
46
- v-model:limit-type="limitType"
47
- v-model:shares="shares"
48
- v-model:shares-type="sharesType"
49
- v-model:cpu-model="cpuModel"
50
- v-model:passthrough-host-cpu="passthroughHostCpu"
51
- v-model:host-model-cpu="hostModelCpu"
52
- :max-cpus="props.maxCpus"
53
- :cpu-models="props.cpuModels"
54
- :is-edit="props.isEdit"
55
- :error-validation-fields="props.errorValidationFields"
56
- :cpu-invalid="cpuInvalid"
57
- :vcpus-local-and-api-errors-texts="vcpusLocalAndApiErrorsTexts"
58
- :cpu-options="cpuOptions"
59
- :is-cpu-disabled="isCpuDisabled"
60
- :selected-cpus="selectedCpus"
61
- :is-disabled="isDisabled"
62
- :enable-cpu-hot-add-disabled="enableCpuHotAddDisabled"
63
- :max-cpu-options="maxCpuOptions"
64
- :vm-cpu-help-text-second="vmCpuHelpTextSecond"
65
- @remove-error-by-title="emits('remove-error-by-title', $event)"
66
- @remove-validation-error="onRemoveValidationError"
67
- @max-cpu-invalid="maxCpuInvalid = $event"
68
- @reservation-invalid="reservationInvalid = $event"
69
- @limit-invalid="limitInvalid = $event"
70
- @shares-invalid="sharesInvalid = $event"
71
- />
72
- </template>
73
-
74
- <script setup lang="ts">
75
- import type { UI_I_SendDataCpu } from '~/components/common/vm/actions/common/customizeHardware/virtualHardware/lib/models/interfaces'
76
- import type { UI_I_Localization } from '~/lib/models/interfaces'
77
- import type { UI_I_ErrorValidationField } from '~/lib/models/store/interfaces'
78
- import type { UI_I_OptionItem } from '~/components/atoms/lib/models/interfaces'
79
- import type { API_UI_I_VmEditCpu } from '~/lib/models/store/vm/interfaces'
80
- import { cpuOptionsFunc } from '~/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/lib/config/cpuOptions'
81
-
82
- const props = defineProps<{
83
- maxCpus: number
84
- cpuModels: UI_I_OptionItem[]
85
- isEdit: boolean
86
- errorValidationFields: UI_I_ErrorValidationField<string>[]
87
- vmCpuHelpTextSecond?: string
88
- state?: string | number
89
- cpu?: API_UI_I_VmEditCpu
90
- }>()
91
- const emits = defineEmits<{
92
- (event: 'send-data', value: UI_I_SendDataCpu): void
93
- (event: 'invalid', value: boolean): void
94
- (event: 'remove-error-by-title', value: string): void
95
- }>()
96
-
97
- const { $store }: any = useNuxtApp()
98
- const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
99
-
100
- const localization = computed<UI_I_Localization>(() => useLocal())
101
-
102
- const isDisabled = computed<boolean>(() => {
103
- return props.state === 2
104
- })
105
-
106
- const cpuOptions = computed<UI_I_OptionItem[]>(() =>
107
- cpuOptionsFunc(localization.value, 1, props.maxCpus)
108
- )
109
-
110
- const enableCpuHotAdd = ref<boolean>(false)
111
- const enableCpuHotAddDisabled = computed<boolean>(
112
- // () => selectedCpu.value >= props.maxCpus || isDisabled.value
113
- () => isDisabled.value // pc-1766
114
- )
115
- watch(enableCpuHotAdd, (newValue) => {
116
- if (newValue) return
117
-
118
- maxCpuInvalid.value = false
119
- selectedMaxCpu.value = 1
120
- })
121
-
122
- const selectedCpu = ref<number>(
123
- isDisabled.value && enableCpuHotAdd.value ? props.maxCpus : 2
124
- )
125
- const isCpuDisabled = computed<boolean>(
126
- () => isDisabled.value && !enableCpuHotAdd.value
127
- )
128
- watch(selectedCpu, (newValue) => {
129
- selectedCpu.value = Math.floor(+newValue)
130
- if (!(selectedCpu.value % selectedCorePerSocket.value) || isDisabled.value)
131
- return
132
- selectedCorePerSocket.value = 1
133
- })
134
- // watch(selectedCpu, (newValue) => {
135
- // if (enableCpuHotAdd.value && enableCpuHotAddDisabled.value) return
136
-
137
- // if (newValue >= props.maxCpus) { // pc-1766
138
- // enableCpuHotAdd.value = false
139
- // }
140
- // selectedMaxCpu.value =
141
- // selectedMaxCpu.value <= newValue ? newValue + 1 : selectedMaxCpu.value
142
- // if (selectedMaxCpu.value > props.maxCpus) selectedMaxCpu.value = props.maxCpus
143
- // })
144
- const maxCpuOptions = computed<UI_I_OptionItem[]>(() =>
145
- cpuOptionsFunc(localization.value, selectedCpu.value, props.maxCpus)
146
- )
147
- const selectedMaxCpu = ref<number>(1)
148
- watch(
149
- () => props.maxCpus,
150
- (newValue) => {
151
- selectedMaxCpu.value = newValue
152
- }
153
- )
154
-
155
- const selectedCpus = computed<number[]>(() =>
156
- enableCpuHotAdd.value
157
- ? [selectedCpu.value, selectedMaxCpu.value]
158
- : [selectedCpu.value]
159
- )
160
-
161
- const selectedCorePerSocket = ref<number>(1)
162
-
163
- const cpuErrorLocalText = computed<string>(() => {
164
- const validValue = /^\d+(\.\d+)?$/.test(selectedCpu.value + '')
165
- if (!validValue) {
166
- return localization.value.common.inputContainsInvalidCharacters
167
- }
168
-
169
- const min = cpuOptions.value[0].value
170
- const max = cpuOptions.value[1].value
171
- if (selectedCpu.value < min || selectedCpu.value > max) {
172
- return localization.value.vmWizard.cpuMustBe
173
- .replace('{0}', min)
174
- .replace('{1}', max)
175
- }
176
-
177
- return ''
178
- })
179
-
180
- const apiVcpusError = computed<string>(() => {
181
- return (
182
- props.errorValidationFields?.find(
183
- (message) => message.field === 'cpu.vcpus'
184
- )?.error_message || ''
185
- )
186
- })
187
-
188
- const vcpusLocalAndApiErrorsTexts = computed<string>(() => {
189
- const localError = cpuErrorLocalText.value
190
- const apiError = apiVcpusError.value
191
-
192
- let result = ''
193
- if (localError && !apiError) result = localError
194
- if (!localError && apiError) result = apiError
195
- if (localError && apiError) result = localError + ', ' + apiError
196
- if (!localError && apiError) result = apiError
197
-
198
- return result
199
- })
200
- const reservationInvalid = ref<boolean>(false)
201
- const limitInvalid = ref<boolean>(false)
202
- const sharesInvalid = ref<boolean>(false)
203
- const maxCpuInvalid = ref<boolean>(false)
204
- const cpuInvalid = computed<boolean>(
205
- () =>
206
- !!cpuErrorLocalText.value ||
207
- reservationInvalid.value ||
208
- limitInvalid.value ||
209
- sharesInvalid.value ||
210
- (enableCpuHotAdd.value &&
211
- // selectedCpu.value < props.maxCpus && // pc-1766
212
- maxCpuInvalid.value)
213
- )
214
- watch(
215
- cpuInvalid,
216
- (newValue: boolean) => {
217
- emits('invalid', newValue)
218
- },
219
- { immediate: true }
220
- )
221
-
222
- const reservation = ref<string>('1')
223
- const reservationType = ref<string>('mhz')
224
-
225
- const limit = ref<string>('Unlimited')
226
- const limitType = ref<string>('mhz')
227
-
228
- const shares = ref<string>('2000')
229
- const sharesType = ref<string>('2000')
230
-
231
- // const hardwareVirtualization = ref<boolean>(false)
232
- //
233
- // const performanceCounters = ref<boolean>(false)
234
- //
235
- // const schedulingAffinity = ref<string>('')
236
- //
237
- // const iommu = ref<boolean>(false)
238
-
239
- // const cpuModel = ref<string>(props.cpuModels[0]?.value || '')
240
- const cpuModel = ref<string>('host-model') // PNCWEB-389
241
- watch(
242
- () => props.cpuModels,
243
- (newValue) => {
244
- cpuModel.value = newValue[0].value
245
- }
246
- )
247
- const passthroughHostCpu = ref<boolean>(false)
248
- const hostModelCpu = ref<boolean>(false)
249
-
250
- // const isShowCpuHelp = ref<boolean>(false)
251
-
252
- const { $binary } = useNuxtApp()
253
- watch(
254
- [
255
- reservation,
256
- reservationType,
257
- limit,
258
- limitType,
259
- shares,
260
- selectedCpu,
261
- selectedMaxCpu,
262
- selectedCorePerSocket,
263
- enableCpuHotAdd,
264
- cpuModel,
265
- passthroughHostCpu,
266
- hostModelCpu,
267
- ],
268
- () => {
269
- const reservationInMhz =
270
- reservationType.value === 'ghz'
271
- ? $binary.ghzToMhz(+reservation.value)
272
- : +reservation.value
273
- const limitInMhz =
274
- limit.value === 'Unlimited'
275
- ? limit.value
276
- : limitType.value === 'ghz'
277
- ? $binary.ghzToMhz(+limit.value)
278
- : +limit.value
279
- const model = passthroughHostCpu.value
280
- ? 'host-passthrough'
281
- : hostModelCpu.value
282
- ? 'host-model'
283
- : cpuModel.value
284
-
285
- emits('send-data', {
286
- model,
287
- vcpus: selectedCpu.value,
288
- max_vcpus: enableCpuHotAdd.value ? selectedMaxCpu.value : 0,
289
- core_per_socket: selectedCorePerSocket.value,
290
- reservation_mhz: reservationInMhz,
291
- limit_mhz: limitInMhz,
292
- shares: +shares.value,
293
- hotplug: enableCpuHotAdd.value,
294
- })
295
- },
296
- {
297
- immediate: true,
298
- }
299
- )
300
-
301
- // Добавляем данные для редактирования
302
- watch(
303
- () => props.cpu,
304
- (newValue) => {
305
- if (!newValue) return
306
-
307
- enableCpuHotAdd.value = newValue.hotplug
308
- selectedCpu.value = newValue.vcpus
309
- selectedMaxCpu.value = newValue.hotplug ? newValue.max_vcpus : 1
310
- selectedCorePerSocket.value = newValue.core_per_socket
311
- reservation.value = '' + newValue.reservation_mhz
312
- limit.value = '' + newValue.limit_mhz
313
- shares.value = '' + newValue.shares
314
-
315
- switch (newValue.model) {
316
- case 'host-passthrough':
317
- passthroughHostCpu.value = true
318
- cpuModel.value = ''
319
- break
320
- case 'host-model':
321
- hostModelCpu.value = true
322
- cpuModel.value = ''
323
- break
324
- default:
325
- cpuModel.value =
326
- props.cpuModels.find((model) => model.value === newValue.model)
327
- ?.value || cpuModel.value
328
- }
329
- },
330
- { immediate: true }
331
- )
332
-
333
- const onRemoveValidationError = (): void => {
334
- emits('remove-error-by-title', 'cpu.vcpus')
335
- }
336
- </script>
337
-
338
- <style scoped lang="scss"></style>
1
+ <template>
2
+ <common-vm-actions-common-customize-hardware-virtual-hardware-cpu-new
3
+ v-if="isNewView"
4
+ v-model:selected-cpu="selectedCpu"
5
+ v-model:selected-core-per-socket="selectedCorePerSocket"
6
+ v-model:enable-cpu-hot-add="enableCpuHotAdd"
7
+ v-model:selected-max-cpu="selectedMaxCpu"
8
+ v-model:reservation="reservation"
9
+ v-model:reservation-type="reservationType"
10
+ v-model:limit="limit"
11
+ v-model:limit-type="limitType"
12
+ v-model:shares="shares"
13
+ v-model:shares-type="sharesType"
14
+ v-model:cpu-model="cpuModel"
15
+ v-model:passthrough-host-cpu="passthroughHostCpu"
16
+ v-model:host-model-cpu="hostModelCpu"
17
+ :max-cpus="props.maxCpus"
18
+ :cpu-models="props.cpuModels"
19
+ :is-edit="props.isEdit"
20
+ :error-validation-fields="props.errorValidationFields"
21
+ :cpu-invalid="cpuInvalid"
22
+ :vcpus-local-and-api-errors-texts="vcpusLocalAndApiErrorsTexts"
23
+ :cpu-options="cpuOptions"
24
+ :is-cpu-disabled="isCpuDisabled"
25
+ :selected-cpus="selectedCpus"
26
+ :is-disabled="isDisabled"
27
+ :enable-cpu-hot-add-disabled="enableCpuHotAddDisabled"
28
+ :max-cpu-options="maxCpuOptions"
29
+ :vm-cpu-help-text-second="vmCpuHelpTextSecond"
30
+ @remove-error-by-title="emits('remove-error-by-title', $event)"
31
+ @remove-validation-error="onRemoveValidationError"
32
+ @max-cpu-invalid="maxCpuInvalid = $event"
33
+ @reservation-invalid="reservationInvalid = $event"
34
+ @limit-invalid="limitInvalid = $event"
35
+ @shares-invalid="sharesInvalid = $event"
36
+ />
37
+ <common-vm-actions-common-customize-hardware-virtual-hardware-cpu-old
38
+ v-else
39
+ v-model:selected-cpu="selectedCpu"
40
+ v-model:selected-core-per-socket="selectedCorePerSocket"
41
+ v-model:enable-cpu-hot-add="enableCpuHotAdd"
42
+ v-model:selected-max-cpu="selectedMaxCpu"
43
+ v-model:reservation="reservation"
44
+ v-model:reservation-type="reservationType"
45
+ v-model:limit="limit"
46
+ v-model:limit-type="limitType"
47
+ v-model:shares="shares"
48
+ v-model:shares-type="sharesType"
49
+ v-model:cpu-model="cpuModel"
50
+ v-model:passthrough-host-cpu="passthroughHostCpu"
51
+ v-model:host-model-cpu="hostModelCpu"
52
+ :max-cpus="props.maxCpus"
53
+ :cpu-models="props.cpuModels"
54
+ :is-edit="props.isEdit"
55
+ :error-validation-fields="props.errorValidationFields"
56
+ :cpu-invalid="cpuInvalid"
57
+ :vcpus-local-and-api-errors-texts="vcpusLocalAndApiErrorsTexts"
58
+ :cpu-options="cpuOptions"
59
+ :is-cpu-disabled="isCpuDisabled"
60
+ :selected-cpus="selectedCpus"
61
+ :is-disabled="isDisabled"
62
+ :enable-cpu-hot-add-disabled="enableCpuHotAddDisabled"
63
+ :max-cpu-options="maxCpuOptions"
64
+ :vm-cpu-help-text-second="vmCpuHelpTextSecond"
65
+ @remove-error-by-title="emits('remove-error-by-title', $event)"
66
+ @remove-validation-error="onRemoveValidationError"
67
+ @max-cpu-invalid="maxCpuInvalid = $event"
68
+ @reservation-invalid="reservationInvalid = $event"
69
+ @limit-invalid="limitInvalid = $event"
70
+ @shares-invalid="sharesInvalid = $event"
71
+ />
72
+ </template>
73
+
74
+ <script setup lang="ts">
75
+ import type { UI_I_SendDataCpu } from '~/components/common/vm/actions/common/customizeHardware/virtualHardware/lib/models/interfaces'
76
+ import type { UI_I_Localization } from '~/lib/models/interfaces'
77
+ import type { UI_I_ErrorValidationField } from '~/lib/models/store/interfaces'
78
+ import type { UI_I_OptionItem } from '~/components/atoms/lib/models/interfaces'
79
+ import type { API_UI_I_VmEditCpu } from '~/lib/models/store/vm/interfaces'
80
+ import { cpuOptionsFunc } from '~/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/lib/config/cpuOptions'
81
+
82
+ const props = defineProps<{
83
+ maxCpus: number
84
+ cpuModels: UI_I_OptionItem[]
85
+ isEdit: boolean
86
+ errorValidationFields: UI_I_ErrorValidationField<string>[]
87
+ vmCpuHelpTextSecond?: string
88
+ state?: string | number
89
+ cpu?: API_UI_I_VmEditCpu
90
+ }>()
91
+ const emits = defineEmits<{
92
+ (event: 'send-data', value: UI_I_SendDataCpu): void
93
+ (event: 'invalid', value: boolean): void
94
+ (event: 'remove-error-by-title', value: string): void
95
+ }>()
96
+
97
+ const { $store }: any = useNuxtApp()
98
+ const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
99
+
100
+ const localization = computed<UI_I_Localization>(() => useLocal())
101
+
102
+ const isDisabled = computed<boolean>(() => {
103
+ return props.state === 2
104
+ })
105
+
106
+ const cpuOptions = computed<UI_I_OptionItem[]>(() =>
107
+ cpuOptionsFunc(localization.value, 1, props.maxCpus)
108
+ )
109
+
110
+ const enableCpuHotAdd = ref<boolean>(false)
111
+ const enableCpuHotAddDisabled = computed<boolean>(
112
+ // () => selectedCpu.value >= props.maxCpus || isDisabled.value
113
+ () => isDisabled.value // pc-1766
114
+ )
115
+ watch(enableCpuHotAdd, (newValue) => {
116
+ if (newValue) return
117
+
118
+ maxCpuInvalid.value = false
119
+ selectedMaxCpu.value = 1
120
+ })
121
+
122
+ const selectedCpu = ref<number>(
123
+ isDisabled.value && enableCpuHotAdd.value ? props.maxCpus : 2
124
+ )
125
+ const isCpuDisabled = computed<boolean>(
126
+ () => isDisabled.value && !enableCpuHotAdd.value
127
+ )
128
+ watch(selectedCpu, (newValue) => {
129
+ selectedCpu.value = Math.floor(+newValue)
130
+ if (!(selectedCpu.value % selectedCorePerSocket.value) || isDisabled.value)
131
+ return
132
+ selectedCorePerSocket.value = 1
133
+ })
134
+ // watch(selectedCpu, (newValue) => {
135
+ // if (enableCpuHotAdd.value && enableCpuHotAddDisabled.value) return
136
+
137
+ // if (newValue >= props.maxCpus) { // pc-1766
138
+ // enableCpuHotAdd.value = false
139
+ // }
140
+ // selectedMaxCpu.value =
141
+ // selectedMaxCpu.value <= newValue ? newValue + 1 : selectedMaxCpu.value
142
+ // if (selectedMaxCpu.value > props.maxCpus) selectedMaxCpu.value = props.maxCpus
143
+ // })
144
+ const maxCpuOptions = computed<UI_I_OptionItem[]>(() =>
145
+ cpuOptionsFunc(localization.value, selectedCpu.value, props.maxCpus)
146
+ )
147
+ const selectedMaxCpu = ref<number>(1)
148
+ watch(
149
+ () => props.maxCpus,
150
+ (newValue) => {
151
+ selectedMaxCpu.value = newValue
152
+ }
153
+ )
154
+
155
+ const selectedCpus = computed<number[]>(() =>
156
+ enableCpuHotAdd.value
157
+ ? [selectedCpu.value, selectedMaxCpu.value]
158
+ : [selectedCpu.value]
159
+ )
160
+
161
+ const selectedCorePerSocket = ref<number>(1)
162
+
163
+ const cpuErrorLocalText = computed<string>(() => {
164
+ const validValue = /^\d+(\.\d+)?$/.test(selectedCpu.value + '')
165
+ if (!validValue) {
166
+ return localization.value.common.inputContainsInvalidCharacters
167
+ }
168
+
169
+ const min = cpuOptions.value[0].value
170
+ const max = cpuOptions.value[1].value
171
+ if (selectedCpu.value < min || selectedCpu.value > max) {
172
+ return localization.value.vmWizard.cpuMustBe
173
+ .replace('{0}', min)
174
+ .replace('{1}', max)
175
+ }
176
+
177
+ return ''
178
+ })
179
+
180
+ const apiVcpusError = computed<string>(() => {
181
+ return (
182
+ props.errorValidationFields?.find(
183
+ (message) => message.field === 'cpu.vcpus'
184
+ )?.error_message || ''
185
+ )
186
+ })
187
+
188
+ const vcpusLocalAndApiErrorsTexts = computed<string>(() => {
189
+ const localError = cpuErrorLocalText.value
190
+ const apiError = apiVcpusError.value
191
+
192
+ let result = ''
193
+ if (localError && !apiError) result = localError
194
+ if (!localError && apiError) result = apiError
195
+ if (localError && apiError) result = localError + ', ' + apiError
196
+ if (!localError && apiError) result = apiError
197
+
198
+ return result
199
+ })
200
+ const reservationInvalid = ref<boolean>(false)
201
+ const limitInvalid = ref<boolean>(false)
202
+ const sharesInvalid = ref<boolean>(false)
203
+ const maxCpuInvalid = ref<boolean>(false)
204
+ const cpuInvalid = computed<boolean>(
205
+ () =>
206
+ !!cpuErrorLocalText.value ||
207
+ reservationInvalid.value ||
208
+ limitInvalid.value ||
209
+ sharesInvalid.value ||
210
+ (enableCpuHotAdd.value &&
211
+ // selectedCpu.value < props.maxCpus && // pc-1766
212
+ maxCpuInvalid.value)
213
+ )
214
+ watch(
215
+ cpuInvalid,
216
+ (newValue: boolean) => {
217
+ emits('invalid', newValue)
218
+ },
219
+ { immediate: true }
220
+ )
221
+
222
+ const reservation = ref<string>('1')
223
+ const reservationType = ref<string>('mhz')
224
+
225
+ const limit = ref<string>('Unlimited')
226
+ const limitType = ref<string>('mhz')
227
+
228
+ const shares = ref<string>('2000')
229
+ const sharesType = ref<string>('2000')
230
+
231
+ // const hardwareVirtualization = ref<boolean>(false)
232
+ //
233
+ // const performanceCounters = ref<boolean>(false)
234
+ //
235
+ // const schedulingAffinity = ref<string>('')
236
+ //
237
+ // const iommu = ref<boolean>(false)
238
+
239
+ // const cpuModel = ref<string>(props.cpuModels[0]?.value || '')
240
+ const cpuModel = ref<string>('host-model') // PNCWEB-389
241
+ watch(
242
+ () => props.cpuModels,
243
+ (newValue) => {
244
+ cpuModel.value = newValue[0].value
245
+ }
246
+ )
247
+ const passthroughHostCpu = ref<boolean>(false)
248
+ const hostModelCpu = ref<boolean>(false)
249
+
250
+ // const isShowCpuHelp = ref<boolean>(false)
251
+
252
+ const { $binary } = useNuxtApp()
253
+ watch(
254
+ [
255
+ reservation,
256
+ reservationType,
257
+ limit,
258
+ limitType,
259
+ shares,
260
+ selectedCpu,
261
+ selectedMaxCpu,
262
+ selectedCorePerSocket,
263
+ enableCpuHotAdd,
264
+ cpuModel,
265
+ passthroughHostCpu,
266
+ hostModelCpu,
267
+ ],
268
+ () => {
269
+ const reservationInMhz =
270
+ reservationType.value === 'ghz'
271
+ ? $binary.ghzToMhz(+reservation.value)
272
+ : +reservation.value
273
+ const limitInMhz =
274
+ limit.value === 'Unlimited'
275
+ ? limit.value
276
+ : limitType.value === 'ghz'
277
+ ? $binary.ghzToMhz(+limit.value)
278
+ : +limit.value
279
+ const model = passthroughHostCpu.value
280
+ ? 'host-passthrough'
281
+ : hostModelCpu.value
282
+ ? 'host-model'
283
+ : cpuModel.value
284
+
285
+ emits('send-data', {
286
+ model,
287
+ vcpus: selectedCpu.value,
288
+ max_vcpus: enableCpuHotAdd.value ? selectedMaxCpu.value : 0,
289
+ core_per_socket: selectedCorePerSocket.value,
290
+ reservation_mhz: reservationInMhz,
291
+ limit_mhz: limitInMhz,
292
+ shares: +shares.value,
293
+ hotplug: enableCpuHotAdd.value,
294
+ })
295
+ },
296
+ {
297
+ immediate: true,
298
+ }
299
+ )
300
+
301
+ // Добавляем данные для редактирования
302
+ watch(
303
+ () => props.cpu,
304
+ (newValue) => {
305
+ if (!newValue) return
306
+
307
+ enableCpuHotAdd.value = newValue.hotplug
308
+ selectedCpu.value = newValue.vcpus
309
+ selectedMaxCpu.value = newValue.hotplug ? newValue.max_vcpus : 1
310
+ selectedCorePerSocket.value = newValue.core_per_socket
311
+ reservation.value = '' + newValue.reservation_mhz
312
+ limit.value = '' + newValue.limit_mhz
313
+ shares.value = '' + newValue.shares
314
+
315
+ switch (newValue.model) {
316
+ case 'host-passthrough':
317
+ passthroughHostCpu.value = true
318
+ cpuModel.value = ''
319
+ break
320
+ case 'host-model':
321
+ hostModelCpu.value = true
322
+ cpuModel.value = ''
323
+ break
324
+ default:
325
+ cpuModel.value =
326
+ props.cpuModels.find((model) => model.value === newValue.model)
327
+ ?.value || cpuModel.value
328
+ }
329
+ },
330
+ { immediate: true }
331
+ )
332
+
333
+ const onRemoveValidationError = (): void => {
334
+ emits('remove-error-by-title', 'cpu.vcpus')
335
+ }
336
+ </script>
337
+
338
+ <style scoped lang="scss"></style>