bfg-common 1.4.799 → 1.4.800

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 (146) hide show
  1. package/assets/img/icons/icons-sprite-dark-1.svg +31 -14
  2. package/assets/img/icons/icons-sprite-dark-3.svg +227 -227
  3. package/assets/img/icons/icons-sprite-dark-4.svg +6 -1
  4. package/assets/img/icons/icons-sprite-dark-5.svg +488 -488
  5. package/assets/img/icons/icons-sprite-light-1.svg +30 -13
  6. package/assets/img/icons/icons-sprite-light-3.svg +227 -227
  7. package/assets/img/icons/icons-sprite-light-4.svg +6 -1
  8. package/assets/img/icons/icons-sprite-light-5.svg +488 -488
  9. package/assets/localization/local_be.json +33 -8
  10. package/assets/localization/local_en.json +33 -8
  11. package/assets/localization/local_hy.json +33 -8
  12. package/assets/localization/local_kk.json +34 -9
  13. package/assets/localization/local_ru.json +43 -18
  14. package/assets/localization/local_zh.json +33 -8
  15. package/assets/scss/clarity/local_ar.json +6 -3
  16. package/assets/scss/common/icons/icons-1.scss +4 -4
  17. package/components/atoms/autocomplete/Autocomplete.vue +68 -12
  18. package/components/atoms/select/TheSelect.vue +10 -1
  19. package/components/atoms/table/dataGrid/DataGrid.vue +12 -4
  20. package/components/atoms/table/dataGrid/lib/config/settingsTable.ts +4 -1
  21. package/components/atoms/table/dataGrid/lib/utils/export.ts +13 -13
  22. package/components/atoms/tabs/VerticalTabs.vue +11 -6
  23. package/components/common/browse/blocks/lib/models/types.ts +1 -1
  24. package/components/common/browse/lib/models/interfaces.ts +5 -5
  25. package/components/common/chartOptionsModal/counters/timespan/form/Form.vue +544 -544
  26. package/components/common/chartOptionsModal/counters/timespan/form/lib/config/dateForm.ts +116 -116
  27. package/components/common/context/Context.vue +16 -4
  28. package/components/common/context/recursion/Recursion.vue +2 -1
  29. package/components/common/context/recursion/RecursionNew.vue +57 -31
  30. package/components/common/context/recursion/RecursionOld.vue +33 -19
  31. package/components/common/diagramMain/Header.vue +211 -211
  32. package/components/common/diagramMain/adapter/AdapterItems.vue +61 -61
  33. package/components/common/diagramMain/lib/config/initial.ts +50 -50
  34. package/components/common/diagramMain/lib/models/types.ts +21 -21
  35. package/components/common/diagramMain/lib/utils/utils.ts +331 -331
  36. package/components/common/diagramMain/modals/ManagePhysicalAdaptersModal.vue +330 -330
  37. package/components/common/diagramMain/modals/editSettings/ConfirmTeamingSettingsModal.vue +40 -40
  38. package/components/common/diagramMain/modals/editSettings/EditSettings.vue +497 -497
  39. package/components/common/diagramMain/modals/editSettings/EditSettingsModal.vue +812 -812
  40. package/components/common/diagramMain/modals/editSettings/tabs/NetworkProperties.vue +214 -214
  41. package/components/common/diagramMain/modals/editSettings/tabs/Security.vue +189 -189
  42. package/components/common/diagramMain/modals/editSettings/tabs/SwitchProperties.vue +163 -163
  43. package/components/common/diagramMain/modals/editSettings/tabs/TeamingFailover.vue +175 -175
  44. package/components/common/diagramMain/modals/editSettings/tabs/TrafficShaping.vue +7 -7
  45. package/components/common/diagramMain/modals/editSettings/tabs/port/IpvFourSettings.vue +346 -346
  46. package/components/common/diagramMain/modals/editSettings/tabs/port/PortProperties.vue +205 -205
  47. package/components/common/diagramMain/modals/lib/config/diagramConfig.ts +23 -23
  48. package/components/common/diagramMain/modals/lib/config/initial.ts +180 -180
  49. package/components/common/diagramMain/modals/lib/config/vmKernelAdapter.ts +90 -90
  50. package/components/common/diagramMain/modals/lib/mappers/mappers.ts +87 -87
  51. package/components/common/diagramMain/modals/lib/utils/index.ts +24 -24
  52. package/components/common/diagramMain/modals/migrateVmkernelAdapter/lib/config/steps.ts +114 -114
  53. package/components/common/diagramMain/modals/migrateVmkernelAdapter/steps/ConnectionSettings.vue +169 -169
  54. package/components/common/diagramMain/modals/migrateVmkernelAdapter/steps/SelectVmkernelAdapter.vue +159 -159
  55. package/components/common/diagramMain/modals/migrateVmkernelAdapter/validations/common.ts +14 -14
  56. package/components/common/diagramMain/modals/migrateVmkernelAdapter/validations/connectionSettings.ts +137 -137
  57. package/components/common/diagramMain/modals/migrateVmkernelAdapter/validations/selectVmkernelAdapter.ts +52 -52
  58. package/components/common/diagramMain/modals/migrateVmkernelAdapter/validations/validations.ts +19 -19
  59. package/components/common/diagramMain/port/Ports.vue +47 -47
  60. package/components/common/feedback/Buttons.vue +2 -2
  61. package/components/common/feedback/Message.vue +1 -0
  62. package/components/common/feedback/VisitPortal.vue +5 -1
  63. package/components/common/layout/theHeader/feedback/new/New.vue +29 -14
  64. package/components/common/layout/theHeader/feedback/new/additionalDetails/AdditionalDetails.vue +34 -9
  65. package/components/common/layout/theHeader/feedback/new/additionalDetails/Headline.vue +17 -6
  66. package/components/common/layout/theHeader/feedback/new/description/Description.vue +1 -0
  67. package/components/common/layout/theHeader/feedback/new/email/Email.vue +1 -1
  68. package/components/common/layout/theHeader/feedback/new/subtitle/Subtitle.vue +22 -6
  69. package/components/common/layout/theHeader/feedback/new/tabs/Tabs.vue +17 -15
  70. package/components/common/layout/theHeader/userMenu/modals/changePassword/ChangePasswordNew.vue +1 -1
  71. package/components/common/mainNavigationPanel/MainNavigationPanel.vue +3 -2
  72. package/components/common/mainNavigationPanel/MainNavigationPanelNew.vue +1 -1
  73. package/components/common/mainNavigationPanel/MainNavigationPanelOld.vue +1 -1
  74. package/components/common/monitor/advanced/tools/chartOptionsModal/Notification.vue +7 -7
  75. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/timespan/Timespan.vue +95 -95
  76. package/components/common/monitor/overview/filters/customIntervalModal/CustomIntervalModal.vue +1 -1
  77. package/components/common/pages/hardwareHealth/historyTestimony/Graph.vue +463 -456
  78. package/components/common/pages/hardwareHealth/historyTestimony/tools/Tools.vue +389 -387
  79. package/components/common/pages/hardwareHealth/historyTestimony/tools/chartOptionsModal/ChartOptionsModal.vue +8 -0
  80. package/components/common/pages/hardwareHealth/historyTestimony/tools/chartOptionsModal/counters/Counters.vue +94 -94
  81. package/components/common/pages/hardwareHealth/historyTestimony/tools/chartOptionsModal/counters/timespan/Timespan.vue +66 -66
  82. package/components/common/pages/home/headline/Headline.vue +3 -2
  83. package/components/common/pages/home/headline/HeadlineNew.vue +1 -1
  84. package/components/common/pages/home/headline/HeadlineOld.vue +5 -0
  85. package/components/common/pages/home/widgets/vms/VmsNew.vue +1 -1
  86. package/components/common/pages/packages/Packages.vue +208 -0
  87. package/components/common/pages/packages/lib/config/actions.ts +59 -0
  88. package/components/common/pages/packages/lib/models/types.ts +8 -0
  89. package/components/common/pages/packages/tableView/TableView.vue +120 -0
  90. package/components/common/pages/packages/tableView/lib/config/configTable.ts +136 -0
  91. package/components/common/pages/packages/tableView/lib/config/tableKey.ts +14 -0
  92. package/components/common/pages/packages/tableView/lib/models/types.ts +12 -0
  93. package/components/common/pages/shortcuts/Shortcuts.vue +1 -1
  94. package/components/common/pages/tasks/Tasks.vue +23 -8
  95. package/components/common/pages/tasks/table/Table.vue +66 -16
  96. package/components/common/pages/tasks/table/errorInfo/ErrorInfo.vue +27 -10
  97. package/components/common/pages/tasks/table/expandDetails/ExpandDetails.vue +28 -12
  98. package/components/common/pages/tasks/table/lib/config/config.ts +11 -11
  99. package/components/common/select/radio/RadioGroup.vue +3 -3
  100. package/components/common/selectLanguage/SelectLanguage.vue +29 -25
  101. package/components/common/selectLanguage/lib/config/config.ts +1 -0
  102. package/components/common/split/horizontal/HorizontalNew.vue +42 -24
  103. package/components/common/split/horizontal/HorizontalOld.vue +43 -13
  104. package/components/common/vm/actions/add/Add.vue +6 -1
  105. package/components/common/vm/actions/clone/Clone.vue +8 -3
  106. package/components/common/vm/actions/common/customizeHardware/CustomizeHardware.vue +4 -0
  107. package/components/common/vm/actions/common/customizeHardware/CustomizeHardwareNew.vue +6 -4
  108. package/components/common/vm/actions/common/customizeHardware/CustomizeHardwareOld.vue +26 -10
  109. package/components/common/vm/actions/common/customizeHardware/virtualHardware/VirtualHardware.vue +12 -4
  110. package/components/common/vm/actions/common/customizeHardware/virtualHardware/VirtualHardwareNew.vue +6 -3
  111. package/components/common/vm/actions/common/customizeHardware/virtualHardware/VirtualHardwareOld.vue +4 -2
  112. package/components/common/vm/actions/common/customizeHardware/virtualHardware/lib/config/dropdownItems.ts +6 -4
  113. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/NewHardDisk.vue +9 -3
  114. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/NewHardDiskNew.vue +3 -2
  115. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/NewHardDiskOld.vue +3 -2
  116. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/NewPciDevice.vue +87 -24
  117. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/NewPciDeviceNew.vue +14 -8
  118. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/NewPciDeviceOld.vue +9 -7
  119. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/directPathIo/DirectPathIo.vue +0 -4
  120. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/directPathIo/DirectPathIoNew.vue +43 -12
  121. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/directPathIo/DirectPathIoOld.vue +50 -25
  122. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIo.vue +5 -7
  123. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIoNew.vue +64 -28
  124. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIoOld.vue +60 -19
  125. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/lib/config/options.ts +11 -4
  126. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/nvidiaGrid/NvidiaGrid.vue +16 -1
  127. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/nvidiaGrid/NvidiaGridNew.vue +59 -8
  128. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/nvidiaGrid/NvidiaGridOld.vue +60 -7
  129. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/typeSelection/TypeSelectionNew.vue +1 -1
  130. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/typeSelection/TypeSelectionOld.vue +1 -1
  131. package/components/common/vm/actions/common/lib/config/capabilities.ts +1 -1
  132. package/components/common/vm/actions/editSettings/EditSettings.vue +4 -0
  133. package/components/common/vm/actions/editSettings/EditSettingsOld.vue +2 -0
  134. package/components/common/vm/actions/editSettings/new/New.vue +2 -0
  135. package/components/common/wizards/datastore/add/Add.vue +4 -4
  136. package/components/common/wizards/datastore/add/lib/config/steps.ts +14 -14
  137. package/components/common/wizards/datastore/add/lib/validations.ts +9 -9
  138. package/components/common/wizards/datastore/add/nfs/Nfs.vue +6 -9
  139. package/components/common/wizards/vm/migrate/Migrate.vue +12 -12
  140. package/components/common/wizards/vm/migrate/select/computeResource/ComputeResource.vue +1 -1
  141. package/composables/useLocal.ts +3 -1
  142. package/composables/useLocalStorage.ts +1 -1
  143. package/lib/models/store/vm/interfaces.ts +11 -0
  144. package/lib/models/table/interfaces.ts +1 -0
  145. package/package.json +3 -3
  146. package/store/tasks/actions.ts +2 -1
@@ -1,15 +1,15 @@
1
1
  <template>
2
2
  <ui-stack-block :has-children="false">
3
3
  <template #stackBlockKey>
4
- <span>{{ localization.common.pciDevice }}</span>
4
+ {{ localization.common.pciDevice }}
5
5
  </template>
6
6
  <template #stackBlockContent>
7
- <ui-select
8
- id="direct-path-io"
7
+ <ui-input
8
+ :id="`direct-path-io-${props.pciDeviceIndex}`"
9
9
  v-model="model"
10
- width="auto"
11
- :items="props.passthroughDevices"
12
- :test-id="`direct-path-io-select-${props.pciDeviceIndex}`"
10
+ :test-id="`direct-path-io-${props.pciDeviceIndex}-input`"
11
+ type="text"
12
+ size="sm"
13
13
  />
14
14
  </template>
15
15
  </ui-stack-block>
@@ -17,19 +17,50 @@
17
17
 
18
18
  <script lang="ts" setup>
19
19
  import type { UI_I_Localization } from '~/lib/models/interfaces'
20
- import type {
21
- UI_I_ConfigureAllPciDevicesItem,
22
- UI_I_ConfigurePciDevicesTable,
23
- } from '~/lib/models/store/host/interfaces'
24
20
 
25
- const model = defineModel<UI_I_ConfigureAllPciDevicesItem>()
21
+ const model = defineModel<string>({ required: true })
26
22
 
27
23
  const props = defineProps<{
28
24
  pciDeviceIndex: number
29
- passthroughDevices: UI_I_ConfigurePciDevicesTable
30
25
  }>()
31
26
 
32
27
  const localization = computed<UI_I_Localization>(() => useLocal())
33
28
  </script>
34
29
 
35
30
  <style lang="scss" scoped></style>
31
+
32
+ <!--<template>-->
33
+ <!-- <ui-stack-block :has-children="false">-->
34
+ <!-- <template #stackBlockKey>-->
35
+ <!-- <span>{{ localization.common.pciDevice }}</span>-->
36
+ <!-- </template>-->
37
+ <!-- <template #stackBlockContent>-->
38
+ <!-- <ui-select-->
39
+ <!-- id="direct-path-io"-->
40
+ <!-- v-model="model"-->
41
+ <!-- width="auto"-->
42
+ <!-- :items="props.passthroughDevices"-->
43
+ <!-- :test-id="`direct-path-io-select-${props.pciDeviceIndex}`"-->
44
+ <!-- />-->
45
+ <!-- </template>-->
46
+ <!-- </ui-stack-block>-->
47
+ <!--</template>-->
48
+
49
+ <!--<script lang="ts" setup>-->
50
+ <!--import type { UI_I_Localization } from '~/lib/models/interfaces'-->
51
+ <!--import type {-->
52
+ <!-- UI_I_ConfigureAllPciDevicesItem,-->
53
+ <!-- UI_I_ConfigurePciDevicesTable,-->
54
+ <!--} from '~/lib/models/store/host/interfaces'-->
55
+
56
+ <!--const model = defineModel<UI_I_ConfigureAllPciDevicesItem>()-->
57
+
58
+ <!--const props = defineProps<{-->
59
+ <!-- pciDeviceIndex: number-->
60
+ <!-- passthroughDevices: UI_I_ConfigurePciDevicesTable-->
61
+ <!--}>()-->
62
+
63
+ <!--const localization = computed<UI_I_Localization>(() => useLocal())-->
64
+ <!--</script>-->
65
+
66
+ <!--<style lang="scss" scoped></style>-->
@@ -1,37 +1,62 @@
1
1
  <template>
2
- <atoms-stack-block :has-children="false">
3
- <template #stackBlockContent>
4
- <div class="select">
5
- <select
6
- id="direct-path-io"
2
+ <div>
3
+ <atoms-stack-block :has-children="false">
4
+ <template #stackBlockContent>
5
+ <input
6
+ :id="`direct-path-io-${props.pciDeviceIndex}`"
7
7
  v-model="model"
8
- :data-id="`direct-path-io-select-${props.pciDeviceIndex}`"
9
- >
10
- <option
11
- v-for="item in props.passthroughDevices"
12
- :key="item.id"
13
- :value="item"
14
- >
15
- {{ item.address }} | {{ item.device_name }}
16
- </option>
17
- </select>
18
- </div>
19
- </template>
20
- </atoms-stack-block>
8
+ :data-id="`direct-path-io-${props.pciDeviceIndex}-input`"
9
+ type="text"
10
+ />
11
+ </template>
12
+ </atoms-stack-block>
13
+ </div>
21
14
  </template>
22
15
 
23
16
  <script lang="ts" setup>
24
- import type {
25
- UI_I_ConfigureAllPciDevicesItem,
26
- UI_I_ConfigurePciDevicesTable,
27
- } from '~/lib/models/store/host/interfaces'
28
-
29
- const model = defineModel<UI_I_ConfigureAllPciDevicesItem>()
17
+ const model = defineModel<string>({ required: true })
30
18
 
31
19
  const props = defineProps<{
32
20
  pciDeviceIndex: number
33
- passthroughDevices: UI_I_ConfigurePciDevicesTable
34
21
  }>()
35
22
  </script>
36
23
 
37
24
  <style lang="scss" scoped></style>
25
+
26
+ <!--<template>-->
27
+ <!-- <atoms-stack-block :has-children="false">-->
28
+ <!-- <template #stackBlockContent>-->
29
+ <!-- <div class="select">-->
30
+ <!-- <select-->
31
+ <!-- id="direct-path-io"-->
32
+ <!-- v-model="model"-->
33
+ <!-- :data-id="`direct-path-io-select-${props.pciDeviceIndex}`"-->
34
+ <!-- >-->
35
+ <!-- <option-->
36
+ <!-- v-for="item in props.passthroughDevices"-->
37
+ <!-- :key="item.id"-->
38
+ <!-- :value="item"-->
39
+ <!-- >-->
40
+ <!-- {{ item.address }} | {{ item.device_name }}-->
41
+ <!-- </option>-->
42
+ <!-- </select>-->
43
+ <!-- </div>-->
44
+ <!-- </template>-->
45
+ <!-- </atoms-stack-block>-->
46
+ <!--</template>-->
47
+
48
+ <!--<script lang="ts" setup>-->
49
+ <!--import type {-->
50
+ <!-- UI_I_ConfigureAllPciDevicesItem,-->
51
+ <!-- UI_I_ConfigurePciDevicesTable,-->
52
+ <!--} from '~/lib/models/store/host/interfaces'-->
53
+
54
+ <!--const model = defineModel<UI_I_ConfigureAllPciDevicesItem>()-->
55
+
56
+ <!--const props = defineProps<{-->
57
+ <!-- pciDeviceIndex: number-->
58
+ <!-- passthroughDevices: UI_I_ConfigurePciDevicesTable-->
59
+ <!--}>()-->
60
+ <!--</script>-->
61
+
62
+ <!--<style lang="scss" scoped></style>-->
@@ -2,32 +2,30 @@
2
2
  <common-vm-actions-common-customize-hardware-virtual-hardware-new-pci-device-dynamic-direct-path-io-new
3
3
  v-if="isNewView"
4
4
  v-model="model"
5
- :options="options"
5
+ :passthrough-devices="props.passthroughDevices"
6
6
  :pci-device-index="props.pciDeviceIndex"
7
7
  />
8
8
  <common-vm-actions-common-customize-hardware-virtual-hardware-new-pci-device-dynamic-direct-path-io-old
9
9
  v-else
10
10
  v-model="model"
11
- :options="options"
11
+ :passthrough-devices="props.passthroughDevices"
12
12
  :pci-device-index="props.pciDeviceIndex"
13
13
  />
14
14
  </template>
15
15
 
16
16
  <script lang="ts" setup>
17
- import type { UI_I_Option } from '~/components/atoms/select/lib/models/interfaces'
18
- import { optionsConfig } from '~/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/lib/config/options'
17
+ import type { UI_I_PciDevice } from '~/lib/models/store/vm/interfaces'
19
18
 
20
- const model = defineModel<string>({required: true})
19
+ const model = defineModel<string>({ required: true })
21
20
 
22
21
  const props = defineProps<{
23
22
  pciDeviceIndex: number
23
+ passthroughDevices: UI_I_PciDevice[]
24
24
  }>()
25
25
 
26
26
  const { $store }: any = useNuxtApp()
27
27
  const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
28
28
 
29
- const options = ref<UI_I_Option[]>(optionsConfig)
30
- model.value = '' + options.value[0].value
31
29
  </script>
32
30
 
33
31
  <style lang="scss" scoped></style>
@@ -1,48 +1,84 @@
1
1
  <template>
2
2
  <ui-stack-block :has-children="false">
3
3
  <template #stackBlockKey>
4
- {{ localization.common.pciDevice }}
4
+ <span>{{ localization.common.pciDevice }}</span>
5
5
  </template>
6
6
  <template #stackBlockContent>
7
- <div class="dynamic-direct-path-io-content">
8
- <span class="dynamic-direct-path-io-content-label"
9
- >{{ localization.common.connectAnyFollowing }}:</span
10
- >
11
- <ui-select
12
- v-model="model"
13
- width="auto"
14
- :items="props.options"
15
- :test-id="`dynamic-direct-path-io-select-${pciDeviceIndex}`"
16
- />
17
- </div>
7
+ <ui-select
8
+ id="dynamic-direct-path-io"
9
+ v-model="model"
10
+ width="auto"
11
+ :items="props.passthroughDevices"
12
+ :test-id="`dynamic-direct-path-io-select-${props.pciDeviceIndex}`"
13
+ />
18
14
  </template>
19
15
  </ui-stack-block>
20
16
  </template>
21
17
 
22
18
  <script lang="ts" setup>
23
19
  import type { UI_I_Localization } from '~/lib/models/interfaces'
24
- import type { UI_I_Option } from '~/components/atoms/select/lib/models/interfaces'
20
+ import type {
21
+ UI_I_ConfigureAllPciDevicesItem,
22
+ } from '~/lib/models/store/host/interfaces'
23
+ import type {UI_I_PciDevice} from "~/lib/models/store/vm/interfaces";
25
24
 
26
- const model = defineModel<string>({ required: true })
25
+ const model = defineModel<UI_I_ConfigureAllPciDevicesItem>()
27
26
 
28
27
  const props = defineProps<{
29
- options: UI_I_Option[]
30
28
  pciDeviceIndex: number
29
+ passthroughDevices: UI_I_PciDevice[]
31
30
  }>()
32
31
 
33
32
  const localization = computed<UI_I_Localization>(() => useLocal())
34
33
  </script>
35
34
 
36
- <style lang="scss" scoped>
37
- .dynamic-direct-path-io-content {
38
- display: flex;
39
- flex-direction: column;
40
- gap: 12px;
41
-
42
- &-label {
43
- font-size: 13px;
44
- line-height: 15.73px;
45
- color: #9da6ad;
46
- }
47
- }
48
- </style>
35
+ <style lang="scss" scoped></style>
36
+
37
+ <!--<template>-->
38
+ <!-- <ui-stack-block :has-children="false">-->
39
+ <!-- <template #stackBlockKey>-->
40
+ <!-- {{ localization.common.pciDevice }}-->
41
+ <!-- </template>-->
42
+ <!-- <template #stackBlockContent>-->
43
+ <!-- <div class="dynamic-direct-path-io-content">-->
44
+ <!-- <span class="dynamic-direct-path-io-content-label"-->
45
+ <!-- >{{ localization.common.connectAnyFollowing }}:</span-->
46
+ <!-- >-->
47
+ <!-- <ui-select-->
48
+ <!-- v-model="model"-->
49
+ <!-- width="auto"-->
50
+ <!-- :items="props.options"-->
51
+ <!-- :test-id="`dynamic-direct-path-io-select-${pciDeviceIndex}`"-->
52
+ <!-- />-->
53
+ <!-- </div>-->
54
+ <!-- </template>-->
55
+ <!-- </ui-stack-block>-->
56
+ <!--</template>-->
57
+
58
+ <!--<script lang="ts" setup>-->
59
+ <!--import type { UI_I_Localization } from '~/lib/models/interfaces'-->
60
+ <!--import type { UI_I_Option } from '~/components/atoms/select/lib/models/interfaces'-->
61
+
62
+ <!--const model = defineModel<string>({ required: true })-->
63
+
64
+ <!--const props = defineProps<{-->
65
+ <!-- options: UI_I_Option[]-->
66
+ <!-- pciDeviceIndex: number-->
67
+ <!--}>()-->
68
+
69
+ <!--const localization = computed<UI_I_Localization>(() => useLocal())-->
70
+ <!--</script>-->
71
+
72
+ <!--<style lang="scss" scoped>-->
73
+ <!--.dynamic-direct-path-io-content {-->
74
+ <!-- display: flex;-->
75
+ <!-- flex-direction: column;-->
76
+ <!-- gap: 12px;-->
77
+
78
+ <!-- &-label {-->
79
+ <!-- font-size: 13px;-->
80
+ <!-- line-height: 15.73px;-->
81
+ <!-- color: #9da6ad;-->
82
+ <!-- }-->
83
+ <!--}-->
84
+ <!--</style>-->
@@ -1,35 +1,76 @@
1
1
  <template>
2
- <div>
3
- <atoms-stack-block :has-children="false">
4
- <template #stackBlockKey>
5
- {{ localization.common.pciDevice }}
6
- </template>
7
- <template #stackBlockContent>
8
- <div>{{ localization.common.connectAnyFollowing }}:</div>
9
- <atoms-select-the-select
2
+ <atoms-stack-block :has-children="false">
3
+ <template #stackBlockKey>
4
+ {{ localization.common.pciDevice }}
5
+ </template>
6
+ <template #stackBlockContent>
7
+ <div class="select">
8
+ <select
9
+ id="dynamic-direct-path-io"
10
10
  v-model="model"
11
- :options="props.options"
12
- :test-id="`dynamic-direct-path-io-select-${pciDeviceIndex}`"
11
+ :data-id="`dynamic-direct-path-io-select-${props.pciDeviceIndex}`"
13
12
  >
14
- <span class="text-uppercase">{{ localization.common.selectHardware }}</span>
15
- </atoms-select-the-select>
16
- </template>
17
- </atoms-stack-block>
18
- </div>
13
+ <option
14
+ v-for="item in props.passthroughDevices"
15
+ :key="item.id"
16
+ :value="item"
17
+ >
18
+ {{ item.address }} | {{ item.device_name }}
19
+ </option>
20
+ </select>
21
+ </div>
22
+ </template>
23
+ </atoms-stack-block>
19
24
  </template>
20
25
 
21
26
  <script lang="ts" setup>
22
27
  import type { UI_I_Localization } from '~/lib/models/interfaces'
23
- import type { UI_I_Option } from '~/components/atoms/select/lib/models/interfaces'
28
+ import type { UI_I_ConfigureAllPciDevicesItem } from '~/lib/models/store/host/interfaces'
29
+ import type { UI_I_PciDevice } from '~/lib/models/store/vm/interfaces'
24
30
 
25
- const model = defineModel<string>({required: true})
31
+ const model = defineModel<UI_I_ConfigureAllPciDevicesItem>()
26
32
 
27
33
  const props = defineProps<{
28
- options: UI_I_Option[]
29
34
  pciDeviceIndex: number
35
+ passthroughDevices: UI_I_PciDevice[]
30
36
  }>()
31
-
32
37
  const localization = computed<UI_I_Localization>(() => useLocal())
33
38
  </script>
34
39
 
35
40
  <style lang="scss" scoped></style>
41
+
42
+ <!--<template>-->
43
+ <!-- <div>-->
44
+ <!-- <atoms-stack-block :has-children="false">-->
45
+ <!-- <template #stackBlockKey>-->
46
+ <!-- {{ localization.common.pciDevice }}-->
47
+ <!-- </template>-->
48
+ <!-- <template #stackBlockContent>-->
49
+ <!-- <div>{{ localization.common.connectAnyFollowing }}:</div>-->
50
+ <!-- <atoms-select-the-select-->
51
+ <!-- v-model="model"-->
52
+ <!-- :options="props.options"-->
53
+ <!-- :test-id="`dynamic-direct-path-io-select-${pciDeviceIndex}`"-->
54
+ <!-- >-->
55
+ <!-- <span class="text-uppercase">{{ localization.common.selectHardware }}</span>-->
56
+ <!-- </atoms-select-the-select>-->
57
+ <!-- </template>-->
58
+ <!-- </atoms-stack-block>-->
59
+ <!-- </div>-->
60
+ <!--</template>-->
61
+
62
+ <!--<script lang="ts" setup>-->
63
+ <!--import type { UI_I_Localization } from '~/lib/models/interfaces'-->
64
+ <!--import type { UI_I_Option } from '~/components/atoms/select/lib/models/interfaces'-->
65
+
66
+ <!--const model = defineModel<string>({required: true})-->
67
+
68
+ <!--const props = defineProps<{-->
69
+ <!-- options: UI_I_Option[]-->
70
+ <!-- pciDeviceIndex: number-->
71
+ <!--}>()-->
72
+
73
+ <!--const localization = computed<UI_I_Localization>(() => useLocal())-->
74
+ <!--</script>-->
75
+
76
+ <!--<style lang="scss" scoped></style>-->
@@ -1,7 +1,14 @@
1
1
  import type { UI_I_OptionItem } from '~/components/atoms/lib/models/interfaces'
2
2
 
3
- export const pciDeviceTypeOptionsConfig: UI_I_OptionItem[] = [
4
- { text: 'DP I/O', value: 'direct_path_io' },
5
- { text: 'Dynamic DP I/O', value: 'dynamic_direct_path_io' },
6
- { text: 'GRID vGPU', value: 'nvidia_grid' },
3
+ export const pciDeviceTypeOptionsFunc = (
4
+ isDisabledDynamicDirectPathIo: boolean,
5
+ isDisabledNvidiaGrid: boolean
6
+ ): UI_I_OptionItem[] => [
7
+ {
8
+ text: 'Dynamic DP I/O',
9
+ value: 'dynamic_direct_path_io',
10
+ disabled: isDisabledDynamicDirectPathIo,
11
+ },
12
+ { text: 'GRID vGPU', value: 'nvidia_grid', disabled: isDisabledNvidiaGrid },
13
+ { text: 'DP I/O', value: 'direct_path_io', disabled: true },
7
14
  ]
@@ -2,25 +2,40 @@
2
2
  <common-vm-actions-common-customize-hardware-virtual-hardware-new-pci-device-nvidia-grid-new
3
3
  v-if="isNewView"
4
4
  v-model="model"
5
+ :options="options"
5
6
  :pci-device-index="props.pciDeviceIndex"
6
7
  />
7
8
  <common-vm-actions-common-customize-hardware-virtual-hardware-new-pci-device-nvidia-grid-old
8
9
  v-else
9
10
  v-model="model"
11
+ :options="options"
10
12
  :pci-device-index="props.pciDeviceIndex"
11
13
  />
12
14
  </template>
13
15
 
14
16
  <script lang="ts" setup>
17
+ import type { UI_I_Option } from '~/components/atoms/select/lib/models/interfaces'
18
+ import type {UI_I_MediatedDevice} from "~/lib/models/store/vm/interfaces";
15
19
 
16
- const model = defineModel<string>({required: true})
20
+ const model = defineModel<string>({ required: true })
17
21
 
18
22
  const props = defineProps<{
19
23
  pciDeviceIndex: number
24
+ mediatedDevices: UI_I_MediatedDevice[]
20
25
  }>()
21
26
 
22
27
  const { $store }: any = useNuxtApp()
23
28
  const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
29
+
30
+ const options = ref<UI_I_Option[]>(
31
+ props.mediatedDevices.map((device) => {
32
+ return {
33
+ text: device.human_readable,
34
+ value: device.profile_name + '_' + device.root_device,
35
+ }
36
+ })
37
+ )
38
+ model.value = options.value[0]
24
39
  </script>
25
40
 
26
41
  <style lang="scss" scoped></style>
@@ -4,27 +4,78 @@
4
4
  {{ localization.common.nvidiaGridGpuProfile }}
5
5
  </template>
6
6
  <template #stackBlockContent>
7
- <ui-input
8
- :id="`nvidia-grid-${props.pciDeviceIndex}`"
9
- v-model="model"
10
- :test-id="`nvidia-grid-${props.pciDeviceIndex}-input`"
11
- type="text"
12
- size="sm"
13
- />
7
+ <div class="nvidia-grid-content">
8
+ <span class="nvidia-grid-content-label"
9
+ >{{ localization.common.connectAnyFollowing }}:</span
10
+ >
11
+ <ui-select
12
+ v-model="model"
13
+ width="auto"
14
+ :items="props.options"
15
+ :test-id="`nvidia-grid-select-${pciDeviceIndex}`"
16
+ />
17
+ </div>
14
18
  </template>
15
19
  </ui-stack-block>
16
20
  </template>
17
21
 
18
22
  <script lang="ts" setup>
19
23
  import type { UI_I_Localization } from '~/lib/models/interfaces'
24
+ import type { UI_I_Option } from '~/components/atoms/select/lib/models/interfaces'
20
25
 
21
26
  const model = defineModel<string>({ required: true })
22
27
 
23
28
  const props = defineProps<{
29
+ options: UI_I_Option[]
24
30
  pciDeviceIndex: number
25
31
  }>()
26
32
 
27
33
  const localization = computed<UI_I_Localization>(() => useLocal())
28
34
  </script>
29
35
 
30
- <style lang="scss" scoped></style>
36
+ <style lang="scss" scoped>
37
+ .dynamic-direct-path-io-content {
38
+ display: flex;
39
+ flex-direction: column;
40
+ gap: 12px;
41
+
42
+ &-label {
43
+ font-size: 13px;
44
+ line-height: 15.73px;
45
+ color: #9da6ad;
46
+ }
47
+ }
48
+
49
+
50
+ </style>
51
+
52
+ <!--<template>-->
53
+ <!-- <ui-stack-block :has-children="false">-->
54
+ <!-- <template #stackBlockKey>-->
55
+ <!-- {{ localization.common.nvidiaGridGpuProfile }}-->
56
+ <!-- </template>-->
57
+ <!-- <template #stackBlockContent>-->
58
+ <!-- <ui-input-->
59
+ <!-- :id="`nvidia-grid-${props.pciDeviceIndex}`"-->
60
+ <!-- v-model="model"-->
61
+ <!-- :test-id="`nvidia-grid-${props.pciDeviceIndex}-input`"-->
62
+ <!-- type="text"-->
63
+ <!-- size="sm"-->
64
+ <!-- />-->
65
+ <!-- </template>-->
66
+ <!-- </ui-stack-block>-->
67
+ <!--</template>-->
68
+
69
+ <!--<script lang="ts" setup>-->
70
+ <!--import type { UI_I_Localization } from '~/lib/models/interfaces'-->
71
+
72
+ <!--const model = defineModel<string>({ required: true })-->
73
+
74
+ <!--const props = defineProps<{-->
75
+ <!-- pciDeviceIndex: number-->
76
+ <!--}>()-->
77
+
78
+ <!--const localization = computed<UI_I_Localization>(() => useLocal())-->
79
+ <!--</script>-->
80
+
81
+ <!--<style lang="scss" scoped></style>-->
@@ -5,12 +5,31 @@
5
5
  {{ localization.common.nvidiaGridGpuProfile }}
6
6
  </template>
7
7
  <template #stackBlockContent>
8
- <input
9
- :id="`nvidia-grid-${props.pciDeviceIndex}`"
10
- v-model="model"
11
- :data-id="`nvidia-grid-${props.pciDeviceIndex}-input`"
12
- type="text"
13
- />
8
+ <div>{{ localization.common.connectAnyFollowing }}:</div>
9
+ <div class="select">
10
+ <select
11
+ id="nvidia-grid"
12
+ v-model="model"
13
+ :data-id="`nvidia-grid-select-${props.pciDeviceIndex}`"
14
+ >
15
+ <option
16
+ v-for="item in props.options"
17
+ :key="item.value"
18
+ :value="item"
19
+ >
20
+ {{ item.text }}
21
+ </option>
22
+ </select>
23
+ </div>
24
+ <!-- <atoms-select-the-select-->
25
+ <!-- v-model="model"-->
26
+ <!-- :options="props.options"-->
27
+ <!-- :test-id="`nvidia-grid-select-${pciDeviceIndex}`"-->
28
+ <!-- >-->
29
+ <!-- <span class="text-uppercase">{{-->
30
+ <!-- localization.common.selectHardware-->
31
+ <!-- }}</span>-->
32
+ <!-- </atoms-select-the-select>-->
14
33
  </template>
15
34
  </atoms-stack-block>
16
35
  </div>
@@ -18,10 +37,12 @@
18
37
 
19
38
  <script lang="ts" setup>
20
39
  import type { UI_I_Localization } from '~/lib/models/interfaces'
40
+ import type { UI_I_Option } from '~/components/atoms/select/lib/models/interfaces'
21
41
 
22
- const model = defineModel<string>({required: true})
42
+ const model = defineModel<string>({ required: true })
23
43
 
24
44
  const props = defineProps<{
45
+ options: UI_I_Option[]
25
46
  pciDeviceIndex: number
26
47
  }>()
27
48
 
@@ -29,3 +50,35 @@ const localization = computed<UI_I_Localization>(() => useLocal())
29
50
  </script>
30
51
 
31
52
  <style lang="scss" scoped></style>
53
+
54
+ <!--<template>-->
55
+ <!-- <div>-->
56
+ <!-- <atoms-stack-block :has-children="false">-->
57
+ <!-- <template #stackBlockKey>-->
58
+ <!-- {{ localization.common.nvidiaGridGpuProfile }}-->
59
+ <!-- </template>-->
60
+ <!-- <template #stackBlockContent>-->
61
+ <!-- <input-->
62
+ <!-- :id="`nvidia-grid-${props.pciDeviceIndex}`"-->
63
+ <!-- v-model="model"-->
64
+ <!-- :data-id="`nvidia-grid-${props.pciDeviceIndex}-input`"-->
65
+ <!-- type="text"-->
66
+ <!-- />-->
67
+ <!-- </template>-->
68
+ <!-- </atoms-stack-block>-->
69
+ <!-- </div>-->
70
+ <!--</template>-->
71
+
72
+ <!--<script lang="ts" setup>-->
73
+ <!--import type { UI_I_Localization } from '~/lib/models/interfaces'-->
74
+
75
+ <!--const model = defineModel<string>({required: true})-->
76
+
77
+ <!--const props = defineProps<{-->
78
+ <!-- pciDeviceIndex: number-->
79
+ <!--}>()-->
80
+
81
+ <!--const localization = computed<UI_I_Localization>(() => useLocal())-->
82
+ <!--</script>-->
83
+
84
+ <!--<style lang="scss" scoped></style>-->
@@ -8,7 +8,7 @@
8
8
  v-model="modelLocal"
9
9
  :value="item.value"
10
10
  :label="item.text"
11
- :disabled="!!index"
11
+ :disabled="item.disabled"
12
12
  :test-id="`pci-device-radio-input-${props.pciDeviceIndex}-${index}`"
13
13
  />
14
14
  </div>