bfg-common 1.4.877 → 1.4.879

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 (194) hide show
  1. package/assets/img/icons/icons-sprite-dark-3.svg +227 -227
  2. package/assets/img/icons/icons-sprite-dark-5.svg +488 -488
  3. package/assets/img/icons/icons-sprite-light-3.svg +227 -227
  4. package/assets/img/icons/icons-sprite-light-5.svg +488 -488
  5. package/assets/localization/local_ru.json +1 -1
  6. package/assets/scss/common/normalize.scss +361 -361
  7. package/components/atoms/TheIcon3.vue +50 -50
  8. package/components/atoms/autocomplete/Autocomplete.vue +301 -301
  9. package/components/atoms/collapse/CollapseNav.vue +164 -164
  10. package/components/atoms/dropdown/dropdown/Dropdown.vue +168 -168
  11. package/components/atoms/modal/bySteps/BySteps.vue +253 -253
  12. package/components/atoms/stack/StackBlock.vue +185 -185
  13. package/components/atoms/table/dataGrid/DataGrid.vue +1704 -1704
  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/lib/models/interfaces.ts +1 -0
  18. package/components/common/browse/BrowseNew.vue +237 -237
  19. package/components/common/browse/BrowseOld.vue +217 -217
  20. package/components/common/browse/blocks/contents/Files.vue +37 -37
  21. package/components/common/browse/blocks/contents/FilesOld.vue +72 -72
  22. package/components/common/browse/blocks/contents/filesNew/FilesNew.vue +96 -96
  23. package/components/common/browse/blocks/contents/filesNew/Skeleton.vue +18 -18
  24. package/components/common/browse/blocks/lib/models/types.ts +1 -1
  25. package/components/common/browse/lib/models/interfaces.ts +5 -5
  26. package/components/common/context/Context.vue +111 -111
  27. package/components/common/context/lib/models/interfaces.ts +30 -30
  28. package/components/common/context/recursion/Recursion.vue +87 -87
  29. package/components/common/context/recursion/RecursionOld.vue +227 -227
  30. package/components/common/details/DetailsItem.vue +109 -109
  31. package/components/common/diagramMain/Header.vue +211 -211
  32. package/components/common/diagramMain/adapter/AdapterItems.vue +61 -61
  33. package/components/common/diagramMain/lib/config/initial.ts +50 -50
  34. package/components/common/diagramMain/lib/models/interfaces.ts +1 -1
  35. package/components/common/diagramMain/lib/models/types.ts +21 -21
  36. package/components/common/diagramMain/lib/utils/utils.ts +331 -331
  37. package/components/common/diagramMain/modals/ManagePhysicalAdaptersModal.vue +330 -330
  38. package/components/common/diagramMain/modals/editSettings/ConfirmTeamingSettingsModal.vue +40 -40
  39. package/components/common/diagramMain/modals/editSettings/EditSettings.vue +497 -497
  40. package/components/common/diagramMain/modals/editSettings/EditSettingsModal.vue +812 -812
  41. package/components/common/diagramMain/modals/editSettings/tabs/NetworkProperties.vue +214 -214
  42. package/components/common/diagramMain/modals/editSettings/tabs/Security.vue +189 -189
  43. package/components/common/diagramMain/modals/editSettings/tabs/SwitchProperties.vue +163 -163
  44. package/components/common/diagramMain/modals/editSettings/tabs/TeamingFailover.vue +175 -175
  45. package/components/common/diagramMain/modals/editSettings/tabs/port/IpvFourSettings.vue +346 -346
  46. package/components/common/diagramMain/modals/editSettings/tabs/port/PortProperties.vue +205 -205
  47. package/components/common/diagramMain/modals/lib/config/diagramConfig.ts +23 -23
  48. package/components/common/diagramMain/modals/lib/config/initial.ts +180 -180
  49. package/components/common/diagramMain/modals/lib/config/vmKernelAdapter.ts +90 -90
  50. package/components/common/diagramMain/modals/lib/mappers/mappers.ts +87 -87
  51. package/components/common/diagramMain/modals/lib/utils/index.ts +24 -24
  52. package/components/common/diagramMain/modals/migrateVmkernelAdapter/lib/config/steps.ts +114 -114
  53. package/components/common/diagramMain/modals/migrateVmkernelAdapter/steps/ConnectionSettings.vue +169 -169
  54. package/components/common/diagramMain/modals/migrateVmkernelAdapter/steps/SelectVmkernelAdapter.vue +159 -159
  55. package/components/common/diagramMain/modals/migrateVmkernelAdapter/validations/common.ts +14 -14
  56. package/components/common/diagramMain/modals/migrateVmkernelAdapter/validations/connectionSettings.ts +137 -137
  57. package/components/common/diagramMain/modals/migrateVmkernelAdapter/validations/selectVmkernelAdapter.ts +52 -52
  58. package/components/common/diagramMain/modals/migrateVmkernelAdapter/validations/validations.ts +19 -19
  59. package/components/common/diagramMain/port/Ports.vue +47 -47
  60. package/components/common/graph/Graph.vue +104 -104
  61. package/components/common/layout/theHeader/helpMenu/About.vue +82 -82
  62. package/components/common/layout/theHeader/helpMenu/aboutNew/AboutNew.vue +103 -103
  63. package/components/common/layout/theHeader/userMenu/modals/preferences/defaultConsole/DefaultConsoleNew.vue +1 -0
  64. package/components/common/layout/theHeader/userMenu/modals/preferences/defaultConsole/DefaultConsoleOld.vue +1 -0
  65. package/components/common/layout/theHeader/userMenu/modals/preferences/view/ViewOld.vue +112 -112
  66. package/components/common/mainNavigationPanel/MainNavigationPanelNew.vue +335 -327
  67. package/components/common/mainNavigationPanel/MainNavigationPanelOld.vue +312 -300
  68. package/components/common/mainNavigationPanel/lib/models/interfaces.ts +1 -0
  69. package/components/common/modals/unsavedChanges/UnsavedChanges.vue +56 -56
  70. package/components/common/monitor/overview/OverviewNew.vue +142 -142
  71. package/components/common/monitor/overview/OverviewOld.vue +139 -139
  72. package/components/common/monitor/overview/filters/Filters.vue +166 -166
  73. package/components/common/monitor/overview/filters/FiltersNew.vue +172 -172
  74. package/components/common/monitor/overview/filters/FiltersOld.vue +151 -151
  75. package/components/common/monitor/overview/filters/customIntervalModal/CustomIntervalModal.vue +175 -175
  76. package/components/common/monitor/overview/filters/customIntervalModal/CustomIntervalModalOld.vue +161 -161
  77. package/components/common/pages/home/StatusContent.vue +49 -49
  78. package/components/common/pages/home/headline/Headline.vue +45 -45
  79. package/components/common/pages/home/headline/HeadlineOld.vue +42 -42
  80. package/components/common/pages/home/lib/models/interfaces.ts +48 -48
  81. package/components/common/pages/home/widgets/Widgets.vue +49 -49
  82. package/components/common/pages/home/widgets/WidgetsNew.vue +86 -86
  83. package/components/common/pages/home/widgets/WidgetsOld.vue +34 -34
  84. package/components/common/pages/home/widgets/hosts/Hosts.vue +27 -27
  85. package/components/common/pages/home/widgets/hosts/lib/config/items.ts +23 -23
  86. package/components/common/pages/home/widgets/vms/Vms.vue +26 -26
  87. package/components/common/pages/home/widgets/vms/VmsOld.vue +35 -35
  88. package/components/common/pages/home/widgets/vms/lib/config/items.ts +19 -19
  89. package/components/common/pages/packages/Packages.vue +208 -208
  90. package/components/common/pages/shortcuts/block/BlockNew.vue +96 -80
  91. package/components/common/pages/shortcuts/block/BlockOld.vue +68 -55
  92. package/components/common/pages/shortcuts/lib/models/interfaces.ts +1 -0
  93. package/components/common/recursionTree/RecursionTree.vue +223 -223
  94. package/components/common/select/button/ButtonDropdown.vue +108 -108
  95. package/components/common/spiceConsole/Drawer.vue +370 -370
  96. package/components/common/spiceConsole/lib/models/interfaces.ts +5 -5
  97. package/components/common/split/horizontal/HorizontalNew.vue +376 -376
  98. package/components/common/split/horizontal/HorizontalOld.vue +337 -337
  99. package/components/common/split/vertical/Vertical.vue +160 -160
  100. package/components/common/vm/actions/add/Add.vue +622 -622
  101. package/components/common/vm/actions/clone/Clone.vue +639 -639
  102. package/components/common/vm/actions/clone/lib/config/steps.ts +129 -129
  103. package/components/common/vm/actions/clone/toTemplate/ToTemplate.vue +634 -634
  104. package/components/common/vm/actions/clone/toTemplate/lib/config/steps.ts +116 -116
  105. package/components/common/vm/actions/common/customizeHardware/CustomizeHardware.vue +275 -275
  106. package/components/common/vm/actions/common/customizeHardware/CustomizeHardwareNew.vue +274 -274
  107. package/components/common/vm/actions/common/customizeHardware/CustomizeHardwareOld.vue +177 -177
  108. package/components/common/vm/actions/common/customizeHardware/virtualHardware/VirtualHardware.vue +698 -698
  109. package/components/common/vm/actions/common/customizeHardware/virtualHardware/VirtualHardwareNew.vue +410 -410
  110. package/components/common/vm/actions/common/customizeHardware/virtualHardware/VirtualHardwareOld.vue +319 -319
  111. package/components/common/vm/actions/common/customizeHardware/virtualHardware/browseView/BrowseView.vue +219 -219
  112. package/components/common/vm/actions/common/customizeHardware/virtualHardware/bus/Bus.vue +99 -99
  113. package/components/common/vm/actions/common/customizeHardware/virtualHardware/bus/BusNew.vue +117 -117
  114. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/CdDvdDrive.vue +232 -232
  115. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/CdDvdDriveNew.vue +164 -164
  116. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/CdDvdDriveOld.vue +168 -168
  117. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/Media.vue +25 -25
  118. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/MediaNew.vue +70 -70
  119. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/MediaOld.vue +50 -50
  120. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/Cpu.vue +338 -338
  121. package/components/common/vm/actions/common/customizeHardware/virtualHardware/limit/Limit.vue +220 -220
  122. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/NewHardDisk.vue +368 -368
  123. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/NewHardDiskNew.vue +232 -232
  124. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/NewHardDiskOld.vue +250 -250
  125. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/mode/ModeOld.vue +56 -56
  126. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/sharing/SharingNew.vue +44 -44
  127. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/NewNetwork.vue +286 -282
  128. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/NewNetworkNew.vue +124 -124
  129. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/location/LocationOld.vue +134 -134
  130. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/location/new/New.vue +63 -63
  131. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/location/new/table/lib/config/config.ts +95 -95
  132. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/macAddress/MacAddress.vue +119 -119
  133. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/macAddress/MacAddressNew.vue +69 -69
  134. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/macAddress/MacAddressOld.vue +83 -83
  135. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/NewPciDevice.vue +205 -205
  136. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/directPathIo/DirectPathIoNew.vue +66 -66
  137. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/directPathIo/DirectPathIoOld.vue +62 -62
  138. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIo.vue +31 -31
  139. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIoNew.vue +84 -84
  140. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIoOld.vue +76 -76
  141. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/Note.vue +15 -15
  142. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/NoteNew.vue +42 -42
  143. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/NoteOld.vue +30 -30
  144. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/nvidiaGrid/NvidiaGrid.vue +41 -41
  145. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/nvidiaGrid/NvidiaGridNew.vue +81 -81
  146. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/nvidiaGrid/NvidiaGridOld.vue +84 -84
  147. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newUsbController/NewUsbControllerNew.vue +56 -56
  148. package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/Other.vue +16 -16
  149. package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/OtherNew.vue +30 -30
  150. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/VideoCardNew.vue +104 -104
  151. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/VideoCardOld.vue +112 -112
  152. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/totalVideoMemory/TotalVideoMemoryNew.vue +54 -54
  153. package/components/common/vm/actions/common/customizeHardware/vmoptions/Vmoptions.vue +145 -145
  154. package/components/common/vm/actions/common/customizeHardware/vmoptions/VmoptionsNew.vue +102 -102
  155. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/BootOptionsNew.vue +75 -75
  156. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/delay/Delay.vue +26 -26
  157. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/firmware/Firmware.vue +57 -57
  158. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/firmware/FirmwareNew.vue +42 -42
  159. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/menu/MenuNew.vue +25 -25
  160. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/Order.vue +171 -171
  161. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/OrderNew.vue +50 -50
  162. package/components/common/vm/actions/common/customizeHardware/vmoptions/generalOptions/GeneralOptionsNew.vue +141 -141
  163. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/New.vue +140 -140
  164. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/copyPaste/CopyPasteNew.vue +30 -30
  165. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/fileTransfer/FileTransferNew.vue +30 -30
  166. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/folderSharing/FolderSharingNew.vue +30 -30
  167. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/keymap/Keymap.vue +32 -32
  168. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/keymap/KeymapNew.vue +39 -39
  169. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/password/Password.vue +103 -103
  170. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/password/PasswordNew.vue +102 -102
  171. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/password/PasswordOld.vue +94 -94
  172. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirection.vue +28 -28
  173. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirectionNew.vue +38 -38
  174. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirectionOld.vue +44 -44
  175. package/components/common/vm/actions/common/select/storage/Storage.vue +130 -130
  176. package/components/common/vm/actions/common/select/storage/StorageOld.vue +129 -129
  177. package/components/common/vm/actions/editSettings/new/Skeleton.vue +88 -88
  178. package/components/common/wizards/datastore/add/lib/config/steps.ts +138 -138
  179. package/components/common/wizards/vm/migrate/Migrate.vue +302 -302
  180. package/components/common/wizards/vm/migrate/lib/config/constructDataReady.ts +220 -220
  181. package/components/common/wizards/vm/migrate/select/network/Network.vue +103 -103
  182. package/components/common/wizards/vm/migrate/select/network/table/network/Network.vue +150 -150
  183. package/components/common/wizards/vm/migrate/select/network/table/network/lib/config/advancedTable.ts +91 -91
  184. package/components/common/wizards/vm/migrate/select/priority/Priority.vue +43 -43
  185. package/composables/productNameLocal.ts +30 -30
  186. package/composables/useAppVersion.ts +21 -21
  187. package/package.json +1 -1
  188. package/plugins/date.ts +233 -233
  189. package/plugins/recursion.ts +311 -311
  190. package/public/spice-console/lib/images/bitmap.js +203 -203
  191. package/public/spice-console/network/spicechannel.js +383 -383
  192. package/store/main/mutations.ts +7 -7
  193. package/store/main/state.ts +7 -7
  194. 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>