bfg-common 1.4.838 → 1.4.839

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 (76) hide show
  1. package/assets/img/icons/icons-sprite-dark-3.svg +227 -227
  2. package/assets/img/icons/icons-sprite-dark-5.svg +488 -488
  3. package/assets/img/icons/icons-sprite-light-3.svg +227 -227
  4. package/assets/img/icons/icons-sprite-light-5.svg +488 -488
  5. package/assets/localization/local_be.json +5 -16
  6. package/assets/localization/local_en.json +7 -19
  7. package/assets/localization/local_hy.json +5 -16
  8. package/assets/localization/local_kk.json +5 -16
  9. package/assets/localization/local_ru.json +6 -17
  10. package/assets/localization/local_zh.json +5 -16
  11. package/components/atoms/collapse/CollapseNav.vue +4 -4
  12. package/components/atoms/dropdown/dropdown/Dropdown.vue +0 -12
  13. package/components/atoms/table/dataGrid/DataGridColumnSwitch.vue +2 -2
  14. package/components/atoms/table/dataGrid/lib/utils/export.ts +1 -1
  15. package/components/common/browse/blocks/lib/models/types.ts +1 -1
  16. package/components/common/browse/lib/models/interfaces.ts +5 -5
  17. package/components/common/diagramMain/Header.vue +211 -211
  18. package/components/common/diagramMain/adapter/AdapterItems.vue +61 -61
  19. package/components/common/diagramMain/lib/config/initial.ts +50 -50
  20. package/components/common/diagramMain/lib/models/types.ts +21 -21
  21. package/components/common/diagramMain/lib/utils/utils.ts +331 -331
  22. package/components/common/diagramMain/modals/ManagePhysicalAdaptersModal.vue +330 -330
  23. package/components/common/diagramMain/modals/editSettings/ConfirmTeamingSettingsModal.vue +40 -40
  24. package/components/common/diagramMain/modals/editSettings/EditSettings.vue +497 -497
  25. package/components/common/diagramMain/modals/editSettings/EditSettingsModal.vue +812 -812
  26. package/components/common/diagramMain/modals/editSettings/tabs/NetworkProperties.vue +214 -214
  27. package/components/common/diagramMain/modals/editSettings/tabs/Security.vue +189 -189
  28. package/components/common/diagramMain/modals/editSettings/tabs/SwitchProperties.vue +163 -163
  29. package/components/common/diagramMain/modals/editSettings/tabs/TeamingFailover.vue +175 -175
  30. package/components/common/diagramMain/modals/editSettings/tabs/port/IpvFourSettings.vue +346 -346
  31. package/components/common/diagramMain/modals/editSettings/tabs/port/PortProperties.vue +205 -205
  32. package/components/common/diagramMain/modals/lib/config/diagramConfig.ts +23 -23
  33. package/components/common/diagramMain/modals/lib/config/initial.ts +180 -180
  34. package/components/common/diagramMain/modals/lib/config/vmKernelAdapter.ts +90 -90
  35. package/components/common/diagramMain/modals/lib/mappers/mappers.ts +87 -87
  36. package/components/common/diagramMain/modals/lib/utils/index.ts +24 -24
  37. package/components/common/diagramMain/modals/migrateVmkernelAdapter/lib/config/steps.ts +114 -114
  38. package/components/common/diagramMain/modals/migrateVmkernelAdapter/steps/ConnectionSettings.vue +169 -169
  39. package/components/common/diagramMain/modals/migrateVmkernelAdapter/steps/SelectVmkernelAdapter.vue +159 -159
  40. package/components/common/diagramMain/modals/migrateVmkernelAdapter/validations/common.ts +14 -14
  41. package/components/common/diagramMain/modals/migrateVmkernelAdapter/validations/connectionSettings.ts +137 -137
  42. package/components/common/diagramMain/modals/migrateVmkernelAdapter/validations/selectVmkernelAdapter.ts +52 -52
  43. package/components/common/diagramMain/modals/migrateVmkernelAdapter/validations/validations.ts +19 -19
  44. package/components/common/diagramMain/port/Ports.vue +47 -47
  45. package/components/common/graph/GraphNew.vue +176 -144
  46. package/components/common/modals/confirmByInput/ConfirmByInput.vue +177 -57
  47. package/components/common/monitor/advanced/Advanced.vue +170 -244
  48. package/components/common/monitor/advanced/AdvancedNew.vue +206 -0
  49. package/components/common/monitor/advanced/AdvancedOld.vue +243 -0
  50. package/components/common/monitor/advanced/{GraphView.vue → graphView/GraphView.vue} +170 -180
  51. package/components/common/monitor/advanced/graphView/GraphViewNew.vue +35 -0
  52. package/components/common/monitor/advanced/graphView/GraphViewOld.vue +56 -0
  53. package/components/common/monitor/advanced/table/Table.vue +31 -93
  54. package/components/common/monitor/advanced/table/tableNew/TableNew.vue +85 -0
  55. package/components/common/monitor/advanced/table/tableNew/lib/config/options.ts +139 -0
  56. package/components/common/monitor/advanced/table/tableNew/lib/utils/constructBody.ts +27 -0
  57. package/components/common/monitor/advanced/table/tableOld/TableOld.vue +93 -0
  58. package/components/common/monitor/advanced/tools/Tools.vue +163 -447
  59. package/components/common/monitor/advanced/tools/ToolsNew.vue +366 -0
  60. package/components/common/monitor/advanced/tools/ToolsOld.vue +447 -0
  61. package/components/common/pages/tasks/Tasks.vue +1 -3
  62. package/components/common/pages/tasks/table/Table.vue +0 -1
  63. package/components/common/pages/tasks/table/errorInfo/ErrorInfo.vue +7 -23
  64. package/components/common/pages/tasks/table/expandDetails/ExpandDetails.vue +0 -1
  65. package/components/common/pages/tasks/table/lib/config/config.ts +2 -2
  66. package/components/common/portlets/customAttributes/Portlet.vue +2 -9
  67. package/components/common/portlets/customAttributes/lib/config/config.ts +0 -7
  68. package/components/common/portlets/tag/Portlet.vue +2 -9
  69. package/components/common/portlets/tag/lib/config/config.ts +0 -7
  70. package/components/common/tools/Actions.vue +2 -5
  71. package/lib/config/uiTable.ts +20 -0
  72. package/lib/models/store/interfaces.ts +0 -1
  73. package/package.json +3 -3
  74. package/components/common/modals/confirmByInput/ConfirmByInputNew.vue +0 -103
  75. package/components/common/modals/confirmByInput/ConfirmByInputOld.vue +0 -204
  76. /package/components/common/monitor/advanced/table/{lib → tableOld/lib}/config/performanceDatatable.ts +0 -0
@@ -1,244 +1,170 @@
1
- <template>
2
- <div id="advanced-page" class="fill-parent">
3
- <div class="routed-view-panel-layout">
4
- <div class="settingsViewHeader">
5
- <h3 class="settingsBlockTitle m-0">
6
- {{ localization.inventoryMonitor.advancedPerformance }}
7
- </h3>
8
- </div>
9
- <div v-if="props.isEmpty" class="empty-data">
10
- {{ localization.inventoryMonitor.emptyAdvancedGraphText }}
11
- </div>
12
- <div v-else class="fill-parent flex-column">
13
- <div class="vertical-flex-container fill-parent">
14
- <common-monitor-advanced-tools
15
- v-model:selected-timespan-type="localSelectedTimespanType"
16
- :type="props.type"
17
- :start-date="props.data?.pointStart || 0"
18
- :end-date="props.data?.pointEnd || 0"
19
- :chart-title="props.data?.groupName || ''"
20
- :language="props.language"
21
- :selected-counters-keys="props.selectedCountersKeys"
22
- :selected-metric="props.selectedMetric"
23
- :selected-metric-local="props.selectedMetricLocal"
24
- :disabled-period="props.disabledPeriod"
25
- :disabled-view="props.disabledView"
26
- :selected-chart-type="props.selectedChartType"
27
- :units-count="props.unitsCount"
28
- :period-type="props.periodType"
29
- :selected-custom-time="props.selectedCustomTime"
30
- :selected-chart-option-name="props.selectedChartOptionName"
31
- :custom-date-from="props.customDateFrom"
32
- :custom-date-to="props.customDateTo"
33
- :custom-time-from="props.customTimeFrom"
34
- :custom-time-to="props.customTimeTo"
35
- :total-cores="totalCores"
36
- :host-id="props.hostId"
37
- :selected-objects="props.selectedObjects"
38
- :project="props.project"
39
- :objects-loading="props.objectsLoading"
40
- :objects-data="props.objectsData"
41
- :valid-date-end="props.validDateEnd"
42
- :format-date="props.formatDate"
43
- @update-tools="emits('update-tools', $event)"
44
- @exporting="onExporting"
45
- @open-advanced-page="onGetEmptyPage"
46
- @select-row="emits('select-row', $event)"
47
- @select-metric-local="emits('select-metric-local', $event)"
48
- @update-chart-type="emits('update-chart-type', $event)"
49
- @update-timespan-type="emits('update-timespan-type', $event)"
50
- @update-unit-count="emits('update-unit-count', $event)"
51
- @update-period-type="emits('update-period-type', $event)"
52
- @update-custom-time="emits('update-custom-time', $event)"
53
- @delete-option="emits('delete-option')"
54
- @submit-options="emits('submit-options', $event)"
55
- />
56
-
57
- <div v-show="!props.data" class="empty-container">
58
- {{
59
- localization.inventoryMonitor
60
- .noPerformanceCurrentlySelectedMetrics
61
- }}
62
- </div>
63
-
64
- <div v-show="props.data">
65
- <div class="main-graphs-loader relative">
66
- <common-monitor-advanced-graph-view
67
- :loading="props.advancedLoading"
68
- :data="props.data"
69
- :update="update"
70
- :export="exportGraph"
71
- :selected-row="selectedRow"
72
- :dark-mode="props.darkMode"
73
- :formatted-datetime="props.formattedDatetime"
74
- :get-date-format="props.getDateFormat"
75
- :language="props.language"
76
- :selected-chart-type="props.selectedChartType"
77
- />
78
- <div class="datatable">
79
- <common-monitor-advanced-table
80
- :data="props.tableData"
81
- @select="onCheckSelectedRow"
82
- />
83
- </div>
84
- </div>
85
- </div>
86
- </div>
87
- </div>
88
- </div>
89
- </div>
90
- </template>
91
-
92
- <script setup lang="ts">
93
- import type { UI_I_Localization } from '~/lib/models/interfaces'
94
- import type { UI_T_AdvancedType } from '~/components/common/monitor/advanced/lib/models/types'
95
- import type { I_SeriesLine } from 'bfg-nuxt-3-graph/graph/lib/models/interfaces'
96
- import type { UI_I_MonitorGraphPayload } from '~/components/common/monitor/lib/models/interfaces'
97
- import type { UI_I_PerformanceItem } from '~/components/common/monitor/advanced/table/lib/models/interfaces'
98
- import type {
99
- UI_T_ChartHost,
100
- UI_T_ChartVm,
101
- } from '~/components/common/monitor/advanced/tools/chartOptionsModal/lib/models/types'
102
- import type { UI_I_OptionsForm } from '~/components/common/monitor/advanced/tools/chartOptionsModal/lib/models/interfaces'
103
- import type { UI_I_AdvancedCounterItem } from '~/components/common/monitor/advanced/tools/chartOptionsModal/counters/table/lib/models/interfaces'
104
- import type { UI_I_ObjectItem } from '~/components/common/monitor/advanced/tools/chartOptionsModal/counters/timespan/object/lib/models/interfaces'
105
- import type { UI_T_Project } from '~/lib/models/types'
106
- import { getCountCores } from '~/components/common/monitor/advanced/tools/lib/utils/countCores'
107
-
108
- const props = defineProps<{
109
- type: UI_T_AdvancedType
110
- advancedLoading: boolean
111
- data: I_SeriesLine | null
112
- cpuCoresDataData: I_SeriesLine | null
113
- tableData: UI_I_PerformanceItem[] | []
114
- language: string
115
- darkMode: boolean
116
- formattedDatetime: any
117
- getDateFormat: any
118
- selectedCountersKeys: number[]
119
- selectedMetric: UI_T_ChartHost | UI_T_ChartVm
120
- selectedMetricLocal: UI_T_ChartHost | UI_T_ChartVm
121
- selectedChartType: string
122
- selectedTimespanType: string
123
- unitsCount: number
124
- periodType: string
125
- selectedCustomTime: string
126
- selectedChartOptionName: string
127
- customDateFrom: string
128
- customDateTo: string
129
- customTimeFrom: string
130
- customTimeTo: string
131
- hostId: string
132
- selectedObjects: string
133
- project: UI_T_Project
134
- objectsLoading: boolean
135
- objectsData: UI_I_ObjectItem[]
136
- validDateEnd: number
137
- formatDate: string
138
- disabledPeriod?: boolean
139
- disabledView?: boolean
140
- isEmpty?: boolean
141
- }>()
142
-
143
- const emits = defineEmits<{
144
- (event: 'update-tools', value: UI_I_MonitorGraphPayload): void
145
- (event: 'open-advanced-page'): void
146
- (event: 'update-selected-row', value: number[]): void
147
- (event: 'select-row', value: UI_I_AdvancedCounterItem[]): void
148
- (event: 'select-metric-local', value: string): void
149
- (event: 'update-chart-type', value: string): void
150
- (event: 'update-timespan-type', value: string): void
151
- (event: 'update-unit-count', value: number): void
152
- (event: 'update-period-type', value: string): void
153
- (event: 'update-custom-time', value: string): void
154
- (event: 'delete-option'): void
155
- (event: 'submit-options', value: UI_I_OptionsForm): void
156
- (event: 'update:selected-timespan-type', value: string): void
157
- }>()
158
-
159
- const localization = computed<UI_I_Localization>(() => useLocal())
160
-
161
- const localSelectedTimespanType = computed<string>({
162
- get() {
163
- return props.selectedTimespanType
164
- },
165
- set(newValue) {
166
- emits('update:selected-timespan-type', newValue)
167
- },
168
- })
169
-
170
- const totalCores = ref<number>(0)
171
- let isFirstUpdate = true
172
- watch(
173
- () => props.cpuCoresDataData,
174
- (newValue) => {
175
- if (!newValue || !isFirstUpdate) return
176
-
177
- totalCores.value = getCountCores(newValue)
178
- isFirstUpdate = false
179
- },
180
- { immediate: true }
181
- )
182
-
183
- const exportGraph = ref<string>('')
184
- const onExporting = (key: string): void => {
185
- exportGraph.value = key
186
- }
187
-
188
- const onGetEmptyPage = (): void => emits('open-advanced-page')
189
-
190
- const update = ref<number>(0)
191
-
192
- const selectedRow = ref<number[]>([])
193
- const onCheckSelectedRow = (data: number[]): void => {
194
- selectedRow.value = data
195
- }
196
- </script>
197
-
198
- <style scoped lang="scss">
199
- #advanced-page {
200
- overflow-x: hidden;
201
- }
202
- .fill-parent {
203
- flex-direction: column;
204
-
205
- .empty-data {
206
- height: 100%;
207
- display: flex;
208
- align-items: center;
209
- justify-content: center;
210
- }
211
- .empty-container {
212
- min-height: 300px;
213
- height: 100%;
214
- background-color: var(--block-view-bg-color5);
215
- display: flex;
216
- flex-grow: 1;
217
- flex-shrink: 1;
218
- justify-content: center;
219
- align-items: center;
220
- width: 100%;
221
- }
222
-
223
- .routed-view-panel-layout {
224
- width: 100%;
225
- height: 100%;
226
- box-sizing: border-box;
227
- display: flex;
228
- flex-direction: column;
229
-
230
- .settingsViewHeader {
231
- display: flex;
232
- align-items: center;
233
- box-sizing: border-box;
234
-
235
- .settingsBlockTitle {
236
- font-size: 22px;
237
- font-weight: 400;
238
- color: var(--light-white-100);
239
- padding: 4px 0 4px 2px;
240
- }
241
- }
242
- }
243
- }
244
- </style>
1
+ <template>
2
+ <common-monitor-advanced-new
3
+ v-if="isNewView"
4
+ v-model:selected-timespan-type="localSelectedTimespanType"
5
+ :type="props.type"
6
+ :is-empty="props.isEmpty"
7
+ :advanced-loading="props.advancedLoading"
8
+ :data="props.data"
9
+ :table-data="props.tableData"
10
+ :language="props.language"
11
+ :dark-mode="props.darkMode"
12
+ :formatted-datetime="props.formattedDatetime"
13
+ :get-date-format="props.getDateFormat"
14
+ :selected-counters-keys="props.selectedCountersKeys"
15
+ :selected-metric="props.selectedMetric"
16
+ :selected-metric-local="props.selectedMetricLocal"
17
+ :selected-chart-type="props.selectedChartType"
18
+ :units-count="props.unitsCount"
19
+ :period-type="props.periodType"
20
+ :selected-custom-time="props.selectedCustomTime"
21
+ :selected-chart-option-name="props.selectedChartOptionName"
22
+ :custom-date-from="props.customDateFrom"
23
+ :custom-date-to="props.customDateTo"
24
+ :custom-time-from="props.customTimeFrom"
25
+ :custom-time-to="props.customTimeTo"
26
+ :host-id="props.hostId"
27
+ :selected-objects="props.selectedObjects"
28
+ :cpu-cores-data-data="props.cpuCoresDataData"
29
+ :objects-loading="props.objectsLoading"
30
+ :objects-data="props.objectsData"
31
+ :valid-date-end="props.validDateEnd"
32
+ :format-date="props.formatDate"
33
+ project="procurator"
34
+ @update-tools="emits('update-tools', $event)"
35
+ @open-advanced-page="emits('open-advanced-page')"
36
+ @select-row="emits('select-row', $event)"
37
+ @select-metric-local="emits('select-metric-local', $event)"
38
+ @update-chart-type="emits('update-chart-type', $event)"
39
+ @update-timespan-type="emits('update-timespan-type', $event)"
40
+ @update-unit-count="emits('update-unit-count', $event)"
41
+ @update-period-type="emits('update-period-type', $event)"
42
+ @update-custom-time="emits('update-custom-time', $event)"
43
+ @delete-option="emits('delete-option')"
44
+ @submit-options="emits('submit-options', $event)"
45
+ />
46
+ <common-monitor-advanced-old
47
+ v-else
48
+ v-model:selected-timespan-type="localSelectedTimespanType"
49
+ :type="props.type"
50
+ :is-empty="props.isEmpty"
51
+ :advanced-loading="props.advancedLoading"
52
+ :data="props.data"
53
+ :table-data="props.tableData"
54
+ :language="props.language"
55
+ :dark-mode="props.darkMode"
56
+ :formatted-datetime="props.formattedDatetime"
57
+ :get-date-format="props.getDateFormat"
58
+ :selected-counters-keys="props.selectedCountersKeys"
59
+ :selected-metric="props.selectedMetric"
60
+ :selected-metric-local="props.selectedMetricLocal"
61
+ :selected-chart-type="props.selectedChartType"
62
+ :units-count="props.unitsCount"
63
+ :period-type="props.periodType"
64
+ :selected-custom-time="props.selectedCustomTime"
65
+ :selected-chart-option-name="props.selectedChartOptionName"
66
+ :custom-date-from="props.customDateFrom"
67
+ :custom-date-to="props.customDateTo"
68
+ :custom-time-from="props.customTimeFrom"
69
+ :custom-time-to="props.customTimeTo"
70
+ :host-id="props.hostId"
71
+ :selected-objects="props.selectedObjects"
72
+ :cpu-cores-data-data="props.cpuCoresDataData"
73
+ :objects-loading="props.objectsLoading"
74
+ :objects-data="props.objectsData"
75
+ :valid-date-end="props.validDateEnd"
76
+ :format-date="props.formatDate"
77
+ project="procurator"
78
+ @update-tools="emits('update-tools', $event)"
79
+ @open-advanced-page="emits('open-advanced-page')"
80
+ @select-row="emits('select-row', $event)"
81
+ @select-metric-local="emits('select-metric-local', $event)"
82
+ @update-chart-type="emits('update-chart-type', $event)"
83
+ @update-timespan-type="emits('update-timespan-type', $event)"
84
+ @update-unit-count="emits('update-unit-count', $event)"
85
+ @update-period-type="emits('update-period-type', $event)"
86
+ @update-custom-time="emits('update-custom-time', $event)"
87
+ @delete-option="emits('delete-option')"
88
+ @submit-options="emits('submit-options', $event)"
89
+ />
90
+ </template>
91
+
92
+ <script setup lang="ts">
93
+ import type { UI_T_AdvancedType } from '~/components/common/monitor/advanced/lib/models/types'
94
+ import type { I_SeriesLine } from 'bfg-nuxt-3-graph/graph/lib/models/interfaces'
95
+ import type { UI_I_PerformanceItem } from '~/components/common/monitor/advanced/table/lib/models/interfaces'
96
+ import type {
97
+ UI_T_ChartHost,
98
+ UI_T_ChartVm,
99
+ } from '~/components/common/monitor/advanced/tools/chartOptionsModal/lib/models/types'
100
+ import type { UI_T_Project } from '~/lib/models/types'
101
+ import type { UI_I_ObjectItem } from '~/components/common/monitor/advanced/tools/chartOptionsModal/counters/timespan/object/lib/models/interfaces'
102
+ import type { UI_I_MonitorGraphPayload } from '~/components/common/monitor/lib/models/interfaces'
103
+ import type { UI_I_AdvancedCounterItem } from '~/components/common/monitor/advanced/tools/chartOptionsModal/counters/table/lib/models/interfaces'
104
+ import type { UI_I_OptionsForm } from '~/components/common/monitor/advanced/tools/chartOptionsModal/lib/models/interfaces'
105
+
106
+ const props = defineProps<{
107
+ type: UI_T_AdvancedType
108
+ advancedLoading: boolean
109
+ data: I_SeriesLine | null
110
+ cpuCoresDataData: I_SeriesLine | null
111
+ tableData: UI_I_PerformanceItem[] | []
112
+ language: string
113
+ darkMode: boolean
114
+ formattedDatetime: any
115
+ getDateFormat: any
116
+ selectedCountersKeys: number[]
117
+ selectedMetric: UI_T_ChartHost | UI_T_ChartVm
118
+ selectedMetricLocal: UI_T_ChartHost | UI_T_ChartVm
119
+ selectedChartType: string
120
+ selectedTimespanType: string
121
+ unitsCount: number
122
+ periodType: string
123
+ selectedCustomTime: string
124
+ selectedChartOptionName: string
125
+ customDateFrom: string
126
+ customDateTo: string
127
+ customTimeFrom: string
128
+ customTimeTo: string
129
+ hostId: string
130
+ selectedObjects: string
131
+ project: UI_T_Project
132
+ objectsLoading: boolean
133
+ objectsData: UI_I_ObjectItem[]
134
+ validDateEnd: number
135
+ formatDate: string
136
+ disabledPeriod?: boolean
137
+ disabledView?: boolean
138
+ isEmpty?: boolean
139
+ }>()
140
+
141
+ const emits = defineEmits<{
142
+ (event: 'update:selected-timespan-type', value: string): void
143
+ (event: 'update-tools', value: UI_I_MonitorGraphPayload): void
144
+ (event: 'open-advanced-page'): void
145
+ (event: 'select-row', value: UI_I_AdvancedCounterItem[]): void
146
+ (event: 'select-metric-local', value: string): void
147
+ (event: 'update-chart-type', value: string): void
148
+ (event: 'update-timespan-type', value: string): void
149
+ (event: 'update-unit-count', value: number): void
150
+ (event: 'update-period-type', value: string): void
151
+ (event: 'update-custom-time', value: string): void
152
+ (event: 'delete-option'): void
153
+ (event: 'submit-options', value: UI_I_OptionsForm): void
154
+ }>()
155
+
156
+ const { $store }: any = useNuxtApp()
157
+
158
+ const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
159
+
160
+ const localSelectedTimespanType = computed<string>({
161
+ get() {
162
+ return props.selectedTimespanType
163
+ },
164
+ set(newValue) {
165
+ emits('update:selected-timespan-type', newValue)
166
+ },
167
+ })
168
+ </script>
169
+
170
+ <style scoped lang="scss"></style>
@@ -0,0 +1,206 @@
1
+ <template>
2
+ <div class="advanced">
3
+ <h3 class="title">
4
+ {{ localization.inventoryMonitor.advancedPerformance }}
5
+ </h3>
6
+ <div v-if="props.isEmpty" class="empty-data">
7
+ <ui-not-found text="">
8
+ <span class="no-items-found-title">{{
9
+ localization.common.noItemsFound
10
+ }}</span>
11
+ <span class="no-items-found-description">{{
12
+ localization.inventoryMonitor.emptyAdvancedGraphText
13
+ }}</span>
14
+ </ui-not-found>
15
+ </div>
16
+ <template v-else>
17
+ <common-monitor-advanced-tools
18
+ v-model:selected-timespan-type="localSelectedTimespanType"
19
+ :type="props.type"
20
+ :start-date="props.data?.pointStart || 0"
21
+ :end-date="props.data?.pointEnd || 0"
22
+ :chart-title="props.data?.groupName || ''"
23
+ :language="props.language"
24
+ :selected-counters-keys="props.selectedCountersKeys"
25
+ :selected-metric="props.selectedMetric"
26
+ :selected-metric-local="props.selectedMetricLocal"
27
+ :disabled-period="props.disabledPeriod"
28
+ :disabled-view="props.disabledView"
29
+ :selected-chart-type="props.selectedChartType"
30
+ :units-count="props.unitsCount"
31
+ :period-type="props.periodType"
32
+ :selected-custom-time="props.selectedCustomTime"
33
+ :selected-chart-option-name="props.selectedChartOptionName"
34
+ :custom-date-from="props.customDateFrom"
35
+ :custom-date-to="props.customDateTo"
36
+ :custom-time-from="props.customTimeFrom"
37
+ :custom-time-to="props.customTimeTo"
38
+ :total-cores="totalCores"
39
+ :host-id="props.hostId"
40
+ :selected-objects="props.selectedObjects"
41
+ :project="props.project"
42
+ :objects-loading="props.objectsLoading"
43
+ :objects-data="props.objectsData"
44
+ :valid-date-end="props.validDateEnd"
45
+ :format-date="props.formatDate"
46
+ @update-tools="emits('update-tools', $event)"
47
+ @exporting="onExporting"
48
+ @open-advanced-page="onGetEmptyPage"
49
+ @select-row="emits('select-row', $event)"
50
+ @select-metric-local="emits('select-metric-local', $event)"
51
+ @update-chart-type="emits('update-chart-type', $event)"
52
+ @update-timespan-type="emits('update-timespan-type', $event)"
53
+ @update-unit-count="emits('update-unit-count', $event)"
54
+ @update-period-type="emits('update-period-type', $event)"
55
+ @update-custom-time="emits('update-custom-time', $event)"
56
+ @delete-option="emits('delete-option')"
57
+ @submit-options="emits('submit-options', $event)"
58
+ />
59
+ <div class="graph-container">
60
+ <common-monitor-advanced-graph-view
61
+ :loading="props.advancedLoading"
62
+ :data="props.data"
63
+ :export="exportGraph"
64
+ :selected-row="selectedRow"
65
+ :dark-mode="props.darkMode"
66
+ :formatted-datetime="props.formattedDatetime"
67
+ :get-date-format="props.getDateFormat"
68
+ :language="props.language"
69
+ :selected-chart-type="props.selectedChartType"
70
+ />
71
+ </div>
72
+ <common-monitor-advanced-table
73
+ :loading="props.advancedLoading"
74
+ :data="props.tableData"
75
+ @select="onCheckSelectedRow"
76
+ />
77
+ </template>
78
+ </div>
79
+ </template>
80
+
81
+ <script setup lang="ts">
82
+ import type { UI_I_Localization } from '~/lib/models/interfaces'
83
+ import type { UI_T_AdvancedType } from '~/components/common/monitor/advanced/lib/models/types'
84
+ import type { I_SeriesLine } from 'bfg-nuxt-3-graph/graph/lib/models/interfaces'
85
+ import type { UI_I_MonitorGraphPayload } from '~/components/common/monitor/lib/models/interfaces'
86
+ import type { UI_I_PerformanceItem } from '~/components/common/monitor/advanced/table/lib/models/interfaces'
87
+ import type {
88
+ UI_T_ChartHost,
89
+ UI_T_ChartVm,
90
+ } from '~/components/common/monitor/advanced/tools/chartOptionsModal/lib/models/types'
91
+ import type { UI_I_OptionsForm } from '~/components/common/monitor/advanced/tools/chartOptionsModal/lib/models/interfaces'
92
+ import type { UI_I_AdvancedCounterItem } from '~/components/common/monitor/advanced/tools/chartOptionsModal/counters/table/lib/models/interfaces'
93
+ import type { UI_I_ObjectItem } from '~/components/common/monitor/advanced/tools/chartOptionsModal/counters/timespan/object/lib/models/interfaces'
94
+ import type { UI_T_Project } from '~/lib/models/types'
95
+ import { getCountCores } from '~/components/common/monitor/advanced/tools/lib/utils/countCores'
96
+
97
+ const props = defineProps<{
98
+ type: UI_T_AdvancedType
99
+ advancedLoading: boolean
100
+ data: I_SeriesLine | null
101
+ cpuCoresDataData: I_SeriesLine | null
102
+ tableData: UI_I_PerformanceItem[] | []
103
+ language: string
104
+ darkMode: boolean
105
+ formattedDatetime: any
106
+ getDateFormat: any
107
+ selectedCountersKeys: number[]
108
+ selectedMetric: UI_T_ChartHost | UI_T_ChartVm
109
+ selectedMetricLocal: UI_T_ChartHost | UI_T_ChartVm
110
+ selectedChartType: string
111
+ selectedTimespanType: string
112
+ unitsCount: number
113
+ periodType: string
114
+ selectedCustomTime: string
115
+ selectedChartOptionName: string
116
+ customDateFrom: string
117
+ customDateTo: string
118
+ customTimeFrom: string
119
+ customTimeTo: string
120
+ hostId: string
121
+ selectedObjects: string
122
+ project: UI_T_Project
123
+ objectsLoading: boolean
124
+ objectsData: UI_I_ObjectItem[]
125
+ validDateEnd: number
126
+ formatDate: string
127
+ disabledPeriod?: boolean
128
+ disabledView?: boolean
129
+ isEmpty?: boolean
130
+ }>()
131
+
132
+ const emits = defineEmits<{
133
+ (event: 'update-tools', value: UI_I_MonitorGraphPayload): void
134
+ (event: 'open-advanced-page'): void
135
+ (event: 'select-row', value: UI_I_AdvancedCounterItem[]): void
136
+ (event: 'select-metric-local', value: string): void
137
+ (event: 'update-chart-type', value: string): void
138
+ (event: 'update-timespan-type', value: string): void
139
+ (event: 'update-unit-count', value: number): void
140
+ (event: 'update-period-type', value: string): void
141
+ (event: 'update-custom-time', value: string): void
142
+ (event: 'delete-option'): void
143
+ (event: 'submit-options', value: UI_I_OptionsForm): void
144
+ (event: 'update:selected-timespan-type', value: string): void
145
+ }>()
146
+
147
+ const localization = computed<UI_I_Localization>(() => useLocal())
148
+
149
+ const localSelectedTimespanType = computed<string>({
150
+ get() {
151
+ return props.selectedTimespanType
152
+ },
153
+ set(newValue) {
154
+ emits('update:selected-timespan-type', newValue)
155
+ },
156
+ })
157
+
158
+ const totalCores = ref<number>(0)
159
+ let isFirstUpdate = true
160
+ watch(
161
+ () => props.cpuCoresDataData,
162
+ (newValue) => {
163
+ if (!newValue || !isFirstUpdate) return
164
+
165
+ totalCores.value = getCountCores(newValue)
166
+ isFirstUpdate = false
167
+ },
168
+ { immediate: true }
169
+ )
170
+
171
+ const exportGraph = ref<string>('')
172
+ const onExporting = (key: string): void => {
173
+ exportGraph.value = key
174
+ }
175
+
176
+ const onGetEmptyPage = (): void => emits('open-advanced-page')
177
+
178
+ const selectedRow = ref<number[]>([])
179
+ const onCheckSelectedRow = (data: number[]): void => {
180
+ selectedRow.value = data
181
+ }
182
+ </script>
183
+
184
+ <style>
185
+ :root {
186
+ --advanced-text-color: #4d5d69;
187
+ }
188
+ :root.dark-theme {
189
+ --advanced-text-color: #e9eaec;
190
+ }
191
+ </style>
192
+ <style scoped lang="scss">
193
+ .advanced {
194
+ overflow: hidden;
195
+
196
+ .title {
197
+ font-size: 18px;
198
+ font-weight: 500;
199
+ padding: 16px 6px 12px 6px;
200
+ color: var(--advanced-text-color);
201
+ }
202
+ .graph-container {
203
+ margin: 0 6px 0 6px;
204
+ }
205
+ }
206
+ </style>