bfg-common 1.6.49 → 1.6.50

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 (134) hide show
  1. package/assets/localization/local_be.json +255 -9
  2. package/assets/localization/local_en.json +264 -17
  3. package/assets/localization/local_hy.json +257 -11
  4. package/assets/localization/local_kk.json +255 -9
  5. package/assets/localization/local_ru.json +264 -18
  6. package/assets/localization/local_zh.json +255 -9
  7. package/assets/scss/common/global.scss +11 -0
  8. package/assets/scss/common/theme.scss +2 -2
  9. package/components/atoms/stack/StackBlock.vue +1 -1
  10. package/components/atoms/tooltip/TooltipError.vue +3 -0
  11. package/components/common/adapterManager/addAdapterModal/AddAdapterModalNew.vue +1 -1
  12. package/components/common/adapterManager/addAdapterWarningModal/AddAdapterWarningModalNew.vue +0 -1
  13. package/components/common/adapterManager/ui/table/adapters/AdaptersNew.vue +1 -0
  14. package/components/common/certificate/CertificateInfo.vue +7 -1
  15. package/components/common/configure/physicalAdapters/PhysicalAdapters.vue +6 -0
  16. package/components/common/configure/physicalAdapters/PhysicalAdaptersNew.vue +219 -192
  17. package/components/common/configure/physicalAdapters/PhysicalAdaptersOld.vue +6 -4
  18. package/components/common/configure/physicalAdapters/buttons/Buttons.vue +1 -0
  19. package/components/common/configure/physicalAdapters/modals/edit/Edit.vue +26 -1
  20. package/components/common/configure/physicalAdapters/modals/edit/EditNew.vue +30 -1
  21. package/components/common/configure/physicalAdapters/modals/edit/lib/models/interfaces.ts +5 -0
  22. package/components/common/configure/physicalAdapters/modals/edit/lib/validations/validations.ts +19 -0
  23. package/components/common/configure/physicalAdapters/tableView/TableViewNew.vue +12 -1
  24. package/components/common/configure/physicalAdapters/tableView/lib/config/physicalAdaptersTableConfigNew.ts +21 -21
  25. package/components/common/configure/physicalAdapters/tableView/lib/config/settings.ts +12 -5
  26. package/components/common/configure/physicalAdapters/tableView/lib/models/interfaces.ts +4 -1
  27. package/components/common/diagramMain/Diagram.vue +167 -85
  28. package/components/common/diagramMain/DiagramMain.vue +34 -10
  29. package/components/common/diagramMain/header/Header.vue +49 -0
  30. package/components/common/diagramMain/header/HeaderNew.vue +155 -0
  31. package/components/common/diagramMain/{Header.vue → header/HeaderOld.vue} +78 -67
  32. package/components/common/diagramMain/modals/Modals.vue +4 -0
  33. package/components/common/diagramMain/modals/editSettings/tabs/NetworkProperties.vue +2 -2
  34. package/components/common/diagramMain/modals/lib/config/diagramConfig.ts +43 -2
  35. package/components/common/diagramMain/modals/lib/config/index.ts +2 -1
  36. package/components/common/diagramMain/modals/lib/config/vmKernelAdapter.ts +1 -1
  37. package/components/common/diagramMain/modals/migrateVmkernelAdapter/MigrateVmkernelAdapter.vue +2 -2
  38. package/components/common/diagramMain/modals/migrateVmkernelAdapter/validations/common.ts +1 -1
  39. package/components/common/diagramMain/skeleton/Header.vue +31 -0
  40. package/components/common/diagramMain/skeleton/Switch.vue +75 -0
  41. package/components/common/layout/theHeader/ThemeSwitch.vue +1 -1
  42. package/components/common/layout/theHeader/modals/reconnect/New.vue +38 -30
  43. package/components/common/layout/theHeader/userMenu/modals/changePassword/New.vue +8 -9
  44. package/components/common/layout/theHeader/userMenu/modals/preferences/New.vue +4 -0
  45. package/components/common/layout/theHeader/userMenu/modals/preferences/Old.vue +9 -2
  46. package/components/common/layout/theHeader/userMenu/modals/preferences/changeLanguage/ChangeLanguage.vue +11 -7
  47. package/components/common/layout/theHeader/userMenu/modals/preferences/defaultConsole/DefaultConsole.vue +7 -1
  48. package/components/common/layout/theHeader/userMenu/modals/preferences/defaultConsole/lib/config/consoleOptions.ts +8 -5
  49. package/components/common/layout/theHeader/userMenu/modals/preferences/timeFormat/TimeFormat.vue +9 -5
  50. package/components/common/layout/theHeader/userMenu/modals/preferences/timeFormat/lib/config/formatOptions.ts +1 -1
  51. package/components/common/layout/theHeader/userMenu/modals/preferences/view/Old.vue +5 -9
  52. package/components/common/layout/theHeader/userMenu/modals/preferences/view/View.vue +9 -6
  53. package/components/common/mainNavigationPanel/MainNavigationPanelNew.vue +3 -1
  54. package/components/common/monitor/advanced/tools/Tools.vue +10 -9
  55. package/components/common/monitor/advanced/tools/chartOptionsModal/ChartOptionsModal.vue +16 -19
  56. package/components/common/monitor/advanced/tools/lib/config/advancedToolbar.ts +62 -9
  57. package/components/common/noDataProvided/NoDataProvidedNew.vue +1 -1
  58. package/components/common/pages/backups/modals/createBackup/datastores/tableView/new/lib/config/table.ts +4 -4
  59. package/components/common/pages/backups/modals/createBackup/datastores/tableView/old/lib/config/table.ts +4 -4
  60. package/components/common/pages/hardwareHealth/HardwareHealth.vue +4 -0
  61. package/components/common/pages/hardwareHealth/HardwareHealthNew.vue +12 -3
  62. package/components/common/pages/hardwareHealth/HardwareHealthOld.vue +3 -0
  63. package/components/common/pages/hardwareHealth/historyTestimony/Graph.vue +4 -4
  64. package/components/common/pages/hardwareHealth/historyTestimony/GraphNew.vue +4 -3
  65. package/components/common/pages/hardwareHealth/historyTestimony/GraphOld.vue +3 -2
  66. package/components/common/pages/hardwareHealth/historyTestimony/tools/Tools.vue +32 -8
  67. package/components/common/pages/hardwareHealth/historyTestimony/tools/ToolsNew.vue +11 -18
  68. package/components/common/pages/hardwareHealth/historyTestimony/tools/ToolsOld.vue +10 -19
  69. package/components/common/pages/hardwareHealth/historyTestimony/tools/chartOptionsModal/ChartOptionsModal.vue +19 -7
  70. package/components/common/pages/hardwareHealth/historyTestimony/tools/chartOptionsModal/actions/ActionsNew.vue +1 -1
  71. package/components/common/pages/hardwareHealth/historyTestimony/tools/lib/config/toolbar.ts +68 -5
  72. package/components/common/pages/scheduledTasks/table/lib/models/enums.ts +9 -0
  73. package/components/common/pages/scheduledTasks/table/new/New.vue +12 -10
  74. package/components/common/pages/tasks/Tasks.vue +4 -1
  75. package/components/common/pages/tasks/table/Table.vue +25 -23
  76. package/components/common/readyToComplete/New.vue +1 -0
  77. package/components/common/split/vertical/New.vue +42 -8
  78. package/components/common/split/vertical/Old.vue +31 -2
  79. package/components/common/split/vertical/Vertical.vue +4 -0
  80. package/components/common/vm/actions/add/New.vue +21 -6
  81. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/Media.vue +14 -1
  82. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/New.vue +5 -0
  83. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/Old.vue +1 -0
  84. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/New.vue +1 -0
  85. package/components/common/vm/actions/common/customizeHardware/virtualHardware/reservation/New.vue +2 -0
  86. package/components/common/vm/actions/common/select/storage/new/lib/config/table.ts +13 -15
  87. package/components/common/vm/actions/confirm/Confirm.vue +3 -0
  88. package/components/common/vm/snapshots/DetailView.vue +6 -6
  89. package/components/common/wizards/datastore/add/New.vue +6 -0
  90. package/components/common/wizards/datastore/add/lib/config/steps.ts +1 -1
  91. package/components/common/wizards/datastore/add/steps/nameAndDevice/NameAndDeviceNew.vue +1 -1
  92. package/components/common/wizards/datastore/add/steps/nameAndDevice/advancedOptions/New.vue +1 -1
  93. package/components/common/wizards/network/add/Add.vue +13 -2
  94. package/components/common/wizards/network/add/AddNew.vue +22 -26
  95. package/components/common/wizards/network/add/lib/config/initialData.ts +6 -4
  96. package/components/common/wizards/network/add/lib/config/steps.ts +1 -1
  97. package/components/common/wizards/network/add/lib/models/interfaces.ts +1 -0
  98. package/components/common/wizards/network/add/lib/utils/utils.ts +1 -1
  99. package/components/common/wizards/network/add/steps/connectionSettings/ConnectionSettingsOld.vue +5 -1
  100. package/components/common/wizards/network/add/steps/ipFourSettings/IpFourSettingsNew.vue +2 -8
  101. package/components/common/wizards/network/add/steps/ipFourSettings/IpFourSettingsOld.vue +3 -0
  102. package/components/common/wizards/network/add/steps/portProperties/PortPropertiesNew.vue +2 -8
  103. package/components/common/wizards/network/add/steps/portProperties/PortPropertiesOld.vue +6 -2
  104. package/components/common/wizards/network/add/steps/selectTargetDevice/SelectTargetDeviceNew.vue +10 -3
  105. package/components/common/wizards/network/add/steps/selectTargetDevice/SelectTargetDeviceOld.vue +4 -0
  106. package/components/common/wizards/network/add/steps/selectTargetDevice/modals/new/SelectNetwork.vue +5 -1
  107. package/components/common/wizards/network/add/validations/common.ts +1 -1
  108. package/components/common/wizards/vm/migrate/New.vue +13 -3
  109. package/components/common/wizards/vm/migrate/lib/config/constructDataReady.ts +5 -0
  110. package/components/common/wizards/vm/migrate/lib/config/steps.ts +3 -2
  111. package/components/common/wizards/vm/migrate/steps/computeResource/New.vue +2 -1
  112. package/components/common/wizards/vm/migrate/steps/computeResource/tableView/new/New.vue +40 -21
  113. package/components/common/wizards/vm/migrate/steps/computeResource/tableView/new/lib/config/clusterTable.ts +340 -0
  114. package/components/common/wizards/vm/migrate/steps/computeResource/tableView/new/lib/config/hostTable.ts +44 -14
  115. package/components/common/wizards/vm/migrate/steps/computeResource/tableView/new/lib/models/enums.ts +4 -0
  116. package/components/common/wizards/vm/migrate/steps/priority/New.vue +7 -2
  117. package/components/common/wizards/vm/migrate/steps/selectStorage/New.vue +22 -7
  118. package/components/common/wizards/vm/migrate/steps/selectStorage/configure/batch/New.vue +6 -0
  119. package/components/common/wizards/vm/migrate/steps/selectStorage/configure/batch/table/new/New.vue +4 -1
  120. package/components/common/wizards/vm/migrate/steps/selectStorage/configure/batch/table/new/lib/config/datastoreTable.ts +12 -16
  121. package/components/common/wizards/vm/migrate/steps/selectStorage/configure/disk/table/new/New.vue +10 -5
  122. package/components/common/wizards/vm/migrate/steps/selectStorage/configure/disk/table/new/lib/config/diskTable.ts +16 -11
  123. package/components/common/wizards/vm/migrate/steps/selectStorage/configure/disk/table/old/lib/config/diskTable.ts +7 -1
  124. package/components/common/wizards/vm/migrate/steps/selectStorage/selectedPerDisk/New.vue +17 -10
  125. package/components/common/wizards/vm/migrate/steps/type/TypeNew.vue +1 -0
  126. package/components/common/wizards/vm/migrate/vmOrigin/New.vue +35 -15
  127. package/lib/models/store/tasks/enums.ts +3 -0
  128. package/lib/models/store/tasks/types.ts +7 -6
  129. package/package.json +2 -2
  130. package/plugins/directives.ts +3 -5
  131. package/public/spice-console/application/agent.js +18 -17
  132. package/store/tasks/actions.ts +26 -8
  133. package/store/tasks/mappers/recentTasks.ts +1 -0
  134. package/components/common/pages/hardwareHealth/historyTestimony/tools/chartOptionsModal/actions/SaveOptionsModal.vue +0 -81
@@ -11,6 +11,14 @@
11
11
  @submit="emits('send-edit-data')"
12
12
  >
13
13
  <template #content>
14
+ <ui-alert
15
+ v-if="!!errors.alert"
16
+ :messages="[errors.alert]"
17
+ test-id="virtual-functions-alert"
18
+ size="md"
19
+ class="virtual-functions-alert"
20
+ @hide="onHideAlert"
21
+ />
14
22
  <div class="form-group">
15
23
  <div class="form-group-speed">
16
24
  <label class="config-speed-title title">
@@ -30,7 +38,7 @@
30
38
  <div v-if="props.hasSpeed" class="form-group-sr">
31
39
  <ui-line margin="24px 0 16px" />
32
40
  <label class="sr-title title">
33
- {{ localization.common.status }}
41
+ {{ localization.common.srIov }}
34
42
  </label>
35
43
  <p class="sr-description">
36
44
  {{ localization.common.srIovDescription }}
@@ -59,6 +67,7 @@
59
67
  :placeholder="localization.common.virtualFunctions"
60
68
  size="md"
61
69
  type="number"
70
+ :error="sriovStatus ? errors.field : ''"
62
71
  :disabled="!sriovStatus"
63
72
  />
64
73
  </div>
@@ -85,6 +94,8 @@ import type { UI_I_ModalTexts } from '~/node_modules/bfg-uikit/components/ui/mod
85
94
  import type { UI_I_OptionItem } from '~/node_modules/bfg-common/components/atoms/lib/models/interfaces'
86
95
  import type { UI_I_Localization } from '~/lib/models/interfaces'
87
96
  import type { UI_I_SwitchAdapterItem } from '~/components/common/diagramMain/lib/models/interfaces'
97
+ import type { UI_I_SrOptionError } from '~/components/common/configure/physicalAdapters/modals/edit/lib/models/interfaces'
98
+ import { vfNumberValidationFunc } from '~/components/common/configure/physicalAdapters/modals/edit/lib/validations/validations'
88
99
 
89
100
  const props = defineProps<{
90
101
  hasSpeed: boolean
@@ -109,6 +120,7 @@ const modalTexts = ref<UI_I_ModalTexts>({
109
120
  const configSpeed = defineModel<string>('config-speed')
110
121
  const sriovStatus = defineModel<boolean>('status')
111
122
  const numberOfFunctions = defineModel<number>('number-of-functions')
123
+ const errors = defineModel<UI_I_SrOptionError>('errors')
112
124
 
113
125
  const status = computed({
114
126
  get() {
@@ -118,6 +130,19 @@ const status = computed({
118
130
  sriovStatus.value = newValue === '1'
119
131
  },
120
132
  })
133
+
134
+ watch(
135
+ numberOfFunctions,
136
+ (newValue: number): void => {
137
+ errors.value.field = vfNumberValidationFunc(newValue, localization.value)
138
+ errors.value.alert = ''
139
+ },
140
+ { immediate: true }
141
+ )
142
+
143
+ const onHideAlert = (): void => {
144
+ errors.value.alert = ''
145
+ }
121
146
  </script>
122
147
 
123
148
  <style scoped lang="scss">
@@ -200,4 +225,8 @@ const status = computed({
200
225
  }
201
226
  }
202
227
  }
228
+
229
+ .virtual-functions-alert {
230
+ margin: 8px 32px;
231
+ }
203
232
  </style>
@@ -10,3 +10,8 @@ export interface UI_I_SrOption {
10
10
  value: string
11
11
  text: string
12
12
  }
13
+
14
+ export interface UI_I_SrOptionError {
15
+ alert: string
16
+ field: string
17
+ }
@@ -0,0 +1,19 @@
1
+ import type { UI_I_Localization } from '~/lib/models/interfaces'
2
+
3
+ export const vfNumberValidationFunc = (
4
+ vfNumber: number,
5
+ localization: UI_I_Localization,
6
+ isAlert = false
7
+ ): string => {
8
+ if (vfNumber !== 0 && !vfNumber) {
9
+ return isAlert
10
+ ? localization.inventoryConfigure.vfRequiredMessage
11
+ : localization.common.fieldRequired
12
+ } else if (vfNumber < 1 || vfNumber > 63) {
13
+ return isAlert
14
+ ? localization.inventoryConfigure.vfNotNegativeMessage
15
+ : localization.inventoryConfigure.vfNotNegativeMessage
16
+ }
17
+
18
+ return ''
19
+ }
@@ -170,7 +170,9 @@ const actions = computed<UI_I_ButtonsGroup>(() => [
170
170
  value: 'edit',
171
171
  testId: 'edit-physical-adapted',
172
172
  id: 'edit-physical-adapted',
173
+ iconName: 'edit',
173
174
  disabled: !props.hasSelectedAdapter,
175
+ development: true,
174
176
  },
175
177
  ])
176
178
 
@@ -247,6 +249,11 @@ const onShowEditModal = (id: string): void => {
247
249
  :deep(.table-container) {
248
250
  height: 100%;
249
251
  grid-template-rows: min-content auto min-content;
252
+
253
+ .title-container {
254
+ margin-right: 16px;
255
+ }
256
+
250
257
  &.full-width-search {
251
258
  grid-template-rows: min-content min-content auto min-content;
252
259
  }
@@ -322,7 +329,7 @@ const onShowEditModal = (id: string): void => {
322
329
  }
323
330
  }
324
331
  &-text {
325
- line-height: 16px;
332
+ line-height: 18px;
326
333
  }
327
334
  }
328
335
 
@@ -331,4 +338,8 @@ const onShowEditModal = (id: string): void => {
331
338
  white-space: nowrap;
332
339
  }
333
340
  }
341
+
342
+ :deep(.ui-button-group-dots-icon) {
343
+ padding-left: 0;
344
+ }
334
345
  </style>
@@ -8,96 +8,96 @@ import type { UI_I_PhysicalAdapter } from '~/components/common/configure/physica
8
8
  import { physicalAdaptersTableItemsTuple } from '~/components/common/configure/physicalAdapters/tableView/lib/config/tableKeys'
9
9
 
10
10
  export const getHeaderDataFunc = (
11
- localization: UI_I_Localization
11
+ localization: UI_I_Localization
12
12
  ): UI_I_DataTableHeader[] => [
13
13
  {
14
14
  col: 'col0',
15
- colName: [physicalAdaptersTableItemsTuple[0]],
15
+ colName: physicalAdaptersTableItemsTuple[0],
16
16
  text: localization.common[physicalAdaptersTableItemsTuple[0]],
17
17
  isSortable: true,
18
18
  sort: 'asc',
19
19
  sortColumn: true,
20
- width: '30%',
20
+ width: '160px',
21
21
  show: true,
22
22
  filter: true,
23
23
  },
24
24
  {
25
25
  col: 'col1',
26
- colName: [physicalAdaptersTableItemsTuple[1]],
26
+ colName: physicalAdaptersTableItemsTuple[1],
27
27
  text: localization.common[physicalAdaptersTableItemsTuple[1]],
28
28
  isSortable: true,
29
29
  sort: 'asc',
30
- width: '20%',
30
+ width: '200px',
31
31
  show: true,
32
32
  filter: true,
33
33
  },
34
34
  {
35
35
  col: 'col2',
36
- colName: [physicalAdaptersTableItemsTuple[2]],
36
+ colName: physicalAdaptersTableItemsTuple[2],
37
37
  text: localization.common[physicalAdaptersTableItemsTuple[2]],
38
38
  isSortable: true,
39
39
  sort: 'asc',
40
- width: '20%',
40
+ width: '240px',
41
41
  show: true,
42
42
  filter: true,
43
43
  },
44
44
  {
45
45
  col: 'col3',
46
- colName: [physicalAdaptersTableItemsTuple[3]],
46
+ colName: physicalAdaptersTableItemsTuple[3],
47
47
  text: localization.common[physicalAdaptersTableItemsTuple[3]],
48
48
  isSortable: true,
49
49
  sort: 'asc',
50
- width: '20%',
50
+ width: '140px',
51
51
  show: true,
52
52
  filter: true,
53
53
  },
54
54
  {
55
55
  col: 'col4',
56
- colName: [physicalAdaptersTableItemsTuple[4]],
56
+ colName: physicalAdaptersTableItemsTuple[4],
57
57
  text: localization.common[physicalAdaptersTableItemsTuple[4]],
58
58
  isSortable: true,
59
59
  sort: 'asc',
60
- width: '20%',
60
+ width: '176px',
61
61
  show: true,
62
62
  filter: true,
63
63
  },
64
64
  {
65
65
  col: 'col5',
66
- colName: [physicalAdaptersTableItemsTuple[5]],
66
+ colName: physicalAdaptersTableItemsTuple[5],
67
67
  text: localization.common[physicalAdaptersTableItemsTuple[5]],
68
68
  isSortable: true,
69
69
  sort: 'asc',
70
- width: '20%',
70
+ width: '174px',
71
71
  show: true,
72
72
  filter: true,
73
73
  },
74
74
  {
75
75
  col: 'col6',
76
- colName: [physicalAdaptersTableItemsTuple[6]],
76
+ colName: physicalAdaptersTableItemsTuple[6],
77
77
  text: localization.common[physicalAdaptersTableItemsTuple[6]],
78
78
  isSortable: true,
79
79
  sort: 'asc',
80
- width: '20%',
80
+ width: '200px',
81
81
  show: true,
82
82
  filter: true,
83
83
  },
84
84
  {
85
85
  col: 'col7',
86
- colName: [physicalAdaptersTableItemsTuple[7]],
86
+ colName: physicalAdaptersTableItemsTuple[7],
87
87
  text: localization.common[physicalAdaptersTableItemsTuple[7]],
88
88
  isSortable: true,
89
89
  sort: 'asc',
90
- width: '20%',
90
+ width: '200px',
91
91
  show: true,
92
92
  filter: true,
93
93
  },
94
94
  {
95
95
  col: 'col8',
96
- colName: [physicalAdaptersTableItemsTuple[8]],
96
+ colName: physicalAdaptersTableItemsTuple[8],
97
97
  text: localization.common[physicalAdaptersTableItemsTuple[8]],
98
98
  isSortable: true,
99
99
  sort: 'asc',
100
- width: '20%',
100
+ width: '140px',
101
101
  show: true,
102
102
  filter: true,
103
103
  },
@@ -131,8 +131,8 @@ export const options: UI_I_DataTableOptions = {
131
131
  }
132
132
 
133
133
  export const getBodyDataFunc = (
134
- bodyData: UI_I_PhysicalAdapter[],
135
- selectedRow: number
134
+ bodyData: UI_I_PhysicalAdapter[],
135
+ selectedRow: number
136
136
  ): UI_I_DataTableBody[] => {
137
137
  return bodyData.map((adapter: UI_I_PhysicalAdapter, index: number) => {
138
138
  return {
@@ -11,22 +11,22 @@ export const adapterViewSettingsModalTabsFunc = (
11
11
  {
12
12
  text: localization.common.all,
13
13
  value: 0,
14
- testId: 'physical-adapter-view-all-settings'
14
+ testId: 'physical-adapter-view-all-settings',
15
15
  },
16
16
  {
17
17
  text: localization.common.properties,
18
18
  value: 1,
19
- testId: 'physical-adapter-view-properties-setting'
19
+ testId: 'physical-adapter-view-properties-setting',
20
20
  },
21
21
  {
22
22
  text: localization.common.cdp,
23
23
  value: 2,
24
- testId: 'physical-adapter-view-cdp-setting'
24
+ testId: 'physical-adapter-view-cdp-setting',
25
25
  },
26
26
  {
27
27
  text: localization.common.lldp,
28
28
  value: 3,
29
- testId: 'physical-adapter-view-lldp-setting'
29
+ testId: 'physical-adapter-view-lldp-setting',
30
30
  },
31
31
  ]
32
32
 
@@ -36,6 +36,7 @@ export const adapterViewSettingsFunc = (
36
36
  ): UI_I_ViewSettingsFields[] => {
37
37
  return [
38
38
  {
39
+ title: localization.common.properties,
39
40
  id: 1,
40
41
  type: 1,
41
42
  rows: [
@@ -67,6 +68,8 @@ export const adapterViewSettingsFunc = (
67
68
  value: initialData.carrier
68
69
  ? localization.common.connected
69
70
  : localization.common.disconnected,
71
+ status: true,
72
+ color: initialData.carrier,
70
73
  },
71
74
  {
72
75
  name: localization.common.actualSpeedDuplex,
@@ -102,7 +105,11 @@ export const adapterViewSettingsFunc = (
102
105
  rows: [
103
106
  {
104
107
  name: localization.common.status,
105
- value: !initialData.srIov ? localization.common.notSupported : '',
108
+ value: !initialData.srIov
109
+ ? localization.common.notSupported
110
+ : localization.common.supported,
111
+ status: true,
112
+ color: initialData.srIov,
106
113
  },
107
114
  ],
108
115
  },
@@ -13,7 +13,10 @@ export interface UI_I_PhysicalAdapter {
13
13
 
14
14
  export interface UI_I_ViewSettingsFieldsRow {
15
15
  name: string
16
- value: string | string[]
16
+ value?: string | string[] | undefined
17
+ color?: boolean
18
+ status?: boolean
19
+ icon?: string
17
20
  }
18
21
 
19
22
  export interface UI_I_ViewSettingsFields {
@@ -6,88 +6,126 @@
6
6
  'diagram-in-portlet': props.inPortlet,
7
7
  }"
8
8
  >
9
- <div class="diagram-second-container">
10
- <svg
11
- v-if="props.diagramData && props.isShowDiagram"
12
- xmlns="http://www.w3.org/2000/svg"
13
- :height="diagramHeight"
14
- :width="diagramWidth"
15
- :viewBox="viewBox"
16
- :preserveAspectRatio="preserveAspectRatio"
17
- :class="svgClasses"
18
- @click.capture="onClickDiagram"
19
- >
20
- <common-diagram-main-switch
21
- :networks-count="props.networksCount"
22
- :main-rect-height="props.mainRectHeight"
23
- :main-switch-line="props.mainSwitchLine"
24
- :selected-main-line="props.selectedMainLine"
25
- :is-visible-line="hasActiveAdapter"
26
- :is-selected-linked-with-adapter="isSelectedLinkedWithAdapter"
27
- :adapter-line-y="props.adaptersWithPositions.adaptersConnectLineY"
28
- :first-and-last-network-lines-y="firstAndLastNetworkLinesY"
29
- :networks-with-positions="props.networksWithPositions"
30
- />
31
- <common-diagram-main-adapter
32
- :networks-count="props.networksCount"
33
- :adapters-with-positions="props.adaptersWithPositions"
34
- :selected-main-line="props.selectedMainLine"
35
- :selected-port="props.selectedPort"
36
- :selected-adapter="props.selectedAdapter"
37
- :selected-network="props.selectedNetwork"
38
- :is-visible-line="hasActiveAdapter"
39
- :is-dark-mode="props.isDarkMode"
40
- :test-id="props.diagramData.testId"
41
- :is-selected-linked-with-adapter="isSelectedLinkedWithAdapter"
42
- :networks-with-positions="props.networksWithPositions"
43
- :first-and-last-network-lines-y="firstAndLastNetworkLinesY"
44
- :in-network-lines-y="inNetworkLinesY"
45
- @toggle-adapters="onToggleAdapters"
46
- @select-adapter="onSelectAdapter"
47
- @show-modal="onShowModal"
48
- />
49
- <template v-if="!!props.networksWithPositions.length">
50
- <template
51
- v-for="network in props.networksWithPositions"
52
- :key="network.id"
53
- >
54
- <common-diagram-main-network
55
- :network="network"
56
- :selected-port="props.selectedPort"
57
- :selected-adapter="props.selectedAdapter"
58
- :selected-network="props.selectedNetwork"
59
- :selected-main-line="props.selectedMainLine"
60
- :diagram-id="props.diagramData.id"
61
- :in-portlet="props.inPortlet"
62
- :is-visible-line="hasActiveAdapter"
63
- :is-dark-mode="props.isDarkMode"
64
- :first-and-last-network-lines-y="firstAndLastNetworkLinesY"
65
- :adapter-line-y="props.adaptersWithPositions.adaptersConnectLineY"
66
- :adapters-positions-y="adaptersPositionsY"
67
- @toggle-ports="onTogglePorts"
68
- @select-port="onSelectPort"
69
- @select-network="onSelectNetwork"
70
- @show-modal="onShowModal"
71
- />
9
+ <common-diagram-main-header
10
+ v-if="!props.inPortlet"
11
+ :project="props.project"
12
+ :is-show-diagram="props.isShowDiagram"
13
+ :diagram-name="props.diagramData.diagramName"
14
+ :test-id="props.diagramData.testId"
15
+ @toggle-diagram="emits('toggle-diagram')"
16
+ @show-modal="onShowModal"
17
+ />
18
+
19
+ <div
20
+ :class="[
21
+ 'diagrams',
22
+ {
23
+ 'is-show-diagram': props.isShowDiagram,
24
+ },
25
+ ]"
26
+ >
27
+ <div class="diagram-second-container">
28
+ <svg
29
+ v-if="props.diagramData && props.isShowDiagram"
30
+ xmlns="http://www.w3.org/2000/svg"
31
+ :height="diagramHeight"
32
+ :width="diagramWidth"
33
+ :viewBox="viewBox"
34
+ :preserveAspectRatio="preserveAspectRatio"
35
+ :class="svgClasses"
36
+ @click.capture="onClickDiagram"
37
+ >
38
+ <common-diagram-main-switch
39
+ :networks-count="props.networksCount"
40
+ :main-rect-height="props.mainRectHeight"
41
+ :main-switch-line="props.mainSwitchLine"
42
+ :selected-main-line="props.selectedMainLine"
43
+ :is-visible-line="hasActiveAdapter"
44
+ :is-selected-linked-with-adapter="isSelectedLinkedWithAdapter"
45
+ :adapter-line-y="props.adaptersWithPositions.adaptersConnectLineY"
46
+ :first-and-last-network-lines-y="firstAndLastNetworkLinesY"
47
+ :networks-with-positions="props.networksWithPositions"
48
+ />
49
+ <common-diagram-main-adapter
50
+ :networks-count="props.networksCount"
51
+ :adapters-with-positions="props.adaptersWithPositions"
52
+ :selected-main-line="props.selectedMainLine"
53
+ :selected-port="props.selectedPort"
54
+ :selected-adapter="props.selectedAdapter"
55
+ :selected-network="props.selectedNetwork"
56
+ :is-visible-line="hasActiveAdapter"
57
+ :is-dark-mode="props.isDarkMode"
58
+ :test-id="props.diagramData.testId"
59
+ :is-selected-linked-with-adapter="isSelectedLinkedWithAdapter"
60
+ :networks-with-positions="props.networksWithPositions"
61
+ :first-and-last-network-lines-y="firstAndLastNetworkLinesY"
62
+ :in-network-lines-y="inNetworkLinesY"
63
+ @toggle-adapters="onToggleAdapters"
64
+ @select-adapter="onSelectAdapter"
65
+ @show-modal="onShowModal"
66
+ />
67
+ <template v-if="!!props.networksWithPositions.length">
68
+ <template
69
+ v-for="network in props.networksWithPositions"
70
+ :key="network.id"
71
+ >
72
+ <common-diagram-main-network
73
+ :network="network"
74
+ :selected-port="props.selectedPort"
75
+ :selected-adapter="props.selectedAdapter"
76
+ :selected-network="props.selectedNetwork"
77
+ :selected-main-line="props.selectedMainLine"
78
+ :diagram-id="props.diagramData.id"
79
+ :in-portlet="props.inPortlet"
80
+ :is-visible-line="hasActiveAdapter"
81
+ :is-dark-mode="props.isDarkMode"
82
+ :first-and-last-network-lines-y="firstAndLastNetworkLinesY"
83
+ :adapter-line-y="
84
+ props.adaptersWithPositions.adaptersConnectLineY
85
+ "
86
+ :adapters-positions-y="adaptersPositionsY"
87
+ @toggle-ports="onTogglePorts"
88
+ @select-port="onSelectPort"
89
+ @select-network="onSelectNetwork"
90
+ @show-modal="onShowModal"
91
+ />
92
+ </template>
72
93
  </template>
73
- </template>
74
- <template v-else>
75
- <common-diagram-main-network-no-network />
76
- </template>
77
- <common-diagram-main-switch-selected
78
- :selected-switch-line-y="props.selectedSwitchLineY"
79
- :is-visible-line="hasActiveAdapter && isSelectedLinkedWithAdapter"
80
- :adapters-positions-y="adaptersPositionsY"
81
- :adapter-line-y="props.adaptersWithPositions.adaptersConnectLineY"
82
- :is-highlighted-adapter-line="isHighlightedAdapterLine"
83
- :in-network-lines-y="inNetworkLinesY"
84
- />
85
- </svg>
94
+ <template v-else>
95
+ <common-diagram-main-network-no-network />
96
+ </template>
97
+ <common-diagram-main-switch-selected
98
+ :selected-switch-line-y="props.selectedSwitchLineY"
99
+ :is-visible-line="hasActiveAdapter && isSelectedLinkedWithAdapter"
100
+ :adapters-positions-y="adaptersPositionsY"
101
+ :adapter-line-y="props.adaptersWithPositions.adaptersConnectLineY"
102
+ :is-highlighted-adapter-line="isHighlightedAdapterLine"
103
+ :in-network-lines-y="inNetworkLinesY"
104
+ />
105
+ </svg>
106
+ </div>
86
107
  </div>
87
108
  </div>
109
+ <div v-if="isNewView && props.isShowDiagram" class="virtual-switch-remove">
110
+ <ui-button
111
+ :test-id="`${props.diagramData.testId}-remove`"
112
+ variant="text"
113
+ type="error"
114
+ is-without-sizes
115
+ is-without-height
116
+ v-permission="'Networks.RemoveSwitch'"
117
+ @click="emits('show-modal', 'switch-remove')"
118
+ >
119
+ <span class="virtual-switch-remove-btn">
120
+ <ui-icon name="delete" width="20" height="20" />
121
+ {{ localization.common.remove }}
122
+ </span>
123
+ </ui-button>
124
+ </div>
88
125
  </template>
89
126
 
90
127
  <script setup lang="ts">
128
+ import type { UI_I_Localization } from '~/lib/models/interfaces'
91
129
  import type {
92
130
  UI_I_AdaptersWithPositions,
93
131
  UI_I_DiagramData,
@@ -98,6 +136,7 @@ import type {
98
136
  UI_I_SwitchLine,
99
137
  UI_I_Network,
100
138
  } from '~/components/common/diagramMain/lib/models/interfaces'
139
+ import type { UI_T_Project } from '~/lib/models/types'
101
140
  import { UI_E_PositionsY } from '~/components/common/diagramMain/lib/models/enums'
102
141
 
103
142
  const props = defineProps<{
@@ -115,6 +154,7 @@ const props = defineProps<{
115
154
  selectedSwitchLineY: UI_I_SwitchLine
116
155
  isDarkMode: boolean
117
156
  networksCount: number
157
+ project: UI_T_Project
118
158
  }>()
119
159
 
120
160
  const emits = defineEmits<{
@@ -134,12 +174,15 @@ const emits = defineEmits<{
134
174
  ): void
135
175
  (event: 'select-port', networkId: string, portId: string): void
136
176
  (event: 'select-network', networkId: string): void
177
+ (event: 'toggle-diagram'): void
137
178
  }>()
138
179
 
139
180
  const { $store }: any = useNuxtApp()
140
181
 
141
182
  const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
142
183
 
184
+ const localization = computed<UI_I_Localization>(() => useLocal())
185
+
143
186
  const inNetworkLinesY = computed(() => {
144
187
  const linesY = []
145
188
  props.networksWithPositions.forEach((net, index) => {
@@ -324,8 +367,19 @@ const onSelectNetwork = (networkId: string): void => {
324
367
  <style scoped lang="scss">
325
368
  .diagram {
326
369
  &-container {
327
- display: flex;
328
- justify-content: center;
370
+ //display: flex;
371
+ //justify-content: center;
372
+ .diagram-second-container {
373
+ display: flex;
374
+ justify-content: center;
375
+ min-width: 725px;
376
+ }
377
+
378
+ &.diagram-in-portlet {
379
+ .diagram-second-container {
380
+ min-width: 560px;
381
+ }
382
+ }
329
383
 
330
384
  .diagram-portlet {
331
385
  margin-top: 10px;
@@ -335,16 +389,21 @@ const onSelectNetwork = (networkId: string): void => {
335
389
 
336
390
  .diagram {
337
391
  &-container-new:not(.diagram-in-portlet) {
338
- display: flex;
339
- justify-content: center;
340
- margin: 16px 16px 30px;
341
- padding: 16px;
342
- border-radius: 8px;
343
- background: var(--diagram-container-bg);
344
- box-shadow: 0 1px 4px 0 #00000014;
392
+ .diagrams.is-show-diagram {
393
+ margin-top: 24px;
394
+ }
345
395
 
346
396
  .diagram-second-container {
347
397
  overflow-x: auto;
398
+ display: flex;
399
+ justify-content: center;
400
+ min-width: 760px;
401
+
402
+ &.diagram-in-portlet {
403
+ .diagram-second-container {
404
+ min-width: 560px;
405
+ }
406
+ }
348
407
 
349
408
  .diagram-svg {
350
409
  margin: 22.5px 17.5px;
@@ -357,6 +416,29 @@ const onSelectNetwork = (networkId: string): void => {
357
416
  }
358
417
  }
359
418
  }
419
+
420
+ .diagrams {
421
+ overflow-y: auto;
422
+ }
423
+
424
+ .virtual-switch-remove {
425
+ padding: 16px 0 0;
426
+ display: flex;
427
+ justify-content: flex-end;
428
+
429
+ &-btn {
430
+ height: 20px;
431
+ font-weight: 500;
432
+ font-size: 14px;
433
+ line-height: 17px;
434
+ letter-spacing: 0;
435
+ display: flex;
436
+ align-items: center;
437
+ column-gap: 8px;
438
+ color: var(--text-red)
439
+
440
+ }
441
+ }
360
442
  </style>
361
443
  <style lang="scss">
362
444
  .diagram-actions__popup.navbar-dropdown-menu {