bfg-common 1.5.486 → 1.5.488

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 (209) hide show
  1. package/CODE_STYLE.md +109 -109
  2. package/assets/img/icons/icons-sprite-dark-3.svg +227 -227
  3. package/assets/img/icons/icons-sprite-dark-5.svg +488 -488
  4. package/assets/img/icons/icons-sprite-light-3.svg +227 -227
  5. package/assets/img/icons/icons-sprite-light-5.svg +488 -488
  6. package/assets/localization/local_be.json +9 -2
  7. package/assets/localization/local_en.json +19 -12
  8. package/assets/localization/local_hy.json +9 -2
  9. package/assets/localization/local_kk.json +9 -2
  10. package/assets/localization/local_ru.json +9 -2
  11. package/assets/localization/local_zh.json +9 -2
  12. package/assets/scss/common/theme.scss +2 -2
  13. package/components/atoms/TheIcon3.vue +50 -50
  14. package/components/atoms/collapse/CollapseNav.vue +170 -170
  15. package/components/atoms/perPage/PerPage.vue +58 -58
  16. package/components/atoms/table/dataGrid/DataGridPagination.vue +97 -97
  17. package/components/atoms/table/dataGrid/lib/config/settingsTable.ts +94 -94
  18. package/components/atoms/table/dataGrid/lib/utils/export.ts +16 -16
  19. package/components/common/adapterManager/AdapterManager.vue +189 -545
  20. package/components/common/adapterManager/AdapterManagerNew.vue +300 -0
  21. package/components/common/adapterManager/AdapterManagerOld.vue +498 -0
  22. package/components/common/adapterManager/addAdapterModal/AddAdapterModal.vue +70 -0
  23. package/components/common/adapterManager/addAdapterModal/AddAdapterModalNew.vue +77 -0
  24. package/components/common/adapterManager/{AddAdapterModal.vue → addAdapterModal/AddAdapterModalOld.vue} +16 -46
  25. package/components/common/adapterManager/addAdapterWarningModal/AddAdapterWarningModal.vue +32 -0
  26. package/components/common/adapterManager/addAdapterWarningModal/AddAdapterWarningModalNew.vue +38 -0
  27. package/components/common/adapterManager/{AddAdapterWarningModal.vue → addAdapterWarningModal/AddAdapterWarningModalOld.vue} +5 -14
  28. package/components/common/adapterManager/noActiveAdaptersModal/NoActiveAdaptersModal.vue +31 -0
  29. package/components/common/adapterManager/noActiveAdaptersModal/NoActiveAdaptersModalNew.vue +34 -0
  30. package/components/common/adapterManager/{NoActiveAdaptersModal.vue → noActiveAdaptersModal/NoActiveAdaptersModalOld.vue} +2 -6
  31. package/components/common/adapterManager/noConnectedActiveAdaptersModal/NoConnectedActiveAdaptersModal.vue +31 -0
  32. package/components/common/adapterManager/noConnectedActiveAdaptersModal/NoConnectedActiveAdaptersModalNew.vue +34 -0
  33. package/components/common/adapterManager/{NoConnectedActiveAdaptersModal.vue → noConnectedActiveAdaptersModal/NoConnectedActiveAdaptersModalOld.vue} +2 -6
  34. package/components/common/adapterManager/ui/actions/bar/Bar.vue +57 -0
  35. package/components/common/adapterManager/ui/actions/bar/BarNew.vue +38 -0
  36. package/components/common/adapterManager/ui/actions/moveDownAdapterButton/MoveDownAdapterButton.vue +28 -0
  37. package/components/common/adapterManager/ui/actions/moveDownAdapterButton/MoveDownAdapterButtonNew.vue +75 -0
  38. package/components/common/adapterManager/ui/actions/{MoveDownAdapterButton.vue → moveDownAdapterButton/MoveDownAdapterButtonOld.vue} +3 -9
  39. package/components/common/adapterManager/ui/actions/moveUpAdapterButton/MoveUpAdapterButton.vue +28 -0
  40. package/components/common/adapterManager/ui/actions/moveUpAdapterButton/MoveUpAdapterButtonNew.vue +76 -0
  41. package/components/common/adapterManager/ui/actions/{MoveUpAdapterButton.vue → moveUpAdapterButton/MoveUpAdapterButtonOld.vue} +3 -9
  42. package/components/common/adapterManager/ui/noSelectedAdapter/NoSelectedAdapter.vue +24 -0
  43. package/components/common/adapterManager/ui/noSelectedAdapter/NoSelectedAdapterNew.vue +13 -0
  44. package/components/common/adapterManager/ui/secondTitle/SecondTitle.vue +31 -0
  45. package/components/common/adapterManager/ui/secondTitle/SecondTitleNew.vue +36 -0
  46. package/components/common/adapterManager/ui/{SecondTitle.vue → secondTitle/SecondTitleOld.vue} +0 -1
  47. package/components/common/adapterManager/ui/table/Table.vue +59 -133
  48. package/components/common/adapterManager/ui/table/TableNew.vue +136 -0
  49. package/components/common/adapterManager/ui/table/TableOld.vue +141 -0
  50. package/components/common/adapterManager/ui/table/adapters/Adapters.vue +44 -0
  51. package/components/common/adapterManager/ui/table/adapters/AdaptersNew.vue +153 -0
  52. package/components/common/adapterManager/ui/table/{Adapters.vue → adapters/AdaptersOld.vue} +5 -10
  53. package/components/common/adapterManager/ui/table/header/Header.vue +57 -0
  54. package/components/common/adapterManager/ui/table/header/HeaderNew.vue +77 -0
  55. package/components/common/adapterManager/ui/table/{Header.vue → header/HeaderOld.vue} +3 -20
  56. package/components/common/browse/blocks/contents/filesNew/Skeleton.vue +18 -18
  57. package/components/common/browse/blocks/lib/models/types.ts +1 -1
  58. package/components/common/browse/lib/models/interfaces.ts +5 -5
  59. package/components/common/context/lib/models/interfaces.ts +33 -33
  60. package/components/common/diagramMain/DiagramMain.vue +3 -1
  61. package/components/common/diagramMain/lib/models/interfaces.ts +5 -2
  62. package/components/common/diagramMain/modals/ManagePhysicalAdaptersModal.vue +6 -5
  63. package/components/common/diagramMain/modals/Modals.vue +19 -1
  64. package/components/common/diagramMain/modals/lib/config/adapterModal.ts +23 -20
  65. package/components/common/diagramMain/modals/lib/config/networkModal.ts +401 -398
  66. package/components/common/diagramMain/modals/lib/config/switchModal.ts +3 -0
  67. package/components/common/diagramMain/modals/remove/RemoveModal.vue +8 -0
  68. package/components/common/diagramMain/modals/remove/RemoveModalNew.vue +12 -1
  69. package/components/common/diagramMain/modals/remove/RemoveModalOld.vue +12 -1
  70. package/components/common/diagramMain/modals/viewSettings/info/Info.vue +0 -2
  71. package/components/common/diagramMain/modals/viewSettings/viewSettings/ViewSettings.vue +6 -0
  72. package/components/common/diagramMain/modals/viewSettings/viewSettings/ViewSettingsNew.vue +140 -71
  73. package/components/common/diagramMain/modals/viewSettings/viewSettings/ViewSettingsOld.vue +4 -4
  74. package/components/common/diagramMain/network/Contents.vue +497 -497
  75. package/components/common/layout/theHeader/feedback/new/New.vue +2 -2
  76. package/components/common/layout/theHeader/feedback/new/description/Description.vue +3 -3
  77. package/components/common/layout/theHeader/feedback/new/tabs/Tabs.vue +4 -2
  78. package/components/common/layout/theHeader/feedback/new/tabs/lib/config/tabs.ts +3 -2
  79. package/components/common/layout/theHeader/feedback/new/tabs/lib/models/interfaces.ts +5 -0
  80. package/components/common/layout/theHeader/helpMenu/About.vue +79 -79
  81. package/components/common/layout/theHeader/helpMenu/aboutNew/AboutNew.vue +96 -95
  82. package/components/common/layout/theHeader/helpMenu/aboutOld/AboutOld.vue +79 -79
  83. package/components/common/layout/theHeader/userMenu/modals/changePassword/ChangePasswordNew.vue +1 -2
  84. package/components/common/layout/theHeader/userMenu/modals/preferences/PreferencesNew.vue +9 -0
  85. package/components/common/layout/theHeader/userMenu/modals/preferences/view/ViewNew.vue +6 -2
  86. package/components/common/monitor/advanced/tools/chartOptionsModal/ChartOptionsModalNew.vue +1 -0
  87. package/components/common/monitor/overview/OverviewNew.vue +4 -1
  88. package/components/common/monitor/overview/filters/customIntervalModal/CustomIntervalModal.vue +0 -2
  89. package/components/common/monitor/overview/filters/customIntervalModal/customIntervalModalNew/CustomIntervalModalNew.vue +6 -6
  90. package/components/common/pages/backups/DetailView.vue +52 -52
  91. package/components/common/pages/backups/lib/models/interfaces.ts +36 -36
  92. package/components/common/pages/backups/modals/Modals.vue +243 -243
  93. package/components/common/pages/backups/modals/createBackup/configuration/Configuration.vue +29 -29
  94. package/components/common/pages/backups/modals/createBackup/configuration/maxBandwidth/lib/config/options.ts +6 -6
  95. package/components/common/pages/backups/modals/createBackup/datastores/tableView/TableView.vue +95 -95
  96. package/components/common/pages/backups/modals/createBackup/general/General.vue +141 -141
  97. package/components/common/pages/backups/modals/createBackup/lib/config/strategyOptions.ts +12 -12
  98. package/components/common/pages/backups/modals/lib/config/restore.ts +115 -115
  99. package/components/common/pages/backups/modals/lib/models/interfaces.ts +186 -186
  100. package/components/common/pages/backups/modals/restore/disks/Disks.vue +27 -27
  101. package/components/common/pages/backups/modals/restore/disks/tableView/lib/config/table.ts +117 -117
  102. package/components/common/pages/backups/modals/restore/name/Name.vue +166 -166
  103. package/components/common/pages/backups/modals/restore/name/lib/models/interfaces.ts +6 -6
  104. package/components/common/pages/backups/modals/restore/networks/Networks.vue +67 -67
  105. package/components/common/pages/backups/modals/restore/networks/table/Table.vue +214 -214
  106. package/components/common/pages/backups/modals/restore/types/lib/config/typeOptions.ts +25 -25
  107. package/components/common/pages/backups/tools/Tools.vue +75 -75
  108. package/components/common/pages/backups/tools/lib/config/tabs.ts +36 -36
  109. package/components/common/pages/home/lib/models/interfaces.ts +48 -48
  110. package/components/common/pages/home/widgets/hosts/Hosts.vue +27 -27
  111. package/components/common/pages/home/widgets/hosts/lib/config/items.ts +23 -23
  112. package/components/common/pages/home/widgets/vms/VmsOld.vue +35 -35
  113. package/components/common/pages/home/widgets/vms/lib/config/items.ts +19 -19
  114. package/components/common/pages/scheduledTasks/lib/utils/utils.ts +84 -84
  115. package/components/common/pages/tasks/table/Table.vue +8 -9
  116. package/components/common/readyToComplete/ReadyToComplete.vue +17 -17
  117. package/components/common/select/radio/RadioGroup.vue +137 -137
  118. package/components/common/spiceConsole/Drawer.vue +392 -392
  119. package/components/common/spiceConsole/SpiceConsole.vue +184 -184
  120. package/components/common/spiceConsole/lib/models/interfaces.ts +5 -5
  121. package/components/common/tools/Actions.vue +207 -207
  122. package/components/common/treeView/TreeView.vue +52 -52
  123. package/components/common/vm/actions/add/Add.vue +32 -5
  124. package/components/common/vm/actions/add/New.vue +8 -2
  125. package/components/common/vm/actions/add/Old.vue +8 -2
  126. package/components/common/vm/actions/add/folderTreeView/FolderTreeView.vue +72 -72
  127. package/components/common/vm/actions/add/folderTreeView/New.vue +40 -40
  128. package/components/common/vm/actions/add/lib/config/steps.ts +14 -3
  129. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/Cpu.vue +368 -368
  130. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/shares/Shares.vue +140 -140
  131. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/shares/lib/config/options.ts +28 -28
  132. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/location/Location.vue +154 -154
  133. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/location/new/table/Table.vue +99 -99
  134. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/macAddress/MacAddress.vue +119 -119
  135. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIo.vue +31 -31
  136. package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/Other.vue +16 -16
  137. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/numberDisplays/NumberDisplays.vue +53 -53
  138. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/delay/Delay.vue +32 -32
  139. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/firmware/Firmware.vue +60 -60
  140. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/Order.vue +174 -174
  141. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/keymap/Keymap.vue +32 -32
  142. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/password/Password.vue +103 -103
  143. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirection.vue +28 -28
  144. package/components/common/vm/actions/common/select/compatibility/Old.vue +107 -107
  145. package/components/common/vm/actions/common/select/computeResource/ComputeResource.vue +143 -143
  146. package/components/common/vm/actions/common/select/computeResource/New.vue +184 -184
  147. package/components/common/vm/actions/common/select/computeResource/treeView/TreeView.vue +131 -131
  148. package/components/common/vm/actions/common/select/createType/CreateType.vue +38 -38
  149. package/components/common/vm/actions/common/select/createType/lib/models/interfaces.ts +5 -5
  150. package/components/common/vm/actions/common/select/name/Name.vue +200 -197
  151. package/components/common/vm/actions/common/select/name/Old.vue +8 -1
  152. package/components/common/vm/actions/common/select/os/Old.vue +152 -152
  153. package/components/common/vm/actions/common/select/os/Os.vue +139 -139
  154. package/components/common/vm/actions/common/select/storage/new/New.vue +320 -320
  155. package/components/common/vm/actions/common/select/storage/new/lib/models/interfaces.ts +5 -5
  156. package/components/common/vm/actions/common/select/storage/new/lib/utils/utils.ts +21 -21
  157. package/components/common/vm/actions/common/select/template/old/Old.vue +50 -50
  158. package/components/common/vm/actions/editSettings/new/Skeleton.vue +88 -88
  159. package/components/common/vm/actions/register/Register.vue +267 -267
  160. package/components/common/vm/actions/register/lib/config/steps.ts +86 -86
  161. package/components/common/vmt/actions/add/Add.vue +1 -0
  162. package/components/common/wizards/datastore/add/steps/typeMode/lib/config/typeOptions.ts +43 -43
  163. package/components/common/wizards/network/add/Add.vue +9 -3
  164. package/components/common/wizards/network/add/AddNew.vue +291 -354
  165. package/components/common/wizards/network/add/AddOld.vue +0 -3
  166. package/components/common/wizards/network/add/lib/config/config.ts +1 -0
  167. package/components/common/wizards/network/add/lib/config/initialData.ts +9 -0
  168. package/components/common/wizards/network/add/lib/config/steps.ts +35 -5
  169. package/components/common/wizards/network/add/lib/models/interfaces.ts +12 -2
  170. package/components/common/wizards/network/add/steps/connectionSettings/ConnectionSettings.vue +83 -0
  171. package/components/common/wizards/network/add/steps/connectionSettings/ConnectionSettingsNew.vue +114 -0
  172. package/components/common/wizards/network/add/steps/{ConnectionSettings.vue → connectionSettings/ConnectionSettingsOld.vue} +11 -42
  173. package/components/common/wizards/network/add/steps/createStandardSwitch/CreateStandardSwitch.vue +99 -0
  174. package/components/common/wizards/network/add/steps/createStandardSwitch/CreateStandardSwitchNew.vue +80 -0
  175. package/components/common/wizards/network/add/steps/{CreateStandardSwitch.vue → createStandardSwitch/CreateStandardSwitchOld.vue} +24 -33
  176. package/components/common/wizards/network/add/steps/ipFourSettings/IpFourSettings.vue +143 -0
  177. package/components/common/wizards/network/add/steps/ipFourSettings/IpFourSettingsNew.vue +224 -0
  178. package/components/common/wizards/network/add/steps/{IpFourSettings.vue → ipFourSettings/IpFourSettingsOld.vue} +13 -101
  179. package/components/common/wizards/network/add/steps/portProperties/PortProperties.vue +214 -0
  180. package/components/common/wizards/network/add/steps/portProperties/PortPropertiesNew.vue +289 -0
  181. package/components/common/wizards/network/add/steps/{PortProperties.vue → portProperties/PortPropertiesOld.vue} +19 -166
  182. package/components/common/wizards/network/add/steps/readyComplete/ReadyComplete.vue +22 -0
  183. package/components/common/wizards/network/add/steps/readyComplete/ReadyCompleteNew.vue +30 -0
  184. package/components/common/wizards/network/add/steps/selectTargetDevice/SelectTargetDevice.vue +7 -2
  185. package/components/common/wizards/network/add/steps/selectTargetDevice/SelectTargetDeviceNew.vue +1 -3
  186. package/components/common/wizards/network/add/steps/selectTargetDevice/SelectTargetDeviceOld.vue +0 -2
  187. package/components/common/wizards/network/add/validations/common.ts +1 -2
  188. package/components/common/wizards/network/add/validations/connectionSettings.ts +14 -7
  189. package/components/common/wizards/network/add/validations/ipFourSettings.ts +24 -10
  190. package/components/common/wizards/network/add/validations/networkValidation.ts +1 -1
  191. package/components/common/wizards/network/add/validations/portProperties.ts +52 -20
  192. package/components/common/wizards/network/add/validations/targetDevice.ts +18 -4
  193. package/components/common/wizards/vm/migrate/select/network/Network.vue +103 -103
  194. package/composables/useAppVersion.ts +21 -21
  195. package/composables/useLocal.ts +6 -6
  196. package/composables/useLocalCommon.ts +39 -39
  197. package/package.json +2 -2
  198. package/plugins/date.ts +233 -233
  199. package/plugins/panelStates.ts +70 -70
  200. package/plugins/text.ts +59 -59
  201. package/public/spice-console/lib/images/bitmap.js +203 -203
  202. package/public/spice-console/network/spicechannel.js +440 -440
  203. package/public/spice-console/run.js +210 -210
  204. package/store/main/mutations.ts +7 -7
  205. package/store/main/state.ts +7 -7
  206. package/components/common/wizards/network/add/steps/PhysicalAdapter.vue +0 -13
  207. /package/components/common/adapterManager/ui/actions/{ActionsBar.vue → bar/BarOld.vue} +0 -0
  208. /package/components/common/adapterManager/ui/{NoSelectedAdapter.vue → noSelectedAdapter/NoSelectedAdapterOld.vue} +0 -0
  209. /package/components/common/wizards/network/add/steps/{ReadyComplete.vue → readyComplete/ReadyCompleteOld.vue} +0 -0
@@ -173,7 +173,7 @@
173
173
  { disabled: fields.tcp !== 'default' },
174
174
  ]"
175
175
  >
176
- <label v-if="isSphereProject">
176
+ <label v-if="props.isSphereProject">
177
177
  <input
178
178
  v-model="fields.services.vMotion"
179
179
  data-id="services-v-motion-checkbox"
@@ -194,7 +194,7 @@
194
194
  </div>
195
195
  <div :class="{ disabled: fields.tcp !== 'default' }">
196
196
  <template
197
- v-for="enabledService in portPropertiesEnabledServices"
197
+ v-for="enabledService in props.portPropertiesEnabledServices"
198
198
  :key="enabledService.modelValue"
199
199
  >
200
200
  <div class="horizontal-flex-container">
@@ -222,188 +222,41 @@
222
222
 
223
223
  <script setup lang="ts">
224
224
  import type { UI_I_ErrorFields } from '~/node_modules/bfg-uikit/components/ui/wizard/lib/models/interfaces'
225
- import type Wizard from '~/node_modules/bfg-uikit/components/ui/wizard/lib/utils/utils'
226
225
  import type {
227
226
  UI_I_ArbitraryObject,
228
227
  UI_I_Localization,
229
228
  } from '~/lib/models/interfaces'
230
- import type { UI_T_Project } from '~/lib/models/types'
231
229
  import type {
232
230
  UI_I_PortProperties,
233
231
  UI_I_TCPStack,
232
+ UI_I_PortPropertiesEnabledService,
234
233
  } from '~/components/common/wizards/network/add/lib/models/interfaces'
235
- import type { UI_T_TCP } from '~/components/common/wizards/network/add/lib/models/types'
236
- import {
237
- servicesInitial,
238
- vlanIdSelectData,
239
- portPropertiesEnabledServicesFunc,
240
- } from '~/components/common/wizards/network/add/lib/config/config'
241
- import {
242
- validateMtuPortPropertiesLocal,
243
- validateNetworkPortPropertiesLocal,
244
- validateVlanIdPortPropertiesLocal,
245
- } from '~/components/common/wizards/network/add/validations/validations'
234
+ import { vlanIdSelectData } from '~/components/common/wizards/network/add/lib/config/config'
246
235
 
247
- const props = withDefaults(
248
- defineProps<{
249
- portProperties: UI_I_PortProperties
250
- project: UI_T_Project
251
- alertMessages: string[]
252
- messagesFields: UI_I_ArbitraryObject<UI_I_ErrorFields>
253
- wizard: Wizard
254
- mtuFromSwitch?: number
255
- tcpStacks?: UI_I_TCPStack[]
256
- }>(),
257
- {
258
- mtuFromSwitch: 1500,
259
- tcpStacks: () => [],
260
- }
261
- )
236
+ const props = defineProps<{
237
+ modelValue: UI_I_PortProperties
238
+ messagesFields: UI_I_ArbitraryObject<UI_I_ErrorFields>
239
+ alertMessages: string[]
240
+ tcpStacks?: UI_I_TCPStack[]
241
+ isSphereProject: boolean
242
+ portPropertiesEnabledServices: UI_I_PortPropertiesEnabledService[]
243
+ }>()
262
244
 
263
245
  const emits = defineEmits<{
264
- (event: 'change-port-properties', portProperties: UI_I_PortProperties): void
265
- (event: 'change-gateway-flag', value: boolean): void
266
246
  (event: 'hide-alert', stepId: 3): void
247
+ (event: 'update:model-value', value: UI_I_PortProperties): void
267
248
  }>()
268
249
 
269
250
  const localization = computed<UI_I_Localization>(() => useLocal())
270
251
 
271
- const isSphereProject = computed<boolean>(() => props.project === 'sphere')
272
-
273
- const portPropertiesEnabledServices = computed(() =>
274
- portPropertiesEnabledServicesFunc(localization.value, isSphereProject.value)
275
- )
276
-
277
- const mtuCustom = ref<number>()
278
-
279
- const fields = ref<UI_I_PortProperties>({
280
- ...props.portProperties,
281
- mtu: {
282
- ...props.portProperties.mtu,
283
- size:
284
- !mtuCustom.value && props.portProperties.mtu.option !== '1'
285
- ? props.mtuFromSwitch
286
- : props.portProperties.mtu.size,
287
- },
288
- })
289
-
290
- const setEnabledServiceDefault = (
291
- tcp: UI_T_TCP,
292
- currentFields: UI_I_PortProperties
293
- ): void => {
294
- tcp === 'default' &&
295
- (fields.value = {
296
- ...currentFields,
297
- services: servicesInitial,
298
- })
299
- }
300
-
301
- const setEnabledServiceProvisioning = (
302
- tcp: UI_T_TCP,
303
- currentFields: UI_I_PortProperties,
304
- newFields?: UI_I_PortProperties
305
- ): void => {
306
- tcp === 'provisioning' &&
307
- (fields.value = {
308
- ...(newFields || currentFields),
309
- services: {
310
- ...servicesInitial,
311
- provisioning: true,
312
- },
313
- })
314
- }
315
-
316
- const setEnabledServiceVMotion = (
317
- tcp: UI_T_TCP,
318
- currentFields: UI_I_PortProperties,
319
- newFields?: UI_I_PortProperties
320
- ): void => {
321
- tcp === '' &&
322
- (fields.value = {
323
- ...(newFields || currentFields),
324
- services: {
325
- ...servicesInitial,
326
- vMotion: true,
327
- },
328
- })
329
- }
330
-
331
- let oldFields = useDeepCopy(fields.value)
332
-
333
- // Changing data and validate they
334
- watch(
335
- fields,
336
- (newFields: UI_I_PortProperties) => {
337
- if (newFields.tcp && newFields.tcp !== oldFields.tcp) {
338
- emits('change-gateway-flag', false)
339
- setEnabledServiceDefault(newFields.tcp, fields.value)
340
- setEnabledServiceProvisioning(newFields.tcp, fields.value, newFields)
341
- setEnabledServiceVMotion(newFields.tcp, fields.value, newFields)
342
- }
343
-
344
- oldFields.networkLabel !== newFields.networkLabel &&
345
- validateNetworkPortPropertiesLocal(
346
- localization.value,
347
- newFields,
348
- props.wizard
349
- )
350
-
351
- oldFields.vlanId !== newFields.vlanId &&
352
- validateVlanIdPortPropertiesLocal(
353
- localization.value,
354
- newFields,
355
- props.wizard
356
- )
357
-
358
- oldFields.mtu.size !== newFields.mtu.size &&
359
- validateMtuPortPropertiesLocal(
360
- localization.value,
361
- newFields,
362
- props.wizard
363
- )
364
-
365
- oldFields = useDeepCopy(newFields)
366
-
367
- emits('change-port-properties', newFields)
368
- },
369
- { deep: true, immediate: true }
370
- )
371
-
372
- watch(
373
- () => fields.value.mtu,
374
- (newMtu: { size: number; option: string }) => {
375
- if (newMtu.option === '0') {
376
- mtuCustom.value = props.mtuFromSwitch
377
- fields.value.mtu.size = props.mtuFromSwitch
378
- return
379
- }
380
- mtuCustom.value = newMtu.size
252
+ const fields = computed({
253
+ get(): UI_I_PortProperties {
254
+ return props.modelValue
381
255
  },
382
- { deep: true, immediate: true }
383
- )
384
-
385
- // Enabled services variant selection
386
- watch(
387
- () => fields.value.tcp,
388
- (newTcp: UI_T_TCP, oldTcp: UI_T_TCP) => {
389
- if (newTcp !== oldTcp) {
390
- setEnabledServiceDefault(newTcp, fields.value)
391
- setEnabledServiceProvisioning(newTcp, fields.value)
392
- setEnabledServiceVMotion(newTcp, fields.value)
393
- }
394
- emits('change-port-properties', fields.value)
395
- }
396
- )
397
-
398
- watch(
399
- () => props.tcpStacks,
400
- (newValue: UI_I_TCPStack[]) => {
401
- if (fields.value.tcp === '') {
402
- fields.value.tcp = newValue?.[0]?.id || ''
403
- }
256
+ set(newValue: UI_I_PortProperties) {
257
+ emits('update:model-value', newValue)
404
258
  },
405
- { deep: true, immediate: true }
406
- )
259
+ })
407
260
 
408
261
  const onHideAlert = (): void => {
409
262
  emits('hide-alert', 3)
@@ -0,0 +1,22 @@
1
+ <template>
2
+ <common-wizards-network-add-steps-ready-complete-new
3
+ v-if="isNewView"
4
+ :ready-complete-fields="props.readyCompleteFields"
5
+ />
6
+ <common-wizards-network-add-steps-ready-complete-old
7
+ v-else
8
+ :ready-complete-fields="props.readyCompleteFields"
9
+ />
10
+ </template>
11
+
12
+ <script setup lang="ts">
13
+ import type { UI_I_ReadyCompleteFields } from '~/components/common/wizards/network/add/lib/models/interfaces'
14
+
15
+ const props = defineProps<{
16
+ readyCompleteFields: UI_I_ReadyCompleteFields[]
17
+ }>()
18
+
19
+ const { $store }: any = useNuxtApp()
20
+
21
+ const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
22
+ </script>
@@ -0,0 +1,30 @@
1
+ <template>
2
+ <div class="content mb-4 mt-4">
3
+ <template
4
+ v-for="readyCompleteField in props.readyCompleteFields"
5
+ :key="readyCompleteField.id"
6
+ >
7
+ <common-diagram-main-modals-view-settings-view-settings
8
+ :view-settings-field="readyCompleteField"
9
+ :is-labels-with-dots="true"
10
+ :is-ready-complete="true"
11
+ />
12
+ </template>
13
+ </div>
14
+ </template>
15
+
16
+ <script setup lang="ts">
17
+ import type { UI_I_ReadyCompleteFields } from '~/components/common/wizards/network/add/lib/models/interfaces'
18
+
19
+ const props = defineProps<{
20
+ readyCompleteFields: UI_I_ReadyCompleteFields[]
21
+ }>()
22
+ </script>
23
+
24
+ <style scopped lang="scss">
25
+ .content {
26
+ :deep(.settings-table) {
27
+ background: red !important;
28
+ }
29
+ }
30
+ </style>
@@ -2,7 +2,6 @@
2
2
  <common-wizards-network-add-steps-select-target-device-new
3
3
  v-if="isNewView"
4
4
  v-model:fields="fields"
5
- :wizard="props.wizard"
6
5
  :connection-type="props.connectionType"
7
6
  :messages-fields="props.messagesFields"
8
7
  :is-connection-type-first-two="isConnectionTypeFirstTwo"
@@ -14,7 +13,6 @@
14
13
  <common-wizards-network-add-steps-select-target-device-old
15
14
  v-else
16
15
  v-model:fields="fields"
17
- :wizard="props.wizard"
18
16
  :connection-type="props.connectionType"
19
17
  :messages-fields="props.messagesFields"
20
18
  :is-connection-type-first-two="isConnectionTypeFirstTwo"
@@ -142,6 +140,13 @@ watch(
142
140
  UI_E_ValidationFields.TARGET_DEVICE_STANDARD_SWITCH
143
141
  )
144
142
 
143
+ newFields.switch &&
144
+ !prevValue.switch &&
145
+ props.wizard.removeValidationLocal(
146
+ 1,
147
+ UI_E_ValidationFields.TARGET_DEVICE_SWITCH
148
+ )
149
+
145
150
  if (newFields.selected !== prevValue.selected) {
146
151
  props.wizard.removeValidationLocal(
147
152
  1,
@@ -219,7 +219,6 @@
219
219
 
220
220
  <script setup lang="ts">
221
221
  import type { UI_I_ErrorFields } from '~/node_modules/bfg-uikit/components/ui/wizard/lib/models/interfaces'
222
- import type Wizard from '~/node_modules/bfg-uikit/components/ui/wizard/lib/utils/utils'
223
222
  import type { UI_I_Dropdown } from '~/node_modules/bfg-uikit/components/ui/select/lib/models/interfaces'
224
223
  import type {
225
224
  UI_I_ArbitraryObject,
@@ -234,7 +233,6 @@ const props = defineProps<{
234
233
  fields: UI_I_TargetDevice
235
234
  connectionType: string
236
235
  messagesFields: UI_I_ArbitraryObject<UI_I_ErrorFields>
237
- wizard: Wizard
238
236
  isConnectionTypeFirstTwo: boolean
239
237
  standardSwitchesInitial: UI_I_Switch[]
240
238
  selectedSwitchId: string
@@ -306,10 +304,10 @@ watch(
306
304
 
307
305
  .col {
308
306
  display: flex;
309
- align-items: center;
310
307
  column-gap: 16px;
311
308
 
312
309
  &-left {
310
+ padding-top: 8px;
313
311
  width: calc((100% - 8px) / 3);
314
312
  }
315
313
 
@@ -263,7 +263,6 @@
263
263
 
264
264
  <script setup lang="ts">
265
265
  import type { UI_I_ErrorFields } from '~/node_modules/bfg-uikit/components/ui/wizard/lib/models/interfaces'
266
- import type Wizard from '~/node_modules/bfg-uikit/components/ui/wizard/lib/utils/utils'
267
266
  import type {
268
267
  UI_I_ArbitraryObject,
269
268
  UI_I_Localization,
@@ -274,7 +273,6 @@ import type {
274
273
 
275
274
  const props = defineProps<{
276
275
  fields: UI_I_TargetDevice
277
- wizard: Wizard
278
276
  connectionType: string
279
277
  messagesFields: UI_I_ArbitraryObject<UI_I_ErrorFields>
280
278
  alertMessages: string[]
@@ -18,9 +18,8 @@ export const checkIfValidIP = (str: string): boolean => {
18
18
  export const checkVlanId = (vlanId: string): boolean =>
19
19
  vlanId !== 'None (0)' &&
20
20
  vlanId !== 'All (4095)' &&
21
- (isIntegerNumberInRange(vlanId, 0, 4095) || vlanId === '')
21
+ (isIntegerNumberInRange(vlanId, 0, 4095) || vlanId.trim() === '')
22
22
 
23
23
  export const checkMtu = (mtu: number): boolean => {
24
24
  return !!(mtu === 0 ? '0' : mtu) && isIntegerNumberInRange(mtu, 1280, 65535)
25
25
  }
26
-
@@ -13,12 +13,16 @@ export const validateVlanIdConnectionSettingsLocal = (
13
13
  data: UI_I_ConnectionSettings,
14
14
  wizard: Wizard
15
15
  ): void => {
16
+ const emptyValue: boolean = data.vlanId.trim() === ''
17
+
16
18
  wizard.validateFieldLocal(
17
19
  5,
18
20
  UI_E_ValidationFields.CONNECTION_SETTINGS_VLAN,
19
- checkVlanId(data.vlanId),
20
- localization.common.vlanIdInvalidMessage,
21
- localization.common.vlanIdInvalidMessage
21
+ emptyValue || checkVlanId(data.vlanId),
22
+ emptyValue
23
+ ? localization.common.fieldRequired
24
+ : localization.common.vlanIdInvalidMessage,
25
+ ''
22
26
  )
23
27
  }
24
28
 
@@ -31,8 +35,8 @@ export const validateNetworkConnectionSettingsLocal = (
31
35
  5,
32
36
  UI_E_ValidationFields.CONNECTION_SETTINGS_NETWORK,
33
37
  data.networkLabel === '',
34
- localization.common.networkLabelInvalidMessage,
35
- localization.common.networkLabelInvalidMessage
38
+ localization.common.fieldRequired,
39
+ ''
36
40
  )
37
41
  }
38
42
 
@@ -43,13 +47,16 @@ export const checkConnectionSettingsSync = (
43
47
  value: UI_I_WizardStep[]
44
48
  ): UI_I_ValidationReturn => {
45
49
  let stepHasError = false
50
+ const emptyValue: boolean = data.vlanId.trim() === ''
46
51
 
47
- if (checkVlanId(data.vlanId)) {
52
+ if (emptyValue || checkVlanId(data.vlanId)) {
48
53
  stepHasError = wizard.setValidation(
49
54
  5,
50
55
  UI_E_ValidationFields.CONNECTION_SETTINGS_VLAN,
51
56
  {
52
- fieldMessage: localization.common.vlanIdInvalidMessage,
57
+ fieldMessage: emptyValue
58
+ ? localization.common.fieldRequired
59
+ : localization.common.vlanIdInvalidMessage,
53
60
  alertMessage: localization.common.vlanIdInvalidMessage,
54
61
  }
55
62
  )
@@ -13,12 +13,17 @@ export const validateAddressIpFourSettingsLocal = (
13
13
  data: UI_I_IpFourSettings,
14
14
  wizard: Wizard
15
15
  ): void => {
16
+ const emptyValue: boolean = data.static.ipFourAddress.trim() === ''
17
+
16
18
  wizard.validateFieldLocal(
17
19
  4,
18
20
  UI_E_ValidationFields.IPV_SETTINGS_IPV,
19
- [!data.static.ipFourAddress, !checkIfValidIP(data.static.ipFourAddress)],
20
- [localization.common.ipFourAddressEmpty, localization.common.ipFourAddressInvalid],
21
- [localization.common.ipFourAddressEmpty, localization.common.ipFourAddressInvalid]
21
+ [emptyValue, !checkIfValidIP(data.static.ipFourAddress)],
22
+ [
23
+ localization.common.fieldRequired,
24
+ localization.common.ipFourAddressInvalid,
25
+ ],
26
+ ['', '']
22
27
  )
23
28
  }
24
29
 
@@ -27,12 +32,14 @@ export const validateMaskIpFourSettingsLocal = (
27
32
  data: UI_I_IpFourSettings,
28
33
  wizard: Wizard
29
34
  ): void => {
35
+ const emptyValue: boolean = data.static.subnetMask.trim() === ''
36
+
30
37
  wizard.validateFieldLocal(
31
38
  4,
32
39
  UI_E_ValidationFields.IPV_SETTINGS_MASK,
33
- [!data.static.subnetMask, !checkIfValidIP(data.static.subnetMask)],
34
- [localization.common.subnetMaskEmpty, localization.common.subnetMaskInvalid],
35
- [localization.common.subnetMaskEmpty, localization.common.subnetMaskInvalid]
40
+ [emptyValue, !checkIfValidIP(data.static.subnetMask)],
41
+ [localization.common.fieldRequired, localization.common.subnetMaskInvalid],
42
+ ['', '']
36
43
  )
37
44
  }
38
45
 
@@ -41,16 +48,23 @@ export const validateGatewayIpFourSettingsLocal = (
41
48
  data: UI_I_IpFourSettings,
42
49
  wizard: Wizard
43
50
  ): void => {
51
+ const emptyValue: boolean =
52
+ data.static.defaultGateway.override &&
53
+ data.static.defaultGateway.value.trim() === ''
54
+
44
55
  wizard.validateFieldLocal(
45
56
  4,
46
57
  UI_E_ValidationFields.IPV_SETTINGS_GATEWAY,
47
58
  [
48
- data.static.defaultGateway.override && !data.static.defaultGateway.value,
59
+ emptyValue,
49
60
  data.static.defaultGateway.override &&
50
61
  !checkIfValidIP(data.static.defaultGateway.value),
51
62
  ],
52
- [localization.common.defaultGatewayEmpty, localization.common.defaultGatewayInvalid],
53
- [localization.common.defaultGatewayEmpty, localization.common.defaultGatewayInvalid]
63
+ [
64
+ localization.common.fieldRequired,
65
+ localization.common.defaultGatewayInvalid,
66
+ ],
67
+ ['', '']
54
68
  )
55
69
  }
56
70
 
@@ -174,7 +188,7 @@ export const checkIpFourSettingsSync = (
174
188
  value
175
189
  )
176
190
  }
177
-
191
+
178
192
  return {
179
193
  newValue: value,
180
194
  stepHasError,
@@ -63,7 +63,7 @@ export const checkNetworkAsync = async (
63
63
 
64
64
  if (!labelValidation.isValid) {
65
65
  stepHasError = wizard.setValidation(stepId, fieldName, {
66
- fieldMessage: labelValidation.message,
66
+ fieldMessage: localization.common.fieldRequired,
67
67
  alertMessage: labelValidation.message,
68
68
  })
69
69
  } else if (wizard.hasMessage(stepId, fieldName)) {
@@ -1,5 +1,8 @@
1
1
  import type Wizard from '~/node_modules/bfg-uikit/components/ui/wizard/lib/utils/utils'
2
- import type {UI_I_ValidationReturn, UI_I_WizardStep} from '~/node_modules/bfg-uikit/components/ui/wizard/lib/models/interfaces'
2
+ import type {
3
+ UI_I_ValidationReturn,
4
+ UI_I_WizardStep,
5
+ } from '~/node_modules/bfg-uikit/components/ui/wizard/lib/models/interfaces'
3
6
  import type { UI_I_PortProperties } from '~/components/common/wizards/network/add/lib/models/interfaces'
4
7
  import { UI_E_ValidationFields } from '~/components/common/wizards/network/add/lib/models/enums'
5
8
  import type { UI_I_Localization } from '~/lib/models/interfaces'
@@ -17,8 +20,8 @@ export const validateNetworkPortPropertiesLocal = (
17
20
  3,
18
21
  UI_E_ValidationFields.PORT_PROPERTIES_NETWORK,
19
22
  data.networkLabel === '',
20
- localization.common.networkLabelInvalidMessage,
21
- localization.common.networkLabelInvalidMessage
23
+ localization.common.fieldRequired,
24
+ ''
22
25
  )
23
26
  }
24
27
 
@@ -27,12 +30,15 @@ export const validateVlanIdPortPropertiesLocal = (
27
30
  data: UI_I_PortProperties,
28
31
  wizard: Wizard
29
32
  ): void => {
33
+ const emptyValue: boolean = data.vlanId === ''
30
34
  wizard.validateFieldLocal(
31
35
  3,
32
36
  UI_E_ValidationFields.PORT_PROPERTIES_VLAN,
33
37
  checkVlanId(data.vlanId),
34
- localization.common.vlanIdInvalidMessage,
35
- localization.common.vlanIdInvalidMessage
38
+ emptyValue
39
+ ? localization.common.fieldRequired
40
+ : localization.common.vlanIdInvalidMessage,
41
+ ''
36
42
  )
37
43
  }
38
44
 
@@ -41,12 +47,15 @@ export const validateMtuPortPropertiesLocal = (
41
47
  data: UI_I_PortProperties,
42
48
  wizard: Wizard
43
49
  ): void => {
50
+ const emptyValue: boolean = data.mtu.option === '1' && data.mtu.size === ''
44
51
  wizard.validateFieldLocal(
45
52
  3,
46
53
  UI_E_ValidationFields.PORT_PROPERTIES_MTU,
47
- data.mtu.option === '1' && checkMtu(data.mtu.size),
48
- localization.common.mtuInvalidMessage,
49
- localization.common.mtuInvalidMessage
54
+ data.mtu.option === '1' && (checkMtu(data.mtu.size) || emptyValue),
55
+ emptyValue
56
+ ? localization.common.fieldRequired
57
+ : localization.common.mtuInvalidMessage,
58
+ ''
50
59
  )
51
60
  }
52
61
 
@@ -58,22 +67,45 @@ export const checkPortPropertiesSync = (
58
67
  ): UI_I_ValidationReturn => {
59
68
  let stepHasError = false
60
69
 
61
- if (checkVlanId(data.vlanId)) {
62
- stepHasError = wizard.setValidation(3, UI_E_ValidationFields.PORT_PROPERTIES_VLAN, {
63
- fieldMessage: localization.common.vlanIdInvalidMessage,
64
- alertMessage: localization.common.vlanIdInvalidMessage,
65
- })
70
+ const emptyMtu: boolean = data.mtu.option === '1' && data.mtu.size === ''
71
+ const emptyVlanId: boolean = data.vlanId === ''
72
+
73
+ if (checkVlanId(data.vlanId) || emptyVlanId) {
74
+ stepHasError = wizard.setValidation(
75
+ 3,
76
+ UI_E_ValidationFields.PORT_PROPERTIES_VLAN,
77
+ {
78
+ fieldMessage: emptyVlanId
79
+ ? localization.common.fieldRequired
80
+ : localization.common.vlanIdInvalidMessage,
81
+ alertMessage: localization.common.vlanIdInvalidMessage,
82
+ }
83
+ )
66
84
  } else if (wizard.hasMessage(3, UI_E_ValidationFields.PORT_PROPERTIES_VLAN)) {
67
- value = wizard.removeValidation(3, UI_E_ValidationFields.PORT_PROPERTIES_VLAN, value)
85
+ value = wizard.removeValidation(
86
+ 3,
87
+ UI_E_ValidationFields.PORT_PROPERTIES_VLAN,
88
+ value
89
+ )
68
90
  }
69
91
 
70
- if (data.mtu.option === '1' && checkMtu(data.mtu.size)) {
71
- stepHasError = wizard.setValidation(3, UI_E_ValidationFields.PORT_PROPERTIES_MTU, {
72
- fieldMessage: localization.common.mtuInvalidMessage,
73
- alertMessage: localization.common.mtuInvalidMessage,
74
- })
92
+ if (data.mtu.option === '1' && (checkMtu(data.mtu.size) || emptyMtu)) {
93
+ stepHasError = wizard.setValidation(
94
+ 3,
95
+ UI_E_ValidationFields.PORT_PROPERTIES_MTU,
96
+ {
97
+ fieldMessage: emptyMtu
98
+ ? localization.common.fieldRequired
99
+ : localization.common.mtuInvalidMessage,
100
+ alertMessage: localization.common.mtuInvalidMessage,
101
+ }
102
+ )
75
103
  } else if (wizard.hasMessage(3, UI_E_ValidationFields.PORT_PROPERTIES_MTU)) {
76
- value = wizard.removeValidation(3, UI_E_ValidationFields.PORT_PROPERTIES_MTU, value)
104
+ value = wizard.removeValidation(
105
+ 3,
106
+ UI_E_ValidationFields.PORT_PROPERTIES_MTU,
107
+ value
108
+ )
77
109
  }
78
110
 
79
111
  return {
@@ -13,11 +13,16 @@ export const validateMtuTargetDeviceLocal = (
13
13
  data: UI_I_TargetDevice,
14
14
  wizard: Wizard
15
15
  ): void => {
16
+ const emptyValue: boolean =
17
+ data.mtu === undefined || data.mtu.toString().trim() === ''
18
+
16
19
  wizard.validateFieldLocal(
17
20
  1,
18
21
  UI_E_ValidationFields.TARGET_DEVICE_MTU,
19
22
  data.selected === '3' && checkMtu(data.mtu || 0),
20
- localization.common.mtuInvalidMessage,
23
+ emptyValue
24
+ ? localization.common.fieldRequired
25
+ : localization.common.mtuInvalidMessage,
21
26
  ''
22
27
  )
23
28
  }
@@ -37,7 +42,9 @@ export const checkTargetDeviceSync = (
37
42
  UI_E_ValidationFields.TARGET_DEVICE_NETWORK,
38
43
  {
39
44
  fieldMessage: localization.common.networkInvalidMessage,
40
- alertMessage: isNewView ? '' : localization.common.networkInvalidMessage,
45
+ alertMessage: isNewView
46
+ ? ''
47
+ : localization.common.networkInvalidMessage,
41
48
  }
42
49
  )
43
50
  } else if (
@@ -56,7 +63,9 @@ export const checkTargetDeviceSync = (
56
63
  UI_E_ValidationFields.TARGET_DEVICE_STANDARD_SWITCH,
57
64
  {
58
65
  fieldMessage: localization.common.standardSwitchInvalidMessage,
59
- alertMessage: isNewView ? '' : localization.common.standardSwitchInvalidMessage,
66
+ alertMessage: isNewView
67
+ ? ''
68
+ : localization.common.standardSwitchInvalidMessage,
60
69
  }
61
70
  )
62
71
  } else if (
@@ -87,11 +96,16 @@ export const checkTargetDeviceSync = (
87
96
  }
88
97
 
89
98
  if (data.selected === '3' && checkMtu(data.mtu || 0)) {
99
+ const emptyValue: boolean =
100
+ data.mtu === undefined || data.mtu.toString().trim() === ''
101
+
90
102
  stepHasError = wizard.setValidation(
91
103
  1,
92
104
  UI_E_ValidationFields.TARGET_DEVICE_MTU,
93
105
  {
94
- fieldMessage: localization.common.mtuInvalidMessage,
106
+ fieldMessage: emptyValue
107
+ ? localization.common.fieldRequired
108
+ : localization.common.mtuInvalidMessage,
95
109
  alertMessage: localization.common.mtuInvalidMessage,
96
110
  }
97
111
  )