bfg-common 1.5.227 → 1.5.228

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 (148) hide show
  1. package/CODE_STYLE.md +109 -109
  2. package/assets/localization/local_be.json +4 -3
  3. package/assets/localization/local_en.json +11 -10
  4. package/assets/localization/local_hy.json +4 -3
  5. package/assets/localization/local_kk.json +4 -3
  6. package/assets/localization/local_ru.json +6 -5
  7. package/assets/localization/local_zh.json +4 -3
  8. package/assets/scss/common/normalize.scss +1 -0
  9. package/components/atoms/TheIcon3.vue +50 -50
  10. package/components/atoms/perPage/PerPage.vue +58 -58
  11. package/components/atoms/table/dataGrid/lib/config/settingsTable.ts +94 -94
  12. package/components/atoms/table/dataGrid/lib/utils/export.ts +16 -16
  13. package/components/atoms/table/info/lib/models/interfaces.ts +10 -10
  14. package/components/atoms/tabs/VerticalTabs.vue +105 -105
  15. package/components/common/backup/storage/actions/add/Add.vue +247 -247
  16. package/components/common/backup/storage/actions/add/New.vue +281 -281
  17. package/components/common/backup/storage/actions/add/Old.vue +114 -114
  18. package/components/common/backup/storage/actions/add/lib/config/steps.ts +168 -168
  19. package/components/common/backup/storage/actions/add/steps/nameAndConfigure/NameAndConfigure.vue +41 -41
  20. package/components/common/backup/storage/actions/add/steps/nameAndConfigure/NameAndConfigureNew.vue +294 -294
  21. package/components/common/backup/storage/actions/add/steps/readyComplete/ReadyComplete.vue +45 -45
  22. package/components/common/backup/storage/actions/add/steps/readyComplete/lib/config/propertiesDetails.ts +242 -242
  23. package/components/common/backup/storage/actions/delete/Delete.vue +65 -65
  24. package/components/common/browse/blocks/contents/filesNew/Skeleton.vue +18 -18
  25. package/components/common/context/lib/models/interfaces.ts +31 -31
  26. package/components/common/diagramMain/DiagramMain.vue +897 -897
  27. package/components/common/diagramMain/Header.vue +214 -214
  28. package/components/common/layout/theHeader/helpMenu/About.vue +82 -82
  29. package/components/common/layout/theHeader/userMenu/modals/preferences/view/ViewOld.vue +112 -112
  30. package/components/common/monitor/overview/OverviewOld.vue +139 -139
  31. package/components/common/pages/home/headline/Headline.vue +45 -45
  32. package/components/common/pages/home/headline/HeadlineOld.vue +42 -42
  33. package/components/common/pages/home/lib/models/interfaces.ts +48 -48
  34. package/components/common/pages/home/widgets/Widgets.vue +49 -49
  35. package/components/common/pages/home/widgets/WidgetsNew.vue +86 -86
  36. package/components/common/pages/home/widgets/WidgetsOld.vue +34 -34
  37. package/components/common/pages/home/widgets/hosts/Hosts.vue +27 -27
  38. package/components/common/pages/home/widgets/hosts/lib/config/items.ts +23 -23
  39. package/components/common/pages/home/widgets/vms/Vms.vue +26 -26
  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/pages/packages/Packages.vue +208 -208
  43. package/components/common/pages/shortcuts/block/BlockOld.vue +68 -68
  44. package/components/common/readyToComplete/New.vue +16 -1
  45. package/components/common/readyToComplete/ReadyToComplete.vue +17 -17
  46. package/components/common/recursionTree/RecursionTree.vue +223 -223
  47. package/components/common/select/button/ButtonDropdown.vue +108 -108
  48. package/components/common/spiceConsole/Drawer.vue +377 -377
  49. package/components/common/spiceConsole/lib/models/interfaces.ts +5 -5
  50. package/components/common/vm/actions/add/New.vue +98 -36
  51. package/components/common/vm/actions/add/folderTreeView/FolderTreeView.vue +72 -72
  52. package/components/common/vm/actions/add/folderTreeView/New.vue +40 -40
  53. package/components/common/vm/actions/add/folderTreeView/Old.vue +50 -50
  54. package/components/common/vm/actions/add/lib/config/steps.ts +263 -263
  55. package/components/common/vm/actions/clone/lib/config/steps.ts +291 -291
  56. package/components/common/vm/actions/clone/toTemplate/lib/config/steps.ts +116 -116
  57. package/components/common/vm/actions/common/customizeHardware/CustomizeHardwareNew.vue +348 -337
  58. package/components/common/vm/actions/common/customizeHardware/virtualHardware/VirtualHardwareNew.vue +480 -480
  59. package/components/common/vm/actions/common/customizeHardware/virtualHardware/VirtualHardwareOld.vue +319 -319
  60. package/components/common/vm/actions/common/customizeHardware/virtualHardware/browseView/BrowseView.vue +219 -219
  61. package/components/common/vm/actions/common/customizeHardware/virtualHardware/bus/Bus.vue +100 -100
  62. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/CdDvdDrive.vue +232 -232
  63. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/CdDvdDriveOld.vue +168 -168
  64. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/Media.vue +25 -25
  65. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/MediaNew.vue +78 -78
  66. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/MediaOld.vue +50 -50
  67. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/CpuNew.vue +190 -190
  68. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/model/ModelNew.vue +237 -237
  69. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/shares/Shares.vue +140 -140
  70. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/shares/lib/config/options.ts +28 -28
  71. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/tooltip/TooltipNew.vue +154 -154
  72. package/components/common/vm/actions/common/customizeHardware/virtualHardware/limit/Limit.vue +220 -220
  73. package/components/common/vm/actions/common/customizeHardware/virtualHardware/memory/Memory.vue +307 -307
  74. package/components/common/vm/actions/common/customizeHardware/virtualHardware/memory/MemoryNew.vue +154 -154
  75. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/NewHardDisk.vue +382 -382
  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/newNetwork/NewNetwork.vue +288 -288
  80. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/location/new/table/lib/config/config.ts +94 -94
  81. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/macAddress/MacAddress.vue +119 -119
  82. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/NewPciDevice.vue +205 -205
  83. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/directPathIo/DirectPathIoNew.vue +66 -66
  84. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/directPathIo/DirectPathIoOld.vue +62 -62
  85. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIo.vue +31 -31
  86. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIoOld.vue +76 -76
  87. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/Note.vue +15 -15
  88. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/NoteNew.vue +42 -42
  89. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/NoteOld.vue +30 -30
  90. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/nvidiaGrid/NvidiaGridOld.vue +84 -84
  91. package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/Other.vue +16 -16
  92. package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/OtherNew.vue +30 -30
  93. package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/inputDevices/InputDevicesNew.vue +40 -40
  94. package/components/common/vm/actions/common/customizeHardware/vmoptions/Vmoptions.vue +145 -145
  95. package/components/common/vm/actions/common/customizeHardware/vmoptions/VmoptionsNew.vue +106 -106
  96. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/BootOptionsNew.vue +81 -81
  97. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/delay/Delay.vue +32 -32
  98. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/firmware/Firmware.vue +60 -60
  99. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/Order.vue +174 -174
  100. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/OrderNew.vue +67 -67
  101. package/components/common/vm/actions/common/customizeHardware/vmoptions/generalOptions/GeneralOptionsNew.vue +149 -149
  102. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/New.vue +140 -140
  103. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/copyPaste/CopyPasteNew.vue +31 -31
  104. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/fileTransfer/FileTransferNew.vue +31 -31
  105. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/keymap/Keymap.vue +32 -32
  106. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/password/Password.vue +103 -103
  107. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/password/PasswordNew.vue +128 -128
  108. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirection.vue +28 -28
  109. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirectionNew.vue +39 -39
  110. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirectionOld.vue +44 -44
  111. package/components/common/vm/actions/common/lib/utils/capabilities.ts +52 -52
  112. package/components/common/vm/actions/common/select/compatibility/Compatibility.vue +8 -0
  113. package/components/common/vm/actions/common/select/compatibility/New.vue +14 -7
  114. package/components/common/vm/actions/common/select/compatibility/Old.vue +107 -107
  115. package/components/common/vm/actions/common/select/computeResource/ComputeResource.vue +142 -134
  116. package/components/common/vm/actions/common/select/computeResource/New.vue +29 -7
  117. package/components/common/vm/actions/common/select/computeResource/treeView/New.vue +44 -44
  118. package/components/common/vm/actions/common/select/computeResource/treeView/TreeView.vue +118 -118
  119. package/components/common/vm/actions/common/select/createType/CreateType.vue +38 -38
  120. package/components/common/vm/actions/common/select/createType/New.vue +92 -84
  121. package/components/common/vm/actions/common/select/createType/lib/models/interfaces.ts +5 -5
  122. package/components/common/vm/actions/common/select/name/Name.vue +174 -167
  123. package/components/common/vm/actions/common/select/name/New.vue +36 -8
  124. package/components/common/vm/actions/common/select/os/New.vue +128 -122
  125. package/components/common/vm/actions/common/select/os/Old.vue +152 -152
  126. package/components/common/vm/actions/common/select/os/Os.vue +139 -139
  127. package/components/common/vm/actions/common/select/storage/Storage.vue +8 -0
  128. package/components/common/vm/actions/common/select/storage/new/New.vue +27 -8
  129. package/components/common/vm/actions/common/select/storage/new/lib/config/table.ts +9 -9
  130. package/components/common/vm/actions/common/select/storage/new/lib/models/interfaces.ts +5 -5
  131. package/components/common/vm/actions/common/select/storage/new/lib/utils/utils.ts +21 -21
  132. package/components/common/vm/actions/editSettings/new/New.vue +1 -1
  133. package/components/common/vm/actions/editSettings/new/Skeleton.vue +88 -88
  134. package/components/common/wizards/vm/migrate/lib/config/constructDataReady.ts +220 -220
  135. package/components/common/wizards/vm/migrate/lib/config/steps.ts +157 -157
  136. package/components/common/wizards/vm/migrate/lib/validations.ts +68 -68
  137. package/components/common/wizards/vm/migrate/select/computeResource/tableView/TableView.vue +137 -137
  138. package/components/common/wizards/vm/migrate/select/network/Network.vue +103 -103
  139. package/components/common/wizards/vm/migrate/select/network/table/network/lib/config/advancedTable.ts +91 -91
  140. package/composables/productNameLocal.ts +30 -30
  141. package/composables/useAppVersion.ts +21 -21
  142. package/package.json +2 -2
  143. package/plugins/date.ts +233 -233
  144. package/public/spice-console/lib/images/bitmap.js +203 -203
  145. package/public/spice-console/network/spicechannel.js +387 -387
  146. package/store/main/mutations.ts +7 -7
  147. package/store/main/state.ts +7 -7
  148. package/store/tasks/mappers/recentTasks.ts +64 -64
@@ -1,134 +1,142 @@
1
- <template>
2
- <common-vm-actions-common-select-compute-resource-new
3
- v-if="isNewView"
4
- v-model="selectedNode"
5
- :data-center="props.dataCenter"
6
- :compute-resource="props.computeResource"
7
- :compute-resource-tree="props.computeResourceTree"
8
- :errors="errors"
9
- :compatibility-text="compatibilityText"
10
- @get-compute-resource-tree="emits('get-compute-resource-tree', $event)"
11
- @show-compute-resource-tree="emits('show-compute-resource-tree', $event)"
12
- @select-compute-resource-tree="
13
- emits('select-compute-resource-tree', $event)
14
- "
15
- @clear-compute-resource-tree="emits('clear-compute-resource-tree')"
16
- @remove-validation-errors="onRemoveValidationErrors"
17
- />
18
- <common-vm-actions-common-select-compute-resource-old
19
- v-else
20
- v-model="selectedNode"
21
- :data-center="props.dataCenter"
22
- :compute-resource="props.computeResource"
23
- :compute-resource-tree="props.computeResourceTree"
24
- :errors="errors"
25
- :compatibility-text="compatibilityText"
26
- @get-compute-resource-tree="emits('get-compute-resource-tree', $event)"
27
- @show-compute-resource-tree="emits('show-compute-resource-tree', $event)"
28
- @select-compute-resource-tree="
29
- emits('select-compute-resource-tree', $event)
30
- "
31
- @clear-compute-resource-tree="emits('clear-compute-resource-tree')"
32
- @remove-validation-errors="onRemoveValidationErrors"
33
- />
34
- </template>
35
-
36
- <script setup lang="ts">
37
- import type { UI_I_Localization } from '~/lib/models/interfaces'
38
- import type { UI_I_TreeNode } from '~/components/common/recursionTree/lib/models/interfaces'
39
-
40
- const props = defineProps<{
41
- computeResourceSubmit: null | Function
42
- dataCenter: UI_I_TreeNode | null
43
- computeResource: UI_I_TreeNode
44
- computeResourceTree: UI_I_TreeNode[]
45
- }>()
46
-
47
- const emits = defineEmits<{
48
- (event: 'submit', value: UI_I_TreeNode): void
49
- (
50
- event: 'get-compute-resource-tree',
51
- value: { id: string | number; cb: () => void }
52
- ): void
53
- (event: 'show-compute-resource-tree', value: UI_I_TreeNode): void
54
- (event: 'select-compute-resource-tree', value: UI_I_TreeNode): void
55
- (event: 'clear-compute-resource-tree'): void
56
- }>()
57
-
58
- const { $store }: any = useNuxtApp()
59
- const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
60
-
61
- const localization = computed<UI_I_Localization>(() => useLocal())
62
-
63
- watch(
64
- () => props.computeResourceSubmit,
65
- (newValue: null | Function) => {
66
- newValue && submit(newValue)
67
- }
68
- )
69
- const submit = (cb: Function): void => {
70
- if (
71
- !selectedNode.value ||
72
- // !compatibilityText.value[1] ||
73
- !compatibilityText.value[0] ||
74
- selectedNode.value.type === 'datacenter' ||
75
- selectedNode.value.type === 'folder' ||
76
- (selectedNode.value.type === 'cluster' && !selectedNode.value.nodes.length)
77
- ) {
78
- showValidationErrors(
79
- localization.value.common.specifyValidClusterOrHostDestination
80
- )
81
- cb(false)
82
- return
83
- }
84
-
85
- onRemoveValidationErrors()
86
- emits('submit', selectedNode.value)
87
- cb(true)
88
- }
89
-
90
- const errors = ref<string[]>([])
91
- const showValidationErrors = (text: string): void => {
92
- errors.value = [text]
93
- }
94
- const onRemoveValidationErrors = (): void => {
95
- errors.value = []
96
- }
97
-
98
- const selectedNode = defineModel<UI_I_TreeNode | null>('modelValue')
99
-
100
- const compatibilityText = computed<[boolean, string]>(() => {
101
- let res: [boolean, string] = [
102
- true,
103
- localization.value.common.compatibilityChecksSucceeded,
104
- ]
105
-
106
- if (!selectedNode.value) res = [true, '']
107
-
108
- if (
109
- !['cluster', 'host', 'resource_pool'].includes(selectedNode.value?.type)
110
- ) {
111
- res = [false, localization.value.common.selectValidClusterOrHostDestination]
112
- }
113
- if (selectedNode.value?.type === 'cluster') {
114
- const hasHost = !!selectedNode.value.nodes.length
115
- if (!hasHost) {
116
- res = [false, localization.value.common.clusterNotContainAnyHosts]
117
- }
118
- }
119
-
120
- if (selectedNode.value?.type === 'host') {
121
- if (selectedNode.value.state === 'Error') {
122
- // TODO check Maintenance Mode
123
- res = [
124
- false,
125
- localization.value.common.selectedHostDisconnectedMaintenanceMode,
126
- ]
127
- }
128
- }
129
-
130
- return res
131
- })
132
- </script>
133
-
134
- <style scoped lang="scss"></style>
1
+ <template>
2
+ <common-vm-actions-common-select-compute-resource-new
3
+ v-if="isNewView"
4
+ v-model="selectedNode"
5
+ :data-center="props.dataCenter"
6
+ :compute-resource="props.computeResource"
7
+ :compute-resource-tree="props.computeResourceTree"
8
+ :errors="errors"
9
+ :compatibility-text="compatibilityText"
10
+ @get-compute-resource-tree="emits('get-compute-resource-tree', $event)"
11
+ @show-compute-resource-tree="emits('show-compute-resource-tree', $event)"
12
+ @select-compute-resource-tree="
13
+ emits('select-compute-resource-tree', $event)
14
+ "
15
+ @clear-compute-resource-tree="emits('clear-compute-resource-tree')"
16
+ @remove-validation-errors="onRemoveValidationErrors"
17
+ />
18
+ <common-vm-actions-common-select-compute-resource-old
19
+ v-else
20
+ v-model="selectedNode"
21
+ :data-center="props.dataCenter"
22
+ :compute-resource="props.computeResource"
23
+ :compute-resource-tree="props.computeResourceTree"
24
+ :errors="errors"
25
+ :compatibility-text="compatibilityText"
26
+ @get-compute-resource-tree="emits('get-compute-resource-tree', $event)"
27
+ @show-compute-resource-tree="emits('show-compute-resource-tree', $event)"
28
+ @select-compute-resource-tree="
29
+ emits('select-compute-resource-tree', $event)
30
+ "
31
+ @clear-compute-resource-tree="emits('clear-compute-resource-tree')"
32
+ @remove-validation-errors="onRemoveValidationErrors"
33
+ />
34
+ </template>
35
+
36
+ <script setup lang="ts">
37
+ import type { UI_I_Localization } from '~/lib/models/interfaces'
38
+ import type { UI_I_TreeNode } from '~/components/common/recursionTree/lib/models/interfaces'
39
+
40
+ const props = defineProps<{
41
+ computeResourceSubmit: null | Function
42
+ dataCenter: UI_I_TreeNode | null
43
+ computeResource: UI_I_TreeNode
44
+ computeResourceTree: UI_I_TreeNode[]
45
+ }>()
46
+
47
+ const emits = defineEmits<{
48
+ (event: 'submit', value: UI_I_TreeNode): void
49
+ (
50
+ event: 'get-compute-resource-tree',
51
+ value: { id: string | number; cb: () => void }
52
+ ): void
53
+ (event: 'show-compute-resource-tree', value: UI_I_TreeNode): void
54
+ (event: 'select-compute-resource-tree', value: UI_I_TreeNode): void
55
+ (event: 'clear-compute-resource-tree'): void
56
+ (event: 'has-errors', value: boolean): void
57
+ }>()
58
+
59
+ const { $store }: any = useNuxtApp()
60
+ const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
61
+
62
+ const localization = computed<UI_I_Localization>(() => useLocal())
63
+
64
+ watch(
65
+ () => props.computeResourceSubmit,
66
+ (newValue: null | Function) => {
67
+ newValue && submit(newValue)
68
+ }
69
+ )
70
+ const submit = (cb: Function): void => {
71
+ if (
72
+ !selectedNode.value ||
73
+ // !compatibilityText.value[1] ||
74
+ !compatibilityText.value[0] ||
75
+ selectedNode.value.type === 'datacenter' ||
76
+ selectedNode.value.type === 'folder' ||
77
+ (selectedNode.value.type === 'cluster' && !selectedNode.value.nodes.length)
78
+ ) {
79
+ showValidationErrors(
80
+ localization.value.common.specifyValidClusterOrHostDestination
81
+ )
82
+ cb(false)
83
+ return
84
+ }
85
+
86
+ onRemoveValidationErrors()
87
+ emits('submit', selectedNode.value)
88
+ cb(true)
89
+ }
90
+
91
+ const errors = ref<string[]>([])
92
+ const showValidationErrors = (text: string): void => {
93
+ errors.value = [text]
94
+ }
95
+ const onRemoveValidationErrors = (): void => {
96
+ errors.value = []
97
+ }
98
+ watch(
99
+ errors,
100
+ (newValue) => {
101
+ emits('has-errors', !newValue.length)
102
+ },
103
+ { immediate: true, deep: true }
104
+ )
105
+
106
+ const selectedNode = defineModel<UI_I_TreeNode | null>('modelValue')
107
+
108
+ const compatibilityText = computed<[boolean, string]>(() => {
109
+ let res: [boolean, string] = [
110
+ true,
111
+ localization.value.common.compatibilityChecksSucceeded,
112
+ ]
113
+
114
+ if (!selectedNode.value) res = [true, '']
115
+
116
+ if (
117
+ !['cluster', 'host', 'resource_pool'].includes(selectedNode.value?.type)
118
+ ) {
119
+ res = [false, localization.value.common.selectValidClusterOrHostDestination]
120
+ }
121
+ if (selectedNode.value?.type === 'cluster') {
122
+ const hasHost = !!selectedNode.value.nodes.length
123
+ if (!hasHost) {
124
+ res = [false, localization.value.common.clusterNotContainAnyHosts]
125
+ }
126
+ }
127
+
128
+ if (selectedNode.value?.type === 'host') {
129
+ if (selectedNode.value.state === 'Error') {
130
+ // TODO check Maintenance Mode
131
+ res = [
132
+ false,
133
+ localization.value.common.selectedHostDisconnectedMaintenanceMode,
134
+ ]
135
+ }
136
+ }
137
+
138
+ return res
139
+ })
140
+ </script>
141
+
142
+ <style scoped lang="scss"></style>
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <div class="select-compute-resource">
2
+ <div class="select-compute-resource pb-4">
3
3
  <Teleport to="#compute-resource-alert-wrapper">
4
4
  <ui-alert
5
5
  v-show="props.errors.length"
@@ -7,7 +7,8 @@
7
7
  status="alert-danger"
8
8
  test-id="computed-resource-alert"
9
9
  class="errors-alert"
10
- @remove="emits('remove-validation-errors')"
10
+ size="md"
11
+ @hide="emits('remove-validation-errors')"
11
12
  />
12
13
  </Teleport>
13
14
 
@@ -32,7 +33,7 @@
32
33
  <p class="compatibility">
33
34
  {{ localization.inventorySummary.compatibility }}
34
35
  </p>
35
- <div class="compatibility-message flex-align-center">
36
+ <div class="compatibility-message flex-align-start">
36
37
  <ui-skeleton-item v-if="!selectedNode" width="160px" height="16px" />
37
38
  <template v-else-if="props.compatibilityText[1]">
38
39
  <ui-icon
@@ -40,6 +41,7 @@
40
41
  name="error"
41
42
  width="16"
42
43
  height="16"
44
+ class="icon-compatibility-alert"
43
45
  />
44
46
 
45
47
  <ui-icon
@@ -47,6 +49,7 @@
47
49
  name="success-fill"
48
50
  width="16"
49
51
  height="16"
52
+ class="icon-compatibility-alert"
50
53
  />
51
54
  <span class="compatibility-message-description">{{
52
55
  props.compatibilityText[1]
@@ -92,28 +95,43 @@ const localization = computed<UI_I_Localization>(() => useLocal())
92
95
  --select-compute-resource-border-color: #e9ebed;
93
96
  --select-compute-resource-location-bg-color: #ffffff;
94
97
  --select-compute-resource-compatibility-title-color: #4d5d69;
98
+ --select-compute-resource-compatibilityd-empty-escription-color: #4d5d69;
95
99
  --select-compute-resource-compatibility-description-color: #4d5d69;
96
100
  }
97
101
  :root.dark-theme {
98
102
  --select-compute-resource-border-color: #e9ebed1f;
99
- --select-compute-resource-location-bg-color: transparent;
103
+ --select-compute-resource-location-bg-color: #1b2a371f;
100
104
  --select-compute-resource-compatibility-title-color: #e9eaec;
101
- --select-compute-resource-compatibility-description-color: #9da6ad;
105
+ --select-compute-resource-compatibilityd-empty-escription-color: #9da6ad;
106
+ --select-compute-resource-compatibility-description-color: #e9eaec;
102
107
  }
103
108
  </style>
104
109
  <style scoped lang="scss">
105
110
  .select-compute-resource {
106
111
  .tree-view-wrap {
107
112
  height: 170px;
113
+ max-height: 240px;
108
114
  border-radius: 8px;
109
115
  border: 1px solid var(--select-compute-resource-border-color);
110
- padding: 12px;
116
+ padding: 8px;
111
117
  background-color: var(--select-compute-resource-location-bg-color);
112
118
  margin: 16px 0 24px;
113
119
  overflow: auto;
114
120
 
115
121
  :deep(.tree-content) {
116
122
  padding: 0 !important;
123
+
124
+ .node-wrapper {
125
+ border-radius: 4px;
126
+
127
+ .node-name {
128
+ font-size: 12px;
129
+ margin-left: 8px;
130
+ overflow: hidden;
131
+ text-overflow: ellipsis;
132
+ white-space: nowrap;
133
+ }
134
+ }
117
135
  }
118
136
  }
119
137
 
@@ -129,8 +147,12 @@ const localization = computed<UI_I_Localization>(() => useLocal())
129
147
  border: 1px solid var(--select-compute-resource-border-color);
130
148
  padding: 12px;
131
149
  background-color: var(--select-compute-resource-location-bg-color);
132
- gap: 12px;
150
+ gap: 10px;
133
151
 
152
+ .icon-compatibility-alert {
153
+ min-width: 16px;
154
+ min-height: 16px;
155
+ }
134
156
  .compatibility-message-description {
135
157
  font-size: 13px;
136
158
  color: var(--select-compute-resource-compatibility-description-color);
@@ -1,44 +1,44 @@
1
- <template>
2
- <div class="tree-view">
3
- <ui-tree
4
- :nodes="props.computeResourceTree"
5
- :expand-all="false"
6
- :is-loading="props.loading"
7
- @toggle-node="onShowNodes"
8
- @select-node="emits('select-node', $event)"
9
- >
10
- <template #content="{ node }">
11
- <div class="flex-align-center">
12
- <span :class="['node-icon', node.iconClassName]"></span>
13
- <span class="node-name">{{ node.name }}</span>
14
- </div>
15
- </template>
16
- </ui-tree>
17
- </div>
18
- </template>
19
-
20
- <script setup lang="ts">
21
- import type { UI_I_TreeNode } from '~/components/common/recursionTree/lib/models/interfaces'
22
-
23
- const props = defineProps<{
24
- computeResourceTree: UI_I_TreeNode[]
25
- loading: boolean
26
- }>()
27
-
28
- const emits = defineEmits<{
29
- (
30
- event: 'show-nodes',
31
- value: {
32
- node: UI_I_TreeNode
33
- cb: () => void
34
- }
35
- ): void
36
- (event: 'select-node', value: UI_I_TreeNode): void
37
- }>()
38
-
39
- const onShowNodes = (node: UI_I_TreeNode) => {
40
- emits('show-nodes', { node, cb: (): void => {} })
41
- }
42
- </script>
43
-
44
- <style scoped lang="scss"></style>
1
+ <template>
2
+ <div class="tree-view">
3
+ <ui-tree
4
+ :nodes="props.computeResourceTree"
5
+ :expand-all="false"
6
+ :is-loading="props.loading"
7
+ @toggle-node="onShowNodes"
8
+ @select-node="emits('select-node', $event)"
9
+ >
10
+ <template #content="{ node }">
11
+ <div class="flex-align-center">
12
+ <span :class="['node-icon', node.iconClassName]"></span>
13
+ <span class="node-name">{{ node.name }}</span>
14
+ </div>
15
+ </template>
16
+ </ui-tree>
17
+ </div>
18
+ </template>
19
+
20
+ <script setup lang="ts">
21
+ import type { UI_I_TreeNode } from '~/components/common/recursionTree/lib/models/interfaces'
22
+
23
+ const props = defineProps<{
24
+ computeResourceTree: UI_I_TreeNode[]
25
+ loading: boolean
26
+ }>()
27
+
28
+ const emits = defineEmits<{
29
+ (
30
+ event: 'show-nodes',
31
+ value: {
32
+ node: UI_I_TreeNode
33
+ cb: () => void
34
+ }
35
+ ): void
36
+ (event: 'select-node', value: UI_I_TreeNode): void
37
+ }>()
38
+
39
+ const onShowNodes = (node: UI_I_TreeNode) => {
40
+ emits('show-nodes', { node, cb: (): void => {} })
41
+ }
42
+ </script>
43
+
44
+ <style scoped lang="scss"></style>