bfg-common 1.4.874 → 1.4.875

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 (182) hide show
  1. package/assets/img/icons/icons-sprite-dark-3.svg +227 -227
  2. package/assets/img/icons/icons-sprite-dark-5.svg +488 -488
  3. package/assets/img/icons/icons-sprite-light-3.svg +227 -227
  4. package/assets/img/icons/icons-sprite-light-5.svg +488 -488
  5. package/assets/scss/common/normalize.scss +361 -361
  6. package/components/atoms/TheIcon3.vue +50 -50
  7. package/components/atoms/autocomplete/Autocomplete.vue +301 -301
  8. package/components/atoms/collapse/CollapseNav.vue +164 -164
  9. package/components/atoms/dropdown/dropdown/Dropdown.vue +168 -168
  10. package/components/atoms/modal/bySteps/BySteps.vue +253 -253
  11. package/components/atoms/stack/StackBlock.vue +185 -185
  12. package/components/atoms/table/dataGrid/DataGrid.vue +1704 -1704
  13. package/components/atoms/table/dataGrid/DataGridColumnSwitch.vue +222 -222
  14. package/components/atoms/table/dataGrid/lib/config/settingsTable.ts +94 -94
  15. package/components/atoms/table/dataGrid/lib/utils/export.ts +16 -16
  16. package/components/common/browse/BrowseNew.vue +237 -237
  17. package/components/common/browse/BrowseOld.vue +217 -217
  18. package/components/common/browse/blocks/contents/Files.vue +37 -37
  19. package/components/common/browse/blocks/contents/FilesOld.vue +72 -72
  20. package/components/common/browse/blocks/contents/filesNew/FilesNew.vue +96 -96
  21. package/components/common/browse/blocks/contents/filesNew/Skeleton.vue +18 -18
  22. package/components/common/browse/blocks/lib/models/types.ts +1 -1
  23. package/components/common/browse/lib/models/interfaces.ts +5 -5
  24. package/components/common/context/Context.vue +111 -111
  25. package/components/common/context/lib/models/interfaces.ts +30 -30
  26. package/components/common/context/recursion/Recursion.vue +87 -87
  27. package/components/common/context/recursion/RecursionOld.vue +227 -227
  28. package/components/common/details/DetailsItem.vue +109 -109
  29. package/components/common/diagramMain/Header.vue +211 -211
  30. package/components/common/diagramMain/adapter/AdapterItems.vue +61 -61
  31. package/components/common/diagramMain/lib/config/initial.ts +50 -50
  32. package/components/common/diagramMain/lib/models/types.ts +21 -21
  33. package/components/common/diagramMain/lib/utils/utils.ts +331 -331
  34. package/components/common/diagramMain/modals/ManagePhysicalAdaptersModal.vue +330 -330
  35. package/components/common/diagramMain/modals/editSettings/ConfirmTeamingSettingsModal.vue +40 -40
  36. package/components/common/diagramMain/modals/editSettings/EditSettings.vue +497 -497
  37. package/components/common/diagramMain/modals/editSettings/EditSettingsModal.vue +812 -812
  38. package/components/common/diagramMain/modals/editSettings/tabs/NetworkProperties.vue +214 -214
  39. package/components/common/diagramMain/modals/editSettings/tabs/Security.vue +189 -189
  40. package/components/common/diagramMain/modals/editSettings/tabs/SwitchProperties.vue +163 -163
  41. package/components/common/diagramMain/modals/editSettings/tabs/TeamingFailover.vue +175 -175
  42. package/components/common/diagramMain/modals/editSettings/tabs/port/IpvFourSettings.vue +346 -346
  43. package/components/common/diagramMain/modals/editSettings/tabs/port/PortProperties.vue +205 -205
  44. package/components/common/diagramMain/modals/lib/config/diagramConfig.ts +23 -23
  45. package/components/common/diagramMain/modals/lib/config/initial.ts +180 -180
  46. package/components/common/diagramMain/modals/lib/config/vmKernelAdapter.ts +90 -90
  47. package/components/common/diagramMain/modals/lib/mappers/mappers.ts +87 -87
  48. package/components/common/diagramMain/modals/lib/utils/index.ts +24 -24
  49. package/components/common/diagramMain/modals/migrateVmkernelAdapter/lib/config/steps.ts +114 -114
  50. package/components/common/diagramMain/modals/migrateVmkernelAdapter/steps/ConnectionSettings.vue +169 -169
  51. package/components/common/diagramMain/modals/migrateVmkernelAdapter/steps/SelectVmkernelAdapter.vue +159 -159
  52. package/components/common/diagramMain/modals/migrateVmkernelAdapter/validations/common.ts +14 -14
  53. package/components/common/diagramMain/modals/migrateVmkernelAdapter/validations/connectionSettings.ts +137 -137
  54. package/components/common/diagramMain/modals/migrateVmkernelAdapter/validations/selectVmkernelAdapter.ts +52 -52
  55. package/components/common/diagramMain/modals/migrateVmkernelAdapter/validations/validations.ts +19 -19
  56. package/components/common/diagramMain/port/Ports.vue +47 -47
  57. package/components/common/graph/Graph.vue +104 -104
  58. package/components/common/layout/theHeader/helpMenu/About.vue +82 -82
  59. package/components/common/layout/theHeader/helpMenu/aboutNew/AboutNew.vue +103 -103
  60. package/components/common/modals/unsavedChanges/UnsavedChanges.vue +56 -56
  61. package/components/common/monitor/overview/OverviewNew.vue +142 -142
  62. package/components/common/monitor/overview/OverviewOld.vue +139 -139
  63. package/components/common/monitor/overview/filters/Filters.vue +166 -166
  64. package/components/common/monitor/overview/filters/FiltersNew.vue +172 -172
  65. package/components/common/monitor/overview/filters/FiltersOld.vue +151 -151
  66. package/components/common/monitor/overview/filters/customIntervalModal/CustomIntervalModal.vue +175 -175
  67. package/components/common/monitor/overview/filters/customIntervalModal/CustomIntervalModalOld.vue +161 -161
  68. package/components/common/pages/home/StatusContent.vue +49 -49
  69. package/components/common/pages/home/headline/Headline.vue +45 -45
  70. package/components/common/pages/home/headline/HeadlineOld.vue +42 -42
  71. package/components/common/pages/home/lib/models/interfaces.ts +48 -48
  72. package/components/common/pages/home/widgets/Widgets.vue +49 -49
  73. package/components/common/pages/home/widgets/WidgetsNew.vue +86 -86
  74. package/components/common/pages/home/widgets/WidgetsOld.vue +34 -34
  75. package/components/common/pages/home/widgets/hosts/Hosts.vue +27 -27
  76. package/components/common/pages/home/widgets/hosts/lib/config/items.ts +23 -23
  77. package/components/common/pages/home/widgets/vms/Vms.vue +26 -26
  78. package/components/common/pages/home/widgets/vms/VmsOld.vue +35 -35
  79. package/components/common/pages/home/widgets/vms/lib/config/items.ts +19 -19
  80. package/components/common/pages/packages/Packages.vue +208 -208
  81. package/components/common/recursionTree/RecursionTree.vue +223 -223
  82. package/components/common/select/button/ButtonDropdown.vue +108 -108
  83. package/components/common/spiceConsole/Drawer.vue +370 -370
  84. package/components/common/spiceConsole/lib/models/interfaces.ts +5 -5
  85. package/components/common/split/horizontal/HorizontalNew.vue +376 -376
  86. package/components/common/split/horizontal/HorizontalOld.vue +337 -337
  87. package/components/common/split/vertical/Vertical.vue +160 -160
  88. package/components/common/vm/actions/add/Add.vue +622 -622
  89. package/components/common/vm/actions/clone/Clone.vue +639 -639
  90. package/components/common/vm/actions/clone/lib/config/steps.ts +129 -129
  91. package/components/common/vm/actions/clone/toTemplate/ToTemplate.vue +634 -634
  92. package/components/common/vm/actions/clone/toTemplate/lib/config/steps.ts +116 -116
  93. package/components/common/vm/actions/common/customizeHardware/CustomizeHardware.vue +275 -275
  94. package/components/common/vm/actions/common/customizeHardware/CustomizeHardwareNew.vue +274 -274
  95. package/components/common/vm/actions/common/customizeHardware/CustomizeHardwareOld.vue +177 -177
  96. package/components/common/vm/actions/common/customizeHardware/virtualHardware/VirtualHardware.vue +698 -698
  97. package/components/common/vm/actions/common/customizeHardware/virtualHardware/VirtualHardwareNew.vue +410 -410
  98. package/components/common/vm/actions/common/customizeHardware/virtualHardware/VirtualHardwareOld.vue +319 -319
  99. package/components/common/vm/actions/common/customizeHardware/virtualHardware/browseView/BrowseView.vue +219 -219
  100. package/components/common/vm/actions/common/customizeHardware/virtualHardware/bus/Bus.vue +99 -99
  101. package/components/common/vm/actions/common/customizeHardware/virtualHardware/bus/BusNew.vue +117 -117
  102. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/CdDvdDrive.vue +232 -232
  103. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/CdDvdDriveNew.vue +164 -164
  104. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/CdDvdDriveOld.vue +168 -168
  105. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/Media.vue +25 -25
  106. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/MediaNew.vue +70 -70
  107. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/MediaOld.vue +50 -50
  108. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/Cpu.vue +338 -338
  109. package/components/common/vm/actions/common/customizeHardware/virtualHardware/limit/Limit.vue +220 -220
  110. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/NewHardDisk.vue +368 -368
  111. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/NewHardDiskNew.vue +232 -232
  112. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/NewHardDiskOld.vue +250 -250
  113. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/mode/ModeOld.vue +56 -56
  114. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/sharing/SharingNew.vue +44 -44
  115. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/NewNetworkNew.vue +124 -124
  116. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/location/LocationOld.vue +134 -134
  117. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/location/new/New.vue +63 -63
  118. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/location/new/table/lib/config/config.ts +95 -95
  119. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/macAddress/MacAddress.vue +119 -119
  120. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/macAddress/MacAddressNew.vue +69 -69
  121. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/macAddress/MacAddressOld.vue +83 -83
  122. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/NewPciDevice.vue +205 -205
  123. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/directPathIo/DirectPathIoNew.vue +66 -66
  124. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/directPathIo/DirectPathIoOld.vue +62 -62
  125. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIo.vue +31 -31
  126. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIoNew.vue +84 -84
  127. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIoOld.vue +76 -76
  128. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/Note.vue +15 -15
  129. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/NoteNew.vue +42 -42
  130. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/NoteOld.vue +30 -30
  131. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/nvidiaGrid/NvidiaGrid.vue +41 -41
  132. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/nvidiaGrid/NvidiaGridNew.vue +81 -81
  133. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/nvidiaGrid/NvidiaGridOld.vue +84 -84
  134. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newUsbController/NewUsbControllerNew.vue +56 -56
  135. package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/Other.vue +16 -16
  136. package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/OtherNew.vue +30 -30
  137. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/VideoCardNew.vue +104 -104
  138. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/VideoCardOld.vue +112 -112
  139. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/totalVideoMemory/TotalVideoMemoryNew.vue +54 -54
  140. package/components/common/vm/actions/common/customizeHardware/vmoptions/Vmoptions.vue +145 -145
  141. package/components/common/vm/actions/common/customizeHardware/vmoptions/VmoptionsNew.vue +102 -102
  142. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/BootOptionsNew.vue +75 -75
  143. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/delay/Delay.vue +26 -26
  144. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/firmware/Firmware.vue +57 -57
  145. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/firmware/FirmwareNew.vue +42 -42
  146. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/menu/MenuNew.vue +25 -25
  147. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/Order.vue +171 -171
  148. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/OrderNew.vue +50 -50
  149. package/components/common/vm/actions/common/customizeHardware/vmoptions/generalOptions/GeneralOptionsNew.vue +141 -141
  150. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/New.vue +140 -140
  151. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/copyPaste/CopyPasteNew.vue +30 -30
  152. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/fileTransfer/FileTransferNew.vue +30 -30
  153. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/folderSharing/FolderSharingNew.vue +30 -30
  154. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/keymap/Keymap.vue +32 -32
  155. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/keymap/KeymapNew.vue +39 -39
  156. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/password/Password.vue +103 -103
  157. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/password/PasswordNew.vue +102 -102
  158. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/password/PasswordOld.vue +94 -94
  159. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirection.vue +28 -28
  160. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirectionNew.vue +38 -38
  161. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirectionOld.vue +44 -44
  162. package/components/common/vm/actions/common/select/storage/Storage.vue +130 -130
  163. package/components/common/vm/actions/common/select/storage/StorageOld.vue +129 -129
  164. package/components/common/vm/actions/editSettings/new/Skeleton.vue +88 -88
  165. package/components/common/wizards/datastore/add/lib/config/steps.ts +138 -138
  166. package/components/common/wizards/vm/migrate/Migrate.vue +302 -302
  167. package/components/common/wizards/vm/migrate/lib/config/constructDataReady.ts +220 -220
  168. package/components/common/wizards/vm/migrate/select/network/Network.vue +103 -103
  169. package/components/common/wizards/vm/migrate/select/network/table/network/Network.vue +150 -150
  170. package/components/common/wizards/vm/migrate/select/network/table/network/lib/config/advancedTable.ts +91 -91
  171. package/components/common/wizards/vm/migrate/select/priority/Priority.vue +43 -43
  172. package/composables/productNameLocal.ts +30 -30
  173. package/composables/useAppVersion.ts +21 -21
  174. package/modules/setLastUpdateTime/index.ts +6 -6
  175. package/package.json +1 -1
  176. package/plugins/date.ts +233 -233
  177. package/plugins/recursion.ts +311 -311
  178. package/public/spice-console/lib/images/bitmap.js +203 -203
  179. package/public/spice-console/network/spicechannel.js +383 -383
  180. package/store/main/mutations.ts +7 -7
  181. package/store/main/state.ts +7 -7
  182. package/store/tasks/mappers/recentTasks.ts +64 -64
@@ -1,214 +1,214 @@
1
- <template>
2
- <div class="wizard-content__container">
3
- <div class="wizard-content">
4
- <atoms-alert
5
- v-if="isShowErrorMessage"
6
- status="alert-danger"
7
- :items="validationMessagesArray"
8
- test-id="network-properties-alert"
9
- @remove="onHideErrorMessageAlert"
10
- />
11
- <form id="network-properties-form">
12
- <div class="horizontal-flex-container">
13
- <label class="property-label-group" for="network-label">
14
- {{ localization.common.networkLabel }}
15
- </label>
16
- <div class="margin-left-property-value-group">
17
- <div class="property-value-group">
18
- <fieldset>
19
- <atoms-tooltip-error
20
- :has-error="!!props.errorMessages.networkLabel"
21
- >
22
- <template #elem>
23
- <input
24
- id="network-label"
25
- v-model="fieldsValues.networkLabel"
26
- data-id="network-label-input"
27
- name="network-label"
28
- type="text"
29
- :class="[
30
- 'tooltip-field',
31
- {
32
- 'danger-not-valid': props.errorMessages.networkLabel,
33
- },
34
- ]"
35
- @click.stop
36
- />
37
- </template>
38
- <template #content>
39
- {{ props.errorMessages.networkLabel }}
40
- </template>
41
- </atoms-tooltip-error>
42
- </fieldset>
43
- </div>
44
- </div>
45
- </div>
46
- <div class="horizontal-flex-container port-properties-vlanid-row">
47
- <label class="property-label-group">
48
- {{ localization.common.vlanId }}
49
- </label>
50
- <div class="margin-left-property-value-group">
51
- <div class="property-value-group">
52
- <fieldset>
53
- <div class="flex-align-center">
54
- <atoms-combobox
55
- v-model="fieldsValues.vlanId"
56
- :items="vlanIdSelectData"
57
- test-id="vlan-id-select-combobox"
58
- @click.stop
59
- @select="selectVlanId"
60
- />
61
- <div
62
- v-show="props.errorMessages.vlanId"
63
- class="flex-align-center"
64
- >
65
- <div class="tooltip">
66
- <atoms-the-icon
67
- width="24px"
68
- height="24px"
69
- class="is-error tooltip-trigger"
70
- name="info"
71
- />
72
- <div class="tooltip-top-left tooltip-content error">
73
- {{ props.errorMessages.vlanId }}
74
- </div>
75
- </div>
76
- </div>
77
- </div>
78
- </fieldset>
79
- </div>
80
- </div>
81
- </div>
82
- </form>
83
- </div>
84
- </div>
85
- </template>
86
-
87
- <script setup lang="ts">
88
- import type { UI_I_Localization } from '~/lib/models/interfaces'
89
- import type {
90
- UI_I_ModalsInitialData,
91
- UI_I_EditSettingsErrorMessage,
92
- UI_I_PropertiesFields,
93
- } from '~/components/common/diagramMain/lib/models/interfaces'
94
- import type { UI_T_PropertiesFieldName } from '~/components/common/diagramMain/lib/models/types'
95
- import { validationMessagesArrayFunc } from '~/components/common/diagramMain/modals/lib/utils'
96
- import { vlanIdSelectData } from '~/components/common/wizards/network/add/lib/config/config'
97
-
98
- // Props from up
99
- const props = withDefaults(
100
- defineProps<{
101
- isShowErrorMessageAlert: boolean
102
- initialData?: UI_I_ModalsInitialData
103
- errorMessages: UI_I_EditSettingsErrorMessage
104
- hasErrorMessages?: boolean
105
- networkAlreadyExists: boolean
106
- }>(),
107
- {
108
- initialData: () => ({}),
109
- }
110
- )
111
-
112
- const validationMessagesArray = computed(() =>
113
- validationMessagesArrayFunc(['networkLabel', 'vlanId'], props.errorMessages)
114
- )
115
-
116
- // UI_I_Localization
117
- const localization = computed<UI_I_Localization>(() => useLocal())
118
-
119
- // For showing component validation errors on the top of modal
120
- const isShowErrorMessage = computed<boolean>(
121
- () => props.isShowErrorMessageAlert && props.hasErrorMessages
122
- )
123
-
124
- const fieldsValues = ref<UI_I_PropertiesFields>(
125
- useDeepCopy({
126
- vlanId: props.initialData.vlanId || 'None (0)',
127
- networkLabel: props.initialData.networkLabel || 'Network',
128
- })
129
- )
130
-
131
- const selectVlanId = (id: string): void => {
132
- fieldsValues.value.vlanId = id
133
- }
134
-
135
- // Validation
136
- const emits = defineEmits<{
137
- (
138
- event: 'change-error-messages',
139
- errorMessage: string,
140
- fieldName: keyof UI_I_EditSettingsErrorMessage
141
- ): void
142
- (event: 'hide-error-message-alert'): void
143
- (
144
- event: 'change-edit-properties-data',
145
- propertiesData: UI_I_PropertiesFields
146
- ): void
147
- }>()
148
-
149
- const onHideErrorMessageAlert = () => emits('hide-error-message-alert')
150
-
151
- const onChangeData = (data: UI_I_PropertiesFields) =>
152
- emits('change-edit-properties-data', data)
153
-
154
- const changeErrorMessage = (
155
- errorMessage: string,
156
- fieldName: keyof UI_I_EditSettingsErrorMessage
157
- ) => emits('change-error-messages', errorMessage, fieldName)
158
-
159
- const messageTexts = (local: UI_I_Localization) => ({
160
- vlanId: local.common.vlanIdInvalidMessage,
161
- networkLabel: local.common.networkLabelInvalidMessage,
162
- })
163
-
164
- const isNumberInRange = (value: number | string, down: number, up: number) =>
165
- isNaN(Number(value)) || Number(value) < down || Number(value) > up
166
-
167
- const setMessageOnChangedField = (
168
- values: string | number,
169
- name: UI_T_PropertiesFieldName,
170
- text: string
171
- ) => {
172
- if (name === 'networkLabel' && !values) {
173
- changeErrorMessage(text, name)
174
- return
175
- } else if (name === 'networkLabel' && props.networkAlreadyExists) return
176
-
177
- if (
178
- name === 'vlanId' &&
179
- values !== 'None (0)' &&
180
- values !== 'All (4095)' &&
181
- (isNumberInRange(values, 0, 4095) || values === '')
182
- ) {
183
- changeErrorMessage(text, name)
184
- return
185
- }
186
- changeErrorMessage('', name)
187
- }
188
-
189
- watch(
190
- fieldsValues,
191
- (newValues: UI_I_PropertiesFields) => {
192
- setMessageOnChangedField(
193
- newValues.vlanId,
194
- 'vlanId',
195
- messageTexts(localization.value).vlanId
196
- )
197
- setMessageOnChangedField(
198
- newValues.networkLabel,
199
- 'networkLabel',
200
- messageTexts(localization.value).networkLabel
201
- )
202
- onChangeData(newValues)
203
- !props.hasErrorMessages && onHideErrorMessageAlert()
204
- },
205
- { deep: true }
206
- )
207
-
208
- onMounted(() => {
209
- onChangeData(fieldsValues.value)
210
- })
211
- onUnmounted(() => {
212
- onHideErrorMessageAlert()
213
- })
214
- </script>
1
+ <template>
2
+ <div class="wizard-content__container">
3
+ <div class="wizard-content">
4
+ <atoms-alert
5
+ v-if="isShowErrorMessage"
6
+ status="alert-danger"
7
+ :items="validationMessagesArray"
8
+ test-id="network-properties-alert"
9
+ @remove="onHideErrorMessageAlert"
10
+ />
11
+ <form id="network-properties-form">
12
+ <div class="horizontal-flex-container">
13
+ <label class="property-label-group" for="network-label">
14
+ {{ localization.common.networkLabel }}
15
+ </label>
16
+ <div class="margin-left-property-value-group">
17
+ <div class="property-value-group">
18
+ <fieldset>
19
+ <atoms-tooltip-error
20
+ :has-error="!!props.errorMessages.networkLabel"
21
+ >
22
+ <template #elem>
23
+ <input
24
+ id="network-label"
25
+ v-model="fieldsValues.networkLabel"
26
+ data-id="network-label-input"
27
+ name="network-label"
28
+ type="text"
29
+ :class="[
30
+ 'tooltip-field',
31
+ {
32
+ 'danger-not-valid': props.errorMessages.networkLabel,
33
+ },
34
+ ]"
35
+ @click.stop
36
+ />
37
+ </template>
38
+ <template #content>
39
+ {{ props.errorMessages.networkLabel }}
40
+ </template>
41
+ </atoms-tooltip-error>
42
+ </fieldset>
43
+ </div>
44
+ </div>
45
+ </div>
46
+ <div class="horizontal-flex-container port-properties-vlanid-row">
47
+ <label class="property-label-group">
48
+ {{ localization.common.vlanId }}
49
+ </label>
50
+ <div class="margin-left-property-value-group">
51
+ <div class="property-value-group">
52
+ <fieldset>
53
+ <div class="flex-align-center">
54
+ <atoms-combobox
55
+ v-model="fieldsValues.vlanId"
56
+ :items="vlanIdSelectData"
57
+ test-id="vlan-id-select-combobox"
58
+ @click.stop
59
+ @select="selectVlanId"
60
+ />
61
+ <div
62
+ v-show="props.errorMessages.vlanId"
63
+ class="flex-align-center"
64
+ >
65
+ <div class="tooltip">
66
+ <atoms-the-icon
67
+ width="24px"
68
+ height="24px"
69
+ class="is-error tooltip-trigger"
70
+ name="info"
71
+ />
72
+ <div class="tooltip-top-left tooltip-content error">
73
+ {{ props.errorMessages.vlanId }}
74
+ </div>
75
+ </div>
76
+ </div>
77
+ </div>
78
+ </fieldset>
79
+ </div>
80
+ </div>
81
+ </div>
82
+ </form>
83
+ </div>
84
+ </div>
85
+ </template>
86
+
87
+ <script setup lang="ts">
88
+ import type { UI_I_Localization } from '~/lib/models/interfaces'
89
+ import type {
90
+ UI_I_ModalsInitialData,
91
+ UI_I_EditSettingsErrorMessage,
92
+ UI_I_PropertiesFields,
93
+ } from '~/components/common/diagramMain/lib/models/interfaces'
94
+ import type { UI_T_PropertiesFieldName } from '~/components/common/diagramMain/lib/models/types'
95
+ import { validationMessagesArrayFunc } from '~/components/common/diagramMain/modals/lib/utils'
96
+ import { vlanIdSelectData } from '~/components/common/wizards/network/add/lib/config/config'
97
+
98
+ // Props from up
99
+ const props = withDefaults(
100
+ defineProps<{
101
+ isShowErrorMessageAlert: boolean
102
+ initialData?: UI_I_ModalsInitialData
103
+ errorMessages: UI_I_EditSettingsErrorMessage
104
+ hasErrorMessages?: boolean
105
+ networkAlreadyExists: boolean
106
+ }>(),
107
+ {
108
+ initialData: () => ({}),
109
+ }
110
+ )
111
+
112
+ const validationMessagesArray = computed(() =>
113
+ validationMessagesArrayFunc(['networkLabel', 'vlanId'], props.errorMessages)
114
+ )
115
+
116
+ // UI_I_Localization
117
+ const localization = computed<UI_I_Localization>(() => useLocal())
118
+
119
+ // For showing component validation errors on the top of modal
120
+ const isShowErrorMessage = computed<boolean>(
121
+ () => props.isShowErrorMessageAlert && props.hasErrorMessages
122
+ )
123
+
124
+ const fieldsValues = ref<UI_I_PropertiesFields>(
125
+ useDeepCopy({
126
+ vlanId: props.initialData.vlanId || 'None (0)',
127
+ networkLabel: props.initialData.networkLabel || 'Network',
128
+ })
129
+ )
130
+
131
+ const selectVlanId = (id: string): void => {
132
+ fieldsValues.value.vlanId = id
133
+ }
134
+
135
+ // Validation
136
+ const emits = defineEmits<{
137
+ (
138
+ event: 'change-error-messages',
139
+ errorMessage: string,
140
+ fieldName: keyof UI_I_EditSettingsErrorMessage
141
+ ): void
142
+ (event: 'hide-error-message-alert'): void
143
+ (
144
+ event: 'change-edit-properties-data',
145
+ propertiesData: UI_I_PropertiesFields
146
+ ): void
147
+ }>()
148
+
149
+ const onHideErrorMessageAlert = () => emits('hide-error-message-alert')
150
+
151
+ const onChangeData = (data: UI_I_PropertiesFields) =>
152
+ emits('change-edit-properties-data', data)
153
+
154
+ const changeErrorMessage = (
155
+ errorMessage: string,
156
+ fieldName: keyof UI_I_EditSettingsErrorMessage
157
+ ) => emits('change-error-messages', errorMessage, fieldName)
158
+
159
+ const messageTexts = (local: UI_I_Localization) => ({
160
+ vlanId: local.common.vlanIdInvalidMessage,
161
+ networkLabel: local.common.networkLabelInvalidMessage,
162
+ })
163
+
164
+ const isNumberInRange = (value: number | string, down: number, up: number) =>
165
+ isNaN(Number(value)) || Number(value) < down || Number(value) > up
166
+
167
+ const setMessageOnChangedField = (
168
+ values: string | number,
169
+ name: UI_T_PropertiesFieldName,
170
+ text: string
171
+ ) => {
172
+ if (name === 'networkLabel' && !values) {
173
+ changeErrorMessage(text, name)
174
+ return
175
+ } else if (name === 'networkLabel' && props.networkAlreadyExists) return
176
+
177
+ if (
178
+ name === 'vlanId' &&
179
+ values !== 'None (0)' &&
180
+ values !== 'All (4095)' &&
181
+ (isNumberInRange(values, 0, 4095) || values === '')
182
+ ) {
183
+ changeErrorMessage(text, name)
184
+ return
185
+ }
186
+ changeErrorMessage('', name)
187
+ }
188
+
189
+ watch(
190
+ fieldsValues,
191
+ (newValues: UI_I_PropertiesFields) => {
192
+ setMessageOnChangedField(
193
+ newValues.vlanId,
194
+ 'vlanId',
195
+ messageTexts(localization.value).vlanId
196
+ )
197
+ setMessageOnChangedField(
198
+ newValues.networkLabel,
199
+ 'networkLabel',
200
+ messageTexts(localization.value).networkLabel
201
+ )
202
+ onChangeData(newValues)
203
+ !props.hasErrorMessages && onHideErrorMessageAlert()
204
+ },
205
+ { deep: true }
206
+ )
207
+
208
+ onMounted(() => {
209
+ onChangeData(fieldsValues.value)
210
+ })
211
+ onUnmounted(() => {
212
+ onHideErrorMessageAlert()
213
+ })
214
+ </script>