bfg-common 1.5.43 → 1.5.45

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 (185) 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/DataGrid.vue +1 -1
  14. package/components/atoms/table/dataGrid/DataGridColumnSwitch.vue +222 -222
  15. package/components/atoms/table/dataGrid/lib/config/settingsTable.ts +94 -94
  16. package/components/atoms/table/dataGrid/lib/utils/export.ts +16 -16
  17. package/components/atoms/tabs/VerticalTabs.vue +105 -105
  18. package/components/atoms/tooltip/Signpost.vue +227 -227
  19. package/components/common/accordion/Recursion.vue +222 -222
  20. package/components/common/browse/BrowseNew.vue +237 -237
  21. package/components/common/browse/BrowseOld.vue +217 -217
  22. package/components/common/browse/blocks/contents/Files.vue +37 -37
  23. package/components/common/browse/blocks/contents/FilesOld.vue +72 -72
  24. package/components/common/browse/blocks/contents/filesNew/FilesNew.vue +96 -96
  25. package/components/common/browse/blocks/contents/filesNew/Skeleton.vue +18 -18
  26. package/components/common/context/Context.vue +111 -111
  27. package/components/common/context/lib/models/interfaces.ts +31 -31
  28. package/components/common/context/recursion/Recursion.vue +87 -87
  29. package/components/common/context/recursion/RecursionNew.vue +238 -238
  30. package/components/common/context/recursion/RecursionOld.vue +228 -228
  31. package/components/common/details/DetailsItem.vue +109 -109
  32. package/components/common/diagramMain/DiagramMain.vue +897 -897
  33. package/components/common/diagramMain/Header.vue +214 -214
  34. package/components/common/layout/theHeader/helpMenu/About.vue +82 -82
  35. package/components/common/layout/theHeader/helpMenu/aboutNew/AboutNew.vue +103 -103
  36. package/components/common/layout/theHeader/userMenu/modals/preferences/view/ViewOld.vue +112 -112
  37. package/components/common/mainNavigationPanel/MainNavigationPanelNew.vue +336 -336
  38. package/components/common/mainNavigationPanel/MainNavigationPanelOld.vue +311 -311
  39. package/components/common/modals/unsavedChanges/UnsavedChanges.vue +56 -56
  40. package/components/common/monitor/overview/OverviewOld.vue +139 -139
  41. package/components/common/pages/home/StatusContent.vue +49 -49
  42. package/components/common/pages/home/headline/Headline.vue +45 -45
  43. package/components/common/pages/home/headline/HeadlineOld.vue +42 -42
  44. package/components/common/pages/home/lib/models/interfaces.ts +48 -48
  45. package/components/common/pages/home/widgets/Widgets.vue +49 -49
  46. package/components/common/pages/home/widgets/WidgetsNew.vue +86 -86
  47. package/components/common/pages/home/widgets/WidgetsOld.vue +34 -34
  48. package/components/common/pages/home/widgets/hosts/Hosts.vue +27 -27
  49. package/components/common/pages/home/widgets/hosts/lib/config/items.ts +23 -23
  50. package/components/common/pages/home/widgets/vms/Vms.vue +26 -26
  51. package/components/common/pages/home/widgets/vms/VmsOld.vue +35 -35
  52. package/components/common/pages/home/widgets/vms/lib/config/items.ts +19 -19
  53. package/components/common/pages/licensing/Licensing.vue +128 -0
  54. package/components/common/pages/licensing/lib/models/interfaces.ts +22 -0
  55. package/components/common/pages/licensing/lib/utils/validation.ts +29 -0
  56. package/components/common/pages/licensing/listView/ListView.vue +50 -0
  57. package/components/common/pages/licensing/listView/lib/config/list.ts +57 -0
  58. package/components/common/pages/licensing/listView/lib/models/interfaces.ts +5 -0
  59. package/components/common/pages/licensing/modals/assign/Assign.vue +247 -0
  60. package/components/common/pages/licensing/modals/assign/lib/config/tabsPannel.ts +17 -0
  61. package/components/common/pages/licensing/modals/assign/lib/models/interfaces.ts +5 -0
  62. package/components/common/pages/licensing/modals/assign/lib/utils/error.ts +25 -0
  63. package/components/common/pages/licensing/modals/assign/new/New.vue +216 -0
  64. package/components/common/pages/licensing/modals/assign/tableView/TableView.vue +193 -0
  65. package/components/common/pages/licensing/modals/assign/tableView/lib/config/table.ts +100 -0
  66. package/components/common/pages/licensing/modals/assign/tableView/lib/config/tableKeys.ts +10 -0
  67. package/components/common/pages/licensing/modals/assign/tableView/lib/models/interfaces.ts +9 -0
  68. package/components/common/pages/licensing/modals/assign/tableView/lib/models/types.ts +8 -0
  69. package/components/common/pages/packages/Packages.vue +208 -208
  70. package/components/common/pages/shortcuts/block/BlockNew.vue +96 -96
  71. package/components/common/pages/shortcuts/block/BlockOld.vue +68 -68
  72. package/components/common/portlets/customAttributes/Portlet.vue +667 -667
  73. package/components/common/portlets/tag/Portlet.vue +433 -433
  74. package/components/common/recursionTree/RecursionTree.vue +223 -223
  75. package/components/common/select/button/ButtonDropdown.vue +108 -108
  76. package/components/common/spiceConsole/Drawer.vue +370 -370
  77. package/components/common/spiceConsole/lib/models/interfaces.ts +5 -5
  78. package/components/common/split/horizontal/HorizontalNew.vue +376 -376
  79. package/components/common/split/horizontal/HorizontalOld.vue +337 -337
  80. package/components/common/split/vertical/Vertical.vue +160 -160
  81. package/components/common/tools/Actions.vue +188 -188
  82. package/components/common/vm/actions/add/Add.vue +774 -774
  83. package/components/common/vm/actions/add/lib/config/steps.ts +247 -247
  84. package/components/common/vm/actions/clone/Clone.vue +798 -798
  85. package/components/common/vm/actions/clone/lib/config/steps.ts +291 -291
  86. package/components/common/vm/actions/clone/toTemplate/ToTemplate.vue +634 -634
  87. package/components/common/vm/actions/clone/toTemplate/lib/config/steps.ts +116 -116
  88. package/components/common/vm/actions/common/customizeHardware/CustomizeHardware.vue +275 -275
  89. package/components/common/vm/actions/common/customizeHardware/CustomizeHardwareNew.vue +274 -274
  90. package/components/common/vm/actions/common/customizeHardware/CustomizeHardwareOld.vue +177 -177
  91. package/components/common/vm/actions/common/customizeHardware/virtualHardware/VirtualHardware.vue +698 -698
  92. package/components/common/vm/actions/common/customizeHardware/virtualHardware/VirtualHardwareNew.vue +410 -410
  93. package/components/common/vm/actions/common/customizeHardware/virtualHardware/VirtualHardwareOld.vue +319 -319
  94. package/components/common/vm/actions/common/customizeHardware/virtualHardware/browseView/BrowseView.vue +219 -219
  95. package/components/common/vm/actions/common/customizeHardware/virtualHardware/bus/Bus.vue +99 -99
  96. package/components/common/vm/actions/common/customizeHardware/virtualHardware/bus/BusNew.vue +117 -117
  97. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/CdDvdDrive.vue +232 -232
  98. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/CdDvdDriveNew.vue +164 -164
  99. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/CdDvdDriveOld.vue +168 -168
  100. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/Media.vue +25 -25
  101. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/MediaNew.vue +70 -70
  102. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/MediaOld.vue +50 -50
  103. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/Cpu.vue +338 -338
  104. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/shares/Shares.vue +140 -140
  105. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/shares/lib/config/options.ts +28 -28
  106. package/components/common/vm/actions/common/customizeHardware/virtualHardware/limit/Limit.vue +220 -220
  107. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/NewHardDisk.vue +368 -368
  108. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/NewHardDiskNew.vue +232 -232
  109. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/NewHardDiskOld.vue +250 -250
  110. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/mode/ModeOld.vue +56 -56
  111. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/sharing/SharingNew.vue +44 -44
  112. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/NewNetwork.vue +286 -286
  113. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/NewNetworkNew.vue +124 -124
  114. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/location/LocationOld.vue +134 -134
  115. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/location/new/New.vue +63 -63
  116. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/location/new/table/lib/config/config.ts +95 -95
  117. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/macAddress/MacAddress.vue +119 -119
  118. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/macAddress/MacAddressNew.vue +69 -69
  119. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/macAddress/MacAddressOld.vue +83 -83
  120. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/NewPciDevice.vue +205 -205
  121. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/directPathIo/DirectPathIoNew.vue +66 -66
  122. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/directPathIo/DirectPathIoOld.vue +62 -62
  123. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIo.vue +31 -31
  124. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIoNew.vue +84 -84
  125. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIoOld.vue +76 -76
  126. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/Note.vue +15 -15
  127. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/NoteNew.vue +42 -42
  128. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/NoteOld.vue +30 -30
  129. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/nvidiaGrid/NvidiaGrid.vue +41 -41
  130. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/nvidiaGrid/NvidiaGridNew.vue +81 -81
  131. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/nvidiaGrid/NvidiaGridOld.vue +84 -84
  132. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newUsbController/NewUsbControllerNew.vue +56 -56
  133. package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/Other.vue +16 -16
  134. package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/OtherNew.vue +30 -30
  135. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/VideoCardNew.vue +104 -104
  136. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/VideoCardOld.vue +112 -112
  137. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/totalVideoMemory/TotalVideoMemoryNew.vue +54 -54
  138. package/components/common/vm/actions/common/customizeHardware/vmoptions/Vmoptions.vue +145 -145
  139. package/components/common/vm/actions/common/customizeHardware/vmoptions/VmoptionsNew.vue +102 -102
  140. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/BootOptionsNew.vue +75 -75
  141. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/delay/Delay.vue +26 -26
  142. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/firmware/Firmware.vue +57 -57
  143. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/firmware/FirmwareNew.vue +42 -42
  144. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/menu/MenuNew.vue +25 -25
  145. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/Order.vue +171 -171
  146. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/OrderNew.vue +50 -50
  147. package/components/common/vm/actions/common/customizeHardware/vmoptions/generalOptions/GeneralOptionsNew.vue +141 -141
  148. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/New.vue +140 -140
  149. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/copyPaste/CopyPasteNew.vue +30 -30
  150. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/fileTransfer/FileTransferNew.vue +30 -30
  151. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/folderSharing/FolderSharingNew.vue +30 -30
  152. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/keymap/Keymap.vue +32 -32
  153. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/keymap/KeymapNew.vue +39 -39
  154. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/password/Password.vue +103 -103
  155. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/password/PasswordNew.vue +102 -102
  156. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/password/PasswordOld.vue +94 -94
  157. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirection.vue +28 -28
  158. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirectionNew.vue +38 -38
  159. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirectionOld.vue +44 -44
  160. package/components/common/vm/actions/common/lib/utils/capabilities.ts +52 -52
  161. package/components/common/vm/actions/common/select/createType/CreateType.vue +74 -74
  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/common/select/template/Template.vue +65 -65
  165. package/components/common/vm/actions/common/select/template/TemplateTreeView.vue +88 -88
  166. package/components/common/vm/actions/editSettings/new/Skeleton.vue +88 -88
  167. package/components/common/wizards/datastore/add/lib/config/steps.ts +138 -138
  168. package/components/common/wizards/datastore/add/nfs/accessibility/Accessibility.vue +60 -60
  169. package/components/common/wizards/datastore/add/readyComplete/ReadyComplete.vue +92 -92
  170. package/components/common/wizards/network/add/steps/SelectConnectionType.vue +105 -105
  171. package/components/common/wizards/vm/migrate/lib/config/constructDataReady.ts +220 -220
  172. package/components/common/wizards/vm/migrate/select/network/Network.vue +103 -103
  173. package/components/common/wizards/vm/migrate/select/network/table/network/Network.vue +150 -150
  174. package/components/common/wizards/vm/migrate/select/network/table/network/lib/config/advancedTable.ts +91 -91
  175. package/components/common/wizards/vm/migrate/select/priority/Priority.vue +43 -43
  176. package/composables/productNameLocal.ts +30 -30
  177. package/composables/useAppVersion.ts +21 -21
  178. package/package.json +1 -1
  179. package/plugins/date.ts +233 -233
  180. package/plugins/directives.ts +24 -24
  181. package/public/spice-console/lib/images/bitmap.js +203 -203
  182. package/public/spice-console/network/spicechannel.js +383 -383
  183. package/store/main/mutations.ts +7 -7
  184. package/store/main/state.ts +7 -7
  185. 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>