bfg-common 1.6.111 → 1.6.113

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 (89) hide show
  1. package/assets/img/icons/icons-sprite-dark-4.svg +17 -38
  2. package/assets/img/icons/icons-sprite-light-4.svg +17 -49
  3. package/assets/localization/local_be.json +4 -33
  4. package/assets/localization/local_en.json +4 -33
  5. package/assets/localization/local_hy.json +4 -33
  6. package/assets/localization/local_kk.json +4 -33
  7. package/assets/localization/local_ru.json +7 -36
  8. package/assets/localization/local_zh.json +4 -33
  9. package/components/common/configure/advancedSystemSettings/AdvancedSystemSettings.vue +17 -25
  10. package/components/common/configure/advancedSystemSettings/modals/edit/Edit.vue +4 -4
  11. package/components/common/configure/advancedSystemSettings/modals/edit/New.vue +23 -42
  12. package/components/common/configure/advancedSystemSettings/modals/edit/Old.vue +3 -5
  13. package/components/common/configure/advancedSystemSettings/tableView/TableView.vue +2 -27
  14. package/components/common/configure/advancedSystemSettings/tableView/new/New.vue +130 -60
  15. package/components/common/configure/advancedSystemSettings/tableView/new/lib/config/hostTable.ts +308 -0
  16. package/components/common/configure/advancedSystemSettings/tableView/old/Old.vue +41 -14
  17. package/components/common/configure/advancedSystemSettings/tableView/{field → old/field}/Field.vue +50 -20
  18. package/components/common/configure/advancedSystemSettings/tableView/old/field/lib/models/enums.ts +14 -0
  19. package/components/common/configure/advancedSystemSettings/tools/New.vue +3 -64
  20. package/components/common/configure/advancedSystemSettings/tools/Old.vue +2 -2
  21. package/components/common/configure/advancedSystemSettings/tools/Tools.vue +2 -2
  22. package/components/common/graph/Graph.vue +8 -19
  23. package/components/common/graph/{new/New.vue → graphNew/GraphNew.vue} +3 -3
  24. package/components/common/graph/lib/utils/renderGraph.ts +393 -0
  25. package/components/common/modals/confirmation/Confirmation.vue +0 -1
  26. package/components/common/monitor/advanced/Advanced.vue +49 -9
  27. package/components/common/monitor/advanced/graphView/GraphView.vue +12 -8
  28. package/components/common/monitor/advanced/graphView/{New.vue → GraphViewNew.vue} +1 -1
  29. package/components/common/monitor/advanced/table/Table.vue +8 -9
  30. package/components/common/monitor/advanced/table/{new/New.vue → tableNew/TableNew.vue} +5 -6
  31. package/components/common/monitor/advanced/table/{new → tableNew}/lib/config/options.ts +1 -1
  32. package/components/common/monitor/advanced/table/{old/Old.vue → tableOld/TableOld.vue} +3 -6
  33. package/components/common/monitor/advanced/tools/Tools.vue +53 -11
  34. package/components/common/monitor/advanced/tools/{New.vue → ToolsNew.vue} +0 -4
  35. package/components/common/monitor/advanced/tools/{Old.vue → ToolsOld.vue} +0 -2
  36. package/components/common/monitor/advanced/tools/chartOptionsModal/ChartOptionsModal.vue +569 -569
  37. package/components/common/monitor/advanced/tools/chartOptionsModal/{notification/Notification.vue → Notification.vue} +6 -8
  38. package/components/common/monitor/advanced/tools/chartOptionsModal/{notification/New.vue → NotificationNew.vue} +1 -1
  39. package/components/common/monitor/advanced/tools/chartOptionsModal/{notification/Old.vue → NotificationOld.vue} +5 -1
  40. package/components/common/monitor/advanced/tools/chartOptionsModal/actions/Actions.vue +13 -9
  41. package/components/common/monitor/advanced/tools/chartOptionsModal/actions/{New.vue → ActionsNew.vue} +3 -6
  42. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/Counters.vue +44 -12
  43. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/table/Table.vue +7 -8
  44. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/table/{new/New.vue → tableNew/TableNew.vue} +2 -2
  45. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/table/{new → tableNew}/config/tableData.ts +1 -1
  46. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/table/{old/Old.vue → tableOld/TableOld.vue} +1 -1
  47. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/table/{old → tableOld}/lib/config/tableConfig.ts +1 -1
  48. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/timespan/Timespan.vue +36 -9
  49. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/timespan/object/Object.vue +9 -8
  50. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/timespan/object/{new/New.vue → objectNew/ObjectNew.vue} +2 -2
  51. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/timespan/object/{new → objectNew}/lib/config/tableData.ts +1 -1
  52. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/timespan/object/{old/Old.vue → objectOld/ObjectOld.vue} +2 -1
  53. package/components/common/monitor/advanced/tools/chartOptionsModal/metrics/Metrics.vue +7 -8
  54. package/components/common/monitor/overview/OverviewNew.vue +1 -1
  55. package/components/common/monitor/overview/OverviewOld.vue +1 -1
  56. package/components/common/monitor/overview/filters/FiltersNew.vue +0 -1
  57. package/components/common/monitor/overview/filters/FiltersOld.vue +0 -1
  58. package/components/common/pages/hardwareHealth/historyTestimony/GraphNew.vue +2 -2
  59. package/lib/models/interfaces.ts +0 -1
  60. package/package.json +1 -1
  61. package/components/common/configure/advancedSystemSettings/New.vue +0 -37
  62. package/components/common/configure/advancedSystemSettings/Old.vue +0 -36
  63. package/components/common/configure/advancedSystemSettings/tableView/field/New.vue +0 -88
  64. package/components/common/configure/advancedSystemSettings/tableView/field/Old.vue +0 -73
  65. package/components/common/configure/advancedSystemSettings/tableView/field/lib/config/index.ts +0 -10
  66. package/components/common/configure/advancedSystemSettings/tableView/field/lib/models/enums.ts +0 -14
  67. package/components/common/configure/advancedSystemSettings/tableView/new/lib/config/index.ts +0 -112
  68. /package/components/common/graph/{Old.vue → GraphOld.vue} +0 -0
  69. /package/components/common/graph/{new → graphNew}/EmptyBlock.vue +0 -0
  70. /package/components/common/graph/{new → graphNew}/lib/models/enums.ts +0 -0
  71. /package/components/common/monitor/advanced/{New.vue → AdvancedNew.vue} +0 -0
  72. /package/components/common/monitor/advanced/{Old.vue → AdvancedOld.vue} +0 -0
  73. /package/components/common/monitor/advanced/graphView/{Old.vue → GraphViewOld.vue} +0 -0
  74. /package/components/common/monitor/advanced/table/{new → tableNew}/lib/utils/constructBody.ts +0 -0
  75. /package/components/common/monitor/advanced/table/{old → tableOld}/lib/config/performanceDatatable.ts +0 -0
  76. /package/components/common/monitor/advanced/tools/chartOptionsModal/{New.vue → ChartOptionsModalNew.vue} +0 -0
  77. /package/components/common/monitor/advanced/tools/chartOptionsModal/{Old.vue → ChartOptionsModalOld.vue} +0 -0
  78. /package/components/common/monitor/advanced/tools/chartOptionsModal/actions/{Old.vue → ActionsOld.vue} +0 -0
  79. /package/components/common/monitor/advanced/tools/chartOptionsModal/counters/{New.vue → CountersNew.vue} +0 -0
  80. /package/components/common/monitor/advanced/tools/chartOptionsModal/counters/{Old.vue → CountersOld.vue} +0 -0
  81. /package/components/common/monitor/advanced/tools/chartOptionsModal/counters/table/{new → tableNew}/config/options.ts +0 -0
  82. /package/components/common/monitor/advanced/tools/chartOptionsModal/counters/table/{new → tableNew}/utils/constructTable.ts +0 -0
  83. /package/components/common/monitor/advanced/tools/chartOptionsModal/counters/table/{old → tableOld}/lib/models/types.ts +0 -0
  84. /package/components/common/monitor/advanced/tools/chartOptionsModal/counters/timespan/{New.vue → TimespanNew.vue} +0 -0
  85. /package/components/common/monitor/advanced/tools/chartOptionsModal/counters/timespan/{Old.vue → TimespanOld.vue} +0 -0
  86. /package/components/common/monitor/advanced/tools/chartOptionsModal/counters/timespan/object/{new → objectNew}/lib/config/options.ts +0 -0
  87. /package/components/common/monitor/advanced/tools/chartOptionsModal/counters/timespan/object/{new → objectNew}/lib/utils/constructTable.ts +0 -0
  88. /package/components/common/monitor/advanced/tools/chartOptionsModal/metrics/{New.vue → MetricsNew.vue} +0 -0
  89. /package/components/common/monitor/advanced/tools/chartOptionsModal/metrics/{Old.vue → MetricsOld.vue} +0 -0
@@ -1,29 +1,72 @@
1
1
  <template>
2
- <ui-data-table
3
- :data="data"
4
- :options="options"
5
- :total-pages="props.totalPages"
6
- :total-items="props.totalItems"
7
- :texts="texts"
8
- :skeleton="tableSkeleton"
9
- :loading="props.isLoading"
10
- :size="tableSize"
11
- test-id="advanced-system-settings-table"
12
- >
13
- <template #value="{ item }">
14
- <common-configure-advanced-system-settings-table-view-field
15
- :data="item.data"
16
- @change="emits('change-setting', $event, item.data.key)"
17
- @error-message="emits('update-invalid-fields', $event, item.data.key)"
18
- />
19
- </template>
20
- <template v-if="props.isEdit" #footerActions>
21
- <p class="table-items-count-text">
22
- {{ tableBodyItems.length }}
23
- {{ localization.advancedSystemSettings.keysCountText }}
24
- </p>
25
- </template>
26
- </ui-data-table>
2
+ <div class="device-table-container">
3
+ <ui-data-table
4
+ :data="data"
5
+ :options="options"
6
+ :total-pages="props.totalPages"
7
+ :total-items="props.totalItems"
8
+ :texts="texts"
9
+ :default-layout="false"
10
+ :skeleton="tableSkeleton"
11
+ test-id="compute-resource-table"
12
+ class="device-table"
13
+ size="sm"
14
+ @select-row="onSelectRow"
15
+ >
16
+ <template #icon="{ item }">
17
+ <span :class="['device-table__icon', item.data.iconClassName]" />
18
+ <span class="device-table__text text-ellipsis">
19
+ {{ item.text }}
20
+ </span>
21
+ </template>
22
+
23
+ <template #progress="{ item }">
24
+ <div class="progress flex items-center justify-between w-full">
25
+ <div class="progress-line">
26
+ <div
27
+ v-if="item.data"
28
+ :style="`width: ${item.data}%`"
29
+ class="progress-line-fill"
30
+ ></div>
31
+ </div>
32
+ <div
33
+ :class="[
34
+ 'progress-text',
35
+ {
36
+ 'progress-full': item.data === 100,
37
+ },
38
+ ]"
39
+ >
40
+ {{ item.text }}
41
+ </div>
42
+ </div>
43
+ </template>
44
+
45
+ <template #status="{ item }">
46
+ <ui-chip
47
+ :test-id="item.data.testId"
48
+ :color="item.data.chipColor"
49
+ size="sm"
50
+ rounded
51
+ >
52
+ <ui-icon
53
+ :name="item.data.icon"
54
+ width="14px"
55
+ height="14px"
56
+ class="chip-icon"
57
+ ></ui-icon>
58
+ {{ item.text }}
59
+ </ui-chip>
60
+ </template>
61
+
62
+ <template #skeleton-header>
63
+ <div class="flex justify-between items-center">
64
+ <ui-skeleton-item width="80" height="20" />
65
+ <ui-skeleton-item width="88" height="28" border-radius="6" />
66
+ </div>
67
+ </template>
68
+ </ui-data-table>
69
+ </div>
27
70
  </template>
28
71
 
29
72
  <script lang="ts" setup>
@@ -33,34 +76,22 @@ import type {
33
76
  UI_I_DataTableHeader,
34
77
  UI_I_DataTableBody,
35
78
  UI_I_TableTexts,
36
- UI_I_DataTableSkeleton,
37
- UI_I_DataTableOptions,
38
79
  } from '~/node_modules/bfg-uikit/components/ui/dataTable/models/interfaces'
39
- import type { UI_I_AdvancedSystemSetting } from '~/store/inventory/modules/configure/advancedSystemSettings/lib/models/interfaces'
40
- import type { UI_I_AdvancedSystemSettingsEditData } from '~/components/common/configure/advancedSystemSettings/tableView/old/lib/models/interfaces'
80
+ import type { UI_I_DataTableSkeleton } from '~/node_modules/bfg-uikit/components/ui/dataTable/models/interfaces'
41
81
  import {
42
- optionsFunc,
82
+ options,
43
83
  getHeaderDataFunc,
44
84
  getBodyDataFunc,
45
- } from '~/components/common/configure/advancedSystemSettings/tableView/new/lib/config'
85
+ } from '~/components/common/wizards/vm/migrate/steps/computeResource/tableView/new/lib/config/hostTable'
46
86
 
87
+ const selectedDataLocal = defineModel<number | null>({ required: true })
47
88
  const props = defineProps<{
48
- dataTable: UI_I_AdvancedSystemSetting[]
89
+ dataTable: any[]
49
90
  totalItems: number
50
91
  totalPages: number
51
- isLoading: boolean
52
92
  isEdit: boolean
53
93
  }>()
54
94
 
55
- const emits = defineEmits<{
56
- (
57
- event: 'change-setting',
58
- value1: UI_I_AdvancedSystemSettingsEditData['value'],
59
- value2: string
60
- ): void
61
- (event: 'update-invalid-fields', value1: string, value2: string): void
62
- }>()
63
-
64
95
  const localization = computed<UI_I_Localization>(() => useLocal())
65
96
 
66
97
  const texts = computed<UI_I_TableTexts>(() => ({
@@ -79,45 +110,84 @@ const texts = computed<UI_I_TableTexts>(() => ({
79
110
  }))
80
111
 
81
112
  const tableSkeleton = ref<UI_I_DataTableSkeleton>({
82
- columnsCount: 3,
113
+ columnsCount: 4,
83
114
  headColumns: [],
84
115
  bodyColumns: [],
85
116
  withoutPagination: true,
86
117
  })
87
118
 
88
119
  const data = computed<UI_I_DataTable>(() => ({
89
- id: 'advanced-system-settings-table',
90
- header: tableHeadItems.value,
91
- body: tableBodyItems.value,
120
+ id: 'compute-resource-host-table',
121
+ title: `${localization.value.common.hosts} (${props.totalItems})`,
122
+ header: deviceHeadItems.value,
123
+ body: deviceBodyItems.value,
92
124
  }))
93
125
 
94
- const tableSize = computed<string>(() => (props.isEdit ? 'sm' : 'md'))
95
-
96
- const options = computed<UI_I_DataTableOptions>(() => optionsFunc(props.isEdit))
97
-
98
- const tableHeadItems = computed<UI_I_DataTableHeader[]>(() =>
99
- getHeaderDataFunc(localization.value, props.isEdit)
126
+ const deviceHeadItems = computed<UI_I_DataTableHeader[]>(() =>
127
+ getHeaderDataFunc(localization.value)
100
128
  )
101
129
 
102
- const tableBodyItems = ref<UI_I_DataTableBody[]>([])
130
+ const deviceBodyItems = ref<UI_I_DataTableBody[]>([])
103
131
  watch(
104
132
  () => props.dataTable,
105
- (newValue: UI_I_AdvancedSystemSetting[]) => {
133
+ (newValue: UI_T_ComputeResourceTableItem[]) => {
106
134
  if (!newValue?.length) {
107
- tableBodyItems.value = []
135
+ deviceBodyItems.value = []
108
136
  return
109
137
  }
110
138
 
111
- tableBodyItems.value = getBodyDataFunc(newValue, props.isEdit)
139
+ deviceBodyItems.value = getBodyDataFunc(newValue, localization.value)
112
140
  },
113
141
  { deep: true, immediate: true }
114
142
  )
143
+
144
+ const onSelectRow = (value: UI_I_DataTableBody[]): void => {
145
+ selectedDataLocal.value = value?.[0].row
146
+ }
115
147
  </script>
116
148
 
117
149
  <style lang="scss" scoped>
118
- .table-items-count-text {
119
- margin-left: auto;
120
- font-size: 12px;
121
- color: #9da6ad;
150
+ .device-table-container {
151
+ margin: 20px 0 24px;
152
+ :deep(.column-manager-button.sm span) {
153
+ font-weight: 500;
154
+ }
155
+ :deep(.table-title .title-container h6) {
156
+ font-size: 12px;
157
+ }
158
+ .device-table {
159
+ &__icon {
160
+ margin-right: 4px;
161
+ }
162
+ &__text {
163
+ font-size: 12px;
164
+ }
165
+ }
166
+ .progress {
167
+ &-line {
168
+ height: 12px;
169
+ width: 100%;
170
+ background: #e9ebed8f;
171
+ border-radius: 6px;
172
+
173
+ &-fill {
174
+ height: 12px;
175
+ min-width: 12px;
176
+ background: #008fd6;
177
+ border-radius: 6px;
178
+ }
179
+ }
180
+
181
+ &-text {
182
+ width: 53px;
183
+ min-width: 53px;
184
+ margin-left: 8px;
185
+ text-align: right;
186
+
187
+ &.progress-full {
188
+ color: #ea3223;
189
+ }
190
+ }
191
+ }
122
192
  }
123
193
  </style>
@@ -0,0 +1,308 @@
1
+ import type {
2
+ UI_I_DataTableBody,
3
+ UI_I_DataTableOptions,
4
+ UI_I_DataTableHeader,
5
+ } from '~/node_modules/bfg-uikit/components/ui/dataTable/models/interfaces'
6
+ import type { UI_I_Localization } from '~/lib/models/interfaces'
7
+ import type { UI_I_HostTableItem } from '~/components/common/wizards/vm/migrate/steps/computeResource/tableView/lib/models/interfaces'
8
+ import {
9
+ UI_E_DeviceStatus,
10
+ UI_E_DeviceStatusChipColor,
11
+ UI_E_DeviceStatusIcon,
12
+ } from '~/components/common/wizards/vm/migrate/steps/computeResource/tableView/new/lib/models/enums'
13
+ import {
14
+ hostIconByState,
15
+ hostLocalizationByState,
16
+ } from '~/components/common/lib/config/states'
17
+
18
+ // Маппинг для статусов
19
+ const STATUS_MAPPING = {
20
+ [UI_E_DeviceStatus.Unknown]: {
21
+ icon: UI_E_DeviceStatusIcon.HelpIcon,
22
+ chipColor: UI_E_DeviceStatusChipColor.Primary,
23
+ },
24
+ [UI_E_DeviceStatus.Supported]: {
25
+ icon: UI_E_DeviceStatusIcon.StatusCheck,
26
+ chipColor: UI_E_DeviceStatusChipColor.Green,
27
+ },
28
+ [UI_E_DeviceStatus.NotSupported]: {
29
+ icon: UI_E_DeviceStatusIcon.Close,
30
+ chipColor: UI_E_DeviceStatusChipColor.Red,
31
+ },
32
+ }
33
+
34
+ export const getHeaderDataFunc = (
35
+ localization: UI_I_Localization
36
+ ): UI_I_DataTableHeader[] => [
37
+ {
38
+ col: 'col0',
39
+ colName: 'name',
40
+ text: localization.common.name,
41
+ isSortable: true,
42
+ sort: 'asc',
43
+ width: '180px',
44
+ show: true,
45
+ filter: false,
46
+ },
47
+ {
48
+ col: 'col1',
49
+ colName: 'state',
50
+ text: localization.inventorySummary.state,
51
+ isSortable: true,
52
+ sort: 'asc',
53
+ width: '96px',
54
+ show: true,
55
+ filter: false,
56
+ },
57
+ {
58
+ col: 'col2',
59
+ colName: 'cluster',
60
+ text: localization.common.cluster,
61
+ isSortable: true,
62
+ sort: 'asc',
63
+ width: '96px',
64
+ show: true,
65
+ filter: false,
66
+ },
67
+ {
68
+ col: 'col3',
69
+ colName: 'fault_domain',
70
+ text: localization.common.faultDomain,
71
+ isSortable: true,
72
+ sort: 'asc',
73
+ width: '96px',
74
+ show: true,
75
+ filter: false,
76
+ },
77
+ {
78
+ col: 'col4',
79
+ colName: 'consumed_cpu',
80
+ text: `${localization.common.consumedCpu} %`,
81
+ isSortable: true,
82
+ sort: 'asc',
83
+ width: '96px',
84
+ show: true,
85
+ filter: false,
86
+ },
87
+ {
88
+ col: 'col5',
89
+ colName: 'consumed_mem',
90
+ text: `${localization.common.consumedMemory} %`,
91
+ isSortable: true,
92
+ sort: 'asc',
93
+ width: '96px',
94
+ show: true,
95
+ filter: false,
96
+ },
97
+ {
98
+ col: 'col6',
99
+ colName: 'ha_state',
100
+ text: localization.common.haState,
101
+ isSortable: true,
102
+ sort: 'asc',
103
+ width: '96px',
104
+ show: true,
105
+ filter: false,
106
+ },
107
+ {
108
+ col: 'col7',
109
+ colName: 'uptime',
110
+ text: localization.inventorySummary.uptime,
111
+ isSortable: true,
112
+ sort: 'asc',
113
+ width: '96px',
114
+ show: true,
115
+ filter: false,
116
+ },
117
+ {
118
+ col: 'col8',
119
+ colName: 'cert_valid_to',
120
+ text: localization.common.certificateValidTo,
121
+ isSortable: true,
122
+ sort: 'asc',
123
+ width: '96px',
124
+ show: true,
125
+ filter: false,
126
+ },
127
+ {
128
+ col: 'col9',
129
+ colName: 'mem_size',
130
+ text: `${localization.common.memorySize} (${localization.common.mb})`,
131
+ isSortable: true,
132
+ sort: 'asc',
133
+ width: '96px',
134
+ show: true,
135
+ filter: false,
136
+ },
137
+ {
138
+ col: 'col10',
139
+ colName: 'cpus',
140
+ text: localization.common.cpus,
141
+ isSortable: true,
142
+ sort: 'asc',
143
+ width: '96px',
144
+ show: true,
145
+ filter: false,
146
+ },
147
+ {
148
+ col: 'col11',
149
+ colName: 'nics',
150
+ text: localization.inventorySummary.nics,
151
+ isSortable: true,
152
+ sort: 'asc',
153
+ width: '96px',
154
+ show: true,
155
+ filter: false,
156
+ },
157
+ {
158
+ col: 'col12',
159
+ colName: 'version',
160
+ text: localization.common.version,
161
+ isSortable: true,
162
+ sort: 'asc',
163
+ width: '96px',
164
+ show: true,
165
+ filter: false,
166
+ },
167
+ {
168
+ col: 'col13',
169
+ colName: 'alarm_action',
170
+ text: localization.common.alarmActions,
171
+ isSortable: true,
172
+ sort: 'asc',
173
+ width: '96px',
174
+ show: true,
175
+ filter: false,
176
+ },
177
+ ]
178
+ export const options: UI_I_DataTableOptions = {
179
+ perPageOptions: [{ text: '10', value: 100, default: true }],
180
+ isSelectable: true,
181
+ selectType: 'radio',
182
+ showPagination: false,
183
+ showPageInfo: false,
184
+ isSortable: true,
185
+ server: true,
186
+ isResizable: true,
187
+ showSelectedRows: false,
188
+ showColumnManager: true,
189
+ inModal: true,
190
+ inBlock: false,
191
+ // isFocusable: false,
192
+ // showPaginationOnTop: false,
193
+ // showSearch: false,
194
+ // withActions: false,
195
+ // showExport: false,
196
+ // withCollapse: false,
197
+ }
198
+
199
+ export const getBodyDataFunc = (
200
+ bodyData: UI_I_HostTableItem[],
201
+ localization: UI_I_Localization
202
+ ): UI_I_DataTableBody[] => {
203
+ const { $number } = useNuxtApp() as any
204
+
205
+ return bodyData.map((host, index: number) => {
206
+ const statusKey = host.state
207
+ ? UI_E_DeviceStatus.Unknown
208
+ : UI_E_DeviceStatus.Supported
209
+ const statusData = {
210
+ ...STATUS_MAPPING[statusKey],
211
+ testId: `${host.name}-${index}-status`,
212
+ }
213
+
214
+ return {
215
+ row: index,
216
+ collapse: false,
217
+ isHiddenCollapse: false,
218
+ collapseToggle: false,
219
+
220
+ data: [
221
+ {
222
+ key: 'icon',
223
+ col: 'col0',
224
+ text: host.name,
225
+ data: `vsphere-icon-${hostIconByState[host.state]}`,
226
+ testId: `migrate-host-table-item-${index}`,
227
+ },
228
+
229
+ {
230
+ key: 'status',
231
+ col: 'col1',
232
+ text: localization.common[hostLocalizationByState[host.state]],
233
+ testId: `migrate-host-table-item-${index}`,
234
+ data: statusData,
235
+ },
236
+ {
237
+ col: 'col2',
238
+ text: host.cluster,
239
+ testId: `migrate-host-table-item-${index}`,
240
+ },
241
+ {
242
+ col: 'col3',
243
+ text: host.fault_domain,
244
+ testId: `migrate-host-table-item-${index}`,
245
+ },
246
+ {
247
+ key: 'progress',
248
+ col: 'col4',
249
+ text: `${host.consumed_cpu.toFixed(2)}%`,
250
+ data: host.consumed_cpu,
251
+ testId: `migrate-host-table-item-${index}`,
252
+ },
253
+ {
254
+ key: 'progress',
255
+ col: 'col5',
256
+ text: `${host.consumed_mem.toFixed(2)}%`,
257
+ data: host.consumed_mem,
258
+ testId: `migrate-host-table-item-${index}`,
259
+ },
260
+ {
261
+ col: 'col6',
262
+ text: host.ha_state,
263
+ testId: `migrate-host-table-item-${index}`,
264
+ },
265
+ {
266
+ col: 'col7',
267
+ text: host.uptime + '',
268
+ testId: `migrate-host-table-item-${index}`,
269
+ },
270
+ {
271
+ col: 'col8',
272
+ text: host.cert_valid_to,
273
+ testId: `migrate-host-table-item-${index}`,
274
+ },
275
+
276
+ {
277
+ col: 'col9',
278
+ text: `${$number.format(host.mem_size, 'en')} ${
279
+ localization.common.mb
280
+ }`,
281
+ testId: `migrate-host-table-item-${index}`,
282
+ },
283
+ {
284
+ col: 'col10',
285
+ text: host.cpus + '',
286
+ testId: `migrate-host-table-item-${index}`,
287
+ },
288
+ {
289
+ col: 'col11',
290
+ text: host.nics + '',
291
+ testId: `migrate-host-table-item-${index}`,
292
+ },
293
+ {
294
+ col: 'col12',
295
+ text: host.version,
296
+ testId: `migrate-host-table-item-${index}`,
297
+ },
298
+ {
299
+ key: 'status',
300
+ col: 'col13',
301
+ text: host.alarm_action,
302
+ data: statusData,
303
+ testId: `migrate-host-table-item-${index}`,
304
+ },
305
+ ],
306
+ }
307
+ })
308
+ }
@@ -13,10 +13,10 @@
13
13
  server-off
14
14
  >
15
15
  <template #value="{ item }">
16
- <common-configure-advanced-system-settings-table-view-field
16
+ <common-configure-advanced-system-settings-table-view-old-field
17
17
  :data="item.data"
18
- @change="emits('change-setting', $event, item.data.key)"
19
- @error-message="emits('update-invalid-fields', $event, item.data.key)"
18
+ @change="onChangeSetting($event, item.data.key)"
19
+ @error-message="onUpdateInvalidFields($event, item.data.key)"
20
20
  />
21
21
  </template>
22
22
  </atoms-table-data-grid>
@@ -29,12 +29,26 @@ import type {
29
29
  UI_I_HeadItem,
30
30
  UI_I_BodyItem,
31
31
  } from '~/components/atoms/table/dataGrid/lib/models/interfaces'
32
- import type { UI_I_Localization } from '~/lib/models/interfaces'
33
- import type { UI_I_Pagination } from '~/lib/models/table/interfaces'
32
+ import type {
33
+ UI_I_ArbitraryObject,
34
+ UI_I_Localization,
35
+ } from '~/lib/models/interfaces'
36
+ import type {
37
+ API_UI_I_DataTable,
38
+ UI_I_Pagination,
39
+ } from '~/lib/models/table/interfaces'
34
40
  import type { UI_I_AdvancedSystemSetting } from '~/store/inventory/modules/configure/advancedSystemSettings/lib/models/interfaces'
35
41
  import type { UI_I_AdvancedSystemSettingsEditData } from '~/components/common/configure/advancedSystemSettings/tableView/old/lib/models/interfaces'
36
42
  import * as table from '~/components/common/configure/advancedSystemSettings/tableView/old/lib/config/table'
37
43
 
44
+ const settings = defineModel<API_UI_I_DataTable<UI_I_AdvancedSystemSetting[]>>(
45
+ 'settings',
46
+ { required: true }
47
+ )
48
+ const invalidFields = defineModel<string[]>('invalid-fields', {
49
+ required: false,
50
+ })
51
+
38
52
  const props = defineProps<{
39
53
  dataTable: UI_I_AdvancedSystemSetting[]
40
54
  totalItems: number
@@ -42,17 +56,29 @@ const props = defineProps<{
42
56
  isEdit: boolean
43
57
  }>()
44
58
 
45
- const emits = defineEmits<{
46
- (
47
- event: 'change-setting',
48
- value1: UI_I_AdvancedSystemSettingsEditData['value'],
49
- value2: string
50
- ): void
51
- (event: 'update-invalid-fields', value1: string, value2: string): void
52
- }>()
53
-
54
59
  const localization = computed<UI_I_Localization>(() => useLocal())
55
60
 
61
+ const onChangeSetting = (
62
+ value: UI_I_AdvancedSystemSettingsEditData['value'],
63
+ key: string
64
+ ): void => {
65
+ settings.value.items = settings.value.items.map((item) => {
66
+ if (item.key === key) {
67
+ item.value = value
68
+ }
69
+ return item
70
+ })
71
+ }
72
+
73
+ const invalidFieldsLocal = ref<UI_I_ArbitraryObject<string>>({})
74
+ const onUpdateInvalidFields = (value: string, key: string): void => {
75
+ invalidFieldsLocal.value[key] = value
76
+ if (invalidFields.value)
77
+ invalidFields.value = Object.values(invalidFieldsLocal.value).filter(
78
+ (error) => error
79
+ )
80
+ }
81
+
56
82
  const paginationLocal = ref<UI_I_Pagination>({
57
83
  page: 1,
58
84
  pageSize: 100,
@@ -82,6 +108,7 @@ watch(
82
108
  @include flex($dir: column);
83
109
  overflow: hidden;
84
110
  height: inherit;
111
+ max-height: 250px;
85
112
  .data-table {
86
113
  @include flex($dir: column);
87
114
  flex-direction: column;