bfg-common 1.5.11 → 1.5.12

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 (165) hide show
  1. package/assets/localization/local_be.json +3 -1
  2. package/assets/localization/local_en.json +3 -1
  3. package/assets/localization/local_hy.json +3 -1
  4. package/assets/localization/local_kk.json +3 -1
  5. package/assets/localization/local_ru.json +3 -1
  6. package/assets/localization/local_zh.json +3 -1
  7. package/assets/scss/common/normalize.scss +361 -361
  8. package/components/atoms/TheIcon3.vue +50 -50
  9. package/components/atoms/autocomplete/Autocomplete.vue +301 -301
  10. package/components/atoms/collapse/CollapseNav.vue +165 -165
  11. package/components/atoms/dropdown/dropdown/Dropdown.vue +168 -168
  12. package/components/atoms/modal/bySteps/BySteps.vue +253 -253
  13. package/components/atoms/perPage/PerPage.vue +58 -58
  14. package/components/atoms/stack/StackBlock.vue +185 -185
  15. package/components/atoms/table/dataGrid/DataGridColumnSwitch.vue +222 -222
  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/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/graph/Graph.vue +104 -104
  35. package/components/common/layout/theHeader/helpMenu/About.vue +82 -82
  36. package/components/common/layout/theHeader/helpMenu/aboutNew/AboutNew.vue +103 -103
  37. package/components/common/layout/theHeader/userMenu/modals/preferences/view/ViewOld.vue +112 -112
  38. package/components/common/mainNavigationPanel/MainNavigationPanelNew.vue +335 -335
  39. package/components/common/mainNavigationPanel/MainNavigationPanelOld.vue +310 -310
  40. package/components/common/modals/unsavedChanges/UnsavedChanges.vue +56 -56
  41. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/table/lib/config/utils.ts +1040 -1040
  42. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/timespan/object/Object.vue +294 -294
  43. package/components/common/monitor/overview/OverviewOld.vue +139 -139
  44. package/components/common/pages/home/StatusContent.vue +49 -49
  45. package/components/common/pages/home/headline/Headline.vue +45 -45
  46. package/components/common/pages/home/headline/HeadlineOld.vue +42 -42
  47. package/components/common/pages/home/lib/models/interfaces.ts +48 -48
  48. package/components/common/pages/home/widgets/Widgets.vue +49 -49
  49. package/components/common/pages/home/widgets/WidgetsNew.vue +86 -86
  50. package/components/common/pages/home/widgets/WidgetsOld.vue +34 -34
  51. package/components/common/pages/home/widgets/hosts/Hosts.vue +27 -27
  52. package/components/common/pages/home/widgets/hosts/lib/config/items.ts +23 -23
  53. package/components/common/pages/home/widgets/vms/Vms.vue +26 -26
  54. package/components/common/pages/home/widgets/vms/VmsOld.vue +35 -35
  55. package/components/common/pages/home/widgets/vms/lib/config/items.ts +19 -19
  56. package/components/common/pages/packages/Packages.vue +208 -208
  57. package/components/common/pages/shortcuts/block/BlockNew.vue +96 -96
  58. package/components/common/pages/shortcuts/block/BlockOld.vue +68 -68
  59. package/components/common/portlets/customAttributes/Portlet.vue +667 -667
  60. package/components/common/portlets/tag/Portlet.vue +433 -433
  61. package/components/common/recursionTree/RecursionTree.vue +223 -223
  62. package/components/common/select/button/ButtonDropdown.vue +108 -108
  63. package/components/common/spiceConsole/Drawer.vue +370 -370
  64. package/components/common/spiceConsole/lib/models/interfaces.ts +5 -5
  65. package/components/common/split/horizontal/HorizontalNew.vue +376 -376
  66. package/components/common/split/horizontal/HorizontalOld.vue +337 -337
  67. package/components/common/split/vertical/Vertical.vue +160 -160
  68. package/components/common/tools/Actions.vue +188 -188
  69. package/components/common/vm/actions/add/Add.vue +622 -622
  70. package/components/common/vm/actions/clone/Clone.vue +639 -639
  71. package/components/common/vm/actions/clone/lib/config/steps.ts +129 -129
  72. package/components/common/vm/actions/clone/toTemplate/ToTemplate.vue +634 -634
  73. package/components/common/vm/actions/clone/toTemplate/lib/config/steps.ts +116 -116
  74. package/components/common/vm/actions/common/customizeHardware/CustomizeHardware.vue +275 -275
  75. package/components/common/vm/actions/common/customizeHardware/CustomizeHardwareNew.vue +274 -274
  76. package/components/common/vm/actions/common/customizeHardware/CustomizeHardwareOld.vue +177 -177
  77. package/components/common/vm/actions/common/customizeHardware/virtualHardware/VirtualHardware.vue +698 -698
  78. package/components/common/vm/actions/common/customizeHardware/virtualHardware/VirtualHardwareNew.vue +410 -410
  79. package/components/common/vm/actions/common/customizeHardware/virtualHardware/VirtualHardwareOld.vue +319 -319
  80. package/components/common/vm/actions/common/customizeHardware/virtualHardware/browseView/BrowseView.vue +219 -219
  81. package/components/common/vm/actions/common/customizeHardware/virtualHardware/bus/Bus.vue +99 -99
  82. package/components/common/vm/actions/common/customizeHardware/virtualHardware/bus/BusNew.vue +117 -117
  83. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/CdDvdDrive.vue +232 -232
  84. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/CdDvdDriveNew.vue +164 -164
  85. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/CdDvdDriveOld.vue +168 -168
  86. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/Media.vue +25 -25
  87. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/MediaNew.vue +70 -70
  88. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/MediaOld.vue +50 -50
  89. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/Cpu.vue +338 -338
  90. package/components/common/vm/actions/common/customizeHardware/virtualHardware/limit/Limit.vue +220 -220
  91. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/NewHardDisk.vue +368 -368
  92. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/NewHardDiskNew.vue +232 -232
  93. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/NewHardDiskOld.vue +250 -250
  94. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/mode/ModeOld.vue +56 -56
  95. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/sharing/SharingNew.vue +44 -44
  96. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/NewNetwork.vue +286 -286
  97. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/NewNetworkNew.vue +124 -124
  98. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/location/LocationOld.vue +134 -134
  99. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/location/new/New.vue +63 -63
  100. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/location/new/table/lib/config/config.ts +95 -95
  101. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/macAddress/MacAddress.vue +119 -119
  102. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/macAddress/MacAddressNew.vue +69 -69
  103. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/macAddress/MacAddressOld.vue +83 -83
  104. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/NewPciDevice.vue +205 -205
  105. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/directPathIo/DirectPathIoNew.vue +66 -66
  106. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/directPathIo/DirectPathIoOld.vue +62 -62
  107. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIo.vue +31 -31
  108. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIoNew.vue +84 -84
  109. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIoOld.vue +76 -76
  110. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/Note.vue +15 -15
  111. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/NoteNew.vue +42 -42
  112. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/NoteOld.vue +30 -30
  113. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/nvidiaGrid/NvidiaGrid.vue +41 -41
  114. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/nvidiaGrid/NvidiaGridNew.vue +81 -81
  115. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/nvidiaGrid/NvidiaGridOld.vue +84 -84
  116. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newUsbController/NewUsbControllerNew.vue +56 -56
  117. package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/Other.vue +16 -16
  118. package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/OtherNew.vue +30 -30
  119. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/VideoCardNew.vue +104 -104
  120. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/VideoCardOld.vue +112 -112
  121. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/totalVideoMemory/TotalVideoMemoryNew.vue +54 -54
  122. package/components/common/vm/actions/common/customizeHardware/vmoptions/Vmoptions.vue +145 -145
  123. package/components/common/vm/actions/common/customizeHardware/vmoptions/VmoptionsNew.vue +102 -102
  124. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/BootOptionsNew.vue +75 -75
  125. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/delay/Delay.vue +26 -26
  126. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/firmware/Firmware.vue +57 -57
  127. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/firmware/FirmwareNew.vue +42 -42
  128. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/menu/MenuNew.vue +25 -25
  129. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/Order.vue +171 -171
  130. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/OrderNew.vue +50 -50
  131. package/components/common/vm/actions/common/customizeHardware/vmoptions/generalOptions/GeneralOptionsNew.vue +141 -141
  132. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/New.vue +140 -140
  133. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/copyPaste/CopyPasteNew.vue +30 -30
  134. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/fileTransfer/FileTransferNew.vue +30 -30
  135. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/folderSharing/FolderSharingNew.vue +30 -30
  136. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/keymap/Keymap.vue +32 -32
  137. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/keymap/KeymapNew.vue +39 -39
  138. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/password/Password.vue +103 -103
  139. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/password/PasswordNew.vue +102 -102
  140. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/password/PasswordOld.vue +94 -94
  141. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirection.vue +28 -28
  142. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirectionNew.vue +38 -38
  143. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirectionOld.vue +44 -44
  144. package/components/common/vm/actions/common/select/storage/Storage.vue +130 -130
  145. package/components/common/vm/actions/common/select/storage/StorageOld.vue +129 -129
  146. package/components/common/vm/actions/editSettings/new/Skeleton.vue +88 -88
  147. package/components/common/wizards/datastore/add/lib/config/steps.ts +138 -138
  148. package/components/common/wizards/datastore/add/nfs/accessibility/Accessibility.vue +60 -60
  149. package/components/common/wizards/network/add/steps/SelectConnectionType.vue +105 -105
  150. package/components/common/wizards/vm/migrate/Migrate.vue +302 -302
  151. package/components/common/wizards/vm/migrate/lib/config/constructDataReady.ts +220 -220
  152. package/components/common/wizards/vm/migrate/select/network/Network.vue +103 -103
  153. package/components/common/wizards/vm/migrate/select/network/table/network/Network.vue +150 -150
  154. package/components/common/wizards/vm/migrate/select/network/table/network/lib/config/advancedTable.ts +91 -91
  155. package/components/common/wizards/vm/migrate/select/priority/Priority.vue +43 -43
  156. package/composables/productNameLocal.ts +30 -30
  157. package/composables/useAppVersion.ts +21 -21
  158. package/package.json +1 -1
  159. package/plugins/date.ts +233 -233
  160. package/plugins/directives.ts +24 -24
  161. package/public/spice-console/lib/images/bitmap.js +203 -203
  162. package/public/spice-console/network/spicechannel.js +383 -383
  163. package/store/main/mutations.ts +7 -7
  164. package/store/main/state.ts +7 -7
  165. 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>