bfg-common 1.5.92 → 1.5.94

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 (112) hide show
  1. package/assets/scss/common/normalize.scss +347 -347
  2. package/components/atoms/alert/Notification.vue +169 -169
  3. package/components/atoms/autocomplete/Autocomplete.vue +361 -362
  4. package/components/atoms/collapse/CollapseNav.vue +169 -169
  5. package/components/atoms/comboDropdownMenu/ComboDropdownMenu.vue +357 -357
  6. package/components/atoms/combobox/Combobox.vue +154 -154
  7. package/components/atoms/datepicker/Datepicker.vue +639 -639
  8. package/components/atoms/dropdown/Portlet.vue +113 -113
  9. package/components/atoms/dropdown/dropdown/Dropdown.vue +168 -168
  10. package/components/atoms/dropdown/tree/Tree.vue +137 -137
  11. package/components/atoms/list/SelectList.vue +63 -63
  12. package/components/atoms/list/dragDropList/DragDropList.vue +148 -148
  13. package/components/atoms/modal/Modal.vue +250 -250
  14. package/components/atoms/modal/bySteps/BySteps.vue +253 -253
  15. package/components/atoms/notificationBar/NotificationBar.vue +178 -178
  16. package/components/atoms/popover/Popover.vue +58 -58
  17. package/components/atoms/popover/lib/models/interfaces.ts +4 -4
  18. package/components/atoms/select/TheSelect.vue +187 -187
  19. package/components/atoms/stack/StackBlock.vue +185 -185
  20. package/components/atoms/stack/StackContent.vue +63 -63
  21. package/components/atoms/step/lib/models/verticalStepItem.ts +5 -5
  22. package/components/atoms/switch/Switch.vue +111 -111
  23. package/components/atoms/table/compact/Compact.vue +529 -529
  24. package/components/atoms/table/dataGrid/DataGrid.vue +1716 -1713
  25. package/components/atoms/table/dataGrid/DataGridPage.vue +195 -195
  26. package/components/atoms/table/info/Info.vue +2 -2
  27. package/components/atoms/table/simpleEvent/SimpleEvent.vue +98 -98
  28. package/components/atoms/table/simpleInfo/SimpleInfo.vue +73 -73
  29. package/components/atoms/tabs/Tabs.vue +217 -217
  30. package/components/atoms/wizard/Wizard.vue +341 -341
  31. package/components/common/accordion/Recursion.vue +222 -222
  32. package/components/common/adapterManager/AddAdapterModal.vue +561 -561
  33. package/components/common/adapterManager/ui/actions/AddAdapterButton.vue +30 -30
  34. package/components/common/adapterManager/ui/table/Table.vue +162 -162
  35. package/components/common/browse/BrowseNew.vue +237 -237
  36. package/components/common/browse/BrowseOld.vue +217 -217
  37. package/components/common/browse/blocks/TitleNew.vue +145 -145
  38. package/components/common/browse/blocks/TitleOld.vue +91 -91
  39. package/components/common/browse/blocks/contents/FilesOld.vue +72 -72
  40. package/components/common/chartOptionsModal/counters/timespan/form/FormNew.vue +262 -262
  41. package/components/common/context/Context.vue +111 -111
  42. package/components/common/context/recursion/RecursionOld.vue +228 -228
  43. package/components/common/details/DetailsItem.vue +109 -109
  44. package/components/common/feedback/Buttons.vue +229 -229
  45. package/components/common/feedback/Feedback.vue +270 -270
  46. package/components/common/feedback/Message.vue +519 -519
  47. package/components/common/graph/graphNew/GraphNew.vue +194 -194
  48. package/components/common/graph/lib/utils/renderGraph.ts +389 -389
  49. package/components/common/layout/theHeader/feedback/new/New.vue +227 -227
  50. package/components/common/layout/theHeader/feedback/new/additionalDetails/AdditionalDetails.vue +606 -606
  51. package/components/common/layout/theHeader/feedback/new/additionalDetails/Headline.vue +98 -98
  52. package/components/common/layout/theHeader/feedback/new/description/Description.vue +59 -59
  53. package/components/common/layout/theHeader/feedback/new/email/Email.vue +43 -43
  54. package/components/common/layout/theHeader/feedback/new/subtitle/Subtitle.vue +103 -103
  55. package/components/common/layout/theHeader/helpMenu/aboutNew/AboutNew.vue +112 -112
  56. package/components/common/layout/theHeader/helpMenu/aboutOld/AboutOld.vue +80 -80
  57. package/components/common/layout/theHeader/helpMenu/helpMenuOld/HelpMenuOld.vue +1 -1
  58. package/components/common/layout/theHeader/modals/Reconnect.vue +2 -2
  59. package/components/common/layout/theHeader/modals/RedirectLogin.vue +3 -3
  60. package/components/common/layout/theHeader/userMenu/modals/changePassword/ChangePassword.vue +1 -1
  61. package/components/common/layout/theHeader/userMenu/modals/changePassword/ChangePasswordNew.vue +8 -8
  62. package/components/common/layout/theHeader/userMenu/modals/changePassword/ChangePasswordOld.vue +3 -3
  63. package/components/common/layout/theHeader/userMenu/modals/preferences/PreferencesNew.vue +1 -1
  64. package/components/common/layout/theHeader/userMenu/modals/preferences/PreferencesOld.vue +1 -1
  65. package/components/common/layout/theHeader/userMenu/modals/preferences/changeLanguage/ChangeLanguage.vue +1 -1
  66. package/components/common/layout/theHeader/userMenu/modals/preferences/changeLanguage/ChangeLanguageNew.vue +1 -1
  67. package/components/common/layout/theHeader/userMenu/modals/preferences/changeLanguage/ChangeLanguageOld.vue +2 -5
  68. package/components/common/layout/theHeader/userMenu/modals/preferences/defaultConsole/DefaultConsoleOld.vue +1 -1
  69. package/components/common/layout/theHeader/userMenu/modals/preferences/inventory/InventoryNew.vue +1 -1
  70. package/components/common/layout/theHeader/userMenu/userMenuNew/UserMenuNew.vue +2 -2
  71. package/components/common/layout/theHeader/userMenu/userMenuNew/lib/config/dropMenu.ts +1 -1
  72. package/components/common/layout/theHeader/userMenu/userMenuOld/UserMenuOld.vue +1 -1
  73. package/components/common/mainNavigationPanel/MainNavigationPanelOld.vue +2 -2
  74. package/components/common/modals/Rename.vue +2 -2
  75. package/components/common/modals/confirmByInput/ConfirmByInput.vue +2 -3
  76. package/components/common/modals/confirmByInput/ConfirmByInputOld.vue +3 -3
  77. package/components/common/modals/confirmation/ConfirmationOld.vue +1 -1
  78. package/components/common/modals/unsavedChanges/UnsavedChanges.vue +1 -1
  79. package/components/common/monitor/advanced/Advanced.vue +1 -1
  80. package/components/common/monitor/advanced/AdvancedNew.vue +1 -1
  81. package/components/common/monitor/advanced/AdvancedOld.vue +1 -1
  82. package/components/common/monitor/advanced/graphView/GraphViewNew.vue +1 -1
  83. package/components/common/monitor/advanced/graphView/GraphViewOld.vue +1 -1
  84. package/components/common/monitor/advanced/table/Table.vue +1 -1
  85. package/components/common/monitor/advanced/table/tableNew/TableNew.vue +2 -2
  86. package/components/common/monitor/advanced/table/tableOld/lib/config/performanceDatatable.ts +2 -2
  87. package/components/common/monitor/advanced/tools/ToolsOld.vue +2 -2
  88. package/components/common/monitor/advanced/tools/chartOptionsModal/ChartOptionsModalOld.vue +1 -1
  89. package/components/common/monitor/advanced/tools/chartOptionsModal/NotificationOld.vue +1 -1
  90. package/components/common/monitor/advanced/tools/chartOptionsModal/actions/ActionsOld.vue +1 -1
  91. package/components/common/monitor/advanced/tools/chartOptionsModal/actions/saveOptionsModal/SaveOptionsModal.vue +1 -1
  92. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/CountersNew.vue +1 -1
  93. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/table/tableOld/lib/config/tableConfig.ts +2 -2
  94. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/timespan/object/lib/config/objectTable.ts +10 -3
  95. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/timespan/object/objectNew/ObjectNew.vue +1 -1
  96. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/timespan/object/objectOld/ObjectOld.vue +2 -2
  97. package/components/common/monitor/advanced/tools/lib/utils/countCores.ts +1 -1
  98. package/components/common/monitor/lib/models/interfaces.ts +1 -1
  99. package/components/common/monitor/overview/filters/customIntervalModal/CustomIntervalModalOld.vue +3 -3
  100. package/components/common/monitor/overview/filters/customIntervalModal/customIntervalModalNew/CustomIntervalModalNew.vue +4 -3
  101. package/components/common/monitor/resourceAllocation/lib/models/interfaces.ts +8 -8
  102. package/components/common/monitor/resourceAllocation/resourceAllocation.vue +2 -2
  103. package/components/common/pages/hardwareHealth/historyTestimony/tools/chartOptionsModal/ChartOptionsModal.vue +1 -1
  104. package/components/common/pages/hardwareHealth/historyTestimony/tools/chartOptionsModal/Notification.vue +1 -1
  105. package/components/common/pages/hardwareHealth/historyTestimony/tools/chartOptionsModal/actions/SaveOptionsModal.vue +1 -1
  106. package/components/common/pages/hardwareHealth/tableView/lib/config/alertWarningTable.ts +1 -1
  107. package/components/common/pages/hardwareHealth/tableView/lib/config/historyTestimonyTable.ts +5 -5
  108. package/components/common/wizards/vm/migrate/Migrate.vue +39 -2
  109. package/components/common/wizards/vm/migrate/vmOrigin/VmOrigin.vue +92 -0
  110. package/components/common/wizards/vm/migrate/vmOrigin/lib/models/interfaces.ts +19 -0
  111. package/components/common/wizards/vm/migrate/vmOrigin/lib/utils/constructItems.ts +62 -0
  112. package/package.json +1 -1
@@ -1,561 +1,561 @@
1
- <template>
2
- <div>
3
- <atoms-modal
4
- test-id="add-adapter"
5
- :width="props.width"
6
- :height="props.height"
7
- :show="props.show"
8
- :title="localization.common.addPhysicalAdaptersToSwitch"
9
- class="diagram-action__edit"
10
- @hide="onHideViewSettingsModal"
11
- @submit="onAddSelectedAdapters"
12
- >
13
- <template #modalBody>
14
- <div class="wizard-content__container">
15
- <div class="wizard-content">
16
- <common-adapter-manager
17
- test-id="adapter-manager"
18
- :is-active="true"
19
- :is-dark-mode="props.isDarkMode"
20
- :full-mode="false"
21
- :is-add-modal="true"
22
- :adapters="props.adapters"
23
- :existing-adapters-for-adding="existingAdaptersAsText"
24
- :selected-add-adapter-id="props.selectedAddAdapterId"
25
- class="free-adapters"
26
- @select-add-adapter="onSelectAddAdapter"
27
- />
28
- </div>
29
- </div>
30
- </template>
31
- <template #modalFooter></template>
32
- </atoms-modal>
33
- </div>
34
- </template>
35
-
36
- <script setup lang="ts">
37
- import type {
38
- UI_I_Localization,
39
- UI_I_ItemsWithTotalCounts,
40
- } from '~/lib/models/interfaces'
41
- import type {
42
- UI_I_Adapter,
43
- UI_I_SwitchAdapterItem,
44
- } from '~/components/common/diagramMain/lib/models/interfaces'
45
-
46
- // Props from up
47
- const props = withDefaults(
48
- defineProps<{
49
- isAddModal: boolean
50
- isDarkMode: boolean
51
- show: boolean
52
- width: string
53
- height: string
54
- modalName: string
55
- viewName: string
56
- adapters: UI_I_ItemsWithTotalCounts<UI_I_SwitchAdapterItem>
57
- existingAdaptersForAdding: (UI_I_Adapter | UI_I_SwitchAdapterItem)[]
58
- selectedAddAdapterId: string
59
- }>(),
60
- {
61
- existingAdaptersForAdding: () => [],
62
- adapters: () => ({
63
- total_items: 0,
64
- total_pages: 0,
65
- items: [],
66
- }),
67
- }
68
- )
69
-
70
- // UI_I_Localization
71
- const localization = computed<UI_I_Localization>(() => useLocal())
72
-
73
- // Modal and add adapter to top
74
- const emits = defineEmits<{
75
- (event: 'hide'): void
76
- (event: 'add-adapter', adapterId: string): void
77
- (event: 'select-add-adapter', adapterId: string): void
78
- }>()
79
-
80
- const existingAdaptersAsText = computed<string[]>(() =>
81
- props.existingAdaptersForAdding.map(
82
- (adapter: UI_I_SwitchAdapterItem) => adapter.name
83
- )
84
- )
85
-
86
- // Selected adapter for adding
87
- const onSelectAddAdapter = (adapterId: string): void => {
88
- emits('select-add-adapter', adapterId)
89
- }
90
- const onHideViewSettingsModal = (): void => {
91
- emits('hide')
92
- emits('select-add-adapter', '')
93
- }
94
- const onAddSelectedAdapters = (): void => {
95
- props.selectedAddAdapterId && emits('add-adapter', props.selectedAddAdapterId)
96
- emits('select-add-adapter', '')
97
- }
98
- </script>
99
-
100
- <style scoped lang="scss">
101
- div.edit-pg-failover-order-with-details {
102
- flex: 1 1 auto;
103
- flex-direction: column;
104
- display: flex;
105
- }
106
- .flex-grow-auto {
107
- flex: 1 0 auto;
108
- }
109
- .relative-container {
110
- position: relative;
111
- }
112
- .fill-parent {
113
- overflow: visible;
114
- height: 100%;
115
- width: 100%;
116
- }
117
- .absolute-container {
118
- position: absolute;
119
- }
120
- .flex-row {
121
- display: flex;
122
- flex-direction: row;
123
- }
124
- .failover-order-master {
125
- flex: 0 0 200px;
126
- margin-right: 10px;
127
- margin-bottom: 2px;
128
- }
129
- .absolute-container {
130
- position: absolute;
131
- }
132
- .full-width-adapter-info {
133
- display: block;
134
- }
135
- .flex-column {
136
- display: flex;
137
- }
138
- .flex-column {
139
- flex-direction: column;
140
- }
141
-
142
- .k-widget {
143
- height: 100%;
144
- box-sizing: border-box;
145
- border: none;
146
- box-shadow: none;
147
- }
148
- .k-header.k-grid-toolbar {
149
- background-color: #fff;
150
- padding: 8px 0 3px;
151
- border: none;
152
- }
153
- .k-grid-toolbar:first-child {
154
- border-radius: 2px 2px 0 0;
155
- }
156
- .vui-action-bar ul {
157
- margin: 0;
158
- }
159
- ol,
160
- ul {
161
- list-style-position: inside;
162
- padding-left: 0;
163
- }
164
- .vui-action-bar ul li {
165
- padding-right: 4px;
166
- display: inline-block;
167
- list-style: none;
168
- vertical-align: middle;
169
- line-height: 20px;
170
- }
171
- .k-grid .k-grid-header {
172
- position: relative;
173
- border-radius: 3px 3px 0 0;
174
- overflow: hidden;
175
- background-color: #fafafa;
176
- padding-right: 18px;
177
- border: none;
178
-
179
- .k-grid-header-wrap {
180
- display: none;
181
- border-right: 0;
182
- border-color: #ccc;
183
- }
184
- }
185
- .k-grid-header table {
186
- table-layout: fixed;
187
- }
188
- .k-grid-header-wrap > table {
189
- margin-bottom: -1px;
190
-
191
- col {
192
- width: 150px;
193
- }
194
- }
195
- .k-grid table {
196
- width: 100%;
197
- margin: 0;
198
- max-width: none;
199
- border-collapse: separate;
200
- border-spacing: 0;
201
- empty-cells: show;
202
- border-width: 0;
203
- outline: 0;
204
- }
205
- .k-grid-header thead tr {
206
- height: 24px;
207
- }
208
- .k-grid-header th.k-header:first-child {
209
- border-left: 1px solid #ddd;
210
- }
211
- .k-grid-header th.k-header {
212
- color: #565656;
213
- background-color: #fafafa;
214
- font-size: 12px;
215
- font-weight: 600;
216
- border-left: #ddd 1px;
217
- height: 24px;
218
- vertical-align: middle;
219
- padding: 0 0 0 12px;
220
- border-bottom: none;
221
- }
222
- .k-grid-header th.k-header {
223
- overflow: hidden;
224
- border: solid #ccc;
225
- border-width: 0 0 2px 1px;
226
- padding: 0.5em 0.6em 0.4em;
227
- font-weight: 400;
228
- white-space: nowrap;
229
- text-overflow: ellipsis;
230
- text-align: left;
231
- }
232
- .k-header > .k-grid-filter {
233
- margin-right: 3px !important;
234
- }
235
- .k-header > .k-grid-filter,
236
- .k-header > .k-header-column-menu {
237
- float: right;
238
- margin: -0.5em -0.6em -0.4em;
239
- padding: 0.5em 0.2em 0.4em;
240
- position: relative;
241
- z-index: calc(var(--z-default) + 1);
242
- }
243
- .k-grid-content {
244
- width: auto;
245
- overflow-y: scroll;
246
- padding-right: 3px;
247
- height: 200px;
248
- }
249
- .full-height {
250
- .k-grid-content {
251
- width: auto;
252
- overflow-y: scroll;
253
- padding-right: 3px;
254
- height: 290px;
255
- }
256
- }
257
- .add-adapter-view {
258
- .k-grid-content {
259
- width: auto;
260
- overflow-y: scroll;
261
- padding-right: 3px;
262
- height: 430px;
263
- }
264
- }
265
- .k-selectable {
266
- height: auto;
267
-
268
- col {
269
- width: 150px;
270
- }
271
- }
272
- ul li span.disabled {
273
- opacity: 0.4;
274
- pointer-events: none;
275
- }
276
- .k-grid.k-widget .k-grid-content,
277
- .k-grid.k-widget .k-grid-content-locked {
278
- border-left: 1px solid #ddd;
279
- border-right: 1px solid #ddd;
280
- }
281
- .k-grid-content {
282
- background: #fff;
283
- }
284
- .no-column-header .k-grid-content {
285
- border-top: 1px solid #ddd;
286
- border-bottom: 1px solid #ddd;
287
- }
288
- .k-grid-content {
289
- min-height: 35px;
290
- }
291
- .k-grid-content,
292
- .k-grid-content-locked,
293
- .k-pager-wrap {
294
- white-space: normal;
295
- }
296
- .k-grid-content {
297
- position: relative;
298
- zoom: 1;
299
- }
300
- .k-widget {
301
- line-height: normal;
302
- }
303
- .k-grid-content table,
304
- .k-grid-content-locked > table,
305
- .k-grid-footer table,
306
- .k-grid-header table {
307
- table-layout: fixed;
308
- }
309
-
310
- .k-grid-content table,
311
- .k-grid-content-locked > table,
312
- .k-grid-footer table,
313
- .k-grid-header table {
314
- table-layout: fixed;
315
- }
316
- .k-grid table {
317
- width: 100%;
318
- margin: 0;
319
- max-width: none;
320
- border-collapse: separate;
321
- border-spacing: 0;
322
- empty-cells: show;
323
- border-width: 0;
324
- outline: 0;
325
- }
326
- .vui-datagrid.k-grid.k-widget .k-grid-content tbody tr,
327
- .vui-datagrid.k-grid.k-widget .k-grid-content-locked tbody tr,
328
- .k-grid.k-widget .k-grid-content tbody tr,
329
- .k-grid.k-widget .k-grid-content-locked tbody tr {
330
- background-color: #fff;
331
- height: 24px;
332
- color: #565656;
333
- cursor: default;
334
- user-select: none;
335
-
336
- &.k-state-selected {
337
- background-color: #29414e;
338
- color: #ffffff;
339
- border-bottom: 1px solid;
340
- border-bottom-color: transparent;
341
- }
342
-
343
- &:not(.k-state-selected):hover {
344
- background-color: #e8e8e8;
345
- color: #454545;
346
-
347
- td {
348
- border-bottom: 1px solid #666666;
349
- }
350
- }
351
-
352
- span {
353
- //TODO set font size to 13px when will add font
354
- //font-family: ProximaNova;
355
- font-size: 95%;
356
- }
357
- }
358
- .k-widget.k-grid .k-grid-content tbody tr {
359
- color: #565656;
360
- }
361
- .k-grid.k-widget .k-grid-content tbody tr td,
362
- .k-grid.k-widget .k-grid-content-locked tbody tr td {
363
- border-width: 0 0 1px;
364
- border-color: #ddd;
365
- font-size: 13px;
366
- font-weight: 400;
367
- line-height: 24px;
368
- padding: 0 12px;
369
- }
370
- .k-grid tr td {
371
- border-style: solid;
372
- }
373
- .assigned-adapters-datagrid .assigned-pnic-sections {
374
- font-weight: 700;
375
- margin: 0 -9px;
376
- }
377
- .action-link-container {
378
- cursor: pointer;
379
-
380
- svg {
381
- transform: translateY(3px);
382
- }
383
- }
384
- ul li span:hover:not(.disabled) {
385
- text-decoration: none;
386
- background-color: #e9f6fd;
387
- border: 1px solid #c7e9ff;
388
- }
389
- ul li span {
390
- padding: 4px;
391
- line-height: 22px;
392
- border: 1px solid transparent;
393
- }
394
- .k-grid td * {
395
- overflow: hidden;
396
- text-overflow: ellipsis;
397
- white-space: nowrap;
398
- }
399
- .k-scrollbar-vertical {
400
- top: 0;
401
- right: 0;
402
- width: 17px;
403
- height: 100%;
404
- overflow-x: hidden;
405
- }
406
-
407
- .k-scrollbar {
408
- position: absolute;
409
- overflow: scroll;
410
- }
411
- .k-grid.k-widget .k-header.k-grid-toolbar {
412
- background-color: #fff;
413
- padding: 8px 0 3px;
414
- border: none;
415
- width: 100%;
416
- }
417
- .absolute-container {
418
- position: initial;
419
- }
420
-
421
- .failover-order-details {
422
- flex: 1 0 auto;
423
- border-left: 1px solid #ddd;
424
-
425
- & > div {
426
- padding-left: 10px;
427
- }
428
- .no-items-selected-container {
429
- display: -ms-flexbox;
430
- display: flex;
431
- -ms-flex-align: center;
432
- align-items: center;
433
- -ms-flex-pack: center;
434
- justify-content: center;
435
- width: 100%;
436
- height: 100%;
437
- }
438
- .no-items-selected-text {
439
- font-size: 16px;
440
- font-weight: 700;
441
- color: #a0a0a0;
442
- }
443
- .absolute-container {
444
- position: absolute;
445
- }
446
- }
447
- .compact {
448
- padding-top: 0;
449
- }
450
- .failover-order-with-details-title {
451
- margin: 0 !important;
452
- padding-top: 0 !important;
453
- }
454
- .element-disabled {
455
- pointer-events: none;
456
- cursor: not-allowed;
457
- opacity: 0.6;
458
- }
459
- .secondary-title {
460
- &.with-margins {
461
- margin: 12px 0 3px 0;
462
- }
463
- label {
464
- font-size: 16px;
465
- color: #000;
466
- }
467
- }
468
- .vertical-separator {
469
- border: 1px solid #999;
470
- border-left: none;
471
- margin: 0 7px 0 4px;
472
- }
473
-
474
- :deep(div.edit-pg-failover-order-with-details.is-dark) {
475
- .failover-order-master {
476
- .secondary-title {
477
- label {
478
- color: #fff;
479
- }
480
- }
481
- }
482
- .k-grid-content {
483
- background-color: var(--modal-bg-color);
484
- }
485
- .vui-action-bar {
486
- background-color: var(--pannel-bg-color);
487
- color: var(--title-color);
488
- padding: 8px 0 3px;
489
-
490
- .action-link-container:not(.disabled) {
491
- &:hover {
492
- background-color: #29414e;
493
- border: 1px solid #c7e9ff;
494
- }
495
- }
496
-
497
- svg {
498
- fill: #fff;
499
- }
500
- }
501
-
502
- .k-grid.k-widget .k-grid-content {
503
- border-left: 1px solid #485764;
504
- border-right: 1px solid #485764;
505
- border-top: 1px solid #ddd;
506
- border-bottom: 1px solid #ddd;
507
-
508
- tbody tr {
509
- background-color: var(--modal-bg-color);
510
-
511
- td {
512
- border-bottom: 1px solid #666666;
513
- border-color: #666666;
514
- }
515
-
516
- &:hover {
517
- background-color: #324f61;
518
- color: var(--title-color);
519
-
520
- td {
521
- border-bottom: 1px solid #ffffff;
522
- }
523
- }
524
-
525
- &.k-state-selected {
526
- background-color: #d8e3e9;
527
- box-shadow: 0 1px 1px rgba(0, 0, 0, 0.075) inset;
528
-
529
- td span {
530
- color: #000;
531
- }
532
- }
533
- }
534
- }
535
-
536
- .failover-order-details {
537
- &.relative-container .absolute-container {
538
- background-color: var(--pannel-bg-color);
539
- color: var(--main-color-mode2);
540
-
541
- &:has(.no-items-selected-container) {
542
- background-color: transparent;
543
- }
544
- }
545
-
546
- td span {
547
- color: var(--main-color-mode2);
548
- }
549
- button span {
550
- color: var(--main-color-mode2);
551
-
552
- &:hover:not(.disabled) {
553
- background-color: transparent;
554
- }
555
- }
556
- button.active span {
557
- color: #fff;
558
- }
559
- }
560
- }
561
- </style>
1
+ <template>
2
+ <div>
3
+ <atoms-modal
4
+ test-id="add-adapter"
5
+ :width="props.width"
6
+ :height="props.height"
7
+ :show="props.show"
8
+ :title="localization.common.addPhysicalAdaptersToSwitch"
9
+ class="diagram-action__edit"
10
+ @hide="onHideViewSettingsModal"
11
+ @submit="onAddSelectedAdapters"
12
+ >
13
+ <template #modalBody>
14
+ <div class="wizard-content__container">
15
+ <div class="wizard-content">
16
+ <common-adapter-manager
17
+ test-id="adapter-manager"
18
+ :is-active="true"
19
+ :is-dark-mode="props.isDarkMode"
20
+ :full-mode="false"
21
+ :is-add-modal="true"
22
+ :adapters="props.adapters"
23
+ :existing-adapters-for-adding="existingAdaptersAsText"
24
+ :selected-add-adapter-id="props.selectedAddAdapterId"
25
+ class="free-adapters"
26
+ @select-add-adapter="onSelectAddAdapter"
27
+ />
28
+ </div>
29
+ </div>
30
+ </template>
31
+ <template #modalFooter></template>
32
+ </atoms-modal>
33
+ </div>
34
+ </template>
35
+
36
+ <script setup lang="ts">
37
+ import type {
38
+ UI_I_Localization,
39
+ UI_I_ItemsWithTotalCounts,
40
+ } from '~/lib/models/interfaces'
41
+ import type {
42
+ UI_I_Adapter,
43
+ UI_I_SwitchAdapterItem,
44
+ } from '~/components/common/diagramMain/lib/models/interfaces'
45
+
46
+ // Props from up
47
+ const props = withDefaults(
48
+ defineProps<{
49
+ isAddModal: boolean
50
+ isDarkMode: boolean
51
+ show: boolean
52
+ width: string
53
+ height: string
54
+ modalName: string
55
+ viewName: string
56
+ adapters: UI_I_ItemsWithTotalCounts<UI_I_SwitchAdapterItem>
57
+ existingAdaptersForAdding: (UI_I_Adapter | UI_I_SwitchAdapterItem)[]
58
+ selectedAddAdapterId: string
59
+ }>(),
60
+ {
61
+ existingAdaptersForAdding: () => [],
62
+ adapters: () => ({
63
+ total_items: 0,
64
+ total_pages: 0,
65
+ items: [],
66
+ }),
67
+ }
68
+ )
69
+
70
+ // UI_I_Localization
71
+ const localization = computed<UI_I_Localization>(() => useLocal())
72
+
73
+ // Modal and add adapter to top
74
+ const emits = defineEmits<{
75
+ (event: 'hide'): void
76
+ (event: 'add-adapter', adapterId: string): void
77
+ (event: 'select-add-adapter', adapterId: string): void
78
+ }>()
79
+
80
+ const existingAdaptersAsText = computed<string[]>(() =>
81
+ props.existingAdaptersForAdding.map(
82
+ (adapter: UI_I_SwitchAdapterItem) => adapter.name
83
+ )
84
+ )
85
+
86
+ // Selected adapter for adding
87
+ const onSelectAddAdapter = (adapterId: string): void => {
88
+ emits('select-add-adapter', adapterId)
89
+ }
90
+ const onHideViewSettingsModal = (): void => {
91
+ emits('hide')
92
+ emits('select-add-adapter', '')
93
+ }
94
+ const onAddSelectedAdapters = (): void => {
95
+ props.selectedAddAdapterId && emits('add-adapter', props.selectedAddAdapterId)
96
+ emits('select-add-adapter', '')
97
+ }
98
+ </script>
99
+
100
+ <style scoped lang="scss">
101
+ div.edit-pg-failover-order-with-details {
102
+ flex: 1 1 auto;
103
+ flex-direction: column;
104
+ display: flex;
105
+ }
106
+ .flex-grow-auto {
107
+ flex: 1 0 auto;
108
+ }
109
+ .relative-container {
110
+ position: relative;
111
+ }
112
+ .fill-parent {
113
+ overflow: visible;
114
+ height: 100%;
115
+ width: 100%;
116
+ }
117
+ .absolute-container {
118
+ position: absolute;
119
+ }
120
+ .flex-row {
121
+ display: flex;
122
+ flex-direction: row;
123
+ }
124
+ .failover-order-master {
125
+ flex: 0 0 200px;
126
+ margin-right: 10px;
127
+ margin-bottom: 2px;
128
+ }
129
+ .absolute-container {
130
+ position: absolute;
131
+ }
132
+ .full-width-adapter-info {
133
+ display: block;
134
+ }
135
+ .flex-column {
136
+ display: flex;
137
+ }
138
+ .flex-column {
139
+ flex-direction: column;
140
+ }
141
+
142
+ .k-widget {
143
+ height: 100%;
144
+ box-sizing: border-box;
145
+ border: none;
146
+ box-shadow: none;
147
+ }
148
+ .k-header.k-grid-toolbar {
149
+ background-color: #fff;
150
+ padding: 8px 0 3px;
151
+ border: none;
152
+ }
153
+ .k-grid-toolbar:first-child {
154
+ border-radius: 2px 2px 0 0;
155
+ }
156
+ .vui-action-bar ul {
157
+ margin: 0;
158
+ }
159
+ ol,
160
+ ul {
161
+ list-style-position: inside;
162
+ padding-left: 0;
163
+ }
164
+ .vui-action-bar ul li {
165
+ padding-right: 4px;
166
+ display: inline-block;
167
+ list-style: none;
168
+ vertical-align: middle;
169
+ line-height: 20px;
170
+ }
171
+ .k-grid .k-grid-header {
172
+ position: relative;
173
+ border-radius: 3px 3px 0 0;
174
+ overflow: hidden;
175
+ background-color: #fafafa;
176
+ padding-right: 18px;
177
+ border: none;
178
+
179
+ .k-grid-header-wrap {
180
+ display: none;
181
+ border-right: 0;
182
+ border-color: #ccc;
183
+ }
184
+ }
185
+ .k-grid-header table {
186
+ table-layout: fixed;
187
+ }
188
+ .k-grid-header-wrap > table {
189
+ margin-bottom: -1px;
190
+
191
+ col {
192
+ width: 150px;
193
+ }
194
+ }
195
+ .k-grid table {
196
+ width: 100%;
197
+ margin: 0;
198
+ max-width: none;
199
+ border-collapse: separate;
200
+ border-spacing: 0;
201
+ empty-cells: show;
202
+ border-width: 0;
203
+ outline: 0;
204
+ }
205
+ .k-grid-header thead tr {
206
+ height: 24px;
207
+ }
208
+ .k-grid-header th.k-header:first-child {
209
+ border-left: 1px solid #ddd;
210
+ }
211
+ .k-grid-header th.k-header {
212
+ color: #565656;
213
+ background-color: #fafafa;
214
+ font-size: 12px;
215
+ font-weight: 600;
216
+ border-left: #ddd 1px;
217
+ height: 24px;
218
+ vertical-align: middle;
219
+ padding: 0 0 0 12px;
220
+ border-bottom: none;
221
+ }
222
+ .k-grid-header th.k-header {
223
+ overflow: hidden;
224
+ border: solid #ccc;
225
+ border-width: 0 0 2px 1px;
226
+ padding: 0.5em 0.6em 0.4em;
227
+ font-weight: 400;
228
+ white-space: nowrap;
229
+ text-overflow: ellipsis;
230
+ text-align: left;
231
+ }
232
+ .k-header > .k-grid-filter {
233
+ margin-right: 3px !important;
234
+ }
235
+ .k-header > .k-grid-filter,
236
+ .k-header > .k-header-column-menu {
237
+ float: right;
238
+ margin: -0.5em -0.6em -0.4em;
239
+ padding: 0.5em 0.2em 0.4em;
240
+ position: relative;
241
+ z-index: calc(var(--z-default) + 1);
242
+ }
243
+ .k-grid-content {
244
+ width: auto;
245
+ overflow-y: scroll;
246
+ padding-right: 3px;
247
+ height: 200px;
248
+ }
249
+ .full-height {
250
+ .k-grid-content {
251
+ width: auto;
252
+ overflow-y: scroll;
253
+ padding-right: 3px;
254
+ height: 290px;
255
+ }
256
+ }
257
+ .add-adapter-view {
258
+ .k-grid-content {
259
+ width: auto;
260
+ overflow-y: scroll;
261
+ padding-right: 3px;
262
+ height: 430px;
263
+ }
264
+ }
265
+ .k-selectable {
266
+ height: auto;
267
+
268
+ col {
269
+ width: 150px;
270
+ }
271
+ }
272
+ ul li span.disabled {
273
+ opacity: 0.4;
274
+ pointer-events: none;
275
+ }
276
+ .k-grid.k-widget .k-grid-content,
277
+ .k-grid.k-widget .k-grid-content-locked {
278
+ border-left: 1px solid #ddd;
279
+ border-right: 1px solid #ddd;
280
+ }
281
+ .k-grid-content {
282
+ background: #fff;
283
+ }
284
+ .no-column-header .k-grid-content {
285
+ border-top: 1px solid #ddd;
286
+ border-bottom: 1px solid #ddd;
287
+ }
288
+ .k-grid-content {
289
+ min-height: 35px;
290
+ }
291
+ .k-grid-content,
292
+ .k-grid-content-locked,
293
+ .k-pager-wrap {
294
+ white-space: normal;
295
+ }
296
+ .k-grid-content {
297
+ position: relative;
298
+ zoom: 1;
299
+ }
300
+ .k-widget {
301
+ line-height: normal;
302
+ }
303
+ .k-grid-content table,
304
+ .k-grid-content-locked > table,
305
+ .k-grid-footer table,
306
+ .k-grid-header table {
307
+ table-layout: fixed;
308
+ }
309
+
310
+ .k-grid-content table,
311
+ .k-grid-content-locked > table,
312
+ .k-grid-footer table,
313
+ .k-grid-header table {
314
+ table-layout: fixed;
315
+ }
316
+ .k-grid table {
317
+ width: 100%;
318
+ margin: 0;
319
+ max-width: none;
320
+ border-collapse: separate;
321
+ border-spacing: 0;
322
+ empty-cells: show;
323
+ border-width: 0;
324
+ outline: 0;
325
+ }
326
+ .vui-datagrid.k-grid.k-widget .k-grid-content tbody tr,
327
+ .vui-datagrid.k-grid.k-widget .k-grid-content-locked tbody tr,
328
+ .k-grid.k-widget .k-grid-content tbody tr,
329
+ .k-grid.k-widget .k-grid-content-locked tbody tr {
330
+ background-color: #fff;
331
+ height: 24px;
332
+ color: #565656;
333
+ cursor: default;
334
+ user-select: none;
335
+
336
+ &.k-state-selected {
337
+ background-color: #29414e;
338
+ color: #ffffff;
339
+ border-bottom: 1px solid;
340
+ border-bottom-color: transparent;
341
+ }
342
+
343
+ &:not(.k-state-selected):hover {
344
+ background-color: #e8e8e8;
345
+ color: #454545;
346
+
347
+ td {
348
+ border-bottom: 1px solid #666666;
349
+ }
350
+ }
351
+
352
+ span {
353
+ //TODO set font size to 13px when will add font
354
+ //font-family: ProximaNova;
355
+ font-size: 95%;
356
+ }
357
+ }
358
+ .k-widget.k-grid .k-grid-content tbody tr {
359
+ color: #565656;
360
+ }
361
+ .k-grid.k-widget .k-grid-content tbody tr td,
362
+ .k-grid.k-widget .k-grid-content-locked tbody tr td {
363
+ border-width: 0 0 1px;
364
+ border-color: #ddd;
365
+ font-size: 13px;
366
+ font-weight: 400;
367
+ line-height: 24px;
368
+ padding: 0 12px;
369
+ }
370
+ .k-grid tr td {
371
+ border-style: solid;
372
+ }
373
+ .assigned-adapters-datagrid .assigned-pnic-sections {
374
+ font-weight: 700;
375
+ margin: 0 -9px;
376
+ }
377
+ .action-link-container {
378
+ cursor: pointer;
379
+
380
+ svg {
381
+ transform: translateY(3px);
382
+ }
383
+ }
384
+ ul li span:hover:not(.disabled) {
385
+ text-decoration: none;
386
+ background-color: #e9f6fd;
387
+ border: 1px solid #c7e9ff;
388
+ }
389
+ ul li span {
390
+ padding: 4px;
391
+ line-height: 22px;
392
+ border: 1px solid transparent;
393
+ }
394
+ .k-grid td * {
395
+ overflow: hidden;
396
+ text-overflow: ellipsis;
397
+ white-space: nowrap;
398
+ }
399
+ .k-scrollbar-vertical {
400
+ top: 0;
401
+ right: 0;
402
+ width: 17px;
403
+ height: 100%;
404
+ overflow-x: hidden;
405
+ }
406
+
407
+ .k-scrollbar {
408
+ position: absolute;
409
+ overflow: scroll;
410
+ }
411
+ .k-grid.k-widget .k-header.k-grid-toolbar {
412
+ background-color: #fff;
413
+ padding: 8px 0 3px;
414
+ border: none;
415
+ width: 100%;
416
+ }
417
+ .absolute-container {
418
+ position: initial;
419
+ }
420
+
421
+ .failover-order-details {
422
+ flex: 1 0 auto;
423
+ border-left: 1px solid #ddd;
424
+
425
+ & > div {
426
+ padding-left: 10px;
427
+ }
428
+ .no-items-selected-container {
429
+ display: -ms-flexbox;
430
+ display: flex;
431
+ -ms-flex-align: center;
432
+ align-items: center;
433
+ -ms-flex-pack: center;
434
+ justify-content: center;
435
+ width: 100%;
436
+ height: 100%;
437
+ }
438
+ .no-items-selected-text {
439
+ font-size: 16px;
440
+ font-weight: 700;
441
+ color: #a0a0a0;
442
+ }
443
+ .absolute-container {
444
+ position: absolute;
445
+ }
446
+ }
447
+ .compact {
448
+ padding-top: 0;
449
+ }
450
+ .failover-order-with-details-title {
451
+ margin: 0 !important;
452
+ padding-top: 0 !important;
453
+ }
454
+ .element-disabled {
455
+ pointer-events: none;
456
+ cursor: not-allowed;
457
+ opacity: 0.6;
458
+ }
459
+ .secondary-title {
460
+ &.with-margins {
461
+ margin: 12px 0 3px 0;
462
+ }
463
+ label {
464
+ font-size: 16px;
465
+ color: #000;
466
+ }
467
+ }
468
+ .vertical-separator {
469
+ border: 1px solid #999;
470
+ border-left: none;
471
+ margin: 0 7px 0 4px;
472
+ }
473
+
474
+ :deep(div.edit-pg-failover-order-with-details.is-dark) {
475
+ .failover-order-master {
476
+ .secondary-title {
477
+ label {
478
+ color: #fff;
479
+ }
480
+ }
481
+ }
482
+ .k-grid-content {
483
+ background-color: var(--modal-bg-color);
484
+ }
485
+ .vui-action-bar {
486
+ background-color: var(--pannel-bg-color);
487
+ color: var(--title-color);
488
+ padding: 8px 0 3px;
489
+
490
+ .action-link-container:not(.disabled) {
491
+ &:hover {
492
+ background-color: #29414e;
493
+ border: 1px solid #c7e9ff;
494
+ }
495
+ }
496
+
497
+ svg {
498
+ fill: #fff;
499
+ }
500
+ }
501
+
502
+ .k-grid.k-widget .k-grid-content {
503
+ border-left: 1px solid #485764;
504
+ border-right: 1px solid #485764;
505
+ border-top: 1px solid #ddd;
506
+ border-bottom: 1px solid #ddd;
507
+
508
+ tbody tr {
509
+ background-color: var(--modal-bg-color);
510
+
511
+ td {
512
+ border-bottom: 1px solid #666666;
513
+ border-color: #666666;
514
+ }
515
+
516
+ &:hover {
517
+ background-color: #324f61;
518
+ color: var(--title-color);
519
+
520
+ td {
521
+ border-bottom: 1px solid #ffffff;
522
+ }
523
+ }
524
+
525
+ &.k-state-selected {
526
+ background-color: #d8e3e9;
527
+ box-shadow: 0 1px 1px rgba(0, 0, 0, 0.075) inset;
528
+
529
+ td span {
530
+ color: #000;
531
+ }
532
+ }
533
+ }
534
+ }
535
+
536
+ .failover-order-details {
537
+ &.relative-container .absolute-container {
538
+ background-color: var(--pannel-bg-color);
539
+ color: var(--main-color-mode2);
540
+
541
+ &:has(.no-items-selected-container) {
542
+ background-color: transparent;
543
+ }
544
+ }
545
+
546
+ td span {
547
+ color: var(--main-color-mode2);
548
+ }
549
+ button span {
550
+ color: var(--main-color-mode2);
551
+
552
+ &:hover:not(.disabled) {
553
+ background-color: transparent;
554
+ }
555
+ }
556
+ button.active span {
557
+ color: #fff;
558
+ }
559
+ }
560
+ }
561
+ </style>