bfg-common 1.6.74 → 1.6.75

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 (165) hide show
  1. package/assets/localization/local_be.json +272 -11
  2. package/assets/localization/local_en.json +291 -29
  3. package/assets/localization/local_hy.json +274 -13
  4. package/assets/localization/local_kk.json +272 -11
  5. package/assets/localization/local_ru.json +286 -25
  6. package/assets/localization/local_zh.json +273 -12
  7. package/assets/scss/common/global.scss +11 -0
  8. package/assets/scss/common/normalize.scss +3 -0
  9. package/assets/scss/common/theme.scss +2 -2
  10. package/components/atoms/stack/StackBlock.vue +1 -1
  11. package/components/atoms/table/dataGrid/DataGridColumnSwitch.vue +2 -2
  12. package/components/atoms/tooltip/TooltipError.vue +3 -0
  13. package/components/common/adapterManager/AdapterManagerNew.vue +86 -0
  14. package/components/common/adapterManager/addAdapterModal/AddAdapterModalNew.vue +1 -1
  15. package/components/common/adapterManager/addAdapterWarningModal/AddAdapterWarningModalNew.vue +0 -1
  16. package/components/common/adapterManager/ui/actions/bar/Bar.vue +2 -0
  17. package/components/common/adapterManager/ui/actions/bar/BarNew.vue +3 -2
  18. package/components/common/adapterManager/ui/table/adapters/AdaptersNew.vue +1 -0
  19. package/components/common/certificate/CertificateInfo.vue +7 -1
  20. package/components/common/configure/physicalAdapters/PhysicalAdapters.vue +6 -0
  21. package/components/common/configure/physicalAdapters/PhysicalAdaptersNew.vue +219 -192
  22. package/components/common/configure/physicalAdapters/PhysicalAdaptersOld.vue +6 -4
  23. package/components/common/configure/physicalAdapters/buttons/Buttons.vue +1 -0
  24. package/components/common/configure/physicalAdapters/modals/edit/Edit.vue +26 -1
  25. package/components/common/configure/physicalAdapters/modals/edit/EditNew.vue +30 -1
  26. package/components/common/configure/physicalAdapters/modals/edit/lib/models/interfaces.ts +5 -0
  27. package/components/common/configure/physicalAdapters/modals/edit/lib/validations/validations.ts +19 -0
  28. package/components/common/configure/physicalAdapters/tableView/TableViewNew.vue +12 -1
  29. package/components/common/configure/physicalAdapters/tableView/lib/config/physicalAdaptersTableConfigNew.ts +21 -21
  30. package/components/common/configure/physicalAdapters/tableView/lib/config/settings.ts +12 -5
  31. package/components/common/configure/physicalAdapters/tableView/lib/models/interfaces.ts +4 -1
  32. package/components/common/diagramMain/Diagram.vue +169 -85
  33. package/components/common/diagramMain/DiagramMain.vue +40 -10
  34. package/components/common/diagramMain/header/Header.vue +49 -0
  35. package/components/common/diagramMain/header/HeaderNew.vue +155 -0
  36. package/components/common/diagramMain/{Header.vue → header/HeaderOld.vue} +78 -67
  37. package/components/common/diagramMain/modals/Modals.vue +4 -0
  38. package/components/common/diagramMain/modals/UnsavedChangesModal.vue +32 -0
  39. package/components/common/diagramMain/modals/editSettings/EditSettings.vue +104 -102
  40. package/components/common/diagramMain/modals/editSettings/EditSettingsNew.vue +285 -0
  41. package/components/common/diagramMain/modals/editSettings/EditSettingsOld.vue +254 -0
  42. package/components/common/diagramMain/modals/editSettings/confirmTeamingSettingsModal/ConfirmTeamingSettingsModal.vue +31 -0
  43. package/components/common/diagramMain/modals/editSettings/confirmTeamingSettingsModal/ConfirmTeamingSettingsModalNew.vue +82 -0
  44. package/components/common/diagramMain/modals/editSettings/{ConfirmTeamingSettingsModal.vue → confirmTeamingSettingsModal/ConfirmTeamingSettingsModalOld.vue} +2 -5
  45. package/components/common/diagramMain/modals/editSettings/lib/config/config.ts +15 -0
  46. package/components/common/diagramMain/modals/editSettings/lib/models/interfaces.ts +6 -0
  47. package/components/common/diagramMain/modals/editSettings/lib/utils/utils.ts +177 -0
  48. package/components/common/diagramMain/modals/editSettings/modal/EditSettingsModal.vue +137 -0
  49. package/components/common/diagramMain/modals/editSettings/modal/EditSettingsModalNew.vue +91 -0
  50. package/components/common/diagramMain/modals/editSettings/{EditSettingsModal.vue → modal/EditSettingsModalOld.vue} +12 -51
  51. package/components/common/diagramMain/modals/editSettings/tabs/networkProperties/NetworkProperties.vue +158 -0
  52. package/components/common/diagramMain/modals/editSettings/tabs/networkProperties/NetworkPropertiesNew.vue +262 -0
  53. package/components/common/diagramMain/modals/editSettings/tabs/{NetworkProperties.vue → networkProperties/NetworkPropertiesOld.vue} +12 -113
  54. package/components/common/diagramMain/modals/editSettings/tabs/port/ipvFourSettings/IpvFourSettings.vue +192 -0
  55. package/components/common/diagramMain/modals/editSettings/tabs/port/ipvFourSettings/IpvFourSettingsNew.vue +388 -0
  56. package/components/common/diagramMain/modals/editSettings/tabs/port/{IpvFourSettings.vue → ipvFourSettings/IpvFourSettingsOld.vue} +11 -152
  57. package/components/common/diagramMain/modals/editSettings/tabs/port/portProperties/PortProperties.vue +139 -0
  58. package/components/common/diagramMain/modals/editSettings/tabs/port/portProperties/PortPropertiesNew.vue +286 -0
  59. package/components/common/diagramMain/modals/editSettings/tabs/port/{PortProperties.vue → portProperties/PortPropertiesOld.vue} +12 -103
  60. package/components/common/diagramMain/modals/editSettings/tabs/security/Security.vue +209 -0
  61. package/components/common/diagramMain/modals/editSettings/tabs/security/SecurityNew.vue +233 -0
  62. package/components/common/diagramMain/modals/editSettings/tabs/{Security.vue → security/SecurityOld.vue} +25 -48
  63. package/components/common/diagramMain/modals/editSettings/tabs/switchProperties/SwitchProperties.vue +128 -0
  64. package/components/common/diagramMain/modals/editSettings/tabs/switchProperties/SwitchPropertiesNew.vue +235 -0
  65. package/components/common/diagramMain/modals/editSettings/tabs/{SwitchProperties.vue → switchProperties/SwitchPropertiesOld.vue} +12 -89
  66. package/components/common/diagramMain/modals/editSettings/tabs/teamingFailover/TeamingFailover.vue +99 -0
  67. package/components/common/diagramMain/modals/editSettings/tabs/teamingFailover/TeamingFailoverNew.vue +319 -0
  68. package/components/common/diagramMain/modals/editSettings/tabs/{TeamingFailover.vue → teamingFailover/TeamingFailoverOld.vue} +11 -48
  69. package/components/common/diagramMain/modals/editSettings/tabs/trafficShaping/TrafficShaping.vue +173 -0
  70. package/components/common/diagramMain/modals/editSettings/tabs/trafficShaping/TrafficShapingNew.vue +348 -0
  71. package/components/common/diagramMain/modals/editSettings/tabs/{TrafficShaping.vue → trafficShaping/TrafficShapingOld.vue} +12 -134
  72. package/components/common/diagramMain/modals/lib/config/diagramConfig.ts +43 -2
  73. package/components/common/diagramMain/modals/lib/config/index.ts +2 -1
  74. package/components/common/diagramMain/modals/lib/config/vmKernelAdapter.ts +1 -1
  75. package/components/common/diagramMain/modals/lib/utils/index.ts +34 -4
  76. package/components/common/diagramMain/modals/migrateVmkernelAdapter/MigrateVmkernelAdapter.vue +2 -2
  77. package/components/common/diagramMain/modals/migrateVmkernelAdapter/validations/common.ts +1 -1
  78. package/components/common/diagramMain/skeleton/Header.vue +31 -0
  79. package/components/common/diagramMain/skeleton/Switch.vue +75 -0
  80. package/components/common/layout/theHeader/ThemeSwitch.vue +1 -1
  81. package/components/common/layout/theHeader/modals/reconnect/New.vue +38 -30
  82. package/components/common/layout/theHeader/userMenu/modals/changePassword/New.vue +8 -9
  83. package/components/common/layout/theHeader/userMenu/modals/preferences/New.vue +4 -0
  84. package/components/common/layout/theHeader/userMenu/modals/preferences/Old.vue +9 -2
  85. package/components/common/layout/theHeader/userMenu/modals/preferences/changeLanguage/ChangeLanguage.vue +11 -7
  86. package/components/common/layout/theHeader/userMenu/modals/preferences/defaultConsole/DefaultConsole.vue +7 -1
  87. package/components/common/layout/theHeader/userMenu/modals/preferences/defaultConsole/lib/config/consoleOptions.ts +8 -5
  88. package/components/common/layout/theHeader/userMenu/modals/preferences/timeFormat/TimeFormat.vue +9 -5
  89. package/components/common/layout/theHeader/userMenu/modals/preferences/timeFormat/lib/config/formatOptions.ts +1 -1
  90. package/components/common/layout/theHeader/userMenu/modals/preferences/view/Old.vue +5 -9
  91. package/components/common/layout/theHeader/userMenu/modals/preferences/view/View.vue +9 -6
  92. package/components/common/mainNavigationPanel/MainNavigationPanelNew.vue +3 -1
  93. package/components/common/modals/Rename.vue +3 -1
  94. package/components/common/noDataProvided/NoDataProvidedNew.vue +1 -1
  95. package/components/common/pages/backups/modals/createBackup/datastores/tableView/new/lib/config/table.ts +4 -4
  96. package/components/common/pages/backups/modals/createBackup/datastores/tableView/old/lib/config/table.ts +4 -4
  97. package/components/common/pages/hardwareHealth/historyTestimony/tools/chartOptionsModal/ChartOptionsModal.vue +184 -253
  98. package/components/common/pages/hardwareHealth/historyTestimony/tools/chartOptionsModal/actions/ActionsNew.vue +1 -1
  99. package/components/common/pages/scheduledTasks/table/lib/models/enums.ts +9 -0
  100. package/components/common/pages/scheduledTasks/table/new/New.vue +12 -10
  101. package/components/common/pages/tasks/Tasks.vue +4 -1
  102. package/components/common/pages/tasks/table/Table.vue +25 -23
  103. package/components/common/readyToComplete/New.vue +1 -0
  104. package/components/common/split/vertical/New.vue +42 -8
  105. package/components/common/split/vertical/Old.vue +31 -2
  106. package/components/common/split/vertical/Vertical.vue +4 -0
  107. package/components/common/tools/Actions.vue +7 -3
  108. package/components/common/tools/lib/models/interfaces.ts +1 -0
  109. package/components/common/vm/actions/add/New.vue +21 -6
  110. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/Media.vue +14 -1
  111. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/New.vue +5 -0
  112. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/Old.vue +1 -0
  113. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/New.vue +1 -0
  114. package/components/common/vm/actions/common/customizeHardware/virtualHardware/reservation/New.vue +2 -0
  115. package/components/common/vm/actions/common/select/options/New.vue +14 -12
  116. package/components/common/vm/actions/common/select/options/Old.vue +16 -15
  117. package/components/common/vm/actions/common/select/storage/new/lib/config/table.ts +13 -15
  118. package/components/common/vm/actions/confirm/Confirm.vue +3 -0
  119. package/components/common/vm/actions/rename/Old.vue +1 -0
  120. package/components/common/vm/snapshots/DetailView.vue +6 -6
  121. package/components/common/wizards/datastore/add/New.vue +6 -0
  122. package/components/common/wizards/datastore/add/lib/config/steps.ts +1 -1
  123. package/components/common/wizards/datastore/add/steps/nameAndDevice/NameAndDeviceNew.vue +1 -1
  124. package/components/common/wizards/datastore/add/steps/nameAndDevice/advancedOptions/New.vue +1 -1
  125. package/components/common/wizards/network/add/Add.vue +13 -2
  126. package/components/common/wizards/network/add/AddNew.vue +22 -26
  127. package/components/common/wizards/network/add/lib/config/initialData.ts +6 -4
  128. package/components/common/wizards/network/add/lib/config/steps.ts +1 -1
  129. package/components/common/wizards/network/add/lib/models/interfaces.ts +1 -0
  130. package/components/common/wizards/network/add/lib/utils/utils.ts +1 -1
  131. package/components/common/wizards/network/add/steps/connectionSettings/ConnectionSettingsOld.vue +5 -1
  132. package/components/common/wizards/network/add/steps/ipFourSettings/IpFourSettingsNew.vue +2 -8
  133. package/components/common/wizards/network/add/steps/ipFourSettings/IpFourSettingsOld.vue +3 -0
  134. package/components/common/wizards/network/add/steps/portProperties/PortPropertiesNew.vue +2 -8
  135. package/components/common/wizards/network/add/steps/portProperties/PortPropertiesOld.vue +6 -2
  136. package/components/common/wizards/network/add/steps/selectTargetDevice/SelectTargetDeviceNew.vue +10 -3
  137. package/components/common/wizards/network/add/steps/selectTargetDevice/SelectTargetDeviceOld.vue +4 -0
  138. package/components/common/wizards/network/add/steps/selectTargetDevice/modals/new/SelectNetwork.vue +5 -1
  139. package/components/common/wizards/network/add/validations/common.ts +1 -1
  140. package/components/common/wizards/vm/migrate/New.vue +13 -3
  141. package/components/common/wizards/vm/migrate/lib/config/constructDataReady.ts +5 -0
  142. package/components/common/wizards/vm/migrate/lib/config/steps.ts +3 -2
  143. package/components/common/wizards/vm/migrate/steps/computeResource/New.vue +2 -1
  144. package/components/common/wizards/vm/migrate/steps/computeResource/tableView/new/New.vue +40 -21
  145. package/components/common/wizards/vm/migrate/steps/computeResource/tableView/new/lib/config/clusterTable.ts +340 -0
  146. package/components/common/wizards/vm/migrate/steps/computeResource/tableView/new/lib/config/hostTable.ts +44 -14
  147. package/components/common/wizards/vm/migrate/steps/computeResource/tableView/new/lib/models/enums.ts +4 -0
  148. package/components/common/wizards/vm/migrate/steps/priority/New.vue +7 -2
  149. package/components/common/wizards/vm/migrate/steps/selectStorage/New.vue +22 -7
  150. package/components/common/wizards/vm/migrate/steps/selectStorage/configure/batch/New.vue +6 -0
  151. package/components/common/wizards/vm/migrate/steps/selectStorage/configure/batch/table/new/New.vue +4 -1
  152. package/components/common/wizards/vm/migrate/steps/selectStorage/configure/batch/table/new/lib/config/datastoreTable.ts +12 -16
  153. package/components/common/wizards/vm/migrate/steps/selectStorage/configure/disk/table/new/New.vue +10 -5
  154. package/components/common/wizards/vm/migrate/steps/selectStorage/configure/disk/table/new/lib/config/diskTable.ts +16 -11
  155. package/components/common/wizards/vm/migrate/steps/selectStorage/configure/disk/table/old/lib/config/diskTable.ts +7 -1
  156. package/components/common/wizards/vm/migrate/steps/selectStorage/selectedPerDisk/New.vue +17 -10
  157. package/components/common/wizards/vm/migrate/steps/type/TypeNew.vue +1 -0
  158. package/components/common/wizards/vm/migrate/vmOrigin/New.vue +35 -15
  159. package/lib/models/store/tasks/enums.ts +3 -0
  160. package/lib/models/store/tasks/types.ts +7 -6
  161. package/package.json +2 -2
  162. package/plugins/directives.ts +3 -5
  163. package/public/spice-console/application/agent.js +18 -17
  164. package/store/tasks/actions.ts +26 -8
  165. package/store/tasks/mappers/recentTasks.ts +1 -0
@@ -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[]
@@ -0,0 +1,32 @@
1
+ <template>
2
+ <ui-popup
3
+ v-if="props.isShow"
4
+ test-id="unsaved-changes"
5
+ icon-name="circle-warning"
6
+ :texts="texts"
7
+ :title="localization.common.unsavedChanges"
8
+ :message="localization.common.unsavedChangesModalDescription"
9
+ @hide="emits('hide')"
10
+ @submit="emits('leave')"
11
+ />
12
+ </template>
13
+
14
+ <script setup lang="ts">
15
+ import type { UI_I_Localization } from '~/lib/models/interfaces'
16
+
17
+ const props = defineProps<{
18
+ isShow: boolean
19
+ }>()
20
+
21
+ const emits = defineEmits<{
22
+ (event: 'hide'): void
23
+ (event: 'leave'): void
24
+ }>()
25
+
26
+ const localization = computed<UI_I_Localization>(() => useLocal())
27
+
28
+ const texts = computed(() => ({
29
+ button1: localization.value.common.cancel,
30
+ button2: localization.value.common.leave,
31
+ }))
32
+ </script>
@@ -1,91 +1,37 @@
1
1
  <template>
2
- <div class="wizard-tab__container">
3
- <div class="vertical-tabs__fixed-position">
4
- <atoms-tabs-vertical-tabs
5
- v-model="selectedTab"
6
- :items="props.items"
7
- :has-error-messages="hasErrorMessages"
8
- @set-alert="onShowErrorMessageAlert"
9
- />
10
- </div>
11
- <template v-if="isNetwork || isSwitch">
12
- <common-diagram-main-modals-edit-settings-tabs-network-properties
13
- v-if="isNetwork"
14
- v-show="selectedTab === '1'"
15
- :is-show-error-message-alert="isShowErrorMessageAlert"
16
- :error-messages="errorMessages"
17
- :initial-data="props.initialData"
18
- :has-error-messages="hasErrorMessages"
19
- :network-already-exists="networkAlreadyExists"
20
- @change-edit-properties-data="onChangeNetworkEditPropertiesData"
21
- @change-error-messages="onChangeErrorMessages"
22
- @hide-error-message-alert="onHideErrorMessageAlert"
23
- />
24
- <common-diagram-main-modals-edit-settings-tabs-switch-properties
25
- v-if="isSwitch"
26
- v-show="selectedTab === '1'"
27
- :is-show-error-message-alert="isShowErrorMessageAlert"
28
- :error-messages="errorMessages"
29
- :initial-data="props.initialData"
30
- :has-error-messages="hasErrorMessages"
31
- @change-edit-properties-data="onChangeSwitchEditPropertiesData"
32
- @change-error-messages="onChangeErrorMessages"
33
- @hide-error-message-alert="onHideErrorMessageAlert"
34
- />
35
- <common-diagram-main-modals-edit-settings-tabs-security
36
- v-show="selectedTab === '2'"
37
- :is-switch="isSwitch"
38
- :initial-data="props.initialData"
39
- @change-edit-security-data="onChangeEditSecurityData"
40
- />
41
- <common-diagram-main-modals-edit-settings-tabs-traffic-shaping
42
- v-show="selectedTab === '3'"
43
- :is-show-error-message-alert="isShowErrorMessageAlert"
44
- :error-messages="errorMessages"
45
- :initial-data="props.initialData"
46
- :has-error-messages="hasErrorMessages"
47
- :is-switch="isSwitch"
48
- @change-edit-traffic-shaping-data="onChangeEditTrafficShapingData"
49
- @change-error-messages="onChangeErrorMessages"
50
- @hide-error-message-alert="onHideErrorMessageAlert"
51
- />
52
- <common-diagram-main-modals-edit-settings-tabs-teaming-failover
53
- v-show="selectedTab === '4'"
54
- :is-switch="isSwitch"
55
- :adapters="props.adapters"
56
- :initial-data="props.initialData"
57
- :adapter-status="adapterStatus"
58
- :is-dark-mode="props.isDarkMode"
59
- @change-edit-teaming-failover-data="onChangeEditTeamingFailoverData"
60
- @change-adapter-status="onChangeAdapterStatus"
61
- />
62
- </template>
63
- <template v-if="isPort">
64
- <common-diagram-main-modals-edit-settings-tabs-port-properties
65
- v-show="selectedTab === '1'"
66
- :is-show-error-message-alert="isShowErrorMessageAlert"
67
- :error-messages="errorMessages"
68
- :initial-data="props.initialData"
69
- :has-error-messages="hasErrorMessages"
70
- @change-error-messages="onChangeErrorMessages"
71
- @change-port-edit-properties-data="onChangePortEditPropertiesData"
72
- @hide-error-message-alert="onHideErrorMessageAlert"
73
- />
74
- <common-diagram-main-modals-edit-settings-tabs-port-ipv-four-settings
75
- v-show="selectedTab === '2'"
76
- :is-show-error-message-alert="isShowErrorMessageAlert"
77
- :error-messages="errorMessages"
78
- :initial-data="props.initialData"
79
- :has-error-messages="hasErrorMessages"
80
- @change-error-messages="onChangeErrorMessages"
81
- @change-port-ipv-four-data="onChangePortEditIpvFourData"
82
- @hide-error-message-alert="onHideErrorMessageAlert"
83
- />
84
- </template>
85
- <common-diagram-main-modals-edit-settings-confirm-teaming-settings-modal
86
- :is-show="isShowWithoutActiveAdapterModal"
87
- @hide="onHideWithoutActiveAdapterModal"
88
- @submit="onApproveWithoutActiveAdapterModal"
2
+ <div class="edit-settings">
3
+ <component
4
+ :is="currentComponent"
5
+ v-model="selectedTab"
6
+ v-model:network-edit-data="networkEditData"
7
+ :is-network="isNetwork"
8
+ :is-switch="isSwitch"
9
+ :is-port="isPort"
10
+ :items="props.items"
11
+ :has-error-messages="hasErrorMessages"
12
+ :is-show-error-message-alert="isShowErrorMessageAlert"
13
+ :is-show-error-message-alert-new="isShowErrorMessageAlertNew"
14
+ :initial-data="props.initialData"
15
+ :network-already-exists="networkAlreadyExists"
16
+ :adapters="props.adapters"
17
+ :is-dark-mode="props.isDarkMode"
18
+ :is-show-without-active-adapter-modal="isShowWithoutActiveAdapterModal"
19
+ :adapter-status="adapterStatus"
20
+ :error-messages="errorMessages"
21
+ :flag-send-data="props.flagSendData"
22
+ @change-network-edit-properties-data="onChangeNetworkEditPropertiesData"
23
+ @change-switch-edit-properties-data="onChangeSwitchEditPropertiesData"
24
+ @change-port-edit-properties-data="onChangePortEditPropertiesData"
25
+ @change-edit-security-data="onChangeEditSecurityData"
26
+ @change-edit-traffic-shaping-data="onChangeEditTrafficShapingData"
27
+ @change-edit-teaming-failover-data="onChangeEditTeamingFailoverData"
28
+ @change-port-ipv-four-data="onChangePortEditIpvFourData"
29
+ @change-adapter-status="onChangeAdapterStatus"
30
+ @change-error-messages="onChangeErrorMessages"
31
+ @hide-error-message-alert="onHideErrorMessageAlert"
32
+ @show-error-message-alert="onShowErrorMessageAlert"
33
+ @hide-without-active-adapter-modal="onHideWithoutActiveAdapterModal"
34
+ @approve-without-active-adapter-modal="onApproveWithoutActiveAdapterModal"
89
35
  />
90
36
  </div>
91
37
  </template>
@@ -107,7 +53,6 @@ import type {
107
53
  UI_I_IpvFourSettingsFields,
108
54
  } from '~/components/common/diagramMain/lib/models/interfaces'
109
55
 
110
- // Props from up
111
56
  const props = withDefaults(
112
57
  defineProps<{
113
58
  viewName: string
@@ -136,15 +81,22 @@ const emits = defineEmits<{
136
81
  (event: 'send-edit-data', type: string): void
137
82
  }>()
138
83
 
139
- // View for the switch or the network
84
+ const { $store }: any = useNuxtApp()
85
+
86
+ const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
87
+
88
+ const currentComponent = computed(() =>
89
+ isNewView.value
90
+ ? defineAsyncComponent(() => import('./EditSettingsNew.vue'))
91
+ : defineAsyncComponent(() => import('./EditSettingsOld.vue'))
92
+ )
93
+
140
94
  const isSwitch = computed<boolean>(() => props.viewName === 'switch-edit')
141
95
  const isNetwork = computed<boolean>(() => props.viewName === 'network-edit')
142
96
  const isPort = computed<boolean>(() => props.viewName === 'port-edit')
143
97
 
144
- // Modal selected tab number
145
98
  const selectedTab = ref<string>('1')
146
99
 
147
- // Error notification from the nexted components validation
148
100
  const errorMessages = ref<UI_I_EditSettingsErrorMessage>({
149
101
  networkLabel: '',
150
102
  vlanId: '',
@@ -168,18 +120,53 @@ const hasErrorMessages = computed(
168
120
  () => !!Object.values(errorMessages.value).filter((err) => err !== '').length
169
121
  )
170
122
 
171
- // flag: to show error message
172
123
  const isShowErrorMessageAlert = ref<boolean>(false)
173
-
174
- const onShowErrorMessageAlert = (): void => {
175
- isShowErrorMessageAlert.value = true
124
+ const isShowErrorMessageAlertNew = ref<boolean[]>([])
125
+
126
+ const onShowErrorMessageAlert = (tab?: number): void => {
127
+ if (isNewView.value && tab === undefined) {
128
+ if (isNetwork.value || isSwitch.value) {
129
+ isShowErrorMessageAlertNew.value = [
130
+ !!(
131
+ errorMessages.value.networkLabel ||
132
+ errorMessages.value.vlanId ||
133
+ errorMessages.value.mtu
134
+ ),
135
+ false,
136
+ !!(
137
+ errorMessages.value.average ||
138
+ errorMessages.value.peak ||
139
+ errorMessages.value.burstSize
140
+ ),
141
+ false,
142
+ ]
143
+ } else {
144
+ isShowErrorMessageAlertNew.value = [
145
+ !!errorMessages.value.mtu,
146
+ !!(
147
+ errorMessages.value.ipFourAddress ||
148
+ errorMessages.value.subnetMask ||
149
+ errorMessages.value.defaultGateway
150
+ ),
151
+ ]
152
+ }
153
+ } else if (isNewView.value) {
154
+ isShowErrorMessageAlertNew.value[tab] = true
155
+ } else {
156
+ isShowErrorMessageAlert.value = true
157
+ }
176
158
  }
177
159
 
178
- const onHideErrorMessageAlert = (): void => {
179
- isShowErrorMessageAlert.value = false
160
+ const onHideErrorMessageAlert = (tab?: string): void => {
161
+ if (isNewView.value) {
162
+ isShowErrorMessageAlertNew.value[tab] = false
163
+ } else {
164
+ isShowErrorMessageAlert.value = false
165
+ }
180
166
  }
181
167
 
182
- const networkEditData = ref<UI_I_EditFieldsData>({})
168
+ const networkEditData = defineModel<UI_I_EditFieldsData>('network-edit-data')
169
+
183
170
  const initialNetworkLabel = ref<string>('-initial-networkLabel-123')
184
171
 
185
172
  const isFailoverOrderOverride = computed<string | number | boolean | undefined>(
@@ -191,6 +178,7 @@ const adapterStatus = ref<UI_I_AdapterStatus>({
191
178
  standby: [],
192
179
  unused: [],
193
180
  })
181
+
194
182
  const adapterStatusInitial = ref<UI_I_AdapterStatus>({
195
183
  active: [],
196
184
  standby: [],
@@ -387,13 +375,13 @@ watch(selectedTab, (newSelectedTab: string, oldSelectedTab: string) => {
387
375
  return
388
376
  }
389
377
 
390
- stopTabChanging(newSelectedTab)
378
+ !isNewView.value && stopTabChanging(newSelectedTab)
391
379
  } else if (
392
380
  selectedTabInAlertModal.value &&
393
381
  !isApprovedAdapterStatus.value &&
394
382
  isFailoverOrderOverride.value
395
383
  ) {
396
- stopTabChanging(newSelectedTab)
384
+ !isNewView.value && stopTabChanging(newSelectedTab)
397
385
  } else if (selectedTabInAlertModal.value) {
398
386
  selectedTabInAlertModal.value = ''
399
387
  }
@@ -404,7 +392,9 @@ watch(selectedTab, (newSelectedTab: string, oldSelectedTab: string) => {
404
392
  newSelectedTab !== '1' &&
405
393
  !isCheckedNetworkLabel.value
406
394
  ) {
407
- selectedTab.value = '1'
395
+ if (!isNewView.value) {
396
+ selectedTab.value = '1'
397
+ }
408
398
  if (
409
399
  networkLabel.value !== initialNetworkLabel.value &&
410
400
  networkLabel.value !== ''
@@ -413,7 +403,9 @@ watch(selectedTab, (newSelectedTab: string, oldSelectedTab: string) => {
413
403
  checkNetworkLabelCallback('tab', message, newSelectedTab)
414
404
  )
415
405
  } else if (networkLabel.value === '') {
416
- onShowErrorMessageAlert()
406
+ if (!isNewView.value) {
407
+ onShowErrorMessageAlert()
408
+ }
417
409
  } else {
418
410
  isCheckedNetworkLabel.value = true
419
411
  selectedTab.value = newSelectedTab
@@ -456,6 +448,12 @@ onMounted(() => {
456
448
  }
457
449
  adapterStatus.value = adapterStatusInit
458
450
  adapterStatusInitial.value = adapterStatusInit
451
+
452
+ if (isNetwork.value || isSwitch.value) {
453
+ isShowErrorMessageAlertNew.value = [false, false, false, false]
454
+ } else {
455
+ isShowErrorMessageAlertNew.value = [false, false]
456
+ }
459
457
  })
460
458
  </script>
461
459
 
@@ -494,4 +492,8 @@ onMounted(() => {
494
492
  left: unset;
495
493
  }
496
494
  }
495
+
496
+ .edit-settings {
497
+ height: 100%;
498
+ }
497
499
  </style>