bfg-common 1.4.736 → 1.4.737

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 (128) hide show
  1. package/assets/scss/common/normalize.scss +361 -361
  2. package/components/atoms/TheIcon3.vue +50 -50
  3. package/components/atoms/modal/bySteps/BySteps.vue +253 -253
  4. package/components/atoms/stack/StackBlock.vue +185 -185
  5. package/components/atoms/table/dataGrid/DataGrid.vue +1696 -1696
  6. package/components/atoms/table/dataGrid/DataGridColumnSwitch.vue +222 -222
  7. package/components/atoms/table/dataGrid/lib/config/settingsTable.ts +91 -91
  8. package/components/common/browse/BrowseNew.vue +237 -237
  9. package/components/common/browse/BrowseOld.vue +217 -217
  10. package/components/common/browse/blocks/contents/Files.vue +37 -37
  11. package/components/common/browse/blocks/contents/FilesOld.vue +72 -72
  12. package/components/common/browse/blocks/contents/filesNew/FilesNew.vue +96 -96
  13. package/components/common/browse/blocks/contents/filesNew/Skeleton.vue +18 -18
  14. package/components/common/context/lib/models/interfaces.ts +30 -30
  15. package/components/common/context/recursion/Recursion.vue +86 -86
  16. package/components/common/context/recursion/RecursionOld.vue +213 -213
  17. package/components/common/layout/theHeader/helpMenu/About.vue +82 -82
  18. package/components/common/layout/theHeader/helpMenu/aboutNew/AboutNew.vue +103 -103
  19. package/components/common/mainNavigationPanel/MainNavigationPanel.vue +150 -150
  20. package/components/common/mainNavigationPanel/MainNavigationPanelOld.vue +300 -300
  21. package/components/common/modals/confirmByInput/ConfirmByInput.vue +206 -206
  22. package/components/common/modals/unsavedChanges/UnsavedChanges.vue +56 -56
  23. package/components/common/pages/home/StatusContent.vue +49 -49
  24. package/components/common/pages/home/headline/Headline.vue +44 -44
  25. package/components/common/pages/home/headline/HeadlineNew.vue +71 -71
  26. package/components/common/pages/home/lib/models/interfaces.ts +48 -48
  27. package/components/common/pages/home/widgets/Widgets.vue +49 -49
  28. package/components/common/pages/home/widgets/WidgetsNew.vue +86 -86
  29. package/components/common/pages/home/widgets/WidgetsOld.vue +34 -34
  30. package/components/common/pages/home/widgets/hosts/Hosts.vue +27 -27
  31. package/components/common/pages/home/widgets/hosts/HostsNew.vue +100 -100
  32. package/components/common/pages/home/widgets/hosts/lib/config/items.ts +23 -23
  33. package/components/common/pages/home/widgets/services/lib/config/config.ts +108 -108
  34. package/components/common/pages/home/widgets/vms/Vms.vue +26 -26
  35. package/components/common/pages/home/widgets/vms/VmsNew.vue +101 -101
  36. package/components/common/pages/home/widgets/vms/VmsOld.vue +35 -35
  37. package/components/common/pages/home/widgets/vms/lib/config/items.ts +19 -19
  38. package/components/common/recursionTree/RecursionTree.vue +223 -223
  39. package/components/common/select/button/ButtonDropdown.vue +108 -108
  40. package/components/common/spiceConsole/Drawer.vue +370 -370
  41. package/components/common/spiceConsole/lib/models/interfaces.ts +5 -5
  42. package/components/common/split/vertical/Vertical.vue +160 -160
  43. package/components/common/vm/actions/add/Add.vue +621 -618
  44. package/components/common/vm/actions/clone/Clone.vue +639 -636
  45. package/components/common/vm/actions/clone/lib/config/steps.ts +129 -129
  46. package/components/common/vm/actions/common/customizeHardware/CustomizeHardware.vue +271 -270
  47. package/components/common/vm/actions/common/customizeHardware/CustomizeHardwareNew.vue +271 -271
  48. package/components/common/vm/actions/common/customizeHardware/CustomizeHardwareOld.vue +174 -160
  49. package/components/common/vm/actions/common/customizeHardware/virtualHardware/VirtualHardware.vue +2 -2
  50. package/components/common/vm/actions/common/customizeHardware/virtualHardware/VirtualHardwareNew.vue +2 -2
  51. package/components/common/vm/actions/common/customizeHardware/virtualHardware/VirtualHardwareOld.vue +2 -2
  52. package/components/common/vm/actions/common/customizeHardware/virtualHardware/browseView/BrowseView.vue +219 -219
  53. package/components/common/vm/actions/common/customizeHardware/virtualHardware/bus/BusNew.vue +117 -117
  54. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/CdDvdDriveNew.vue +161 -161
  55. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/CdDvdDriveOld.vue +165 -165
  56. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/Media.vue +25 -25
  57. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/MediaNew.vue +70 -70
  58. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/MediaOld.vue +50 -50
  59. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/Cpu.vue +338 -338
  60. package/components/common/vm/actions/common/customizeHardware/virtualHardware/limit/Limit.vue +220 -220
  61. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/mode/ModeOld.vue +56 -56
  62. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/sharing/SharingNew.vue +44 -44
  63. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/NewNetwork.vue +281 -281
  64. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/NewNetworkNew.vue +124 -124
  65. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/location/LocationOld.vue +134 -134
  66. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/location/new/New.vue +63 -63
  67. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/location/new/table/lib/config/config.ts +95 -95
  68. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/macAddress/MacAddress.vue +119 -119
  69. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/macAddress/MacAddressNew.vue +69 -69
  70. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/macAddress/MacAddressOld.vue +83 -83
  71. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/NewPciDevice.vue +193 -184
  72. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/NewPciDeviceNew.vue +12 -32
  73. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/NewPciDeviceOld.vue +7 -31
  74. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/directPathIo/DirectPathIo.vue +0 -4
  75. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/directPathIo/DirectPathIoNew.vue +66 -35
  76. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/directPathIo/DirectPathIoOld.vue +62 -37
  77. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIo.vue +31 -40
  78. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIoNew.vue +84 -48
  79. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIoOld.vue +76 -35
  80. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/Note.vue +15 -15
  81. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/NoteNew.vue +42 -42
  82. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/NoteOld.vue +30 -30
  83. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/nvidiaGrid/NvidiaGrid.vue +41 -26
  84. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/nvidiaGrid/NvidiaGridNew.vue +81 -30
  85. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/nvidiaGrid/NvidiaGridOld.vue +84 -31
  86. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newUsbController/NewUsbControllerNew.vue +56 -56
  87. package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/Other.vue +16 -16
  88. package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/OtherNew.vue +30 -30
  89. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/VideoCardNew.vue +104 -104
  90. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/VideoCardOld.vue +112 -112
  91. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/totalVideoMemory/TotalVideoMemoryNew.vue +54 -54
  92. package/components/common/vm/actions/common/customizeHardware/vmoptions/Vmoptions.vue +145 -145
  93. package/components/common/vm/actions/common/customizeHardware/vmoptions/VmoptionsNew.vue +102 -102
  94. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/BootOptionsNew.vue +75 -75
  95. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/delay/Delay.vue +26 -26
  96. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/firmware/Firmware.vue +57 -57
  97. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/firmware/FirmwareNew.vue +42 -42
  98. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/menu/MenuNew.vue +25 -25
  99. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/Order.vue +171 -171
  100. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/OrderNew.vue +50 -50
  101. package/components/common/vm/actions/common/customizeHardware/vmoptions/generalOptions/GeneralOptionsNew.vue +141 -141
  102. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/New.vue +140 -140
  103. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/copyPaste/CopyPasteNew.vue +30 -30
  104. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/fileTransfer/FileTransferNew.vue +30 -30
  105. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/folderSharing/FolderSharingNew.vue +30 -30
  106. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/keymap/Keymap.vue +32 -32
  107. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/keymap/KeymapNew.vue +39 -39
  108. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/password/Password.vue +103 -103
  109. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/password/PasswordNew.vue +102 -102
  110. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/password/PasswordOld.vue +94 -94
  111. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirection.vue +28 -28
  112. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirectionNew.vue +38 -38
  113. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirectionOld.vue +44 -44
  114. package/components/common/vm/actions/common/select/storage/Storage.vue +130 -130
  115. package/components/common/vm/actions/common/select/storage/StorageOld.vue +129 -129
  116. package/components/common/vm/actions/editSettings/EditSettings.vue +2 -1
  117. package/components/common/vm/actions/editSettings/new/Skeleton.vue +88 -88
  118. package/composables/productNameLocal.ts +30 -30
  119. package/composables/useAppVersion.ts +21 -21
  120. package/lib/models/store/vm/interfaces.ts +11 -0
  121. package/package.json +3 -3
  122. package/plugins/date.ts +233 -233
  123. package/plugins/recursion.ts +311 -311
  124. package/public/spice-console/lib/images/bitmap.js +203 -203
  125. package/public/spice-console/network/spicechannel.js +383 -383
  126. package/store/main/mutations.ts +7 -7
  127. package/store/main/state.ts +7 -7
  128. 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,184 +1,193 @@
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 { UI_I_PciDevice } from '~/lib/models/store/vm/interfaces'
42
- import { pciDeviceTypeOptionsFunc } from '~/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/lib/config/options'
43
-
44
- const props = defineProps<{
45
- index: number
46
- pciDevice: UI_I_SendDataNewPciDevice
47
- passthroughDevices: UI_I_PciDevice[]
48
- mediatedDevices: any[]
49
- type: UI_T_PciDeviceType
50
- isEdit: boolean
51
- state?: string | number
52
- // errorValidationFields: UI_I_ErrorValidationField<string>[]
53
- }>()
54
- const emits = defineEmits<{
55
- (event: 'send-data', value: UI_I_SendDataNewPciDevice): void
56
- (event: 'remove'): void
57
- }>()
58
-
59
- const { $store }: any = useNuxtApp()
60
- const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
61
-
62
- const localization = computed<UI_I_Localization>(() => useLocal())
63
-
64
- const isRunning = computed<boolean>(() => {
65
- return props.state === 2
66
- })
67
-
68
- const isRemovable = computed<boolean>(() => {
69
- return !props.isEdit || !isRunning.value
70
- })
71
-
72
- const label = computed<string>(() => {
73
- if (props.type === 'edit')
74
- return `${localization.value.common.newPciDevice} ${props.index + 1}`
75
-
76
- return `${localization.value.common.pciDevice} *`
77
- })
78
-
79
- const selectedLabel = computed<string>(() => {
80
- switch (selectedType.value.value) {
81
- case 'direct_path_io':
82
- return `${directPathIo.value.address} | ${directPathIo.value.device_name}`
83
- case 'dynamic_direct_path_io':
84
- return dynamicDirectPathIo.value
85
- default:
86
- return nvidiaGridProfile.value
87
- }
88
- })
89
-
90
- const pciDeviceTypeOptions = ref<UI_I_OptionItem[]>(
91
- pciDeviceTypeOptionsFunc(
92
- !props.passthroughDevices.length,
93
- !props.mediatedDevices.length
94
- )
95
- )
96
- const selectedType = ref<UI_I_OptionItem>(pciDeviceTypeOptions.value[0])
97
- pciDeviceTypeOptions.value.forEach((option) => {
98
- if (!option.disabled) selectedType.value = option
99
- })
100
-
101
- const directPathIo = ref<UI_I_PciDevice>(props.passthroughDevices[0])
102
- const dynamicDirectPathIo = ref<string>('')
103
- const nvidiaGridProfile = ref<any>(props.mediatedDevices[0]?.value)
104
-
105
- watch(
106
- [() => props.pciDevice, () => props.mediatedDevices],
107
- ([newValue1]) => {
108
- // const passthroughDevice = props.passthroughDevices.find(
109
- // (item) => item.address === newValue.address
110
- // )
111
- // passthroughDevice && (directPathIo.value = passthroughDevice) // Todo change
112
- if (newValue1) {
113
- directPathIo.value = newValue1
114
- const mediatedDevice = props.mediatedDevices.find((device) => {
115
- return (
116
- device.profile_name + '_' + device.root_device ===
117
- newValue1.class_name + '_' + newValue1.address
118
- )
119
- })
120
- if (mediatedDevice) {
121
- nvidiaGridProfile.value = mediatedDevice.profile_name + '_' + mediatedDevice.root_device
122
-
123
- selectedType.value =
124
- pciDeviceTypeOptions.value.find(
125
- (option) => option.value === 'nvidia_grid'
126
- ) || selectedType.value
127
- }
128
- }
129
- },
130
- { immediate: true, deep: true }
131
- )
132
-
133
- const sendData = computed<UI_I_SendDataNewPciDevice>(() => {
134
- const nvidea = props.mediatedDevices.find(
135
- (device) =>
136
- nvidiaGridProfile.value === device.profile_name + '_' + device.root_device
137
- )
138
- switch (selectedType.value.value) {
139
- case 'direct_path_io':
140
- return {
141
- address: directPathIo.value.address,
142
- vendor_name: directPathIo.value.vendor_name,
143
- class_name: directPathIo.value.class_name,
144
- device_name: directPathIo.value.device_name,
145
- mediated_devices: false,
146
- }
147
- case 'dynamic_direct_path_io':
148
- return {
149
- address: '',
150
- vendor_name: '',
151
- class_name: '',
152
- device_name: '',
153
- mediated_devices: false,
154
- }
155
- case 'nvidia_grid':
156
- return {
157
- address: nvidea?.root_device || '',
158
- vendor_name: '',
159
- class_name: nvidea?.profile_name || '',
160
- device_name: nvidea?.name || '',
161
- mediated_devices: true,
162
- mediated_devices_uuid: '',
163
- }
164
- default:
165
- return {
166
- address: '',
167
- vendor_name: '',
168
- class_name: '',
169
- device_name: '',
170
- mediated_devices: false,
171
- }
172
- }
173
- })
174
-
175
- watch(
176
- sendData,
177
- (newValue) => {
178
- emits('send-data', newValue)
179
- },
180
- { immediate: true }
181
- )
182
- </script>
183
-
184
- <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
+
49
+ const props = defineProps<{
50
+ index: number
51
+ pciDevice: UI_I_SendDataNewPciDevice
52
+ passthroughDevices: UI_I_PciDevice[]
53
+ mediatedDevices: UI_I_MediatedDevice[]
54
+ type: UI_T_PciDeviceType
55
+ isEdit: boolean
56
+ state?: string | number
57
+ // errorValidationFields: UI_I_ErrorValidationField<string>[]
58
+ }>()
59
+ const emits = defineEmits<{
60
+ (event: 'send-data', value: UI_I_SendDataNewPciDevice): void
61
+ (event: 'remove'): void
62
+ }>()
63
+
64
+ const { $store }: any = useNuxtApp()
65
+ const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
66
+
67
+ const localization = computed<UI_I_Localization>(() => useLocal())
68
+
69
+ const isRunning = computed<boolean>(() => {
70
+ return props.state === 2
71
+ })
72
+
73
+ const isRemovable = computed<boolean>(() => {
74
+ return !props.isEdit || !isRunning.value
75
+ })
76
+
77
+ const label = computed<string>(() => {
78
+ if (props.type === 'edit')
79
+ return `${localization.value.common.newPciDevice} ${props.index + 1}`
80
+
81
+ return `${localization.value.common.pciDevice} *`
82
+ })
83
+
84
+ const selectedLabel = computed<string>(() => {
85
+ switch (selectedType.value.value) {
86
+ case 'direct_path_io':
87
+ return `${directPathIo.value.address} | ${directPathIo.value.device_name}`
88
+ case 'dynamic_direct_path_io':
89
+ return dynamicDirectPathIo.value
90
+ default:
91
+ return nvidiaGridProfile.value?.text
92
+ }
93
+ })
94
+
95
+ const pciDeviceTypeOptions = ref<UI_I_OptionItem[]>(
96
+ pciDeviceTypeOptionsFunc(
97
+ !props.passthroughDevices.length,
98
+ !props.mediatedDevices.length
99
+ )
100
+ )
101
+ const selectedType = ref<UI_I_OptionItem>(pciDeviceTypeOptions.value[0])
102
+ pciDeviceTypeOptions.value.forEach((option) => {
103
+ if (!option.disabled) selectedType.value = option
104
+ })
105
+
106
+ const directPathIo = ref<UI_I_PciDevice>(props.passthroughDevices[0])
107
+ const dynamicDirectPathIo = ref<string>('')
108
+ // const nvidiaGridProfile = ref<any>(props.mediatedDevices[0]?.value)
109
+ const nvidiaGridProfile = ref<UI_I_Option | null>(null)
110
+
111
+ watch(
112
+ [() => props.pciDevice, () => props.mediatedDevices],
113
+ ([newValue1]) => {
114
+ // const passthroughDevice = props.passthroughDevices.find(
115
+ // (item) => item.address === newValue.address
116
+ // )
117
+ // passthroughDevice && (directPathIo.value = passthroughDevice) // Todo change
118
+ if (newValue1) {
119
+ directPathIo.value = newValue1
120
+ const mediatedDevice = props.mediatedDevices.find((device) => {
121
+ return (
122
+ device.profile_name + '_' + device.root_device ===
123
+ newValue1.class_name + '_' + newValue1.address
124
+ )
125
+ })
126
+ if (mediatedDevice) {
127
+ nvidiaGridProfile.value = {
128
+ text: mediatedDevice.human_readable,
129
+ value: mediatedDevice.profile_name + '_' + mediatedDevice.root_device,
130
+ }
131
+
132
+ selectedType.value =
133
+ pciDeviceTypeOptions.value.find(
134
+ (option) => option.value === 'nvidia_grid'
135
+ ) || selectedType.value
136
+ }
137
+ }
138
+ },
139
+ { immediate: true, deep: true }
140
+ )
141
+
142
+ const sendData = computed<UI_I_SendDataNewPciDevice>(() => {
143
+ const nvidia = props.mediatedDevices.find(
144
+ (device) =>
145
+ nvidiaGridProfile.value?.value === device.profile_name + '_' + device.root_device
146
+ )
147
+ switch (selectedType.value.value) {
148
+ case 'direct_path_io':
149
+ return {
150
+ address: directPathIo.value.address,
151
+ vendor_name: directPathIo.value.vendor_name,
152
+ class_name: directPathIo.value.class_name,
153
+ device_name: directPathIo.value.device_name,
154
+ mediated_devices: false,
155
+ }
156
+ case 'dynamic_direct_path_io':
157
+ return {
158
+ address: '',
159
+ vendor_name: '',
160
+ class_name: '',
161
+ device_name: '',
162
+ mediated_devices: false,
163
+ }
164
+ case 'nvidia_grid':
165
+ return {
166
+ address: nvidia?.root_device || '',
167
+ vendor_name: '',
168
+ class_name: nvidia?.profile_name || '',
169
+ device_name: nvidia?.name || '',
170
+ mediated_devices: true,
171
+ mediated_devices_uuid: '',
172
+ }
173
+ default:
174
+ return {
175
+ address: '',
176
+ vendor_name: '',
177
+ class_name: '',
178
+ device_name: '',
179
+ mediated_devices: false,
180
+ }
181
+ }
182
+ })
183
+
184
+ watch(
185
+ sendData,
186
+ (newValue) => {
187
+ emits('send-data', newValue)
188
+ },
189
+ { immediate: true }
190
+ )
191
+ </script>
192
+
193
+ <style scoped lang="scss"></style>
@@ -27,47 +27,23 @@
27
27
  :pci-device-index="props.index"
28
28
  />
29
29
 
30
- <!-- v-show="selectedType.value === 'dynamic_direct_path_io'" -->
31
30
  <common-vm-actions-common-customize-hardware-virtual-hardware-new-pci-device-dynamic-direct-path-io
32
- v-show="selectedType.value === 'nvidia_grid'"
33
- v-model="nvidiaGridProfile"
34
- :pci-device-index="props.index"
35
- :mediated-devices="props.mediatedDevices"
36
- />
37
- <!-- v-show="selectedType.value === 'nvidia_grid'" -->
38
- <common-vm-actions-common-customize-hardware-virtual-hardware-new-pci-device-nvidia-grid
39
- v-show="selectedType.value === 'direct_path_io'"
40
- v-model="directPathIo"
41
- :pci-device-index="props.index"
42
- />
43
- <!-- v-show="selectedType.value === 'direct_path_io'" -->
44
- <common-vm-actions-common-customize-hardware-virtual-hardware-new-pci-device-direct-path-io
45
31
  v-show="selectedType.value === 'dynamic_direct_path_io'"
46
32
  v-model="dynamicDirectPathIo"
47
33
  :pci-device-index="props.index"
48
34
  :passthrough-devices="props.passthroughDevices"
49
35
  />
50
-
51
- <!-- v-show="selectedType.value === 'dynamic_direct_path_io'" -->
52
- <!-- <common-vm-actions-common-customize-hardware-virtual-hardware-new-pci-device-dynamic-direct-path-io
36
+ <common-vm-actions-common-customize-hardware-virtual-hardware-new-pci-device-nvidia-grid
53
37
  v-show="selectedType.value === 'nvidia_grid'"
54
- v-model="dynamicDirectPathIo"
38
+ v-model="nvidiaGridProfile"
55
39
  :pci-device-index="props.index"
56
40
  :mediated-devices="props.mediatedDevices"
57
- /> -->
58
- <!-- v-show="selectedType.value === 'nvidia_grid'" -->
59
- <!-- <common-vm-actions-common-customize-hardware-virtual-hardware-new-pci-device-nvidia-grid
41
+ />
42
+ <common-vm-actions-common-customize-hardware-virtual-hardware-new-pci-device-direct-path-io
60
43
  v-show="selectedType.value === 'direct_path_io'"
61
- v-model="nvidiaGridProfile"
62
- :pci-device-index="props.index"
63
- /> -->
64
- <!-- v-show="selectedType.value === 'direct_path_io'" -->
65
- <!-- <common-vm-actions-common-customize-hardware-virtual-hardware-new-pci-device-direct-path-io
66
- v-show="selectedType.value === 'dynamic_direct_path_io'"
67
44
  v-model="directPathIo"
68
45
  :pci-device-index="props.index"
69
- :passthrough-devices="props.passthroughDevices"
70
- /> -->
46
+ />
71
47
  </template>
72
48
 
73
49
  <common-vm-actions-common-customize-hardware-virtual-hardware-new-pci-device-note />
@@ -78,7 +54,7 @@
78
54
  <script setup lang="ts">
79
55
  import type { UI_I_OptionItem } from '~/components/atoms/lib/models/interfaces'
80
56
  import type { UI_T_PciDeviceType } from '~/components/common/vm/actions/common/customizeHardware/virtualHardware/lib/models/types'
81
- import type { UI_I_PciDevice } from '~/lib/models/store/vm/interfaces'
57
+ import type {UI_I_MediatedDevice, UI_I_PciDevice} from '~/lib/models/store/vm/interfaces'
82
58
 
83
59
  const selectedType = defineModel<UI_I_OptionItem>('selectedType', {
84
60
  required: true,
@@ -96,7 +72,7 @@ const nvidiaGridProfile = defineModel<string>('nvidiaGridProfile', {
96
72
  const props = defineProps<{
97
73
  index: number
98
74
  passthroughDevices: UI_I_PciDevice[]
99
- mediatedDevices: any[]
75
+ mediatedDevices: UI_I_MediatedDevice[]
100
76
  type: UI_T_PciDeviceType
101
77
  isRemovable: boolean
102
78
  label: string
@@ -108,4 +84,8 @@ const emits = defineEmits<{
108
84
  }>()
109
85
  </script>
110
86
 
111
- <style scoped lang="scss"></style>
87
+ <style scoped lang="scss">
88
+ :deep(.stack-block.not-children .stack-block-label) {
89
+ height: auto;
90
+ }
91
+ </style>