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
@@ -0,0 +1,177 @@
1
+ import type {
2
+ UI_I_EditFieldsData,
3
+ UI_I_PropertiesFields,
4
+ UI_I_PortPropertiesFields,
5
+ UI_I_SwitchPropertiesFields,
6
+ UI_I_IpvFourSettingsFields,
7
+ UI_I_SecurityFields,
8
+ UI_I_TrafficShapingFields,
9
+ UI_I_TeamingFailoverWithAdaptersFields,
10
+ } from '~/components/common/diagramMain/lib/models/interfaces'
11
+ import type { UI_I_ModalsInitialData } from '~/components/common/diagramMain/lib/models/interfaces'
12
+
13
+ export const compareDataFunc = (
14
+ viewName: 'port-edit' | 'switch-edit' | 'network-edit',
15
+ networkEditData: UI_I_EditFieldsData,
16
+ initialData: UI_I_ModalsInitialData
17
+ ): boolean => {
18
+ if (viewName === 'port-edit') {
19
+ if (
20
+ (networkEditData.properties as UI_I_PortPropertiesFields).mtu ===
21
+ initialData.mtu &&
22
+ JSON.stringify(
23
+ (networkEditData.properties as UI_I_PortPropertiesFields).services
24
+ ) === JSON.stringify(initialData.services) &&
25
+ (networkEditData.ipvFourSettings as UI_I_IpvFourSettingsFields)
26
+ .ipv4Settings ===
27
+ (
28
+ initialData.tcpConfig as
29
+ | UI_I_ModalsInitialData['tcpConfig']
30
+ | undefined
31
+ )?.ipv4Settings &&
32
+ (networkEditData.ipvFourSettings as UI_I_IpvFourSettingsFields)
33
+ .ipv4Address ===
34
+ (
35
+ initialData.tcpConfig as
36
+ | UI_I_ModalsInitialData['tcpConfig']
37
+ | undefined
38
+ )?.ipv4Address &&
39
+ (networkEditData.ipvFourSettings as UI_I_IpvFourSettingsFields)
40
+ .subnetMask ===
41
+ (
42
+ initialData.tcpConfig as
43
+ | UI_I_ModalsInitialData['tcpConfig']
44
+ | undefined
45
+ )?.subnetMask &&
46
+ !!(networkEditData.ipvFourSettings as UI_I_IpvFourSettingsFields)
47
+ .defaultGateway.checked ===
48
+ !!(
49
+ initialData.tcpConfig as
50
+ | UI_I_ModalsInitialData['tcpConfig']
51
+ | undefined
52
+ )?.defaultGateway?.checked &&
53
+ (networkEditData.ipvFourSettings as UI_I_IpvFourSettingsFields)
54
+ .defaultGateway.value ===
55
+ (
56
+ initialData.tcpConfig as
57
+ | UI_I_ModalsInitialData['tcpConfig']
58
+ | undefined
59
+ )?.defaultGateway?.value
60
+ ) {
61
+ return true
62
+ } else {
63
+ return false
64
+ }
65
+ }
66
+
67
+ if (viewName === 'switch-edit' || viewName === 'network-edit') {
68
+ if (
69
+ viewName === 'switch-edit' &&
70
+ ((networkEditData.properties as UI_I_SwitchPropertiesFields).mtu !==
71
+ initialData.mtu ||
72
+ (networkEditData.properties as UI_I_SwitchPropertiesFields)
73
+ .num_ports !== initialData.num_ports)
74
+ ) {
75
+ return false
76
+ }
77
+
78
+ if (
79
+ viewName === 'network-edit' &&
80
+ (Number(
81
+ (
82
+ (networkEditData.properties as UI_I_PropertiesFields)
83
+ ?.vlanId as string
84
+ )?.match?.(/([0-9]+)/)?.[0] ||
85
+ (networkEditData.properties as UI_I_PropertiesFields).vlanId
86
+ ) !== initialData.vlanId ||
87
+ (networkEditData.properties as UI_I_PropertiesFields).networkLabel !==
88
+ initialData.networkLabel)
89
+ ) {
90
+ return false
91
+ }
92
+
93
+ if (
94
+ (networkEditData.security as UI_I_SecurityFields).promiscuousMode
95
+ .selected === initialData.securityPolicy?.[0].initialValue.value &&
96
+ !!(networkEditData.security as UI_I_SecurityFields).promiscuousMode
97
+ .checked === !!initialData.securityPolicy?.[0].initialValue.override &&
98
+ (networkEditData.security as UI_I_SecurityFields).forgedTransmits
99
+ .selected === initialData.securityPolicy?.[1].initialValue.value &&
100
+ !!(networkEditData.security as UI_I_SecurityFields).forgedTransmits
101
+ .checked === !!initialData.securityPolicy?.[1].initialValue.override &&
102
+ (networkEditData.security as UI_I_SecurityFields).macAddressChanges
103
+ .selected === initialData.securityPolicy?.[2].initialValue.value &&
104
+ !!(networkEditData.security as UI_I_SecurityFields).macAddressChanges
105
+ .checked === !!initialData.securityPolicy?.[2].initialValue.override &&
106
+ !!(networkEditData.trafficShaping as UI_I_TrafficShapingFields).status
107
+ .checked === !!initialData.shapingPolicy?.[0].initialValue.override &&
108
+ (networkEditData.trafficShaping as UI_I_TrafficShapingFields).status
109
+ .selected === initialData.shapingPolicy?.[0].initialValue.value &&
110
+ (networkEditData.trafficShaping as UI_I_TrafficShapingFields).average ===
111
+ initialData.average_bw &&
112
+ (networkEditData.trafficShaping as UI_I_TrafficShapingFields)
113
+ .burstSize === initialData.burst_size &&
114
+ (networkEditData.trafficShaping as UI_I_TrafficShapingFields).peak ===
115
+ initialData.peak_bw &&
116
+ !!(
117
+ networkEditData.teamingFailover as UI_I_TeamingFailoverWithAdaptersFields
118
+ ).notifySwitches.checked ===
119
+ !!initialData.nicTeamingPolicy?.[0].initialValue.override &&
120
+ (
121
+ networkEditData.teamingFailover as UI_I_TeamingFailoverWithAdaptersFields
122
+ ).notifySwitches.selected ===
123
+ initialData.nicTeamingPolicy?.[0].initialValue.value &&
124
+ !!(
125
+ networkEditData.teamingFailover as UI_I_TeamingFailoverWithAdaptersFields
126
+ ).loadBalancing.checked ===
127
+ !!initialData.nicTeamingPolicy?.[1].initialValue.override &&
128
+ (
129
+ networkEditData.teamingFailover as UI_I_TeamingFailoverWithAdaptersFields
130
+ ).loadBalancing.selected ===
131
+ initialData.nicTeamingPolicy?.[1].initialValue.value &&
132
+ !!(
133
+ networkEditData.teamingFailover as UI_I_TeamingFailoverWithAdaptersFields
134
+ ).networkFailureDetection.checked ===
135
+ !!initialData.nicTeamingPolicy?.[2].initialValue.override &&
136
+ (
137
+ networkEditData.teamingFailover as UI_I_TeamingFailoverWithAdaptersFields
138
+ ).networkFailureDetection.selected ===
139
+ initialData.nicTeamingPolicy?.[2].initialValue.value &&
140
+ !!(
141
+ networkEditData.teamingFailover as UI_I_TeamingFailoverWithAdaptersFields
142
+ ).failback.checked ===
143
+ !!initialData.nicTeamingPolicy?.[3].initialValue.override &&
144
+ (
145
+ networkEditData.teamingFailover as UI_I_TeamingFailoverWithAdaptersFields
146
+ ).failback.selected ===
147
+ initialData.nicTeamingPolicy?.[3].initialValue.value &&
148
+ !!(
149
+ networkEditData.teamingFailover as UI_I_TeamingFailoverWithAdaptersFields
150
+ ).failoverOrder.checked === !!initialData.nics_override &&
151
+ (
152
+ networkEditData.teamingFailover as UI_I_TeamingFailoverWithAdaptersFields
153
+ )?.adapters?.active
154
+ ?.sort?.()
155
+ .toString() ===
156
+ (initialData?.activeAdapters as string[])?.sort?.().toString() &&
157
+ (
158
+ networkEditData.teamingFailover as UI_I_TeamingFailoverWithAdaptersFields
159
+ )?.adapters?.standby
160
+ ?.sort?.()
161
+ .toString() ===
162
+ (initialData?.standbyAdapters as string[])?.sort?.().toString() &&
163
+ (
164
+ networkEditData.teamingFailover as UI_I_TeamingFailoverWithAdaptersFields
165
+ )?.adapters?.unused
166
+ ?.sort?.()
167
+ .toString() ===
168
+ (initialData?.unusedAdapters as string[])?.sort?.().toString()
169
+ ) {
170
+ return true
171
+ } else {
172
+ return false
173
+ }
174
+ }
175
+
176
+ return true
177
+ }
@@ -0,0 +1,137 @@
1
+ <template>
2
+ <div>
3
+ <component
4
+ :is="currentComponent"
5
+ v-model:network-edit-data="networkEditData"
6
+ :width="props.width"
7
+ :height="props.height"
8
+ :show="props.show"
9
+ :title="props.title"
10
+ :modal-title="title"
11
+ :modal-loading="props.isEditModalLoading"
12
+ :is-dark-mode="props.isDarkMode"
13
+ :items="props.items"
14
+ :view-name="props.viewName"
15
+ :initial-data="props.initialData"
16
+ :adapters="props.adapters"
17
+ :flag-send-data="flagSendData"
18
+ @change-flag-send-data="onSendDataRequest"
19
+ @send-edit-data="onSendData"
20
+ @change-edit-fields-data="onChangeEditFieldsData"
21
+ @check-network-label="onCheckNetworkLabel"
22
+ @hide="onHideEditSettingsModal('close')"
23
+ @submit="onSendDataRequest"
24
+ />
25
+ <common-diagram-main-modals-unsaved-changes-modal
26
+ :is-show="isShowUnsavedChangesModal"
27
+ @hide="isShowUnsavedChangesModal = false"
28
+ @leave="emits('hide')"
29
+ />
30
+ </div>
31
+ </template>
32
+
33
+ <script setup lang="ts">
34
+ import type { UI_I_Localization } from '~/lib/models/interfaces'
35
+ import type { UI_I_EditFieldsData } from '~/components/common/diagramMain/lib/models/interfaces'
36
+ import type { UI_I_PortViewSettingsModalProps } from '~/components/common/diagramMain/modals/editSettings/lib/models/interfaces'
37
+ import { compareDataFunc } from '~/components/common/diagramMain/modals/editSettings/lib/utils/utils'
38
+
39
+ const props = withDefaults(defineProps<UI_I_PortViewSettingsModalProps>(), {
40
+ initialData: () => ({}),
41
+ title: 'Network',
42
+ adapters: () => ({
43
+ total_pages: 0,
44
+ total_items: 0,
45
+ items: [],
46
+ }),
47
+ isEditModalLoading: false,
48
+ })
49
+
50
+ const emits = defineEmits<{
51
+ (event: 'hide'): void
52
+ (event: 'change-edit-fields-data', editFieldsData: UI_I_EditFieldsData): void
53
+ (
54
+ event: 'send-edit-data',
55
+ type: string,
56
+ hideModal: () => void,
57
+ id?: string
58
+ ): void
59
+ (
60
+ event: 'check-network-label',
61
+ label: string,
62
+ sendMessage: (message: string) => void
63
+ ): void
64
+ }>()
65
+
66
+ const localization = computed<UI_I_Localization>(() => useLocal())
67
+
68
+ const { $store }: any = useNuxtApp()
69
+
70
+ const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
71
+
72
+ const currentComponent = computed(() =>
73
+ isNewView.value
74
+ ? defineAsyncComponent(() => import('./EditSettingsModalNew.vue'))
75
+ : defineAsyncComponent(() => import('./EditSettingsModalOld.vue'))
76
+ )
77
+
78
+ const networkEditData = ref<UI_I_EditFieldsData>({})
79
+
80
+ const isShowUnsavedChangesModal = ref<boolean>(false)
81
+
82
+ // Title
83
+ const title = computed(
84
+ () => props.title + localization.value.common.networkEditSettings
85
+ )
86
+
87
+ const onCheckNetworkLabel = (
88
+ label: string,
89
+ sendMessage: (message: string) => void
90
+ ) => {
91
+ emits('check-network-label', label, sendMessage)
92
+ }
93
+
94
+ const onHideEditSettingsModal = (type: 'send' | 'close'): void => {
95
+ if (!isNewView.value || type === 'send') {
96
+ emits('hide')
97
+ return
98
+ }
99
+
100
+ if (
101
+ compareDataFunc(props.viewName, networkEditData.value, props.initialData)
102
+ ) {
103
+ emits('hide')
104
+ } else {
105
+ isShowUnsavedChangesModal.value = true
106
+ }
107
+ }
108
+
109
+ const onChangeEditFieldsData = (newEditFieldsData: UI_I_EditFieldsData) => {
110
+ emits('change-edit-fields-data', newEditFieldsData)
111
+ }
112
+
113
+ const flagSendData = ref(true)
114
+
115
+ const onSendDataRequest = () => {
116
+ flagSendData.value = !flagSendData.value
117
+ }
118
+
119
+ const isSphereProject = computed<boolean>(() => props.project === 'sphere')
120
+
121
+ const onSendData = (type: string) => {
122
+ const typeLocal = isSphereProject.value
123
+ ? props.networkType
124
+ ? `${type}${props.networkType}`
125
+ : type
126
+ : type
127
+
128
+ compareDataFunc(props.viewName, networkEditData.value, props.initialData)
129
+ ? emits('hide')
130
+ : emits(
131
+ 'send-edit-data',
132
+ typeLocal,
133
+ () => onHideEditSettingsModal('send'),
134
+ props.initialData.id || props.title
135
+ )
136
+ }
137
+ </script>
@@ -0,0 +1,91 @@
1
+ <template>
2
+ <div>
3
+ <ui-modal
4
+ v-if="props.show"
5
+ :texts="modalTextsLocal"
6
+ :subtitle="props.title"
7
+ :test-id="`${props.title}-edit-modal`"
8
+ width="1120px"
9
+ size="md"
10
+ :is-loading="props.isEditModalLoading"
11
+ :title="localization.common.editSettings"
12
+ @hide="onHideEditSettingsModal"
13
+ @submit="emits('change-flag-send-data')"
14
+ >
15
+ <template #content>
16
+ <div class="modal-content">
17
+ <common-diagram-main-modals-edit-settings
18
+ v-model:network-edit-data="networkEditData"
19
+ :items="props.items"
20
+ :view-name="props.viewName"
21
+ :initial-data="props.initialData"
22
+ :adapters="props.adapters"
23
+ :flag-send-data="props.flagSendData"
24
+ :is-dark-mode="props.isDarkMode"
25
+ @send-edit-data="onSendData"
26
+ @change-edit-fields-data="onChangeEditFieldsData"
27
+ @check-network-label="onCheckNetworkLabel"
28
+ />
29
+ </div>
30
+ </template>
31
+ <template #footerLeftContent><span></span></template>
32
+ </ui-modal>
33
+ </div>
34
+ </template>
35
+
36
+ <script setup lang="ts">
37
+ import type { UI_I_TabItem } from '~/node_modules/bfg-uikit/components/ui/tabs/models/interfaces'
38
+ import type { UI_I_Localization } from '~/lib/models/interfaces'
39
+ import type { UI_I_EditFieldsData } from '~/components/common/diagramMain/lib/models/interfaces'
40
+ import type { UI_I_PortViewSettingsModalExtendedProps } from '~/components/common/diagramMain/modals/editSettings/lib/models/interfaces'
41
+
42
+ const props = defineProps<UI_I_PortViewSettingsModalExtendedProps>()
43
+
44
+ const emits = defineEmits<{
45
+ (event: 'hide'): void
46
+ (event: 'change-edit-fields-data', editFieldsData: UI_I_EditFieldsData): void
47
+ (event: 'send-edit-data', type: string): void
48
+ (
49
+ event: 'check-network-label',
50
+ label: string,
51
+ sendMessage: (message: string) => void
52
+ ): void
53
+ (event: 'change-flag-send-data'): void
54
+ }>()
55
+
56
+ const localization = computed<UI_I_Localization>(() => useLocal())
57
+
58
+ const networkEditData = defineModel<UI_I_EditFieldsData>('network-edit-data')
59
+
60
+ const modalTextsLocal = computed<UI_I_ModalTexts>(() => ({
61
+ button1: localization.value.common.cancel,
62
+ button2: localization.value.common.save,
63
+ }))
64
+
65
+ const onCheckNetworkLabel = (
66
+ label: string,
67
+ sendMessage: (message: string) => void
68
+ ) => {
69
+ emits('check-network-label', label, sendMessage)
70
+ }
71
+
72
+ const onHideEditSettingsModal = (): void => {
73
+ emits('hide')
74
+ }
75
+
76
+ const onChangeEditFieldsData = (newEditFieldsData: UI_I_EditFieldsData) => {
77
+ emits('change-edit-fields-data', newEditFieldsData)
78
+ }
79
+
80
+ const onSendData = (type: string) => {
81
+ emits('send-edit-data', type)
82
+ }
83
+ </script>
84
+
85
+ <style scoped lang="scss">
86
+ .modal-content {
87
+ height: 463px;
88
+ max-height: 463px;
89
+ padding: 8px 0 0 32px;
90
+ }
91
+ </style>
@@ -4,7 +4,7 @@
4
4
  :width="props.width"
5
5
  :height="props.height"
6
6
  :show="props.show"
7
- :title="title"
7
+ :title="props.modalTitle"
8
8
  :modal-loading="props.isEditModalLoading"
9
9
  :class="[
10
10
  'diagram-action__edit',
@@ -13,15 +13,16 @@
13
13
  },
14
14
  ]"
15
15
  @hide="onHideEditSettingsModal"
16
- @submit="onSendDataRequest"
16
+ @submit="emits('change-flag-send-data')"
17
17
  >
18
18
  <template #modalBody>
19
19
  <common-diagram-main-modals-edit-settings
20
+ v-model:network-edit-data="networkEditData"
20
21
  :items="props.items"
21
22
  :view-name="props.viewName"
22
23
  :initial-data="props.initialData"
23
24
  :adapters="props.adapters"
24
- :flag-send-data="flagSendData"
25
+ :flag-send-data="props.flagSendData"
25
26
  :is-dark-mode="props.isDarkMode"
26
27
  @send-edit-data="onSendData"
27
28
  @change-edit-fields-data="onChangeEditFieldsData"
@@ -33,45 +34,24 @@
33
34
  </template>
34
35
 
35
36
  <script setup lang="ts">
36
- import type { UI_I_Localization } from '~/lib/models/interfaces'
37
37
  import type { UI_I_EditFieldsData } from '~/components/common/diagramMain/lib/models/interfaces'
38
- import type { UI_I_PortViewSettingsModalProps } from '~/components/common/diagramMain/modals/editSettings/lib/models/interfaces'
39
-
40
- const props = withDefaults(defineProps<UI_I_PortViewSettingsModalProps>(), {
41
- initialData: () => ({}),
42
- title: 'Network',
43
- adapters: () => ({
44
- total_pages: 0,
45
- total_items: 0,
46
- items: [],
47
- }),
48
- isEditModalLoading: false,
49
- })
50
-
51
- // Modal hiding
38
+ import type { UI_I_PortViewSettingsModalExtendedProps } from '~/components/common/diagramMain/modals/editSettings/lib/models/interfaces'
39
+
40
+ const props = defineProps<UI_I_PortViewSettingsModalExtendedProps>()
41
+
52
42
  const emits = defineEmits<{
53
43
  (event: 'hide'): void
54
44
  (event: 'change-edit-fields-data', editFieldsData: UI_I_EditFieldsData): void
55
- (
56
- event: 'send-edit-data',
57
- type: string,
58
- hideModal: () => void,
59
- id?: string
60
- ): void
45
+ (event: 'send-edit-data', type: string): void
61
46
  (
62
47
  event: 'check-network-label',
63
48
  label: string,
64
49
  sendMessage: (message: string) => void
65
50
  ): void
51
+ (event: 'change-flag-send-data'): void
66
52
  }>()
67
53
 
68
- // UI_I_Localization
69
- const localization = computed<UI_I_Localization>(() => useLocal())
70
-
71
- // Title
72
- const title = computed(
73
- () => props.title + localization.value.common.networkEditSettings
74
- )
54
+ const networkEditData = defineModel<UI_I_EditFieldsData>('network-edit-data')
75
55
 
76
56
  const onCheckNetworkLabel = (
77
57
  label: string,
@@ -88,27 +68,8 @@ const onChangeEditFieldsData = (newEditFieldsData: UI_I_EditFieldsData) => {
88
68
  emits('change-edit-fields-data', newEditFieldsData)
89
69
  }
90
70
 
91
- const flagSendData = ref(true)
92
-
93
- const onSendDataRequest = () => {
94
- flagSendData.value = !flagSendData.value
95
- }
96
-
97
- const isSphereProject = computed<boolean>(() => props.project === 'sphere')
98
-
99
71
  const onSendData = (type: string) => {
100
- const typeLocal = isSphereProject.value
101
- ? props.networkType
102
- ? `${type}${props.networkType}`
103
- : type
104
- : type
105
-
106
- emits(
107
- 'send-edit-data',
108
- typeLocal,
109
- onHideEditSettingsModal,
110
- props.initialData.id || props.title
111
- )
72
+ emits('send-edit-data', type)
112
73
  }
113
74
  </script>
114
75
 
@@ -0,0 +1,158 @@
1
+ <template>
2
+ <div class="network-properties">
3
+ <component
4
+ :is="currentComponent"
5
+ v-model="fieldsValues"
6
+ :is-show-error-message="isShowErrorMessage"
7
+ :error-messages="props.errorMessages"
8
+ :vlan-id-select-data="vlanIdSelectDataLocal"
9
+ :flag-send-data="props.flagSendData"
10
+ @hide-error-message-alert="onHideErrorMessageAlert"
11
+ />
12
+ </div>
13
+ </template>
14
+
15
+ <script setup lang="ts">
16
+ import type { UI_I_Localization } from '~/lib/models/interfaces'
17
+ import type {
18
+ UI_I_ModalsInitialData,
19
+ UI_I_EditSettingsErrorMessage,
20
+ UI_I_PropertiesFields,
21
+ } from '~/components/common/diagramMain/lib/models/interfaces'
22
+ import type { UI_T_PropertiesFieldName } from '~/components/common/diagramMain/lib/models/types'
23
+ import type { UI_I_VlanIdData } from '~/components/common/wizards/network/add/lib/models/interfaces'
24
+ import { vlanIdSelectDataFunc } from '~/components/common/wizards/network/add/lib/config/config'
25
+
26
+ const props = withDefaults(
27
+ defineProps<{
28
+ isShowErrorMessageAlert: boolean | boolean[]
29
+ errorMessages: UI_I_EditSettingsErrorMessage
30
+ networkAlreadyExists: boolean
31
+ initialData?: UI_I_ModalsInitialData
32
+ hasErrorMessages?: boolean
33
+ flagSendData?: boolean
34
+ }>(),
35
+ {
36
+ initialData: () => ({}),
37
+ hasErrorMessages: undefined,
38
+ flagSendData: false,
39
+ }
40
+ )
41
+
42
+ const emits = defineEmits<{
43
+ (
44
+ event: 'change-error-messages',
45
+ errorMessage: string,
46
+ fieldName: keyof UI_I_EditSettingsErrorMessage
47
+ ): void
48
+ (event: 'hide-error-message-alert'): void
49
+ (
50
+ event: 'change-edit-properties-data',
51
+ propertiesData: UI_I_PropertiesFields
52
+ ): void
53
+ }>()
54
+
55
+ const { $store }: any = useNuxtApp()
56
+
57
+ const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
58
+
59
+ const currentComponent = computed(() =>
60
+ isNewView.value
61
+ ? defineAsyncComponent(() => import('./NetworkPropertiesNew.vue'))
62
+ : defineAsyncComponent(() => import('./NetworkPropertiesOld.vue'))
63
+ )
64
+
65
+ const localization = computed<UI_I_Localization>(() => useLocal())
66
+
67
+ const vlanIdSelectDataLocal = computed<UI_I_VlanIdData[]>(() =>
68
+ vlanIdSelectDataFunc(localization.value)
69
+ )
70
+
71
+ const isShowErrorMessage = computed<boolean>(
72
+ () =>
73
+ props.hasErrorMessages &&
74
+ (isNewView.value
75
+ ? props.isShowErrorMessageAlert[0]
76
+ : props.isShowErrorMessageAlert)
77
+ )
78
+
79
+ const fieldsValues = ref<UI_I_PropertiesFields>(
80
+ useDeepCopy({
81
+ vlanId:
82
+ props.initialData.vlanId || `${localization.value.common.none2} (0)`,
83
+ networkLabel: props.initialData.networkLabel || 'Network',
84
+ })
85
+ )
86
+
87
+ const onHideErrorMessageAlert = () => emits('hide-error-message-alert')
88
+
89
+ const onChangeData = (data: UI_I_PropertiesFields) =>
90
+ emits('change-edit-properties-data', data)
91
+
92
+ const changeErrorMessage = (
93
+ errorMessage: string,
94
+ fieldName: keyof UI_I_EditSettingsErrorMessage
95
+ ) => emits('change-error-messages', errorMessage, fieldName)
96
+
97
+ const messageTexts = (local: UI_I_Localization) => ({
98
+ vlanId: local.common.vlanIdInvalidMessage,
99
+ networkLabel: local.common.networkLabelInvalidMessage,
100
+ })
101
+
102
+ const isNumberInRange = (value: number | string, down: number, up: number) =>
103
+ isNaN(Number(value)) || Number(value) < down || Number(value) > up
104
+
105
+ const setMessageOnChangedField = (
106
+ values: string | number,
107
+ name: UI_T_PropertiesFieldName,
108
+ text: string
109
+ ) => {
110
+ if (name === 'networkLabel' && !values) {
111
+ changeErrorMessage(text, name)
112
+ return
113
+ } else if (name === 'networkLabel' && props.networkAlreadyExists) return
114
+
115
+ if (
116
+ name === 'vlanId' &&
117
+ values !== `${localization.value.common.none2} (0)` &&
118
+ values !== `${localization.value.common.all} (4095)` &&
119
+ (isNumberInRange(values, 0, 4095) || values === '')
120
+ ) {
121
+ changeErrorMessage(text, name)
122
+ return
123
+ }
124
+ changeErrorMessage('', name)
125
+ }
126
+
127
+ watch(
128
+ fieldsValues,
129
+ (newValues: UI_I_PropertiesFields) => {
130
+ setMessageOnChangedField(
131
+ newValues.vlanId,
132
+ 'vlanId',
133
+ messageTexts(localization.value).vlanId
134
+ )
135
+ setMessageOnChangedField(
136
+ newValues.networkLabel,
137
+ 'networkLabel',
138
+ messageTexts(localization.value).networkLabel
139
+ )
140
+ onChangeData(newValues)
141
+ !props.hasErrorMessages && onHideErrorMessageAlert()
142
+ },
143
+ { deep: true }
144
+ )
145
+
146
+ onMounted(() => {
147
+ onChangeData(fieldsValues.value)
148
+ })
149
+ onUnmounted(() => {
150
+ onHideErrorMessageAlert()
151
+ })
152
+ </script>
153
+
154
+ <style scoped lang="scss">
155
+ .network-properties {
156
+ width: 100%;
157
+ }
158
+ </style>