bfg-common 1.6.89 → 1.6.91

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 (191) hide show
  1. package/assets/localization/local_be.json +4365 -4630
  2. package/assets/localization/local_en.json +4369 -4635
  3. package/assets/localization/local_hy.json +4369 -4634
  4. package/assets/localization/local_kk.json +4368 -4633
  5. package/assets/localization/local_ru.json +4368 -4633
  6. package/assets/localization/local_zh.json +4366 -4631
  7. package/assets/scss/common/global.scss +0 -11
  8. package/assets/scss/common/normalize.scss +0 -3
  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 +0 -3
  13. package/components/common/adapterManager/AdapterManagerNew.vue +0 -87
  14. package/components/common/adapterManager/addAdapterModal/AddAdapterModalNew.vue +1 -1
  15. package/components/common/adapterManager/addAdapterWarningModal/AddAdapterWarningModalNew.vue +1 -0
  16. package/components/common/adapterManager/ui/actions/bar/Bar.vue +0 -2
  17. package/components/common/adapterManager/ui/actions/bar/BarNew.vue +2 -3
  18. package/components/common/adapterManager/ui/table/adapters/AdaptersNew.vue +0 -1
  19. package/components/common/configure/physicalAdapters/PhysicalAdapters.vue +0 -6
  20. package/components/common/configure/physicalAdapters/PhysicalAdaptersNew.vue +192 -219
  21. package/components/common/configure/physicalAdapters/PhysicalAdaptersOld.vue +4 -6
  22. package/components/common/configure/physicalAdapters/buttons/Buttons.vue +0 -1
  23. package/components/common/configure/physicalAdapters/modals/edit/Edit.vue +1 -26
  24. package/components/common/configure/physicalAdapters/modals/edit/EditNew.vue +1 -30
  25. package/components/common/configure/physicalAdapters/modals/edit/lib/models/interfaces.ts +0 -5
  26. package/components/common/configure/physicalAdapters/tableView/TableViewNew.vue +1 -12
  27. package/components/common/configure/physicalAdapters/tableView/lib/config/physicalAdaptersTableConfigNew.ts +21 -21
  28. package/components/common/configure/physicalAdapters/tableView/lib/config/settings.ts +32 -39
  29. package/components/common/configure/physicalAdapters/tableView/lib/models/interfaces.ts +1 -4
  30. package/components/common/diagramMain/Diagram.vue +85 -169
  31. package/components/common/diagramMain/DiagramMain.vue +10 -40
  32. package/components/common/diagramMain/{header/HeaderOld.vue → Header.vue} +67 -78
  33. package/components/common/diagramMain/modals/{managePhysicalAdapters/ManagePhysicalAdaptersOld.vue → ManagePhysicalAdaptersModal.vue} +119 -33
  34. package/components/common/diagramMain/modals/Modals.vue +5 -5
  35. package/components/common/diagramMain/modals/editSettings/{confirmTeamingSettingsModal/ConfirmTeamingSettingsModalOld.vue → ConfirmTeamingSettingsModal.vue} +5 -2
  36. package/components/common/diagramMain/modals/editSettings/EditSettings.vue +102 -104
  37. package/components/common/diagramMain/modals/editSettings/{modal/EditSettingsModalOld.vue → EditSettingsModal.vue} +51 -12
  38. package/components/common/diagramMain/modals/editSettings/lib/models/interfaces.ts +0 -6
  39. package/components/common/diagramMain/modals/editSettings/tabs/{networkProperties/NetworkPropertiesOld.vue → NetworkProperties.vue} +113 -12
  40. package/components/common/diagramMain/modals/editSettings/tabs/{security/SecurityOld.vue → Security.vue} +48 -25
  41. package/components/common/diagramMain/modals/editSettings/tabs/SwitchProperties.vue +164 -0
  42. package/components/common/diagramMain/modals/editSettings/tabs/{teamingFailover/TeamingFailoverOld.vue → TeamingFailover.vue} +48 -11
  43. package/components/common/diagramMain/modals/editSettings/tabs/{trafficShaping/TrafficShapingOld.vue → TrafficShaping.vue} +134 -12
  44. package/components/common/diagramMain/modals/editSettings/tabs/port/{ipvFourSettings/IpvFourSettingsOld.vue → IpvFourSettings.vue} +152 -11
  45. package/components/common/diagramMain/modals/editSettings/tabs/port/{portProperties/PortPropertiesOld.vue → PortProperties.vue} +103 -12
  46. package/components/common/diagramMain/modals/lib/config/adapterModal.ts +9 -9
  47. package/components/common/diagramMain/modals/lib/config/diagramConfig.ts +2 -43
  48. package/components/common/diagramMain/modals/lib/config/index.ts +1 -2
  49. package/components/common/diagramMain/modals/lib/config/networkModal.ts +15 -15
  50. package/components/common/diagramMain/modals/lib/config/portModal.ts +12 -12
  51. package/components/common/diagramMain/modals/lib/config/vCenterModal.ts +2 -2
  52. package/components/common/diagramMain/modals/lib/config/vmKernelAdapter.ts +1 -1
  53. package/components/common/diagramMain/modals/lib/utils/index.ts +4 -34
  54. package/components/common/diagramMain/modals/migrateVmkernelAdapter/MigrateVmkernelAdapter.vue +2 -2
  55. package/components/common/diagramMain/modals/migrateVmkernelAdapter/validations/common.ts +1 -1
  56. package/components/common/diagramMain/modals/remove/RemoveModalNew.vue +16 -67
  57. package/components/common/diagramMain/modals/viewSettings/viewSettingsModal/ViewSettingsModalNew.vue +0 -8
  58. package/components/common/layout/theHeader/ThemeSwitch.vue +1 -1
  59. package/components/common/layout/theHeader/modals/reconnect/New.vue +30 -38
  60. package/components/common/layout/theHeader/userMenu/modals/changePassword/New.vue +9 -8
  61. package/components/common/layout/theHeader/userMenu/modals/preferences/New.vue +0 -4
  62. package/components/common/layout/theHeader/userMenu/modals/preferences/Old.vue +2 -9
  63. package/components/common/layout/theHeader/userMenu/modals/preferences/changeLanguage/ChangeLanguage.vue +7 -11
  64. package/components/common/layout/theHeader/userMenu/modals/preferences/defaultConsole/DefaultConsole.vue +1 -7
  65. package/components/common/layout/theHeader/userMenu/modals/preferences/defaultConsole/lib/config/consoleOptions.ts +5 -8
  66. package/components/common/layout/theHeader/userMenu/modals/preferences/timeFormat/TimeFormat.vue +5 -9
  67. package/components/common/layout/theHeader/userMenu/modals/preferences/timeFormat/lib/config/formatOptions.ts +1 -1
  68. package/components/common/layout/theHeader/userMenu/modals/preferences/view/Old.vue +9 -5
  69. package/components/common/layout/theHeader/userMenu/modals/preferences/view/View.vue +6 -9
  70. package/components/common/mainNavigationPanel/MainNavigationPanelNew.vue +1 -3
  71. package/components/common/modals/Rename.vue +1 -3
  72. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/table/lib/config/utils.ts +2791 -2791
  73. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/timespan/object/Object.vue +295 -295
  74. package/components/common/monitor/advanced/tools/chartOptionsModal/lib/config/index.ts +22 -22
  75. package/components/common/monitor/advanced/tools/chartOptionsModal/lib/utils/checkSubmit.ts +46 -46
  76. package/components/common/monitor/lib/utils/local_be.json +714 -714
  77. package/components/common/monitor/lib/utils/local_en.json +714 -714
  78. package/components/common/monitor/lib/utils/local_hy.json +714 -714
  79. package/components/common/monitor/lib/utils/local_kk.json +714 -714
  80. package/components/common/monitor/lib/utils/local_ru.json +714 -714
  81. package/components/common/monitor/lib/utils/local_zh.json +714 -714
  82. package/components/common/noDataProvided/NoDataProvidedNew.vue +1 -1
  83. package/components/common/pages/backups/lib/models/interfaces.ts +0 -1
  84. package/components/common/pages/backups/modals/Modals.vue +0 -1
  85. package/components/common/pages/backups/modals/createBackup/datastores/tableView/new/lib/config/table.ts +4 -4
  86. package/components/common/pages/backups/modals/createBackup/datastores/tableView/old/lib/config/table.ts +4 -4
  87. package/components/common/pages/backups/modals/lib/config/restore.ts +0 -1
  88. package/components/common/pages/backups/modals/lib/models/interfaces.ts +0 -1
  89. package/components/common/pages/backups/modals/restore/Restore.vue +2 -4
  90. package/components/common/pages/hardwareHealth/historyTestimony/tools/chartOptionsModal/ChartOptionsModal.vue +253 -184
  91. package/components/common/pages/hardwareHealth/historyTestimony/tools/chartOptionsModal/actions/ActionsNew.vue +1 -1
  92. package/components/common/pages/scheduledTasks/table/lib/models/enums.ts +0 -9
  93. package/components/common/pages/scheduledTasks/table/new/New.vue +10 -12
  94. package/components/common/pages/tasks/Tasks.vue +1 -4
  95. package/components/common/pages/tasks/table/Table.vue +23 -25
  96. package/components/common/readyToComplete/New.vue +0 -1
  97. package/components/common/split/horizontal/New.vue +1 -1
  98. package/components/common/split/horizontal/Old.vue +1 -1
  99. package/components/common/split/vertical/New.vue +8 -42
  100. package/components/common/split/vertical/Old.vue +2 -31
  101. package/components/common/split/vertical/Vertical.vue +0 -4
  102. package/components/common/tools/Actions.vue +3 -7
  103. package/components/common/tools/lib/models/interfaces.ts +0 -1
  104. package/components/common/vm/actions/add/New.vue +6 -21
  105. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/Media.vue +1 -14
  106. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/New.vue +0 -5
  107. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/Old.vue +0 -1
  108. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/New.vue +0 -1
  109. package/components/common/vm/actions/common/customizeHardware/virtualHardware/reservation/New.vue +0 -2
  110. package/components/common/vm/actions/common/select/options/New.vue +12 -14
  111. package/components/common/vm/actions/common/select/options/Old.vue +15 -16
  112. package/components/common/vm/actions/common/select/storage/new/lib/config/table.ts +15 -13
  113. package/components/common/vm/actions/confirm/Confirm.vue +0 -3
  114. package/components/common/vm/actions/rename/Old.vue +0 -1
  115. package/components/common/vm/snapshots/DetailView.vue +6 -6
  116. package/components/common/wizards/datastore/add/New.vue +0 -6
  117. package/components/common/wizards/datastore/add/lib/config/steps.ts +1 -1
  118. package/components/common/wizards/datastore/add/steps/nameAndDevice/NameAndDeviceNew.vue +1 -1
  119. package/components/common/wizards/datastore/add/steps/nameAndDevice/advancedOptions/New.vue +1 -1
  120. package/components/common/wizards/network/add/Add.vue +2 -13
  121. package/components/common/wizards/network/add/AddNew.vue +26 -22
  122. package/components/common/wizards/network/add/lib/config/initialData.ts +4 -6
  123. package/components/common/wizards/network/add/lib/config/steps.ts +1 -1
  124. package/components/common/wizards/network/add/lib/models/interfaces.ts +0 -1
  125. package/components/common/wizards/network/add/lib/utils/utils.ts +1 -1
  126. package/components/common/wizards/network/add/steps/connectionSettings/ConnectionSettingsOld.vue +1 -5
  127. package/components/common/wizards/network/add/steps/ipFourSettings/IpFourSettingsNew.vue +8 -2
  128. package/components/common/wizards/network/add/steps/ipFourSettings/IpFourSettingsOld.vue +0 -3
  129. package/components/common/wizards/network/add/steps/portProperties/PortPropertiesNew.vue +8 -2
  130. package/components/common/wizards/network/add/steps/portProperties/PortPropertiesOld.vue +2 -6
  131. package/components/common/wizards/network/add/steps/selectTargetDevice/SelectTargetDeviceNew.vue +3 -10
  132. package/components/common/wizards/network/add/steps/selectTargetDevice/SelectTargetDeviceOld.vue +0 -4
  133. package/components/common/wizards/network/add/steps/selectTargetDevice/modals/new/SelectNetwork.vue +1 -5
  134. package/components/common/wizards/network/add/validations/common.ts +1 -1
  135. package/components/common/wizards/vm/migrate/New.vue +3 -13
  136. package/components/common/wizards/vm/migrate/lib/config/constructDataReady.ts +0 -5
  137. package/components/common/wizards/vm/migrate/lib/config/steps.ts +2 -3
  138. package/components/common/wizards/vm/migrate/steps/computeResource/New.vue +1 -2
  139. package/components/common/wizards/vm/migrate/steps/computeResource/tableView/new/New.vue +21 -40
  140. package/components/common/wizards/vm/migrate/steps/computeResource/tableView/new/lib/config/hostTable.ts +14 -44
  141. package/components/common/wizards/vm/migrate/steps/computeResource/tableView/new/lib/models/enums.ts +0 -4
  142. package/components/common/wizards/vm/migrate/steps/priority/New.vue +2 -7
  143. package/components/common/wizards/vm/migrate/steps/selectStorage/New.vue +7 -22
  144. package/components/common/wizards/vm/migrate/steps/selectStorage/configure/batch/New.vue +0 -6
  145. package/components/common/wizards/vm/migrate/steps/selectStorage/configure/batch/table/new/New.vue +1 -4
  146. package/components/common/wizards/vm/migrate/steps/selectStorage/configure/batch/table/new/lib/config/datastoreTable.ts +16 -12
  147. package/components/common/wizards/vm/migrate/steps/selectStorage/configure/disk/table/new/New.vue +5 -10
  148. package/components/common/wizards/vm/migrate/steps/selectStorage/configure/disk/table/new/lib/config/diskTable.ts +11 -16
  149. package/components/common/wizards/vm/migrate/steps/selectStorage/configure/disk/table/old/lib/config/diskTable.ts +1 -7
  150. package/components/common/wizards/vm/migrate/steps/selectStorage/selectedPerDisk/New.vue +10 -17
  151. package/components/common/wizards/vm/migrate/steps/type/TypeNew.vue +0 -1
  152. package/components/common/wizards/vm/migrate/vmOrigin/New.vue +15 -35
  153. package/lib/models/store/tasks/enums.ts +0 -3
  154. package/lib/models/store/tasks/types.ts +6 -7
  155. package/package.json +2 -2
  156. package/plugins/directives.ts +5 -3
  157. package/public/spice-console/application/agent.js +17 -18
  158. package/store/tasks/actions.ts +8 -26
  159. package/store/tasks/mappers/recentTasks.ts +0 -1
  160. package/components/common/configure/physicalAdapters/modals/edit/lib/validations/validations.ts +0 -19
  161. package/components/common/diagramMain/header/Header.vue +0 -49
  162. package/components/common/diagramMain/header/HeaderNew.vue +0 -155
  163. package/components/common/diagramMain/modals/UnsavedChangesModal.vue +0 -32
  164. package/components/common/diagramMain/modals/editSettings/EditSettingsNew.vue +0 -285
  165. package/components/common/diagramMain/modals/editSettings/EditSettingsOld.vue +0 -254
  166. package/components/common/diagramMain/modals/editSettings/confirmTeamingSettingsModal/ConfirmTeamingSettingsModal.vue +0 -31
  167. package/components/common/diagramMain/modals/editSettings/confirmTeamingSettingsModal/ConfirmTeamingSettingsModalNew.vue +0 -82
  168. package/components/common/diagramMain/modals/editSettings/lib/config/config.ts +0 -15
  169. package/components/common/diagramMain/modals/editSettings/lib/utils/utils.ts +0 -177
  170. package/components/common/diagramMain/modals/editSettings/modal/EditSettingsModal.vue +0 -137
  171. package/components/common/diagramMain/modals/editSettings/modal/EditSettingsModalNew.vue +0 -91
  172. package/components/common/diagramMain/modals/editSettings/tabs/networkProperties/NetworkProperties.vue +0 -158
  173. package/components/common/diagramMain/modals/editSettings/tabs/networkProperties/NetworkPropertiesNew.vue +0 -262
  174. package/components/common/diagramMain/modals/editSettings/tabs/port/ipvFourSettings/IpvFourSettings.vue +0 -192
  175. package/components/common/diagramMain/modals/editSettings/tabs/port/ipvFourSettings/IpvFourSettingsNew.vue +0 -388
  176. package/components/common/diagramMain/modals/editSettings/tabs/port/portProperties/PortProperties.vue +0 -139
  177. package/components/common/diagramMain/modals/editSettings/tabs/port/portProperties/PortPropertiesNew.vue +0 -286
  178. package/components/common/diagramMain/modals/editSettings/tabs/security/Security.vue +0 -209
  179. package/components/common/diagramMain/modals/editSettings/tabs/security/SecurityNew.vue +0 -233
  180. package/components/common/diagramMain/modals/editSettings/tabs/switchProperties/SwitchProperties.vue +0 -128
  181. package/components/common/diagramMain/modals/editSettings/tabs/switchProperties/SwitchPropertiesNew.vue +0 -235
  182. package/components/common/diagramMain/modals/editSettings/tabs/switchProperties/SwitchPropertiesOld.vue +0 -87
  183. package/components/common/diagramMain/modals/editSettings/tabs/teamingFailover/TeamingFailover.vue +0 -99
  184. package/components/common/diagramMain/modals/editSettings/tabs/teamingFailover/TeamingFailoverNew.vue +0 -319
  185. package/components/common/diagramMain/modals/editSettings/tabs/trafficShaping/TrafficShaping.vue +0 -173
  186. package/components/common/diagramMain/modals/editSettings/tabs/trafficShaping/TrafficShapingNew.vue +0 -348
  187. package/components/common/diagramMain/modals/managePhysicalAdapters/ManagePhysicalAdapters.vue +0 -164
  188. package/components/common/diagramMain/modals/managePhysicalAdapters/ManagePhysicalAdaptersNew.vue +0 -306
  189. package/components/common/diagramMain/skeleton/Header.vue +0 -31
  190. package/components/common/diagramMain/skeleton/Switch.vue +0 -75
  191. package/components/common/wizards/vm/migrate/steps/computeResource/tableView/new/lib/config/clusterTable.ts +0 -340
@@ -2,11 +2,11 @@
2
2
  <div class="wizard-content__container">
3
3
  <div class="wizard-content">
4
4
  <atoms-alert
5
- v-if="props.isShowErrorMessage"
5
+ v-if="isShowErrorMessage"
6
6
  :items="validationMessagesArray"
7
7
  status="alert-danger"
8
8
  test-id="network-properties-alert"
9
- @remove="emits('hide-error-message-alert')"
9
+ @remove="onHideErrorMessageAlert"
10
10
  />
11
11
  <form id="network-properties-form">
12
12
  <div class="horizontal-flex-container">
@@ -53,7 +53,7 @@
53
53
  <div class="flex-align-center">
54
54
  <atoms-combobox
55
55
  v-model="fieldsValues.vlanId"
56
- :items="props.vlanIdSelectData"
56
+ :items="vlanIdSelectDataLocal"
57
57
  test-id="vlan-id-select-combobox"
58
58
  @click.stop
59
59
  @select="selectVlanId"
@@ -87,31 +87,132 @@
87
87
  <script setup lang="ts">
88
88
  import type { UI_I_Localization } from '~/lib/models/interfaces'
89
89
  import type {
90
+ UI_I_ModalsInitialData,
90
91
  UI_I_EditSettingsErrorMessage,
91
92
  UI_I_PropertiesFields,
92
93
  } from '~/components/common/diagramMain/lib/models/interfaces'
93
- import type { UI_I_VlanIdData } from '~/components/common/wizards/network/add/lib/models/interfaces'
94
+ import type { UI_T_PropertiesFieldName } from '~/components/common/diagramMain/lib/models/types'
94
95
  import { validationMessagesArrayFunc } from '~/components/common/diagramMain/modals/lib/utils'
96
+ import { vlanIdSelectDataFunc } from '~/components/common/wizards/network/add/lib/config/config'
95
97
 
96
- const props = defineProps<{
97
- isShowErrorMessage: boolean
98
- errorMessages: UI_I_EditSettingsErrorMessage
99
- vlanIdSelectData: UI_I_VlanIdData[]
100
- }>()
98
+ // Props from up
99
+ const props = withDefaults(
100
+ defineProps<{
101
+ isShowErrorMessageAlert: boolean
102
+ errorMessages: UI_I_EditSettingsErrorMessage
103
+ networkAlreadyExists: boolean
104
+ initialData?: UI_I_ModalsInitialData
105
+ hasErrorMessages?: boolean
106
+ }>(),
107
+ {
108
+ initialData: () => ({}),
109
+ hasErrorMessages: undefined,
110
+ }
111
+ )
101
112
 
113
+ // Validation
102
114
  const emits = defineEmits<{
115
+ (
116
+ event: 'change-error-messages',
117
+ errorMessage: string,
118
+ fieldName: keyof UI_I_EditSettingsErrorMessage
119
+ ): void
103
120
  (event: 'hide-error-message-alert'): void
121
+ (
122
+ event: 'change-edit-properties-data',
123
+ propertiesData: UI_I_PropertiesFields
124
+ ): void
104
125
  }>()
105
126
 
127
+ const validationMessagesArray = computed(() =>
128
+ validationMessagesArrayFunc(['networkLabel', 'vlanId'], props.errorMessages)
129
+ )
130
+
131
+ // UI_I_Localization
106
132
  const localization = computed<UI_I_Localization>(() => useLocal())
133
+ const vlanIdSelectDataLocal = computed<UI_I_Localization>(() =>
134
+ vlanIdSelectDataFunc(localization.value)
135
+ )
107
136
 
108
- const fieldsValues = defineModel<UI_I_PropertiesFields>()
137
+ // For showing component validation errors on the top of modal
138
+ const isShowErrorMessage = computed<boolean>(
139
+ () => props.isShowErrorMessageAlert && props.hasErrorMessages
140
+ )
141
+
142
+ const fieldsValues = ref<UI_I_PropertiesFields>(
143
+ useDeepCopy({
144
+ vlanId: props.initialData.vlanId || `${localization.value.common.none} (0)`,
145
+ networkLabel: props.initialData.networkLabel || 'Network',
146
+ })
147
+ )
109
148
 
110
149
  const selectVlanId = (id: string): void => {
111
150
  fieldsValues.value.vlanId = id
112
151
  }
113
152
 
114
- const validationMessagesArray = computed(() =>
115
- validationMessagesArrayFunc(['networkLabel', 'vlanId'], props.errorMessages)
153
+ const onHideErrorMessageAlert = () => emits('hide-error-message-alert')
154
+
155
+ const onChangeData = (data: UI_I_PropertiesFields) =>
156
+ emits('change-edit-properties-data', data)
157
+
158
+ const changeErrorMessage = (
159
+ errorMessage: string,
160
+ fieldName: keyof UI_I_EditSettingsErrorMessage
161
+ ) => emits('change-error-messages', errorMessage, fieldName)
162
+
163
+ const messageTexts = (local: UI_I_Localization) => ({
164
+ vlanId: local.common.vlanIdInvalidMessage,
165
+ networkLabel: local.common.networkLabelInvalidMessage,
166
+ })
167
+
168
+ const isNumberInRange = (value: number | string, down: number, up: number) =>
169
+ isNaN(Number(value)) || Number(value) < down || Number(value) > up
170
+
171
+ const setMessageOnChangedField = (
172
+ values: string | number,
173
+ name: UI_T_PropertiesFieldName,
174
+ text: string
175
+ ) => {
176
+ if (name === 'networkLabel' && !values) {
177
+ changeErrorMessage(text, name)
178
+ return
179
+ } else if (name === 'networkLabel' && props.networkAlreadyExists) return
180
+
181
+ if (
182
+ name === 'vlanId' &&
183
+ values !== `${localization.value.common.none} (0)` &&
184
+ values !== `${localization.value.common.all} (4095)` &&
185
+ (isNumberInRange(values, 0, 4095) || values === '')
186
+ ) {
187
+ changeErrorMessage(text, name)
188
+ return
189
+ }
190
+ changeErrorMessage('', name)
191
+ }
192
+
193
+ watch(
194
+ fieldsValues,
195
+ (newValues: UI_I_PropertiesFields) => {
196
+ setMessageOnChangedField(
197
+ newValues.vlanId,
198
+ 'vlanId',
199
+ messageTexts(localization.value).vlanId
200
+ )
201
+ setMessageOnChangedField(
202
+ newValues.networkLabel,
203
+ 'networkLabel',
204
+ messageTexts(localization.value).networkLabel
205
+ )
206
+ onChangeData(newValues)
207
+ !props.hasErrorMessages && onHideErrorMessageAlert()
208
+ },
209
+ { deep: true }
116
210
  )
211
+
212
+ onMounted(() => {
213
+ onChangeData(fieldsValues.value)
214
+ })
215
+ onUnmounted(() => {
216
+ onHideErrorMessageAlert()
217
+ })
117
218
  </script>
@@ -34,12 +34,11 @@
34
34
  data-id="promiscuous-mode-select"
35
35
  name="selectName"
36
36
  >
37
- <option
38
- v-for="item in selectItems"
39
- :value="item.value"
40
- :label="item.text"
41
- >
42
- {{ item.text }}
37
+ <option :value="2" :label="localization.common.reject">
38
+ {{ localization.common.reject }}
39
+ </option>
40
+ <option :value="1" :label="localization.common.accept">
41
+ {{ localization.common.accept }}
43
42
  </option>
44
43
  </select>
45
44
  </div>
@@ -81,12 +80,11 @@
81
80
  data-id="mac-address-select"
82
81
  name="selectName"
83
82
  >
84
- <option
85
- v-for="item in selectItems"
86
- :value="item.value"
87
- :label="item.text"
88
- >
89
- {{ item.text }}
83
+ <option :value="2" :label="localization.common.reject">
84
+ {{ localization.common.reject }}
85
+ </option>
86
+ <option :value="1" :label="localization.common.accept">
87
+ {{ localization.common.accept }}
90
88
  </option>
91
89
  </select>
92
90
  </div>
@@ -128,12 +126,11 @@
128
126
  data-id="forged-transmits-select"
129
127
  name="selectName"
130
128
  >
131
- <option
132
- v-for="item in selectItems"
133
- :value="item.value"
134
- :label="item.text"
135
- >
136
- {{ item.text }}
129
+ <option :value="2" :label="localization.common.reject">
130
+ {{ localization.common.reject }}
131
+ </option>
132
+ <option :value="1" :label="localization.common.accept">
133
+ {{ localization.common.accept }}
137
134
  </option>
138
135
  </select>
139
136
  </div>
@@ -150,18 +147,44 @@
150
147
 
151
148
  <script setup lang="ts">
152
149
  import type { UI_I_Localization } from '~/lib/models/interfaces'
153
- import type { UI_I_SecurityFields } from '~/components/common/diagramMain/lib/models/interfaces'
154
- import { selectItemFunc } from '~/components/common/diagramMain/modals/editSettings/lib/config/config'
150
+ import type {
151
+ UI_I_ModalsInitialData,
152
+ UI_I_SecurityFields,
153
+ } from '~/components/common/diagramMain/lib/models/interfaces'
154
+ import { securityFieldsInitialFunc } from '~/components/common/diagramMain/modals/lib/config'
155
155
 
156
- const props = defineProps<{
157
- isSwitch: boolean
156
+ // Props from up
157
+ const props = withDefaults(
158
+ defineProps<{
159
+ isSwitch: boolean
160
+ initialData?: UI_I_ModalsInitialData
161
+ }>(),
162
+ {
163
+ isSwitch: false,
164
+ initialData: undefined,
165
+ }
166
+ )
167
+
168
+ const emits = defineEmits<{
169
+ (event: 'change-edit-security-data', securityData: UI_I_SecurityFields): void
158
170
  }>()
159
171
 
172
+ // UI_I_Localization
160
173
  const localization = computed<UI_I_Localization>(() => useLocal())
161
174
 
162
- const fieldsValues = defineModel<UI_I_SecurityFields>()
175
+ const fieldsValues = ref<UI_I_SecurityFields>(
176
+ securityFieldsInitialFunc(props.isSwitch, props.initialData)
177
+ )
178
+
179
+ onMounted(() => {
180
+ emits('change-edit-security-data', fieldsValues.value)
181
+ })
163
182
 
164
- const selectItems = computed<{ text: string; value: number }[]>(() =>
165
- selectItemFunc(localization.value)
183
+ watch(
184
+ fieldsValues,
185
+ (newFieldsValues: UI_I_SecurityFields) => {
186
+ emits('change-edit-security-data', newFieldsValues)
187
+ },
188
+ { deep: true }
166
189
  )
167
190
  </script>
@@ -0,0 +1,164 @@
1
+ <template>
2
+ <div class="wizard-content__container">
3
+ <div class="wizard-content">
4
+ <atoms-alert
5
+ v-if="isShowErrorMessage"
6
+ :items="validationMessagesArray"
7
+ status="alert-danger"
8
+ test-id="switch-properties-alert"
9
+ @remove="onHideErrorMessageAlert"
10
+ />
11
+ <form id="switch-properties-form">
12
+ <div class="horizontal-flex-container">
13
+ <label class="property-label-group" for="network-label">
14
+ {{ localization.common.numberOfPorts }}
15
+ </label>
16
+ <div class="margin-left-property-value-group">
17
+ <div class="property-value-group">
18
+ <fieldset>
19
+ {{ props.initialData.num_ports }}
20
+ </fieldset>
21
+ </div>
22
+ </div>
23
+ </div>
24
+ <div class="horizontal-flex-container">
25
+ <label class="property-label-group">
26
+ {{ localization.common.mtuBytes }}
27
+ </label>
28
+ <div class="margin-left-property-value-group">
29
+ <div class="property-value-group tooltip-field-container">
30
+ <fieldset>
31
+ <atoms-tooltip-error :has-error="!!props.errorMessages.mtu">
32
+ <template #elem>
33
+ <input
34
+ id="mtu"
35
+ v-model="fieldsValues.mtu"
36
+ :class="[
37
+ 'tooltip-field',
38
+ {
39
+ 'danger-not-valid': props.errorMessages.mtu,
40
+ },
41
+ ]"
42
+ data-id="mtu-input"
43
+ type="number"
44
+ name="mtu"
45
+ @click.stop
46
+ />
47
+ </template>
48
+ <template #content>
49
+ {{ props.errorMessages.mtu }}
50
+ </template>
51
+ </atoms-tooltip-error>
52
+ </fieldset>
53
+ </div>
54
+ </div>
55
+ </div>
56
+ </form>
57
+ </div>
58
+ </div>
59
+ </template>
60
+
61
+ <script setup lang="ts">
62
+ import type { UI_I_Localization } from '~/lib/models/interfaces'
63
+ import type {
64
+ UI_I_SwitchPropertiesFields,
65
+ UI_I_EditSettingsErrorMessage,
66
+ UI_I_ModalsInitialData,
67
+ } from '~/components/common/diagramMain/lib/models/interfaces'
68
+ import type { UI_T_PortPropertiesFieldName } from '~/components/common/diagramMain/lib/models/types'
69
+ import { validationMessagesArrayFunc } from '~/components/common/diagramMain/modals/lib/utils'
70
+
71
+ // Props from up
72
+ const props = withDefaults(
73
+ defineProps<{
74
+ isShowErrorMessageAlert: boolean
75
+ errorMessages: UI_I_EditSettingsErrorMessage
76
+ initialData?: UI_I_ModalsInitialData
77
+ hasErrorMessages?: boolean
78
+ }>(),
79
+ {
80
+ initialData: () => ({}),
81
+ hasErrorMessages: undefined,
82
+ }
83
+ )
84
+
85
+ // Validation
86
+ const emits = defineEmits<{
87
+ (
88
+ event: 'change-error-messages',
89
+ errorMessage: string,
90
+ fieldName: keyof UI_I_EditSettingsErrorMessage
91
+ ): void
92
+ (event: 'hide-error-message-alert'): void
93
+ (
94
+ event: 'change-edit-properties-data',
95
+ switchPropertiesData: UI_I_SwitchPropertiesFields
96
+ ): void
97
+ }>()
98
+
99
+ const validationMessagesArray = computed(() =>
100
+ validationMessagesArrayFunc(['mtu'], props.errorMessages)
101
+ )
102
+
103
+ // UI_I_Localization
104
+ const localization = computed<UI_I_Localization>(() => useLocal())
105
+
106
+ // For showing component validation errors on the top of modal
107
+ const isShowErrorMessage = computed<boolean>(
108
+ () => props.isShowErrorMessageAlert && props.hasErrorMessages
109
+ )
110
+
111
+ const fieldsValues = ref<UI_I_SwitchPropertiesFields>({
112
+ mtu: props.initialData.mtu || 0,
113
+ num_ports: props.initialData.num_ports || '',
114
+ })
115
+
116
+ const onHideErrorMessageAlert = () => emits('hide-error-message-alert')
117
+ const onChangeData = (data: UI_I_SwitchPropertiesFields) =>
118
+ emits('change-edit-properties-data', data)
119
+
120
+ const changeErrorMessage = (
121
+ errorMessage: string,
122
+ fieldName: keyof UI_I_EditSettingsErrorMessage
123
+ ) => emits('change-error-messages', errorMessage, fieldName)
124
+
125
+ const messageTexts = (local: UI_I_Localization) => ({
126
+ mtu: local.common.mtuInvalidMessage,
127
+ })
128
+
129
+ const setMessageOnChangedField = (
130
+ values: number,
131
+ name: UI_T_PortPropertiesFieldName,
132
+ text: string
133
+ ) => {
134
+ if (values < 1280 || values > 65535) {
135
+ changeErrorMessage(text, name)
136
+ return
137
+ }
138
+ changeErrorMessage('', name)
139
+ }
140
+
141
+ watch(
142
+ fieldsValues,
143
+ (newValues: UI_I_SwitchPropertiesFields) => {
144
+ setMessageOnChangedField(
145
+ newValues.mtu,
146
+ 'mtu',
147
+ messageTexts(localization.value).mtu
148
+ )
149
+ onChangeData(newValues)
150
+ !props.hasErrorMessages && onHideErrorMessageAlert()
151
+ },
152
+ {
153
+ deep: true,
154
+ }
155
+ )
156
+
157
+ onMounted(() => {
158
+ onChangeData(fieldsValues.value)
159
+ })
160
+
161
+ onUnmounted(() => {
162
+ onHideErrorMessageAlert()
163
+ })
164
+ </script>
@@ -4,7 +4,7 @@
4
4
  <form id="teaming-failover">
5
5
  <section class="form-block">
6
6
  <template
7
- v-for="(item, key) in props.teamingAndFailoverTemplate"
7
+ v-for="(item, key) in teamingAndFailoverTemplate"
8
8
  :key="item.key"
9
9
  >
10
10
  <div class="horizontal-flex-container">
@@ -107,28 +107,65 @@ import type {
107
107
  UI_I_TeamingAndFailoverTemplate,
108
108
  UI_I_AdapterStatus,
109
109
  } from '~/components/common/diagramMain/lib/models/interfaces'
110
+ import {
111
+ teamingFailoverFieldsInitialFunc,
112
+ teamingAndFailoverTemplateMakerFunc,
113
+ } from '~/components/common/diagramMain/modals/lib/config'
110
114
 
111
- const props = defineProps<{
112
- teamingAndFailoverTemplate: UI_I_TeamingAndFailoverTemplate[]
113
- isSwitch: boolean
114
- adapters: UI_I_ItemsWithTotalCounts<UI_I_SwitchAdapterItem>
115
- initialData: UI_I_ModalsInitialData
116
- adapterStatus: UI_I_AdapterStatus
117
- isDarkMode: boolean
118
- }>()
115
+ // Props from up
116
+ const props = withDefaults(
117
+ defineProps<{
118
+ adapters: UI_I_ItemsWithTotalCounts<UI_I_SwitchAdapterItem>
119
+ adapterStatus: UI_I_AdapterStatus
120
+ isSwitch: boolean
121
+ initialData?: UI_I_ModalsInitialData
122
+ isDarkMode?: boolean
123
+ }>(),
124
+ {
125
+ initialData: () => ({}),
126
+ isSwitch: false,
127
+ isDarkMode: false,
128
+ }
129
+ )
119
130
 
120
131
  const emits = defineEmits<{
132
+ (
133
+ event: 'change-edit-teaming-failover-data',
134
+ teamingFailoverData: UI_I_TeamingFailoverFields
135
+ ): void
121
136
  (event: 'change-adapter-status', adapterStatus: UI_I_AdapterStatus): void
122
137
  }>()
123
138
 
139
+ // UI_I_Localization
124
140
  const localization = computed<UI_I_Localization>(() => useLocal())
125
141
 
126
- const fieldsValues = defineModel<UI_I_TeamingFailoverFields>()
142
+ // Making fields template
143
+ const teamingAndFailoverTemplate = computed<UI_I_TeamingAndFailoverTemplate[]>(
144
+ () => teamingAndFailoverTemplateMakerFunc(localization.value)
145
+ )
146
+ // Temporary data for this component
147
+ const fieldsValues = ref<UI_I_TeamingFailoverFields>(
148
+ teamingFailoverFieldsInitialFunc(props.isSwitch, props.initialData)
149
+ )
150
+
151
+ const onChangeData = (data: UI_I_TeamingFailoverFields) =>
152
+ emits('change-edit-teaming-failover-data', data)
127
153
 
128
154
  const onChangeAdapterStatus = (adapterStatus: UI_I_AdapterStatus) =>
129
155
  emits('change-adapter-status', adapterStatus)
130
- </script>
131
156
 
157
+ watch(
158
+ fieldsValues,
159
+ (newFieldsValues: UI_I_TeamingFailoverFields) => {
160
+ onChangeData(newFieldsValues)
161
+ },
162
+ { deep: true, immediate: true }
163
+ )
164
+
165
+ onMounted(() => {
166
+ onChangeData(fieldsValues.value)
167
+ })
168
+ </script>
132
169
  <style lang="scss" scoped>
133
170
  :deep(.diagram-action__edit) {
134
171
  .table-fixed-height {
@@ -2,11 +2,11 @@
2
2
  <div class="wizard-content__container">
3
3
  <div class="wizard-content">
4
4
  <atoms-alert
5
- v-if="props.isShowErrorMessage"
5
+ v-if="isShowErrorMessage"
6
6
  :items="validationMessagesArray"
7
7
  status="alert-danger"
8
8
  test-id="traffic-shaping-alert"
9
- @remove="emits('hide-error-message-alert')"
9
+ @remove="onHideErrorMessageAlert"
10
10
  />
11
11
  <form id="traffic-shaping-form" action="">
12
12
  <div class="horizontal-flex-container">
@@ -249,29 +249,151 @@
249
249
  <script setup lang="ts">
250
250
  import type { UI_I_Localization } from '~/lib/models/interfaces'
251
251
  import type {
252
+ UI_I_ModalsInitialData,
252
253
  UI_I_TrafficShapingFields,
253
254
  UI_I_EditSettingsErrorMessage,
254
255
  } from '~/components/common/diagramMain/lib/models/interfaces'
256
+ import type { UI_T_TrafficShapingFieldName } from '~/components/common/diagramMain/lib/models/types'
255
257
  import { validationMessagesArrayFunc } from '~/components/common/diagramMain/modals/lib/utils'
258
+ import { trafficShapingFieldsInitialFunc } from '~/components/common/diagramMain/modals/lib/config'
256
259
 
257
- const props = defineProps<{
258
- isShowErrorMessage: boolean
259
- errorMessages: UI_I_EditSettingsErrorMessage
260
- isSwitch: boolean
261
- }>()
260
+ // Props from up
261
+ const props = withDefaults(
262
+ defineProps<{
263
+ isShowErrorMessageAlert: boolean
264
+ errorMessages: UI_I_EditSettingsErrorMessage
265
+ isSwitch: boolean
266
+ initialData?: UI_I_ModalsInitialData
267
+ hasErrorMessages?: boolean
268
+ }>(),
269
+ {
270
+ initialData: () => ({}),
271
+ isSwitch: false,
272
+ hasErrorMessages: undefined,
273
+ }
274
+ )
262
275
 
276
+ // Validation
263
277
  const emits = defineEmits<{
278
+ (
279
+ event: 'change-error-messages',
280
+ errorMessage: string,
281
+ fieldName: keyof UI_I_EditSettingsErrorMessage
282
+ ): void
264
283
  (event: 'hide-error-message-alert'): void
284
+ (
285
+ event: 'change-edit-traffic-shaping-data',
286
+ trafficShapingData: UI_I_TrafficShapingFields
287
+ ): void
265
288
  }>()
266
289
 
267
- const localization = computed<UI_I_Localization>(() => useLocal())
268
-
269
- const fieldsValues = defineModel<UI_I_TrafficShapingFields>()
270
-
271
- const validationMessagesArray = computed<string[]>(() =>
290
+ const validationMessagesArray = computed(() =>
272
291
  validationMessagesArrayFunc(
273
292
  ['average', 'peak', 'burstSize'],
274
293
  props.errorMessages
275
294
  )
276
295
  )
296
+
297
+ // UI_I_Localization
298
+ const localization = computed<UI_I_Localization>(() => useLocal())
299
+
300
+ // For showing component validation errors on the top of modal
301
+ const isShowErrorMessage = computed<boolean>(
302
+ () => props.isShowErrorMessageAlert && props.hasErrorMessages
303
+ )
304
+
305
+ const fieldsValues = ref<UI_I_TrafficShapingFields>(
306
+ trafficShapingFieldsInitialFunc(props.isSwitch, props.initialData)
307
+ )
308
+
309
+ const onHideErrorMessageAlert = (): void => emits('hide-error-message-alert')
310
+
311
+ const onChangeData = (data: UI_I_TrafficShapingFields) =>
312
+ emits('change-edit-traffic-shaping-data', data)
313
+
314
+ const messageTexts = (local: UI_I_Localization) => ({
315
+ average: local.common.averageInvalidError,
316
+ peak: local.common.peakInvalidError,
317
+ burstSize: local.common.burstSizeInvalidError,
318
+ averageBig: local.common.averageBigInvalidError,
319
+ peakBig: local.common.peakBigInvalidError,
320
+ burstSizeBig: local.common.burstSizeBigInvalidError,
321
+ })
322
+
323
+ const changeErrorMessage = (
324
+ errorMessage: string,
325
+ fieldName: keyof UI_I_EditSettingsErrorMessage
326
+ ) => emits('change-error-messages', errorMessage, fieldName)
327
+
328
+ const MAX_BANDWIDTH = 9_007_199_254_740_991
329
+ const setMessageOnChangedField = (
330
+ values: number[],
331
+ index: number,
332
+ name: UI_T_TrafficShapingFieldName,
333
+ text1: string,
334
+ text2: string
335
+ ): void => {
336
+ if (
337
+ !fieldsValues.value.status.checked ||
338
+ fieldsValues.value.status.selected === 0
339
+ ) {
340
+ changeErrorMessage('', 'average')
341
+ changeErrorMessage('', 'peak')
342
+ changeErrorMessage('', 'burstSize')
343
+ return
344
+ }
345
+
346
+ if (values[index] >= 1 && values[index] <= MAX_BANDWIDTH) {
347
+ changeErrorMessage('', name)
348
+ } else if (values[index] < 1) {
349
+ changeErrorMessage(text1, name)
350
+ } else if (values[index] > MAX_BANDWIDTH) {
351
+ changeErrorMessage(text2, name)
352
+ }
353
+ }
354
+
355
+ watch(
356
+ fieldsValues,
357
+ (newFieldsValues: UI_I_TrafficShapingFields): void => {
358
+ const { average, peak, burstSize } = newFieldsValues
359
+ const arrayValues = [average, peak, burstSize]
360
+
361
+ setMessageOnChangedField(
362
+ arrayValues,
363
+ 0,
364
+ 'average',
365
+ messageTexts(localization.value).average,
366
+ messageTexts(localization.value).averageBig
367
+ )
368
+ setMessageOnChangedField(
369
+ arrayValues,
370
+ 1,
371
+ 'peak',
372
+ messageTexts(localization.value).peak,
373
+ messageTexts(localization.value).peakBig
374
+ )
375
+ setMessageOnChangedField(
376
+ arrayValues,
377
+ 2,
378
+ 'burstSize',
379
+ messageTexts(localization.value).burstSize,
380
+ messageTexts(localization.value).burstSizeBig
381
+ )
382
+
383
+ onChangeData(newFieldsValues)
384
+ !props.hasErrorMessages && onHideErrorMessageAlert()
385
+ },
386
+ {
387
+ deep: true,
388
+ }
389
+ )
390
+
391
+ onMounted(() => {
392
+ onChangeData(fieldsValues.value)
393
+ })
394
+ onUnmounted((): void => {
395
+ onHideErrorMessageAlert()
396
+ })
277
397
  </script>
398
+
399
+ <style scoped lang="scss"></style>