bfg-common 1.4.853 → 1.4.855

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 (90) hide show
  1. package/.idea/inspectionProfiles/Project_Default.xml +1 -2
  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 -2
  7. package/assets/localization/local_en.json +1 -2
  8. package/assets/localization/local_hy.json +1 -2
  9. package/assets/localization/local_kk.json +1 -2
  10. package/assets/localization/local_ru.json +1 -2
  11. package/assets/localization/local_zh.json +1 -2
  12. package/components/common/browse/blocks/lib/models/types.ts +1 -1
  13. package/components/common/browse/lib/models/interfaces.ts +5 -5
  14. package/components/common/chartOptionsModal/counters/timespan/form/Form.vue +313 -40
  15. package/components/common/diagramMain/Header.vue +211 -211
  16. package/components/common/diagramMain/adapter/AdapterItems.vue +61 -61
  17. package/components/common/diagramMain/lib/config/initial.ts +50 -50
  18. package/components/common/diagramMain/lib/models/types.ts +21 -21
  19. package/components/common/diagramMain/lib/utils/utils.ts +331 -331
  20. package/components/common/diagramMain/modals/ManagePhysicalAdaptersModal.vue +330 -330
  21. package/components/common/diagramMain/modals/editSettings/ConfirmTeamingSettingsModal.vue +40 -40
  22. package/components/common/diagramMain/modals/editSettings/EditSettings.vue +497 -497
  23. package/components/common/diagramMain/modals/editSettings/EditSettingsModal.vue +812 -812
  24. package/components/common/diagramMain/modals/editSettings/tabs/NetworkProperties.vue +214 -214
  25. package/components/common/diagramMain/modals/editSettings/tabs/Security.vue +189 -189
  26. package/components/common/diagramMain/modals/editSettings/tabs/SwitchProperties.vue +163 -163
  27. package/components/common/diagramMain/modals/editSettings/tabs/TeamingFailover.vue +175 -175
  28. package/components/common/diagramMain/modals/editSettings/tabs/port/IpvFourSettings.vue +346 -346
  29. package/components/common/diagramMain/modals/editSettings/tabs/port/PortProperties.vue +205 -205
  30. package/components/common/diagramMain/modals/lib/config/diagramConfig.ts +23 -23
  31. package/components/common/diagramMain/modals/lib/config/initial.ts +180 -180
  32. package/components/common/diagramMain/modals/lib/config/vmKernelAdapter.ts +90 -90
  33. package/components/common/diagramMain/modals/lib/mappers/mappers.ts +87 -87
  34. package/components/common/diagramMain/modals/lib/utils/index.ts +24 -24
  35. package/components/common/diagramMain/modals/migrateVmkernelAdapter/lib/config/steps.ts +114 -114
  36. package/components/common/diagramMain/modals/migrateVmkernelAdapter/steps/ConnectionSettings.vue +169 -169
  37. package/components/common/diagramMain/modals/migrateVmkernelAdapter/steps/SelectVmkernelAdapter.vue +159 -159
  38. package/components/common/diagramMain/modals/migrateVmkernelAdapter/validations/common.ts +14 -14
  39. package/components/common/diagramMain/modals/migrateVmkernelAdapter/validations/connectionSettings.ts +137 -137
  40. package/components/common/diagramMain/modals/migrateVmkernelAdapter/validations/selectVmkernelAdapter.ts +52 -52
  41. package/components/common/diagramMain/modals/migrateVmkernelAdapter/validations/validations.ts +19 -19
  42. package/components/common/diagramMain/port/Ports.vue +47 -47
  43. package/components/common/monitor/advanced/Advanced.vue +3 -0
  44. package/components/common/monitor/advanced/AdvancedNew.vue +2 -0
  45. package/components/common/monitor/advanced/AdvancedOld.vue +2 -0
  46. package/components/common/monitor/advanced/tools/Tools.vue +3 -0
  47. package/components/common/monitor/advanced/tools/ToolsNew.vue +2 -0
  48. package/components/common/monitor/advanced/tools/ToolsOld.vue +2 -0
  49. package/components/common/monitor/advanced/tools/chartOptionsModal/ChartOptionsModal.vue +114 -113
  50. package/components/common/monitor/advanced/tools/chartOptionsModal/Notification.vue +20 -13
  51. package/components/common/monitor/advanced/tools/chartOptionsModal/actions/Actions.vue +73 -30
  52. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/Counters.vue +56 -75
  53. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/table/Table.vue +58 -19
  54. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/table/{tableOld/lib → lib}/config/tableConfig.ts +1 -1
  55. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/table/lib/config/utils.ts +1040 -1040
  56. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/timespan/Timespan.vue +47 -71
  57. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/timespan/object/Object.vue +26 -21
  58. package/components/common/monitor/advanced/tools/chartOptionsModal/metrics/Metrics.vue +29 -17
  59. package/components/common/monitor/overview/filters/customIntervalModal/CustomIntervalModalNew.vue +3 -8
  60. package/components/common/pages/tasks/Tasks.vue +14 -0
  61. package/components/common/pages/tasks/table/Table.vue +43 -0
  62. package/components/common/pages/tasks/table/lib/config/config.ts +1 -1
  63. package/package.json +2 -2
  64. package/components/common/chartOptionsModal/counters/timespan/form/FormNew.vue +0 -254
  65. package/components/common/chartOptionsModal/counters/timespan/form/FormOld.vue +0 -372
  66. package/components/common/monitor/advanced/tools/chartOptionsModal/ChartOptionsModalNew.vue +0 -190
  67. package/components/common/monitor/advanced/tools/chartOptionsModal/ChartOptionsModalOld.vue +0 -189
  68. package/components/common/monitor/advanced/tools/chartOptionsModal/NotificationNew.vue +0 -20
  69. package/components/common/monitor/advanced/tools/chartOptionsModal/NotificationOld.vue +0 -27
  70. package/components/common/monitor/advanced/tools/chartOptionsModal/actions/ActionsNew.vue +0 -145
  71. package/components/common/monitor/advanced/tools/chartOptionsModal/actions/ActionsOld.vue +0 -108
  72. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/CountersNew.vue +0 -97
  73. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/CountersOld.vue +0 -110
  74. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/table/tableNew/TableNew.vue +0 -46
  75. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/table/tableNew/config/options.ts +0 -19
  76. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/table/tableNew/config/tableData.ts +0 -71
  77. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/table/tableNew/utils/constructTable.ts +0 -29
  78. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/table/tableOld/TableOld.vue +0 -85
  79. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/timespan/TimespanNew.vue +0 -150
  80. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/timespan/TimespanOld.vue +0 -95
  81. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/timespan/object/objectNew/ObjectNew.vue +0 -56
  82. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/timespan/object/objectNew/lib/config/options.ts +0 -25
  83. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/timespan/object/objectNew/lib/config/tableData.ts +0 -47
  84. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/timespan/object/objectNew/lib/utils/constructTable.ts +0 -22
  85. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/timespan/object/objectOld/ObjectOld.vue +0 -84
  86. package/components/common/monitor/advanced/tools/chartOptionsModal/metrics/MetricsOld.vue +0 -32
  87. package/components/common/monitor/advanced/tools/chartOptionsModal/metrics/metricsNew/MetricsNew.vue +0 -101
  88. package/components/common/monitor/advanced/tools/chartOptionsModal/metrics/metricsNew/lib/utils/constructAccordion.ts +0 -32
  89. package/lib/utils/date.ts +0 -12
  90. /package/components/common/monitor/advanced/tools/chartOptionsModal/counters/table/{tableOld/lib → lib}/models/types.ts +0 -0
@@ -1,169 +1,169 @@
1
- <template>
2
- <div class="wizard-content-container add-networking-step">
3
- <div class="wizard-content wizard-content-port">
4
- <atoms-alert
5
- v-if="props.alertMessages.length"
6
- status="alert-danger"
7
- :items="props.alertMessages"
8
- test-id="connection-settings-alert"
9
- @remove="onHideAlert"
10
- />
11
- <form>
12
- <div class="horizontal-flex-container">
13
- <label class="property-label-group" for="network-label">
14
- {{ localization.common.networkLabel }}
15
- </label>
16
- <div class="margin-left-property-value-group">
17
- <div class="property-value-group">
18
- <fieldset>
19
- <atoms-tooltip-error
20
- :has-error="!!props.messagesFields.name.field"
21
- >
22
- <template #elem>
23
- <input
24
- id="network-label"
25
- v-model="fields.networkLabel"
26
- name="network-label"
27
- data-id="network-label-input"
28
- type="text"
29
- :class="[
30
- 'tooltip-field port-properties-network-label',
31
- {
32
- 'danger-not-valid': props.messagesFields.name.field,
33
- },
34
- ]"
35
- @click.stop
36
- />
37
- </template>
38
- <template #content>
39
- {{ props.messagesFields.name.field }}
40
- </template>
41
- </atoms-tooltip-error>
42
- </fieldset>
43
- </div>
44
- </div>
45
- </div>
46
-
47
- <div class="horizontal-flex-container port-properties-padding">
48
- <label class="property-label-group">
49
- {{ localization.common.vlanId }}
50
- </label>
51
- <div class="margin-left-property-value-group">
52
- <div class="property-value-group">
53
- <fieldset>
54
- <div class="flex-align-center">
55
- <atoms-combobox
56
- v-model.trim="fields.vlanId"
57
- :items="vlanIdSelectData"
58
- :class="{
59
- 'danger-not-valid': props.messagesFields.vlan.field,
60
- }"
61
- test-id="vlan-combobox"
62
- @click.stop
63
- />
64
- <div
65
- v-show="props.messagesFields.vlan.field"
66
- class="flex-align-center"
67
- >
68
- <div class="tooltip">
69
- <atoms-the-icon
70
- width="24px"
71
- height="24px"
72
- class="is-error tooltip-trigger"
73
- name="info"
74
- />
75
- <div class="tooltip-top-left tooltip-content error">
76
- {{ props.messagesFields.vlan.field }}
77
- </div>
78
- </div>
79
- </div>
80
- </div>
81
- </fieldset>
82
- </div>
83
- </div>
84
- </div>
85
- </form>
86
- </div>
87
- </div>
88
- </template>
89
-
90
- <script setup lang="ts">
91
- import type {
92
- UI_I_ArbitraryObject,
93
- UI_I_Localization,
94
- } from '~/lib/models/interfaces'
95
- import type { UI_I_ConnectionSettings } from '~/components/common/wizards/network/add/lib/models/interfaces'
96
- import type { UI_I_ErrorFields } from '~/components/atoms/wizard/lib/models/interfaces'
97
- import { vlanIdSelectData } from '~/components/common/wizards/network/add/lib/config/config'
98
- import type Wizard from '~/components/atoms/wizard/lib/utils/utils'
99
- import {
100
- validateNetworkConnectionSettingsLocal,
101
- validateVlanIdConnectionSettingsLocal,
102
- } from '~/components/common/diagramMain/modals/migrateVmkernelAdapter/validations/validations'
103
-
104
- const props = defineProps<{
105
- connectionSettings: UI_I_ConnectionSettings
106
- alertMessages: string[]
107
- messagesFields: UI_I_ArbitraryObject<UI_I_ErrorFields>
108
- wizard: Wizard
109
- }>()
110
-
111
- const localization = computed<UI_I_Localization>(() => useLocal())
112
-
113
- const emits = defineEmits<{
114
- (
115
- event: 'change-connection-settings',
116
- connectionSettings: UI_I_ConnectionSettings
117
- ): void
118
- (event: 'hide-alert', stepId: 1): void
119
- }>()
120
-
121
- const fields = ref<UI_I_ConnectionSettings>(
122
- useDeepCopy(props.connectionSettings)
123
- )
124
-
125
- let oldFields = useDeepCopy(fields.value)
126
-
127
- watch(
128
- fields,
129
- (newFields: UI_I_ConnectionSettings) => {
130
- oldFields.vlanId !== newFields.vlanId &&
131
- validateVlanIdConnectionSettingsLocal(
132
- localization.value,
133
- newFields,
134
- props.wizard
135
- )
136
-
137
- oldFields.networkLabel !== newFields.networkLabel &&
138
- validateNetworkConnectionSettingsLocal(
139
- localization.value,
140
- newFields,
141
- props.wizard
142
- )
143
-
144
- oldFields = useDeepCopy(fields.value)
145
-
146
- emits('change-connection-settings', newFields)
147
- },
148
- { deep: true, immediate: true }
149
- )
150
-
151
- const onHideAlert = (): void => {
152
- emits('hide-alert', 1)
153
- }
154
- </script>
155
-
156
- <style scoped lang="scss">
157
- .wizard-content-container {
158
- display: flex;
159
- flex-direction: column;
160
- align-items: stretch;
161
- flex: 1 1 100%;
162
- box-sizing: border-box;
163
- padding: 16px 15px 10px 10px;
164
- overflow-y: auto;
165
- color: #333;
166
- order: 2;
167
- width: 100%;
168
- }
169
- </style>
1
+ <template>
2
+ <div class="wizard-content-container add-networking-step">
3
+ <div class="wizard-content wizard-content-port">
4
+ <atoms-alert
5
+ v-if="props.alertMessages.length"
6
+ status="alert-danger"
7
+ :items="props.alertMessages"
8
+ test-id="connection-settings-alert"
9
+ @remove="onHideAlert"
10
+ />
11
+ <form>
12
+ <div class="horizontal-flex-container">
13
+ <label class="property-label-group" for="network-label">
14
+ {{ localization.common.networkLabel }}
15
+ </label>
16
+ <div class="margin-left-property-value-group">
17
+ <div class="property-value-group">
18
+ <fieldset>
19
+ <atoms-tooltip-error
20
+ :has-error="!!props.messagesFields.name.field"
21
+ >
22
+ <template #elem>
23
+ <input
24
+ id="network-label"
25
+ v-model="fields.networkLabel"
26
+ name="network-label"
27
+ data-id="network-label-input"
28
+ type="text"
29
+ :class="[
30
+ 'tooltip-field port-properties-network-label',
31
+ {
32
+ 'danger-not-valid': props.messagesFields.name.field,
33
+ },
34
+ ]"
35
+ @click.stop
36
+ />
37
+ </template>
38
+ <template #content>
39
+ {{ props.messagesFields.name.field }}
40
+ </template>
41
+ </atoms-tooltip-error>
42
+ </fieldset>
43
+ </div>
44
+ </div>
45
+ </div>
46
+
47
+ <div class="horizontal-flex-container port-properties-padding">
48
+ <label class="property-label-group">
49
+ {{ localization.common.vlanId }}
50
+ </label>
51
+ <div class="margin-left-property-value-group">
52
+ <div class="property-value-group">
53
+ <fieldset>
54
+ <div class="flex-align-center">
55
+ <atoms-combobox
56
+ v-model.trim="fields.vlanId"
57
+ :items="vlanIdSelectData"
58
+ :class="{
59
+ 'danger-not-valid': props.messagesFields.vlan.field,
60
+ }"
61
+ test-id="vlan-combobox"
62
+ @click.stop
63
+ />
64
+ <div
65
+ v-show="props.messagesFields.vlan.field"
66
+ class="flex-align-center"
67
+ >
68
+ <div class="tooltip">
69
+ <atoms-the-icon
70
+ width="24px"
71
+ height="24px"
72
+ class="is-error tooltip-trigger"
73
+ name="info"
74
+ />
75
+ <div class="tooltip-top-left tooltip-content error">
76
+ {{ props.messagesFields.vlan.field }}
77
+ </div>
78
+ </div>
79
+ </div>
80
+ </div>
81
+ </fieldset>
82
+ </div>
83
+ </div>
84
+ </div>
85
+ </form>
86
+ </div>
87
+ </div>
88
+ </template>
89
+
90
+ <script setup lang="ts">
91
+ import type {
92
+ UI_I_ArbitraryObject,
93
+ UI_I_Localization,
94
+ } from '~/lib/models/interfaces'
95
+ import type { UI_I_ConnectionSettings } from '~/components/common/wizards/network/add/lib/models/interfaces'
96
+ import type { UI_I_ErrorFields } from '~/components/atoms/wizard/lib/models/interfaces'
97
+ import { vlanIdSelectData } from '~/components/common/wizards/network/add/lib/config/config'
98
+ import type Wizard from '~/components/atoms/wizard/lib/utils/utils'
99
+ import {
100
+ validateNetworkConnectionSettingsLocal,
101
+ validateVlanIdConnectionSettingsLocal,
102
+ } from '~/components/common/diagramMain/modals/migrateVmkernelAdapter/validations/validations'
103
+
104
+ const props = defineProps<{
105
+ connectionSettings: UI_I_ConnectionSettings
106
+ alertMessages: string[]
107
+ messagesFields: UI_I_ArbitraryObject<UI_I_ErrorFields>
108
+ wizard: Wizard
109
+ }>()
110
+
111
+ const localization = computed<UI_I_Localization>(() => useLocal())
112
+
113
+ const emits = defineEmits<{
114
+ (
115
+ event: 'change-connection-settings',
116
+ connectionSettings: UI_I_ConnectionSettings
117
+ ): void
118
+ (event: 'hide-alert', stepId: 1): void
119
+ }>()
120
+
121
+ const fields = ref<UI_I_ConnectionSettings>(
122
+ useDeepCopy(props.connectionSettings)
123
+ )
124
+
125
+ let oldFields = useDeepCopy(fields.value)
126
+
127
+ watch(
128
+ fields,
129
+ (newFields: UI_I_ConnectionSettings) => {
130
+ oldFields.vlanId !== newFields.vlanId &&
131
+ validateVlanIdConnectionSettingsLocal(
132
+ localization.value,
133
+ newFields,
134
+ props.wizard
135
+ )
136
+
137
+ oldFields.networkLabel !== newFields.networkLabel &&
138
+ validateNetworkConnectionSettingsLocal(
139
+ localization.value,
140
+ newFields,
141
+ props.wizard
142
+ )
143
+
144
+ oldFields = useDeepCopy(fields.value)
145
+
146
+ emits('change-connection-settings', newFields)
147
+ },
148
+ { deep: true, immediate: true }
149
+ )
150
+
151
+ const onHideAlert = (): void => {
152
+ emits('hide-alert', 1)
153
+ }
154
+ </script>
155
+
156
+ <style scoped lang="scss">
157
+ .wizard-content-container {
158
+ display: flex;
159
+ flex-direction: column;
160
+ align-items: stretch;
161
+ flex: 1 1 100%;
162
+ box-sizing: border-box;
163
+ padding: 16px 15px 10px 10px;
164
+ overflow-y: auto;
165
+ color: #333;
166
+ order: 2;
167
+ width: 100%;
168
+ }
169
+ </style>
@@ -1,159 +1,159 @@
1
- <template>
2
- <div class="wizard-content-container">
3
- <div class="wizard-content wizard-content-port">
4
- <atoms-alert
5
- v-if="props.alertMessages.length"
6
- status="alert-danger"
7
- :items="props.alertMessages"
8
- test-id="adapter-alert"
9
- @remove="onHideAlert"
10
- />
11
- <div class="table-top-margin-container">
12
- <atoms-table-simple-table
13
- :head-items="tableHeadItems"
14
- :body-items="tableBodyItems"
15
- :selected-row-key="selectedRowKey"
16
- editable
17
- @select="onSelectRow"
18
- />
19
- </div>
20
- <common-diagram-main-modals-view-settings-info
21
- :show="!!selectedRowData.length"
22
- :modal-tabs="modalTabs"
23
- :view-settings-fields="viewSettingsFields"
24
- :with-collapse="false"
25
- />
26
- <div
27
- v-show="!selectedRowData.length"
28
- class="table-fixed-height no-item-info"
29
- >
30
- <span>{{ localization.common.noItemSelected }}</span>
31
- </div>
32
- </div>
33
- </div>
34
- </template>
35
-
36
- <script setup lang="ts">
37
- import type { UI_I_ArbitraryObject, UI_I_Localization } from '~/lib/models/interfaces'
38
- import type {
39
- UI_I_BodyItems,
40
- UI_I_ReadyCompleteFields,
41
- UI_I_SelectVmkernelAdapter,
42
- UI_I_TableHead,
43
- } from '~/components/common/wizards/network/add/lib/models/interfaces'
44
- import type {
45
- UI_I_ModalTabs,
46
- UI_I_SelectedVmkernelAdapterTableRaw,
47
- UI_I_VmkernelAdapterTableData,
48
- } from '~/components/common/diagramMain/lib/models/interfaces'
49
- import {
50
- vmKernelAdapterViewSettingsModalTabsFunc,
51
- vmKernelAdapterViewSettingsTableHeadFunc,
52
- vmKernelAdapterTableBodyMapperFunc,
53
- vmKernelAdapterViewSettingsFunc,
54
- } from '~/components/common/diagramMain/modals/lib/config'
55
-
56
- const props = defineProps<{
57
- tableData: UI_I_VmkernelAdapterTableData[]
58
- vmkernelAdapter: UI_I_SelectVmkernelAdapter
59
- alertMessages: string[]
60
- }>()
61
-
62
- const localization = computed<UI_I_Localization>(() => useLocal())
63
-
64
- const modalTabs = computed<UI_I_ModalTabs[]>(() =>
65
- vmKernelAdapterViewSettingsModalTabsFunc(localization.value)
66
- )
67
-
68
- const viewSettingsFields = computed<UI_I_ReadyCompleteFields[]>(() =>
69
- vmKernelAdapterViewSettingsFunc(localization.value)
70
- )
71
-
72
- const tableHeadItems = computed<UI_I_TableHead[]>(() =>
73
- vmKernelAdapterViewSettingsTableHeadFunc(localization.value)
74
- )
75
-
76
- const tableBodyItems = computed<UI_I_BodyItems[][]>(() =>
77
- props.tableData.map(vmKernelAdapterTableBodyMapperFunc)
78
- )
79
-
80
- const selectedRowData = ref<UI_I_SelectedVmkernelAdapterTableRaw[]>(
81
- tableBodyItems.value.find(
82
- (item) => item[0].text === props.vmkernelAdapter.vm
83
- ) || []
84
- )
85
-
86
- const selectedRowKey = ref<number>(
87
- tableBodyItems.value.findIndex(
88
- (item) => item[0].text === props.vmkernelAdapter.vm
89
- )
90
- )
91
-
92
- const fields = ref<UI_I_SelectVmkernelAdapter>(
93
- useDeepCopy(props.vmkernelAdapter)
94
- )
95
-
96
- const onSelectRow = (index: number): void => {
97
- selectedRowData.value = tableBodyItems.value[index]
98
-
99
- const selectedVmkernelAdapter =
100
- selectedRowData.value &&
101
- selectedRowData.value[0] &&
102
- selectedRowData.value[0].text
103
-
104
- selectedVmkernelAdapter && (fields.value.vm = selectedVmkernelAdapter)
105
- }
106
-
107
- const emits = defineEmits<{
108
- (
109
- event: 'change-vmkernel-adapter',
110
- vmkernelAdapter: UI_I_SelectVmkernelAdapter
111
- ): void
112
- (event: 'hide-alert', stepId: 0): void
113
- }>()
114
-
115
- watch(
116
- fields,
117
- (newFields: UI_I_SelectVmkernelAdapter) => {
118
- emits('change-vmkernel-adapter', newFields)
119
- },
120
- { deep: true, immediate: true }
121
- )
122
-
123
- const onHideAlert = (): void => {
124
- emits('hide-alert', 0)
125
- }
126
- </script>
127
-
128
- <style scoped lang="scss">
129
- .wizard-content-container {
130
- display: flex;
131
- flex-direction: column;
132
- align-items: stretch;
133
- flex: 1 1 100%;
134
- box-sizing: border-box;
135
- padding: 0px 15px 0px 10px;
136
- overflow-y: auto;
137
- color: #333;
138
- order: 2;
139
- width: 100%;
140
- }
141
- .table-top-margin-container {
142
- margin-top: 20px;
143
- }
144
-
145
- :deep(.table-fixed-height) {
146
- max-height: 143px;
147
- min-height: 143px;
148
- }
149
- .no-item-info {
150
- span {
151
- font-size: 16px;
152
- font-weight: 700;
153
- color: #a0a0a0;
154
- }
155
- display: flex;
156
- justify-content: center;
157
- align-items: center;
158
- }
159
- </style>
1
+ <template>
2
+ <div class="wizard-content-container">
3
+ <div class="wizard-content wizard-content-port">
4
+ <atoms-alert
5
+ v-if="props.alertMessages.length"
6
+ status="alert-danger"
7
+ :items="props.alertMessages"
8
+ test-id="adapter-alert"
9
+ @remove="onHideAlert"
10
+ />
11
+ <div class="table-top-margin-container">
12
+ <atoms-table-simple-table
13
+ :head-items="tableHeadItems"
14
+ :body-items="tableBodyItems"
15
+ :selected-row-key="selectedRowKey"
16
+ editable
17
+ @select="onSelectRow"
18
+ />
19
+ </div>
20
+ <common-diagram-main-modals-view-settings-info
21
+ :show="!!selectedRowData.length"
22
+ :modal-tabs="modalTabs"
23
+ :view-settings-fields="viewSettingsFields"
24
+ :with-collapse="false"
25
+ />
26
+ <div
27
+ v-show="!selectedRowData.length"
28
+ class="table-fixed-height no-item-info"
29
+ >
30
+ <span>{{ localization.common.noItemSelected }}</span>
31
+ </div>
32
+ </div>
33
+ </div>
34
+ </template>
35
+
36
+ <script setup lang="ts">
37
+ import type { UI_I_ArbitraryObject, UI_I_Localization } from '~/lib/models/interfaces'
38
+ import type {
39
+ UI_I_BodyItems,
40
+ UI_I_ReadyCompleteFields,
41
+ UI_I_SelectVmkernelAdapter,
42
+ UI_I_TableHead,
43
+ } from '~/components/common/wizards/network/add/lib/models/interfaces'
44
+ import type {
45
+ UI_I_ModalTabs,
46
+ UI_I_SelectedVmkernelAdapterTableRaw,
47
+ UI_I_VmkernelAdapterTableData,
48
+ } from '~/components/common/diagramMain/lib/models/interfaces'
49
+ import {
50
+ vmKernelAdapterViewSettingsModalTabsFunc,
51
+ vmKernelAdapterViewSettingsTableHeadFunc,
52
+ vmKernelAdapterTableBodyMapperFunc,
53
+ vmKernelAdapterViewSettingsFunc,
54
+ } from '~/components/common/diagramMain/modals/lib/config'
55
+
56
+ const props = defineProps<{
57
+ tableData: UI_I_VmkernelAdapterTableData[]
58
+ vmkernelAdapter: UI_I_SelectVmkernelAdapter
59
+ alertMessages: string[]
60
+ }>()
61
+
62
+ const localization = computed<UI_I_Localization>(() => useLocal())
63
+
64
+ const modalTabs = computed<UI_I_ModalTabs[]>(() =>
65
+ vmKernelAdapterViewSettingsModalTabsFunc(localization.value)
66
+ )
67
+
68
+ const viewSettingsFields = computed<UI_I_ReadyCompleteFields[]>(() =>
69
+ vmKernelAdapterViewSettingsFunc(localization.value)
70
+ )
71
+
72
+ const tableHeadItems = computed<UI_I_TableHead[]>(() =>
73
+ vmKernelAdapterViewSettingsTableHeadFunc(localization.value)
74
+ )
75
+
76
+ const tableBodyItems = computed<UI_I_BodyItems[][]>(() =>
77
+ props.tableData.map(vmKernelAdapterTableBodyMapperFunc)
78
+ )
79
+
80
+ const selectedRowData = ref<UI_I_SelectedVmkernelAdapterTableRaw[]>(
81
+ tableBodyItems.value.find(
82
+ (item) => item[0].text === props.vmkernelAdapter.vm
83
+ ) || []
84
+ )
85
+
86
+ const selectedRowKey = ref<number>(
87
+ tableBodyItems.value.findIndex(
88
+ (item) => item[0].text === props.vmkernelAdapter.vm
89
+ )
90
+ )
91
+
92
+ const fields = ref<UI_I_SelectVmkernelAdapter>(
93
+ useDeepCopy(props.vmkernelAdapter)
94
+ )
95
+
96
+ const onSelectRow = (index: number): void => {
97
+ selectedRowData.value = tableBodyItems.value[index]
98
+
99
+ const selectedVmkernelAdapter =
100
+ selectedRowData.value &&
101
+ selectedRowData.value[0] &&
102
+ selectedRowData.value[0].text
103
+
104
+ selectedVmkernelAdapter && (fields.value.vm = selectedVmkernelAdapter)
105
+ }
106
+
107
+ const emits = defineEmits<{
108
+ (
109
+ event: 'change-vmkernel-adapter',
110
+ vmkernelAdapter: UI_I_SelectVmkernelAdapter
111
+ ): void
112
+ (event: 'hide-alert', stepId: 0): void
113
+ }>()
114
+
115
+ watch(
116
+ fields,
117
+ (newFields: UI_I_SelectVmkernelAdapter) => {
118
+ emits('change-vmkernel-adapter', newFields)
119
+ },
120
+ { deep: true, immediate: true }
121
+ )
122
+
123
+ const onHideAlert = (): void => {
124
+ emits('hide-alert', 0)
125
+ }
126
+ </script>
127
+
128
+ <style scoped lang="scss">
129
+ .wizard-content-container {
130
+ display: flex;
131
+ flex-direction: column;
132
+ align-items: stretch;
133
+ flex: 1 1 100%;
134
+ box-sizing: border-box;
135
+ padding: 0px 15px 0px 10px;
136
+ overflow-y: auto;
137
+ color: #333;
138
+ order: 2;
139
+ width: 100%;
140
+ }
141
+ .table-top-margin-container {
142
+ margin-top: 20px;
143
+ }
144
+
145
+ :deep(.table-fixed-height) {
146
+ max-height: 143px;
147
+ min-height: 143px;
148
+ }
149
+ .no-item-info {
150
+ span {
151
+ font-size: 16px;
152
+ font-weight: 700;
153
+ color: #a0a0a0;
154
+ }
155
+ display: flex;
156
+ justify-content: center;
157
+ align-items: center;
158
+ }
159
+ </style>