bfg-common 1.5.595 → 1.5.596

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 (172) 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 +4 -0
  7. package/assets/localization/local_en.json +4 -0
  8. package/assets/localization/local_hy.json +4 -0
  9. package/assets/localization/local_kk.json +4 -0
  10. package/assets/localization/local_ru.json +4 -0
  11. package/assets/localization/local_zh.json +4 -0
  12. package/components/atoms/TheIcon3.vue +50 -50
  13. package/components/atoms/collapse/CollapseNav.vue +170 -170
  14. package/components/atoms/perPage/PerPage.vue +58 -58
  15. package/components/atoms/table/dataGrid/DataGrid.vue +1718 -1718
  16. package/components/atoms/table/dataGrid/DataGridPagination.vue +97 -97
  17. package/components/atoms/table/dataGrid/lib/config/settingsTable.ts +94 -94
  18. package/components/atoms/table/dataGrid/lib/utils/export.ts +16 -16
  19. package/components/common/backup/storage/actions/add/lib/utils.ts +51 -51
  20. package/components/common/browse/Browse.vue +9 -0
  21. package/components/common/browse/BrowseNew.vue +2 -1
  22. package/components/common/browse/BrowseOld.vue +2 -1
  23. package/components/common/browse/blocks/contents/filesNew/Skeleton.vue +18 -18
  24. package/components/common/diagramMain/modals/lib/config/portModal.ts +251 -251
  25. package/components/common/diagramMain/modals/lib/config/vCenterModal.ts +48 -48
  26. package/components/common/diagramMain/port/Port.vue +580 -580
  27. package/components/common/layout/theHeader/helpMenu/About.vue +79 -79
  28. package/components/common/layout/theHeader/helpMenu/aboutOld/AboutOld.vue +79 -79
  29. package/components/common/pages/backups/DetailView.vue +52 -52
  30. package/components/common/pages/backups/lib/models/interfaces.ts +36 -36
  31. package/components/common/pages/backups/modals/Modals.vue +243 -243
  32. package/components/common/pages/backups/modals/createBackup/configuration/maxBandwidth/lib/config/options.ts +6 -6
  33. package/components/common/pages/backups/modals/createBackup/lib/config/readyToCompleteOptions.ts +69 -69
  34. package/components/common/pages/backups/modals/lib/config/restore.ts +115 -115
  35. package/components/common/pages/backups/modals/lib/models/interfaces.ts +186 -186
  36. package/components/common/pages/backups/modals/restore/name/lib/models/interfaces.ts +6 -6
  37. package/components/common/pages/home/lib/models/interfaces.ts +48 -48
  38. package/components/common/pages/home/widgets/hosts/Hosts.vue +27 -27
  39. package/components/common/pages/home/widgets/hosts/lib/config/items.ts +23 -23
  40. package/components/common/pages/home/widgets/vms/VmsOld.vue +35 -35
  41. package/components/common/pages/home/widgets/vms/lib/config/items.ts +19 -19
  42. package/components/common/pages/scheduledTasks/lib/utils/utils.ts +84 -84
  43. package/components/common/readyToComplete/ReadyToComplete.vue +17 -17
  44. package/components/common/select/radio/RadioGroup.vue +137 -137
  45. package/components/common/spiceConsole/Drawer.vue +420 -420
  46. package/components/common/spiceConsole/SpiceConsole.vue +184 -184
  47. package/components/common/spiceConsole/lib/models/interfaces.ts +5 -5
  48. package/components/common/tools/Actions.vue +207 -207
  49. package/components/common/treeView/TreeView.vue +52 -52
  50. package/components/common/vm/actions/add/Add.vue +819 -819
  51. package/components/common/vm/actions/clone/Clone.vue +694 -694
  52. package/components/common/vm/actions/common/customizeHardware/CustomizeHardware.vue +205 -205
  53. package/components/common/vm/actions/common/customizeHardware/New.vue +325 -325
  54. package/components/common/vm/actions/common/customizeHardware/virtualHardware/VirtualHardware.vue +679 -679
  55. package/components/common/vm/actions/common/customizeHardware/virtualHardware/bus/Bus.vue +101 -101
  56. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/CdDvdDrive.vue +227 -227
  57. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/Media.vue +29 -29
  58. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/Cpu.vue +323 -323
  59. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/coresPerSocket/CoresPerSocket.vue +81 -81
  60. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/hotPlug/HotPlug.vue +40 -40
  61. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/maxCpu/MaxCpu.vue +91 -91
  62. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/model/Model.vue +92 -92
  63. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/shares/Shares.vue +133 -133
  64. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/shares/lib/config/options.ts +28 -28
  65. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/tooltip/Tooltip.vue +27 -27
  66. package/components/common/vm/actions/common/customizeHardware/virtualHardware/limit/Limit.vue +214 -214
  67. package/components/common/vm/actions/common/customizeHardware/virtualHardware/memory/Memory.vue +280 -280
  68. package/components/common/vm/actions/common/customizeHardware/virtualHardware/memory/New.vue +158 -158
  69. package/components/common/vm/actions/common/customizeHardware/virtualHardware/memory/Old.vue +155 -155
  70. package/components/common/vm/actions/common/customizeHardware/virtualHardware/memory/hotPlug/HotPlug.vue +29 -29
  71. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/NewHardDisk.vue +483 -483
  72. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/cache/Cache.vue +59 -59
  73. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/file/File.vue +24 -24
  74. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/limitIops/LimitIops.vue +96 -96
  75. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/location/Location.vue +142 -142
  76. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/location/storageModal/StorageModal.vue +55 -55
  77. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/maximumSize/MaximumSize.vue +26 -26
  78. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/mode/Mode.vue +61 -61
  79. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/provisioning/Provisioning.vue +57 -57
  80. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/sharing/Sharing.vue +59 -59
  81. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/NewNetwork.vue +257 -257
  82. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/adapterType/AdapterType.vue +56 -56
  83. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/location/Location.vue +65 -65
  84. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/macAddress/MacAddress.vue +111 -111
  85. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/NewPciDevice.vue +199 -199
  86. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/directPathIo/DirectPathIo.vue +27 -27
  87. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIo.vue +29 -29
  88. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/Note.vue +23 -23
  89. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/nvidiaGrid/NvidiaGrid.vue +40 -40
  90. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/typeSelection/TypeSelection.vue +34 -34
  91. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newUsbController/NewUsbController.vue +47 -47
  92. package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/Other.vue +15 -15
  93. package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/inputDevices/InputDevices.vue +15 -15
  94. package/components/common/vm/actions/common/customizeHardware/virtualHardware/reservation/Reservation.vue +194 -194
  95. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/VideoCard.vue +129 -129
  96. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/model/Model.vue +35 -35
  97. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/numberDisplays/NumberDisplays.vue +50 -50
  98. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/totalVideoMemory/TotalVideoMemory.vue +104 -104
  99. package/components/common/vm/actions/common/customizeHardware/vmoptions/Vmoptions.vue +70 -70
  100. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/BootOptions.vue +42 -42
  101. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/delay/Delay.vue +32 -32
  102. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/firmware/Firmware.vue +57 -57
  103. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/menu/Menu.vue +25 -25
  104. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/Order.vue +155 -155
  105. package/components/common/vm/actions/common/customizeHardware/vmoptions/generalOptions/GeneralOptions.vue +82 -82
  106. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/RemoteConsoleOptions.vue +74 -74
  107. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/copyPaste/CopyPaste.vue +25 -25
  108. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/fileTransfer/FileTransfer.vue +25 -25
  109. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/folderSharing/FolderSharing.vue +17 -17
  110. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/keymap/Keymap.vue +32 -32
  111. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/password/Password.vue +99 -99
  112. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirection.vue +28 -28
  113. package/components/common/vm/actions/common/customizeHardware/vmoptions/tools/Tools.vue +42 -42
  114. package/components/common/vm/actions/common/select/compatibility/Compatibility.vue +105 -105
  115. package/components/common/vm/actions/common/select/compatibility/Old.vue +107 -107
  116. package/components/common/vm/actions/common/select/createType/CreateType.vue +36 -36
  117. package/components/common/vm/actions/common/select/createType/lib/models/interfaces.ts +5 -5
  118. package/components/common/vm/actions/common/select/options/Options.vue +53 -53
  119. package/components/common/vm/actions/common/select/os/Os.vue +152 -152
  120. package/components/common/vm/actions/common/select/storage/Old.vue +125 -125
  121. package/components/common/vm/actions/common/select/storage/Storage.vue +170 -170
  122. package/components/common/vm/actions/common/select/storage/new/New.vue +311 -311
  123. package/components/common/vm/actions/common/select/storage/new/lib/models/interfaces.ts +5 -5
  124. package/components/common/vm/actions/common/select/storage/new/lib/utils/utils.ts +21 -21
  125. package/components/common/vm/actions/common/select/template/Template.vue +75 -75
  126. package/components/common/vm/actions/common/select/template/old/Old.vue +50 -50
  127. package/components/common/vm/actions/common/select/template/treeView/TreeView.vue +85 -85
  128. package/components/common/vm/actions/editSettings/EditSettings.vue +169 -169
  129. package/components/common/vm/actions/editSettings/new/Skeleton.vue +88 -88
  130. package/components/common/vm/actions/register/Register.vue +332 -352
  131. package/components/common/vm/actions/register/RegisterNew.vue +218 -0
  132. package/components/common/vm/actions/register/RegisterOld.vue +127 -0
  133. package/components/common/vm/actions/register/lib/config/index.ts +1 -0
  134. package/components/common/vm/actions/register/lib/config/steps.ts +86 -86
  135. package/components/common/wizards/common/compatibility/Compatibility.vue +35 -35
  136. package/components/common/wizards/common/compatibility/New.vue +99 -99
  137. package/components/common/wizards/common/compatibility/Old.vue +53 -53
  138. package/components/common/wizards/common/steps/computeResource/ComputeResource.vue +86 -86
  139. package/components/common/wizards/common/steps/computeResource/New.vue +93 -93
  140. package/components/common/wizards/common/steps/name/Name.vue +178 -178
  141. package/components/common/wizards/common/steps/name/New.vue +221 -221
  142. package/components/common/wizards/common/steps/name/Old.vue +121 -121
  143. package/components/common/wizards/common/steps/name/lib/models/interfaces.ts +4 -4
  144. package/components/common/wizards/common/steps/name/location/Location.vue +85 -85
  145. package/components/common/wizards/common/steps/name/location/New.vue +40 -40
  146. package/components/common/wizards/datastore/add/Add.vue +228 -228
  147. package/components/common/wizards/datastore/add/lib/utils.ts +85 -85
  148. package/components/common/wizards/datastore/add/steps/typeMode/lib/config/typeOptions.ts +43 -43
  149. package/components/common/wizards/vm/migrate/select/computeResource/ComputeResource.vue +205 -205
  150. package/components/common/wizards/vm/migrate/select/network/Network.vue +103 -103
  151. package/composables/useAppVersion.ts +21 -21
  152. package/composables/useLocal.ts +6 -6
  153. package/composables/useLocalCommon.ts +39 -39
  154. package/lib/models/interfaces.ts +1 -0
  155. package/package.json +2 -2
  156. package/plugins/console.ts +21 -21
  157. package/plugins/date.ts +233 -233
  158. package/plugins/mouse.ts +21 -21
  159. package/plugins/panelStates.ts +70 -70
  160. package/plugins/text.ts +59 -59
  161. package/plugins/time.ts +58 -58
  162. package/public/spice-console/application/clientgui.js +854 -854
  163. package/public/spice-console/application/packetfactory.js +211 -211
  164. package/public/spice-console/application/virtualmouse.js +147 -147
  165. package/public/spice-console/lib/images/bitmap.js +203 -203
  166. package/public/spice-console/network/spicechannel.js +440 -440
  167. package/public/spice-console/process/cursorprocess.js +121 -121
  168. package/public/spice-console/process/inputprocess.js +227 -227
  169. package/public/spice-console/process/mainprocess.js +210 -210
  170. package/public/spice-console/run.js +210 -210
  171. package/store/main/mutations.ts +7 -7
  172. package/store/main/state.ts +7 -7
@@ -1,81 +1,81 @@
1
- <template>
2
- <component
3
- :is="currentComponent"
4
- v-model:selected-core-per-socket="selectedCorePerSocketLocal"
5
- :disabled="props.disabled"
6
- :api-error="apiError"
7
- :socket-options="socketOptions"
8
- :sockets-count="socketsCount"
9
- @remove-error-by-title="emits('remove-error-by-title', $event)"
10
- />
11
- </template>
12
-
13
- <script setup lang="ts">
14
- import type { UI_I_ErrorValidationField } from '~/lib/models/store/interfaces'
15
- import type { UI_I_OptionItem } from '~/components/atoms/lib/models/interfaces'
16
-
17
- const props = defineProps<{
18
- cpuOptions: UI_I_OptionItem[]
19
- selectedCpus: number[]
20
- selectedCorePerSocket: number
21
- isEdit: boolean
22
- disabled: boolean
23
- errorValidationFields: UI_I_ErrorValidationField[]
24
- }>()
25
- const emits = defineEmits<{
26
- (event: 'update:selected-core-per-socket', value: number): void
27
- (event: 'remove-error-by-title', value: string): void
28
- }>()
29
-
30
- const { $store }: any = useNuxtApp()
31
- const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
32
- const currentComponent = computed(() =>
33
- isNewView.value
34
- ? defineAsyncComponent(() => import('./New.vue'))
35
- : defineAsyncComponent(() => import('./Old.vue'))
36
- )
37
-
38
- const apiError = computed<string>(() => {
39
- return (
40
- props.errorValidationFields?.find(
41
- (message) => message.field === 'cpu.core_per_socket'
42
- )?.error_message || ''
43
- )
44
- })
45
-
46
- const socketOptions = computed<number[]>(() => {
47
- const result = []
48
- const cpus = props.cpuOptions[1].value
49
- for (let i = 1; i <= cpus; i++) {
50
- const isCommonDivisor = props.selectedCpus.every(
51
- (cpu) => i <= cpu && (cpu % i === 0 || i === 1)
52
- )
53
- if (isCommonDivisor || props.disabled) {
54
- result.push(i)
55
- }
56
- }
57
- return result
58
- })
59
- watch(
60
- socketOptions,
61
- () => {
62
- !socketOptions.value.includes(selectedCorePerSocketLocal.value) &&
63
- !props.disabled &&
64
- (selectedCorePerSocketLocal.value = 1)
65
- },
66
- { deep: true }
67
- )
68
- const socketsCount = computed<number>(() => {
69
- return props.selectedCpus[0] / props.selectedCorePerSocket
70
- })
71
- const selectedCorePerSocketLocal = computed<number>({
72
- get() {
73
- return props.selectedCorePerSocket
74
- },
75
- set(newValue) {
76
- emits('update:selected-core-per-socket', +newValue)
77
- },
78
- })
79
- </script>
80
-
81
- <style scoped></style>
1
+ <template>
2
+ <component
3
+ :is="currentComponent"
4
+ v-model:selected-core-per-socket="selectedCorePerSocketLocal"
5
+ :disabled="props.disabled"
6
+ :api-error="apiError"
7
+ :socket-options="socketOptions"
8
+ :sockets-count="socketsCount"
9
+ @remove-error-by-title="emits('remove-error-by-title', $event)"
10
+ />
11
+ </template>
12
+
13
+ <script setup lang="ts">
14
+ import type { UI_I_ErrorValidationField } from '~/lib/models/store/interfaces'
15
+ import type { UI_I_OptionItem } from '~/components/atoms/lib/models/interfaces'
16
+
17
+ const props = defineProps<{
18
+ cpuOptions: UI_I_OptionItem[]
19
+ selectedCpus: number[]
20
+ selectedCorePerSocket: number
21
+ isEdit: boolean
22
+ disabled: boolean
23
+ errorValidationFields: UI_I_ErrorValidationField[]
24
+ }>()
25
+ const emits = defineEmits<{
26
+ (event: 'update:selected-core-per-socket', value: number): void
27
+ (event: 'remove-error-by-title', value: string): void
28
+ }>()
29
+
30
+ const { $store }: any = useNuxtApp()
31
+ const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
32
+ const currentComponent = computed(() =>
33
+ isNewView.value
34
+ ? defineAsyncComponent(() => import('./New.vue'))
35
+ : defineAsyncComponent(() => import('./Old.vue'))
36
+ )
37
+
38
+ const apiError = computed<string>(() => {
39
+ return (
40
+ props.errorValidationFields?.find(
41
+ (message) => message.field === 'cpu.core_per_socket'
42
+ )?.error_message || ''
43
+ )
44
+ })
45
+
46
+ const socketOptions = computed<number[]>(() => {
47
+ const result = []
48
+ const cpus = props.cpuOptions[1].value
49
+ for (let i = 1; i <= cpus; i++) {
50
+ const isCommonDivisor = props.selectedCpus.every(
51
+ (cpu) => i <= cpu && (cpu % i === 0 || i === 1)
52
+ )
53
+ if (isCommonDivisor || props.disabled) {
54
+ result.push(i)
55
+ }
56
+ }
57
+ return result
58
+ })
59
+ watch(
60
+ socketOptions,
61
+ () => {
62
+ !socketOptions.value.includes(selectedCorePerSocketLocal.value) &&
63
+ !props.disabled &&
64
+ (selectedCorePerSocketLocal.value = 1)
65
+ },
66
+ { deep: true }
67
+ )
68
+ const socketsCount = computed<number>(() => {
69
+ return props.selectedCpus[0] / props.selectedCorePerSocket
70
+ })
71
+ const selectedCorePerSocketLocal = computed<number>({
72
+ get() {
73
+ return props.selectedCorePerSocket
74
+ },
75
+ set(newValue) {
76
+ emits('update:selected-core-per-socket', +newValue)
77
+ },
78
+ })
79
+ </script>
80
+
81
+ <style scoped></style>
@@ -1,40 +1,40 @@
1
- <template>
2
- <component
3
- :is="currentComponent"
4
- v-model:enable-cpu-hot-add="enableCpuHotAddLocal"
5
- :disabled="props.disabled"
6
- />
7
- </template>
8
-
9
- <script setup lang="ts">
10
- const props = defineProps<{
11
- enableCpuHotAdd: boolean
12
- disabled: boolean
13
- }>()
14
- const emits = defineEmits<{
15
- (event: 'update:enable-cpu-hot-add', value: boolean): void
16
- }>()
17
-
18
- const { $store }: any = useNuxtApp()
19
- const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
20
- const currentComponent = computed(() =>
21
- isNewView.value
22
- ? defineAsyncComponent(() => import('./New.vue'))
23
- : defineAsyncComponent(() => import('./Old.vue'))
24
- )
25
-
26
- // const enableCpuHotAddLocal = ref(false)
27
- // const enableCpuHotAddLocal = defineModel('enableCpuHotAdd', {
28
- // required: true,
29
- // })
30
- const enableCpuHotAddLocal = computed<boolean>({
31
- get() {
32
- return props.enableCpuHotAdd
33
- },
34
- set(newValue: boolean) {
35
- emits('update:enable-cpu-hot-add', newValue)
36
- },
37
- })
38
- </script>
39
-
40
- <style scoped lang="scss"></style>
1
+ <template>
2
+ <component
3
+ :is="currentComponent"
4
+ v-model:enable-cpu-hot-add="enableCpuHotAddLocal"
5
+ :disabled="props.disabled"
6
+ />
7
+ </template>
8
+
9
+ <script setup lang="ts">
10
+ const props = defineProps<{
11
+ enableCpuHotAdd: boolean
12
+ disabled: boolean
13
+ }>()
14
+ const emits = defineEmits<{
15
+ (event: 'update:enable-cpu-hot-add', value: boolean): void
16
+ }>()
17
+
18
+ const { $store }: any = useNuxtApp()
19
+ const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
20
+ const currentComponent = computed(() =>
21
+ isNewView.value
22
+ ? defineAsyncComponent(() => import('./New.vue'))
23
+ : defineAsyncComponent(() => import('./Old.vue'))
24
+ )
25
+
26
+ // const enableCpuHotAddLocal = ref(false)
27
+ // const enableCpuHotAddLocal = defineModel('enableCpuHotAdd', {
28
+ // required: true,
29
+ // })
30
+ const enableCpuHotAddLocal = computed<boolean>({
31
+ get() {
32
+ return props.enableCpuHotAdd
33
+ },
34
+ set(newValue: boolean) {
35
+ emits('update:enable-cpu-hot-add', newValue)
36
+ },
37
+ })
38
+ </script>
39
+
40
+ <style scoped lang="scss"></style>
@@ -1,91 +1,91 @@
1
- <template>
2
- <component
3
- :is="currentComponent"
4
- v-model:selected-max-cpu.number="selectedMaxCpu"
5
- :cpu-options="props.cpuOptions"
6
- :disabled="props.disabled"
7
- :error-text="maxVcpusLocalAndApiErrorsTexts"
8
- @remove-error="onRemoveError"
9
- />
10
- </template>
11
-
12
- <script setup lang="ts">
13
- import type { UI_I_Localization } from '~/lib/models/interfaces'
14
- import type { UI_I_ErrorValidationField } from '~/lib/models/store/interfaces'
15
- import type { UI_I_OptionItem } from '~/components/atoms/lib/models/interfaces'
16
-
17
- const selectedMaxCpu = defineModel<number>('selectedMaxCpu', {
18
- required: true,
19
- })
20
-
21
- const props = defineProps<{
22
- cpuOptions: UI_I_OptionItem[]
23
- disabled: boolean
24
- errorValidationFields: UI_I_ErrorValidationField[]
25
- }>()
26
- const emits = defineEmits<{
27
- (event: 'invalid', value: boolean): void
28
- (event: 'remove-error-by-title', value: string): void
29
- }>()
30
-
31
- const { $store }: any = useNuxtApp()
32
- const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
33
- const currentComponent = computed(() =>
34
- isNewView.value
35
- ? defineAsyncComponent(() => import('./New.vue'))
36
- : defineAsyncComponent(() => import('./Old.vue'))
37
- )
38
-
39
- const localization = computed<UI_I_Localization>(() => useLocal())
40
-
41
- const apiErrorLocal = computed<string>(() => {
42
- return (
43
- props.errorValidationFields?.find(
44
- (message) => message.field === 'cpu.max_vcpus'
45
- )?.error_message || ''
46
- )
47
- })
48
-
49
- const errorTextLocal = computed<string>(() => {
50
- const validValue = /^\d+(\.\d+)?$/.test(selectedMaxCpu.value + '')
51
- if (!validValue) {
52
- return localization.value.common.inputContainsInvalidCharacters
53
- }
54
-
55
- const min = props.cpuOptions[0].value
56
- const max = props.cpuOptions[1].value
57
- if (selectedMaxCpu.value < min || selectedMaxCpu.value > max) {
58
- return localization.value.vmWizard.cpuMustBe
59
- .replace('{0}', min)
60
- .replace('{1}', max)
61
- }
62
-
63
- return ''
64
- })
65
- const maxVcpusLocalAndApiErrorsTexts = computed<string>(() => {
66
- const localError = errorTextLocal.value
67
- const apiError = apiErrorLocal.value
68
-
69
- let result = ''
70
- if (localError && !apiError) result = localError
71
- if (!localError && !apiError) result = apiError
72
- if (localError && apiError) result = localError + ', ' + apiError
73
- if (!localError && apiError) result = apiError
74
-
75
- return result
76
- })
77
- const isInvalid = computed<boolean>(() => !!errorTextLocal.value)
78
- watch(
79
- isInvalid,
80
- (newValue) => {
81
- emits('invalid', newValue)
82
- },
83
- { immediate: true }
84
- )
85
-
86
- const onRemoveError = (): void => {
87
- emits('remove-error-by-title', 'cpu.max_vcpus')
88
- }
89
- </script>
90
-
91
- <style scoped></style>
1
+ <template>
2
+ <component
3
+ :is="currentComponent"
4
+ v-model:selected-max-cpu.number="selectedMaxCpu"
5
+ :cpu-options="props.cpuOptions"
6
+ :disabled="props.disabled"
7
+ :error-text="maxVcpusLocalAndApiErrorsTexts"
8
+ @remove-error="onRemoveError"
9
+ />
10
+ </template>
11
+
12
+ <script setup lang="ts">
13
+ import type { UI_I_Localization } from '~/lib/models/interfaces'
14
+ import type { UI_I_ErrorValidationField } from '~/lib/models/store/interfaces'
15
+ import type { UI_I_OptionItem } from '~/components/atoms/lib/models/interfaces'
16
+
17
+ const selectedMaxCpu = defineModel<number>('selectedMaxCpu', {
18
+ required: true,
19
+ })
20
+
21
+ const props = defineProps<{
22
+ cpuOptions: UI_I_OptionItem[]
23
+ disabled: boolean
24
+ errorValidationFields: UI_I_ErrorValidationField[]
25
+ }>()
26
+ const emits = defineEmits<{
27
+ (event: 'invalid', value: boolean): void
28
+ (event: 'remove-error-by-title', value: string): void
29
+ }>()
30
+
31
+ const { $store }: any = useNuxtApp()
32
+ const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
33
+ const currentComponent = computed(() =>
34
+ isNewView.value
35
+ ? defineAsyncComponent(() => import('./New.vue'))
36
+ : defineAsyncComponent(() => import('./Old.vue'))
37
+ )
38
+
39
+ const localization = computed<UI_I_Localization>(() => useLocal())
40
+
41
+ const apiErrorLocal = computed<string>(() => {
42
+ return (
43
+ props.errorValidationFields?.find(
44
+ (message) => message.field === 'cpu.max_vcpus'
45
+ )?.error_message || ''
46
+ )
47
+ })
48
+
49
+ const errorTextLocal = computed<string>(() => {
50
+ const validValue = /^\d+(\.\d+)?$/.test(selectedMaxCpu.value + '')
51
+ if (!validValue) {
52
+ return localization.value.common.inputContainsInvalidCharacters
53
+ }
54
+
55
+ const min = props.cpuOptions[0].value
56
+ const max = props.cpuOptions[1].value
57
+ if (selectedMaxCpu.value < min || selectedMaxCpu.value > max) {
58
+ return localization.value.vmWizard.cpuMustBe
59
+ .replace('{0}', min)
60
+ .replace('{1}', max)
61
+ }
62
+
63
+ return ''
64
+ })
65
+ const maxVcpusLocalAndApiErrorsTexts = computed<string>(() => {
66
+ const localError = errorTextLocal.value
67
+ const apiError = apiErrorLocal.value
68
+
69
+ let result = ''
70
+ if (localError && !apiError) result = localError
71
+ if (!localError && !apiError) result = apiError
72
+ if (localError && apiError) result = localError + ', ' + apiError
73
+ if (!localError && apiError) result = apiError
74
+
75
+ return result
76
+ })
77
+ const isInvalid = computed<boolean>(() => !!errorTextLocal.value)
78
+ watch(
79
+ isInvalid,
80
+ (newValue) => {
81
+ emits('invalid', newValue)
82
+ },
83
+ { immediate: true }
84
+ )
85
+
86
+ const onRemoveError = (): void => {
87
+ emits('remove-error-by-title', 'cpu.max_vcpus')
88
+ }
89
+ </script>
90
+
91
+ <style scoped></style>
@@ -1,92 +1,92 @@
1
- <template>
2
- <component
3
- :is="currentComponent"
4
- v-model:passthrough-host-cpu="passthroughHostCpu"
5
- v-model:host-model-cpu="hostModelCpu"
6
- v-model:cpu-model="cpuModel"
7
- v-model:selected-tooltip="selectedTooltip"
8
- :cpu-model-options="cpuModelOptions"
9
- :disabled="props.disabled"
10
- :error-text="apiError"
11
- @change-cpu-model="onChangeCpuModel"
12
- @change-passthrough-host-cpu="onChangePassthroughHostCpu"
13
- @change-host-model-cpu="onChangeHostModelCpu"
14
- @remove-error="onRemoveValidationError"
15
- />
16
- </template>
17
-
18
- <script setup lang="ts">
19
- import type { UI_I_HTMLSelectElement } from '~/lib/models/interfaces'
20
- import type { UI_I_ErrorValidationField } from '~/lib/models/store/interfaces'
21
- import type { UI_I_OptionItem } from '~/components/atoms/lib/models/interfaces'
22
-
23
- const passthroughHostCpu = defineModel<boolean>('passthroughHostCpu', {
24
- required: true,
25
- })
26
- const hostModelCpu = defineModel<boolean>('hostModelCpu', {
27
- required: true,
28
- })
29
- const cpuModel = defineModel<string>('cpuModel', {
30
- required: true,
31
- })
32
- const selectedTooltip = defineModel<string>('selectedTooltip', {
33
- required: true,
34
- })
35
-
36
- const props = defineProps<{
37
- cpuModels: UI_I_OptionItem[]
38
- isEdit: boolean
39
- disabled: boolean
40
- errorValidationFields: UI_I_ErrorValidationField[]
41
- }>()
42
- const emits = defineEmits<{
43
- (event: 'remove-error-by-title', value: string): void
44
- }>()
45
-
46
- const { $store }: any = useNuxtApp()
47
- const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
48
- const currentComponent = computed(() =>
49
- isNewView.value
50
- ? defineAsyncComponent(() => import('./New.vue'))
51
- : defineAsyncComponent(() => import('./Old.vue'))
52
- )
53
-
54
- const cpuModelOptions = ref<UI_I_OptionItem[]>(props.cpuModels)
55
- watch(
56
- () => props.cpuModels,
57
- (newValue) => {
58
- cpuModelOptions.value = [...newValue]
59
- }
60
- )
61
-
62
- const onChangeCpuModel = (event: UI_I_HTMLSelectElement): void => {
63
- cpuModel.value = event.target.value
64
- passthroughHostCpu.value = false
65
- hostModelCpu.value = false
66
- }
67
- const onChangePassthroughHostCpu = (event: Event): void => {
68
- const target = event.target as HTMLInputElement
69
- cpuModel.value = target.checked ? '' : props.cpuModels?.[0].value
70
- hostModelCpu.value = false
71
- }
72
- const onChangeHostModelCpu = (event: Event): void => {
73
- const target = event.target as HTMLInputElement
74
- cpuModel.value = target.checked ? '' : props.cpuModels?.[0].value
75
- passthroughHostCpu.value = false
76
- }
77
-
78
- const typeError = 'cpu.model'
79
-
80
- const apiError = computed<string>(() => {
81
- return (
82
- props.errorValidationFields?.find((message) => message.field === typeError)
83
- ?.error_message || ''
84
- )
85
- })
86
-
87
- const onRemoveValidationError = (): void => {
88
- emits('remove-error-by-title', typeError)
89
- }
90
- </script>
91
-
92
- <style scoped lang="scss"></style>
1
+ <template>
2
+ <component
3
+ :is="currentComponent"
4
+ v-model:passthrough-host-cpu="passthroughHostCpu"
5
+ v-model:host-model-cpu="hostModelCpu"
6
+ v-model:cpu-model="cpuModel"
7
+ v-model:selected-tooltip="selectedTooltip"
8
+ :cpu-model-options="cpuModelOptions"
9
+ :disabled="props.disabled"
10
+ :error-text="apiError"
11
+ @change-cpu-model="onChangeCpuModel"
12
+ @change-passthrough-host-cpu="onChangePassthroughHostCpu"
13
+ @change-host-model-cpu="onChangeHostModelCpu"
14
+ @remove-error="onRemoveValidationError"
15
+ />
16
+ </template>
17
+
18
+ <script setup lang="ts">
19
+ import type { UI_I_HTMLSelectElement } from '~/lib/models/interfaces'
20
+ import type { UI_I_ErrorValidationField } from '~/lib/models/store/interfaces'
21
+ import type { UI_I_OptionItem } from '~/components/atoms/lib/models/interfaces'
22
+
23
+ const passthroughHostCpu = defineModel<boolean>('passthroughHostCpu', {
24
+ required: true,
25
+ })
26
+ const hostModelCpu = defineModel<boolean>('hostModelCpu', {
27
+ required: true,
28
+ })
29
+ const cpuModel = defineModel<string>('cpuModel', {
30
+ required: true,
31
+ })
32
+ const selectedTooltip = defineModel<string>('selectedTooltip', {
33
+ required: true,
34
+ })
35
+
36
+ const props = defineProps<{
37
+ cpuModels: UI_I_OptionItem[]
38
+ isEdit: boolean
39
+ disabled: boolean
40
+ errorValidationFields: UI_I_ErrorValidationField[]
41
+ }>()
42
+ const emits = defineEmits<{
43
+ (event: 'remove-error-by-title', value: string): void
44
+ }>()
45
+
46
+ const { $store }: any = useNuxtApp()
47
+ const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
48
+ const currentComponent = computed(() =>
49
+ isNewView.value
50
+ ? defineAsyncComponent(() => import('./New.vue'))
51
+ : defineAsyncComponent(() => import('./Old.vue'))
52
+ )
53
+
54
+ const cpuModelOptions = ref<UI_I_OptionItem[]>(props.cpuModels)
55
+ watch(
56
+ () => props.cpuModels,
57
+ (newValue) => {
58
+ cpuModelOptions.value = [...newValue]
59
+ }
60
+ )
61
+
62
+ const onChangeCpuModel = (event: UI_I_HTMLSelectElement): void => {
63
+ cpuModel.value = event.target.value
64
+ passthroughHostCpu.value = false
65
+ hostModelCpu.value = false
66
+ }
67
+ const onChangePassthroughHostCpu = (event: Event): void => {
68
+ const target = event.target as HTMLInputElement
69
+ cpuModel.value = target.checked ? '' : props.cpuModels?.[0].value
70
+ hostModelCpu.value = false
71
+ }
72
+ const onChangeHostModelCpu = (event: Event): void => {
73
+ const target = event.target as HTMLInputElement
74
+ cpuModel.value = target.checked ? '' : props.cpuModels?.[0].value
75
+ passthroughHostCpu.value = false
76
+ }
77
+
78
+ const typeError = 'cpu.model'
79
+
80
+ const apiError = computed<string>(() => {
81
+ return (
82
+ props.errorValidationFields?.find((message) => message.field === typeError)
83
+ ?.error_message || ''
84
+ )
85
+ })
86
+
87
+ const onRemoveValidationError = (): void => {
88
+ emits('remove-error-by-title', typeError)
89
+ }
90
+ </script>
91
+
92
+ <style scoped lang="scss"></style>