bfg-common 1.4.562 → 1.4.563

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 (150) hide show
  1. package/assets/img/icons/icons-sprite-dark-1.svg +407 -407
  2. package/assets/img/icons/icons-sprite-dark-2.svg +343 -343
  3. package/assets/img/icons/icons-sprite-dark-3.svg +227 -227
  4. package/assets/img/icons/icons-sprite-dark-4.svg +255 -255
  5. package/assets/img/icons/icons-sprite-dark-5.svg +488 -488
  6. package/assets/img/icons/icons-sprite-dark-6.svg +94 -94
  7. package/assets/img/icons/icons-sprite-light-1.svg +407 -407
  8. package/assets/img/icons/icons-sprite-light-2.svg +343 -343
  9. package/assets/img/icons/icons-sprite-light-3.svg +227 -227
  10. package/assets/img/icons/icons-sprite-light-4.svg +255 -255
  11. package/assets/img/icons/icons-sprite-light-5.svg +488 -488
  12. package/assets/img/icons/icons-sprite-light-6.svg +94 -94
  13. package/assets/localization/local_be.json +1 -5
  14. package/assets/localization/local_en.json +1 -5
  15. package/assets/localization/local_hy.json +1 -5
  16. package/assets/localization/local_kk.json +1 -5
  17. package/assets/localization/local_ru.json +1 -5
  18. package/assets/localization/local_zh.json +1 -5
  19. package/components/atoms/TheIcon3.vue +50 -50
  20. package/components/atoms/modal/bySteps/BySteps.vue +253 -253
  21. package/components/atoms/stack/StackBlock.vue +185 -185
  22. package/components/atoms/table/dataGrid/DataGrid.vue +1633 -1633
  23. package/components/atoms/table/dataGrid/DataGridColumnSwitch.vue +222 -222
  24. package/components/common/browse/Browse.vue +3 -3
  25. package/components/common/browse/BrowseNew.vue +237 -237
  26. package/components/common/browse/BrowseOld.vue +217 -217
  27. package/components/common/browse/blocks/contents/Files.vue +35 -35
  28. package/components/common/browse/blocks/contents/FilesOld.vue +70 -70
  29. package/components/common/browse/blocks/contents/filesNew/FilesNew.vue +92 -92
  30. package/components/common/browse/blocks/contents/filesNew/Skeleton.vue +18 -18
  31. package/components/common/browse/blocks/lib/models/types.ts +1 -1
  32. package/components/common/browse/lib/models/interfaces.ts +5 -5
  33. package/components/common/context/lib/models/interfaces.ts +30 -30
  34. package/components/common/context/recursion/Recursion.vue +86 -86
  35. package/components/common/context/recursion/RecursionNew.vue +199 -199
  36. package/components/common/context/recursion/RecursionOld.vue +213 -213
  37. package/components/common/diagramMain/Header.vue +211 -211
  38. package/components/common/diagramMain/adapter/AdapterItems.vue +61 -61
  39. package/components/common/diagramMain/lib/config/initial.ts +50 -50
  40. package/components/common/diagramMain/lib/models/enums.ts +44 -44
  41. package/components/common/diagramMain/lib/models/types.ts +21 -21
  42. package/components/common/diagramMain/lib/utils/utils.ts +331 -331
  43. package/components/common/diagramMain/modals/ManagePhysicalAdaptersModal.vue +330 -330
  44. package/components/common/diagramMain/modals/editSettings/ConfirmTeamingSettingsModal.vue +40 -40
  45. package/components/common/diagramMain/modals/editSettings/EditSettings.vue +497 -497
  46. package/components/common/diagramMain/modals/editSettings/EditSettingsModal.vue +812 -812
  47. package/components/common/diagramMain/modals/editSettings/tabs/NetworkProperties.vue +214 -214
  48. package/components/common/diagramMain/modals/editSettings/tabs/Security.vue +189 -189
  49. package/components/common/diagramMain/modals/editSettings/tabs/SwitchProperties.vue +163 -163
  50. package/components/common/diagramMain/modals/editSettings/tabs/TeamingFailover.vue +175 -175
  51. package/components/common/diagramMain/modals/editSettings/tabs/TrafficShaping.vue +398 -398
  52. package/components/common/diagramMain/modals/editSettings/tabs/port/IpvFourSettings.vue +346 -346
  53. package/components/common/diagramMain/modals/editSettings/tabs/port/PortProperties.vue +205 -205
  54. package/components/common/diagramMain/modals/lib/config/diagramConfig.ts +23 -23
  55. package/components/common/diagramMain/modals/lib/config/initial.ts +180 -180
  56. package/components/common/diagramMain/modals/lib/config/vmKernelAdapter.ts +90 -90
  57. package/components/common/diagramMain/modals/lib/mappers/mappers.ts +87 -87
  58. package/components/common/diagramMain/modals/lib/utils/index.ts +24 -24
  59. package/components/common/diagramMain/modals/migrateVmkernelAdapter/MigrateVmkernelAdapter.vue +537 -537
  60. package/components/common/diagramMain/modals/migrateVmkernelAdapter/lib/config/steps.ts +114 -114
  61. package/components/common/diagramMain/modals/migrateVmkernelAdapter/steps/ConnectionSettings.vue +169 -169
  62. package/components/common/diagramMain/modals/migrateVmkernelAdapter/steps/SelectVmkernelAdapter.vue +159 -159
  63. package/components/common/diagramMain/modals/migrateVmkernelAdapter/validations/common.ts +14 -14
  64. package/components/common/diagramMain/modals/migrateVmkernelAdapter/validations/connectionSettings.ts +137 -137
  65. package/components/common/diagramMain/modals/migrateVmkernelAdapter/validations/selectVmkernelAdapter.ts +52 -52
  66. package/components/common/diagramMain/modals/migrateVmkernelAdapter/validations/validations.ts +19 -19
  67. package/components/common/diagramMain/port/Ports.vue +47 -47
  68. package/components/common/layout/theHeader/helpMenu/About.vue +85 -85
  69. package/components/common/layout/theHeader/helpMenu/aboutNew/AboutNew.vue +103 -103
  70. package/components/common/mainNavigationPanel/MainNavigationPanel.vue +152 -152
  71. package/components/common/modals/confirmation/Confirmation.vue +70 -74
  72. package/components/common/modals/confirmation/ConfirmationNew.vue +61 -10
  73. package/components/common/modals/confirmation/ConfirmationOld.vue +10 -10
  74. package/components/common/spiceConsole/Drawer.vue +370 -370
  75. package/components/common/spiceConsole/lib/models/interfaces.ts +5 -5
  76. package/components/common/vm/actions/add/Add.vue +619 -619
  77. package/components/common/vm/actions/clone/Clone.vue +2 -2
  78. package/components/common/vm/actions/clone/lib/config/steps.ts +129 -129
  79. package/components/common/vm/actions/common/customizeHardware/CustomizeHardware.vue +267 -270
  80. package/components/common/vm/actions/common/customizeHardware/CustomizeHardwareNew.vue +264 -266
  81. package/components/common/vm/actions/common/customizeHardware/CustomizeHardwareOld.vue +0 -2
  82. package/components/common/vm/actions/common/customizeHardware/virtualHardware/VirtualHardware.vue +0 -3
  83. package/components/common/vm/actions/common/customizeHardware/virtualHardware/VirtualHardwareNew.vue +1 -3
  84. package/components/common/vm/actions/common/customizeHardware/virtualHardware/VirtualHardwareOld.vue +1 -3
  85. package/components/common/vm/actions/common/customizeHardware/virtualHardware/browseView/BrowseView.vue +215 -205
  86. package/components/common/vm/actions/common/customizeHardware/virtualHardware/bus/BusNew.vue +118 -118
  87. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/CdDvdDriveNew.vue +161 -163
  88. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/CdDvdDriveOld.vue +165 -158
  89. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/Media.vue +25 -25
  90. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/MediaNew.vue +55 -55
  91. package/components/common/vm/actions/common/customizeHardware/virtualHardware/lib/config/dropdownItems.ts +147 -147
  92. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/mode/ModeOld.vue +55 -55
  93. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/sharing/SharingNew.vue +44 -44
  94. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/NewNetworkNew.vue +124 -124
  95. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/location/LocationOld.vue +134 -134
  96. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/location/new/New.vue +63 -63
  97. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/location/new/table/Table.vue +74 -74
  98. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/location/new/table/lib/config/config.ts +95 -95
  99. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/macAddress/MacAddress.vue +119 -119
  100. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/macAddress/MacAddressNew.vue +69 -69
  101. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/macAddress/MacAddressOld.vue +83 -83
  102. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/NewPciDeviceNew.vue +85 -85
  103. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/NewPciDeviceOld.vue +91 -91
  104. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/directPathIo/DirectPathIoNew.vue +35 -35
  105. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIoNew.vue +48 -48
  106. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/Note.vue +15 -15
  107. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/NoteNew.vue +42 -42
  108. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/NoteOld.vue +30 -30
  109. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/nvidiaGrid/NvidiaGridNew.vue +30 -30
  110. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/typeSelection/TypeSelectionNew.vue +46 -46
  111. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newUsbController/NewUsbControllerNew.vue +56 -56
  112. package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/Other.vue +16 -16
  113. package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/OtherNew.vue +27 -27
  114. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/totalVideoMemory/TotalVideoMemoryNew.vue +54 -54
  115. package/components/common/vm/actions/common/customizeHardware/vmoptions/Vmoptions.vue +145 -145
  116. package/components/common/vm/actions/common/customizeHardware/vmoptions/VmoptionsNew.vue +102 -102
  117. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/BootOptionsNew.vue +75 -75
  118. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/delay/Delay.vue +26 -26
  119. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/firmware/Firmware.vue +57 -57
  120. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/firmware/FirmwareNew.vue +42 -42
  121. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/menu/MenuNew.vue +25 -25
  122. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/Order.vue +171 -171
  123. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/OrderNew.vue +50 -50
  124. package/components/common/vm/actions/common/customizeHardware/vmoptions/generalOptions/GeneralOptionsNew.vue +141 -141
  125. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/New.vue +140 -140
  126. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/copyPaste/CopyPasteNew.vue +30 -30
  127. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/fileTransfer/FileTransferNew.vue +30 -30
  128. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/folderSharing/FolderSharingNew.vue +30 -30
  129. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/keymap/Keymap.vue +32 -32
  130. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/keymap/KeymapNew.vue +39 -39
  131. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/password/PasswordNew.vue +100 -100
  132. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirectionNew.vue +38 -38
  133. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirectionOld.vue +44 -44
  134. package/components/common/vm/actions/common/select/storage/Storage.vue +130 -130
  135. package/components/common/vm/actions/common/select/storage/StorageOld.vue +129 -129
  136. package/components/common/vm/actions/common/select/storage/new/New.vue +159 -159
  137. package/components/common/vm/actions/confirm/Confirm.vue +15 -8
  138. package/components/common/vm/actions/editSettings/EditSettings.vue +215 -217
  139. package/components/common/vm/actions/editSettings/EditSettingsOld.vue +182 -184
  140. package/components/common/vm/actions/editSettings/new/New.vue +176 -178
  141. package/components/common/vm/actions/editSettings/new/Skeleton.vue +87 -87
  142. package/components/common/wizards/network/add/lib/config/steps.ts +464 -464
  143. package/composables/productNameLocal.ts +30 -30
  144. package/package.json +2 -2
  145. package/plugins/date.ts +233 -233
  146. package/plugins/recursion.ts +311 -311
  147. package/public/spice-console/lib/images/bitmap.js +203 -203
  148. package/public/spice-console/network/spicechannel.js +383 -383
  149. package/store/main/mutations.ts +7 -7
  150. package/store/main/state.ts +7 -7
@@ -1,330 +1,330 @@
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
- test-id="manage-physical-adapter"
23
- :is-active="true"
24
- :full-mode="true"
25
- :adapters="props.adapters"
26
- :free-adapters="props.freeAdapters"
27
- :added-adapters="addedAdapters"
28
- :adapter-status="props.adapterStatus"
29
- :is-show-no-connected-active-adapters-modal="
30
- isShowNoConnectedActiveAdaptersModal
31
- "
32
- :is-dark-mode="props.isDarkMode"
33
- :is-show-no-active-adapters-modal="isShowNoActiveAdaptersModal"
34
- @hide-no-connected-active-adapters-modal="
35
- onHideNoConnectedActiveAdaptersModal
36
- "
37
- @hide-no-active-adapters-modal="onHideNoActiveAdaptersModal"
38
- @confirm-no-active-adapters-modal="onConfirmNoActiveAdaptersModal"
39
- @change-added-adapters="onChangeAddedAdapters"
40
- @change-adapter-status="onChangeAdapterStatus"
41
- @get-free-adapters="onGetFreeAdapters"
42
- />
43
- </div>
44
- </div>
45
- <atoms-loader v-show="props.isManageAdaptersModalLoading" />
46
- </template>
47
- </atoms-modal>
48
- </div>
49
- </template>
50
-
51
- <script setup lang="ts">
52
- import type {
53
- UI_I_Localization,
54
- UI_I_ItemsWithTotalCounts,
55
- } from '~/lib/models/interfaces'
56
- import type {
57
- UI_I_Adapter,
58
- UI_I_AdapterStatus,
59
- UI_I_SwitchAdapterItem,
60
- } from '~/components/common/diagramMain/lib/models/interfaces'
61
-
62
- // Props from up
63
- const props = withDefaults(
64
- defineProps<{
65
- switchName: string
66
- show: boolean
67
- viewName: string
68
- width: string
69
- height: string
70
- freeAdapters: UI_I_Adapter[]
71
- adapterStatus: UI_I_AdapterStatus
72
- adapters: UI_I_ItemsWithTotalCounts<UI_I_SwitchAdapterItem>
73
- initialAdapterStatus: UI_I_AdapterStatus
74
- isDarkMode?: boolean
75
- isManageAdaptersModalLoading?: boolean
76
- }>(),
77
- {
78
- switchName: '',
79
- adapterStatus: () => ({
80
- active: [],
81
- standby: [],
82
- unused: [],
83
- }),
84
- isDarkMode: false,
85
- isManageAdaptersModalLoading: false,
86
- }
87
- )
88
-
89
- // UI_I_Localization
90
- const localization = computed<UI_I_Localization>(() => useLocal())
91
-
92
- const addedAdapters = ref<string[]>()
93
-
94
- const onChangeAddedAdapters = (addedAdaptersNew: string[]) => {
95
- addedAdapters.value = addedAdaptersNew
96
- }
97
-
98
- const onChangeAdapterStatus = (adapterStatusNew: UI_I_AdapterStatus) => {
99
- emits('change-adapter-status', adapterStatusNew)
100
- }
101
-
102
- const isShowNoConnectedActiveAdaptersModal = ref(false)
103
- const isShowNoActiveAdaptersModal = ref(false)
104
-
105
- const showNoConnectedActiveAdaptersModal = () => {
106
- isShowNoConnectedActiveAdaptersModal.value = true
107
- }
108
- const onHideNoConnectedActiveAdaptersModal = () => {
109
- isShowNoConnectedActiveAdaptersModal.value = false
110
- }
111
- const showNoActiveAdaptersModal = () => {
112
- isShowNoActiveAdaptersModal.value = true
113
- }
114
- const onHideNoActiveAdaptersModal = () => {
115
- isShowNoActiveAdaptersModal.value = false
116
- }
117
-
118
- const onSendManagePhysicalAdaptersData = (
119
- adapterStatus: UI_I_AdapterStatus,
120
- switchName: string,
121
- hideModal: () => void
122
- ) => {
123
- emits(
124
- 'send-manage-physical-adapters-data',
125
- adapterStatus,
126
- switchName,
127
- hideModal
128
- )
129
- }
130
- const onConfirmNoActiveAdaptersModal = () => {
131
- onSendManagePhysicalAdaptersData(
132
- props.adapterStatus,
133
- props.switchName,
134
- onHideManagePhysicalAdaptersModal
135
- )
136
- onHideNoConnectedActiveAdaptersModal()
137
- onHideNoActiveAdaptersModal()
138
- }
139
-
140
- const onSendManageAdapter = () => {
141
- if (props.adapterStatus.active.length === 0) {
142
- showNoActiveAdaptersModal()
143
- return
144
- }
145
-
146
- const activeAndConnectedAdapters = props.adapterStatus.active.filter(
147
- (adapterName: string) =>
148
- props.adapters.items.find(
149
- (ad: UI_I_SwitchAdapterItem) => ad.name === adapterName
150
- )?.carrier
151
- )
152
- if (activeAndConnectedAdapters.length === 0) {
153
- showNoConnectedActiveAdaptersModal()
154
- return
155
- }
156
-
157
- onSendManagePhysicalAdaptersData(
158
- props.adapterStatus,
159
- props.switchName,
160
- onHideManagePhysicalAdaptersModal
161
- )
162
- }
163
-
164
- // Modal
165
- const emits = defineEmits<{
166
- (event: 'hide'): void
167
- (event: 'get-free-adapters', showModal: () => void): void
168
- (event: 'change-added-adapters', addedAdapters: string[]): void
169
- (event: 'change-adapter-status', adapterStatus: UI_I_AdapterStatus): void
170
- (
171
- event: 'send-manage-physical-adapters-data',
172
- adapterStatus: UI_I_AdapterStatus,
173
- switchName: string,
174
- hideModal: () => void
175
- ): void
176
- }>()
177
-
178
- const onGetFreeAdapters = (showModal: () => void) => {
179
- emits('get-free-adapters', showModal)
180
- }
181
-
182
- const onHideManagePhysicalAdaptersModal = (): void => {
183
- addedAdapters.value = []
184
- emits('change-adapter-status', props.initialAdapterStatus)
185
- emits('hide')
186
- }
187
- </script>
188
-
189
- <style scoped lang="scss">
190
- :deep(.secondary-title) {
191
- font-size: 18px;
192
- font-weight: 200;
193
- }
194
-
195
- :deep(.modal-body-content.modal-body-content__confirmation) {
196
- display: flex;
197
-
198
- .confirm-icon-container {
199
- margin-right: 20px;
200
- }
201
-
202
- .preserve-newlines {
203
- white-space: pre-line;
204
- font-size: 15px;
205
- }
206
- }
207
-
208
- .loader {
209
- position: absolute;
210
- z-index: 1000;
211
- left: 0;
212
- right: 0;
213
- bottom: 0;
214
- top: 0;
215
- display: flex;
216
- align-items: center;
217
- justify-content: center;
218
- background-color: rgba(0, 0, 0, 0.3);
219
-
220
- .spinner {
221
- left: unset;
222
- }
223
- }
224
-
225
- :deep(.table-fixed-height) {
226
- height: 290px;
227
- max-height: 290px;
228
- }
229
-
230
- :deep(.diagram-action__edit.is-dark) {
231
- .property-label-group {
232
- color: var(--main-color-mode2);
233
- }
234
- .flex-property-label-group {
235
- color: var(--main-color-mode2);
236
- }
237
- .flex-property-value-group {
238
- select {
239
- color: #fff;
240
- }
241
- }
242
- .failover-order-master {
243
- .secondary-title label {
244
- color: #fff;
245
- }
246
- }
247
- .k-grid-content {
248
- background-color: var(--modal-bg-color);
249
- }
250
- .vui-action-bar {
251
- background-color: var(--pannel-bg-color);
252
- color: var(--title-color);
253
-
254
- .action-link-container:not(.disabled) {
255
- &:hover {
256
- background-color: #29414e;
257
- border: 1px solid #c7e9ff;
258
- }
259
- }
260
-
261
- svg {
262
- fill: #fff;
263
- }
264
- }
265
-
266
- .k-grid.k-widget .k-grid-content {
267
- border-left: 1px solid #485764;
268
- border-right: 1px solid #485764;
269
- border-top: 1px solid #ddd;
270
- border-bottom: 1px solid #ddd;
271
-
272
- tbody tr {
273
- background-color: var(--modal-bg-color);
274
-
275
- td {
276
- border-bottom: 1px solid #666666;
277
- border-color: #666666;
278
- }
279
-
280
- &:hover {
281
- background-color: #324f61;
282
- color: var(--title-color);
283
-
284
- td {
285
- border-bottom: 1px solid #ffffff;
286
- }
287
- }
288
-
289
- &.k-state-selected {
290
- background-color: #d8e3e9;
291
- box-shadow: 0 1px 1px rgba(0, 0, 0, 0.075) inset;
292
-
293
- td span {
294
- color: #000;
295
- }
296
- }
297
- }
298
- }
299
-
300
- .failover-order-details {
301
- &.relative-container .absolute-container {
302
- background-color: var(--pannel-bg-color);
303
- color: var(--main-color-mode2);
304
-
305
- &:has(.no-items-selected-container) {
306
- background-color: transparent;
307
- }
308
- }
309
-
310
- td span {
311
- color: var(--main-color-mode2);
312
- }
313
- button span {
314
- color: var(--main-color-mode2);
315
-
316
- &:hover:not(.disabled) {
317
- background-color: transparent;
318
- border: 1px solid transparent;
319
- }
320
- }
321
- button.active span {
322
- color: #fff;
323
- }
324
- }
325
-
326
- .select-adapter-info span {
327
- color: var(--main-color-mode2);
328
- }
329
- }
330
- </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
+ test-id="manage-physical-adapter"
23
+ :is-active="true"
24
+ :full-mode="true"
25
+ :adapters="props.adapters"
26
+ :free-adapters="props.freeAdapters"
27
+ :added-adapters="addedAdapters"
28
+ :adapter-status="props.adapterStatus"
29
+ :is-show-no-connected-active-adapters-modal="
30
+ isShowNoConnectedActiveAdaptersModal
31
+ "
32
+ :is-dark-mode="props.isDarkMode"
33
+ :is-show-no-active-adapters-modal="isShowNoActiveAdaptersModal"
34
+ @hide-no-connected-active-adapters-modal="
35
+ onHideNoConnectedActiveAdaptersModal
36
+ "
37
+ @hide-no-active-adapters-modal="onHideNoActiveAdaptersModal"
38
+ @confirm-no-active-adapters-modal="onConfirmNoActiveAdaptersModal"
39
+ @change-added-adapters="onChangeAddedAdapters"
40
+ @change-adapter-status="onChangeAdapterStatus"
41
+ @get-free-adapters="onGetFreeAdapters"
42
+ />
43
+ </div>
44
+ </div>
45
+ <atoms-loader v-show="props.isManageAdaptersModalLoading" />
46
+ </template>
47
+ </atoms-modal>
48
+ </div>
49
+ </template>
50
+
51
+ <script setup lang="ts">
52
+ import type {
53
+ UI_I_Localization,
54
+ UI_I_ItemsWithTotalCounts,
55
+ } from '~/lib/models/interfaces'
56
+ import type {
57
+ UI_I_Adapter,
58
+ UI_I_AdapterStatus,
59
+ UI_I_SwitchAdapterItem,
60
+ } from '~/components/common/diagramMain/lib/models/interfaces'
61
+
62
+ // Props from up
63
+ const props = withDefaults(
64
+ defineProps<{
65
+ switchName: string
66
+ show: boolean
67
+ viewName: string
68
+ width: string
69
+ height: string
70
+ freeAdapters: UI_I_Adapter[]
71
+ adapterStatus: UI_I_AdapterStatus
72
+ adapters: UI_I_ItemsWithTotalCounts<UI_I_SwitchAdapterItem>
73
+ initialAdapterStatus: UI_I_AdapterStatus
74
+ isDarkMode?: boolean
75
+ isManageAdaptersModalLoading?: boolean
76
+ }>(),
77
+ {
78
+ switchName: '',
79
+ adapterStatus: () => ({
80
+ active: [],
81
+ standby: [],
82
+ unused: [],
83
+ }),
84
+ isDarkMode: false,
85
+ isManageAdaptersModalLoading: false,
86
+ }
87
+ )
88
+
89
+ // UI_I_Localization
90
+ const localization = computed<UI_I_Localization>(() => useLocal())
91
+
92
+ const addedAdapters = ref<string[]>()
93
+
94
+ const onChangeAddedAdapters = (addedAdaptersNew: string[]) => {
95
+ addedAdapters.value = addedAdaptersNew
96
+ }
97
+
98
+ const onChangeAdapterStatus = (adapterStatusNew: UI_I_AdapterStatus) => {
99
+ emits('change-adapter-status', adapterStatusNew)
100
+ }
101
+
102
+ const isShowNoConnectedActiveAdaptersModal = ref(false)
103
+ const isShowNoActiveAdaptersModal = ref(false)
104
+
105
+ const showNoConnectedActiveAdaptersModal = () => {
106
+ isShowNoConnectedActiveAdaptersModal.value = true
107
+ }
108
+ const onHideNoConnectedActiveAdaptersModal = () => {
109
+ isShowNoConnectedActiveAdaptersModal.value = false
110
+ }
111
+ const showNoActiveAdaptersModal = () => {
112
+ isShowNoActiveAdaptersModal.value = true
113
+ }
114
+ const onHideNoActiveAdaptersModal = () => {
115
+ isShowNoActiveAdaptersModal.value = false
116
+ }
117
+
118
+ const onSendManagePhysicalAdaptersData = (
119
+ adapterStatus: UI_I_AdapterStatus,
120
+ switchName: string,
121
+ hideModal: () => void
122
+ ) => {
123
+ emits(
124
+ 'send-manage-physical-adapters-data',
125
+ adapterStatus,
126
+ switchName,
127
+ hideModal
128
+ )
129
+ }
130
+ const onConfirmNoActiveAdaptersModal = () => {
131
+ onSendManagePhysicalAdaptersData(
132
+ props.adapterStatus,
133
+ props.switchName,
134
+ onHideManagePhysicalAdaptersModal
135
+ )
136
+ onHideNoConnectedActiveAdaptersModal()
137
+ onHideNoActiveAdaptersModal()
138
+ }
139
+
140
+ const onSendManageAdapter = () => {
141
+ if (props.adapterStatus.active.length === 0) {
142
+ showNoActiveAdaptersModal()
143
+ return
144
+ }
145
+
146
+ const activeAndConnectedAdapters = props.adapterStatus.active.filter(
147
+ (adapterName: string) =>
148
+ props.adapters.items.find(
149
+ (ad: UI_I_SwitchAdapterItem) => ad.name === adapterName
150
+ )?.carrier
151
+ )
152
+ if (activeAndConnectedAdapters.length === 0) {
153
+ showNoConnectedActiveAdaptersModal()
154
+ return
155
+ }
156
+
157
+ onSendManagePhysicalAdaptersData(
158
+ props.adapterStatus,
159
+ props.switchName,
160
+ onHideManagePhysicalAdaptersModal
161
+ )
162
+ }
163
+
164
+ // Modal
165
+ const emits = defineEmits<{
166
+ (event: 'hide'): void
167
+ (event: 'get-free-adapters', showModal: () => void): void
168
+ (event: 'change-added-adapters', addedAdapters: string[]): void
169
+ (event: 'change-adapter-status', adapterStatus: UI_I_AdapterStatus): void
170
+ (
171
+ event: 'send-manage-physical-adapters-data',
172
+ adapterStatus: UI_I_AdapterStatus,
173
+ switchName: string,
174
+ hideModal: () => void
175
+ ): void
176
+ }>()
177
+
178
+ const onGetFreeAdapters = (showModal: () => void) => {
179
+ emits('get-free-adapters', showModal)
180
+ }
181
+
182
+ const onHideManagePhysicalAdaptersModal = (): void => {
183
+ addedAdapters.value = []
184
+ emits('change-adapter-status', props.initialAdapterStatus)
185
+ emits('hide')
186
+ }
187
+ </script>
188
+
189
+ <style scoped lang="scss">
190
+ :deep(.secondary-title) {
191
+ font-size: 18px;
192
+ font-weight: 200;
193
+ }
194
+
195
+ :deep(.modal-body-content.modal-body-content__confirmation) {
196
+ display: flex;
197
+
198
+ .confirm-icon-container {
199
+ margin-right: 20px;
200
+ }
201
+
202
+ .preserve-newlines {
203
+ white-space: pre-line;
204
+ font-size: 15px;
205
+ }
206
+ }
207
+
208
+ .loader {
209
+ position: absolute;
210
+ z-index: 1000;
211
+ left: 0;
212
+ right: 0;
213
+ bottom: 0;
214
+ top: 0;
215
+ display: flex;
216
+ align-items: center;
217
+ justify-content: center;
218
+ background-color: rgba(0, 0, 0, 0.3);
219
+
220
+ .spinner {
221
+ left: unset;
222
+ }
223
+ }
224
+
225
+ :deep(.table-fixed-height) {
226
+ height: 290px;
227
+ max-height: 290px;
228
+ }
229
+
230
+ :deep(.diagram-action__edit.is-dark) {
231
+ .property-label-group {
232
+ color: var(--main-color-mode2);
233
+ }
234
+ .flex-property-label-group {
235
+ color: var(--main-color-mode2);
236
+ }
237
+ .flex-property-value-group {
238
+ select {
239
+ color: #fff;
240
+ }
241
+ }
242
+ .failover-order-master {
243
+ .secondary-title label {
244
+ color: #fff;
245
+ }
246
+ }
247
+ .k-grid-content {
248
+ background-color: var(--modal-bg-color);
249
+ }
250
+ .vui-action-bar {
251
+ background-color: var(--pannel-bg-color);
252
+ color: var(--title-color);
253
+
254
+ .action-link-container:not(.disabled) {
255
+ &:hover {
256
+ background-color: #29414e;
257
+ border: 1px solid #c7e9ff;
258
+ }
259
+ }
260
+
261
+ svg {
262
+ fill: #fff;
263
+ }
264
+ }
265
+
266
+ .k-grid.k-widget .k-grid-content {
267
+ border-left: 1px solid #485764;
268
+ border-right: 1px solid #485764;
269
+ border-top: 1px solid #ddd;
270
+ border-bottom: 1px solid #ddd;
271
+
272
+ tbody tr {
273
+ background-color: var(--modal-bg-color);
274
+
275
+ td {
276
+ border-bottom: 1px solid #666666;
277
+ border-color: #666666;
278
+ }
279
+
280
+ &:hover {
281
+ background-color: #324f61;
282
+ color: var(--title-color);
283
+
284
+ td {
285
+ border-bottom: 1px solid #ffffff;
286
+ }
287
+ }
288
+
289
+ &.k-state-selected {
290
+ background-color: #d8e3e9;
291
+ box-shadow: 0 1px 1px rgba(0, 0, 0, 0.075) inset;
292
+
293
+ td span {
294
+ color: #000;
295
+ }
296
+ }
297
+ }
298
+ }
299
+
300
+ .failover-order-details {
301
+ &.relative-container .absolute-container {
302
+ background-color: var(--pannel-bg-color);
303
+ color: var(--main-color-mode2);
304
+
305
+ &:has(.no-items-selected-container) {
306
+ background-color: transparent;
307
+ }
308
+ }
309
+
310
+ td span {
311
+ color: var(--main-color-mode2);
312
+ }
313
+ button span {
314
+ color: var(--main-color-mode2);
315
+
316
+ &:hover:not(.disabled) {
317
+ background-color: transparent;
318
+ border: 1px solid transparent;
319
+ }
320
+ }
321
+ button.active span {
322
+ color: #fff;
323
+ }
324
+ }
325
+
326
+ .select-adapter-info span {
327
+ color: var(--main-color-mode2);
328
+ }
329
+ }
330
+ </style>