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
@@ -3,17 +3,16 @@
3
3
  v-if="props.diagramData"
4
4
  :class="{ 'diagram-min-width': !props.inPortlet }"
5
5
  >
6
- <div class="diagram-main-container">
7
- <common-diagram-main-header
8
- :project="props.project"
9
- :in-portlet="props.inPortlet"
10
- :is-show-diagram="isShowDiagram"
11
- :diagram-name="props.diagramData.diagramName"
12
- :test-id="props.diagramData.testId"
13
- @toggle-diagram="onToggleDiagram"
14
- @show-modal="onShowModal"
15
- />
6
+ <div
7
+ :class="[
8
+ 'diagram-main-container',
9
+ {
10
+ 'is-new-view': isNewView,
11
+ },
12
+ ]"
13
+ >
16
14
  <common-diagram-main-diagram
15
+ :project="props.project"
17
16
  :diagram-data="props.diagramData"
18
17
  :is-show-diagram="isShowDiagram"
19
18
  :in-portlet="props.inPortlet"
@@ -28,6 +27,7 @@
28
27
  :selected-switch-line-y="selectedSwitchLineY"
29
28
  :is-dark-mode="props.isDarkMode"
30
29
  :networks-count="networksCount"
30
+ @toggle-diagram="onToggleDiagram"
31
31
  @click-diagram="onClickDiagram"
32
32
  @toggle-adapters="onToggleAdapters"
33
33
  @select-adapter="onSelectAdapter"
@@ -74,6 +74,8 @@
74
74
  :selected-switch-id="selectedSwitchId"
75
75
  :tcp-stacks="props.tcpStacks"
76
76
  :is-networking-loading="props.isNetworkingLoading"
77
+ :is-get-existing-switches-loading="props.isGetExistingSwitchesLoading"
78
+ :is-get-tcp-stack-loading="props.isGetTcpStackLoading"
77
79
  :networks-list="props.networksList"
78
80
  :is-migrate-adapter-loading="props.isMigrateAdapterLoading"
79
81
  :diagrams-data="props.diagramsData"
@@ -172,6 +174,8 @@ const props = withDefaults(
172
174
  diagramsData?: UI_I_DiagramData[]
173
175
  isManageAdaptersModalLoading?: boolean
174
176
  isNetworkingLoading?: boolean
177
+ isGetExistingSwitchesLoading?: boolean
178
+ isGetTcpStackLoading?: boolean
175
179
  isRemoveModalLoading?: boolean
176
180
  isEditModalLoading?: boolean
177
181
  isMigrateAdapterLoading?: boolean
@@ -193,12 +197,18 @@ const props = withDefaults(
193
197
  diagramsData: [],
194
198
  isManageAdaptersModalLoading: false,
195
199
  isNetworkingLoading: false,
200
+ isGetExistingSwitchesLoading: false,
201
+ isGetTcpStackLoading: false,
196
202
  isRemoveModalLoading: false,
197
203
  isEditModalLoading: false,
198
204
  isMigrateAdapterLoading: false,
199
205
  }
200
206
  )
201
207
 
208
+ const { $store }: any = useNuxtApp()
209
+
210
+ const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
211
+
202
212
  const initialData = ref<UI_I_ModalsInitialData>({})
203
213
  const switchInitialData = ref<UI_I_ModalsInitialData>({})
204
214
 
@@ -880,11 +890,25 @@ const onClickDiagram = (ev: MouseEvent): void => {
880
890
  &-min-width {
881
891
  //min-width: 745px;
882
892
  //min-width: 764px;
893
+ &:not(:first-of-type) {
894
+ margin-top: 16px;
895
+ }
883
896
  }
884
897
  &-main-container {
885
898
  padding-top: 5px;
886
899
  }
887
900
  }
901
+
902
+ .diagram-main-container.is-new-view {
903
+ //display: flex;
904
+ //justify-content: center;
905
+ //margin: 16px 16px 30px;
906
+
907
+ padding: 16px;
908
+ border-radius: 8px;
909
+ background: var(--diagram-container-bg);
910
+ box-shadow: 0 1px 4px 0 #00000014;
911
+ }
888
912
  </style>
889
913
  <style lang="scss">
890
914
  .diagram-main-actions__popup.navbar-dropdown-menu {
@@ -0,0 +1,49 @@
1
+ <template>
2
+ <component
3
+ :is="currentComponent"
4
+ :project="props.project"
5
+ :is-show-diagram="props.isShowDiagram"
6
+ :diagram-name="props.diagramName"
7
+ :test-id="props.testId"
8
+ @toggle-diagram="emits('toggle-diagram')"
9
+ @show-modal="onShowModal"
10
+ />
11
+ </template>
12
+
13
+ <script setup lang="ts">
14
+ import type { UI_I_ModalsInitialData } from '~/components/common/diagramMain/lib/models/interfaces'
15
+ import type { UI_T_Project } from '~/lib/models/types'
16
+
17
+ const props = withDefaults(
18
+ defineProps<{
19
+ isShowDiagram: boolean
20
+ diagramName: string
21
+ testId: string
22
+ project?: UI_T_Project
23
+ }>(),
24
+ {
25
+ project: undefined,
26
+ }
27
+ )
28
+
29
+ const emits = defineEmits<{
30
+ (event: 'toggle-diagram'): void
31
+ (event: 'show-modal', modalName: string, data?: { switch_name: string }): void
32
+ }>()
33
+
34
+ const { $store }: any = useNuxtApp()
35
+
36
+ const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
37
+
38
+ const currentComponent = computed(() =>
39
+ isNewView.value
40
+ ? defineAsyncComponent(() => import('./HeaderNew.vue'))
41
+ : defineAsyncComponent(() => import('./HeaderOld.vue'))
42
+ )
43
+
44
+ const onShowModal = (modalName: string, data?: { switch_name: string }) => {
45
+ emits('show-modal', modalName, data)
46
+ }
47
+ </script>
48
+
49
+ <style scoped lang="scss"></style>
@@ -0,0 +1,155 @@
1
+ <template>
2
+ <div class="diagram-header">
3
+ <div class="diagram-header-left">
4
+ <span
5
+ class="diagram-header-left-icon"
6
+ :data-id="`${props.testId}-toggle-icon`"
7
+ >
8
+ <ui-icon
9
+ name="arrow"
10
+ width="20"
11
+ height="20"
12
+ :class="[
13
+ 'diagram-header-left-icon-arrow',
14
+ {
15
+ open: props.isShowDiagram,
16
+ },
17
+ ]"
18
+ @click="emits('toggle-diagram')"
19
+ />
20
+ </span>
21
+
22
+ <span class="diagram-header-left-title" @click="emits('toggle-diagram')">
23
+ {{ localization.common.standardSwitch }}:
24
+ {{ props.diagramName }}
25
+ </span>
26
+ </div>
27
+ <div v-if="props.isShowDiagram" class="diagram-header-right">
28
+ <ui-button-group
29
+ :buttons="buttons"
30
+ :left-line="true"
31
+ :group-id="props.diagramName"
32
+ class="switch-actions"
33
+ @action="onSelectAction"
34
+ />
35
+ </div>
36
+ </div>
37
+ </template>
38
+
39
+ <script setup lang="ts">
40
+ import type { UI_I_Button } from '~/node_modules/bfg-common/components/common/tools/lib/models/interfaces'
41
+ import type { UI_I_Localization } from '~/lib/models/interfaces'
42
+ import type { UI_I_ModalsInitialData } from '~/components/common/diagramMain/lib/models/interfaces'
43
+ import type { UI_T_Project } from '~/lib/models/types'
44
+ import { switchMainNavigationNewFunc } from '~/components/common/diagramMain/modals/lib/config'
45
+
46
+ const props = withDefaults(
47
+ defineProps<{
48
+ isShowDiagram: boolean
49
+ diagramName: string
50
+ testId: string
51
+ project?: UI_T_Project
52
+ }>(),
53
+ {
54
+ project: undefined,
55
+ }
56
+ )
57
+
58
+ const emits = defineEmits<{
59
+ (event: 'toggle-diagram'): void
60
+ (
61
+ event: 'show-modal',
62
+ modalName: string,
63
+ properties?: UI_I_ModalsInitialData
64
+ ): void
65
+ }>()
66
+
67
+ const localization = computed<UI_I_Localization>(() => useLocal())
68
+
69
+ const buttons = computed<UI_I_Button[]>(() =>
70
+ switchMainNavigationNewFunc(localization.value, props.testId)
71
+ )
72
+
73
+ const onShowModal = (modalName: string, diagramName?: string) => {
74
+ diagramName
75
+ ? emits(
76
+ 'show-modal',
77
+ modalName,
78
+ diagramName && { switch_name: diagramName }
79
+ )
80
+ : emits('show-modal', modalName)
81
+ }
82
+
83
+ const onSelectAction = (event: string): void => {
84
+ onShowModal(event, event === 'add-networking' && props.diagramName)
85
+ }
86
+ </script>
87
+
88
+ <style scoped lang="scss">
89
+ .diagram-header {
90
+ display: flex;
91
+ height: 20px;
92
+
93
+ &-left {
94
+ display: flex;
95
+ flex-wrap: nowrap;
96
+ align-items: center;
97
+ column-gap: 12px;
98
+ height: 20px;
99
+ min-width: max-content;
100
+
101
+ &-icon {
102
+ width: 20px;
103
+ height: 20px;
104
+ color: var(--select-arrow);
105
+
106
+ &-arrow {
107
+ transform: rotate(90deg);
108
+ cursor: pointer;
109
+
110
+ &.open {
111
+ transform: rotate(180deg);
112
+ }
113
+ }
114
+ }
115
+
116
+ &-title {
117
+ font-weight: 500;
118
+ font-size: 16px;
119
+ line-height: 19px;
120
+ letter-spacing: 0;
121
+ color: var(--title-form-first-color);
122
+ cursor: pointer;
123
+
124
+ &:hover {
125
+ color: var(--dropdown-item-hover-color);
126
+ }
127
+ }
128
+ }
129
+
130
+ &-right {
131
+ height: 20px;
132
+ width: 100%;
133
+
134
+ :deep(.ui-button-group) {
135
+ .ui-button-group-line {
136
+ height: 20px;
137
+ top: 0;
138
+ }
139
+
140
+ .ui-button-group-items {
141
+ height: 20px !important;
142
+
143
+ .button-from-group {
144
+ height: 20px !important;
145
+ }
146
+ }
147
+ .ui-button-group-dots {
148
+ margin-top: 0;
149
+ padding-top: 0;
150
+ height: 20px;
151
+ }
152
+ }
153
+ }
154
+ }
155
+ </style>
@@ -1,69 +1,67 @@
1
1
  <template>
2
- <template v-if="!props.inPortlet">
3
- <div class="diagram-header">
4
- <div class="diagram-header-left">
5
- <atoms-the-icon
6
- :class="[
7
- 'diagram-header__arrow-icon',
8
- {
9
- open: props.isShowDiagram,
10
- },
11
- ]"
12
- :data-id="`${props.testId}-toggle-icon`"
13
- name="angle"
14
- @click="onToggleDiagram"
2
+ <div class="diagram-header">
3
+ <div class="diagram-header-left">
4
+ <atoms-the-icon
5
+ :class="[
6
+ 'diagram-header__arrow-icon',
7
+ {
8
+ open: props.isShowDiagram,
9
+ },
10
+ ]"
11
+ :data-id="`${props.testId}-toggle-icon`"
12
+ name="angle"
13
+ @click="emits('toggle-diagram')"
14
+ />
15
+ <a>
16
+ <span>
17
+ {{ localization.common.standardSwitch }}:
18
+ {{ props.diagramName }}
19
+ </span>
20
+ </a>
21
+ </div>
22
+ <div v-if="props.isShowDiagram" class="diagram-header__btn-container">
23
+ <span class="vertical-separator"></span>
24
+ <button
25
+ id="add-networking-button"
26
+ v-permission="
27
+ 'Networks.CreateSysx Networks.CreatePortGroup Networks.UpdateSwitch Networks.CreateSwitch'
28
+ "
29
+ :data-id="`${props.testId}-add-networking-button`"
30
+ type="button"
31
+ @click="onShowModal('add-networking', props.diagramName)"
32
+ >
33
+ {{ localization.common.addNetworking }}
34
+ </button>
35
+ <button
36
+ id="switch-edit-button"
37
+ v-permission="'Networks.UpdateSwitch'"
38
+ :data-id="`${props.testId}-edit-button`"
39
+ type="button"
40
+ @click="onShowModal('switch-edit')"
41
+ >
42
+ {{ localization.common.edit }}
43
+ </button>
44
+ <button
45
+ id="switch-manage-physical-adapters-button"
46
+ v-permission="'Networks.UpdateSwitch'"
47
+ :data-id="`${props.testId}-manage-physical-adapters-button`"
48
+ type="button"
49
+ @click="onShowModal('switch-manage-physical-adapters')"
50
+ >
51
+ {{ localization.common.managePhysicalAdapters }}
52
+ </button>
53
+ <div class="diagram-main-actions-dots">
54
+ <atoms-collapse-nav
55
+ :close-after-click="true"
56
+ :items="switchMainNavigation"
57
+ :test-id="`${props.testId}-actions`"
58
+ popup-class="diagram-main-actions__popup"
59
+ @change="onShowModal"
15
60
  />
16
- <a>
17
- <span>
18
- {{ localization.common.standardSwitch }}:
19
- {{ props.diagramName }}
20
- </span>
21
- </a>
22
- </div>
23
- <div v-if="props.isShowDiagram" class="diagram-header__btn-container">
24
- <span class="vertical-separator"></span>
25
- <button
26
- id="add-networking-button"
27
- v-permission="
28
- 'Networks.CreateSysx Networks.CreatePortGroup Networks.UpdateSwitch Networks.CreateSwitch'
29
- "
30
- :data-id="`${props.testId}-add-networking-button`"
31
- type="button"
32
- @click="onShowModal('add-networking', props.diagramName)"
33
- >
34
- {{ localization.common.addNetworking }}
35
- </button>
36
- <button
37
- id="switch-edit-button"
38
- v-permission="'Networks.UpdateSwitch'"
39
- :data-id="`${props.testId}-edit-button`"
40
- type="button"
41
- @click="onShowModal('switch-edit')"
42
- >
43
- {{ localization.common.edit }}
44
- </button>
45
- <button
46
- id="switch-manage-physical-adapters-button"
47
- v-permission="'Networks.UpdateSwitch'"
48
- :data-id="`${props.testId}-manage-physical-adapters-button`"
49
- type="button"
50
- @click="onShowModal('switch-manage-physical-adapters')"
51
- >
52
- {{ localization.common.managePhysicalAdapters }}
53
- </button>
54
- <div class="diagram-main-actions-dots">
55
- <atoms-collapse-nav
56
- :close-after-click="true"
57
- :items="switchMainNavigation"
58
- :test-id="`${props.testId}-actions`"
59
- popup-class="diagram-main-actions__popup"
60
- @change="onShowModal"
61
- />
62
- </div>
63
61
  </div>
64
62
  </div>
65
- <hr class="horizontal-separator" />
66
- </template>
63
+ </div>
64
+ <hr class="horizontal-separator" />
67
65
  </template>
68
66
 
69
67
  <script setup lang="ts">
@@ -77,7 +75,6 @@ import { switchMainNavigationFunc } from '~/components/common/diagramMain/modals
77
75
 
78
76
  const props = withDefaults(
79
77
  defineProps<{
80
- inPortlet: boolean
81
78
  isShowDiagram: boolean
82
79
  diagramName: string
83
80
  testId: string
@@ -103,12 +100,11 @@ const switchMainNavigation = computed<UI_I_NavigationItem[]>(() =>
103
100
  switchMainNavigationFunc(localization.value, props.testId)
104
101
  )
105
102
 
106
- const onToggleDiagram = () => emits('toggle-diagram')
107
-
108
- const onShowModal = (modalName: string, diagramName?: string) =>
103
+ const onShowModal = (modalName: string, diagramName?: string) => {
109
104
  diagramName
110
105
  ? emits('show-modal', modalName, { switch_name: diagramName })
111
106
  : emits('show-modal', modalName)
107
+ }
112
108
  </script>
113
109
 
114
110
  <style scoped lang="scss">
@@ -140,7 +136,18 @@ const onShowModal = (modalName: string, diagramName?: string) =>
140
136
 
141
137
  .diagram-header {
142
138
  display: flex;
143
- padding-left: 8px;
139
+ justify-self: flex-start;
140
+ width: 100%;
141
+ padding: 24px 16px 0;
142
+ overflow-x: auto;
143
+ overflow-y: hidden;
144
+ scrollbar-width: none;
145
+ -ms-overflow-style: none;
146
+
147
+ &::-webkit-scrollbar {
148
+ display: none;
149
+ }
150
+
144
151
  a {
145
152
  color: #0072a3;
146
153
  cursor: pointer;
@@ -149,6 +156,7 @@ const onShowModal = (modalName: string, diagramName?: string) =>
149
156
  line-height: 20px;
150
157
  span {
151
158
  font-weight: 700;
159
+ white-space: nowrap;
152
160
  }
153
161
  }
154
162
 
@@ -160,7 +168,9 @@ const onShowModal = (modalName: string, diagramName?: string) =>
160
168
 
161
169
  &__arrow-icon {
162
170
  width: 16px;
171
+ min-width: 16px;
163
172
  height: 16px;
173
+ min-height: 16px;
164
174
  margin-right: 4px;
165
175
  transform: rotate(90deg);
166
176
  align-self: center;
@@ -213,6 +223,7 @@ const onShowModal = (modalName: string, diagramName?: string) =>
213
223
  height: 0;
214
224
  overflow: visible;
215
225
  border-top: 0px solid #eee;
226
+ width: 100%;
216
227
  }
217
228
 
218
229
  .vertical-separator {
@@ -183,6 +183,8 @@
183
183
  :tcp-stacks="props.tcpStacks"
184
184
  :diagrams-data="props.diagramsData"
185
185
  :is-networking-loading="props.isNetworkingLoading"
186
+ :is-get-existing-switches-loading="props.isGetExistingSwitchesLoading"
187
+ :is-get-tcp-stack-loading="props.isGetTcpStackLoading"
186
188
  :host-name="props.hostName"
187
189
  :project="props.project"
188
190
  @check-network-label="onCheckNetworkLabel"
@@ -274,6 +276,8 @@ const props = defineProps<{
274
276
  selectedSwitchId: string
275
277
  tcpStacks: UI_I_TCPStack[]
276
278
  isNetworkingLoading: boolean
279
+ isGetExistingSwitchesLoading: boolean
280
+ isGetTcpStackLoading: boolean
277
281
  networksList: UI_I_Network[]
278
282
  isMigrateAdapterLoading: boolean
279
283
  diagramsData: UI_I_DiagramData[]
@@ -141,7 +141,7 @@ const isShowErrorMessage = computed<boolean>(
141
141
 
142
142
  const fieldsValues = ref<UI_I_PropertiesFields>(
143
143
  useDeepCopy({
144
- vlanId: props.initialData.vlanId || `${localization.value.common.none} (0)`,
144
+ vlanId: props.initialData.vlanId || `${localization.value.common.none2} (0)`,
145
145
  networkLabel: props.initialData.networkLabel || 'Network',
146
146
  })
147
147
  )
@@ -180,7 +180,7 @@ const setMessageOnChangedField = (
180
180
 
181
181
  if (
182
182
  name === 'vlanId' &&
183
- values !== `${localization.value.common.none} (0)` &&
183
+ values !== `${localization.value.common.none2} (0)` &&
184
184
  values !== `${localization.value.common.all} (4095)` &&
185
185
  (isNumberInRange(values, 0, 4095) || values === '')
186
186
  ) {
@@ -1,3 +1,4 @@
1
+ import type { UI_I_Button } from '~/node_modules/bfg-common/components/common/tools/lib/models/interfaces'
1
2
  import type { UI_I_Localization } from '~/lib/models/interfaces'
2
3
  import type { UI_I_NavigationItem } from '~/components/common/diagramMain/lib/models/interfaces'
3
4
 
@@ -9,7 +10,7 @@ export const switchMainNavigationFunc = (
9
10
  text: localization.common.migrateVmKernelAdapter,
10
11
  value: 'migrate-vmkernel-adapter',
11
12
  testId: `${testId}-migrate-vm-kernel-adapter`,
12
- development: true
13
+ development: true,
13
14
  },
14
15
  {
15
16
  text: localization.common.viewSettings,
@@ -20,6 +21,46 @@ export const switchMainNavigationFunc = (
20
21
  text: localization.common.remove,
21
22
  value: 'switch-remove',
22
23
  testId: `${testId}-remove`,
23
- permission: 'Networks.RemoveSwitch'
24
+ permission: 'Networks.RemoveSwitch',
25
+ },
26
+ ]
27
+
28
+ export const switchMainNavigationNewFunc = (
29
+ localization: UI_I_Localization,
30
+ testId: string
31
+ ): UI_I_Button[] => [
32
+ {
33
+ text: localization.common.addNetworking,
34
+ value: 'add-networking',
35
+ iconName: 'network',
36
+ testId: `${testId}-add-networking-button`,
37
+ permission:
38
+ 'Networks.CreateSysx Networks.CreatePortGroup Networks.UpdateSwitch Networks.CreateSwitch',
39
+ },
40
+ {
41
+ text: localization.common.edit,
42
+ value: 'switch-edit',
43
+ iconName: 'edit',
44
+ testId: `${testId}-edit-button`,
45
+ permission: 'Networks.UpdateSwitch',
46
+ },
47
+ {
48
+ text: localization.common.managePhysicalAdapters,
49
+ value: 'switch-manage-physical-adapters',
50
+ iconName: 'settings',
51
+ testId: `${testId}-manage-physical-adapters-button`,
52
+ permission: 'Networks.UpdateSwitch',
53
+ },
54
+ // {
55
+ // text: localization.common.migrateVmKernelAdapter,
56
+ // value: 'migrate-vmkernel-adapter',
57
+ // testId: `${testId}-migrate-vm-kernel-adapter`,
58
+ // development: true,
59
+ // },
60
+ {
61
+ text: localization.common.viewSettings,
62
+ value: 'switch-view-settings',
63
+ iconName: 'password-hide',
64
+ testId: `${testId}-view-settings`,
24
65
  },
25
66
  ]
@@ -52,4 +52,5 @@ export const {
52
52
  vmKernelAdapterViewSettingsFunc,
53
53
  } = vmKernelAdapterData
54
54
  // export const { managePhysicalAdapterTableData } = temporaryData
55
- export const { switchMainNavigationFunc } = diagramConfig
55
+ export const { switchMainNavigationFunc, switchMainNavigationNewFunc } =
56
+ diagramConfig
@@ -18,7 +18,7 @@ export const vmKernelAdapterViewSettingsFunc = (
18
18
  type: 0,
19
19
  rows: [
20
20
  { name: localization.common.networkLabel, value: '' },
21
- { name: localization.common.vlanId, value: `${localization.common.none} (0)` },
21
+ { name: localization.common.vlanId, value: `${localization.common.none2} (0)` },
22
22
  { name: localization.common.tcpIpStack, value: 'Default' },
23
23
  { name: localization.common.enabledServices },
24
24
  ],
@@ -112,7 +112,7 @@ const title = computed<string>(
112
112
 
113
113
  const connectionSettings = ref<UI_I_ConnectionSettings>({
114
114
  networkLabel: 'VM Network',
115
- vlanId: `${localization.value.common.none} (0)`,
115
+ vlanId: `${localization.value.common.none2} (0)`,
116
116
  })
117
117
 
118
118
  const vmkernelAdapter = ref<UI_I_SelectVmkernelAdapter>({
@@ -262,7 +262,7 @@ const reset = (): void => {
262
262
  wizard.reset()
263
263
  connectionSettings.value = {
264
264
  networkLabel: 'VM Network',
265
- vlanId: `${localization.value.common.none} (0)`,
265
+ vlanId: `${localization.value.common.none2} (0)`,
266
266
  }
267
267
  vmkernelAdapter.value = {
268
268
  vm: '',
@@ -14,6 +14,6 @@ export const checkVlanId = (
14
14
  vlanId: string,
15
15
  localization: UI_I_Localization
16
16
  ): boolean =>
17
- vlanId !== `${localization.common.none} (0)` &&
17
+ vlanId !== `${localization.common.none2} (0)` &&
18
18
  vlanId !== `${localization.common.all} (4095)` &&
19
19
  (isIntegerNumberInRange(vlanId, 0, 4095) || vlanId === '')
@@ -0,0 +1,31 @@
1
+ <template>
2
+ <div class="diagram-header-skeleton">
3
+ <div class="diagram-header-skeleton-title">
4
+ <ui-skeleton-item width="160" height="22" />
5
+ </div>
6
+ <div class="diagram-header-skeleton-buttons">
7
+ <ui-skeleton-item width="112" height="36" border-radius="8" />
8
+ <ui-skeleton-item width="160" height="36" border-radius="8" />
9
+ </div>
10
+ </div>
11
+ </template>
12
+
13
+ <script setup lang="ts"></script>
14
+
15
+ <style scoped lang="scss">
16
+ .diagram-header-skeleton {
17
+ padding: 16px;
18
+ display: flex;
19
+ align-items: flex-start;
20
+ justify-content: space-between;
21
+ flex-wrap: wrap;
22
+ row-gap: 24px;
23
+ column-gap: 24px;
24
+
25
+ &-buttons {
26
+ display: flex;
27
+ column-gap: 16px;
28
+ margin-left: auto;
29
+ }
30
+ }
31
+ </style>