bfg-common 1.5.290 → 1.5.293

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 (175) 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 +1 -0
  7. package/assets/localization/local_en.json +1 -0
  8. package/assets/localization/local_hy.json +1 -0
  9. package/assets/localization/local_kk.json +1 -0
  10. package/assets/localization/local_ru.json +1 -0
  11. package/assets/localization/local_zh.json +1 -0
  12. package/assets/scss/common/theme.scss +6 -0
  13. package/components/atoms/TheIcon3.vue +50 -50
  14. package/components/atoms/perPage/PerPage.vue +58 -58
  15. package/components/atoms/table/dataGrid/DataGrid.vue +1717 -1717
  16. package/components/atoms/table/dataGrid/lib/config/settingsTable.ts +94 -94
  17. package/components/atoms/table/dataGrid/lib/utils/export.ts +16 -16
  18. package/components/atoms/tabs/VerticalTabs.vue +105 -105
  19. package/components/common/backup/storage/actions/add/lib/config/steps.ts +168 -168
  20. package/components/common/backup/storage/actions/add/steps/hostAccessibility/HostAccessibility.vue +52 -52
  21. package/components/common/backup/storage/actions/add/steps/nameAndConfigure/NameAndConfigure.vue +42 -42
  22. package/components/common/backup/storage/actions/add/steps/readyComplete/ReadyComplete.vue +45 -45
  23. package/components/common/backup/storage/actions/add/steps/readyComplete/lib/config/propertiesDetails.ts +243 -243
  24. package/components/common/backup/storage/actions/delete/Delete.vue +65 -65
  25. package/components/common/browse/blocks/contents/filesNew/Skeleton.vue +18 -18
  26. package/components/common/browse/blocks/lib/models/types.ts +1 -1
  27. package/components/common/browse/lib/models/interfaces.ts +5 -5
  28. package/components/common/context/lib/models/interfaces.ts +31 -31
  29. package/components/common/diagramMain/DiagramMain.vue +897 -897
  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/editSettings/ConfirmTeamingSettingsModal.vue +40 -40
  35. package/components/common/diagramMain/modals/editSettings/tabs/NetworkProperties.vue +214 -214
  36. package/components/common/diagramMain/modals/editSettings/tabs/Security.vue +189 -189
  37. package/components/common/diagramMain/modals/editSettings/tabs/SwitchProperties.vue +163 -163
  38. package/components/common/diagramMain/modals/editSettings/tabs/TeamingFailover.vue +175 -175
  39. package/components/common/diagramMain/modals/editSettings/tabs/port/IpvFourSettings.vue +346 -346
  40. package/components/common/diagramMain/modals/lib/config/initial.ts +180 -180
  41. package/components/common/diagramMain/modals/lib/config/vmKernelAdapter.ts +90 -90
  42. package/components/common/diagramMain/modals/lib/mappers/mappers.ts +87 -87
  43. package/components/common/diagramMain/modals/lib/utils/index.ts +24 -24
  44. package/components/common/diagramMain/modals/migrateVmkernelAdapter/lib/config/steps.ts +114 -114
  45. package/components/common/diagramMain/modals/migrateVmkernelAdapter/steps/ConnectionSettings.vue +169 -169
  46. package/components/common/diagramMain/modals/migrateVmkernelAdapter/steps/SelectVmkernelAdapter.vue +159 -159
  47. package/components/common/diagramMain/modals/migrateVmkernelAdapter/validations/common.ts +14 -14
  48. package/components/common/diagramMain/modals/migrateVmkernelAdapter/validations/connectionSettings.ts +137 -137
  49. package/components/common/diagramMain/modals/migrateVmkernelAdapter/validations/selectVmkernelAdapter.ts +52 -52
  50. package/components/common/diagramMain/modals/migrateVmkernelAdapter/validations/validations.ts +19 -19
  51. package/components/common/diagramMain/port/Ports.vue +47 -47
  52. package/components/common/layout/theHeader/helpMenu/About.vue +82 -82
  53. package/components/common/layout/theHeader/userMenu/modals/preferences/view/ViewOld.vue +112 -112
  54. package/components/common/monitor/overview/OverviewOld.vue +139 -139
  55. package/components/common/pages/home/headline/Headline.vue +45 -45
  56. package/components/common/pages/home/headline/HeadlineOld.vue +42 -42
  57. package/components/common/pages/home/lib/models/interfaces.ts +48 -48
  58. package/components/common/pages/home/widgets/Widgets.vue +49 -49
  59. package/components/common/pages/home/widgets/WidgetsNew.vue +86 -86
  60. package/components/common/pages/home/widgets/WidgetsOld.vue +34 -34
  61. package/components/common/pages/home/widgets/hosts/Hosts.vue +27 -27
  62. package/components/common/pages/home/widgets/hosts/lib/config/items.ts +23 -23
  63. package/components/common/pages/home/widgets/vms/Vms.vue +26 -26
  64. package/components/common/pages/home/widgets/vms/VmsOld.vue +35 -35
  65. package/components/common/pages/home/widgets/vms/lib/config/items.ts +19 -19
  66. package/components/common/pages/packages/Packages.vue +208 -208
  67. package/components/common/pages/shortcuts/block/BlockOld.vue +68 -68
  68. package/components/common/readyToComplete/ReadyToComplete.vue +17 -17
  69. package/components/common/recursionTree/RecursionTree.vue +223 -223
  70. package/components/common/select/button/ButtonDropdown.vue +108 -108
  71. package/components/common/spiceConsole/Drawer.vue +377 -377
  72. package/components/common/spiceConsole/SpiceConsole.vue +127 -84
  73. package/components/common/spiceConsole/lib/models/interfaces.ts +5 -5
  74. package/components/common/vm/actions/add/New.vue +1 -0
  75. package/components/common/vm/actions/add/Old.vue +7 -4
  76. package/components/common/vm/actions/add/folderTreeView/FolderTreeView.vue +72 -72
  77. package/components/common/vm/actions/add/folderTreeView/New.vue +40 -40
  78. package/components/common/vm/actions/add/folderTreeView/Old.vue +50 -50
  79. package/components/common/vm/actions/clone/lib/config/steps.ts +291 -291
  80. package/components/common/vm/actions/clone/toTemplate/lib/config/steps.ts +116 -116
  81. package/components/common/vm/actions/common/customizeHardware/virtualHardware/VirtualHardwareNew.vue +6 -2
  82. package/components/common/vm/actions/common/customizeHardware/virtualHardware/VirtualHardwareOld.vue +321 -321
  83. package/components/common/vm/actions/common/customizeHardware/virtualHardware/browseView/BrowseView.vue +227 -227
  84. package/components/common/vm/actions/common/customizeHardware/virtualHardware/bus/Bus.vue +100 -100
  85. package/components/common/vm/actions/common/customizeHardware/virtualHardware/bus/BusNew.vue +10 -8
  86. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/CdDvdDrive.vue +232 -232
  87. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/CdDvdDriveNew.vue +23 -2
  88. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/CdDvdDriveOld.vue +168 -168
  89. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/Media.vue +25 -25
  90. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/MediaNew.vue +78 -78
  91. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/MediaOld.vue +50 -50
  92. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/coresPerSocket/CoresPerSocketNew.vue +1 -1
  93. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/hotPlug/HotPlugNew.vue +2 -3
  94. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/model/ModelNew.vue +1 -1
  95. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/shares/Shares.vue +140 -140
  96. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/shares/SharesNew.vue +1 -1
  97. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/shares/lib/config/options.ts +28 -28
  98. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/tooltip/TooltipNew.vue +154 -154
  99. package/components/common/vm/actions/common/customizeHardware/virtualHardware/limit/Limit.vue +220 -220
  100. package/components/common/vm/actions/common/customizeHardware/virtualHardware/limit/LimitNew.vue +1 -2
  101. package/components/common/vm/actions/common/customizeHardware/virtualHardware/memory/Memory.vue +307 -307
  102. package/components/common/vm/actions/common/customizeHardware/virtualHardware/memory/hotPlug/HotPlugNew.vue +1 -1
  103. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/NewHardDisk.vue +385 -385
  104. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/NewHardDiskNew.vue +23 -2
  105. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/cache/CacheNew.vue +3 -1
  106. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/file/FileNew.vue +1 -1
  107. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/limitIops/LimitIopsNew.vue +1 -1
  108. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/location/Location.vue +154 -154
  109. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/location/LocationOld.vue +85 -85
  110. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/mode/ModeNew.vue +1 -1
  111. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/provisioning/ProvisioningNew.vue +1 -1
  112. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/sharing/SharingNew.vue +1 -1
  113. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/NewNetwork.vue +288 -288
  114. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/adapterType/AdapterTypeNew.vue +3 -1
  115. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/location/new/table/lib/config/config.ts +94 -94
  116. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/macAddress/MacAddress.vue +119 -119
  117. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/NewPciDevice.vue +205 -205
  118. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/directPathIo/DirectPathIoNew.vue +66 -66
  119. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/directPathIo/DirectPathIoOld.vue +62 -62
  120. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIo.vue +31 -31
  121. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIoOld.vue +76 -76
  122. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/Note.vue +15 -15
  123. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/NoteNew.vue +42 -42
  124. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/NoteOld.vue +30 -30
  125. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/nvidiaGrid/NvidiaGridOld.vue +84 -84
  126. package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/Other.vue +16 -16
  127. package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/inputDevices/InputDevicesNew.vue +40 -40
  128. package/components/common/vm/actions/common/customizeHardware/virtualHardware/reservation/ReservationNew.vue +1 -1
  129. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/VideoCard.vue +154 -154
  130. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/numberDisplays/NumberDisplays.vue +53 -53
  131. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/BootOptionsNew.vue +2 -2
  132. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/delay/Delay.vue +32 -32
  133. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/firmware/Firmware.vue +60 -60
  134. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/Order.vue +174 -174
  135. package/components/common/vm/actions/common/customizeHardware/vmoptions/generalOptions/GeneralOptionsNew.vue +4 -2
  136. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/New.vue +2 -2
  137. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/copyPaste/CopyPasteNew.vue +31 -31
  138. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/fileTransfer/FileTransferNew.vue +31 -31
  139. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/keymap/Keymap.vue +32 -32
  140. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/password/Password.vue +103 -103
  141. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/password/PasswordNew.vue +128 -128
  142. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirection.vue +28 -28
  143. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirectionOld.vue +44 -44
  144. package/components/common/vm/actions/common/customizeHardware/vmoptions/tools/ToolsNew.vue +2 -2
  145. package/components/common/vm/actions/common/lib/utils/capabilities.ts +52 -52
  146. package/components/common/vm/actions/common/select/compatibility/Old.vue +107 -107
  147. package/components/common/vm/actions/common/select/computeResource/treeView/TreeView.vue +118 -118
  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 +174 -174
  151. package/components/common/vm/actions/common/select/options/Options.vue +18 -14
  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/lib/models/interfaces.ts +5 -5
  155. package/components/common/vm/actions/common/select/storage/new/lib/utils/utils.ts +21 -21
  156. package/components/common/vm/actions/editSettings/new/Skeleton.vue +88 -88
  157. package/components/common/vmt/actions/add/Add.vue +641 -641
  158. package/components/common/vmt/actions/add/lib/config/steps.ts +107 -107
  159. package/components/common/vmt/actions/add/lib/models/interfaces.ts +23 -23
  160. package/components/common/wizards/vm/migrate/lib/config/constructDataReady.ts +220 -220
  161. package/components/common/wizards/vm/migrate/lib/config/steps.ts +157 -157
  162. package/components/common/wizards/vm/migrate/lib/validations.ts +68 -68
  163. package/components/common/wizards/vm/migrate/select/network/Network.vue +103 -103
  164. package/components/common/wizards/vm/migrate/select/network/table/network/lib/config/advancedTable.ts +91 -91
  165. package/composables/productNameLocal.ts +30 -30
  166. package/composables/useAppVersion.ts +21 -21
  167. package/package.json +2 -2
  168. package/plugins/date.ts +233 -233
  169. package/plugins/panelStates.ts +70 -70
  170. package/plugins/text.ts +59 -59
  171. package/public/spice-console/lib/images/bitmap.js +203 -203
  172. package/public/spice-console/network/spicechannel.js +387 -387
  173. package/store/main/mutations.ts +7 -7
  174. package/store/main/state.ts +7 -7
  175. package/store/tasks/mappers/recentTasks.ts +64 -64
@@ -1,346 +1,346 @@
1
- <template>
2
- <div class="wizard-content__container">
3
- <div class="wizard-content wizard-content-port">
4
- <atoms-alert
5
- v-if="isShowErrorMessage"
6
- status="alert-danger"
7
- :items="validationMessagesArray"
8
- test-id="ipv-four-settings-alert"
9
- @remove="onHideErrorMessageAlert"
10
- />
11
- <form>
12
- <div class="radio">
13
- <input
14
- id="Obtain"
15
- v-model="fieldsValues.ipv4Settings"
16
- data-id="obtain-input"
17
- type="radio"
18
- value="0"
19
- name="IPv4-settings"
20
- />
21
- <label for="Obtain">
22
- {{ localization.common.obtainIPv4SettingsAutomatically }}
23
- </label>
24
- </div>
25
- <div class="radio">
26
- <input
27
- id="static"
28
- v-model="fieldsValues.ipv4Settings"
29
- data-id="static-input"
30
- type="radio"
31
- value="1"
32
- name="IPv4-settings"
33
- />
34
- <label for="static"> {{ localization.common.useStaticIPv4Settings }} </label>
35
- </div>
36
-
37
- <div
38
- :class="[
39
- 'form-block form-block-ipv',
40
- { 'element-disabled': fieldsValues.ipv4Settings === '0' },
41
- ]"
42
- >
43
- <div class="horizontal-flex-container">
44
- <label class="property-label-group" for="">
45
- {{ localization.common.ipv4address }}
46
- </label>
47
- <div class="margin-left-property-value-group">
48
- <div class="property-value-group">
49
- <fieldset>
50
- <atoms-tooltip-error
51
- :has-error="!!props.errorMessages.ipFourAddress"
52
- >
53
- <template #elem>
54
- <input
55
- id="port-properties-network"
56
- v-model="fieldsValues.ipv4Address"
57
- data-id="port-properties-network"
58
- type="text"
59
- placeholder="e.g. 192.168.1.1"
60
- :class="[
61
- 'tooltip-field port-properties-network-label',
62
- {
63
- 'danger-not-valid':
64
- props.errorMessages.ipFourAddress,
65
- },
66
- ]"
67
- />
68
- </template>
69
- <template #content>
70
- {{ props.errorMessages.ipFourAddress }}
71
- </template>
72
- </atoms-tooltip-error>
73
- </fieldset>
74
- </div>
75
- </div>
76
- </div>
77
- <div class="horizontal-flex-container">
78
- <label class="property-label-group">
79
- {{ localization.common.subnetMask }}
80
- </label>
81
- <div class="margin-left-property-value-group">
82
- <div class="property-value-group">
83
- <fieldset>
84
- <atoms-tooltip-error
85
- :has-error="!!props.errorMessages.subnetMask"
86
- >
87
- <template #elem>
88
- <input
89
- id="subnet-mask"
90
- v-model="fieldsValues.subnetMask"
91
- data-id="subnet-mask"
92
- type="text"
93
- placeholder="e.g. 255.255.255.0"
94
- :class="[
95
- 'tooltip-field',
96
- {
97
- 'danger-not-valid': props.errorMessages.subnetMask,
98
- },
99
- ]"
100
- />
101
- </template>
102
- <template #content>
103
- {{ props.errorMessages.subnetMask }}
104
- </template>
105
- </atoms-tooltip-error>
106
- </fieldset>
107
- </div>
108
- </div>
109
- </div>
110
- <div class="horizontal-flex-container">
111
- <label class="property-label-group" for="">
112
- {{ localization.common.defaultGateway }}
113
- </label>
114
- <div class="margin-left-property-value-group">
115
- <div class="property-value-group">
116
- <div
117
- class="flex-property-label-group small checkbox-inline with-margin"
118
- >
119
- <input
120
- id="default-gateway"
121
- v-model="fieldsValues.defaultGateway.checked"
122
- data-id="default-gateway-checkbox"
123
- type="checkbox"
124
- />
125
- <label
126
- for="default-gateway"
127
- class="normal-weight normal-font-size"
128
- >
129
- {{ localization.common.overrideDefaultGatewayForThisAdapter }}
130
- </label>
131
- </div>
132
- <div>
133
- <fieldset>
134
- <atoms-tooltip-error
135
- :has-error="!!props.errorMessages.defaultGateway"
136
- >
137
- <template #elem>
138
- <input
139
- id="default-gateway"
140
- v-model="fieldsValues.defaultGateway.value"
141
- data-id="default-gateway-tooltip-field"
142
- type="text"
143
- :disabled="!fieldsValues.defaultGateway.checked"
144
- placeholder="10.10.101.1"
145
- :class="[
146
- 'tooltip-field',
147
- {
148
- 'danger-not-valid':
149
- props.errorMessages.defaultGateway,
150
- },
151
- ]"
152
- />
153
- </template>
154
- <template #content>
155
- {{ props.errorMessages.defaultGateway }}
156
- </template>
157
- </atoms-tooltip-error>
158
- </fieldset>
159
- </div>
160
- </div>
161
- </div>
162
- </div>
163
- <!-- <div class="horizontal-flex-container">-->
164
- <!-- <label class="property-label-group">-->
165
- <!-- {{ localization.common.dnsServerAddresses }}-->
166
- <!-- </label>-->
167
- <!-- <div class="margin-left-property-value-group">-->
168
- <!-- <div class="property-value-group">-->
169
- <!-- {{ fieldsValues.defaultGateway.value }}-->
170
- <!-- </div>-->
171
- <!-- </div>-->
172
- <!-- </div>-->
173
- </div>
174
- </form>
175
- </div>
176
- </div>
177
- </template>
178
-
179
- <script setup lang="ts">
180
- import type { UI_I_Localization } from '~/lib/models/interfaces'
181
- import {
182
- UI_I_EditSettingsErrorMessage,
183
- UI_I_IpvFourSettingsFields,
184
- UI_I_ModalsInitialData,
185
- } from '~/components/common/diagramMain/lib/models/interfaces'
186
- import type { UI_T_IpFourSettingsFieldName } from '~/components/common/wizards/network/add/lib/models/types'
187
- import { validationMessagesArrayFunc } from '~/components/common/diagramMain/modals/lib/utils'
188
-
189
- const props = withDefaults(
190
- defineProps<{
191
- isShowErrorMessageAlert: boolean
192
- initialData?: UI_I_ModalsInitialData
193
- errorMessages: UI_I_EditSettingsErrorMessage
194
- hasErrorMessages?: boolean
195
- }>(),
196
- {
197
- initialData: () => ({}),
198
- }
199
- )
200
-
201
- const validationMessagesArray = computed(() =>
202
- validationMessagesArrayFunc(
203
- ['ipFourAddress', 'subnetMask', 'defaultGateway'],
204
- props.errorMessages
205
- )
206
- )
207
-
208
- // UI_I_Localization
209
- const localization = computed<UI_I_Localization>(() => useLocal())
210
-
211
- // For showing component validation errors on the top of modal
212
- const isShowErrorMessage = computed<boolean>(
213
- () => props.isShowErrorMessageAlert && props.hasErrorMessages
214
- )
215
-
216
- const fieldsValues = ref<UI_I_IpvFourSettingsFields>(
217
- useDeepCopy(props.initialData.tcpConfig)
218
- )
219
-
220
- // Validation
221
- const emits = defineEmits<{
222
- (
223
- event: 'change-error-messages',
224
- errorMessage: string,
225
- fieldName: keyof UI_I_EditSettingsErrorMessage
226
- ): void
227
- (event: 'hide-error-message-alert'): void
228
- (
229
- event: 'change-port-ipv-four-data',
230
- newPortEditIpvFourData: UI_I_IpvFourSettingsFields
231
- ): void
232
- }>()
233
-
234
- const onHideErrorMessageAlert = (): void => emits('hide-error-message-alert')
235
-
236
- const onChangeData = (data: UI_I_IpvFourSettingsFields) =>
237
- emits('change-port-ipv-four-data', data)
238
-
239
- const changeErrorMessage = (
240
- errorMessage: string,
241
- fieldName: keyof UI_I_EditSettingsErrorMessage
242
- ) => emits('change-error-messages', errorMessage, fieldName)
243
-
244
- const checkIfValidIP = (str: string) => {
245
- const regexExp =
246
- /^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$/gi
247
-
248
- return regexExp.test(str)
249
- }
250
-
251
- const messageTexts = (local: UI_I_Localization) => ({
252
- ipFourAddressEmpty: local.common.ipFourAddressEmpty,
253
- subnetMaskEmpty: local.common.subnetMaskEmpty,
254
- defaultGatewayEmpty: local.common.defaultGatewayEmpty,
255
- ipFourAddressInvalid: local.common.ipFourAddressInvalid,
256
- subnetMaskInvalid: local.common.subnetMaskInvalid,
257
- defaultGatewayInvalid: local.common.defaultGatewayInvalid,
258
- })
259
-
260
- const setMessageOnChangedField = (
261
- values: string,
262
- name: UI_T_IpFourSettingsFieldName,
263
- ipSettings: string,
264
- override?: boolean
265
- ) => {
266
- if (ipSettings === '0') {
267
- changeErrorMessage('', name)
268
- return
269
- }
270
-
271
- if (name === 'ipFourAddress') {
272
- if (!values) {
273
- changeErrorMessage(messageTexts(localization.value)[`${name}Empty`], name)
274
- return
275
- }
276
- if (!checkIfValidIP(values)) {
277
- changeErrorMessage(
278
- messageTexts(localization.value)[`${name}Invalid`],
279
- name
280
- )
281
- return
282
- }
283
- }
284
- if (name === 'subnetMask') {
285
- if (!values) {
286
- changeErrorMessage(messageTexts(localization.value)[`${name}Empty`], name)
287
- return
288
- }
289
- if (!checkIfValidIP(values)) {
290
- changeErrorMessage(
291
- messageTexts(localization.value)[`${name}Invalid`],
292
- name
293
- )
294
- return
295
- }
296
- }
297
- if (name === 'defaultGateway' && override) {
298
- if (!values) {
299
- changeErrorMessage(messageTexts(localization.value)[`${name}Empty`], name)
300
- return
301
- }
302
- if (!checkIfValidIP(values)) {
303
- changeErrorMessage(
304
- messageTexts(localization.value)[`${name}Invalid`],
305
- name
306
- )
307
- return
308
- }
309
- }
310
- changeErrorMessage('', name)
311
- }
312
-
313
- // Changing data and validate they
314
- watch(
315
- fieldsValues,
316
- (newValues: UI_I_IpvFourSettingsFields) => {
317
- setMessageOnChangedField(
318
- newValues.ipv4Address,
319
- 'ipFourAddress',
320
- newValues.ipv4Settings
321
- )
322
- setMessageOnChangedField(
323
- newValues.subnetMask,
324
- 'subnetMask',
325
- newValues.ipv4Settings
326
- )
327
- setMessageOnChangedField(
328
- newValues.defaultGateway.value,
329
- 'defaultGateway',
330
- newValues.ipv4Settings,
331
- newValues.defaultGateway.checked
332
- )
333
- onChangeData(newValues)
334
- !props.hasErrorMessages && onHideErrorMessageAlert()
335
- },
336
- { deep: true }
337
- )
338
-
339
- onMounted(() => {
340
- onChangeData(fieldsValues.value)
341
- })
342
-
343
- onUnmounted(() => {
344
- onHideErrorMessageAlert()
345
- })
346
- </script>
1
+ <template>
2
+ <div class="wizard-content__container">
3
+ <div class="wizard-content wizard-content-port">
4
+ <atoms-alert
5
+ v-if="isShowErrorMessage"
6
+ status="alert-danger"
7
+ :items="validationMessagesArray"
8
+ test-id="ipv-four-settings-alert"
9
+ @remove="onHideErrorMessageAlert"
10
+ />
11
+ <form>
12
+ <div class="radio">
13
+ <input
14
+ id="Obtain"
15
+ v-model="fieldsValues.ipv4Settings"
16
+ data-id="obtain-input"
17
+ type="radio"
18
+ value="0"
19
+ name="IPv4-settings"
20
+ />
21
+ <label for="Obtain">
22
+ {{ localization.common.obtainIPv4SettingsAutomatically }}
23
+ </label>
24
+ </div>
25
+ <div class="radio">
26
+ <input
27
+ id="static"
28
+ v-model="fieldsValues.ipv4Settings"
29
+ data-id="static-input"
30
+ type="radio"
31
+ value="1"
32
+ name="IPv4-settings"
33
+ />
34
+ <label for="static"> {{ localization.common.useStaticIPv4Settings }} </label>
35
+ </div>
36
+
37
+ <div
38
+ :class="[
39
+ 'form-block form-block-ipv',
40
+ { 'element-disabled': fieldsValues.ipv4Settings === '0' },
41
+ ]"
42
+ >
43
+ <div class="horizontal-flex-container">
44
+ <label class="property-label-group" for="">
45
+ {{ localization.common.ipv4address }}
46
+ </label>
47
+ <div class="margin-left-property-value-group">
48
+ <div class="property-value-group">
49
+ <fieldset>
50
+ <atoms-tooltip-error
51
+ :has-error="!!props.errorMessages.ipFourAddress"
52
+ >
53
+ <template #elem>
54
+ <input
55
+ id="port-properties-network"
56
+ v-model="fieldsValues.ipv4Address"
57
+ data-id="port-properties-network"
58
+ type="text"
59
+ placeholder="e.g. 192.168.1.1"
60
+ :class="[
61
+ 'tooltip-field port-properties-network-label',
62
+ {
63
+ 'danger-not-valid':
64
+ props.errorMessages.ipFourAddress,
65
+ },
66
+ ]"
67
+ />
68
+ </template>
69
+ <template #content>
70
+ {{ props.errorMessages.ipFourAddress }}
71
+ </template>
72
+ </atoms-tooltip-error>
73
+ </fieldset>
74
+ </div>
75
+ </div>
76
+ </div>
77
+ <div class="horizontal-flex-container">
78
+ <label class="property-label-group">
79
+ {{ localization.common.subnetMask }}
80
+ </label>
81
+ <div class="margin-left-property-value-group">
82
+ <div class="property-value-group">
83
+ <fieldset>
84
+ <atoms-tooltip-error
85
+ :has-error="!!props.errorMessages.subnetMask"
86
+ >
87
+ <template #elem>
88
+ <input
89
+ id="subnet-mask"
90
+ v-model="fieldsValues.subnetMask"
91
+ data-id="subnet-mask"
92
+ type="text"
93
+ placeholder="e.g. 255.255.255.0"
94
+ :class="[
95
+ 'tooltip-field',
96
+ {
97
+ 'danger-not-valid': props.errorMessages.subnetMask,
98
+ },
99
+ ]"
100
+ />
101
+ </template>
102
+ <template #content>
103
+ {{ props.errorMessages.subnetMask }}
104
+ </template>
105
+ </atoms-tooltip-error>
106
+ </fieldset>
107
+ </div>
108
+ </div>
109
+ </div>
110
+ <div class="horizontal-flex-container">
111
+ <label class="property-label-group" for="">
112
+ {{ localization.common.defaultGateway }}
113
+ </label>
114
+ <div class="margin-left-property-value-group">
115
+ <div class="property-value-group">
116
+ <div
117
+ class="flex-property-label-group small checkbox-inline with-margin"
118
+ >
119
+ <input
120
+ id="default-gateway"
121
+ v-model="fieldsValues.defaultGateway.checked"
122
+ data-id="default-gateway-checkbox"
123
+ type="checkbox"
124
+ />
125
+ <label
126
+ for="default-gateway"
127
+ class="normal-weight normal-font-size"
128
+ >
129
+ {{ localization.common.overrideDefaultGatewayForThisAdapter }}
130
+ </label>
131
+ </div>
132
+ <div>
133
+ <fieldset>
134
+ <atoms-tooltip-error
135
+ :has-error="!!props.errorMessages.defaultGateway"
136
+ >
137
+ <template #elem>
138
+ <input
139
+ id="default-gateway"
140
+ v-model="fieldsValues.defaultGateway.value"
141
+ data-id="default-gateway-tooltip-field"
142
+ type="text"
143
+ :disabled="!fieldsValues.defaultGateway.checked"
144
+ placeholder="10.10.101.1"
145
+ :class="[
146
+ 'tooltip-field',
147
+ {
148
+ 'danger-not-valid':
149
+ props.errorMessages.defaultGateway,
150
+ },
151
+ ]"
152
+ />
153
+ </template>
154
+ <template #content>
155
+ {{ props.errorMessages.defaultGateway }}
156
+ </template>
157
+ </atoms-tooltip-error>
158
+ </fieldset>
159
+ </div>
160
+ </div>
161
+ </div>
162
+ </div>
163
+ <!-- <div class="horizontal-flex-container">-->
164
+ <!-- <label class="property-label-group">-->
165
+ <!-- {{ localization.common.dnsServerAddresses }}-->
166
+ <!-- </label>-->
167
+ <!-- <div class="margin-left-property-value-group">-->
168
+ <!-- <div class="property-value-group">-->
169
+ <!-- {{ fieldsValues.defaultGateway.value }}-->
170
+ <!-- </div>-->
171
+ <!-- </div>-->
172
+ <!-- </div>-->
173
+ </div>
174
+ </form>
175
+ </div>
176
+ </div>
177
+ </template>
178
+
179
+ <script setup lang="ts">
180
+ import type { UI_I_Localization } from '~/lib/models/interfaces'
181
+ import {
182
+ UI_I_EditSettingsErrorMessage,
183
+ UI_I_IpvFourSettingsFields,
184
+ UI_I_ModalsInitialData,
185
+ } from '~/components/common/diagramMain/lib/models/interfaces'
186
+ import type { UI_T_IpFourSettingsFieldName } from '~/components/common/wizards/network/add/lib/models/types'
187
+ import { validationMessagesArrayFunc } from '~/components/common/diagramMain/modals/lib/utils'
188
+
189
+ const props = withDefaults(
190
+ defineProps<{
191
+ isShowErrorMessageAlert: boolean
192
+ initialData?: UI_I_ModalsInitialData
193
+ errorMessages: UI_I_EditSettingsErrorMessage
194
+ hasErrorMessages?: boolean
195
+ }>(),
196
+ {
197
+ initialData: () => ({}),
198
+ }
199
+ )
200
+
201
+ const validationMessagesArray = computed(() =>
202
+ validationMessagesArrayFunc(
203
+ ['ipFourAddress', 'subnetMask', 'defaultGateway'],
204
+ props.errorMessages
205
+ )
206
+ )
207
+
208
+ // UI_I_Localization
209
+ const localization = computed<UI_I_Localization>(() => useLocal())
210
+
211
+ // For showing component validation errors on the top of modal
212
+ const isShowErrorMessage = computed<boolean>(
213
+ () => props.isShowErrorMessageAlert && props.hasErrorMessages
214
+ )
215
+
216
+ const fieldsValues = ref<UI_I_IpvFourSettingsFields>(
217
+ useDeepCopy(props.initialData.tcpConfig)
218
+ )
219
+
220
+ // Validation
221
+ const emits = defineEmits<{
222
+ (
223
+ event: 'change-error-messages',
224
+ errorMessage: string,
225
+ fieldName: keyof UI_I_EditSettingsErrorMessage
226
+ ): void
227
+ (event: 'hide-error-message-alert'): void
228
+ (
229
+ event: 'change-port-ipv-four-data',
230
+ newPortEditIpvFourData: UI_I_IpvFourSettingsFields
231
+ ): void
232
+ }>()
233
+
234
+ const onHideErrorMessageAlert = (): void => emits('hide-error-message-alert')
235
+
236
+ const onChangeData = (data: UI_I_IpvFourSettingsFields) =>
237
+ emits('change-port-ipv-four-data', data)
238
+
239
+ const changeErrorMessage = (
240
+ errorMessage: string,
241
+ fieldName: keyof UI_I_EditSettingsErrorMessage
242
+ ) => emits('change-error-messages', errorMessage, fieldName)
243
+
244
+ const checkIfValidIP = (str: string) => {
245
+ const regexExp =
246
+ /^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$/gi
247
+
248
+ return regexExp.test(str)
249
+ }
250
+
251
+ const messageTexts = (local: UI_I_Localization) => ({
252
+ ipFourAddressEmpty: local.common.ipFourAddressEmpty,
253
+ subnetMaskEmpty: local.common.subnetMaskEmpty,
254
+ defaultGatewayEmpty: local.common.defaultGatewayEmpty,
255
+ ipFourAddressInvalid: local.common.ipFourAddressInvalid,
256
+ subnetMaskInvalid: local.common.subnetMaskInvalid,
257
+ defaultGatewayInvalid: local.common.defaultGatewayInvalid,
258
+ })
259
+
260
+ const setMessageOnChangedField = (
261
+ values: string,
262
+ name: UI_T_IpFourSettingsFieldName,
263
+ ipSettings: string,
264
+ override?: boolean
265
+ ) => {
266
+ if (ipSettings === '0') {
267
+ changeErrorMessage('', name)
268
+ return
269
+ }
270
+
271
+ if (name === 'ipFourAddress') {
272
+ if (!values) {
273
+ changeErrorMessage(messageTexts(localization.value)[`${name}Empty`], name)
274
+ return
275
+ }
276
+ if (!checkIfValidIP(values)) {
277
+ changeErrorMessage(
278
+ messageTexts(localization.value)[`${name}Invalid`],
279
+ name
280
+ )
281
+ return
282
+ }
283
+ }
284
+ if (name === 'subnetMask') {
285
+ if (!values) {
286
+ changeErrorMessage(messageTexts(localization.value)[`${name}Empty`], name)
287
+ return
288
+ }
289
+ if (!checkIfValidIP(values)) {
290
+ changeErrorMessage(
291
+ messageTexts(localization.value)[`${name}Invalid`],
292
+ name
293
+ )
294
+ return
295
+ }
296
+ }
297
+ if (name === 'defaultGateway' && override) {
298
+ if (!values) {
299
+ changeErrorMessage(messageTexts(localization.value)[`${name}Empty`], name)
300
+ return
301
+ }
302
+ if (!checkIfValidIP(values)) {
303
+ changeErrorMessage(
304
+ messageTexts(localization.value)[`${name}Invalid`],
305
+ name
306
+ )
307
+ return
308
+ }
309
+ }
310
+ changeErrorMessage('', name)
311
+ }
312
+
313
+ // Changing data and validate they
314
+ watch(
315
+ fieldsValues,
316
+ (newValues: UI_I_IpvFourSettingsFields) => {
317
+ setMessageOnChangedField(
318
+ newValues.ipv4Address,
319
+ 'ipFourAddress',
320
+ newValues.ipv4Settings
321
+ )
322
+ setMessageOnChangedField(
323
+ newValues.subnetMask,
324
+ 'subnetMask',
325
+ newValues.ipv4Settings
326
+ )
327
+ setMessageOnChangedField(
328
+ newValues.defaultGateway.value,
329
+ 'defaultGateway',
330
+ newValues.ipv4Settings,
331
+ newValues.defaultGateway.checked
332
+ )
333
+ onChangeData(newValues)
334
+ !props.hasErrorMessages && onHideErrorMessageAlert()
335
+ },
336
+ { deep: true }
337
+ )
338
+
339
+ onMounted(() => {
340
+ onChangeData(fieldsValues.value)
341
+ })
342
+
343
+ onUnmounted(() => {
344
+ onHideErrorMessageAlert()
345
+ })
346
+ </script>