bfg-common 1.5.11 → 1.5.12

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 (165) hide show
  1. package/assets/localization/local_be.json +3 -1
  2. package/assets/localization/local_en.json +3 -1
  3. package/assets/localization/local_hy.json +3 -1
  4. package/assets/localization/local_kk.json +3 -1
  5. package/assets/localization/local_ru.json +3 -1
  6. package/assets/localization/local_zh.json +3 -1
  7. package/assets/scss/common/normalize.scss +361 -361
  8. package/components/atoms/TheIcon3.vue +50 -50
  9. package/components/atoms/autocomplete/Autocomplete.vue +301 -301
  10. package/components/atoms/collapse/CollapseNav.vue +165 -165
  11. package/components/atoms/dropdown/dropdown/Dropdown.vue +168 -168
  12. package/components/atoms/modal/bySteps/BySteps.vue +253 -253
  13. package/components/atoms/perPage/PerPage.vue +58 -58
  14. package/components/atoms/stack/StackBlock.vue +185 -185
  15. package/components/atoms/table/dataGrid/DataGridColumnSwitch.vue +222 -222
  16. package/components/atoms/table/dataGrid/lib/config/settingsTable.ts +94 -94
  17. package/components/atoms/table/dataGrid/lib/utils/export.ts +16 -16
  18. package/components/atoms/tabs/VerticalTabs.vue +105 -105
  19. package/components/common/accordion/Recursion.vue +222 -222
  20. package/components/common/browse/BrowseNew.vue +237 -237
  21. package/components/common/browse/BrowseOld.vue +217 -217
  22. package/components/common/browse/blocks/contents/Files.vue +37 -37
  23. package/components/common/browse/blocks/contents/FilesOld.vue +72 -72
  24. package/components/common/browse/blocks/contents/filesNew/FilesNew.vue +96 -96
  25. package/components/common/browse/blocks/contents/filesNew/Skeleton.vue +18 -18
  26. package/components/common/context/Context.vue +111 -111
  27. package/components/common/context/lib/models/interfaces.ts +31 -31
  28. package/components/common/context/recursion/Recursion.vue +87 -87
  29. package/components/common/context/recursion/RecursionNew.vue +238 -238
  30. package/components/common/context/recursion/RecursionOld.vue +228 -228
  31. package/components/common/details/DetailsItem.vue +109 -109
  32. package/components/common/diagramMain/DiagramMain.vue +897 -897
  33. package/components/common/diagramMain/Header.vue +214 -214
  34. package/components/common/graph/Graph.vue +104 -104
  35. package/components/common/layout/theHeader/helpMenu/About.vue +82 -82
  36. package/components/common/layout/theHeader/helpMenu/aboutNew/AboutNew.vue +103 -103
  37. package/components/common/layout/theHeader/userMenu/modals/preferences/view/ViewOld.vue +112 -112
  38. package/components/common/mainNavigationPanel/MainNavigationPanelNew.vue +335 -335
  39. package/components/common/mainNavigationPanel/MainNavigationPanelOld.vue +310 -310
  40. package/components/common/modals/unsavedChanges/UnsavedChanges.vue +56 -56
  41. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/table/lib/config/utils.ts +1040 -1040
  42. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/timespan/object/Object.vue +294 -294
  43. package/components/common/monitor/overview/OverviewOld.vue +139 -139
  44. package/components/common/pages/home/StatusContent.vue +49 -49
  45. package/components/common/pages/home/headline/Headline.vue +45 -45
  46. package/components/common/pages/home/headline/HeadlineOld.vue +42 -42
  47. package/components/common/pages/home/lib/models/interfaces.ts +48 -48
  48. package/components/common/pages/home/widgets/Widgets.vue +49 -49
  49. package/components/common/pages/home/widgets/WidgetsNew.vue +86 -86
  50. package/components/common/pages/home/widgets/WidgetsOld.vue +34 -34
  51. package/components/common/pages/home/widgets/hosts/Hosts.vue +27 -27
  52. package/components/common/pages/home/widgets/hosts/lib/config/items.ts +23 -23
  53. package/components/common/pages/home/widgets/vms/Vms.vue +26 -26
  54. package/components/common/pages/home/widgets/vms/VmsOld.vue +35 -35
  55. package/components/common/pages/home/widgets/vms/lib/config/items.ts +19 -19
  56. package/components/common/pages/packages/Packages.vue +208 -208
  57. package/components/common/pages/shortcuts/block/BlockNew.vue +96 -96
  58. package/components/common/pages/shortcuts/block/BlockOld.vue +68 -68
  59. package/components/common/portlets/customAttributes/Portlet.vue +667 -667
  60. package/components/common/portlets/tag/Portlet.vue +433 -433
  61. package/components/common/recursionTree/RecursionTree.vue +223 -223
  62. package/components/common/select/button/ButtonDropdown.vue +108 -108
  63. package/components/common/spiceConsole/Drawer.vue +370 -370
  64. package/components/common/spiceConsole/lib/models/interfaces.ts +5 -5
  65. package/components/common/split/horizontal/HorizontalNew.vue +376 -376
  66. package/components/common/split/horizontal/HorizontalOld.vue +337 -337
  67. package/components/common/split/vertical/Vertical.vue +160 -160
  68. package/components/common/tools/Actions.vue +188 -188
  69. package/components/common/vm/actions/add/Add.vue +622 -622
  70. package/components/common/vm/actions/clone/Clone.vue +639 -639
  71. package/components/common/vm/actions/clone/lib/config/steps.ts +129 -129
  72. package/components/common/vm/actions/clone/toTemplate/ToTemplate.vue +634 -634
  73. package/components/common/vm/actions/clone/toTemplate/lib/config/steps.ts +116 -116
  74. package/components/common/vm/actions/common/customizeHardware/CustomizeHardware.vue +275 -275
  75. package/components/common/vm/actions/common/customizeHardware/CustomizeHardwareNew.vue +274 -274
  76. package/components/common/vm/actions/common/customizeHardware/CustomizeHardwareOld.vue +177 -177
  77. package/components/common/vm/actions/common/customizeHardware/virtualHardware/VirtualHardware.vue +698 -698
  78. package/components/common/vm/actions/common/customizeHardware/virtualHardware/VirtualHardwareNew.vue +410 -410
  79. package/components/common/vm/actions/common/customizeHardware/virtualHardware/VirtualHardwareOld.vue +319 -319
  80. package/components/common/vm/actions/common/customizeHardware/virtualHardware/browseView/BrowseView.vue +219 -219
  81. package/components/common/vm/actions/common/customizeHardware/virtualHardware/bus/Bus.vue +99 -99
  82. package/components/common/vm/actions/common/customizeHardware/virtualHardware/bus/BusNew.vue +117 -117
  83. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/CdDvdDrive.vue +232 -232
  84. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/CdDvdDriveNew.vue +164 -164
  85. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/CdDvdDriveOld.vue +168 -168
  86. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/Media.vue +25 -25
  87. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/MediaNew.vue +70 -70
  88. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/MediaOld.vue +50 -50
  89. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/Cpu.vue +338 -338
  90. package/components/common/vm/actions/common/customizeHardware/virtualHardware/limit/Limit.vue +220 -220
  91. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/NewHardDisk.vue +368 -368
  92. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/NewHardDiskNew.vue +232 -232
  93. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/NewHardDiskOld.vue +250 -250
  94. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/mode/ModeOld.vue +56 -56
  95. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/sharing/SharingNew.vue +44 -44
  96. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/NewNetwork.vue +286 -286
  97. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/NewNetworkNew.vue +124 -124
  98. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/location/LocationOld.vue +134 -134
  99. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/location/new/New.vue +63 -63
  100. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/location/new/table/lib/config/config.ts +95 -95
  101. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/macAddress/MacAddress.vue +119 -119
  102. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/macAddress/MacAddressNew.vue +69 -69
  103. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/macAddress/MacAddressOld.vue +83 -83
  104. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/NewPciDevice.vue +205 -205
  105. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/directPathIo/DirectPathIoNew.vue +66 -66
  106. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/directPathIo/DirectPathIoOld.vue +62 -62
  107. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIo.vue +31 -31
  108. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIoNew.vue +84 -84
  109. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIoOld.vue +76 -76
  110. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/Note.vue +15 -15
  111. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/NoteNew.vue +42 -42
  112. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/NoteOld.vue +30 -30
  113. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/nvidiaGrid/NvidiaGrid.vue +41 -41
  114. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/nvidiaGrid/NvidiaGridNew.vue +81 -81
  115. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/nvidiaGrid/NvidiaGridOld.vue +84 -84
  116. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newUsbController/NewUsbControllerNew.vue +56 -56
  117. package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/Other.vue +16 -16
  118. package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/OtherNew.vue +30 -30
  119. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/VideoCardNew.vue +104 -104
  120. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/VideoCardOld.vue +112 -112
  121. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/totalVideoMemory/TotalVideoMemoryNew.vue +54 -54
  122. package/components/common/vm/actions/common/customizeHardware/vmoptions/Vmoptions.vue +145 -145
  123. package/components/common/vm/actions/common/customizeHardware/vmoptions/VmoptionsNew.vue +102 -102
  124. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/BootOptionsNew.vue +75 -75
  125. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/delay/Delay.vue +26 -26
  126. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/firmware/Firmware.vue +57 -57
  127. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/firmware/FirmwareNew.vue +42 -42
  128. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/menu/MenuNew.vue +25 -25
  129. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/Order.vue +171 -171
  130. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/OrderNew.vue +50 -50
  131. package/components/common/vm/actions/common/customizeHardware/vmoptions/generalOptions/GeneralOptionsNew.vue +141 -141
  132. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/New.vue +140 -140
  133. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/copyPaste/CopyPasteNew.vue +30 -30
  134. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/fileTransfer/FileTransferNew.vue +30 -30
  135. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/folderSharing/FolderSharingNew.vue +30 -30
  136. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/keymap/Keymap.vue +32 -32
  137. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/keymap/KeymapNew.vue +39 -39
  138. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/password/Password.vue +103 -103
  139. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/password/PasswordNew.vue +102 -102
  140. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/password/PasswordOld.vue +94 -94
  141. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirection.vue +28 -28
  142. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirectionNew.vue +38 -38
  143. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirectionOld.vue +44 -44
  144. package/components/common/vm/actions/common/select/storage/Storage.vue +130 -130
  145. package/components/common/vm/actions/common/select/storage/StorageOld.vue +129 -129
  146. package/components/common/vm/actions/editSettings/new/Skeleton.vue +88 -88
  147. package/components/common/wizards/datastore/add/lib/config/steps.ts +138 -138
  148. package/components/common/wizards/datastore/add/nfs/accessibility/Accessibility.vue +60 -60
  149. package/components/common/wizards/network/add/steps/SelectConnectionType.vue +105 -105
  150. package/components/common/wizards/vm/migrate/Migrate.vue +302 -302
  151. package/components/common/wizards/vm/migrate/lib/config/constructDataReady.ts +220 -220
  152. package/components/common/wizards/vm/migrate/select/network/Network.vue +103 -103
  153. package/components/common/wizards/vm/migrate/select/network/table/network/Network.vue +150 -150
  154. package/components/common/wizards/vm/migrate/select/network/table/network/lib/config/advancedTable.ts +91 -91
  155. package/components/common/wizards/vm/migrate/select/priority/Priority.vue +43 -43
  156. package/composables/productNameLocal.ts +30 -30
  157. package/composables/useAppVersion.ts +21 -21
  158. package/package.json +1 -1
  159. package/plugins/date.ts +233 -233
  160. package/plugins/directives.ts +24 -24
  161. package/public/spice-console/lib/images/bitmap.js +203 -203
  162. package/public/spice-console/network/spicechannel.js +383 -383
  163. package/store/main/mutations.ts +7 -7
  164. package/store/main/state.ts +7 -7
  165. package/store/tasks/mappers/recentTasks.ts +64 -64
@@ -1,294 +1,294 @@
1
- <template>
2
- <common-monitor-advanced-tools-chart-options-modal-counters-timespan-object-object-new
3
- v-if="isNewView"
4
- v-model:selected-row="selectedRow"
5
- :table-type="tableType"
6
- :loading="props.loading"
7
- :body-items="bodyItems"
8
- />
9
- <common-monitor-advanced-tools-chart-options-modal-counters-timespan-object-object-old
10
- v-else
11
- v-model:selected-row="selectedRow"
12
- v-model:column-items="columnItems"
13
- v-model:pagination="pagination"
14
- :table-type="tableType"
15
- :loading="props.loading"
16
- :head-items="headItems"
17
- :body-items="bodyItems"
18
- />
19
- </template>
20
-
21
- <script setup lang="ts">
22
- import type {
23
- UI_I_HeadItem,
24
- UI_I_BodyItem,
25
- UI_I_ColumnKey,
26
- } from '~/components/atoms/table/dataGrid/lib/models/interfaces'
27
- import type { UI_I_Localization } from '~/lib/models/interfaces'
28
- import type { UI_I_Pagination } from '~/lib/models/table/interfaces'
29
- import type { UI_I_AdvancedTargetObject } from '~/components/common/monitor/advanced/tools/chartOptionsModal/counters/table/lib/models/interfaces'
30
- import type { UI_I_ObjectItem } from '~/components/common/monitor/advanced/tools/chartOptionsModal/counters/timespan/object/lib/models/interfaces'
31
- import type { UI_T_DataGridType } from '~/components/atoms/table/dataGrid/lib/models/types'
32
- import type { UI_T_AdvancedType } from '~/components/common/monitor/advanced/lib/models/types'
33
- import type {
34
- UI_T_ChartHost,
35
- UI_T_ChartVm,
36
- } from '~/components/common/monitor/advanced/tools/chartOptionsModal/lib/models/types'
37
- import * as table from '~/components/common/monitor/advanced/tools/chartOptionsModal/counters/timespan/object/lib/config/objectTable'
38
-
39
- const props = defineProps<{
40
- type: UI_T_AdvancedType
41
- chart: UI_T_ChartHost | UI_T_ChartVm
42
- totalCores: number
43
- hostId: string
44
- selectedMetricsKeys: number[]
45
- totalMetricItems: number
46
- selectedObjects: string
47
- loading: boolean
48
- currentItems: UI_I_ObjectItem[]
49
- }>()
50
-
51
- const emits = defineEmits<{
52
- (event: 'select-objects', value: string): void
53
- }>()
54
-
55
- const { $store }: any = useNuxtApp()
56
-
57
- const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
58
-
59
- const localization = computed<UI_I_Localization>(() => useLocal())
60
-
61
- const tableType = computed<UI_T_DataGridType>(() => {
62
- let result = 'checkbox'
63
-
64
- if (props.type === 'host') {
65
- result = ['disk', 'network'].includes(props.chart) ? 'radio' : 'checkbox'
66
- }
67
-
68
- return result
69
- })
70
-
71
- const selectedRow = ref<number[] | number>([])
72
- const pagination = ref<UI_I_Pagination>({
73
- page: 1,
74
- pageSize: 35,
75
- })
76
-
77
- const headItems = computed<UI_I_HeadItem[]>(() =>
78
- table.headItems(localization.value)
79
- )
80
- const columnItems = computed<UI_I_ColumnKey[]>(() =>
81
- table.columnKeys(localization.value)
82
- )
83
-
84
- const bodyItems = ref<UI_I_BodyItem[][]>([])
85
-
86
- let items: UI_I_AdvancedTargetObject[] = []
87
- let firstRequest = false
88
- const getTotalCores = (): void => {
89
- if (
90
- props.selectedMetricsKeys.includes(1) &&
91
- !props.totalCores &&
92
- !firstRequest
93
- ) {
94
- firstRequest = true
95
- }
96
- }
97
- const updateSelectedRow = (): void => {
98
- if (selectedRow.value.length) return
99
-
100
- if (props.type === 'vm' && props.chart === 'network') {
101
- selectedRow.value = []
102
-
103
- if (props.currentItems.length === 1) selectedRow.value.push(0)
104
- else if (props.currentItems.length > 1) {
105
- const totalIndex = props.currentItems.findIndex(
106
- (item) => item.target_object.toLowerCase() === 'total'
107
- )
108
-
109
- totalIndex >= 0 && selectedRow.value.push(totalIndex)
110
- }
111
- }
112
- }
113
- watch(
114
- () => props.selectedMetricsKeys,
115
- () => {
116
- getTotalCores()
117
- },
118
- { deep: true }
119
- )
120
- watch(
121
- () => [
122
- props.type,
123
- props.chart,
124
- props.totalCores,
125
- props.hostId,
126
- props.selectedMetricsKeys,
127
- props.currentItems,
128
- ],
129
- (newValue) => {
130
- items = []
131
- selectedRow.value = []
132
-
133
- if (newValue[0] === 'host' && newValue[1] === 'cpu') {
134
- if (newValue[4].includes(0)) {
135
- items.push({
136
- id: 'total',
137
- target_object: newValue[3],
138
- })
139
- }
140
- if (newValue[4].includes(1)) {
141
- for (let i = 0; i < newValue[2]; i++) {
142
- items.push({
143
- id: 'core' + i,
144
- target_object: 'core' + i,
145
- })
146
- }
147
- }
148
- if (newValue[4].includes(2)) {
149
- for (let i = 0; i < newValue[2]; i++) {
150
- items.push({
151
- id: 'core' + i + 'MHz',
152
- target_object: 'core' + i + 'MHz',
153
- })
154
- }
155
- }
156
- if (newValue[4].includes(3)) {
157
- items.push({
158
- id: 'totalMHz',
159
- target_object: 'totalMHz',
160
- })
161
- }
162
- if (newValue[4].includes(4)) {
163
- items.push({
164
- id: 'averageMHz',
165
- target_object: 'averageMHz',
166
- })
167
- }
168
- } else if (
169
- newValue[0] === 'host' &&
170
- ['disk', 'network'].includes(newValue[1])
171
- ) {
172
- let newItems = []
173
-
174
- if (newValue[1] === 'network')
175
- newItems.push({
176
- id: 'total',
177
- // target_object: localization.value.common.total.toLowerCase(),
178
- target_object: 'total',
179
- })
180
-
181
- newItems = [...newItems, ...props.currentItems]
182
-
183
- items = newItems
184
- } else if (newValue[0] === 'vm' && newValue[1] === 'network') {
185
- items = [...props.currentItems]
186
- }
187
-
188
- bodyItems.value = table.bodyItems(items)
189
- updateSelectedRow()
190
- },
191
- { immediate: true, deep: true }
192
- )
193
-
194
- watch(
195
- selectedRow,
196
- (newValue) => {
197
- const selectedItems: string[] = []
198
-
199
- if (props.type === 'host' && ['disk', 'network'].includes(props.chart)) {
200
- selectedItems.push(items[newValue]?.target_object)
201
- } else if (props.type === 'vm' && ['network'].includes(props.chart)) {
202
- newValue.forEach((key) => {
203
- const newItem = items[key]?.target_object
204
- newItem && selectedItems.push(newItem)
205
- })
206
- } else
207
- newValue.forEach((key) => {
208
- selectedItems.push(items[key].id)
209
- })
210
-
211
- let selectedNames = ''
212
-
213
- if (
214
- items.length === newValue.length &&
215
- props.selectedMetricsKeys.length === props.totalMetricItems
216
- ) {
217
- selectedNames = '*'
218
-
219
- if (props.type === 'vm') selectedNames = 'total'
220
- } else selectedNames = selectedItems.join(', ')
221
-
222
- /* if (props.type === 'vm' && ['network'].includes(props.chart)) {
223
- if (
224
- selectedItems.includes('total') ||
225
- (!selectedItems.includes('total') &&
226
- items.length === newValue.length + 1)
227
- )
228
- selectedNames = 'total'
229
- } */
230
-
231
- emits('select-objects', selectedNames)
232
- },
233
- { deep: true }
234
- )
235
-
236
- watch(
237
- () => [props.selectedObjects, bodyItems.value],
238
- ([selected, all]) => {
239
- if (!all.length) return
240
-
241
- if (props.type === 'host' && props.chart === 'cpu') {
242
- if (selected === '*') {
243
- selectedRow.value = all.map((item) => item[0].id)
244
- } else {
245
- const selectedNames = selected.split(', ')
246
- const selectedKeys: number[] = []
247
- all.forEach((item) => {
248
- if (selectedNames.includes('total') && !selectedKeys.includes(0))
249
- selectedKeys.push(0)
250
- if (selectedNames.includes(item[0].text))
251
- selectedKeys.push(item[0].id)
252
- })
253
- selectedRow.value = selectedKeys
254
- }
255
- } else if (
256
- props.type === 'host' &&
257
- ['disk', 'network'].includes(props.chart)
258
- ) {
259
- if (selected) {
260
- const selectedId = all.find((item) => item[0].text === selected)?.[0]
261
- ?.id
262
- typeof selectedId === 'number' && (selectedRow.value = selectedId)
263
- }
264
- }
265
- },
266
- { immediate: true }
267
- )
268
- </script>
269
-
270
- <style scoped lang="scss">
271
- .chart-option-objects-split {
272
- flex: 1;
273
-
274
- .chart-options-grid-title {
275
- display: block;
276
- margin-bottom: -20px;
277
- }
278
- .flex-to-absolute-positioning-container {
279
- height: 100%;
280
- max-height: 204px;
281
- .flex-to-absolute-positioning-container-inner {
282
- height: inherit;
283
-
284
- .data-table {
285
- height: inherit;
286
-
287
- :deep(.datagrid-outer-wrapper) {
288
- height: inherit;
289
- }
290
- }
291
- }
292
- }
293
- }
294
- </style>
1
+ <template>
2
+ <common-monitor-advanced-tools-chart-options-modal-counters-timespan-object-object-new
3
+ v-if="isNewView"
4
+ v-model:selected-row="selectedRow"
5
+ :table-type="tableType"
6
+ :loading="props.loading"
7
+ :body-items="bodyItems"
8
+ />
9
+ <common-monitor-advanced-tools-chart-options-modal-counters-timespan-object-object-old
10
+ v-else
11
+ v-model:selected-row="selectedRow"
12
+ v-model:column-items="columnItems"
13
+ v-model:pagination="pagination"
14
+ :table-type="tableType"
15
+ :loading="props.loading"
16
+ :head-items="headItems"
17
+ :body-items="bodyItems"
18
+ />
19
+ </template>
20
+
21
+ <script setup lang="ts">
22
+ import type {
23
+ UI_I_HeadItem,
24
+ UI_I_BodyItem,
25
+ UI_I_ColumnKey,
26
+ } from '~/components/atoms/table/dataGrid/lib/models/interfaces'
27
+ import type { UI_I_Localization } from '~/lib/models/interfaces'
28
+ import type { UI_I_Pagination } from '~/lib/models/table/interfaces'
29
+ import type { UI_I_AdvancedTargetObject } from '~/components/common/monitor/advanced/tools/chartOptionsModal/counters/table/lib/models/interfaces'
30
+ import type { UI_I_ObjectItem } from '~/components/common/monitor/advanced/tools/chartOptionsModal/counters/timespan/object/lib/models/interfaces'
31
+ import type { UI_T_DataGridType } from '~/components/atoms/table/dataGrid/lib/models/types'
32
+ import type { UI_T_AdvancedType } from '~/components/common/monitor/advanced/lib/models/types'
33
+ import type {
34
+ UI_T_ChartHost,
35
+ UI_T_ChartVm,
36
+ } from '~/components/common/monitor/advanced/tools/chartOptionsModal/lib/models/types'
37
+ import * as table from '~/components/common/monitor/advanced/tools/chartOptionsModal/counters/timespan/object/lib/config/objectTable'
38
+
39
+ const props = defineProps<{
40
+ type: UI_T_AdvancedType
41
+ chart: UI_T_ChartHost | UI_T_ChartVm
42
+ totalCores: number
43
+ hostId: string
44
+ selectedMetricsKeys: number[]
45
+ totalMetricItems: number
46
+ selectedObjects: string
47
+ loading: boolean
48
+ currentItems: UI_I_ObjectItem[]
49
+ }>()
50
+
51
+ const emits = defineEmits<{
52
+ (event: 'select-objects', value: string): void
53
+ }>()
54
+
55
+ const { $store }: any = useNuxtApp()
56
+
57
+ const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
58
+
59
+ const localization = computed<UI_I_Localization>(() => useLocal())
60
+
61
+ const tableType = computed<UI_T_DataGridType>(() => {
62
+ let result = 'checkbox'
63
+
64
+ if (props.type === 'host') {
65
+ result = ['disk', 'network'].includes(props.chart) ? 'radio' : 'checkbox'
66
+ }
67
+
68
+ return result
69
+ })
70
+
71
+ const selectedRow = ref<number[] | number>([])
72
+ const pagination = ref<UI_I_Pagination>({
73
+ page: 1,
74
+ pageSize: 35,
75
+ })
76
+
77
+ const headItems = computed<UI_I_HeadItem[]>(() =>
78
+ table.headItems(localization.value)
79
+ )
80
+ const columnItems = computed<UI_I_ColumnKey[]>(() =>
81
+ table.columnKeys(localization.value)
82
+ )
83
+
84
+ const bodyItems = ref<UI_I_BodyItem[][]>([])
85
+
86
+ let items: UI_I_AdvancedTargetObject[] = []
87
+ let firstRequest = false
88
+ const getTotalCores = (): void => {
89
+ if (
90
+ props.selectedMetricsKeys.includes(1) &&
91
+ !props.totalCores &&
92
+ !firstRequest
93
+ ) {
94
+ firstRequest = true
95
+ }
96
+ }
97
+ const updateSelectedRow = (): void => {
98
+ if (selectedRow.value.length) return
99
+
100
+ if (props.type === 'vm' && props.chart === 'network') {
101
+ selectedRow.value = []
102
+
103
+ if (props.currentItems.length === 1) {
104
+ selectedRow.value.push(0)
105
+ } else if (props.currentItems.length > 1) {
106
+ const totalIndex = props.currentItems.findIndex(
107
+ (item) => item.target_object.toLowerCase() === 'total'
108
+ )
109
+
110
+ totalIndex >= 0 && selectedRow.value.push(totalIndex)
111
+ }
112
+ }
113
+ }
114
+ watch(
115
+ () => props.selectedMetricsKeys,
116
+ () => {
117
+ getTotalCores()
118
+ },
119
+ { deep: true }
120
+ )
121
+ watch(
122
+ () => [
123
+ props.type,
124
+ props.chart,
125
+ props.totalCores,
126
+ props.hostId,
127
+ props.selectedMetricsKeys,
128
+ props.currentItems,
129
+ ],
130
+ (newValue) => {
131
+ items = []
132
+ selectedRow.value = []
133
+
134
+ if (newValue[0] === 'host' && newValue[1] === 'cpu') {
135
+ if (newValue[4].includes(0)) {
136
+ items.push({
137
+ id: 'total',
138
+ target_object: newValue[3],
139
+ })
140
+ }
141
+ if (newValue[4].includes(1)) {
142
+ for (let i = 0; i < newValue[2]; i++) {
143
+ items.push({
144
+ id: 'core' + i,
145
+ target_object: 'core' + i,
146
+ })
147
+ }
148
+ }
149
+ if (newValue[4].includes(2)) {
150
+ for (let i = 0; i < newValue[2]; i++) {
151
+ items.push({
152
+ id: 'core' + i + 'MHz',
153
+ target_object: 'core' + i + 'MHz',
154
+ })
155
+ }
156
+ }
157
+ if (newValue[4].includes(3)) {
158
+ items.push({
159
+ id: 'totalMHz',
160
+ target_object: 'totalMHz',
161
+ })
162
+ }
163
+ if (newValue[4].includes(4)) {
164
+ items.push({
165
+ id: 'averageMHz',
166
+ target_object: 'averageMHz',
167
+ })
168
+ }
169
+ } else if (
170
+ newValue[0] === 'host' &&
171
+ ['disk', 'network'].includes(newValue[1])
172
+ ) {
173
+ let newItems = []
174
+
175
+ if (newValue[1] === 'network')
176
+ newItems.push({
177
+ id: 'total',
178
+ // target_object: localization.value.common.total.toLowerCase(),
179
+ target_object: 'total',
180
+ })
181
+
182
+ newItems = [...newItems, ...props.currentItems]
183
+
184
+ items = newItems
185
+ } else if (newValue[0] === 'vm' && newValue[1] === 'network') {
186
+ items = [...props.currentItems]
187
+ }
188
+
189
+ bodyItems.value = table.bodyItems(items)
190
+ updateSelectedRow()
191
+ },
192
+ { immediate: true, deep: true }
193
+ )
194
+
195
+ watch(
196
+ selectedRow,
197
+ (newValue) => {
198
+ const selectedItems: string[] = []
199
+
200
+ if (props.type === 'host' && ['disk', 'network'].includes(props.chart)) {
201
+ selectedItems.push(items[newValue]?.target_object)
202
+ } else if (props.type === 'vm' && ['network'].includes(props.chart)) {
203
+ newValue.forEach((key) => {
204
+ const newItem = items[key]?.target_object
205
+ newItem && selectedItems.push(newItem)
206
+ })
207
+ } else
208
+ newValue.forEach((key) => {
209
+ selectedItems.push(items[key].id)
210
+ })
211
+
212
+ let selectedNames = ''
213
+
214
+ if (
215
+ items.length === newValue.length &&
216
+ props.selectedMetricsKeys.length === props.totalMetricItems
217
+ ) {
218
+ selectedNames = '*'
219
+
220
+ if (props.type === 'vm') selectedNames = 'total'
221
+ } else selectedNames = selectedItems.join(', ')
222
+
223
+ /* if (props.type === 'vm' && ['network'].includes(props.chart)) {
224
+ if (
225
+ selectedItems.includes('total') ||
226
+ (!selectedItems.includes('total') &&
227
+ items.length === newValue.length + 1)
228
+ )
229
+ selectedNames = 'total'
230
+ } */
231
+
232
+ emits('select-objects', selectedNames)
233
+ },
234
+ { deep: true }
235
+ )
236
+
237
+ watch(
238
+ () => [props.selectedObjects, bodyItems.value],
239
+ ([selected, all]) => {
240
+ if (!all.length) return
241
+
242
+ if (props.type === 'host' && props.chart === 'cpu') {
243
+ if (selected === '*') {
244
+ selectedRow.value = all.map((item) => item[0].id)
245
+ } else {
246
+ const selectedNames = selected.split(', ')
247
+ const selectedKeys: number[] = []
248
+ all.forEach((item) => {
249
+ if (selectedNames.includes('total')) selectedKeys.push(0)
250
+ if (selectedNames.includes(`core${item[0].text}`))
251
+ selectedKeys.push(item[0].id)
252
+ })
253
+ selectedRow.value = selectedKeys
254
+ }
255
+ } else if (
256
+ props.type === 'host' &&
257
+ ['disk', 'network'].includes(props.chart)
258
+ ) {
259
+ if (selected) {
260
+ const selectedId = all.find((item) => item[0].text === selected)?.[0]
261
+ ?.id
262
+ typeof selectedId === 'number' && (selectedRow.value = selectedId)
263
+ }
264
+ }
265
+ },
266
+ { immediate: true }
267
+ )
268
+ </script>
269
+
270
+ <style scoped lang="scss">
271
+ .chart-option-objects-split {
272
+ flex: 1;
273
+
274
+ .chart-options-grid-title {
275
+ display: block;
276
+ margin-bottom: -20px;
277
+ }
278
+ .flex-to-absolute-positioning-container {
279
+ height: 100%;
280
+ max-height: 204px;
281
+ .flex-to-absolute-positioning-container-inner {
282
+ height: inherit;
283
+
284
+ .data-table {
285
+ height: inherit;
286
+
287
+ :deep(.datagrid-outer-wrapper) {
288
+ height: inherit;
289
+ }
290
+ }
291
+ }
292
+ }
293
+ }
294
+ </style>