bfg-common 1.5.443 → 1.5.444

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 (138) 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 +1 -0
  7. package/assets/localization/local_en.json +3 -2
  8. package/assets/localization/local_hy.json +1 -0
  9. package/assets/localization/local_kk.json +1 -0
  10. package/assets/localization/local_ru.json +1 -0
  11. package/assets/localization/local_zh.json +1 -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 +1694 -1694
  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/browse/blocks/Container.vue +235 -235
  20. package/components/common/browse/blocks/contents/filesNew/Skeleton.vue +18 -18
  21. package/components/common/browse/blocks/lib/models/types.ts +1 -1
  22. package/components/common/browse/lib/models/interfaces.ts +5 -5
  23. package/components/common/context/lib/models/interfaces.ts +33 -33
  24. package/components/common/countdownTimer/CountdownTimer.vue +15 -26
  25. package/components/common/countdownTimer/CountdownTimerNew.vue +53 -0
  26. package/components/common/countdownTimer/CountdownTimerOld.vue +33 -0
  27. package/components/common/diagramMain/lib/config/initial.ts +50 -50
  28. package/components/common/diagramMain/lib/models/types.ts +21 -21
  29. package/components/common/diagramMain/lib/utils/utils.ts +331 -331
  30. package/components/common/diagramMain/modals/lib/config/networkModal.ts +398 -398
  31. package/components/common/diagramMain/modals/lib/config/portModal.ts +251 -251
  32. package/components/common/diagramMain/modals/lib/config/vCenterModal.ts +48 -48
  33. package/components/common/diagramMain/modals/lib/config/vmKernelAdapter.ts +90 -90
  34. package/components/common/diagramMain/modals/lib/mappers/mappers.ts +87 -87
  35. package/components/common/diagramMain/modals/lib/utils/index.ts +24 -24
  36. package/components/common/diagramMain/modals/migrateVmkernelAdapter/validations/common.ts +14 -14
  37. package/components/common/diagramMain/modals/migrateVmkernelAdapter/validations/validations.ts +19 -19
  38. package/components/common/diagramMain/port/Port.vue +580 -580
  39. package/components/common/diagramMain/port/Ports.vue +47 -47
  40. package/components/common/layout/theHeader/helpMenu/About.vue +82 -82
  41. package/components/common/layout/theHeader/modals/{Reconnect.vue → reconnect/Reconnect.vue} +43 -56
  42. package/components/common/layout/theHeader/modals/reconnect/ReconnectNew.vue +74 -0
  43. package/components/common/layout/theHeader/modals/reconnect/ReconnectOld.vue +67 -0
  44. package/components/common/pages/backups/Backups.vue +102 -102
  45. package/components/common/pages/backups/DetailView.vue +52 -52
  46. package/components/common/pages/backups/lib/models/interfaces.ts +36 -36
  47. package/components/common/pages/backups/modals/createBackup/configuration/Configuration.vue +29 -29
  48. package/components/common/pages/backups/modals/createBackup/configuration/backupWindow/BackupWindow.vue +26 -26
  49. package/components/common/pages/backups/modals/createBackup/configuration/maxBandwidth/MaxBandwidth.vue +66 -66
  50. package/components/common/pages/backups/modals/createBackup/configuration/maxBandwidth/lib/config/options.ts +6 -6
  51. package/components/common/pages/backups/modals/createBackup/configuration/strategy/Strategy.vue +35 -35
  52. package/components/common/pages/backups/modals/createBackup/datastores/Datastores.vue +59 -59
  53. package/components/common/pages/backups/modals/createBackup/datastores/tableView/TableView.vue +95 -95
  54. package/components/common/pages/backups/modals/createBackup/disks/tableView/lib/config/table.ts +117 -117
  55. package/components/common/pages/backups/modals/createBackup/general/General.vue +135 -135
  56. package/components/common/pages/backups/modals/createBackup/lib/config/strategyOptions.ts +12 -12
  57. package/components/common/pages/backups/modals/lib/config/restore.ts +115 -115
  58. package/components/common/pages/backups/modals/lib/models/interfaces.ts +186 -186
  59. package/components/common/pages/backups/modals/restore/disks/Disks.vue +27 -27
  60. package/components/common/pages/backups/modals/restore/disks/tableView/TableView.vue +102 -102
  61. package/components/common/pages/backups/modals/restore/disks/tableView/lib/config/table.ts +117 -117
  62. package/components/common/pages/backups/modals/restore/name/Name.vue +160 -160
  63. package/components/common/pages/backups/modals/restore/name/lib/models/interfaces.ts +6 -6
  64. package/components/common/pages/backups/modals/restore/networks/Networks.vue +67 -67
  65. package/components/common/pages/backups/modals/restore/networks/table/Table.vue +214 -214
  66. package/components/common/pages/backups/modals/restore/types/lib/config/typeOptions.ts +25 -25
  67. package/components/common/pages/backups/tools/Tools.vue +75 -75
  68. package/components/common/pages/backups/tools/lib/config/tabs.ts +36 -36
  69. package/components/common/pages/home/headline/HeadlineOld.vue +42 -42
  70. package/components/common/pages/home/lib/models/interfaces.ts +48 -48
  71. package/components/common/pages/home/widgets/hosts/Hosts.vue +27 -27
  72. package/components/common/pages/home/widgets/hosts/lib/config/items.ts +23 -23
  73. package/components/common/pages/home/widgets/vms/VmsOld.vue +35 -35
  74. package/components/common/pages/home/widgets/vms/lib/config/items.ts +19 -19
  75. package/components/common/pages/scheduledTasks/lib/utils/utils.ts +84 -84
  76. package/components/common/readyToComplete/ReadyToComplete.vue +17 -17
  77. package/components/common/select/radio/RadioGroup.vue +137 -137
  78. package/components/common/spiceConsole/Drawer.vue +381 -381
  79. package/components/common/spiceConsole/SpiceConsole.vue +127 -127
  80. package/components/common/spiceConsole/lib/models/interfaces.ts +5 -5
  81. package/components/common/tools/Actions.vue +207 -207
  82. package/components/common/treeView/TreeView.vue +52 -52
  83. package/components/common/vm/actions/add/folderTreeView/FolderTreeView.vue +72 -72
  84. package/components/common/vm/actions/add/folderTreeView/New.vue +40 -40
  85. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/Media.vue +25 -25
  86. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/MediaNew.vue +78 -78
  87. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/MediaOld.vue +50 -50
  88. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/Cpu.vue +2 -0
  89. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/shares/Shares.vue +140 -140
  90. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/shares/lib/config/options.ts +28 -28
  91. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/location/Location.vue +154 -154
  92. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/location/LocationOld.vue +85 -85
  93. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/location/new/table/Table.vue +99 -99
  94. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/macAddress/MacAddress.vue +119 -119
  95. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/directPathIo/DirectPathIoNew.vue +66 -66
  96. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/directPathIo/DirectPathIoOld.vue +62 -62
  97. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIo.vue +31 -31
  98. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIoOld.vue +76 -76
  99. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/Note.vue +15 -15
  100. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/NoteNew.vue +42 -42
  101. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/NoteOld.vue +30 -30
  102. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/nvidiaGrid/NvidiaGridOld.vue +84 -84
  103. package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/Other.vue +16 -16
  104. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/numberDisplays/NumberDisplays.vue +53 -53
  105. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/delay/Delay.vue +32 -32
  106. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/firmware/Firmware.vue +60 -60
  107. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/Order.vue +174 -174
  108. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/keymap/Keymap.vue +32 -32
  109. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/keymap/KeymapOld.vue +44 -44
  110. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/password/Password.vue +103 -103
  111. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirection.vue +28 -28
  112. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirectionOld.vue +44 -44
  113. package/components/common/vm/actions/common/select/compatibility/Old.vue +107 -107
  114. package/components/common/vm/actions/common/select/computeResource/ComputeResource.vue +143 -143
  115. package/components/common/vm/actions/common/select/computeResource/New.vue +184 -184
  116. package/components/common/vm/actions/common/select/computeResource/treeView/TreeView.vue +131 -131
  117. package/components/common/vm/actions/common/select/createType/CreateType.vue +38 -38
  118. package/components/common/vm/actions/common/select/createType/lib/models/interfaces.ts +5 -5
  119. package/components/common/vm/actions/common/select/os/Old.vue +152 -152
  120. package/components/common/vm/actions/common/select/os/Os.vue +139 -139
  121. package/components/common/vm/actions/common/select/storage/new/New.vue +320 -320
  122. package/components/common/vm/actions/common/select/storage/new/lib/models/interfaces.ts +5 -5
  123. package/components/common/vm/actions/common/select/storage/new/lib/utils/utils.ts +21 -21
  124. package/components/common/vm/actions/common/select/template/old/Old.vue +50 -50
  125. package/components/common/vm/actions/editSettings/new/Skeleton.vue +88 -88
  126. package/components/common/wizards/datastore/add/steps/typeMode/lib/config/typeOptions.ts +43 -43
  127. package/components/common/wizards/vm/migrate/select/network/Network.vue +103 -103
  128. package/components/common/wizards/vm/migrate/select/type/lib/config/typeOptions.ts +45 -45
  129. package/composables/productNameLocal.ts +30 -30
  130. package/composables/useAppVersion.ts +21 -21
  131. package/package.json +1 -1
  132. package/plugins/date.ts +233 -233
  133. package/plugins/panelStates.ts +70 -70
  134. package/plugins/text.ts +59 -59
  135. package/public/spice-console/lib/images/bitmap.js +203 -203
  136. package/public/spice-console/network/spicechannel.js +390 -390
  137. package/store/main/mutations.ts +7 -7
  138. package/store/main/state.ts +7 -7
@@ -1,140 +1,140 @@
1
- <template>
2
- <common-vm-actions-common-customize-hardware-virtual-hardware-cpu-shares-new
3
- v-if="isNewView"
4
- v-model:shares-type="sharesTypeLocal"
5
- v-model:shares="sharesLocal"
6
- :disabled="props.disabled"
7
- :shares-type-options="sharesTypeOptions"
8
- :shares-errors-texts="sharesLocalAndApiErrorsTexts"
9
- :shares-options="sharesOptions"
10
- :is-disabled-shares="isDisabledShares"
11
- @change-shares-type="onChangeSharesType"
12
- @remove-error="onRemoveValidationError"
13
- />
14
- <common-vm-actions-common-customize-hardware-virtual-hardware-cpu-shares-old
15
- v-else
16
- v-model:shares-type="sharesTypeLocal"
17
- v-model:shares="sharesLocal"
18
- :disabled="props.disabled"
19
- :shares-type-options="sharesTypeOptions"
20
- :shares-errors-texts="sharesLocalAndApiErrorsTexts"
21
- :shares-options="sharesOptions"
22
- :is-disabled-shares="isDisabledShares"
23
- @change-shares-type="onChangeSharesType"
24
- @remove-error="onRemoveValidationError"
25
- />
26
- </template>
27
-
28
- <script setup lang="ts">
29
- import type {
30
- UI_I_Localization,
31
- UI_I_HTMLSelectElement,
32
- } from '~/lib/models/interfaces'
33
- import type { UI_I_ErrorValidationField } from '~/lib/models/store/interfaces'
34
- import type { UI_I_OptionItem } from '~/components/atoms/lib/models/interfaces'
35
- import {
36
- sharesTypeOptionsFunc,
37
- sharesOptionsFunc,
38
- } from '~/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/shares/lib/config/options'
39
-
40
- const props = defineProps<{
41
- shares: string
42
- sharesType: string
43
- disabled: boolean
44
- errorValidationFields: UI_I_ErrorValidationField<string>[]
45
- }>()
46
- const emits = defineEmits<{
47
- (event: 'update:shares', value: string): void
48
- (event: 'update:shares-type', value: string): void
49
- (event: 'invalid', value: boolean): void
50
- (event: 'remove-error-by-title', value: string): void
51
- }>()
52
-
53
- const { $store }: any = useNuxtApp()
54
- const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
55
-
56
- const localization = computed<UI_I_Localization>(() => useLocal())
57
-
58
- const apiErrorLocal = computed<string>(() => {
59
- return (
60
- props.errorValidationFields?.find(
61
- (message) => message.field === 'cpu.shares'
62
- )?.error_message || ''
63
- )
64
- })
65
-
66
- const maxShares = 262_144
67
- const sharesOptions = computed<UI_I_OptionItem[]>(() => {
68
- return sharesOptionsFunc(localization.value, maxShares)
69
- })
70
-
71
- const sharesTypeOptions = ref<UI_I_OptionItem[]>(
72
- sharesTypeOptionsFunc(localization.value)
73
- )
74
-
75
- const isDisabledShares = computed<boolean>(
76
- () => sharesTypeLocal.value !== '2' || props.disabled
77
- )
78
- const sharesLocal = computed<string>({
79
- get() {
80
- return props.shares
81
- },
82
- set(newValue) {
83
- emits('update:shares', newValue)
84
- },
85
- })
86
- const sharesTypeLocal = computed<string>({
87
- get() {
88
- return props.sharesType
89
- },
90
- set(newValue) {
91
- emits('update:shares-type', newValue)
92
- },
93
- })
94
- const onChangeSharesType = (event: UI_I_HTMLSelectElement): void => {
95
- const value = event.target.value
96
- if (value === '2') return
97
- sharesLocal.value = event.target.value
98
- }
99
-
100
- const sharesErrorLocalText = computed<string>(() => {
101
- if (+sharesLocal.value < 2 || +sharesLocal.value > maxShares) {
102
- return localization.value.common.sharesMustBe
103
- .replace('{0}', '2')
104
- .replace('{1}', maxShares + '')
105
- }
106
-
107
- const validValue = /^\d+(\.\d+)?$/.test(sharesLocal.value + '')
108
- if (!validValue) {
109
- return localization.value.common.inputContainsInvalidCharacters
110
- }
111
-
112
- return ''
113
- })
114
- const sharesInvalid = computed<boolean>(() => !!sharesErrorLocalText.value)
115
- watch(
116
- sharesInvalid,
117
- (newValue) => {
118
- emits('invalid', newValue)
119
- },
120
- { immediate: true }
121
- )
122
-
123
- const sharesLocalAndApiErrorsTexts = computed<string>(() => {
124
- const localError = sharesErrorLocalText.value
125
- const apiError = apiErrorLocal.value
126
-
127
- let result = ''
128
- if (localError && !apiError) result = localError
129
- if (localError && apiError) result = localError + ', ' + apiError
130
- if (!localError) result = apiError
131
-
132
- return result
133
- })
134
-
135
- const onRemoveValidationError = (): void => {
136
- emits('remove-error-by-title', 'cpu.shares')
137
- }
138
- </script>
139
-
140
- <style scoped></style>
1
+ <template>
2
+ <common-vm-actions-common-customize-hardware-virtual-hardware-cpu-shares-new
3
+ v-if="isNewView"
4
+ v-model:shares-type="sharesTypeLocal"
5
+ v-model:shares="sharesLocal"
6
+ :disabled="props.disabled"
7
+ :shares-type-options="sharesTypeOptions"
8
+ :shares-errors-texts="sharesLocalAndApiErrorsTexts"
9
+ :shares-options="sharesOptions"
10
+ :is-disabled-shares="isDisabledShares"
11
+ @change-shares-type="onChangeSharesType"
12
+ @remove-error="onRemoveValidationError"
13
+ />
14
+ <common-vm-actions-common-customize-hardware-virtual-hardware-cpu-shares-old
15
+ v-else
16
+ v-model:shares-type="sharesTypeLocal"
17
+ v-model:shares="sharesLocal"
18
+ :disabled="props.disabled"
19
+ :shares-type-options="sharesTypeOptions"
20
+ :shares-errors-texts="sharesLocalAndApiErrorsTexts"
21
+ :shares-options="sharesOptions"
22
+ :is-disabled-shares="isDisabledShares"
23
+ @change-shares-type="onChangeSharesType"
24
+ @remove-error="onRemoveValidationError"
25
+ />
26
+ </template>
27
+
28
+ <script setup lang="ts">
29
+ import type {
30
+ UI_I_Localization,
31
+ UI_I_HTMLSelectElement,
32
+ } from '~/lib/models/interfaces'
33
+ import type { UI_I_ErrorValidationField } from '~/lib/models/store/interfaces'
34
+ import type { UI_I_OptionItem } from '~/components/atoms/lib/models/interfaces'
35
+ import {
36
+ sharesTypeOptionsFunc,
37
+ sharesOptionsFunc,
38
+ } from '~/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/shares/lib/config/options'
39
+
40
+ const props = defineProps<{
41
+ shares: string
42
+ sharesType: string
43
+ disabled: boolean
44
+ errorValidationFields: UI_I_ErrorValidationField<string>[]
45
+ }>()
46
+ const emits = defineEmits<{
47
+ (event: 'update:shares', value: string): void
48
+ (event: 'update:shares-type', value: string): void
49
+ (event: 'invalid', value: boolean): void
50
+ (event: 'remove-error-by-title', value: string): void
51
+ }>()
52
+
53
+ const { $store }: any = useNuxtApp()
54
+ const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
55
+
56
+ const localization = computed<UI_I_Localization>(() => useLocal())
57
+
58
+ const apiErrorLocal = computed<string>(() => {
59
+ return (
60
+ props.errorValidationFields?.find(
61
+ (message) => message.field === 'cpu.shares'
62
+ )?.error_message || ''
63
+ )
64
+ })
65
+
66
+ const maxShares = 262_144
67
+ const sharesOptions = computed<UI_I_OptionItem[]>(() => {
68
+ return sharesOptionsFunc(localization.value, maxShares)
69
+ })
70
+
71
+ const sharesTypeOptions = ref<UI_I_OptionItem[]>(
72
+ sharesTypeOptionsFunc(localization.value)
73
+ )
74
+
75
+ const isDisabledShares = computed<boolean>(
76
+ () => sharesTypeLocal.value !== '2' || props.disabled
77
+ )
78
+ const sharesLocal = computed<string>({
79
+ get() {
80
+ return props.shares
81
+ },
82
+ set(newValue) {
83
+ emits('update:shares', newValue)
84
+ },
85
+ })
86
+ const sharesTypeLocal = computed<string>({
87
+ get() {
88
+ return props.sharesType
89
+ },
90
+ set(newValue) {
91
+ emits('update:shares-type', newValue)
92
+ },
93
+ })
94
+ const onChangeSharesType = (event: UI_I_HTMLSelectElement): void => {
95
+ const value = event.target.value
96
+ if (value === '2') return
97
+ sharesLocal.value = event.target.value
98
+ }
99
+
100
+ const sharesErrorLocalText = computed<string>(() => {
101
+ if (+sharesLocal.value < 2 || +sharesLocal.value > maxShares) {
102
+ return localization.value.common.sharesMustBe
103
+ .replace('{0}', '2')
104
+ .replace('{1}', maxShares + '')
105
+ }
106
+
107
+ const validValue = /^\d+(\.\d+)?$/.test(sharesLocal.value + '')
108
+ if (!validValue) {
109
+ return localization.value.common.inputContainsInvalidCharacters
110
+ }
111
+
112
+ return ''
113
+ })
114
+ const sharesInvalid = computed<boolean>(() => !!sharesErrorLocalText.value)
115
+ watch(
116
+ sharesInvalid,
117
+ (newValue) => {
118
+ emits('invalid', newValue)
119
+ },
120
+ { immediate: true }
121
+ )
122
+
123
+ const sharesLocalAndApiErrorsTexts = computed<string>(() => {
124
+ const localError = sharesErrorLocalText.value
125
+ const apiError = apiErrorLocal.value
126
+
127
+ let result = ''
128
+ if (localError && !apiError) result = localError
129
+ if (localError && apiError) result = localError + ', ' + apiError
130
+ if (!localError) result = apiError
131
+
132
+ return result
133
+ })
134
+
135
+ const onRemoveValidationError = (): void => {
136
+ emits('remove-error-by-title', 'cpu.shares')
137
+ }
138
+ </script>
139
+
140
+ <style scoped></style>
@@ -1,28 +1,28 @@
1
- import type { UI_I_Localization } from '~/lib/models/interfaces'
2
- import type { UI_I_OptionItem } from '~/components/atoms/lib/models/interfaces'
3
-
4
- export const sharesOptionsFunc = (
5
- localization: UI_I_Localization,
6
- maxShares: number
7
- ): UI_I_OptionItem[] => {
8
- return [
9
- {
10
- text: `${localization.common.minimum} 2`,
11
- value: 2,
12
- },
13
- {
14
- text: `${localization.common.maximum} ${maxShares}`,
15
- value: maxShares,
16
- },
17
- ]
18
- }
19
- export const sharesTypeOptionsFunc = (
20
- localization: UI_I_Localization
21
- ): UI_I_OptionItem[] => {
22
- return [
23
- { text: localization.common.low, value: '1000' },
24
- { text: localization.common.normal, value: '2000' },
25
- { text: localization.common.high, value: '4000' },
26
- { text: localization.common.custom, value: '2' },
27
- ]
28
- }
1
+ import type { UI_I_Localization } from '~/lib/models/interfaces'
2
+ import type { UI_I_OptionItem } from '~/components/atoms/lib/models/interfaces'
3
+
4
+ export const sharesOptionsFunc = (
5
+ localization: UI_I_Localization,
6
+ maxShares: number
7
+ ): UI_I_OptionItem[] => {
8
+ return [
9
+ {
10
+ text: `${localization.common.minimum} 2`,
11
+ value: 2,
12
+ },
13
+ {
14
+ text: `${localization.common.maximum} ${maxShares}`,
15
+ value: maxShares,
16
+ },
17
+ ]
18
+ }
19
+ export const sharesTypeOptionsFunc = (
20
+ localization: UI_I_Localization
21
+ ): UI_I_OptionItem[] => {
22
+ return [
23
+ { text: localization.common.low, value: '1000' },
24
+ { text: localization.common.normal, value: '2000' },
25
+ { text: localization.common.high, value: '4000' },
26
+ { text: localization.common.custom, value: '2' },
27
+ ]
28
+ }
@@ -1,154 +1,154 @@
1
- <template>
2
- <common-vm-actions-common-customize-hardware-virtual-hardware-new-hard-disk-location-new
3
- v-if="isNewView"
4
- v-model:selected-location="selectedLocation"
5
- :index="props.index"
6
- :datastore="props.datastore"
7
- :is-datastore-loading="props.isDatastoreLoading"
8
- :get-datastore-table-func="props.getDatastoreTableFunc"
9
- :api-error="apiError"
10
- :location-options="locationOptions"
11
- :storage-modal-is-show="storageModalIsShow"
12
- :storage-submit="storageSubmit"
13
- @change-location="onChangeLocation"
14
- @change-storage="onChangeStorage"
15
- @hide-storage-modal="onHideStorageModal"
16
- @submit-storage-modal="onSubmitStorageModal"
17
- @remove-validation-error="onRemoveValidationError"
18
- />
19
- <common-vm-actions-common-customize-hardware-virtual-hardware-new-hard-disk-location-old
20
- v-else
21
- v-model:selected-location="selectedLocation"
22
- :index="props.index"
23
- :datastore="props.datastore"
24
- :is-datastore-loading="props.isDatastoreLoading"
25
- :get-datastore-table-func="props.getDatastoreTableFunc"
26
- :api-error="apiError"
27
- :location-options="locationOptions"
28
- :storage-modal-is-show="storageModalIsShow"
29
- :storage-submit="storageSubmit"
30
- @change-location="onChangeLocation"
31
- @change-storage="onChangeStorage"
32
- @hide-storage-modal="onHideStorageModal"
33
- @submit-storage-modal="onSubmitStorageModal"
34
- @remove-validation-error="onRemoveValidationError"
35
- />
36
- </template>
37
-
38
- <script setup lang="ts">
39
- import type {
40
- UI_I_HTMLSelectElement,
41
- UI_I_Localization,
42
- } from '~/lib/models/interfaces'
43
- import type { UI_I_DatastoreTableItem } from '~/lib/models/store/storage/interfaces'
44
- import type { UI_I_ErrorValidationField } from '~/lib/models/store/interfaces'
45
- import type { UI_I_TablePayload } from '~/lib/models/table/interfaces'
46
- import type { UI_I_OptionItem } from '~/components/atoms/lib/models/interfaces'
47
-
48
- const props = defineProps<{
49
- location: UI_I_DatastoreTableItem | null
50
- index: number
51
- errorValidationFields: UI_I_ErrorValidationField[]
52
- datastore: UI_I_DatastoreTableItem[]
53
- isDatastoreLoading: boolean
54
- getDatastoreTableFunc: (payload: UI_I_TablePayload) => Promise<void>
55
- }>()
56
- const emits = defineEmits<{
57
- (event: 'change', value: UI_I_DatastoreTableItem): void
58
- (event: 'remove-error-by-title', value: string): void
59
- }>()
60
-
61
- const { $store }: any = useNuxtApp()
62
- const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
63
-
64
- const localization = computed<UI_I_Localization>(() => useLocal())
65
-
66
- const selectedLocation = ref<string>(props.location?.id || '')
67
-
68
- const storages = ref<UI_I_DatastoreTableItem[]>([])
69
- const addStorage = (storage: UI_I_DatastoreTableItem): void => {
70
- const hasStorage = storages.value.some((item) => item.id === storage.id)
71
- if (hasStorage) {
72
- return
73
- }
74
-
75
- storages.value.push(storage)
76
- }
77
- const locationOptions = ref<UI_I_OptionItem[]>([])
78
-
79
- watch(
80
- () => props.location,
81
- (newValue) => {
82
- if (locationOptions.value.length || !newValue) {
83
- return
84
- }
85
-
86
- locationOptions.value = [
87
- {
88
- text: localization.value.common.storeWithVirtualMachine,
89
- value: newValue.id,
90
- },
91
- { text: `${localization.value.common.browse}...`, value: -1 },
92
- ]
93
- selectedLocation.value = newValue.id
94
- storages.value.push(newValue)
95
- addStorage(newValue)
96
- },
97
- { immediate: true }
98
- )
99
-
100
- const storageSubmit = ref<null | Function>(null)
101
- const onSubmitStorageModal = (): void => {
102
- storageSubmit.value = (_isValid: boolean): void => {
103
- storageSubmit.value = null
104
- }
105
- }
106
- const storageModalIsShow = ref<boolean>(false)
107
- const onHideStorageModal = (): void => {
108
- storageModalIsShow.value = false
109
- if (selectedLocation.value === -1)
110
- selectedLocation.value = locationOptions.value[0].value
111
- }
112
- const onChangeStorage = (storage: UI_I_DatastoreTableItem): void => {
113
- locationOptions.value = [
114
- locationOptions.value[0],
115
- { text: storage.name, value: storage.id },
116
- // @ts-ignore
117
- locationOptions.value.at(-1),
118
- ]
119
-
120
- selectedLocation.value = storage.id
121
- emits('change', storage)
122
- addStorage(storage)
123
- onHideStorageModal()
124
- }
125
- const onChangeLocation = (event: UI_I_HTMLSelectElement): void => {
126
- const value = +event.target.value
127
- if (value === -1) {
128
- storageModalIsShow.value = true
129
- return
130
- }
131
-
132
- selectedLocation.value = event.target.value
133
- const storage = storages.value.find((item) => item.id === event.target.value)
134
- storage && emits('change', storage)
135
- }
136
-
137
- const typeError = computed<string>(
138
- () => `disk_devices[${props.index}].location`
139
- )
140
-
141
- const apiError = computed<string>(() => {
142
- return (
143
- props.errorValidationFields?.find(
144
- (message) => message.field === typeError.value
145
- )?.error_message || ''
146
- )
147
- })
148
-
149
- const onRemoveValidationError = (): void => {
150
- emits('remove-error-by-title', typeError.value)
151
- }
152
- </script>
153
-
154
- <style scoped lang="scss"></style>
1
+ <template>
2
+ <common-vm-actions-common-customize-hardware-virtual-hardware-new-hard-disk-location-new
3
+ v-if="isNewView"
4
+ v-model:selected-location="selectedLocation"
5
+ :index="props.index"
6
+ :datastore="props.datastore"
7
+ :is-datastore-loading="props.isDatastoreLoading"
8
+ :get-datastore-table-func="props.getDatastoreTableFunc"
9
+ :api-error="apiError"
10
+ :location-options="locationOptions"
11
+ :storage-modal-is-show="storageModalIsShow"
12
+ :storage-submit="storageSubmit"
13
+ @change-location="onChangeLocation"
14
+ @change-storage="onChangeStorage"
15
+ @hide-storage-modal="onHideStorageModal"
16
+ @submit-storage-modal="onSubmitStorageModal"
17
+ @remove-validation-error="onRemoveValidationError"
18
+ />
19
+ <common-vm-actions-common-customize-hardware-virtual-hardware-new-hard-disk-location-old
20
+ v-else
21
+ v-model:selected-location="selectedLocation"
22
+ :index="props.index"
23
+ :datastore="props.datastore"
24
+ :is-datastore-loading="props.isDatastoreLoading"
25
+ :get-datastore-table-func="props.getDatastoreTableFunc"
26
+ :api-error="apiError"
27
+ :location-options="locationOptions"
28
+ :storage-modal-is-show="storageModalIsShow"
29
+ :storage-submit="storageSubmit"
30
+ @change-location="onChangeLocation"
31
+ @change-storage="onChangeStorage"
32
+ @hide-storage-modal="onHideStorageModal"
33
+ @submit-storage-modal="onSubmitStorageModal"
34
+ @remove-validation-error="onRemoveValidationError"
35
+ />
36
+ </template>
37
+
38
+ <script setup lang="ts">
39
+ import type {
40
+ UI_I_HTMLSelectElement,
41
+ UI_I_Localization,
42
+ } from '~/lib/models/interfaces'
43
+ import type { UI_I_DatastoreTableItem } from '~/lib/models/store/storage/interfaces'
44
+ import type { UI_I_ErrorValidationField } from '~/lib/models/store/interfaces'
45
+ import type { UI_I_TablePayload } from '~/lib/models/table/interfaces'
46
+ import type { UI_I_OptionItem } from '~/components/atoms/lib/models/interfaces'
47
+
48
+ const props = defineProps<{
49
+ location: UI_I_DatastoreTableItem | null
50
+ index: number
51
+ errorValidationFields: UI_I_ErrorValidationField[]
52
+ datastore: UI_I_DatastoreTableItem[]
53
+ isDatastoreLoading: boolean
54
+ getDatastoreTableFunc: (payload: UI_I_TablePayload) => Promise<void>
55
+ }>()
56
+ const emits = defineEmits<{
57
+ (event: 'change', value: UI_I_DatastoreTableItem): void
58
+ (event: 'remove-error-by-title', value: string): void
59
+ }>()
60
+
61
+ const { $store }: any = useNuxtApp()
62
+ const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
63
+
64
+ const localization = computed<UI_I_Localization>(() => useLocal())
65
+
66
+ const selectedLocation = ref<string>(props.location?.id || '')
67
+
68
+ const storages = ref<UI_I_DatastoreTableItem[]>([])
69
+ const addStorage = (storage: UI_I_DatastoreTableItem): void => {
70
+ const hasStorage = storages.value.some((item) => item.id === storage.id)
71
+ if (hasStorage) {
72
+ return
73
+ }
74
+
75
+ storages.value.push(storage)
76
+ }
77
+ const locationOptions = ref<UI_I_OptionItem[]>([])
78
+
79
+ watch(
80
+ () => props.location,
81
+ (newValue) => {
82
+ if (locationOptions.value.length || !newValue) {
83
+ return
84
+ }
85
+
86
+ locationOptions.value = [
87
+ {
88
+ text: localization.value.common.storeWithVirtualMachine,
89
+ value: newValue.id,
90
+ },
91
+ { text: `${localization.value.common.browse}...`, value: -1 },
92
+ ]
93
+ selectedLocation.value = newValue.id
94
+ storages.value.push(newValue)
95
+ addStorage(newValue)
96
+ },
97
+ { immediate: true }
98
+ )
99
+
100
+ const storageSubmit = ref<null | Function>(null)
101
+ const onSubmitStorageModal = (): void => {
102
+ storageSubmit.value = (_isValid: boolean): void => {
103
+ storageSubmit.value = null
104
+ }
105
+ }
106
+ const storageModalIsShow = ref<boolean>(false)
107
+ const onHideStorageModal = (): void => {
108
+ storageModalIsShow.value = false
109
+ if (selectedLocation.value === -1)
110
+ selectedLocation.value = locationOptions.value[0].value
111
+ }
112
+ const onChangeStorage = (storage: UI_I_DatastoreTableItem): void => {
113
+ locationOptions.value = [
114
+ locationOptions.value[0],
115
+ { text: storage.name, value: storage.id },
116
+ // @ts-ignore
117
+ locationOptions.value.at(-1),
118
+ ]
119
+
120
+ selectedLocation.value = storage.id
121
+ emits('change', storage)
122
+ addStorage(storage)
123
+ onHideStorageModal()
124
+ }
125
+ const onChangeLocation = (event: UI_I_HTMLSelectElement): void => {
126
+ const value = +event.target.value
127
+ if (value === -1) {
128
+ storageModalIsShow.value = true
129
+ return
130
+ }
131
+
132
+ selectedLocation.value = event.target.value
133
+ const storage = storages.value.find((item) => item.id === event.target.value)
134
+ storage && emits('change', storage)
135
+ }
136
+
137
+ const typeError = computed<string>(
138
+ () => `disk_devices[${props.index}].location`
139
+ )
140
+
141
+ const apiError = computed<string>(() => {
142
+ return (
143
+ props.errorValidationFields?.find(
144
+ (message) => message.field === typeError.value
145
+ )?.error_message || ''
146
+ )
147
+ })
148
+
149
+ const onRemoveValidationError = (): void => {
150
+ emits('remove-error-by-title', typeError.value)
151
+ }
152
+ </script>
153
+
154
+ <style scoped lang="scss"></style>