bfg-common 1.4.728 → 1.4.730

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 (118) hide show
  1. package/assets/img/icons/icons-sprite-dark-3.svg +227 -227
  2. package/assets/img/icons/icons-sprite-dark-5.svg +488 -488
  3. package/assets/img/icons/icons-sprite-light-3.svg +227 -227
  4. package/assets/img/icons/icons-sprite-light-5.svg +488 -488
  5. package/assets/scss/common/normalize.scss +361 -361
  6. package/components/atoms/TheIcon3.vue +50 -50
  7. package/components/atoms/modal/bySteps/BySteps.vue +253 -253
  8. package/components/atoms/stack/StackBlock.vue +185 -185
  9. package/components/atoms/table/dataGrid/DataGrid.vue +1696 -1696
  10. package/components/atoms/table/dataGrid/DataGridColumnSwitch.vue +222 -222
  11. package/components/atoms/table/dataGrid/lib/config/settingsTable.ts +91 -91
  12. package/components/common/browse/BrowseNew.vue +237 -237
  13. package/components/common/browse/BrowseOld.vue +217 -217
  14. package/components/common/browse/blocks/contents/Files.vue +37 -37
  15. package/components/common/browse/blocks/contents/FilesOld.vue +72 -72
  16. package/components/common/browse/blocks/contents/filesNew/FilesNew.vue +96 -96
  17. package/components/common/browse/blocks/contents/filesNew/Skeleton.vue +18 -18
  18. package/components/common/context/lib/models/interfaces.ts +30 -30
  19. package/components/common/context/recursion/Recursion.vue +86 -86
  20. package/components/common/context/recursion/RecursionOld.vue +213 -213
  21. package/components/common/layout/theHeader/helpMenu/About.vue +82 -82
  22. package/components/common/layout/theHeader/helpMenu/aboutNew/AboutNew.vue +103 -103
  23. package/components/common/mainNavigationPanel/MainNavigationPanel.vue +150 -150
  24. package/components/common/mainNavigationPanel/MainNavigationPanelOld.vue +300 -300
  25. package/components/common/modals/confirmByInput/ConfirmByInput.vue +206 -206
  26. package/components/common/modals/unsavedChanges/UnsavedChanges.vue +56 -56
  27. package/components/common/pages/home/StatusContent.vue +49 -49
  28. package/components/common/pages/home/headline/Headline.vue +44 -44
  29. package/components/common/pages/home/headline/HeadlineNew.vue +71 -71
  30. package/components/common/pages/home/lib/models/interfaces.ts +48 -48
  31. package/components/common/pages/home/widgets/Widgets.vue +49 -49
  32. package/components/common/pages/home/widgets/WidgetsNew.vue +86 -86
  33. package/components/common/pages/home/widgets/WidgetsOld.vue +34 -34
  34. package/components/common/pages/home/widgets/hosts/Hosts.vue +27 -27
  35. package/components/common/pages/home/widgets/hosts/HostsNew.vue +100 -100
  36. package/components/common/pages/home/widgets/hosts/lib/config/items.ts +23 -23
  37. package/components/common/pages/home/widgets/services/lib/config/config.ts +108 -108
  38. package/components/common/pages/home/widgets/vms/Vms.vue +26 -26
  39. package/components/common/pages/home/widgets/vms/VmsNew.vue +101 -101
  40. package/components/common/pages/home/widgets/vms/VmsOld.vue +35 -35
  41. package/components/common/pages/home/widgets/vms/lib/config/items.ts +19 -19
  42. package/components/common/recursionTree/RecursionTree.vue +223 -223
  43. package/components/common/select/button/ButtonDropdown.vue +108 -108
  44. package/components/common/spiceConsole/Drawer.vue +370 -370
  45. package/components/common/spiceConsole/lib/models/interfaces.ts +5 -5
  46. package/components/common/split/vertical/Vertical.vue +160 -160
  47. package/components/common/vm/actions/clone/Clone.vue +2 -0
  48. package/components/common/vm/actions/clone/lib/config/steps.ts +129 -129
  49. package/components/common/vm/actions/common/customizeHardware/virtualHardware/browseView/BrowseView.vue +219 -219
  50. package/components/common/vm/actions/common/customizeHardware/virtualHardware/bus/BusNew.vue +117 -117
  51. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/CdDvdDriveNew.vue +161 -161
  52. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/CdDvdDriveOld.vue +165 -165
  53. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/Media.vue +25 -25
  54. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/MediaNew.vue +70 -70
  55. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/MediaOld.vue +50 -50
  56. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/Cpu.vue +338 -338
  57. package/components/common/vm/actions/common/customizeHardware/virtualHardware/limit/Limit.vue +220 -220
  58. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/mode/ModeOld.vue +56 -56
  59. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/sharing/SharingNew.vue +44 -44
  60. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/NewNetwork.vue +281 -281
  61. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/NewNetworkNew.vue +124 -124
  62. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/location/LocationOld.vue +134 -134
  63. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/location/new/New.vue +63 -63
  64. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/location/new/table/lib/config/config.ts +95 -95
  65. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/macAddress/MacAddress.vue +119 -119
  66. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/macAddress/MacAddressNew.vue +69 -69
  67. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/macAddress/MacAddressOld.vue +83 -83
  68. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/directPathIo/DirectPathIoNew.vue +35 -35
  69. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIoNew.vue +48 -48
  70. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/Note.vue +15 -15
  71. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/NoteNew.vue +42 -42
  72. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/NoteOld.vue +30 -30
  73. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/nvidiaGrid/NvidiaGridNew.vue +30 -30
  74. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newUsbController/NewUsbControllerNew.vue +56 -56
  75. package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/Other.vue +16 -16
  76. package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/OtherNew.vue +30 -30
  77. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/VideoCardNew.vue +104 -104
  78. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/VideoCardOld.vue +112 -112
  79. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/totalVideoMemory/TotalVideoMemoryNew.vue +54 -54
  80. package/components/common/vm/actions/common/customizeHardware/vmoptions/Vmoptions.vue +145 -145
  81. package/components/common/vm/actions/common/customizeHardware/vmoptions/VmoptionsNew.vue +102 -102
  82. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/BootOptionsNew.vue +75 -75
  83. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/delay/Delay.vue +26 -26
  84. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/firmware/Firmware.vue +57 -57
  85. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/firmware/FirmwareNew.vue +42 -42
  86. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/menu/MenuNew.vue +25 -25
  87. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/Order.vue +171 -171
  88. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/OrderNew.vue +50 -50
  89. package/components/common/vm/actions/common/customizeHardware/vmoptions/generalOptions/GeneralOptionsNew.vue +141 -141
  90. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/New.vue +140 -140
  91. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/copyPaste/CopyPasteNew.vue +30 -30
  92. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/fileTransfer/FileTransferNew.vue +30 -30
  93. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/folderSharing/FolderSharingNew.vue +30 -30
  94. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/keymap/Keymap.vue +32 -32
  95. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/keymap/KeymapNew.vue +39 -39
  96. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/password/Password.vue +103 -103
  97. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/password/PasswordNew.vue +102 -102
  98. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/password/PasswordOld.vue +94 -94
  99. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirection.vue +28 -28
  100. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirectionNew.vue +38 -38
  101. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirectionOld.vue +44 -44
  102. package/components/common/vm/actions/common/select/storage/Storage.vue +130 -130
  103. package/components/common/vm/actions/common/select/storage/StorageOld.vue +129 -129
  104. package/components/common/vm/actions/editSettings/EditSettings.vue +3 -0
  105. package/components/common/vm/actions/editSettings/EditSettingsOld.vue +2 -0
  106. package/components/common/vm/actions/editSettings/new/New.vue +2 -0
  107. package/components/common/vm/actions/editSettings/new/Skeleton.vue +88 -88
  108. package/composables/productNameLocal.ts +30 -30
  109. package/composables/useAppVersion.ts +21 -21
  110. package/package.json +1 -1
  111. package/plugins/date.ts +233 -233
  112. package/plugins/recursion.ts +311 -311
  113. package/public/spice-console/lib/images/bitmap.js +203 -203
  114. package/public/spice-console/network/spicechannel.js +383 -383
  115. package/public/spice-console-minify/run.min.js +4 -4
  116. package/store/main/mutations.ts +7 -7
  117. package/store/main/state.ts +7 -7
  118. package/store/tasks/mappers/recentTasks.ts +64 -64
@@ -1,130 +1,130 @@
1
- <template>
2
- <common-vm-actions-common-select-storage-new
3
- v-if="isNewView"
4
- v-model:selected-row="selectedRow"
5
- v-model:pagination="pagination"
6
- :datastore="props.datastore"
7
- :get-datastore-table-func="props.getDatastoreTableFunc"
8
- :errors="errors"
9
- :selected-storage="selectedStorage"
10
- :hide-compatibility="props.hideCompatibility"
11
- @remove-error="onRemoveValidationErrors"
12
- @change-storage="changeStorage"
13
- />
14
- <common-vm-actions-common-select-storage-old
15
- v-else
16
- v-model:selected-row="selectedRow"
17
- v-model:pagination="pagination"
18
- :datastore="props.datastore"
19
- :get-datastore-table-func="props.getDatastoreTableFunc"
20
- :errors="errors"
21
- :selected-storage="selectedStorage"
22
- :hide-compatibility="props.hideCompatibility"
23
- @remove-error="onRemoveValidationErrors"
24
- @change-storage="changeStorage"
25
- />
26
- </template>
27
-
28
- <script setup lang="ts">
29
- import type {
30
- UI_I_Pagination,
31
- UI_I_TablePayload,
32
- } from '~/lib/models/table/interfaces'
33
- import type { UI_I_DatastoreTableItem } from '~/lib/models/store/storage/interfaces'
34
- import type { UI_I_Localization } from '~/lib/models/interfaces'
35
-
36
- const props = defineProps<{
37
- storageSubmit: null | Function
38
- datastore: UI_I_DatastoreTableItem[]
39
- getDatastoreTableFunc: (payload: UI_I_TablePayload) => Promise<void>
40
- storage?: UI_I_DatastoreTableItem
41
- hideCompatibility?: boolean
42
- }>()
43
- const emits = defineEmits<{
44
- (event: 'submit', value: UI_I_DatastoreTableItem): void
45
- }>()
46
-
47
- const { $store }: any = useNuxtApp()
48
- const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
49
-
50
- const localization = computed<UI_I_Localization>(() => useLocal())
51
-
52
- const pagination = ref<UI_I_Pagination>({
53
- page: 1,
54
- pageSize: 100,
55
- })
56
- const getStorage = async (): Promise<void> => {
57
- const payload: UI_I_TablePayload = {
58
- pagination: pagination.value,
59
- sortBy: null,
60
- type: 'datastore',
61
- schema: 'full',
62
- }
63
-
64
- props.getDatastoreTableFunc(payload).then(() => {
65
- selectedRow.value = null
66
- setStorageFromProps()
67
- })
68
- }
69
- getStorage()
70
-
71
- const selectedStorage = ref<UI_I_DatastoreTableItem | null>(null)
72
- const selectedRow = ref<number | null>(null)
73
- const changeStorage = (index: number): void => {
74
- if (!props.datastore) return
75
- selectedStorage.value = props.datastore[index]
76
- selectedRow.value = index
77
- }
78
-
79
- const setStorageFromProps = (): void => {
80
- if (!props.storage) return
81
- props.datastore.forEach((item, index) => {
82
- if (item.id === props.storage.id) changeStorage(index)
83
- })
84
- }
85
- watch(
86
- () => props.storage,
87
- () => {
88
- setStorageFromProps()
89
- },
90
- { immediate: true }
91
- )
92
- watch(
93
- () => props.datastore,
94
- () => {
95
- selectedRow.value = null
96
- selectedStorage.value = null
97
- },
98
- { immediate: true }
99
- )
100
-
101
- watch(
102
- () => props.storageSubmit,
103
- (newValue) => {
104
- newValue && submit(newValue)
105
- }
106
- )
107
- const submit = (cb: Function): void => {
108
- if (!selectedStorage.value) {
109
- showValidationErrors([
110
- localization.value.common.selectValidDestinationStorage,
111
- ])
112
- cb(false)
113
- return
114
- }
115
-
116
- emits('submit', selectedStorage.value)
117
- cb(true)
118
- }
119
-
120
- const errors = ref<string[]>([])
121
- const showValidationErrors = (arr: string[]): void => {
122
- errors.value = arr
123
- }
124
- const onRemoveValidationErrors = (): void => {
125
- errors.value = []
126
- }
127
- </script>
128
-
129
- <style scoped lang="scss">
130
- </style>
1
+ <template>
2
+ <common-vm-actions-common-select-storage-new
3
+ v-if="isNewView"
4
+ v-model:selected-row="selectedRow"
5
+ v-model:pagination="pagination"
6
+ :datastore="props.datastore"
7
+ :get-datastore-table-func="props.getDatastoreTableFunc"
8
+ :errors="errors"
9
+ :selected-storage="selectedStorage"
10
+ :hide-compatibility="props.hideCompatibility"
11
+ @remove-error="onRemoveValidationErrors"
12
+ @change-storage="changeStorage"
13
+ />
14
+ <common-vm-actions-common-select-storage-old
15
+ v-else
16
+ v-model:selected-row="selectedRow"
17
+ v-model:pagination="pagination"
18
+ :datastore="props.datastore"
19
+ :get-datastore-table-func="props.getDatastoreTableFunc"
20
+ :errors="errors"
21
+ :selected-storage="selectedStorage"
22
+ :hide-compatibility="props.hideCompatibility"
23
+ @remove-error="onRemoveValidationErrors"
24
+ @change-storage="changeStorage"
25
+ />
26
+ </template>
27
+
28
+ <script setup lang="ts">
29
+ import type {
30
+ UI_I_Pagination,
31
+ UI_I_TablePayload,
32
+ } from '~/lib/models/table/interfaces'
33
+ import type { UI_I_DatastoreTableItem } from '~/lib/models/store/storage/interfaces'
34
+ import type { UI_I_Localization } from '~/lib/models/interfaces'
35
+
36
+ const props = defineProps<{
37
+ storageSubmit: null | Function
38
+ datastore: UI_I_DatastoreTableItem[]
39
+ getDatastoreTableFunc: (payload: UI_I_TablePayload) => Promise<void>
40
+ storage?: UI_I_DatastoreTableItem
41
+ hideCompatibility?: boolean
42
+ }>()
43
+ const emits = defineEmits<{
44
+ (event: 'submit', value: UI_I_DatastoreTableItem): void
45
+ }>()
46
+
47
+ const { $store }: any = useNuxtApp()
48
+ const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
49
+
50
+ const localization = computed<UI_I_Localization>(() => useLocal())
51
+
52
+ const pagination = ref<UI_I_Pagination>({
53
+ page: 1,
54
+ pageSize: 100,
55
+ })
56
+ const getStorage = async (): Promise<void> => {
57
+ const payload: UI_I_TablePayload = {
58
+ pagination: pagination.value,
59
+ sortBy: null,
60
+ type: 'datastore',
61
+ schema: 'full',
62
+ }
63
+
64
+ props.getDatastoreTableFunc(payload).then(() => {
65
+ selectedRow.value = null
66
+ setStorageFromProps()
67
+ })
68
+ }
69
+ getStorage()
70
+
71
+ const selectedStorage = ref<UI_I_DatastoreTableItem | null>(null)
72
+ const selectedRow = ref<number | null>(null)
73
+ const changeStorage = (index: number): void => {
74
+ if (!props.datastore) return
75
+ selectedStorage.value = props.datastore[index]
76
+ selectedRow.value = index
77
+ }
78
+
79
+ const setStorageFromProps = (): void => {
80
+ if (!props.storage) return
81
+ props.datastore.forEach((item, index) => {
82
+ if (item.id === props.storage.id) changeStorage(index)
83
+ })
84
+ }
85
+ watch(
86
+ () => props.storage,
87
+ () => {
88
+ setStorageFromProps()
89
+ },
90
+ { immediate: true }
91
+ )
92
+ watch(
93
+ () => props.datastore,
94
+ () => {
95
+ selectedRow.value = null
96
+ selectedStorage.value = null
97
+ },
98
+ { immediate: true }
99
+ )
100
+
101
+ watch(
102
+ () => props.storageSubmit,
103
+ (newValue) => {
104
+ newValue && submit(newValue)
105
+ }
106
+ )
107
+ const submit = (cb: Function): void => {
108
+ if (!selectedStorage.value) {
109
+ showValidationErrors([
110
+ localization.value.common.selectValidDestinationStorage,
111
+ ])
112
+ cb(false)
113
+ return
114
+ }
115
+
116
+ emits('submit', selectedStorage.value)
117
+ cb(true)
118
+ }
119
+
120
+ const errors = ref<string[]>([])
121
+ const showValidationErrors = (arr: string[]): void => {
122
+ errors.value = arr
123
+ }
124
+ const onRemoveValidationErrors = (): void => {
125
+ errors.value = []
126
+ }
127
+ </script>
128
+
129
+ <style scoped lang="scss">
130
+ </style>
@@ -1,129 +1,129 @@
1
- <template>
2
- <div class="select-storage">
3
- <atoms-alert
4
- v-show="props.errors.length"
5
- status="alert-danger"
6
- test-id="storage-alert"
7
- :items="props.errors"
8
- @remove="emits('remove-error')"
9
- />
10
- <div class="table-wrap">
11
- <atoms-table-data-grid
12
- v-model:selected-row="selectedRow"
13
- v-model:column-keys="columnKeys"
14
- v-model:page-size="pagination.pageSize"
15
- v-model:page="pagination.page"
16
- type="radio"
17
- test-id="storage-table"
18
- :head-items="headItems"
19
- :body-items="bodyItems"
20
- :total-items="bodyItems.length"
21
- :total-pages="1"
22
- server-off
23
- hide-page-size
24
- @change="emits('change-storage', $event)"
25
- >
26
- <template #icon="{ item }">
27
- <span :class="['datagrid-cell-icon', item.data]" />
28
- <span class="text-ellipsis">
29
- {{ item.text }}
30
- </span>
31
- </template>
32
- </atoms-table-data-grid>
33
- </div>
34
-
35
- <div v-if="!props.hideCompatibility" class="compatibility-wrap">
36
- <p class="compatibility">
37
- {{ localization.inventorySummary.compatibility }}
38
- </p>
39
- <div class="compatibility-message flex-align-center">
40
- <template v-if="props.selectedStorage">
41
- <div class="icon-status-ok" />
42
- <span>{{ localization.common.compatibilityChecksSucceeded }}</span>
43
- </template>
44
- <div v-else>
45
- <br />
46
- </div>
47
- </div>
48
- </div>
49
- </div>
50
- </template>
51
-
52
- <script setup lang="ts">
53
- import type {
54
- UI_I_Pagination,
55
- UI_I_TablePayload,
56
- } from '~/lib/models/table/interfaces'
57
- import type { UI_I_DatastoreTableItem } from '~/lib/models/store/storage/interfaces'
58
- import type { UI_I_Localization } from '~/lib/models/interfaces'
59
- import type {
60
- UI_I_ColumnKey,
61
- UI_I_HeadItem,
62
- UI_I_BodyItem,
63
- } from '~/components/atoms/table/dataGrid/lib/models/interfaces'
64
- import * as table from '~/components/common/vm/actions/common/select/storage/lib/config/config'
65
-
66
- const selectedRow = defineModel<number | null>('selectedRow')
67
- const pagination = defineModel<UI_I_Pagination>('pagination', {
68
- required: true,
69
- })
70
-
71
- const props = defineProps<{
72
- datastore: UI_I_DatastoreTableItem[]
73
- getDatastoreTableFunc: (payload: UI_I_TablePayload) => Promise<void>
74
- errors: string[]
75
- selectedStorage: UI_I_DatastoreTableItem | null
76
- hideCompatibility?: boolean
77
- }>()
78
- const emits = defineEmits<{
79
- (event: 'remove-error'): void
80
- (event: 'change-storage', value: number): void
81
- }>()
82
-
83
- const localization = computed<UI_I_Localization>(() => useLocal())
84
-
85
- const headItems = ref<UI_I_HeadItem[]>(table.headItems(localization.value))
86
- const columnKeys = ref<UI_I_ColumnKey[]>(table.columnKeys(localization.value))
87
- watch(localization, () => {
88
- columnKeys.value = table.columnKeys(localization.value)
89
- })
90
-
91
- const bodyItems = computed<UI_I_BodyItem[][]>(() => {
92
- return table.bodyItems(props.datastore || [], localization.value)
93
- })
94
- </script>
95
-
96
- <style scoped lang="scss">
97
- .select-storage {
98
- flex: 1;
99
- display: flex;
100
- flex-direction: column;
101
-
102
- .table-wrap {
103
- flex: 1;
104
-
105
- .datagrid-cell-icon {
106
- margin-right: 6px;
107
- }
108
-
109
- :deep(.relative) {
110
- height: 100%;
111
-
112
- .datagrid-outer-wrapper {
113
- height: 100%;
114
- }
115
- }
116
- }
117
-
118
- .compatibility-wrap {
119
- padding-top: 10px;
120
-
121
- .compatibility-message {
122
- border: 1px solid #000;
123
- padding-top: 5px;
124
- padding-left: 5px;
125
- overflow: auto;
126
- }
127
- }
128
- }
129
- </style>
1
+ <template>
2
+ <div class="select-storage">
3
+ <atoms-alert
4
+ v-show="props.errors.length"
5
+ status="alert-danger"
6
+ test-id="storage-alert"
7
+ :items="props.errors"
8
+ @remove="emits('remove-error')"
9
+ />
10
+ <div class="table-wrap">
11
+ <atoms-table-data-grid
12
+ v-model:selected-row="selectedRow"
13
+ v-model:column-keys="columnKeys"
14
+ v-model:page-size="pagination.pageSize"
15
+ v-model:page="pagination.page"
16
+ type="radio"
17
+ test-id="storage-table"
18
+ :head-items="headItems"
19
+ :body-items="bodyItems"
20
+ :total-items="bodyItems.length"
21
+ :total-pages="1"
22
+ server-off
23
+ hide-page-size
24
+ @change="emits('change-storage', $event)"
25
+ >
26
+ <template #icon="{ item }">
27
+ <span :class="['datagrid-cell-icon', item.data]" />
28
+ <span class="text-ellipsis">
29
+ {{ item.text }}
30
+ </span>
31
+ </template>
32
+ </atoms-table-data-grid>
33
+ </div>
34
+
35
+ <div v-if="!props.hideCompatibility" class="compatibility-wrap">
36
+ <p class="compatibility">
37
+ {{ localization.inventorySummary.compatibility }}
38
+ </p>
39
+ <div class="compatibility-message flex-align-center">
40
+ <template v-if="props.selectedStorage">
41
+ <div class="icon-status-ok" />
42
+ <span>{{ localization.common.compatibilityChecksSucceeded }}</span>
43
+ </template>
44
+ <div v-else>
45
+ <br />
46
+ </div>
47
+ </div>
48
+ </div>
49
+ </div>
50
+ </template>
51
+
52
+ <script setup lang="ts">
53
+ import type {
54
+ UI_I_Pagination,
55
+ UI_I_TablePayload,
56
+ } from '~/lib/models/table/interfaces'
57
+ import type { UI_I_DatastoreTableItem } from '~/lib/models/store/storage/interfaces'
58
+ import type { UI_I_Localization } from '~/lib/models/interfaces'
59
+ import type {
60
+ UI_I_ColumnKey,
61
+ UI_I_HeadItem,
62
+ UI_I_BodyItem,
63
+ } from '~/components/atoms/table/dataGrid/lib/models/interfaces'
64
+ import * as table from '~/components/common/vm/actions/common/select/storage/lib/config/config'
65
+
66
+ const selectedRow = defineModel<number | null>('selectedRow')
67
+ const pagination = defineModel<UI_I_Pagination>('pagination', {
68
+ required: true,
69
+ })
70
+
71
+ const props = defineProps<{
72
+ datastore: UI_I_DatastoreTableItem[]
73
+ getDatastoreTableFunc: (payload: UI_I_TablePayload) => Promise<void>
74
+ errors: string[]
75
+ selectedStorage: UI_I_DatastoreTableItem | null
76
+ hideCompatibility?: boolean
77
+ }>()
78
+ const emits = defineEmits<{
79
+ (event: 'remove-error'): void
80
+ (event: 'change-storage', value: number): void
81
+ }>()
82
+
83
+ const localization = computed<UI_I_Localization>(() => useLocal())
84
+
85
+ const headItems = ref<UI_I_HeadItem[]>(table.headItems(localization.value))
86
+ const columnKeys = ref<UI_I_ColumnKey[]>(table.columnKeys(localization.value))
87
+ watch(localization, () => {
88
+ columnKeys.value = table.columnKeys(localization.value)
89
+ })
90
+
91
+ const bodyItems = computed<UI_I_BodyItem[][]>(() => {
92
+ return table.bodyItems(props.datastore || [], localization.value)
93
+ })
94
+ </script>
95
+
96
+ <style scoped lang="scss">
97
+ .select-storage {
98
+ flex: 1;
99
+ display: flex;
100
+ flex-direction: column;
101
+
102
+ .table-wrap {
103
+ flex: 1;
104
+
105
+ .datagrid-cell-icon {
106
+ margin-right: 6px;
107
+ }
108
+
109
+ :deep(.relative) {
110
+ height: 100%;
111
+
112
+ .datagrid-outer-wrapper {
113
+ height: 100%;
114
+ }
115
+ }
116
+ }
117
+
118
+ .compatibility-wrap {
119
+ padding-top: 10px;
120
+
121
+ .compatibility-message {
122
+ border: 1px solid #000;
123
+ padding-top: 5px;
124
+ padding-left: 5px;
125
+ overflow: auto;
126
+ }
127
+ }
128
+ }
129
+ </style>
@@ -18,6 +18,7 @@
18
18
  :state="props.state"
19
19
  :vm-name-old="props.vmSettings?.name"
20
20
  :passthrough-devices="props.passthroughDevices"
21
+ :mediated-devices="props.mediatedDevices"
21
22
  :get-datastore-table-func="props.getDatastoreTableFunc"
22
23
  :customize-hardware-submit="customizeHardwareSubmit"
23
24
  @hide="emits('hide')"
@@ -51,6 +52,7 @@
51
52
  :state="props.state"
52
53
  :vm-name-old="props.vmSettings?.name"
53
54
  :passthrough-devices="props.passthroughDevices"
55
+ :mediated-devices="props.mediatedDevices"
54
56
  :get-datastore-table-func="props.getDatastoreTableFunc"
55
57
  :customize-hardware-submit="customizeHardwareSubmit"
56
58
  @hide="emits('hide')"
@@ -111,6 +113,7 @@ const props = defineProps<{
111
113
  getDatastoreTableFunc?: (payload: UI_I_TablePayload) => Promise<void>
112
114
  state?: string | number
113
115
  passthroughDevices?: UI_I_PciDevice[]
116
+ mediatedDevices?: any[]
114
117
  capabilities?: UI_I_Capabilities
115
118
  }>()
116
119
 
@@ -46,6 +46,7 @@
46
46
  :error-validation-fields="props.errorValidationFields"
47
47
  :vm-cpu-help-text-second="props.vmCpuHelpTextSecond"
48
48
  :passthrough-devices="props.passthroughDevices"
49
+ :mediated-devices="props.mediatedDevices"
49
50
  :state="props.state"
50
51
  :get-datastore-table-func="props.getDatastoreTableFunc"
51
52
  :datastore="props.datastore"
@@ -112,6 +113,7 @@ const props = defineProps<{
112
113
  state?: string | number
113
114
  vmNameOld?: string
114
115
  passthroughDevices?: UI_I_PciDevice[]
116
+ mediatedDevices?: any[]
115
117
  getDatastoreTableFunc?: (payload: UI_I_TablePayload) => Promise<void>
116
118
  customizeHardwareSubmit?: null | Function
117
119
  }>()
@@ -48,6 +48,7 @@
48
48
  :error-validation-fields="props.errorValidationFields"
49
49
  :vm-cpu-help-text-second="props.vmCpuHelpTextSecond"
50
50
  :passthrough-devices="props.passthroughDevices"
51
+ :mediated-devices="props.mediatedDevices"
51
52
  :state="props.state"
52
53
  :get-datastore-table-func="props.getDatastoreTableFunc"
53
54
  :datastore="props.datastore"
@@ -118,6 +119,7 @@ const props = defineProps<{
118
119
  state?: string | number
119
120
  vmNameOld?: string
120
121
  passthroughDevices?: UI_I_PciDevice[]
122
+ mediatedDevices?: any[]
121
123
  getDatastoreTableFunc?: (payload: UI_I_TablePayload) => Promise<void>
122
124
  customizeHardwareSubmit?: null | Function
123
125
  }>()