bfg-common 1.0.16 → 1.0.17
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.
- package/components/common/adapterManager/AdapterManager.vue +9 -9
- package/components/common/adapterManager/ui/table/Table.vue +2 -2
- package/components/common/addNetworking/AddNetworking.vue +2 -2
- package/components/common/addNetworking/config/sendData.ts +1 -1
- package/components/common/addNetworking/mappers/mappers.ts +1 -1
- package/components/common/diagramMain/DiagramMain.vue +2 -2
- package/components/common/diagramMain/config/initial.ts +1 -1
- package/components/common/diagramMain/modals/ManagePhysicalAdaptersModal.vue +236 -236
- package/components/common/diagramMain/modals/config/initial.ts +31 -45
- package/components/common/diagramMain/modals/editSettings/EditSettings.vue +6 -5
- package/components/common/diagramMain/modals/editSettings/tabs/Security.vue +183 -178
- package/components/common/diagramMain/modals/editSettings/tabs/TeamingFailover.vue +2 -1
- package/components/common/diagramMain/modals/editSettings/tabs/TrafficShaping.vue +393 -392
- package/components/common/diagramMain/models/interfaces.ts +53 -74
- package/components/common/diagramMain/models/types.ts +1 -1
- package/components/common/monitor/models/interfaces.ts +1 -0
- package/components/common/vm/actions/add/customizeHardware/virtualHardware/cpu/Cpu.vue +371 -371
- package/components/common/vm/actions/add/customizeHardware/virtualHardware/cpu/MaxCpu.vue +105 -105
- package/components/common/vm/actions/add/customizeHardware/virtualHardware/cpu/Sa.vue +102 -102
- package/components/common/vm/actions/add/customizeHardware/virtualHardware/cpu/shares/Shares.vue +155 -155
- package/components/common/vm/actions/add/customizeHardware/virtualHardware/limit/Limit.vue +214 -214
- package/components/common/vm/actions/add/customizeHardware/virtualHardware/memory/Memory.vue +282 -282
- package/components/common/vm/actions/add/customizeHardware/virtualHardware/newHardDisk/NewHardDisk.vue +451 -451
- package/components/common/vm/actions/add/customizeHardware/virtualHardware/newHardDisk/limitIops/LimitIops.vue +151 -151
- package/components/common/vm/actions/add/customizeHardware/vmoptions/remoteConsoleOptions/RemoteConsoleOptions.vue +230 -230
- package/components/common/vm/actions/add/select/compatibility/Compatibility.vue +151 -151
- package/package.json +1 -1
|
@@ -174,7 +174,7 @@ const props = withDefaults(
|
|
|
174
174
|
isAddModal: false,
|
|
175
175
|
adapterStatus: () => ({
|
|
176
176
|
active: [],
|
|
177
|
-
|
|
177
|
+
standby: [],
|
|
178
178
|
unused: [],
|
|
179
179
|
}),
|
|
180
180
|
initialData: () => ({}),
|
|
@@ -288,7 +288,7 @@ const moveDownForStatusGroup = (
|
|
|
288
288
|
if (!isActiveSelectedAdapter) return
|
|
289
289
|
|
|
290
290
|
const nextStatus: UI_T_AdapterStatusNames =
|
|
291
|
-
status === 'active' ? '
|
|
291
|
+
status === 'active' ? 'standby' : 'unused'
|
|
292
292
|
|
|
293
293
|
const selectedAdapterIndex = adapterStatus.value[status].indexOf(adapterId)
|
|
294
294
|
|
|
@@ -321,7 +321,7 @@ const moveUpForStatusGroup = (
|
|
|
321
321
|
if (!isActiveSelectedAdapter) return
|
|
322
322
|
|
|
323
323
|
const nextStatus: UI_T_AdapterStatusNames =
|
|
324
|
-
status === 'unused' ? '
|
|
324
|
+
status === 'unused' ? 'standby' : 'active'
|
|
325
325
|
const selectedAdapterIndex = adapterStatus.value[status].indexOf(adapterId)
|
|
326
326
|
const activeFirstIndex = 0
|
|
327
327
|
const isNotFirstOfActiveAdapters = selectedAdapterIndex !== activeFirstIndex
|
|
@@ -340,7 +340,7 @@ const moveUpForStatusGroup = (
|
|
|
340
340
|
// Move down the selected adapter
|
|
341
341
|
const onMoveDownWithId = (adapterId: string): void => {
|
|
342
342
|
moveDownForStatusGroup('unused', adapterId)
|
|
343
|
-
moveDownForStatusGroup('
|
|
343
|
+
moveDownForStatusGroup('standby', adapterId)
|
|
344
344
|
moveDownForStatusGroup('active', adapterId)
|
|
345
345
|
}
|
|
346
346
|
|
|
@@ -351,7 +351,7 @@ const onMoveDown = () => {
|
|
|
351
351
|
// Move up the selected adapter
|
|
352
352
|
const onMoveUpWithId = (adapterId: string): void => {
|
|
353
353
|
moveUpForStatusGroup('active', adapterId)
|
|
354
|
-
moveUpForStatusGroup('
|
|
354
|
+
moveUpForStatusGroup('standby', adapterId)
|
|
355
355
|
moveUpForStatusGroup('unused', adapterId)
|
|
356
356
|
}
|
|
357
357
|
|
|
@@ -365,8 +365,8 @@ const onRemoveWithId = (adapterId: string): void => {
|
|
|
365
365
|
(adapterStatus.value.active = adapterStatus.value.active.filter(
|
|
366
366
|
(id: string) => id !== adapterId
|
|
367
367
|
))
|
|
368
|
-
adapterStatus.value.
|
|
369
|
-
(adapterStatus.value.
|
|
368
|
+
adapterStatus.value.standby.includes(adapterId) &&
|
|
369
|
+
(adapterStatus.value.standby = adapterStatus.value.standby.filter(
|
|
370
370
|
(id: string) => id !== adapterId
|
|
371
371
|
))
|
|
372
372
|
adapterStatus.value.unused.includes(adapterId) &&
|
|
@@ -379,7 +379,7 @@ const onRemoveWithId = (adapterId: string): void => {
|
|
|
379
379
|
addedAdapters.value = [
|
|
380
380
|
...adapterStatus.value.active,
|
|
381
381
|
...adapterStatus.value.unused,
|
|
382
|
-
...adapterStatus.value.
|
|
382
|
+
...adapterStatus.value.standby,
|
|
383
383
|
]
|
|
384
384
|
emits('change-added-adapters', addedAdapters.value)
|
|
385
385
|
emits('change-adapter-status', adapterStatus.value)
|
|
@@ -443,7 +443,7 @@ const onAddSelectedAdapters = (addAdapterId: string): void => {
|
|
|
443
443
|
addedAdapters.value = [
|
|
444
444
|
...adapterStatus.value.active,
|
|
445
445
|
...adapterStatus.value.unused,
|
|
446
|
-
...adapterStatus.value.
|
|
446
|
+
...adapterStatus.value.standby,
|
|
447
447
|
]
|
|
448
448
|
emits('change-added-adapters', addedAdapters.value)
|
|
449
449
|
emits('change-adapter-status', adapterStatus.value)
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
@select-header="onSelectAdapter"
|
|
34
34
|
/>
|
|
35
35
|
<common-adapter-manager-ui-table-adapters
|
|
36
|
-
:adapters="props.adapterStatus.
|
|
36
|
+
:adapters="props.adapterStatus.standby"
|
|
37
37
|
:selected-adapter-id="props.selectedAdapterId"
|
|
38
38
|
@select-adapter="onSelectAdapter"
|
|
39
39
|
/>
|
|
@@ -76,7 +76,7 @@ const props = withDefaults(
|
|
|
76
76
|
isAddModal: false,
|
|
77
77
|
adapterStatus: () => ({
|
|
78
78
|
active: [],
|
|
79
|
-
|
|
79
|
+
standby: [],
|
|
80
80
|
unused: [],
|
|
81
81
|
}),
|
|
82
82
|
isActiveHeader: false,
|
|
@@ -239,7 +239,7 @@ const onChangeAddedAdapters = (addedAdaptersNew: string[]): void => {
|
|
|
239
239
|
|
|
240
240
|
const adapterStatus = ref<UI_I_AdapterStatus>({
|
|
241
241
|
active: [],
|
|
242
|
-
|
|
242
|
+
standby: [],
|
|
243
243
|
unused: [],
|
|
244
244
|
})
|
|
245
245
|
const onChangeAdapterStatus = (adapterStatusNew: UI_I_AdapterStatus): void => {
|
|
@@ -403,7 +403,7 @@ const reset = (): void => {
|
|
|
403
403
|
addedAdapters.value = []
|
|
404
404
|
adapterStatus.value = {
|
|
405
405
|
active: [],
|
|
406
|
-
|
|
406
|
+
standby: [],
|
|
407
407
|
unused: [],
|
|
408
408
|
}
|
|
409
409
|
errorMessages.value = errorMessagesInitial
|
|
@@ -63,7 +63,7 @@ export const addNetworkingZeroOrFirstSchemeDataFunc = (
|
|
|
63
63
|
mtu: targetDevice.selected === '3' ? targetDevice.mtu : undefined,
|
|
64
64
|
nics: {
|
|
65
65
|
active: adapterStatus?.active || [],
|
|
66
|
-
standby: adapterStatus?.
|
|
66
|
+
standby: adapterStatus?.standby || [],
|
|
67
67
|
unused: adapterStatus?.unused || [],
|
|
68
68
|
},
|
|
69
69
|
}
|
|
@@ -30,7 +30,7 @@ export const networkEditDataFunc = (
|
|
|
30
30
|
notifySwitches,
|
|
31
31
|
failback,
|
|
32
32
|
failoverOrder,
|
|
33
|
-
adapters: { active, unused,
|
|
33
|
+
adapters: { active, unused, standby },
|
|
34
34
|
} = networkData.teamingFailover as UI_I_TeamingFailoverWithAdaptersFields
|
|
35
35
|
|
|
36
36
|
const vlan: number =
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
@toggle-diagram="onToggleDiagram"
|
|
12
12
|
@show-modal="onShowModal"
|
|
13
13
|
/>
|
|
14
|
-
<common-diagram
|
|
14
|
+
<common-diagram-main-diagram
|
|
15
15
|
:diagram-data="props.diagramData"
|
|
16
16
|
:is-show-diagram="isShowDiagram"
|
|
17
17
|
:in-portlet="props.inPortlet"
|
|
@@ -369,7 +369,7 @@ watch(
|
|
|
369
369
|
if (newValue?.networking) {
|
|
370
370
|
initialManagePhysicalAdapterStatus = {
|
|
371
371
|
active: useDeepCopy(props.diagramData?.networking?.activeAdapters),
|
|
372
|
-
|
|
372
|
+
standby: useDeepCopy(props.diagramData?.networking?.standbyAdapters),
|
|
373
373
|
unused: useDeepCopy(props.diagramData?.networking?.unusedAdapters),
|
|
374
374
|
}
|
|
375
375
|
|
|
@@ -1,236 +1,236 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
<div>
|
|
3
|
-
<atoms-modal
|
|
4
|
-
:width="props.width"
|
|
5
|
-
:height="props.height"
|
|
6
|
-
:show="props.show"
|
|
7
|
-
:title="localization.managePhysicalNetworkAdapters"
|
|
8
|
-
:second-title="props.switchName"
|
|
9
|
-
class="diagram-action__edit"
|
|
10
|
-
@hide="onHideManagePhysicalAdaptersModal"
|
|
11
|
-
@submit="onSendManageAdapter"
|
|
12
|
-
>
|
|
13
|
-
<template #modalBody>
|
|
14
|
-
<div class="wizard-content__container">
|
|
15
|
-
<div class="wizard-content">
|
|
16
|
-
<common-adapter-manager
|
|
17
|
-
test-id="manage-physical-adapter"
|
|
18
|
-
:is-active="true"
|
|
19
|
-
:full-mode="true"
|
|
20
|
-
:adapters="props.adapters"
|
|
21
|
-
:free-adapters="props.freeAdapters"
|
|
22
|
-
:added-adapters="addedAdapters"
|
|
23
|
-
:adapter-status="props.adapterStatus"
|
|
24
|
-
:is-show-no-connected-active-adapters-modal="
|
|
25
|
-
isShowNoConnectedActiveAdaptersModal
|
|
26
|
-
"
|
|
27
|
-
:is-show-no-active-adapters-modal="isShowNoActiveAdaptersModal"
|
|
28
|
-
@hide-no-connected-active-adapters-modal="
|
|
29
|
-
onHideNoConnectedActiveAdaptersModal
|
|
30
|
-
"
|
|
31
|
-
@hide-no-active-adapters-modal="onHideNoActiveAdaptersModal"
|
|
32
|
-
@confirm-no-active-adapters-modal="onConfirmNoActiveAdaptersModal"
|
|
33
|
-
@change-added-adapters="onChangeAddedAdapters"
|
|
34
|
-
@change-adapter-status="onChangeAdapterStatus"
|
|
35
|
-
@get-free-adapters="onGetFreeAdapters"
|
|
36
|
-
/>
|
|
37
|
-
</div>
|
|
38
|
-
</div>
|
|
39
|
-
<atoms-loader v-show="isShowLoader" />
|
|
40
|
-
</template>
|
|
41
|
-
</atoms-modal>
|
|
42
|
-
</div>
|
|
43
|
-
</template>
|
|
44
|
-
|
|
45
|
-
<script setup lang="ts">
|
|
46
|
-
import { UI_I_Localization } from '~/models/interfaces'
|
|
47
|
-
import {
|
|
48
|
-
UI_I_Adapter,
|
|
49
|
-
UI_I_AdapterStatus,
|
|
50
|
-
UI_I_SwitchAdapterItem,
|
|
51
|
-
UI_I_SwitchAdapters,
|
|
52
|
-
} from '~/components/common/diagramMain/models/interfaces'
|
|
53
|
-
|
|
54
|
-
// Props from up
|
|
55
|
-
const props = withDefaults(
|
|
56
|
-
defineProps<{
|
|
57
|
-
switchName: string
|
|
58
|
-
show: boolean
|
|
59
|
-
viewName: string
|
|
60
|
-
width: string
|
|
61
|
-
height: string
|
|
62
|
-
freeAdapters: UI_I_Adapter[]
|
|
63
|
-
adapterStatus: UI_I_AdapterStatus
|
|
64
|
-
adapters: UI_I_SwitchAdapters
|
|
65
|
-
initialAdapterStatus: UI_I_AdapterStatus
|
|
66
|
-
}>(),
|
|
67
|
-
{
|
|
68
|
-
switchName: '',
|
|
69
|
-
adapterStatus: () => ({
|
|
70
|
-
active: [],
|
|
71
|
-
|
|
72
|
-
unused: [],
|
|
73
|
-
}),
|
|
74
|
-
}
|
|
75
|
-
)
|
|
76
|
-
|
|
77
|
-
// UI_I_Localization
|
|
78
|
-
const localization = computed<UI_I_Localization>(() => useLocal())
|
|
79
|
-
|
|
80
|
-
const isShowLoader = ref(false)
|
|
81
|
-
|
|
82
|
-
const showLoader = () => {
|
|
83
|
-
isShowLoader.value = true
|
|
84
|
-
}
|
|
85
|
-
const hideLoader = () => {
|
|
86
|
-
isShowLoader.value = false
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
const addedAdapters = ref<string[]>()
|
|
90
|
-
|
|
91
|
-
const onChangeAddedAdapters = (addedAdaptersNew: string[]) => {
|
|
92
|
-
addedAdapters.value = addedAdaptersNew
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
const onChangeAdapterStatus = (adapterStatusNew: UI_I_AdapterStatus) => {
|
|
96
|
-
emits('change-adapter-status', adapterStatusNew)
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
const isShowNoConnectedActiveAdaptersModal = ref(false)
|
|
100
|
-
const isShowNoActiveAdaptersModal = ref(false)
|
|
101
|
-
|
|
102
|
-
const showNoConnectedActiveAdaptersModal = () => {
|
|
103
|
-
isShowNoConnectedActiveAdaptersModal.value = true
|
|
104
|
-
}
|
|
105
|
-
const onHideNoConnectedActiveAdaptersModal = () => {
|
|
106
|
-
isShowNoConnectedActiveAdaptersModal.value = false
|
|
107
|
-
}
|
|
108
|
-
const showNoActiveAdaptersModal = () => {
|
|
109
|
-
isShowNoActiveAdaptersModal.value = true
|
|
110
|
-
}
|
|
111
|
-
const onHideNoActiveAdaptersModal = () => {
|
|
112
|
-
isShowNoActiveAdaptersModal.value = false
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
const onSendManagePhysicalAdaptersData = (
|
|
116
|
-
adapterStatus: UI_I_AdapterStatus,
|
|
117
|
-
switchName: string,
|
|
118
|
-
hideManagePhysicalAdaptersModal: () => void,
|
|
119
|
-
hideLoader: () => void
|
|
120
|
-
) => {
|
|
121
|
-
showLoader()
|
|
122
|
-
emits(
|
|
123
|
-
'send-manage-physical-adapters-data',
|
|
124
|
-
adapterStatus,
|
|
125
|
-
switchName,
|
|
126
|
-
hideManagePhysicalAdaptersModal,
|
|
127
|
-
hideLoader
|
|
128
|
-
)
|
|
129
|
-
}
|
|
130
|
-
const onConfirmNoActiveAdaptersModal = () => {
|
|
131
|
-
onSendManagePhysicalAdaptersData(
|
|
132
|
-
props.adapterStatus,
|
|
133
|
-
props.switchName,
|
|
134
|
-
onHideManagePhysicalAdaptersModal,
|
|
135
|
-
hideLoader
|
|
136
|
-
)
|
|
137
|
-
onHideNoConnectedActiveAdaptersModal()
|
|
138
|
-
onHideNoActiveAdaptersModal()
|
|
139
|
-
}
|
|
140
|
-
|
|
141
|
-
const onSendManageAdapter = () => {
|
|
142
|
-
if (props.adapterStatus.active.length === 0) {
|
|
143
|
-
showNoActiveAdaptersModal()
|
|
144
|
-
return
|
|
145
|
-
}
|
|
146
|
-
|
|
147
|
-
const activeAndConnectedAdapters = props.adapterStatus.active.filter(
|
|
148
|
-
(adapterName: string) =>
|
|
149
|
-
props.adapters.items.find(
|
|
150
|
-
(ad: UI_I_SwitchAdapterItem) => ad.name === adapterName
|
|
151
|
-
)?.carrier
|
|
152
|
-
)
|
|
153
|
-
if (activeAndConnectedAdapters.length === 0) {
|
|
154
|
-
showNoConnectedActiveAdaptersModal()
|
|
155
|
-
return
|
|
156
|
-
}
|
|
157
|
-
|
|
158
|
-
onSendManagePhysicalAdaptersData(
|
|
159
|
-
props.adapterStatus,
|
|
160
|
-
props.switchName,
|
|
161
|
-
onHideManagePhysicalAdaptersModal,
|
|
162
|
-
hideLoader
|
|
163
|
-
)
|
|
164
|
-
}
|
|
165
|
-
|
|
166
|
-
// Modal
|
|
167
|
-
const emits = defineEmits<{
|
|
168
|
-
(event: 'hide'): void
|
|
169
|
-
(event: 'get-free-adapters', showAddAdapterModal: () => void): void
|
|
170
|
-
(event: 'change-added-adapters', addedAdapters: string[]): void
|
|
171
|
-
(event: 'change-adapter-status', adapterStatus: UI_I_AdapterStatus): void
|
|
172
|
-
(
|
|
173
|
-
event: 'send-manage-physical-adapters-data',
|
|
174
|
-
adapterStatus: UI_I_AdapterStatus,
|
|
175
|
-
switchName: string,
|
|
176
|
-
hideModalCB: () => void,
|
|
177
|
-
hideLoaderCB: () => void
|
|
178
|
-
): void
|
|
179
|
-
}>()
|
|
180
|
-
|
|
181
|
-
const onGetFreeAdapters = (showAddAdapterModal: () => void) => {
|
|
182
|
-
showLoader()
|
|
183
|
-
emits('get-free-adapters', () => {
|
|
184
|
-
hideLoader()
|
|
185
|
-
showAddAdapterModal()
|
|
186
|
-
})
|
|
187
|
-
}
|
|
188
|
-
|
|
189
|
-
const onHideManagePhysicalAdaptersModal = (): void => {
|
|
190
|
-
addedAdapters.value = []
|
|
191
|
-
emits('change-adapter-status', props.initialAdapterStatus)
|
|
192
|
-
emits('hide')
|
|
193
|
-
}
|
|
194
|
-
</script>
|
|
195
|
-
|
|
196
|
-
<style scoped lang="scss">
|
|
197
|
-
:deep(.secondary-title) {
|
|
198
|
-
font-size: 18px;
|
|
199
|
-
font-weight: 200;
|
|
200
|
-
}
|
|
201
|
-
|
|
202
|
-
:deep(.modal-body-content.modal-body-content__confirmation) {
|
|
203
|
-
display: flex;
|
|
204
|
-
|
|
205
|
-
.confirm-icon-container {
|
|
206
|
-
margin-right: 20px;
|
|
207
|
-
}
|
|
208
|
-
|
|
209
|
-
.preserve-newlines {
|
|
210
|
-
white-space: pre-line;
|
|
211
|
-
font-size: 15px;
|
|
212
|
-
}
|
|
213
|
-
}
|
|
214
|
-
|
|
215
|
-
.loader {
|
|
216
|
-
position: absolute;
|
|
217
|
-
z-index: 1000;
|
|
218
|
-
left: 0;
|
|
219
|
-
right: 0;
|
|
220
|
-
bottom: 0;
|
|
221
|
-
top: 0;
|
|
222
|
-
display: flex;
|
|
223
|
-
align-items: center;
|
|
224
|
-
justify-content: center;
|
|
225
|
-
background-color: rgba(0, 0, 0, 0.3);
|
|
226
|
-
|
|
227
|
-
.spinner {
|
|
228
|
-
left: unset;
|
|
229
|
-
}
|
|
230
|
-
}
|
|
231
|
-
|
|
232
|
-
:deep(.table-fixed-height) {
|
|
233
|
-
height: 290px;
|
|
234
|
-
max-height: 290px;
|
|
235
|
-
}
|
|
236
|
-
</style>
|
|
1
|
+
<template>
|
|
2
|
+
<div>
|
|
3
|
+
<atoms-modal
|
|
4
|
+
:width="props.width"
|
|
5
|
+
:height="props.height"
|
|
6
|
+
:show="props.show"
|
|
7
|
+
:title="localization.managePhysicalNetworkAdapters"
|
|
8
|
+
:second-title="props.switchName"
|
|
9
|
+
class="diagram-action__edit"
|
|
10
|
+
@hide="onHideManagePhysicalAdaptersModal"
|
|
11
|
+
@submit="onSendManageAdapter"
|
|
12
|
+
>
|
|
13
|
+
<template #modalBody>
|
|
14
|
+
<div class="wizard-content__container">
|
|
15
|
+
<div class="wizard-content">
|
|
16
|
+
<common-adapter-manager
|
|
17
|
+
test-id="manage-physical-adapter"
|
|
18
|
+
:is-active="true"
|
|
19
|
+
:full-mode="true"
|
|
20
|
+
:adapters="props.adapters"
|
|
21
|
+
:free-adapters="props.freeAdapters"
|
|
22
|
+
:added-adapters="addedAdapters"
|
|
23
|
+
:adapter-status="props.adapterStatus"
|
|
24
|
+
:is-show-no-connected-active-adapters-modal="
|
|
25
|
+
isShowNoConnectedActiveAdaptersModal
|
|
26
|
+
"
|
|
27
|
+
:is-show-no-active-adapters-modal="isShowNoActiveAdaptersModal"
|
|
28
|
+
@hide-no-connected-active-adapters-modal="
|
|
29
|
+
onHideNoConnectedActiveAdaptersModal
|
|
30
|
+
"
|
|
31
|
+
@hide-no-active-adapters-modal="onHideNoActiveAdaptersModal"
|
|
32
|
+
@confirm-no-active-adapters-modal="onConfirmNoActiveAdaptersModal"
|
|
33
|
+
@change-added-adapters="onChangeAddedAdapters"
|
|
34
|
+
@change-adapter-status="onChangeAdapterStatus"
|
|
35
|
+
@get-free-adapters="onGetFreeAdapters"
|
|
36
|
+
/>
|
|
37
|
+
</div>
|
|
38
|
+
</div>
|
|
39
|
+
<atoms-loader v-show="isShowLoader" />
|
|
40
|
+
</template>
|
|
41
|
+
</atoms-modal>
|
|
42
|
+
</div>
|
|
43
|
+
</template>
|
|
44
|
+
|
|
45
|
+
<script setup lang="ts">
|
|
46
|
+
import { UI_I_Localization } from '~/models/interfaces'
|
|
47
|
+
import {
|
|
48
|
+
UI_I_Adapter,
|
|
49
|
+
UI_I_AdapterStatus,
|
|
50
|
+
UI_I_SwitchAdapterItem,
|
|
51
|
+
UI_I_SwitchAdapters,
|
|
52
|
+
} from '~/components/common/diagramMain/models/interfaces'
|
|
53
|
+
|
|
54
|
+
// Props from up
|
|
55
|
+
const props = withDefaults(
|
|
56
|
+
defineProps<{
|
|
57
|
+
switchName: string
|
|
58
|
+
show: boolean
|
|
59
|
+
viewName: string
|
|
60
|
+
width: string
|
|
61
|
+
height: string
|
|
62
|
+
freeAdapters: UI_I_Adapter[]
|
|
63
|
+
adapterStatus: UI_I_AdapterStatus
|
|
64
|
+
adapters: UI_I_SwitchAdapters
|
|
65
|
+
initialAdapterStatus: UI_I_AdapterStatus
|
|
66
|
+
}>(),
|
|
67
|
+
{
|
|
68
|
+
switchName: '',
|
|
69
|
+
adapterStatus: () => ({
|
|
70
|
+
active: [],
|
|
71
|
+
standby: [],
|
|
72
|
+
unused: [],
|
|
73
|
+
}),
|
|
74
|
+
}
|
|
75
|
+
)
|
|
76
|
+
|
|
77
|
+
// UI_I_Localization
|
|
78
|
+
const localization = computed<UI_I_Localization>(() => useLocal())
|
|
79
|
+
|
|
80
|
+
const isShowLoader = ref(false)
|
|
81
|
+
|
|
82
|
+
const showLoader = () => {
|
|
83
|
+
isShowLoader.value = true
|
|
84
|
+
}
|
|
85
|
+
const hideLoader = () => {
|
|
86
|
+
isShowLoader.value = false
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
const addedAdapters = ref<string[]>()
|
|
90
|
+
|
|
91
|
+
const onChangeAddedAdapters = (addedAdaptersNew: string[]) => {
|
|
92
|
+
addedAdapters.value = addedAdaptersNew
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
const onChangeAdapterStatus = (adapterStatusNew: UI_I_AdapterStatus) => {
|
|
96
|
+
emits('change-adapter-status', adapterStatusNew)
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
const isShowNoConnectedActiveAdaptersModal = ref(false)
|
|
100
|
+
const isShowNoActiveAdaptersModal = ref(false)
|
|
101
|
+
|
|
102
|
+
const showNoConnectedActiveAdaptersModal = () => {
|
|
103
|
+
isShowNoConnectedActiveAdaptersModal.value = true
|
|
104
|
+
}
|
|
105
|
+
const onHideNoConnectedActiveAdaptersModal = () => {
|
|
106
|
+
isShowNoConnectedActiveAdaptersModal.value = false
|
|
107
|
+
}
|
|
108
|
+
const showNoActiveAdaptersModal = () => {
|
|
109
|
+
isShowNoActiveAdaptersModal.value = true
|
|
110
|
+
}
|
|
111
|
+
const onHideNoActiveAdaptersModal = () => {
|
|
112
|
+
isShowNoActiveAdaptersModal.value = false
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
const onSendManagePhysicalAdaptersData = (
|
|
116
|
+
adapterStatus: UI_I_AdapterStatus,
|
|
117
|
+
switchName: string,
|
|
118
|
+
hideManagePhysicalAdaptersModal: () => void,
|
|
119
|
+
hideLoader: () => void
|
|
120
|
+
) => {
|
|
121
|
+
showLoader()
|
|
122
|
+
emits(
|
|
123
|
+
'send-manage-physical-adapters-data',
|
|
124
|
+
adapterStatus,
|
|
125
|
+
switchName,
|
|
126
|
+
hideManagePhysicalAdaptersModal,
|
|
127
|
+
hideLoader
|
|
128
|
+
)
|
|
129
|
+
}
|
|
130
|
+
const onConfirmNoActiveAdaptersModal = () => {
|
|
131
|
+
onSendManagePhysicalAdaptersData(
|
|
132
|
+
props.adapterStatus,
|
|
133
|
+
props.switchName,
|
|
134
|
+
onHideManagePhysicalAdaptersModal,
|
|
135
|
+
hideLoader
|
|
136
|
+
)
|
|
137
|
+
onHideNoConnectedActiveAdaptersModal()
|
|
138
|
+
onHideNoActiveAdaptersModal()
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
const onSendManageAdapter = () => {
|
|
142
|
+
if (props.adapterStatus.active.length === 0) {
|
|
143
|
+
showNoActiveAdaptersModal()
|
|
144
|
+
return
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
const activeAndConnectedAdapters = props.adapterStatus.active.filter(
|
|
148
|
+
(adapterName: string) =>
|
|
149
|
+
props.adapters.items.find(
|
|
150
|
+
(ad: UI_I_SwitchAdapterItem) => ad.name === adapterName
|
|
151
|
+
)?.carrier
|
|
152
|
+
)
|
|
153
|
+
if (activeAndConnectedAdapters.length === 0) {
|
|
154
|
+
showNoConnectedActiveAdaptersModal()
|
|
155
|
+
return
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
onSendManagePhysicalAdaptersData(
|
|
159
|
+
props.adapterStatus,
|
|
160
|
+
props.switchName,
|
|
161
|
+
onHideManagePhysicalAdaptersModal,
|
|
162
|
+
hideLoader
|
|
163
|
+
)
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
// Modal
|
|
167
|
+
const emits = defineEmits<{
|
|
168
|
+
(event: 'hide'): void
|
|
169
|
+
(event: 'get-free-adapters', showAddAdapterModal: () => void): void
|
|
170
|
+
(event: 'change-added-adapters', addedAdapters: string[]): void
|
|
171
|
+
(event: 'change-adapter-status', adapterStatus: UI_I_AdapterStatus): void
|
|
172
|
+
(
|
|
173
|
+
event: 'send-manage-physical-adapters-data',
|
|
174
|
+
adapterStatus: UI_I_AdapterStatus,
|
|
175
|
+
switchName: string,
|
|
176
|
+
hideModalCB: () => void,
|
|
177
|
+
hideLoaderCB: () => void
|
|
178
|
+
): void
|
|
179
|
+
}>()
|
|
180
|
+
|
|
181
|
+
const onGetFreeAdapters = (showAddAdapterModal: () => void) => {
|
|
182
|
+
showLoader()
|
|
183
|
+
emits('get-free-adapters', () => {
|
|
184
|
+
hideLoader()
|
|
185
|
+
showAddAdapterModal()
|
|
186
|
+
})
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
const onHideManagePhysicalAdaptersModal = (): void => {
|
|
190
|
+
addedAdapters.value = []
|
|
191
|
+
emits('change-adapter-status', props.initialAdapterStatus)
|
|
192
|
+
emits('hide')
|
|
193
|
+
}
|
|
194
|
+
</script>
|
|
195
|
+
|
|
196
|
+
<style scoped lang="scss">
|
|
197
|
+
:deep(.secondary-title) {
|
|
198
|
+
font-size: 18px;
|
|
199
|
+
font-weight: 200;
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
:deep(.modal-body-content.modal-body-content__confirmation) {
|
|
203
|
+
display: flex;
|
|
204
|
+
|
|
205
|
+
.confirm-icon-container {
|
|
206
|
+
margin-right: 20px;
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
.preserve-newlines {
|
|
210
|
+
white-space: pre-line;
|
|
211
|
+
font-size: 15px;
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
.loader {
|
|
216
|
+
position: absolute;
|
|
217
|
+
z-index: 1000;
|
|
218
|
+
left: 0;
|
|
219
|
+
right: 0;
|
|
220
|
+
bottom: 0;
|
|
221
|
+
top: 0;
|
|
222
|
+
display: flex;
|
|
223
|
+
align-items: center;
|
|
224
|
+
justify-content: center;
|
|
225
|
+
background-color: rgba(0, 0, 0, 0.3);
|
|
226
|
+
|
|
227
|
+
.spinner {
|
|
228
|
+
left: unset;
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
|
|
232
|
+
:deep(.table-fixed-height) {
|
|
233
|
+
height: 290px;
|
|
234
|
+
max-height: 290px;
|
|
235
|
+
}
|
|
236
|
+
</style>
|