bfg-common 1.5.40 → 1.5.41

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 (194) 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/scss/common/normalize.scss +339 -339
  7. package/components/atoms/TheIcon3.vue +50 -50
  8. package/components/atoms/collapse/CollapseNav.vue +165 -165
  9. package/components/atoms/dropdown/dropdown/Dropdown.vue +168 -168
  10. package/components/atoms/modal/bySteps/BySteps.vue +253 -253
  11. package/components/atoms/perPage/PerPage.vue +58 -58
  12. package/components/atoms/stack/StackBlock.vue +185 -185
  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/atoms/tabs/VerticalTabs.vue +105 -105
  17. package/components/atoms/tooltip/Signpost.vue +227 -227
  18. package/components/common/accordion/Recursion.vue +222 -222
  19. package/components/common/browse/BrowseNew.vue +237 -237
  20. package/components/common/browse/BrowseOld.vue +217 -217
  21. package/components/common/browse/blocks/contents/Files.vue +37 -37
  22. package/components/common/browse/blocks/contents/FilesOld.vue +72 -72
  23. package/components/common/browse/blocks/contents/filesNew/FilesNew.vue +96 -96
  24. package/components/common/browse/blocks/contents/filesNew/Skeleton.vue +18 -18
  25. package/components/common/browse/blocks/lib/models/types.ts +1 -1
  26. package/components/common/browse/lib/models/interfaces.ts +5 -5
  27. package/components/common/context/Context.vue +111 -111
  28. package/components/common/context/lib/models/interfaces.ts +31 -31
  29. package/components/common/context/recursion/Recursion.vue +87 -87
  30. package/components/common/context/recursion/RecursionNew.vue +238 -238
  31. package/components/common/context/recursion/RecursionOld.vue +228 -228
  32. package/components/common/details/DetailsItem.vue +109 -109
  33. package/components/common/diagramMain/DiagramMain.vue +897 -897
  34. package/components/common/diagramMain/Header.vue +214 -214
  35. package/components/common/diagramMain/adapter/AdapterItems.vue +61 -61
  36. package/components/common/diagramMain/lib/config/initial.ts +50 -50
  37. package/components/common/diagramMain/lib/models/types.ts +21 -21
  38. package/components/common/diagramMain/lib/utils/utils.ts +331 -331
  39. package/components/common/diagramMain/modals/editSettings/ConfirmTeamingSettingsModal.vue +40 -40
  40. package/components/common/diagramMain/modals/editSettings/tabs/NetworkProperties.vue +214 -214
  41. package/components/common/diagramMain/modals/editSettings/tabs/Security.vue +189 -189
  42. package/components/common/diagramMain/modals/editSettings/tabs/SwitchProperties.vue +163 -163
  43. package/components/common/diagramMain/modals/editSettings/tabs/TeamingFailover.vue +175 -175
  44. package/components/common/diagramMain/modals/editSettings/tabs/port/IpvFourSettings.vue +346 -346
  45. package/components/common/diagramMain/modals/editSettings/tabs/port/PortProperties.vue +205 -205
  46. package/components/common/diagramMain/modals/lib/config/initial.ts +180 -180
  47. package/components/common/diagramMain/modals/lib/config/vmKernelAdapter.ts +90 -90
  48. package/components/common/diagramMain/modals/lib/mappers/mappers.ts +87 -87
  49. package/components/common/diagramMain/modals/lib/utils/index.ts +24 -24
  50. package/components/common/diagramMain/modals/migrateVmkernelAdapter/lib/config/steps.ts +114 -114
  51. package/components/common/diagramMain/modals/migrateVmkernelAdapter/steps/ConnectionSettings.vue +169 -169
  52. package/components/common/diagramMain/modals/migrateVmkernelAdapter/steps/SelectVmkernelAdapter.vue +159 -159
  53. package/components/common/diagramMain/modals/migrateVmkernelAdapter/validations/common.ts +14 -14
  54. package/components/common/diagramMain/modals/migrateVmkernelAdapter/validations/connectionSettings.ts +137 -137
  55. package/components/common/diagramMain/modals/migrateVmkernelAdapter/validations/selectVmkernelAdapter.ts +52 -52
  56. package/components/common/diagramMain/modals/migrateVmkernelAdapter/validations/validations.ts +19 -19
  57. package/components/common/diagramMain/port/Ports.vue +47 -47
  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/layout/theHeader/userMenu/modals/preferences/view/ViewOld.vue +112 -112
  61. package/components/common/mainNavigationPanel/MainNavigationPanelNew.vue +336 -336
  62. package/components/common/mainNavigationPanel/MainNavigationPanelOld.vue +311 -311
  63. package/components/common/modals/unsavedChanges/UnsavedChanges.vue +56 -56
  64. package/components/common/monitor/overview/OverviewOld.vue +139 -139
  65. package/components/common/pages/home/StatusContent.vue +49 -49
  66. package/components/common/pages/home/headline/Headline.vue +45 -45
  67. package/components/common/pages/home/headline/HeadlineOld.vue +42 -42
  68. package/components/common/pages/home/lib/models/interfaces.ts +48 -48
  69. package/components/common/pages/home/widgets/Widgets.vue +49 -49
  70. package/components/common/pages/home/widgets/WidgetsNew.vue +86 -86
  71. package/components/common/pages/home/widgets/WidgetsOld.vue +34 -34
  72. package/components/common/pages/home/widgets/hosts/Hosts.vue +27 -27
  73. package/components/common/pages/home/widgets/hosts/lib/config/items.ts +23 -23
  74. package/components/common/pages/home/widgets/vms/Vms.vue +26 -26
  75. package/components/common/pages/home/widgets/vms/VmsOld.vue +35 -35
  76. package/components/common/pages/home/widgets/vms/lib/config/items.ts +19 -19
  77. package/components/common/pages/packages/Packages.vue +208 -208
  78. package/components/common/pages/shortcuts/block/BlockNew.vue +96 -96
  79. package/components/common/pages/shortcuts/block/BlockOld.vue +68 -68
  80. package/components/common/portlets/customAttributes/Portlet.vue +667 -667
  81. package/components/common/portlets/tag/Portlet.vue +433 -433
  82. package/components/common/recursionTree/RecursionTree.vue +223 -223
  83. package/components/common/select/button/ButtonDropdown.vue +108 -108
  84. package/components/common/spiceConsole/Drawer.vue +370 -370
  85. package/components/common/spiceConsole/lib/models/interfaces.ts +5 -5
  86. package/components/common/split/horizontal/HorizontalNew.vue +376 -376
  87. package/components/common/split/horizontal/HorizontalOld.vue +337 -337
  88. package/components/common/split/vertical/Vertical.vue +160 -160
  89. package/components/common/tools/Actions.vue +188 -188
  90. package/components/common/vm/actions/add/Add.vue +774 -772
  91. package/components/common/vm/actions/add/lib/config/steps.ts +247 -247
  92. package/components/common/vm/actions/clone/Clone.vue +798 -668
  93. package/components/common/vm/actions/clone/lib/config/steps.ts +291 -178
  94. package/components/common/vm/actions/clone/toTemplate/ToTemplate.vue +634 -634
  95. package/components/common/vm/actions/clone/toTemplate/lib/config/steps.ts +116 -116
  96. package/components/common/vm/actions/common/customizeHardware/CustomizeHardware.vue +275 -275
  97. package/components/common/vm/actions/common/customizeHardware/CustomizeHardwareNew.vue +274 -274
  98. package/components/common/vm/actions/common/customizeHardware/CustomizeHardwareOld.vue +177 -177
  99. package/components/common/vm/actions/common/customizeHardware/virtualHardware/VirtualHardware.vue +698 -698
  100. package/components/common/vm/actions/common/customizeHardware/virtualHardware/VirtualHardwareNew.vue +410 -410
  101. package/components/common/vm/actions/common/customizeHardware/virtualHardware/VirtualHardwareOld.vue +319 -319
  102. package/components/common/vm/actions/common/customizeHardware/virtualHardware/browseView/BrowseView.vue +219 -219
  103. package/components/common/vm/actions/common/customizeHardware/virtualHardware/bus/Bus.vue +99 -99
  104. package/components/common/vm/actions/common/customizeHardware/virtualHardware/bus/BusNew.vue +117 -117
  105. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/CdDvdDrive.vue +232 -232
  106. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/CdDvdDriveNew.vue +164 -164
  107. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/CdDvdDriveOld.vue +168 -168
  108. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/Media.vue +25 -25
  109. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/MediaNew.vue +70 -70
  110. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/MediaOld.vue +50 -50
  111. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/Cpu.vue +338 -338
  112. package/components/common/vm/actions/common/customizeHardware/virtualHardware/limit/Limit.vue +220 -220
  113. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/NewHardDisk.vue +368 -368
  114. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/NewHardDiskNew.vue +232 -232
  115. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/NewHardDiskOld.vue +250 -250
  116. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/mode/ModeOld.vue +56 -56
  117. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/sharing/SharingNew.vue +44 -44
  118. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/NewNetwork.vue +286 -286
  119. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/NewNetworkNew.vue +124 -124
  120. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/location/LocationOld.vue +134 -134
  121. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/location/new/New.vue +63 -63
  122. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/location/new/table/lib/config/config.ts +95 -95
  123. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/macAddress/MacAddress.vue +119 -119
  124. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/macAddress/MacAddressNew.vue +69 -69
  125. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/macAddress/MacAddressOld.vue +83 -83
  126. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/NewPciDevice.vue +205 -205
  127. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/directPathIo/DirectPathIoNew.vue +66 -66
  128. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/directPathIo/DirectPathIoOld.vue +62 -62
  129. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIo.vue +31 -31
  130. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIoNew.vue +84 -84
  131. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIoOld.vue +76 -76
  132. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/Note.vue +15 -15
  133. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/NoteNew.vue +42 -42
  134. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/NoteOld.vue +30 -30
  135. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/nvidiaGrid/NvidiaGrid.vue +41 -41
  136. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/nvidiaGrid/NvidiaGridNew.vue +81 -81
  137. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/nvidiaGrid/NvidiaGridOld.vue +84 -84
  138. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newUsbController/NewUsbControllerNew.vue +56 -56
  139. package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/Other.vue +16 -16
  140. package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/OtherNew.vue +30 -30
  141. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/VideoCardNew.vue +104 -104
  142. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/VideoCardOld.vue +112 -112
  143. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/totalVideoMemory/TotalVideoMemoryNew.vue +54 -54
  144. package/components/common/vm/actions/common/customizeHardware/vmoptions/Vmoptions.vue +145 -145
  145. package/components/common/vm/actions/common/customizeHardware/vmoptions/VmoptionsNew.vue +102 -102
  146. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/BootOptionsNew.vue +75 -75
  147. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/delay/Delay.vue +26 -26
  148. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/firmware/Firmware.vue +57 -57
  149. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/firmware/FirmwareNew.vue +42 -42
  150. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/menu/MenuNew.vue +25 -25
  151. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/Order.vue +171 -171
  152. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/OrderNew.vue +50 -50
  153. package/components/common/vm/actions/common/customizeHardware/vmoptions/generalOptions/GeneralOptionsNew.vue +141 -141
  154. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/New.vue +140 -140
  155. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/copyPaste/CopyPasteNew.vue +30 -30
  156. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/fileTransfer/FileTransferNew.vue +30 -30
  157. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/folderSharing/FolderSharingNew.vue +30 -30
  158. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/keymap/Keymap.vue +32 -32
  159. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/keymap/KeymapNew.vue +39 -39
  160. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/password/Password.vue +103 -103
  161. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/password/PasswordNew.vue +102 -102
  162. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/password/PasswordOld.vue +94 -94
  163. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirection.vue +28 -28
  164. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirectionNew.vue +38 -38
  165. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirectionOld.vue +44 -44
  166. package/components/common/vm/actions/common/lib/models/interfaces.ts +1 -0
  167. package/components/common/vm/actions/common/lib/utils/capabilities.ts +52 -51
  168. package/components/common/vm/actions/common/select/createType/CreateType.vue +74 -74
  169. package/components/common/vm/actions/common/select/storage/Storage.vue +130 -130
  170. package/components/common/vm/actions/common/select/storage/StorageOld.vue +129 -129
  171. package/components/common/vm/actions/common/select/template/Template.vue +65 -65
  172. package/components/common/vm/actions/common/select/template/TemplateTreeView.vue +88 -88
  173. package/components/common/vm/actions/editSettings/new/Skeleton.vue +88 -88
  174. package/components/common/wizards/datastore/add/lib/config/steps.ts +138 -138
  175. package/components/common/wizards/datastore/add/nfs/accessibility/Accessibility.vue +60 -60
  176. package/components/common/wizards/datastore/add/readyComplete/ReadyComplete.vue +92 -92
  177. package/components/common/wizards/network/add/steps/SelectConnectionType.vue +105 -105
  178. package/components/common/wizards/vm/migrate/lib/config/constructDataReady.ts +220 -220
  179. package/components/common/wizards/vm/migrate/select/network/Network.vue +103 -103
  180. package/components/common/wizards/vm/migrate/select/network/table/network/Network.vue +150 -150
  181. package/components/common/wizards/vm/migrate/select/network/table/network/lib/config/advancedTable.ts +91 -91
  182. package/components/common/wizards/vm/migrate/select/priority/Priority.vue +43 -43
  183. package/composables/productNameLocal.ts +30 -30
  184. package/composables/useAppVersion.ts +21 -21
  185. package/lib/models/store/interfaces.ts +1 -0
  186. package/lib/models/store/vm/interfaces.ts +2 -0
  187. package/package.json +1 -1
  188. package/plugins/date.ts +233 -233
  189. package/plugins/directives.ts +24 -24
  190. package/public/spice-console/lib/images/bitmap.js +203 -203
  191. package/public/spice-console/network/spicechannel.js +383 -383
  192. package/store/main/mutations.ts +7 -7
  193. package/store/main/state.ts +7 -7
  194. package/store/tasks/mappers/recentTasks.ts +64 -64
@@ -1,44 +1,44 @@
1
- <template>
2
- <ui-stack-block :has-children="false">
3
- <template #stackBlockKey>
4
- {{ localization.common.sharing }}
5
- </template>
6
- <template #stackBlockContent>
7
- <ui-select
8
- :id="`vm-wizard-disk-device-sharing-field-${props.index}`"
9
- v-model="sharing"
10
- width="auto"
11
- :disabled="props.disabled"
12
- :items="props.sharingOptions"
13
- :class="`vm-wizard-disk-device-sharing-field-${props.index} sharing`"
14
- :test-id="`vm-wizard-disk-device-sharing-field-${props.index}`"
15
- @click.stop
16
- />
17
- </template>
18
- </ui-stack-block>
19
- </template>
20
-
21
- <script setup lang="ts">
22
- import type { UI_I_Localization } from '~/lib/models/interfaces'
23
- import type { UI_I_OptionItem } from '~/components/atoms/lib/models/interfaces'
24
-
25
- const sharing = defineModel<string>('sharing')
26
-
27
- const props = defineProps<{
28
- index: number
29
- disabled: boolean
30
- errorText: string
31
- sharingOptions: UI_I_OptionItem[]
32
- }>()
33
- // const emits = defineEmits<{
34
- // (event: 'remove-error'): void
35
- // }>()
36
-
37
- const localization = computed<UI_I_Localization>(() => useLocal())
38
- </script>
39
-
40
- <style scoped>
41
- :deep(.sharing .ui-main-select-toggle) {
42
- width: 144px;
43
- }
44
- </style>
1
+ <template>
2
+ <ui-stack-block :has-children="false">
3
+ <template #stackBlockKey>
4
+ {{ localization.common.sharing }}
5
+ </template>
6
+ <template #stackBlockContent>
7
+ <ui-select
8
+ :id="`vm-wizard-disk-device-sharing-field-${props.index}`"
9
+ v-model="sharing"
10
+ width="auto"
11
+ :disabled="props.disabled"
12
+ :items="props.sharingOptions"
13
+ :class="`vm-wizard-disk-device-sharing-field-${props.index} sharing`"
14
+ :test-id="`vm-wizard-disk-device-sharing-field-${props.index}`"
15
+ @click.stop
16
+ />
17
+ </template>
18
+ </ui-stack-block>
19
+ </template>
20
+
21
+ <script setup lang="ts">
22
+ import type { UI_I_Localization } from '~/lib/models/interfaces'
23
+ import type { UI_I_OptionItem } from '~/components/atoms/lib/models/interfaces'
24
+
25
+ const sharing = defineModel<string>('sharing')
26
+
27
+ const props = defineProps<{
28
+ index: number
29
+ disabled: boolean
30
+ errorText: string
31
+ sharingOptions: UI_I_OptionItem[]
32
+ }>()
33
+ // const emits = defineEmits<{
34
+ // (event: 'remove-error'): void
35
+ // }>()
36
+
37
+ const localization = computed<UI_I_Localization>(() => useLocal())
38
+ </script>
39
+
40
+ <style scoped>
41
+ :deep(.sharing .ui-main-select-toggle) {
42
+ width: 144px;
43
+ }
44
+ </style>
@@ -1,286 +1,286 @@
1
- <template>
2
- <common-vm-actions-common-customize-hardware-virtual-hardware-new-network-new
3
- v-if="isNewView"
4
- v-model:selected-location="selectedLocation"
5
- v-model:adapter-type="adapterType"
6
- v-model:mac-address="macAddress"
7
- v-model:mac-address-type="macAddressType"
8
- v-model:new-network-invalid="newNetworkInvalid"
9
- :index="props.index"
10
- :type="props.type"
11
- :networks-table="props.networksTable"
12
- :error-validation-fields="props.errorValidationFields"
13
- :is-removable="isRemovable"
14
- :label="label"
15
- :error-text="apiError"
16
- :type-error="typeError"
17
- :location-options="locationOptions"
18
- :is-running="isRunning"
19
- :location-modal-is-show="locationModalIsShow"
20
- :state="props.state"
21
- @remove="emits('remove')"
22
- @remove-error-by-title="onRemoveValidationError"
23
- @change-location="changeLocation"
24
- @hide-location-modal="onHideLocationModal"
25
- @select-location="onSelectLocation"
26
- />
27
- <common-vm-actions-common-customize-hardware-virtual-hardware-new-network-old
28
- v-else
29
- v-model:selected-location="selectedLocation"
30
- v-model:adapter-type="adapterType"
31
- v-model:mac-address="macAddress"
32
- v-model:mac-address-type="macAddressType"
33
- v-model:new-network-invalid="newNetworkInvalid"
34
- :index="props.index"
35
- :type="props.type"
36
- :networks-table="props.networksTable"
37
- :error-validation-fields="props.errorValidationFields"
38
- :is-removable="isRemovable"
39
- :label="label"
40
- :error-text="apiError"
41
- :type-error="typeError"
42
- :location-options="locationOptions"
43
- :is-running="isRunning"
44
- :location-modal-is-show="locationModalIsShow"
45
- :state="props.state"
46
- @remove="emits('remove')"
47
- @remove-error-by-title="onRemoveValidationError"
48
- @change-location="changeLocation"
49
- @hide-location-modal="onHideLocationModal"
50
- @select-location="onSelectLocation"
51
- />
52
- </template>
53
-
54
- <script setup lang="ts">
55
- import type { UI_T_Project } from '~/lib/models/types'
56
- import type { UI_I_TablePayload } from '~/lib/models/table/interfaces'
57
- import type { UI_I_NetworkTableItem } from '~/lib/models/store/network/interfaces'
58
- import type { UI_I_ErrorValidationField } from '~/lib/models/store/interfaces'
59
- import type { UI_I_SendDataNewNetwork } from '~/components/common/vm/actions/common/customizeHardware/virtualHardware/lib/models/interfaces'
60
- import type { UI_T_NetworkType } from '~/components/common/vm/actions/common/customizeHardware/virtualHardware/lib/models/types'
61
- import type {
62
- UI_I_Localization,
63
- UI_I_HTMLSelectElement,
64
- } from '~/lib/models/interfaces'
65
- import type { UI_I_OptionItem } from '~/components/atoms/lib/models/interfaces'
66
-
67
- const props = defineProps<{
68
- project: UI_T_Project
69
- index: number
70
- type: UI_T_NetworkType
71
- network: UI_I_SendDataNewNetwork
72
- networksTable: UI_I_NetworkTableItem[]
73
- errorValidationFields: UI_I_ErrorValidationField[]
74
- isEdit: boolean
75
- state?: string | number
76
- }>()
77
- const emits = defineEmits<{
78
- (event: 'send-data', value: UI_I_SendDataNewNetwork): void
79
- (event: 'invalid', value: boolean): void
80
- (event: 'remove'): void
81
- (event: 'remove-error-by-title', value: string): void
82
- (event: 'get-networks-table', value: UI_I_TablePayload): void
83
- }>()
84
-
85
- const { $store }: any = useNuxtApp()
86
- const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
87
-
88
- const localization = computed<UI_I_Localization>(() => useLocal())
89
-
90
- const isRunning = computed<boolean>(() => {
91
- return props.state === 2
92
- })
93
-
94
- const isRemovable = computed<boolean>(() => {
95
- return (
96
- !props.isEdit ||
97
- !isRunning.value ||
98
- (isRunning.value && adapterType.value === 'virtio')
99
- )
100
- })
101
-
102
- const label = computed<string>(() => {
103
- if (props.type === 'edit')
104
- return `${localization.value.common.networkAdapter} ${props.index + 1}`
105
-
106
- return `${localization.value.common.newNetwork} *`
107
- })
108
-
109
- // const removeNetwork = (): void => {
110
- // emits('remove')
111
- // }
112
-
113
- const selectedLocationOld = ref<string>('')
114
- const selectedLocation = ref<string>('')
115
- const locationOptions = ref<UI_I_OptionItem[]>([])
116
-
117
- const getNetworks = (): void => {
118
- // if (props.networksTable.length) return // Из-за этого кода был баг. Открыть визард вм -> создать сеть -> открыть визард вм и в списке сетей нету новой сети
119
-
120
- const payload: UI_I_TablePayload = {
121
- pagination: {
122
- page: 1,
123
- pageSize: 100,
124
- },
125
- schema: 'full',
126
- type: 'network',
127
- sortBy: null,
128
- }
129
- emits('get-networks-table', payload)
130
- }
131
- getNetworks()
132
-
133
- const newNetworkInvalid = ref<boolean>(false)
134
- watch(
135
- newNetworkInvalid,
136
- (newValue) => {
137
- emits('invalid', newValue)
138
- },
139
- { immediate: true }
140
- )
141
-
142
- watch(
143
- () => props.networksTable,
144
- (newValue) => {
145
- const isExistValue = newValue.some(
146
- (network) => network.net_bridge === selectedLocation.value
147
- )
148
- if (!newValue.length) {
149
- locationOptions.value = [
150
- {
151
- text: localization.value.vmWizard.noAvailableNetworks,
152
- value: 'noAvailableNetworks',
153
- },
154
- ]
155
- selectedLocation.value = 'noAvailableNetworks'
156
- newNetworkInvalid.value = true
157
- return
158
- }
159
- newNetworkInvalid.value = false
160
-
161
- if (props.type === 'edit' || isExistValue) return
162
-
163
- selectedLocationOld.value = newValue[0].net_bridge
164
- selectedLocation.value = newValue[0].net_bridge
165
-
166
- locationOptions.value = [
167
- { text: newValue[0].name, value: newValue[0].net_bridge },
168
- { text: `${localization.value.common.browse}...`, value: '' },
169
- ]
170
- },
171
- { immediate: true }
172
- )
173
-
174
- const locationModalIsShow = ref<boolean>(false)
175
- const onHideLocationModal = (): void => {
176
- locationModalIsShow.value = false
177
- selectedLocation.value = selectedLocationOld.value
178
- }
179
- const changeLocation = (event: UI_I_HTMLSelectElement): void => {
180
- const value = event.target.value
181
- if (value === '') {
182
- locationModalIsShow.value = true
183
- return
184
- }
185
-
186
- selectedLocationOld.value = value
187
- selectedLocation.value = value
188
- // netBridge.value = value
189
- }
190
- const onSelectLocation = (network: UI_I_NetworkTableItem): void => {
191
- locationModalIsShow.value = false
192
-
193
- selectedLocationOld.value = network.net_bridge
194
- selectedLocation.value = network.net_bridge
195
-
196
- const hasNetwork = locationOptions.value.some(
197
- (option) => option.value === network.net_bridge
198
- )
199
- if (hasNetwork) {
200
- return
201
- }
202
-
203
- locationOptions.value = [
204
- ...locationOptions.value.slice(0, -1),
205
- { text: network.name, value: network.net_bridge },
206
- locationOptions.value[locationOptions.value.length - 1],
207
- ]
208
- }
209
-
210
- const adapterType = ref<string>('rtl8139')
211
-
212
- const target = ref<string>('')
213
-
214
- const macAddress = ref<string>('')
215
- const macAddressType = ref<string>('automatic')
216
-
217
- watch(
218
- [selectedLocation, adapterType, macAddress, macAddressType, locationOptions],
219
- () => {
220
- const option = locationOptions.value.find(
221
- (option) => option.value === selectedLocation.value
222
- )
223
- if (!option) return
224
-
225
- emits('send-data', {
226
- network: option.text,
227
- // net_bridge: props.project === 'procurator' ? option.value : '',
228
- net_bridge: option.value,
229
- target: target.value,
230
- model: adapterType.value,
231
- mac: macAddress.value,
232
- boot_order: props.network.boot_order,
233
- })
234
- },
235
- { immediate: true }
236
- )
237
-
238
- // Добавляем данные для редактирования
239
- watch(
240
- () => props.network,
241
- (newValue) => {
242
- // if (props.type !== 'edit') return
243
- if (props.type !== 'edit' && props.type !== 'clone') return
244
-
245
- locationOptions.value = [
246
- { text: newValue.network, value: newValue.net_bridge },
247
- { text: `${localization.value.common.browse}...`, value: '' },
248
- ]
249
- selectedLocation.value = newValue.net_bridge
250
-
251
- adapterType.value = newValue.model
252
- target.value = newValue.target
253
- // Сбрасываем mac address при клонировании
254
- macAddress.value = props.type === 'clone' ? '' : newValue.mac
255
- },
256
- { immediate: true }
257
- )
258
-
259
- watch(
260
- isRunning,
261
- (newValue) => {
262
- if (newValue && props.type === 'new') {
263
- adapterType.value = 'virtio'
264
- }
265
- },
266
- { immediate: true }
267
- )
268
-
269
- const typeError = computed<string>(
270
- () => `network_devices[${props.index}].network`
271
- )
272
-
273
- const apiError = computed<string>(() => {
274
- return (
275
- props.errorValidationFields?.find(
276
- (message) => message.field === typeError.value
277
- )?.error_message || ''
278
- )
279
- })
280
-
281
- const onRemoveValidationError = (): void => {
282
- emits('remove-error-by-title', typeError.value)
283
- }
284
- </script>
285
-
286
- <style scoped lang="scss"></style>
1
+ <template>
2
+ <common-vm-actions-common-customize-hardware-virtual-hardware-new-network-new
3
+ v-if="isNewView"
4
+ v-model:selected-location="selectedLocation"
5
+ v-model:adapter-type="adapterType"
6
+ v-model:mac-address="macAddress"
7
+ v-model:mac-address-type="macAddressType"
8
+ v-model:new-network-invalid="newNetworkInvalid"
9
+ :index="props.index"
10
+ :type="props.type"
11
+ :networks-table="props.networksTable"
12
+ :error-validation-fields="props.errorValidationFields"
13
+ :is-removable="isRemovable"
14
+ :label="label"
15
+ :error-text="apiError"
16
+ :type-error="typeError"
17
+ :location-options="locationOptions"
18
+ :is-running="isRunning"
19
+ :location-modal-is-show="locationModalIsShow"
20
+ :state="props.state"
21
+ @remove="emits('remove')"
22
+ @remove-error-by-title="onRemoveValidationError"
23
+ @change-location="changeLocation"
24
+ @hide-location-modal="onHideLocationModal"
25
+ @select-location="onSelectLocation"
26
+ />
27
+ <common-vm-actions-common-customize-hardware-virtual-hardware-new-network-old
28
+ v-else
29
+ v-model:selected-location="selectedLocation"
30
+ v-model:adapter-type="adapterType"
31
+ v-model:mac-address="macAddress"
32
+ v-model:mac-address-type="macAddressType"
33
+ v-model:new-network-invalid="newNetworkInvalid"
34
+ :index="props.index"
35
+ :type="props.type"
36
+ :networks-table="props.networksTable"
37
+ :error-validation-fields="props.errorValidationFields"
38
+ :is-removable="isRemovable"
39
+ :label="label"
40
+ :error-text="apiError"
41
+ :type-error="typeError"
42
+ :location-options="locationOptions"
43
+ :is-running="isRunning"
44
+ :location-modal-is-show="locationModalIsShow"
45
+ :state="props.state"
46
+ @remove="emits('remove')"
47
+ @remove-error-by-title="onRemoveValidationError"
48
+ @change-location="changeLocation"
49
+ @hide-location-modal="onHideLocationModal"
50
+ @select-location="onSelectLocation"
51
+ />
52
+ </template>
53
+
54
+ <script setup lang="ts">
55
+ import type { UI_T_Project } from '~/lib/models/types'
56
+ import type { UI_I_TablePayload } from '~/lib/models/table/interfaces'
57
+ import type { UI_I_NetworkTableItem } from '~/lib/models/store/network/interfaces'
58
+ import type { UI_I_ErrorValidationField } from '~/lib/models/store/interfaces'
59
+ import type { UI_I_SendDataNewNetwork } from '~/components/common/vm/actions/common/customizeHardware/virtualHardware/lib/models/interfaces'
60
+ import type { UI_T_NetworkType } from '~/components/common/vm/actions/common/customizeHardware/virtualHardware/lib/models/types'
61
+ import type {
62
+ UI_I_Localization,
63
+ UI_I_HTMLSelectElement,
64
+ } from '~/lib/models/interfaces'
65
+ import type { UI_I_OptionItem } from '~/components/atoms/lib/models/interfaces'
66
+
67
+ const props = defineProps<{
68
+ project: UI_T_Project
69
+ index: number
70
+ type: UI_T_NetworkType
71
+ network: UI_I_SendDataNewNetwork
72
+ networksTable: UI_I_NetworkTableItem[]
73
+ errorValidationFields: UI_I_ErrorValidationField[]
74
+ isEdit: boolean
75
+ state?: string | number
76
+ }>()
77
+ const emits = defineEmits<{
78
+ (event: 'send-data', value: UI_I_SendDataNewNetwork): void
79
+ (event: 'invalid', value: boolean): void
80
+ (event: 'remove'): void
81
+ (event: 'remove-error-by-title', value: string): void
82
+ (event: 'get-networks-table', value: UI_I_TablePayload): void
83
+ }>()
84
+
85
+ const { $store }: any = useNuxtApp()
86
+ const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
87
+
88
+ const localization = computed<UI_I_Localization>(() => useLocal())
89
+
90
+ const isRunning = computed<boolean>(() => {
91
+ return props.state === 2
92
+ })
93
+
94
+ const isRemovable = computed<boolean>(() => {
95
+ return (
96
+ !props.isEdit ||
97
+ !isRunning.value ||
98
+ (isRunning.value && adapterType.value === 'virtio')
99
+ )
100
+ })
101
+
102
+ const label = computed<string>(() => {
103
+ if (props.type === 'edit')
104
+ return `${localization.value.common.networkAdapter} ${props.index + 1}`
105
+
106
+ return `${localization.value.common.newNetwork} *`
107
+ })
108
+
109
+ // const removeNetwork = (): void => {
110
+ // emits('remove')
111
+ // }
112
+
113
+ const selectedLocationOld = ref<string>('')
114
+ const selectedLocation = ref<string>('')
115
+ const locationOptions = ref<UI_I_OptionItem[]>([])
116
+
117
+ const getNetworks = (): void => {
118
+ // if (props.networksTable.length) return // Из-за этого кода был баг. Открыть визард вм -> создать сеть -> открыть визард вм и в списке сетей нету новой сети
119
+
120
+ const payload: UI_I_TablePayload = {
121
+ pagination: {
122
+ page: 1,
123
+ pageSize: 100,
124
+ },
125
+ schema: 'full',
126
+ type: 'network',
127
+ sortBy: null,
128
+ }
129
+ emits('get-networks-table', payload)
130
+ }
131
+ getNetworks()
132
+
133
+ const newNetworkInvalid = ref<boolean>(false)
134
+ watch(
135
+ newNetworkInvalid,
136
+ (newValue) => {
137
+ emits('invalid', newValue)
138
+ },
139
+ { immediate: true }
140
+ )
141
+
142
+ watch(
143
+ () => props.networksTable,
144
+ (newValue) => {
145
+ const isExistValue = newValue.some(
146
+ (network) => network.net_bridge === selectedLocation.value
147
+ )
148
+ if (!newValue.length) {
149
+ locationOptions.value = [
150
+ {
151
+ text: localization.value.vmWizard.noAvailableNetworks,
152
+ value: 'noAvailableNetworks',
153
+ },
154
+ ]
155
+ selectedLocation.value = 'noAvailableNetworks'
156
+ newNetworkInvalid.value = true
157
+ return
158
+ }
159
+ newNetworkInvalid.value = false
160
+
161
+ if (props.type === 'edit' || isExistValue) return
162
+
163
+ selectedLocationOld.value = newValue[0].net_bridge
164
+ selectedLocation.value = newValue[0].net_bridge
165
+
166
+ locationOptions.value = [
167
+ { text: newValue[0].name, value: newValue[0].net_bridge },
168
+ { text: `${localization.value.common.browse}...`, value: '' },
169
+ ]
170
+ },
171
+ { immediate: true }
172
+ )
173
+
174
+ const locationModalIsShow = ref<boolean>(false)
175
+ const onHideLocationModal = (): void => {
176
+ locationModalIsShow.value = false
177
+ selectedLocation.value = selectedLocationOld.value
178
+ }
179
+ const changeLocation = (event: UI_I_HTMLSelectElement): void => {
180
+ const value = event.target.value
181
+ if (value === '') {
182
+ locationModalIsShow.value = true
183
+ return
184
+ }
185
+
186
+ selectedLocationOld.value = value
187
+ selectedLocation.value = value
188
+ // netBridge.value = value
189
+ }
190
+ const onSelectLocation = (network: UI_I_NetworkTableItem): void => {
191
+ locationModalIsShow.value = false
192
+
193
+ selectedLocationOld.value = network.net_bridge
194
+ selectedLocation.value = network.net_bridge
195
+
196
+ const hasNetwork = locationOptions.value.some(
197
+ (option) => option.value === network.net_bridge
198
+ )
199
+ if (hasNetwork) {
200
+ return
201
+ }
202
+
203
+ locationOptions.value = [
204
+ ...locationOptions.value.slice(0, -1),
205
+ { text: network.name, value: network.net_bridge },
206
+ locationOptions.value[locationOptions.value.length - 1],
207
+ ]
208
+ }
209
+
210
+ const adapterType = ref<string>('rtl8139')
211
+
212
+ const target = ref<string>('')
213
+
214
+ const macAddress = ref<string>('')
215
+ const macAddressType = ref<string>('automatic')
216
+
217
+ watch(
218
+ [selectedLocation, adapterType, macAddress, macAddressType, locationOptions],
219
+ () => {
220
+ const option = locationOptions.value.find(
221
+ (option) => option.value === selectedLocation.value
222
+ )
223
+ if (!option) return
224
+
225
+ emits('send-data', {
226
+ network: option.text,
227
+ // net_bridge: props.project === 'procurator' ? option.value : '',
228
+ net_bridge: option.value,
229
+ target: target.value,
230
+ model: adapterType.value,
231
+ mac: macAddress.value,
232
+ boot_order: props.network.boot_order,
233
+ })
234
+ },
235
+ { immediate: true }
236
+ )
237
+
238
+ // Добавляем данные для редактирования
239
+ watch(
240
+ () => props.network,
241
+ (newValue) => {
242
+ // if (props.type !== 'edit') return
243
+ if (props.type !== 'edit' && props.type !== 'clone') return
244
+
245
+ locationOptions.value = [
246
+ { text: newValue.network, value: newValue.net_bridge },
247
+ { text: `${localization.value.common.browse}...`, value: '' },
248
+ ]
249
+ selectedLocation.value = newValue.net_bridge
250
+
251
+ adapterType.value = newValue.model
252
+ target.value = newValue.target
253
+ // Сбрасываем mac address при клонировании
254
+ macAddress.value = props.type === 'clone' ? '' : newValue.mac
255
+ },
256
+ { immediate: true }
257
+ )
258
+
259
+ watch(
260
+ isRunning,
261
+ (newValue) => {
262
+ if (newValue && props.type === 'new') {
263
+ adapterType.value = 'virtio'
264
+ }
265
+ },
266
+ { immediate: true }
267
+ )
268
+
269
+ const typeError = computed<string>(
270
+ () => `network_devices[${props.index}].network`
271
+ )
272
+
273
+ const apiError = computed<string>(() => {
274
+ return (
275
+ props.errorValidationFields?.find(
276
+ (message) => message.field === typeError.value
277
+ )?.error_message || ''
278
+ )
279
+ })
280
+
281
+ const onRemoveValidationError = (): void => {
282
+ emits('remove-error-by-title', typeError.value)
283
+ }
284
+ </script>
285
+
286
+ <style scoped lang="scss"></style>