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,83 +1,83 @@
1
- <template>
2
- <div>
3
- <atoms-stack-block :has-children="false">
4
- <template #stackBlockKey>
5
- {{ localization.common.macAddress }}
6
- </template>
7
- <template #stackBlockContent>
8
- <div class="flex-align-center">
9
- <atoms-tooltip-error
10
- :has-error="!!props.errorText"
11
- :selector="`.vm-wizard-network-mac-address-field-${props.index}`"
12
- @remove="emits('remove-error')"
13
- >
14
- <template #elem>
15
- <input
16
- :id="`vm-wizard-network-mac-address-field-${props.index}`"
17
- v-model="macAddress"
18
- type="text"
19
- :data-id="`vm-wizard-network-mac-address-field-${props.index}`"
20
- :disabled="macAddressType === 'automatic' || props.disabled"
21
- :class="[
22
- `vm-wizard-network-mac-address-field-${props.index}`,
23
- { 'has-error': props.macAddressLocalErrorText },
24
- ]"
25
- />
26
- </template>
27
- <template #content>
28
- {{ props.errorText }}
29
- </template>
30
- </atoms-tooltip-error>
31
-
32
- <div class="select">
33
- <select
34
- :id="`mac-address-select-${props.index}`"
35
- v-model="macAddressType"
36
- :data-id="`mac-address-select-${props.index}`"
37
- :disabled="props.disabled"
38
- >
39
- <option
40
- v-for="(item, key) in props.macAddressOptions"
41
- :key="key"
42
- :value="item.value"
43
- >
44
- {{ item.text }}
45
- </option>
46
- </select>
47
- </div>
48
- </div>
49
- </template>
50
- </atoms-stack-block>
51
- </div>
52
- </template>
53
-
54
- <script setup lang="ts">
55
- import type {
56
- UI_I_Localization,
57
- } from '~/lib/models/interfaces'
58
- import type { UI_I_OptionItem } from '~/components/atoms/lib/models/interfaces'
59
-
60
- const macAddress = defineModel<string>('macAddress', { required: true })
61
- const macAddressType = defineModel<string>('macAddressType', {
62
- required: true,
63
- })
64
-
65
- const props = defineProps<{
66
- index: number
67
- disabled: boolean
68
- errorText: string
69
- macAddressLocalErrorText: string
70
- macAddressOptions: UI_I_OptionItem[]
71
- }>()
72
- const emits = defineEmits<{
73
- (event: 'remove-error'): void
74
- }>()
75
-
76
- const localization = computed<UI_I_Localization>(() => useLocal())
77
- </script>
78
-
79
- <style scoped lang="scss">
80
- .has-error {
81
- border: 1px solid #db2100;
82
- }
83
- </style>
1
+ <template>
2
+ <div>
3
+ <atoms-stack-block :has-children="false">
4
+ <template #stackBlockKey>
5
+ {{ localization.common.macAddress }}
6
+ </template>
7
+ <template #stackBlockContent>
8
+ <div class="flex-align-center">
9
+ <atoms-tooltip-error
10
+ :has-error="!!props.errorText"
11
+ :selector="`.vm-wizard-network-mac-address-field-${props.index}`"
12
+ @remove="emits('remove-error')"
13
+ >
14
+ <template #elem>
15
+ <input
16
+ :id="`vm-wizard-network-mac-address-field-${props.index}`"
17
+ v-model="macAddress"
18
+ type="text"
19
+ :data-id="`vm-wizard-network-mac-address-field-${props.index}`"
20
+ :disabled="macAddressType === 'automatic' || props.disabled"
21
+ :class="[
22
+ `vm-wizard-network-mac-address-field-${props.index}`,
23
+ { 'has-error': props.macAddressLocalErrorText },
24
+ ]"
25
+ />
26
+ </template>
27
+ <template #content>
28
+ {{ props.errorText }}
29
+ </template>
30
+ </atoms-tooltip-error>
31
+
32
+ <div class="select">
33
+ <select
34
+ :id="`mac-address-select-${props.index}`"
35
+ v-model="macAddressType"
36
+ :data-id="`mac-address-select-${props.index}`"
37
+ :disabled="props.disabled"
38
+ >
39
+ <option
40
+ v-for="(item, key) in props.macAddressOptions"
41
+ :key="key"
42
+ :value="item.value"
43
+ >
44
+ {{ item.text }}
45
+ </option>
46
+ </select>
47
+ </div>
48
+ </div>
49
+ </template>
50
+ </atoms-stack-block>
51
+ </div>
52
+ </template>
53
+
54
+ <script setup lang="ts">
55
+ import type {
56
+ UI_I_Localization,
57
+ } from '~/lib/models/interfaces'
58
+ import type { UI_I_OptionItem } from '~/components/atoms/lib/models/interfaces'
59
+
60
+ const macAddress = defineModel<string>('macAddress', { required: true })
61
+ const macAddressType = defineModel<string>('macAddressType', {
62
+ required: true,
63
+ })
64
+
65
+ const props = defineProps<{
66
+ index: number
67
+ disabled: boolean
68
+ errorText: string
69
+ macAddressLocalErrorText: string
70
+ macAddressOptions: UI_I_OptionItem[]
71
+ }>()
72
+ const emits = defineEmits<{
73
+ (event: 'remove-error'): void
74
+ }>()
75
+
76
+ const localization = computed<UI_I_Localization>(() => useLocal())
77
+ </script>
78
+
79
+ <style scoped lang="scss">
80
+ .has-error {
81
+ border: 1px solid #db2100;
82
+ }
83
+ </style>
@@ -1,205 +1,205 @@
1
- <template>
2
- <common-vm-actions-common-customize-hardware-virtual-hardware-new-pci-device-new
3
- v-if="isNewView"
4
- v-model:selected-type="selectedType"
5
- v-model:direct-path-io="directPathIo"
6
- v-model:dynamic-direct-path-io="dynamicDirectPathIo"
7
- v-model:nvidia-grid-profile="nvidiaGridProfile"
8
- :index="props.index"
9
- :passthrough-devices="props.passthroughDevices"
10
- :mediated-devices="props.mediatedDevices"
11
- :type="props.type"
12
- :is-removable="isRemovable"
13
- :label="label"
14
- :selected-label="selectedLabel"
15
- :pci-device-type-options="pciDeviceTypeOptions"
16
- @remove="emits('remove')"
17
- />
18
- <common-vm-actions-common-customize-hardware-virtual-hardware-new-pci-device-old
19
- v-else
20
- v-model:selected-type="selectedType"
21
- v-model:direct-path-io="directPathIo"
22
- v-model:dynamic-direct-path-io="dynamicDirectPathIo"
23
- v-model:nvidia-grid-profile="nvidiaGridProfile"
24
- :index="props.index"
25
- :passthrough-devices="props.passthroughDevices"
26
- :mediated-devices="props.mediatedDevices"
27
- :type="props.type"
28
- :is-removable="isRemovable"
29
- :label="label"
30
- :selected-label="selectedLabel"
31
- :pci-device-type-options="pciDeviceTypeOptions"
32
- @remove="emits('remove')"
33
- />
34
- </template>
35
-
36
- <script setup lang="ts">
37
- import type { UI_I_Localization } from '~/lib/models/interfaces'
38
- import type { UI_I_OptionItem } from '~/components/atoms/lib/models/interfaces'
39
- import type { UI_I_SendDataNewPciDevice } from '~/components/common/vm/actions/common/customizeHardware/virtualHardware/lib/models/interfaces'
40
- import type { UI_T_PciDeviceType } from '~/components/common/vm/actions/common/customizeHardware/virtualHardware/lib/models/types'
41
- import type {
42
- UI_I_MediatedDevice,
43
- UI_I_PciDevice,
44
- } from '~/lib/models/store/vm/interfaces'
45
- import type { UI_I_Option } from '~/components/atoms/select/lib/models/interfaces'
46
- import { pciDeviceTypeOptionsFunc } from '~/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/lib/config/options'
47
-
48
- const props = defineProps<{
49
- index: number
50
- pciDevice: UI_I_SendDataNewPciDevice
51
- passthroughDevices: UI_I_PciDevice[]
52
- mediatedDevices: UI_I_MediatedDevice[]
53
- type: UI_T_PciDeviceType
54
- isEdit: boolean
55
- state?: string | number
56
- // errorValidationFields: UI_I_ErrorValidationField<string>[]
57
- }>()
58
- const emits = defineEmits<{
59
- (event: 'send-data', value: UI_I_SendDataNewPciDevice): void
60
- (event: 'remove'): void
61
- }>()
62
-
63
- const { $store }: any = useNuxtApp()
64
- const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
65
-
66
- const localization = computed<UI_I_Localization>(() => useLocal())
67
-
68
- const isRunning = computed<boolean>(() => {
69
- return props.state === 2
70
- })
71
-
72
- const isRemovable = computed<boolean>(() => {
73
- return !props.isEdit || !isRunning.value
74
- })
75
-
76
- const label = computed<string>(() => {
77
- if (props.type === 'edit')
78
- return `${localization.value.common.newPciDevice} ${props.index + 1}`
79
-
80
- return `${localization.value.common.pciDevice} *`
81
- })
82
-
83
- const selectedLabel = computed<string>(() => {
84
- if (props.pciDevice.address) {
85
- return `${props.pciDevice.address} | ${props.pciDevice.device_name}`
86
- }
87
- switch (selectedType.value.value) {
88
- case 'direct_path_io':
89
- return `${directPathIo.value?.address} | ${directPathIo.value?.device_name}`
90
- case 'dynamic_direct_path_io':
91
- return `${dynamicDirectPathIo.value?.address} | ${dynamicDirectPathIo.value?.device_name}`
92
- default:
93
- return nvidiaGridProfile.value?.text
94
- }
95
- })
96
-
97
- const pciDeviceTypeOptions = ref<UI_I_OptionItem[]>(
98
- pciDeviceTypeOptionsFunc(
99
- !props.passthroughDevices.length,
100
- !props.mediatedDevices.length
101
- )
102
- )
103
- const selectedType = ref<UI_I_OptionItem>(pciDeviceTypeOptions.value[0])
104
- pciDeviceTypeOptions.value.forEach((option) => {
105
- if (!option.disabled) selectedType.value = option
106
- })
107
-
108
- const directPathIo = ref<string>('') /// TODO
109
- const dynamicDirectPathIo = ref<UI_I_PciDevice>(props.passthroughDevices[0])
110
- const nvidiaGridProfile = ref<UI_I_Option | null>(null)
111
-
112
- watch(
113
- [() => props.pciDevice, () => props.mediatedDevices],
114
- ([newValue1]) => {
115
- // const passthroughDevice = props.passthroughDevices.find(
116
- // (item) => item.address === newValue.address
117
- // )
118
- // passthroughDevice && (directPathIo.value = passthroughDevice) // Todo change
119
- if (newValue1) {
120
- // directPathIo.value = newValue1
121
- const passthroughDevice = props.passthroughDevices.find((device) => {
122
- return (
123
- device.class_name + '_' + device.address ===
124
- newValue1.class_name + '_' + newValue1.address
125
- )
126
- })
127
- if (passthroughDevice) {
128
- dynamicDirectPathIo.value = passthroughDevice
129
- }
130
-
131
- const mediatedDevice = props.mediatedDevices.find((device) => {
132
- return (
133
- device.profile_name + '_' + device.root_device ===
134
- newValue1.class_name + '_' + newValue1.address
135
- )
136
- })
137
- if (mediatedDevice) {
138
- nvidiaGridProfile.value = {
139
- text: mediatedDevice.human_readable,
140
- value: mediatedDevice.profile_name + '_' + mediatedDevice.root_device,
141
- }
142
-
143
- selectedType.value =
144
- pciDeviceTypeOptions.value.find(
145
- (option) => option.value === 'nvidia_grid'
146
- ) || selectedType.value
147
- }
148
- }
149
- },
150
- { immediate: true, deep: true }
151
- )
152
-
153
- const sendData = computed<UI_I_SendDataNewPciDevice>(() => {
154
- const nvidia = props.mediatedDevices.find(
155
- (device) =>
156
- nvidiaGridProfile.value?.value ===
157
- device.profile_name + '_' + device.root_device
158
- )
159
- switch (selectedType.value.value) {
160
- case 'direct_path_io':
161
- return {
162
- address: '',
163
- vendor_name: '',
164
- class_name: '',
165
- device_name: '',
166
- mediated_device: false,
167
- }
168
- case 'dynamic_direct_path_io':
169
- return {
170
- address: dynamicDirectPathIo.value?.address || '',
171
- vendor_name: dynamicDirectPathIo.value?.vendor_name || '',
172
- class_name: dynamicDirectPathIo.value?.class_name || '',
173
- device_name: dynamicDirectPathIo.value?.device_name || '',
174
- mediated_device: false,
175
- }
176
- case 'nvidia_grid':
177
- return {
178
- address: nvidia?.root_device || '',
179
- vendor_name: '',
180
- class_name: nvidia?.profile_name || '',
181
- device_name: nvidia?.name || '',
182
- mediated_device: true,
183
- mediated_device_uuid: '',
184
- }
185
- default:
186
- return {
187
- address: '',
188
- vendor_name: '',
189
- class_name: '',
190
- device_name: '',
191
- mediated_device: false,
192
- }
193
- }
194
- })
195
-
196
- watch(
197
- sendData,
198
- (newValue) => {
199
- emits('send-data', props.type === 'edit' ? props.pciDevice : newValue)
200
- },
201
- { immediate: true }
202
- )
203
- </script>
204
-
205
- <style scoped lang="scss"></style>
1
+ <template>
2
+ <common-vm-actions-common-customize-hardware-virtual-hardware-new-pci-device-new
3
+ v-if="isNewView"
4
+ v-model:selected-type="selectedType"
5
+ v-model:direct-path-io="directPathIo"
6
+ v-model:dynamic-direct-path-io="dynamicDirectPathIo"
7
+ v-model:nvidia-grid-profile="nvidiaGridProfile"
8
+ :index="props.index"
9
+ :passthrough-devices="props.passthroughDevices"
10
+ :mediated-devices="props.mediatedDevices"
11
+ :type="props.type"
12
+ :is-removable="isRemovable"
13
+ :label="label"
14
+ :selected-label="selectedLabel"
15
+ :pci-device-type-options="pciDeviceTypeOptions"
16
+ @remove="emits('remove')"
17
+ />
18
+ <common-vm-actions-common-customize-hardware-virtual-hardware-new-pci-device-old
19
+ v-else
20
+ v-model:selected-type="selectedType"
21
+ v-model:direct-path-io="directPathIo"
22
+ v-model:dynamic-direct-path-io="dynamicDirectPathIo"
23
+ v-model:nvidia-grid-profile="nvidiaGridProfile"
24
+ :index="props.index"
25
+ :passthrough-devices="props.passthroughDevices"
26
+ :mediated-devices="props.mediatedDevices"
27
+ :type="props.type"
28
+ :is-removable="isRemovable"
29
+ :label="label"
30
+ :selected-label="selectedLabel"
31
+ :pci-device-type-options="pciDeviceTypeOptions"
32
+ @remove="emits('remove')"
33
+ />
34
+ </template>
35
+
36
+ <script setup lang="ts">
37
+ import type { UI_I_Localization } from '~/lib/models/interfaces'
38
+ import type { UI_I_OptionItem } from '~/components/atoms/lib/models/interfaces'
39
+ import type { UI_I_SendDataNewPciDevice } from '~/components/common/vm/actions/common/customizeHardware/virtualHardware/lib/models/interfaces'
40
+ import type { UI_T_PciDeviceType } from '~/components/common/vm/actions/common/customizeHardware/virtualHardware/lib/models/types'
41
+ import type {
42
+ UI_I_MediatedDevice,
43
+ UI_I_PciDevice,
44
+ } from '~/lib/models/store/vm/interfaces'
45
+ import type { UI_I_Option } from '~/components/atoms/select/lib/models/interfaces'
46
+ import { pciDeviceTypeOptionsFunc } from '~/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/lib/config/options'
47
+
48
+ const props = defineProps<{
49
+ index: number
50
+ pciDevice: UI_I_SendDataNewPciDevice
51
+ passthroughDevices: UI_I_PciDevice[]
52
+ mediatedDevices: UI_I_MediatedDevice[]
53
+ type: UI_T_PciDeviceType
54
+ isEdit: boolean
55
+ state?: string | number
56
+ // errorValidationFields: UI_I_ErrorValidationField<string>[]
57
+ }>()
58
+ const emits = defineEmits<{
59
+ (event: 'send-data', value: UI_I_SendDataNewPciDevice): void
60
+ (event: 'remove'): void
61
+ }>()
62
+
63
+ const { $store }: any = useNuxtApp()
64
+ const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
65
+
66
+ const localization = computed<UI_I_Localization>(() => useLocal())
67
+
68
+ const isRunning = computed<boolean>(() => {
69
+ return props.state === 2
70
+ })
71
+
72
+ const isRemovable = computed<boolean>(() => {
73
+ return !props.isEdit || !isRunning.value
74
+ })
75
+
76
+ const label = computed<string>(() => {
77
+ if (props.type === 'edit')
78
+ return `${localization.value.common.newPciDevice} ${props.index + 1}`
79
+
80
+ return `${localization.value.common.pciDevice} *`
81
+ })
82
+
83
+ const selectedLabel = computed<string>(() => {
84
+ if (props.pciDevice.address) {
85
+ return `${props.pciDevice.address} | ${props.pciDevice.device_name}`
86
+ }
87
+ switch (selectedType.value.value) {
88
+ case 'direct_path_io':
89
+ return `${directPathIo.value?.address} | ${directPathIo.value?.device_name}`
90
+ case 'dynamic_direct_path_io':
91
+ return `${dynamicDirectPathIo.value?.address} | ${dynamicDirectPathIo.value?.device_name}`
92
+ default:
93
+ return nvidiaGridProfile.value?.text
94
+ }
95
+ })
96
+
97
+ const pciDeviceTypeOptions = ref<UI_I_OptionItem[]>(
98
+ pciDeviceTypeOptionsFunc(
99
+ !props.passthroughDevices.length,
100
+ !props.mediatedDevices.length
101
+ )
102
+ )
103
+ const selectedType = ref<UI_I_OptionItem>(pciDeviceTypeOptions.value[0])
104
+ pciDeviceTypeOptions.value.forEach((option) => {
105
+ if (!option.disabled) selectedType.value = option
106
+ })
107
+
108
+ const directPathIo = ref<string>('') /// TODO
109
+ const dynamicDirectPathIo = ref<UI_I_PciDevice>(props.passthroughDevices[0])
110
+ const nvidiaGridProfile = ref<UI_I_Option | null>(null)
111
+
112
+ watch(
113
+ [() => props.pciDevice, () => props.mediatedDevices],
114
+ ([newValue1]) => {
115
+ // const passthroughDevice = props.passthroughDevices.find(
116
+ // (item) => item.address === newValue.address
117
+ // )
118
+ // passthroughDevice && (directPathIo.value = passthroughDevice) // Todo change
119
+ if (newValue1) {
120
+ // directPathIo.value = newValue1
121
+ const passthroughDevice = props.passthroughDevices.find((device) => {
122
+ return (
123
+ device.class_name + '_' + device.address ===
124
+ newValue1.class_name + '_' + newValue1.address
125
+ )
126
+ })
127
+ if (passthroughDevice) {
128
+ dynamicDirectPathIo.value = passthroughDevice
129
+ }
130
+
131
+ const mediatedDevice = props.mediatedDevices.find((device) => {
132
+ return (
133
+ device.profile_name + '_' + device.root_device ===
134
+ newValue1.class_name + '_' + newValue1.address
135
+ )
136
+ })
137
+ if (mediatedDevice) {
138
+ nvidiaGridProfile.value = {
139
+ text: mediatedDevice.human_readable,
140
+ value: mediatedDevice.profile_name + '_' + mediatedDevice.root_device,
141
+ }
142
+
143
+ selectedType.value =
144
+ pciDeviceTypeOptions.value.find(
145
+ (option) => option.value === 'nvidia_grid'
146
+ ) || selectedType.value
147
+ }
148
+ }
149
+ },
150
+ { immediate: true, deep: true }
151
+ )
152
+
153
+ const sendData = computed<UI_I_SendDataNewPciDevice>(() => {
154
+ const nvidia = props.mediatedDevices.find(
155
+ (device) =>
156
+ nvidiaGridProfile.value?.value ===
157
+ device.profile_name + '_' + device.root_device
158
+ )
159
+ switch (selectedType.value.value) {
160
+ case 'direct_path_io':
161
+ return {
162
+ address: '',
163
+ vendor_name: '',
164
+ class_name: '',
165
+ device_name: '',
166
+ mediated_device: false,
167
+ }
168
+ case 'dynamic_direct_path_io':
169
+ return {
170
+ address: dynamicDirectPathIo.value?.address || '',
171
+ vendor_name: dynamicDirectPathIo.value?.vendor_name || '',
172
+ class_name: dynamicDirectPathIo.value?.class_name || '',
173
+ device_name: dynamicDirectPathIo.value?.device_name || '',
174
+ mediated_device: false,
175
+ }
176
+ case 'nvidia_grid':
177
+ return {
178
+ address: nvidia?.root_device || '',
179
+ vendor_name: '',
180
+ class_name: nvidia?.profile_name || '',
181
+ device_name: nvidia?.name || '',
182
+ mediated_device: true,
183
+ mediated_device_uuid: '',
184
+ }
185
+ default:
186
+ return {
187
+ address: '',
188
+ vendor_name: '',
189
+ class_name: '',
190
+ device_name: '',
191
+ mediated_device: false,
192
+ }
193
+ }
194
+ })
195
+
196
+ watch(
197
+ sendData,
198
+ (newValue) => {
199
+ emits('send-data', props.type === 'edit' ? props.pciDevice : newValue)
200
+ },
201
+ { immediate: true }
202
+ )
203
+ </script>
204
+
205
+ <style scoped lang="scss"></style>