bfg-common 1.6.64 → 1.6.66

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 (144) hide show
  1. package/assets/localization/local_ru.json +5 -5
  2. package/components/atoms/dropdown/dropdown/Dropdown.vue +10 -8
  3. package/components/atoms/dropdown/dropdown/lib/models/interfaces.ts +1 -0
  4. package/components/common/adapterManager/AdapterManager.vue +473 -473
  5. package/components/common/adapterManager/AdapterManagerOld.vue +498 -498
  6. package/components/common/adapterManager/addAdapterModal/AddAdapterModal.vue +70 -70
  7. package/components/common/adapterManager/addAdapterModal/AddAdapterModalNew.vue +110 -110
  8. package/components/common/adapterManager/addAdapterModal/AddAdapterModalOld.vue +531 -531
  9. package/components/common/adapterManager/addAdapterWarningModal/AddAdapterWarningModal.vue +32 -32
  10. package/components/common/adapterManager/addAdapterWarningModal/AddAdapterWarningModalNew.vue +37 -37
  11. package/components/common/adapterManager/addAdapterWarningModal/AddAdapterWarningModalOld.vue +73 -73
  12. package/components/common/adapterManager/lib/config/index.ts +19 -19
  13. package/components/common/adapterManager/noActiveAdaptersModal/NoActiveAdaptersModal.vue +31 -31
  14. package/components/common/adapterManager/noActiveAdaptersModal/NoActiveAdaptersModalNew.vue +34 -34
  15. package/components/common/adapterManager/noActiveAdaptersModal/NoActiveAdaptersModalOld.vue +57 -57
  16. package/components/common/adapterManager/noConnectedActiveAdaptersModal/NoConnectedActiveAdaptersModal.vue +31 -31
  17. package/components/common/adapterManager/noConnectedActiveAdaptersModal/NoConnectedActiveAdaptersModalNew.vue +34 -34
  18. package/components/common/adapterManager/noConnectedActiveAdaptersModal/NoConnectedActiveAdaptersModalOld.vue +57 -57
  19. package/components/common/adapterManager/ui/actions/AddAdapterButton.vue +34 -34
  20. package/components/common/adapterManager/ui/actions/RemoveAdapterButton.vue +41 -41
  21. package/components/common/adapterManager/ui/actions/VerticalSeparator.vue +10 -10
  22. package/components/common/adapterManager/ui/actions/bar/BarOld.vue +95 -95
  23. package/components/common/adapterManager/ui/actions/moveDownAdapterButton/MoveDownAdapterButton.vue +28 -28
  24. package/components/common/adapterManager/ui/actions/moveDownAdapterButton/MoveDownAdapterButtonNew.vue +76 -76
  25. package/components/common/adapterManager/ui/actions/moveDownAdapterButton/MoveDownAdapterButtonOld.vue +33 -33
  26. package/components/common/adapterManager/ui/actions/moveUpAdapterButton/MoveUpAdapterButton.vue +28 -28
  27. package/components/common/adapterManager/ui/actions/moveUpAdapterButton/MoveUpAdapterButtonNew.vue +77 -77
  28. package/components/common/adapterManager/ui/actions/moveUpAdapterButton/MoveUpAdapterButtonOld.vue +33 -33
  29. package/components/common/adapterManager/ui/noSelectedAdapter/NoSelectedAdapter.vue +24 -24
  30. package/components/common/adapterManager/ui/noSelectedAdapter/NoSelectedAdapterNew.vue +18 -18
  31. package/components/common/adapterManager/ui/noSelectedAdapter/NoSelectedAdapterOld.vue +38 -38
  32. package/components/common/adapterManager/ui/secondTitle/SecondTitle.vue +31 -31
  33. package/components/common/adapterManager/ui/secondTitle/SecondTitleNew.vue +51 -51
  34. package/components/common/adapterManager/ui/secondTitle/SecondTitleOld.vue +35 -35
  35. package/components/common/adapterManager/ui/table/Table.vue +88 -88
  36. package/components/common/adapterManager/ui/table/TableNew.vue +137 -137
  37. package/components/common/adapterManager/ui/table/TableOld.vue +141 -141
  38. package/components/common/adapterManager/ui/table/adapters/Adapters.vue +44 -44
  39. package/components/common/adapterManager/ui/table/adapters/AdaptersNew.vue +187 -187
  40. package/components/common/adapterManager/ui/table/adapters/AdaptersOld.vue +87 -87
  41. package/components/common/adapterManager/ui/table/header/Header.vue +57 -57
  42. package/components/common/adapterManager/ui/table/header/HeaderNew.vue +81 -81
  43. package/components/common/adapterManager/ui/table/header/HeaderOld.vue +79 -79
  44. package/components/common/adapterManager/ui/table/lib/models/types.ts +1 -1
  45. package/components/common/diagramMain/Diagram.vue +459 -459
  46. package/components/common/diagramMain/DiagramMain.vue +929 -929
  47. package/components/common/diagramMain/adapter/Adapter.vue +123 -123
  48. package/components/common/diagramMain/adapter/AdapterItem.vue +438 -438
  49. package/components/common/diagramMain/adapter/AdapterItems.vue +61 -61
  50. package/components/common/diagramMain/adapter/Contents.vue +212 -212
  51. package/components/common/diagramMain/adapter/Lines.vue +81 -81
  52. package/components/common/diagramMain/adapter/block/Block.vue +27 -27
  53. package/components/common/diagramMain/adapter/block/BlockNew.vue +58 -58
  54. package/components/common/diagramMain/adapter/block/BlockOld.vue +50 -50
  55. package/components/common/diagramMain/adapter/secondBlock/SecondBlock.vue +27 -27
  56. package/components/common/diagramMain/adapter/secondBlock/SecondBlockNew.vue +60 -60
  57. package/components/common/diagramMain/adapter/secondBlock/SecondBlockOld.vue +51 -51
  58. package/components/common/diagramMain/header/Header.vue +49 -49
  59. package/components/common/diagramMain/header/HeaderNew.vue +155 -155
  60. package/components/common/diagramMain/header/HeaderOld.vue +234 -234
  61. package/components/common/diagramMain/highlights/Highlights.vue +151 -151
  62. package/components/common/diagramMain/highlights/HighlightsNew.vue +124 -124
  63. package/components/common/diagramMain/highlights/HighlightsOld.vue +107 -107
  64. package/components/common/diagramMain/lib/config/index.ts +81 -81
  65. package/components/common/diagramMain/lib/config/initial.ts +50 -50
  66. package/components/common/diagramMain/lib/config/positions.ts +194 -194
  67. package/components/common/diagramMain/lib/models/enums.ts +44 -44
  68. package/components/common/diagramMain/lib/models/interfaces.ts +760 -760
  69. package/components/common/diagramMain/lib/models/types.ts +21 -21
  70. package/components/common/diagramMain/lib/utils/utils.ts +331 -331
  71. package/components/common/diagramMain/modals/ManagePhysicalAdaptersModal.vue +331 -331
  72. package/components/common/diagramMain/modals/Modals.vue +483 -483
  73. package/components/common/diagramMain/modals/lib/config/adapterModal.ts +147 -147
  74. package/components/common/diagramMain/modals/lib/config/diagramConfig.ts +66 -66
  75. package/components/common/diagramMain/modals/lib/config/index.ts +56 -56
  76. package/components/common/diagramMain/modals/lib/config/initial.ts +180 -180
  77. package/components/common/diagramMain/modals/lib/config/networkModal.ts +405 -405
  78. package/components/common/diagramMain/modals/lib/config/portModal.ts +253 -253
  79. package/components/common/diagramMain/modals/lib/config/switchModal.ts +245 -245
  80. package/components/common/diagramMain/modals/lib/config/vCenterModal.ts +48 -48
  81. package/components/common/diagramMain/modals/lib/config/vmKernelAdapter.ts +90 -90
  82. package/components/common/diagramMain/modals/lib/mappers/mappers.ts +88 -88
  83. package/components/common/diagramMain/modals/migrateVmkernelAdapter/MigrateVmkernelAdapter.vue +541 -541
  84. package/components/common/diagramMain/modals/migrateVmkernelAdapter/lib/config/steps.ts +114 -114
  85. package/components/common/diagramMain/modals/migrateVmkernelAdapter/steps/ConnectionSettings.vue +170 -170
  86. package/components/common/diagramMain/modals/migrateVmkernelAdapter/steps/SelectVmkernelAdapter.vue +159 -159
  87. package/components/common/diagramMain/modals/migrateVmkernelAdapter/steps/VmkernelAdapterReadyComplete.vue +49 -49
  88. package/components/common/diagramMain/modals/migrateVmkernelAdapter/validations/common.ts +19 -19
  89. package/components/common/diagramMain/modals/migrateVmkernelAdapter/validations/connectionSettings.ts +137 -137
  90. package/components/common/diagramMain/modals/migrateVmkernelAdapter/validations/selectVmkernelAdapter.ts +52 -52
  91. package/components/common/diagramMain/modals/migrateVmkernelAdapter/validations/validations.ts +19 -19
  92. package/components/common/diagramMain/modals/remove/RemoveModal.vue +82 -82
  93. package/components/common/diagramMain/modals/remove/RemoveModalNew.vue +106 -106
  94. package/components/common/diagramMain/modals/remove/RemoveModalOld.vue +241 -241
  95. package/components/common/diagramMain/modals/viewSettings/info/Info.vue +57 -57
  96. package/components/common/diagramMain/modals/viewSettings/info/InfoNew.vue +174 -174
  97. package/components/common/diagramMain/modals/viewSettings/info/InfoOld.vue +141 -141
  98. package/components/common/diagramMain/modals/viewSettings/viewSettings/ViewSettings.vue +45 -45
  99. package/components/common/diagramMain/modals/viewSettings/viewSettings/ViewSettingsNew.vue +323 -323
  100. package/components/common/diagramMain/modals/viewSettings/viewSettings/ViewSettingsOld.vue +203 -203
  101. package/components/common/diagramMain/modals/viewSettings/viewSettingsModal/ViewSettingsModal.vue +60 -60
  102. package/components/common/diagramMain/modals/viewSettings/viewSettingsModal/ViewSettingsModalNew.vue +50 -50
  103. package/components/common/diagramMain/modals/viewSettings/viewSettingsModal/ViewSettingsModalOld.vue +70 -70
  104. package/components/common/diagramMain/modals/viewSettings/viewSettingsModal/lib/models/interfaces.ts +48 -48
  105. package/components/common/diagramMain/network/Contents.vue +497 -497
  106. package/components/common/diagramMain/network/Lines.vue +107 -107
  107. package/components/common/diagramMain/network/Network.vue +141 -141
  108. package/components/common/diagramMain/network/block/Block.vue +37 -37
  109. package/components/common/diagramMain/network/block/BlockNew.vue +68 -68
  110. package/components/common/diagramMain/network/block/BlockOld.vue +64 -64
  111. package/components/common/diagramMain/network/noNetwork/NoNetwork.vue +12 -12
  112. package/components/common/diagramMain/network/noNetwork/NoNetworkNew.vue +89 -89
  113. package/components/common/diagramMain/network/noNetwork/NoNetworkOld.vue +61 -61
  114. package/components/common/diagramMain/network/secondBlock/SecondBlock.vue +41 -41
  115. package/components/common/diagramMain/network/secondBlock/SecondBlockNew.vue +64 -64
  116. package/components/common/diagramMain/network/secondBlock/SecondBlockOld.vue +60 -60
  117. package/components/common/diagramMain/port/Port.vue +580 -580
  118. package/components/common/diagramMain/port/Ports.vue +47 -47
  119. package/components/common/diagramMain/skeleton/Header.vue +31 -31
  120. package/components/common/diagramMain/skeleton/Switch.vue +75 -75
  121. package/components/common/diagramMain/switch/Switch.vue +180 -180
  122. package/components/common/diagramMain/switch/SwitchSelected.vue +111 -111
  123. package/components/common/modals/Rename.vue +3 -1
  124. package/components/common/monitor/advanced/table/tableOld/TableOld.vue +93 -93
  125. package/components/common/monitor/utilization/Old.vue +65 -24
  126. package/components/common/monitor/utilization/Utilization.vue +22 -14
  127. package/components/common/monitor/utilization/infoBlock/InfoBlock.vue +125 -2
  128. package/components/common/monitor/utilization/infoBlock/New.vue +183 -3
  129. package/components/common/monitor/utilization/infoBlock/Old.vue +71 -66
  130. package/components/common/monitor/utilization/infoBlock/progressBar/New.vue +64 -0
  131. package/components/common/monitor/utilization/infoBlock/progressBar/Old.vue +65 -0
  132. package/components/common/monitor/utilization/infoBlock/progressBar/ProgressBar.vue +84 -0
  133. package/components/common/monitor/utilization/infoBlock/progressBar/lib/models/interfaces.ts +10 -0
  134. package/components/common/monitor/utilization/lib/models/enums.ts +4 -4
  135. package/components/common/monitor/utilization/lib/models/interfaces.ts +14 -12
  136. package/components/common/monitor/utilization/lib/models/types.ts +1 -0
  137. package/components/common/monitor/utilization/lib/utils/index.ts +64 -6
  138. package/components/common/monitor/utilization/new/New.vue +195 -0
  139. package/components/common/monitor/utilization/new/Portlet.vue +42 -0
  140. package/components/common/monitor/utilization/new/Skeleton.vue +120 -0
  141. package/components/common/monitor/utilization/new/lib/utils/newPortlet.ts +7 -0
  142. package/components/common/vm/actions/rename/Old.vue +1 -0
  143. package/package.json +1 -1
  144. package/components/common/monitor/utilization/New.vue +0 -5
@@ -1,331 +1,331 @@
1
- <template>
2
- <div>
3
- <atoms-modal
4
- :width="props.width"
5
- :height="props.height"
6
- :show="props.show"
7
- :title="localization.common.managePhysicalNetworkAdapters"
8
- :second-title="props.switchName"
9
- :class="[
10
- 'diagram-action__edit',
11
- {
12
- 'is-dark': props.isDarkMode,
13
- },
14
- ]"
15
- @hide="onHideManagePhysicalAdaptersModal"
16
- @submit="onSendManageAdapter"
17
- >
18
- <template #modalBody>
19
- <div class="wizard-content__container">
20
- <div class="wizard-content">
21
- <common-adapter-manager
22
- :adapters="props.adapters"
23
- :free-adapters="props.freeAdapters"
24
- :added-adapters="addedAdapters"
25
- :adapter-status="props.adapterStatus"
26
- :is-dark-mode="props.isDarkMode"
27
- test-id="manage-physical-adapter"
28
- :is-active="true"
29
- :full-mode="true"
30
- :is-show-no-connected-active-adapters-modal="
31
- isShowNoConnectedActiveAdaptersModal
32
- "
33
- :is-show-no-active-adapters-modal="isShowNoActiveAdaptersModal"
34
-
35
- @hide-no-connected-active-adapters-modal="
36
- onHideNoConnectedActiveAdaptersModal
37
- "
38
- @hide-no-active-adapters-modal="onHideNoActiveAdaptersModal"
39
- @submit-from-modal="onConfirmNoActiveAdaptersModal"
40
- @change-added-adapters="onChangeAddedAdapters"
41
- @change-adapter-status="onChangeAdapterStatus"
42
- @get-free-adapters="onGetFreeAdapters"
43
- />
44
- </div>
45
- </div>
46
- <atoms-loader v-show="props.isManageAdaptersModalLoading" />
47
- </template>
48
- </atoms-modal>
49
- </div>
50
- </template>
51
-
52
- <script setup lang="ts">
53
- import type {
54
- UI_I_Localization,
55
- UI_I_ItemsWithTotalCounts,
56
- } from '~/lib/models/interfaces'
57
- import type {
58
- UI_I_Adapter,
59
- UI_I_AdapterStatus,
60
- UI_I_SwitchAdapterItem,
61
- } from '~/components/common/diagramMain/lib/models/interfaces'
62
-
63
- // Props from up
64
- const props = withDefaults(
65
- defineProps<{
66
- switchName: string
67
- show: boolean
68
- viewName: string
69
- width: string
70
- height: string
71
- freeAdapters: UI_I_Adapter[]
72
- adapterStatus: UI_I_AdapterStatus
73
- adapters: UI_I_ItemsWithTotalCounts<UI_I_SwitchAdapterItem>
74
- initialAdapterStatus: UI_I_AdapterStatus
75
- isDarkMode?: boolean
76
- isManageAdaptersModalLoading?: boolean
77
- }>(),
78
- {
79
- switchName: '',
80
- adapterStatus: () => ({
81
- active: [],
82
- standby: [],
83
- unused: [],
84
- }),
85
- isDarkMode: false,
86
- isManageAdaptersModalLoading: false,
87
- }
88
- )
89
-
90
- // Modal
91
- const emits = defineEmits<{
92
- (event: 'hide'): void
93
- (event: 'get-free-adapters', showModal: () => void): void
94
- (event: 'change-added-adapters', addedAdapters: string[]): void
95
- (event: 'change-adapter-status', adapterStatus: UI_I_AdapterStatus): void
96
- (
97
- event: 'send-manage-physical-adapters-data',
98
- adapterStatus: UI_I_AdapterStatus,
99
- switchName: string,
100
- hideModal: () => void
101
- ): void
102
- }>()
103
-
104
- // UI_I_Localization
105
- const localization = computed<UI_I_Localization>(() => useLocal())
106
-
107
- const addedAdapters = ref<string[]>()
108
-
109
- const onChangeAddedAdapters = (addedAdaptersNew: string[]) => {
110
- addedAdapters.value = addedAdaptersNew
111
- }
112
-
113
- const onChangeAdapterStatus = (adapterStatusNew: UI_I_AdapterStatus) => {
114
- emits('change-adapter-status', adapterStatusNew)
115
- }
116
-
117
- const isShowNoConnectedActiveAdaptersModal = ref(false)
118
- const isShowNoActiveAdaptersModal = ref(false)
119
-
120
- const showNoConnectedActiveAdaptersModal = () => {
121
- isShowNoConnectedActiveAdaptersModal.value = true
122
- }
123
- const onHideNoConnectedActiveAdaptersModal = () => {
124
- isShowNoConnectedActiveAdaptersModal.value = false
125
- }
126
- const showNoActiveAdaptersModal = () => {
127
- isShowNoActiveAdaptersModal.value = true
128
- }
129
- const onHideNoActiveAdaptersModal = () => {
130
- isShowNoActiveAdaptersModal.value = false
131
- }
132
-
133
- const onSendManagePhysicalAdaptersData = (
134
- adapterStatus: UI_I_AdapterStatus,
135
- switchName: string,
136
- hideModal: () => void
137
- ) => {
138
- emits(
139
- 'send-manage-physical-adapters-data',
140
- adapterStatus,
141
- switchName,
142
- hideModal
143
- )
144
- }
145
- const onConfirmNoActiveAdaptersModal = () => {
146
- onSendManagePhysicalAdaptersData(
147
- props.adapterStatus,
148
- props.switchName,
149
- onHideManagePhysicalAdaptersModal
150
- )
151
- onHideNoConnectedActiveAdaptersModal()
152
- onHideNoActiveAdaptersModal()
153
- }
154
-
155
- const onSendManageAdapter = () => {
156
- if (props.adapterStatus.active.length === 0) {
157
- showNoActiveAdaptersModal()
158
- return
159
- }
160
-
161
- const activeAndConnectedAdapters = props.adapterStatus.active.filter(
162
- (adapterName: string) =>
163
- props.adapters.items.find(
164
- (ad: UI_I_SwitchAdapterItem) => ad.name === adapterName
165
- )?.carrier
166
- )
167
- if (activeAndConnectedAdapters.length === 0) {
168
- showNoConnectedActiveAdaptersModal()
169
- return
170
- }
171
-
172
- onSendManagePhysicalAdaptersData(
173
- props.adapterStatus,
174
- props.switchName,
175
- onHideManagePhysicalAdaptersModal
176
- )
177
- }
178
-
179
- const onGetFreeAdapters = (showModal: () => void) => {
180
- emits('get-free-adapters', showModal)
181
- }
182
-
183
- const onHideManagePhysicalAdaptersModal = (): void => {
184
- addedAdapters.value = []
185
- emits('change-adapter-status', props.initialAdapterStatus)
186
- emits('hide')
187
- }
188
- </script>
189
-
190
- <style scoped lang="scss">
191
- :deep(.secondary-title) {
192
- font-size: 18px;
193
- font-weight: 200;
194
- }
195
-
196
- :deep(.modal-body-content.modal-body-content__confirmation) {
197
- display: flex;
198
-
199
- .confirm-icon-container {
200
- margin-right: 20px;
201
- }
202
-
203
- .preserve-newlines {
204
- white-space: pre-line;
205
- font-size: 15px;
206
- }
207
- }
208
-
209
- .loader {
210
- position: absolute;
211
- z-index: var(--z-fixed);
212
- left: 0;
213
- right: 0;
214
- bottom: 0;
215
- top: 0;
216
- display: flex;
217
- align-items: center;
218
- justify-content: center;
219
- background-color: rgba(0, 0, 0, 0.3);
220
-
221
- .spinner {
222
- left: unset;
223
- }
224
- }
225
-
226
- :deep(.table-fixed-height) {
227
- height: 290px;
228
- max-height: 290px;
229
- }
230
-
231
- :deep(.diagram-action__edit.is-dark) {
232
- .property-label-group {
233
- color: var(--main-color-mode2);
234
- }
235
- .flex-property-label-group {
236
- color: var(--main-color-mode2);
237
- }
238
- .flex-property-value-group {
239
- select {
240
- color: #fff;
241
- }
242
- }
243
- .failover-order-master {
244
- .secondary-title label {
245
- color: #fff;
246
- }
247
- }
248
- .k-grid-content {
249
- background-color: var(--modal-bg-color);
250
- }
251
- .vui-action-bar {
252
- background-color: var(--pannel-bg-color);
253
- color: var(--title-color);
254
-
255
- .action-link-container:not(.disabled) {
256
- &:hover {
257
- background-color: #29414e;
258
- border: 1px solid #c7e9ff;
259
- }
260
- }
261
-
262
- svg {
263
- fill: #fff;
264
- }
265
- }
266
-
267
- .k-grid.k-widget .k-grid-content {
268
- border-left: 1px solid #485764;
269
- border-right: 1px solid #485764;
270
- border-top: 1px solid #ddd;
271
- border-bottom: 1px solid #ddd;
272
-
273
- tbody tr {
274
- background-color: var(--modal-bg-color);
275
-
276
- td {
277
- border-bottom: 1px solid #666666;
278
- border-color: #666666;
279
- }
280
-
281
- &:hover {
282
- background-color: #324f61;
283
- color: var(--title-color);
284
-
285
- td {
286
- border-bottom: 1px solid #ffffff;
287
- }
288
- }
289
-
290
- &.k-state-selected {
291
- background-color: #d8e3e9;
292
- box-shadow: 0 1px 1px rgba(0, 0, 0, 0.075) inset;
293
-
294
- td span {
295
- color: #000;
296
- }
297
- }
298
- }
299
- }
300
-
301
- .failover-order-details {
302
- &.relative-container .absolute-container {
303
- background-color: var(--pannel-bg-color);
304
- color: var(--main-color-mode2);
305
-
306
- &:has(.no-items-selected-container) {
307
- background-color: transparent;
308
- }
309
- }
310
-
311
- td span {
312
- color: var(--main-color-mode2);
313
- }
314
- button span {
315
- color: var(--main-color-mode2);
316
-
317
- &:hover:not(.disabled) {
318
- background-color: transparent;
319
- border: 1px solid transparent;
320
- }
321
- }
322
- button.active span {
323
- color: #fff;
324
- }
325
- }
326
-
327
- .select-adapter-info span {
328
- color: var(--main-color-mode2);
329
- }
330
- }
331
- </style>
1
+ <template>
2
+ <div>
3
+ <atoms-modal
4
+ :width="props.width"
5
+ :height="props.height"
6
+ :show="props.show"
7
+ :title="localization.common.managePhysicalNetworkAdapters"
8
+ :second-title="props.switchName"
9
+ :class="[
10
+ 'diagram-action__edit',
11
+ {
12
+ 'is-dark': props.isDarkMode,
13
+ },
14
+ ]"
15
+ @hide="onHideManagePhysicalAdaptersModal"
16
+ @submit="onSendManageAdapter"
17
+ >
18
+ <template #modalBody>
19
+ <div class="wizard-content__container">
20
+ <div class="wizard-content">
21
+ <common-adapter-manager
22
+ :adapters="props.adapters"
23
+ :free-adapters="props.freeAdapters"
24
+ :added-adapters="addedAdapters"
25
+ :adapter-status="props.adapterStatus"
26
+ :is-dark-mode="props.isDarkMode"
27
+ test-id="manage-physical-adapter"
28
+ :is-active="true"
29
+ :full-mode="true"
30
+ :is-show-no-connected-active-adapters-modal="
31
+ isShowNoConnectedActiveAdaptersModal
32
+ "
33
+ :is-show-no-active-adapters-modal="isShowNoActiveAdaptersModal"
34
+
35
+ @hide-no-connected-active-adapters-modal="
36
+ onHideNoConnectedActiveAdaptersModal
37
+ "
38
+ @hide-no-active-adapters-modal="onHideNoActiveAdaptersModal"
39
+ @submit-from-modal="onConfirmNoActiveAdaptersModal"
40
+ @change-added-adapters="onChangeAddedAdapters"
41
+ @change-adapter-status="onChangeAdapterStatus"
42
+ @get-free-adapters="onGetFreeAdapters"
43
+ />
44
+ </div>
45
+ </div>
46
+ <atoms-loader v-show="props.isManageAdaptersModalLoading" />
47
+ </template>
48
+ </atoms-modal>
49
+ </div>
50
+ </template>
51
+
52
+ <script setup lang="ts">
53
+ import type {
54
+ UI_I_Localization,
55
+ UI_I_ItemsWithTotalCounts,
56
+ } from '~/lib/models/interfaces'
57
+ import type {
58
+ UI_I_Adapter,
59
+ UI_I_AdapterStatus,
60
+ UI_I_SwitchAdapterItem,
61
+ } from '~/components/common/diagramMain/lib/models/interfaces'
62
+
63
+ // Props from up
64
+ const props = withDefaults(
65
+ defineProps<{
66
+ switchName: string
67
+ show: boolean
68
+ viewName: string
69
+ width: string
70
+ height: string
71
+ freeAdapters: UI_I_Adapter[]
72
+ adapterStatus: UI_I_AdapterStatus
73
+ adapters: UI_I_ItemsWithTotalCounts<UI_I_SwitchAdapterItem>
74
+ initialAdapterStatus: UI_I_AdapterStatus
75
+ isDarkMode?: boolean
76
+ isManageAdaptersModalLoading?: boolean
77
+ }>(),
78
+ {
79
+ switchName: '',
80
+ adapterStatus: () => ({
81
+ active: [],
82
+ standby: [],
83
+ unused: [],
84
+ }),
85
+ isDarkMode: false,
86
+ isManageAdaptersModalLoading: false,
87
+ }
88
+ )
89
+
90
+ // Modal
91
+ const emits = defineEmits<{
92
+ (event: 'hide'): void
93
+ (event: 'get-free-adapters', showModal: () => void): void
94
+ (event: 'change-added-adapters', addedAdapters: string[]): void
95
+ (event: 'change-adapter-status', adapterStatus: UI_I_AdapterStatus): void
96
+ (
97
+ event: 'send-manage-physical-adapters-data',
98
+ adapterStatus: UI_I_AdapterStatus,
99
+ switchName: string,
100
+ hideModal: () => void
101
+ ): void
102
+ }>()
103
+
104
+ // UI_I_Localization
105
+ const localization = computed<UI_I_Localization>(() => useLocal())
106
+
107
+ const addedAdapters = ref<string[]>()
108
+
109
+ const onChangeAddedAdapters = (addedAdaptersNew: string[]) => {
110
+ addedAdapters.value = addedAdaptersNew
111
+ }
112
+
113
+ const onChangeAdapterStatus = (adapterStatusNew: UI_I_AdapterStatus) => {
114
+ emits('change-adapter-status', adapterStatusNew)
115
+ }
116
+
117
+ const isShowNoConnectedActiveAdaptersModal = ref(false)
118
+ const isShowNoActiveAdaptersModal = ref(false)
119
+
120
+ const showNoConnectedActiveAdaptersModal = () => {
121
+ isShowNoConnectedActiveAdaptersModal.value = true
122
+ }
123
+ const onHideNoConnectedActiveAdaptersModal = () => {
124
+ isShowNoConnectedActiveAdaptersModal.value = false
125
+ }
126
+ const showNoActiveAdaptersModal = () => {
127
+ isShowNoActiveAdaptersModal.value = true
128
+ }
129
+ const onHideNoActiveAdaptersModal = () => {
130
+ isShowNoActiveAdaptersModal.value = false
131
+ }
132
+
133
+ const onSendManagePhysicalAdaptersData = (
134
+ adapterStatus: UI_I_AdapterStatus,
135
+ switchName: string,
136
+ hideModal: () => void
137
+ ) => {
138
+ emits(
139
+ 'send-manage-physical-adapters-data',
140
+ adapterStatus,
141
+ switchName,
142
+ hideModal
143
+ )
144
+ }
145
+ const onConfirmNoActiveAdaptersModal = () => {
146
+ onSendManagePhysicalAdaptersData(
147
+ props.adapterStatus,
148
+ props.switchName,
149
+ onHideManagePhysicalAdaptersModal
150
+ )
151
+ onHideNoConnectedActiveAdaptersModal()
152
+ onHideNoActiveAdaptersModal()
153
+ }
154
+
155
+ const onSendManageAdapter = () => {
156
+ if (props.adapterStatus.active.length === 0) {
157
+ showNoActiveAdaptersModal()
158
+ return
159
+ }
160
+
161
+ const activeAndConnectedAdapters = props.adapterStatus.active.filter(
162
+ (adapterName: string) =>
163
+ props.adapters.items.find(
164
+ (ad: UI_I_SwitchAdapterItem) => ad.name === adapterName
165
+ )?.carrier
166
+ )
167
+ if (activeAndConnectedAdapters.length === 0) {
168
+ showNoConnectedActiveAdaptersModal()
169
+ return
170
+ }
171
+
172
+ onSendManagePhysicalAdaptersData(
173
+ props.adapterStatus,
174
+ props.switchName,
175
+ onHideManagePhysicalAdaptersModal
176
+ )
177
+ }
178
+
179
+ const onGetFreeAdapters = (showModal: () => void) => {
180
+ emits('get-free-adapters', showModal)
181
+ }
182
+
183
+ const onHideManagePhysicalAdaptersModal = (): void => {
184
+ addedAdapters.value = []
185
+ emits('change-adapter-status', props.initialAdapterStatus)
186
+ emits('hide')
187
+ }
188
+ </script>
189
+
190
+ <style scoped lang="scss">
191
+ :deep(.secondary-title) {
192
+ font-size: 18px;
193
+ font-weight: 200;
194
+ }
195
+
196
+ :deep(.modal-body-content.modal-body-content__confirmation) {
197
+ display: flex;
198
+
199
+ .confirm-icon-container {
200
+ margin-right: 20px;
201
+ }
202
+
203
+ .preserve-newlines {
204
+ white-space: pre-line;
205
+ font-size: 15px;
206
+ }
207
+ }
208
+
209
+ .loader {
210
+ position: absolute;
211
+ z-index: var(--z-fixed);
212
+ left: 0;
213
+ right: 0;
214
+ bottom: 0;
215
+ top: 0;
216
+ display: flex;
217
+ align-items: center;
218
+ justify-content: center;
219
+ background-color: rgba(0, 0, 0, 0.3);
220
+
221
+ .spinner {
222
+ left: unset;
223
+ }
224
+ }
225
+
226
+ :deep(.table-fixed-height) {
227
+ height: 290px;
228
+ max-height: 290px;
229
+ }
230
+
231
+ :deep(.diagram-action__edit.is-dark) {
232
+ .property-label-group {
233
+ color: var(--main-color-mode2);
234
+ }
235
+ .flex-property-label-group {
236
+ color: var(--main-color-mode2);
237
+ }
238
+ .flex-property-value-group {
239
+ select {
240
+ color: #fff;
241
+ }
242
+ }
243
+ .failover-order-master {
244
+ .secondary-title label {
245
+ color: #fff;
246
+ }
247
+ }
248
+ .k-grid-content {
249
+ background-color: var(--modal-bg-color);
250
+ }
251
+ .vui-action-bar {
252
+ background-color: var(--pannel-bg-color);
253
+ color: var(--title-color);
254
+
255
+ .action-link-container:not(.disabled) {
256
+ &:hover {
257
+ background-color: #29414e;
258
+ border: 1px solid #c7e9ff;
259
+ }
260
+ }
261
+
262
+ svg {
263
+ fill: #fff;
264
+ }
265
+ }
266
+
267
+ .k-grid.k-widget .k-grid-content {
268
+ border-left: 1px solid #485764;
269
+ border-right: 1px solid #485764;
270
+ border-top: 1px solid #ddd;
271
+ border-bottom: 1px solid #ddd;
272
+
273
+ tbody tr {
274
+ background-color: var(--modal-bg-color);
275
+
276
+ td {
277
+ border-bottom: 1px solid #666666;
278
+ border-color: #666666;
279
+ }
280
+
281
+ &:hover {
282
+ background-color: #324f61;
283
+ color: var(--title-color);
284
+
285
+ td {
286
+ border-bottom: 1px solid #ffffff;
287
+ }
288
+ }
289
+
290
+ &.k-state-selected {
291
+ background-color: #d8e3e9;
292
+ box-shadow: 0 1px 1px rgba(0, 0, 0, 0.075) inset;
293
+
294
+ td span {
295
+ color: #000;
296
+ }
297
+ }
298
+ }
299
+ }
300
+
301
+ .failover-order-details {
302
+ &.relative-container .absolute-container {
303
+ background-color: var(--pannel-bg-color);
304
+ color: var(--main-color-mode2);
305
+
306
+ &:has(.no-items-selected-container) {
307
+ background-color: transparent;
308
+ }
309
+ }
310
+
311
+ td span {
312
+ color: var(--main-color-mode2);
313
+ }
314
+ button span {
315
+ color: var(--main-color-mode2);
316
+
317
+ &:hover:not(.disabled) {
318
+ background-color: transparent;
319
+ border: 1px solid transparent;
320
+ }
321
+ }
322
+ button.active span {
323
+ color: #fff;
324
+ }
325
+ }
326
+
327
+ .select-adapter-info span {
328
+ color: var(--main-color-mode2);
329
+ }
330
+ }
331
+ </style>