bfg-common 1.5.239 → 1.5.240

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 (151) hide show
  1. package/CODE_STYLE.md +109 -109
  2. package/assets/scss/common/theme.scss +6 -0
  3. package/components/atoms/TheIcon3.vue +50 -50
  4. package/components/atoms/perPage/PerPage.vue +58 -58
  5. package/components/atoms/stack/StackBlock.vue +185 -185
  6. package/components/atoms/table/dataGrid/DataGrid.vue +1717 -1717
  7. package/components/atoms/table/dataGrid/lib/config/settingsTable.ts +94 -94
  8. package/components/atoms/table/dataGrid/lib/utils/export.ts +16 -16
  9. package/components/atoms/table/info/lib/models/interfaces.ts +10 -10
  10. package/components/atoms/tabs/VerticalTabs.vue +105 -105
  11. package/components/common/backup/storage/actions/add/Add.vue +247 -247
  12. package/components/common/backup/storage/actions/add/New.vue +281 -281
  13. package/components/common/backup/storage/actions/add/Old.vue +114 -114
  14. package/components/common/backup/storage/actions/add/lib/config/steps.ts +168 -168
  15. package/components/common/backup/storage/actions/add/steps/nameAndConfigure/NameAndConfigure.vue +41 -41
  16. package/components/common/backup/storage/actions/add/steps/nameAndConfigure/NameAndConfigureNew.vue +294 -294
  17. package/components/common/backup/storage/actions/add/steps/readyComplete/ReadyComplete.vue +45 -45
  18. package/components/common/backup/storage/actions/add/steps/readyComplete/lib/config/propertiesDetails.ts +242 -242
  19. package/components/common/backup/storage/actions/delete/Delete.vue +65 -65
  20. package/components/common/browse/BrowseNew.vue +8 -2
  21. package/components/common/browse/blocks/contents/filesNew/Skeleton.vue +18 -18
  22. package/components/common/context/lib/models/interfaces.ts +31 -31
  23. package/components/common/diagramMain/DiagramMain.vue +897 -897
  24. package/components/common/diagramMain/Header.vue +214 -214
  25. package/components/common/layout/theHeader/helpMenu/About.vue +82 -82
  26. package/components/common/layout/theHeader/userMenu/modals/preferences/view/ViewOld.vue +112 -112
  27. package/components/common/monitor/overview/OverviewOld.vue +139 -139
  28. package/components/common/pages/home/headline/Headline.vue +45 -45
  29. package/components/common/pages/home/headline/HeadlineOld.vue +42 -42
  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/lib/config/items.ts +23 -23
  36. package/components/common/pages/home/widgets/vms/Vms.vue +26 -26
  37. package/components/common/pages/home/widgets/vms/VmsOld.vue +35 -35
  38. package/components/common/pages/home/widgets/vms/lib/config/items.ts +19 -19
  39. package/components/common/pages/packages/Packages.vue +208 -208
  40. package/components/common/pages/shortcuts/block/BlockOld.vue +68 -68
  41. package/components/common/readyToComplete/ReadyToComplete.vue +17 -17
  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 +377 -377
  45. package/components/common/spiceConsole/lib/models/interfaces.ts +5 -5
  46. package/components/common/vm/actions/add/folderTreeView/FolderTreeView.vue +72 -72
  47. package/components/common/vm/actions/add/folderTreeView/New.vue +40 -40
  48. package/components/common/vm/actions/add/folderTreeView/Old.vue +50 -50
  49. package/components/common/vm/actions/clone/lib/config/steps.ts +291 -291
  50. package/components/common/vm/actions/clone/toTemplate/lib/config/steps.ts +116 -116
  51. package/components/common/vm/actions/common/customizeHardware/CustomizeHardwareNew.vue +5 -2
  52. package/components/common/vm/actions/common/customizeHardware/virtualHardware/VirtualHardwareNew.vue +7 -7
  53. package/components/common/vm/actions/common/customizeHardware/virtualHardware/VirtualHardwareOld.vue +319 -319
  54. package/components/common/vm/actions/common/customizeHardware/virtualHardware/browseView/BrowseView.vue +219 -219
  55. package/components/common/vm/actions/common/customizeHardware/virtualHardware/bus/Bus.vue +100 -100
  56. package/components/common/vm/actions/common/customizeHardware/virtualHardware/bus/BusNew.vue +2 -2
  57. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/CdDvdDrive.vue +232 -232
  58. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/CdDvdDriveNew.vue +4 -0
  59. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/CdDvdDriveOld.vue +168 -168
  60. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/Media.vue +25 -25
  61. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/MediaNew.vue +78 -78
  62. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/MediaOld.vue +50 -50
  63. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/CpuNew.vue +194 -190
  64. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/model/ModelNew.vue +246 -237
  65. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/shares/Shares.vue +140 -140
  66. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/shares/SharesNew.vue +6 -1
  67. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/shares/lib/config/options.ts +28 -28
  68. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/tooltip/TooltipNew.vue +154 -154
  69. package/components/common/vm/actions/common/customizeHardware/virtualHardware/limit/Limit.vue +220 -220
  70. package/components/common/vm/actions/common/customizeHardware/virtualHardware/memory/Memory.vue +307 -307
  71. package/components/common/vm/actions/common/customizeHardware/virtualHardware/memory/MemoryNew.vue +158 -154
  72. package/components/common/vm/actions/common/customizeHardware/virtualHardware/memory/hotPlug/HotPlugNew.vue +8 -2
  73. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/NewHardDisk.vue +382 -382
  74. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/NewHardDiskNew.vue +4 -0
  75. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/file/FileNew.vue +8 -3
  76. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/location/Location.vue +151 -151
  77. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/location/LocationNew.vue +73 -73
  78. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/location/LocationOld.vue +83 -83
  79. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/location/StorageModalNew.vue +1 -0
  80. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/maximumSize/MaximumSizeNew.vue +8 -4
  81. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/provisioning/ProvisioningNew.vue +6 -1
  82. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/sharing/SharingNew.vue +6 -1
  83. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/NewNetwork.vue +288 -288
  84. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/NewNetworkNew.vue +1 -1
  85. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/location/new/New.vue +4 -3
  86. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/location/new/table/Table.vue +1 -0
  87. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/location/new/table/lib/config/config.ts +94 -94
  88. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/macAddress/MacAddress.vue +119 -119
  89. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/NewPciDevice.vue +205 -205
  90. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/directPathIo/DirectPathIoNew.vue +66 -66
  91. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/directPathIo/DirectPathIoOld.vue +62 -62
  92. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIo.vue +31 -31
  93. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIoOld.vue +76 -76
  94. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/Note.vue +15 -15
  95. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/NoteNew.vue +42 -42
  96. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/NoteOld.vue +30 -30
  97. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/nvidiaGrid/NvidiaGridOld.vue +84 -84
  98. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newUsbController/NewUsbControllerNew.vue +1 -0
  99. package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/Other.vue +16 -16
  100. package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/OtherNew.vue +36 -30
  101. package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/inputDevices/InputDevicesNew.vue +40 -40
  102. package/components/common/vm/actions/common/customizeHardware/virtualHardware/reservation/ReservationNew.vue +5 -2
  103. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/VideoCardNew.vue +5 -2
  104. package/components/common/vm/actions/common/customizeHardware/vmoptions/Vmoptions.vue +145 -145
  105. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/BootOptionsNew.vue +85 -81
  106. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/delay/Delay.vue +32 -32
  107. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/firmware/Firmware.vue +60 -60
  108. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/Order.vue +174 -174
  109. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/OrderNew.vue +71 -67
  110. package/components/common/vm/actions/common/customizeHardware/vmoptions/generalOptions/GeneralOptionsNew.vue +150 -149
  111. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/New.vue +146 -140
  112. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/copyPaste/CopyPasteNew.vue +31 -31
  113. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/fileTransfer/FileTransferNew.vue +31 -31
  114. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/keymap/Keymap.vue +32 -32
  115. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/password/Password.vue +103 -103
  116. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/password/PasswordNew.vue +128 -128
  117. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirection.vue +28 -28
  118. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirectionNew.vue +39 -39
  119. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirectionOld.vue +44 -44
  120. package/components/common/vm/actions/common/customizeHardware/vmoptions/tools/ToolsNew.vue +5 -1
  121. package/components/common/vm/actions/common/lib/utils/capabilities.ts +52 -52
  122. package/components/common/vm/actions/common/select/compatibility/Old.vue +107 -107
  123. package/components/common/vm/actions/common/select/computeResource/treeView/New.vue +44 -44
  124. package/components/common/vm/actions/common/select/computeResource/treeView/TreeView.vue +118 -118
  125. package/components/common/vm/actions/common/select/createType/CreateType.vue +38 -38
  126. package/components/common/vm/actions/common/select/createType/lib/models/interfaces.ts +5 -5
  127. package/components/common/vm/actions/common/select/os/Old.vue +152 -152
  128. package/components/common/vm/actions/common/select/os/Os.vue +139 -139
  129. package/components/common/vm/actions/common/select/storage/Storage.vue +2 -0
  130. package/components/common/vm/actions/common/select/storage/new/New.vue +6 -1
  131. package/components/common/vm/actions/common/select/storage/new/lib/config/table.ts +2 -1
  132. package/components/common/vm/actions/common/select/storage/new/lib/models/interfaces.ts +5 -5
  133. package/components/common/vm/actions/common/select/storage/new/lib/utils/utils.ts +21 -21
  134. package/components/common/vm/actions/editSettings/new/Skeleton.vue +88 -88
  135. package/components/common/wizards/vm/migrate/lib/config/constructDataReady.ts +220 -220
  136. package/components/common/wizards/vm/migrate/lib/config/steps.ts +157 -157
  137. package/components/common/wizards/vm/migrate/lib/validations.ts +68 -68
  138. package/components/common/wizards/vm/migrate/select/computeResource/tableView/TableView.vue +135 -135
  139. package/components/common/wizards/vm/migrate/select/network/Network.vue +103 -103
  140. package/components/common/wizards/vm/migrate/select/network/table/network/lib/config/advancedTable.ts +91 -91
  141. package/composables/productNameLocal.ts +30 -30
  142. package/composables/useAppVersion.ts +21 -21
  143. package/package.json +2 -2
  144. package/plugins/date.ts +233 -233
  145. package/plugins/panelStates.ts +70 -70
  146. package/plugins/text.ts +59 -59
  147. package/public/spice-console/lib/images/bitmap.js +203 -203
  148. package/public/spice-console/network/spicechannel.js +387 -387
  149. package/store/main/mutations.ts +7 -7
  150. package/store/main/state.ts +7 -7
  151. package/store/tasks/mappers/recentTasks.ts +64 -64
@@ -1,139 +1,139 @@
1
- <template>
2
- <common-vm-actions-common-select-os-new
3
- v-if="isNewView"
4
- v-model:machine-type="machineType"
5
- v-model:guest-os-family="guestOsFamily"
6
- v-model:guest-os-version="guestOsVersion"
7
- :api-error-machine-type="apiErrorMachineType"
8
- :machine-type-options="machineTypeOptions"
9
- :api-error-guest-os-family="apiErrorGuestOsFamily"
10
- :os-options="osOptions"
11
- :api-error-guest-os-version="apiErrorGuestOsVersion"
12
- :versions-options="versionsOptions"
13
- @change-os="onChangeOs"
14
- @remove-error-by-title="onRemoveValidationError"
15
- />
16
- <common-vm-actions-common-select-os-old
17
- v-else
18
- v-model:machine-type="machineType"
19
- v-model:guest-os-family="guestOsFamily"
20
- v-model:guest-os-version="guestOsVersion"
21
- :api-error-machine-type="apiErrorMachineType"
22
- :machine-type-options="machineTypeOptions"
23
- :api-error-guest-os-family="apiErrorGuestOsFamily"
24
- :os-options="osOptions"
25
- :api-error-guest-os-version="apiErrorGuestOsVersion"
26
- :versions-options="versionsOptions"
27
- @change-os="onChangeOs"
28
- @remove-error-by-title="onRemoveValidationError"
29
- />
30
- </template>
31
-
32
- <script setup lang="ts">
33
- import type {
34
- UI_I_ArbitraryObject,
35
- } from '~/lib/models/interfaces'
36
- import type { UI_I_ErrorValidationField } from '~/lib/models/store/interfaces'
37
- import type { UI_I_OptionItem } from '~/components/atoms/lib/models/interfaces'
38
-
39
- const machineType = defineModel<UI_I_OptionItem | null>('machine-type', {
40
- required: true,
41
- })
42
- const guestOsFamily = defineModel<UI_I_OptionItem | null>('guest-os-family', {
43
- required: true,
44
- })
45
- const guestOsVersion = defineModel<UI_I_OptionItem | null>('guest-os-version', {
46
- required: true,
47
- })
48
-
49
- const props = defineProps<{
50
- familiesOptions: UI_I_OptionItem[]
51
- machineTypesOptions: UI_I_OptionItem[]
52
- versionsOptions: UI_I_ArbitraryObject<UI_I_OptionItem[]>
53
- errorValidationFields: UI_I_ErrorValidationField[]
54
- }>()
55
- const emits = defineEmits<{
56
- (event: 'remove-error-by-title', value: string): void
57
- }>()
58
-
59
- const { $store }: any = useNuxtApp()
60
- const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
61
-
62
- const machineTypeOptions = ref<UI_I_OptionItem[]>(props.machineTypesOptions)
63
- watch(
64
- () => props.machineTypesOptions,
65
- (newValue) => {
66
- machineTypeOptions.value = [...newValue]
67
- if (machineType.value) return
68
-
69
- const q35MachineIndex = newValue.findIndex((item) =>
70
- item.value.toLowerCase().includes('q35')
71
- )
72
- if (q35MachineIndex === -1) {
73
- machineType.value = newValue[0]
74
- } else {
75
- machineType.value = newValue[q35MachineIndex]
76
- }
77
- },
78
- { immediate: true }
79
- )
80
-
81
- const osOptions = ref<UI_I_OptionItem[]>(props.familiesOptions)
82
- watch(
83
- () => props.familiesOptions,
84
- (newValue) => {
85
- osOptions.value = [...newValue]
86
- if (guestOsFamily.value) return
87
- guestOsFamily.value = newValue[0]
88
- },
89
- { immediate: true }
90
- )
91
- const onChangeOs = (): void => {
92
- guestOsVersion.value = versionsOptions.value[0]
93
- }
94
-
95
- const versionsOptions = computed<UI_I_OptionItem[]>(() => {
96
- if (!guestOsFamily.value) return []
97
-
98
- return props.versionsOptions[guestOsFamily.value.value] || []
99
- })
100
- watch(
101
- versionsOptions,
102
- () => {
103
- if (guestOsVersion.value) return
104
-
105
- guestOsVersion.value = versionsOptions.value[0]
106
- },
107
- { immediate: true }
108
- )
109
-
110
- const apiErrorMachineType = computed<string>(() => {
111
- return (
112
- props.errorValidationFields?.find(
113
- (message) => message.field === 'machine_type'
114
- )?.error_message || ''
115
- )
116
- })
117
-
118
- const apiErrorGuestOsFamily = computed<string>(() => {
119
- return (
120
- props.errorValidationFields?.find(
121
- (message) => message.field === 'guest_os_family'
122
- )?.error_message || ''
123
- )
124
- })
125
-
126
- const apiErrorGuestOsVersion = computed<string>(() => {
127
- return (
128
- props.errorValidationFields?.find(
129
- (message) => message.field === 'guest_os_version'
130
- )?.error_message || ''
131
- )
132
- })
133
-
134
- const onRemoveValidationError = (type: string): void => {
135
- emits('remove-error-by-title', type)
136
- }
137
- </script>
138
-
139
- <style scoped lang="scss"></style>
1
+ <template>
2
+ <common-vm-actions-common-select-os-new
3
+ v-if="isNewView"
4
+ v-model:machine-type="machineType"
5
+ v-model:guest-os-family="guestOsFamily"
6
+ v-model:guest-os-version="guestOsVersion"
7
+ :api-error-machine-type="apiErrorMachineType"
8
+ :machine-type-options="machineTypeOptions"
9
+ :api-error-guest-os-family="apiErrorGuestOsFamily"
10
+ :os-options="osOptions"
11
+ :api-error-guest-os-version="apiErrorGuestOsVersion"
12
+ :versions-options="versionsOptions"
13
+ @change-os="onChangeOs"
14
+ @remove-error-by-title="onRemoveValidationError"
15
+ />
16
+ <common-vm-actions-common-select-os-old
17
+ v-else
18
+ v-model:machine-type="machineType"
19
+ v-model:guest-os-family="guestOsFamily"
20
+ v-model:guest-os-version="guestOsVersion"
21
+ :api-error-machine-type="apiErrorMachineType"
22
+ :machine-type-options="machineTypeOptions"
23
+ :api-error-guest-os-family="apiErrorGuestOsFamily"
24
+ :os-options="osOptions"
25
+ :api-error-guest-os-version="apiErrorGuestOsVersion"
26
+ :versions-options="versionsOptions"
27
+ @change-os="onChangeOs"
28
+ @remove-error-by-title="onRemoveValidationError"
29
+ />
30
+ </template>
31
+
32
+ <script setup lang="ts">
33
+ import type {
34
+ UI_I_ArbitraryObject,
35
+ } from '~/lib/models/interfaces'
36
+ import type { UI_I_ErrorValidationField } from '~/lib/models/store/interfaces'
37
+ import type { UI_I_OptionItem } from '~/components/atoms/lib/models/interfaces'
38
+
39
+ const machineType = defineModel<UI_I_OptionItem | null>('machine-type', {
40
+ required: true,
41
+ })
42
+ const guestOsFamily = defineModel<UI_I_OptionItem | null>('guest-os-family', {
43
+ required: true,
44
+ })
45
+ const guestOsVersion = defineModel<UI_I_OptionItem | null>('guest-os-version', {
46
+ required: true,
47
+ })
48
+
49
+ const props = defineProps<{
50
+ familiesOptions: UI_I_OptionItem[]
51
+ machineTypesOptions: UI_I_OptionItem[]
52
+ versionsOptions: UI_I_ArbitraryObject<UI_I_OptionItem[]>
53
+ errorValidationFields: UI_I_ErrorValidationField[]
54
+ }>()
55
+ const emits = defineEmits<{
56
+ (event: 'remove-error-by-title', value: string): void
57
+ }>()
58
+
59
+ const { $store }: any = useNuxtApp()
60
+ const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
61
+
62
+ const machineTypeOptions = ref<UI_I_OptionItem[]>(props.machineTypesOptions)
63
+ watch(
64
+ () => props.machineTypesOptions,
65
+ (newValue) => {
66
+ machineTypeOptions.value = [...newValue]
67
+ if (machineType.value) return
68
+
69
+ const q35MachineIndex = newValue.findIndex((item) =>
70
+ item.value.toLowerCase().includes('q35')
71
+ )
72
+ if (q35MachineIndex === -1) {
73
+ machineType.value = newValue[0]
74
+ } else {
75
+ machineType.value = newValue[q35MachineIndex]
76
+ }
77
+ },
78
+ { immediate: true }
79
+ )
80
+
81
+ const osOptions = ref<UI_I_OptionItem[]>(props.familiesOptions)
82
+ watch(
83
+ () => props.familiesOptions,
84
+ (newValue) => {
85
+ osOptions.value = [...newValue]
86
+ if (guestOsFamily.value) return
87
+ guestOsFamily.value = newValue[0]
88
+ },
89
+ { immediate: true }
90
+ )
91
+ const onChangeOs = (): void => {
92
+ guestOsVersion.value = versionsOptions.value[0]
93
+ }
94
+
95
+ const versionsOptions = computed<UI_I_OptionItem[]>(() => {
96
+ if (!guestOsFamily.value) return []
97
+
98
+ return props.versionsOptions[guestOsFamily.value.value] || []
99
+ })
100
+ watch(
101
+ versionsOptions,
102
+ () => {
103
+ if (guestOsVersion.value) return
104
+
105
+ guestOsVersion.value = versionsOptions.value[0]
106
+ },
107
+ { immediate: true }
108
+ )
109
+
110
+ const apiErrorMachineType = computed<string>(() => {
111
+ return (
112
+ props.errorValidationFields?.find(
113
+ (message) => message.field === 'machine_type'
114
+ )?.error_message || ''
115
+ )
116
+ })
117
+
118
+ const apiErrorGuestOsFamily = computed<string>(() => {
119
+ return (
120
+ props.errorValidationFields?.find(
121
+ (message) => message.field === 'guest_os_family'
122
+ )?.error_message || ''
123
+ )
124
+ })
125
+
126
+ const apiErrorGuestOsVersion = computed<string>(() => {
127
+ return (
128
+ props.errorValidationFields?.find(
129
+ (message) => message.field === 'guest_os_version'
130
+ )?.error_message || ''
131
+ )
132
+ })
133
+
134
+ const onRemoveValidationError = (type: string): void => {
135
+ emits('remove-error-by-title', type)
136
+ }
137
+ </script>
138
+
139
+ <style scoped lang="scss"></style>
@@ -8,6 +8,7 @@
8
8
  :selected-storage="selectedStorage"
9
9
  :hide-compatibility="props.hideCompatibility"
10
10
  :hide-alert="props.hideAlert"
11
+ :is-show-name-icon="props.isShowNameIcon"
11
12
  @remove-error="onRemoveValidationErrors"
12
13
  @change-storage="changeStorage"
13
14
  />
@@ -39,6 +40,7 @@ const props = defineProps<{
39
40
  storage?: UI_I_DatastoreTableItem
40
41
  hideCompatibility?: boolean
41
42
  hideAlert?: boolean
43
+ isShowNameIcon?: boolean
42
44
  }>()
43
45
  const emits = defineEmits<{
44
46
  (event: 'submit', value: UI_I_DatastoreTableItem): void
@@ -29,6 +29,10 @@
29
29
  {{ storageCount }}
30
30
  </h3></template
31
31
  >
32
+ <template v-if="props.isShowNameIcon" #name="{ item }">
33
+ <ui-icon name="datastores" width="18" height="18" class="mr-1" />
34
+ {{ item.text }}
35
+ </template>
32
36
  <template #state="{ item }">
33
37
  <ui-chip :color="item.data.color" rounded>
34
38
  <ui-icon :name="item.data.iconClassName" width="14" height="14" />
@@ -90,6 +94,7 @@ const props = defineProps<{
90
94
  selectedStorage: UI_I_DatastoreTableItem | null
91
95
  hideCompatibility?: boolean
92
96
  hideAlert?: boolean
97
+ isShowNameIcon?: boolean
93
98
  }>()
94
99
  const emits = defineEmits<{
95
100
  (event: 'remove-error'): void
@@ -131,7 +136,7 @@ watch(
131
136
  )
132
137
 
133
138
  const onSelectRow = (selectedData: UI_I_DataTable): void => {
134
- const selectedId = selectedData[0]?.data[0]?.key
139
+ const selectedId = selectedData[0]?.data[0]?.data.id
135
140
  const selectedItemIndex = props.datastore.findIndex(
136
141
  (item) => item.id === selectedId
137
142
  )
@@ -257,9 +257,10 @@ export const tableBodyFunc = (
257
257
  isSelected: key === selectedRow,
258
258
  data: [
259
259
  {
260
- key: item.id,
260
+ key: 'name',
261
261
  col: 0,
262
262
  text: item.name,
263
+ data: { id: item.id },
263
264
  },
264
265
  {
265
266
  key: 'state',
@@ -1,6 +1,6 @@
1
- export interface UI_I_StatusData {
2
- iconClassName: string
3
- color: string
4
- isState: boolean
5
- text: string
1
+ export interface UI_I_StatusData {
2
+ iconClassName: string
3
+ color: string
4
+ isState: boolean
5
+ text: string
6
6
  }
@@ -1,21 +1,21 @@
1
- import type { UI_I_StatusData } from '~/components/common/vm/actions/common/select/storage/new/lib/models/interfaces'
2
-
3
- export const getStatus = (
4
- status: boolean,
5
- text1?: string,
6
- text2?: string
7
- ): UI_I_StatusData => {
8
- return status
9
- ? {
10
- iconClassName: 'status-check',
11
- color: 'green',
12
- isState: true,
13
- text: text1 || 'True',
14
- }
15
- : {
16
- iconClassName: 'close',
17
- color: 'red',
18
- isState: true,
19
- text: text2 || 'False',
20
- }
21
- }
1
+ import type { UI_I_StatusData } from '~/components/common/vm/actions/common/select/storage/new/lib/models/interfaces'
2
+
3
+ export const getStatus = (
4
+ status: boolean,
5
+ text1?: string,
6
+ text2?: string
7
+ ): UI_I_StatusData => {
8
+ return status
9
+ ? {
10
+ iconClassName: 'status-check',
11
+ color: 'green',
12
+ isState: true,
13
+ text: text1 || 'True',
14
+ }
15
+ : {
16
+ iconClassName: 'close',
17
+ color: 'red',
18
+ isState: true,
19
+ text: text2 || 'False',
20
+ }
21
+ }
@@ -1,88 +1,88 @@
1
- <template>
2
- <div class="skeleton-wrap">
3
- <div class="tabs">
4
- <ui-skeleton-item width="64px" height="16px" />
5
- <ui-skeleton-item width="64px" height="16px" />
6
- </div>
7
- <div class="actions">
8
- <ui-skeleton-item width="80px" height="16px" />
9
- <ui-skeleton-item width="152px" height="32px" border-radius="6px" />
10
- </div>
11
- <div class="stack-block-wrap">
12
- <div class="stack-block">
13
- <div class="stack-label flex-1">
14
- <ui-skeleton-item width="16px" height="16px" border-radius="50%" />
15
- <ui-skeleton-item height="16px" />
16
- </div>
17
- <div class="stack-value flex-1">
18
- <ui-skeleton-item width="102px" height="32px" border-radius="8px" />
19
- </div>
20
- </div>
21
-
22
- <div v-for="item in 2" :key="item" class="stack-block">
23
- <div class="stack-label flex-1">
24
- <ui-skeleton-item width="16px" height="16px" border-radius="50%" />
25
- <ui-skeleton-item height="16px" />
26
- </div>
27
- <div class="stack-value flex-1">
28
- <ui-skeleton-item width="102px" height="32px" border-radius="8px" />
29
- <ui-skeleton-item width="80px" height="32px" border-radius="8px" />
30
- </div>
31
- </div>
32
-
33
- <div v-for="item in 5" :key="item" class="stack-block">
34
- <div class="stack-label flex-1">
35
- <ui-skeleton-item width="16px" height="16px" border-radius="50%" />
36
- <ui-skeleton-item height="16px" />
37
- </div>
38
- <div class="stack-value flex-1">
39
- <ui-skeleton-item width="196px" height="32px" border-radius="8px" />
40
- </div>
41
- </div>
42
- </div>
43
- </div>
44
- </template>
45
-
46
- <script setup lang="ts"></script>
47
-
48
- <style scoped lang="scss">
49
- .skeleton-wrap {
50
- padding: 0 32px;
51
-
52
- .tabs {
53
- display: flex;
54
- align-items: center;
55
- gap: 32px;
56
- padding: 8px 0 12px;
57
- border-bottom: 1px solid var(--divider-color);
58
- }
59
-
60
- .actions {
61
- display: flex;
62
- align-items: center;
63
- justify-content: space-between;
64
- margin: 12px 0;
65
- }
66
-
67
- .stack-block-wrap {
68
- display: grid;
69
- grid-gap: 12px;
70
-
71
- .stack-block {
72
- display: flex;
73
- align-items: center;
74
- gap: 12px;
75
- padding: 8px 12px;
76
- background: var(--stack-block-bg-color);
77
- border-radius: 6px;
78
-
79
- .stack-label,
80
- .stack-value {
81
- display: flex;
82
- align-items: center;
83
- gap: 8px;
84
- }
85
- }
86
- }
87
- }
88
- </style>
1
+ <template>
2
+ <div class="skeleton-wrap">
3
+ <div class="tabs">
4
+ <ui-skeleton-item width="64px" height="16px" />
5
+ <ui-skeleton-item width="64px" height="16px" />
6
+ </div>
7
+ <div class="actions">
8
+ <ui-skeleton-item width="80px" height="16px" />
9
+ <ui-skeleton-item width="152px" height="32px" border-radius="6px" />
10
+ </div>
11
+ <div class="stack-block-wrap">
12
+ <div class="stack-block">
13
+ <div class="stack-label flex-1">
14
+ <ui-skeleton-item width="16px" height="16px" border-radius="50%" />
15
+ <ui-skeleton-item height="16px" />
16
+ </div>
17
+ <div class="stack-value flex-1">
18
+ <ui-skeleton-item width="102px" height="32px" border-radius="8px" />
19
+ </div>
20
+ </div>
21
+
22
+ <div v-for="item in 2" :key="item" class="stack-block">
23
+ <div class="stack-label flex-1">
24
+ <ui-skeleton-item width="16px" height="16px" border-radius="50%" />
25
+ <ui-skeleton-item height="16px" />
26
+ </div>
27
+ <div class="stack-value flex-1">
28
+ <ui-skeleton-item width="102px" height="32px" border-radius="8px" />
29
+ <ui-skeleton-item width="80px" height="32px" border-radius="8px" />
30
+ </div>
31
+ </div>
32
+
33
+ <div v-for="item in 5" :key="item" class="stack-block">
34
+ <div class="stack-label flex-1">
35
+ <ui-skeleton-item width="16px" height="16px" border-radius="50%" />
36
+ <ui-skeleton-item height="16px" />
37
+ </div>
38
+ <div class="stack-value flex-1">
39
+ <ui-skeleton-item width="196px" height="32px" border-radius="8px" />
40
+ </div>
41
+ </div>
42
+ </div>
43
+ </div>
44
+ </template>
45
+
46
+ <script setup lang="ts"></script>
47
+
48
+ <style scoped lang="scss">
49
+ .skeleton-wrap {
50
+ padding: 0 32px;
51
+
52
+ .tabs {
53
+ display: flex;
54
+ align-items: center;
55
+ gap: 32px;
56
+ padding: 8px 0 12px;
57
+ border-bottom: 1px solid var(--divider-color);
58
+ }
59
+
60
+ .actions {
61
+ display: flex;
62
+ align-items: center;
63
+ justify-content: space-between;
64
+ margin: 12px 0;
65
+ }
66
+
67
+ .stack-block-wrap {
68
+ display: grid;
69
+ grid-gap: 12px;
70
+
71
+ .stack-block {
72
+ display: flex;
73
+ align-items: center;
74
+ gap: 12px;
75
+ padding: 8px 12px;
76
+ background: var(--stack-block-bg-color);
77
+ border-radius: 6px;
78
+
79
+ .stack-label,
80
+ .stack-value {
81
+ display: flex;
82
+ align-items: center;
83
+ gap: 8px;
84
+ }
85
+ }
86
+ }
87
+ }
88
+ </style>