bfg-common 1.5.153 → 1.5.155

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 (127) hide show
  1. package/CODE_STYLE.md +109 -109
  2. package/assets/img/icons/icons-sprite-dark-3.svg +227 -227
  3. package/assets/img/icons/icons-sprite-dark-5.svg +488 -488
  4. package/assets/img/icons/icons-sprite-light-3.svg +227 -227
  5. package/assets/img/icons/icons-sprite-light-5.svg +488 -488
  6. package/components/atoms/TheIcon3.vue +50 -50
  7. package/components/atoms/perPage/PerPage.vue +58 -58
  8. package/components/atoms/table/dataGrid/lib/config/settingsTable.ts +94 -94
  9. package/components/atoms/table/dataGrid/lib/utils/export.ts +16 -16
  10. package/components/atoms/tabs/VerticalTabs.vue +105 -105
  11. package/components/common/browse/blocks/contents/filesNew/Skeleton.vue +18 -18
  12. package/components/common/context/lib/models/interfaces.ts +31 -31
  13. package/components/common/context/recursion/RecursionNew.vue +238 -238
  14. package/components/common/diagramMain/DiagramMain.vue +897 -897
  15. package/components/common/diagramMain/Header.vue +214 -214
  16. package/components/common/layout/theHeader/helpMenu/About.vue +82 -82
  17. package/components/common/layout/theHeader/userMenu/modals/preferences/view/ViewOld.vue +112 -112
  18. package/components/common/monitor/overview/OverviewOld.vue +139 -139
  19. package/components/common/pages/home/headline/Headline.vue +45 -45
  20. package/components/common/pages/home/headline/HeadlineOld.vue +42 -42
  21. package/components/common/pages/home/lib/models/interfaces.ts +48 -48
  22. package/components/common/pages/home/widgets/Widgets.vue +49 -49
  23. package/components/common/pages/home/widgets/WidgetsNew.vue +86 -86
  24. package/components/common/pages/home/widgets/WidgetsOld.vue +34 -34
  25. package/components/common/pages/home/widgets/hosts/Hosts.vue +27 -27
  26. package/components/common/pages/home/widgets/hosts/lib/config/items.ts +23 -23
  27. package/components/common/pages/home/widgets/vms/Vms.vue +26 -26
  28. package/components/common/pages/home/widgets/vms/VmsOld.vue +35 -35
  29. package/components/common/pages/home/widgets/vms/lib/config/items.ts +19 -19
  30. package/components/common/pages/packages/Packages.vue +208 -208
  31. package/components/common/pages/shortcuts/block/BlockOld.vue +68 -68
  32. package/components/common/readyToComplete/New.vue +66 -66
  33. package/components/common/readyToComplete/ReadyToComplete.vue +17 -17
  34. package/components/common/recursionTree/RecursionTree.vue +223 -223
  35. package/components/common/select/button/ButtonDropdown.vue +108 -108
  36. package/components/common/spiceConsole/lib/models/interfaces.ts +5 -5
  37. package/components/common/vm/actions/add/Add.vue +785 -785
  38. package/components/common/vm/actions/add/New.vue +556 -556
  39. package/components/common/vm/actions/add/Old.vue +371 -371
  40. package/components/common/vm/actions/add/folderTreeView/FolderTreeView.vue +72 -72
  41. package/components/common/vm/actions/add/folderTreeView/New.vue +40 -40
  42. package/components/common/vm/actions/add/folderTreeView/Old.vue +50 -50
  43. package/components/common/vm/actions/add/lib/config/steps.ts +263 -263
  44. package/components/common/vm/actions/clone/Clone.vue +801 -801
  45. package/components/common/vm/actions/clone/lib/config/steps.ts +291 -291
  46. package/components/common/vm/actions/clone/toTemplate/ToTemplate.vue +626 -626
  47. package/components/common/vm/actions/clone/toTemplate/lib/config/steps.ts +116 -116
  48. package/components/common/vm/actions/common/customizeHardware/virtualHardware/VirtualHardwareOld.vue +319 -319
  49. package/components/common/vm/actions/common/customizeHardware/virtualHardware/browseView/BrowseView.vue +219 -219
  50. package/components/common/vm/actions/common/customizeHardware/virtualHardware/bus/Bus.vue +99 -99
  51. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/CdDvdDrive.vue +232 -232
  52. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/CdDvdDriveOld.vue +168 -168
  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/cpu/shares/Shares.vue +140 -140
  58. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/shares/lib/config/options.ts +28 -28
  59. package/components/common/vm/actions/common/customizeHardware/virtualHardware/limit/Limit.vue +220 -220
  60. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/NewHardDisk.vue +372 -373
  61. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/location/Location.vue +149 -149
  62. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/location/LocationNew.vue +74 -74
  63. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/location/LocationOld.vue +83 -83
  64. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/NewNetwork.vue +288 -288
  65. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/location/new/table/lib/config/config.ts +94 -94
  66. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/macAddress/MacAddress.vue +119 -119
  67. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/NewPciDevice.vue +205 -205
  68. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/directPathIo/DirectPathIoNew.vue +66 -66
  69. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/directPathIo/DirectPathIoOld.vue +62 -62
  70. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIo.vue +31 -31
  71. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIoOld.vue +76 -76
  72. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/Note.vue +15 -15
  73. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/NoteNew.vue +42 -42
  74. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/NoteOld.vue +30 -30
  75. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/nvidiaGrid/NvidiaGridOld.vue +84 -84
  76. package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/Other.vue +16 -16
  77. package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/OtherNew.vue +30 -30
  78. package/components/common/vm/actions/common/customizeHardware/vmoptions/Vmoptions.vue +145 -145
  79. package/components/common/vm/actions/common/customizeHardware/vmoptions/VmoptionsNew.vue +102 -102
  80. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/BootOptionsNew.vue +75 -75
  81. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/delay/Delay.vue +26 -26
  82. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/firmware/Firmware.vue +57 -57
  83. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/Order.vue +171 -171
  84. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/OrderNew.vue +50 -50
  85. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/New.vue +140 -140
  86. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/copyPaste/CopyPasteNew.vue +30 -30
  87. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/fileTransfer/FileTransferNew.vue +30 -30
  88. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/keymap/Keymap.vue +32 -32
  89. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirection.vue +28 -28
  90. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirectionNew.vue +39 -39
  91. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirectionOld.vue +44 -44
  92. package/components/common/vm/actions/common/lib/utils/capabilities.ts +52 -52
  93. package/components/common/vm/actions/common/select/compatibility/Old.vue +107 -107
  94. package/components/common/vm/actions/common/select/computeResource/ComputeResource.vue +134 -134
  95. package/components/common/vm/actions/common/select/computeResource/treeView/New.vue +44 -44
  96. package/components/common/vm/actions/common/select/computeResource/treeView/TreeView.vue +118 -118
  97. package/components/common/vm/actions/common/select/createType/CreateType.vue +38 -38
  98. package/components/common/vm/actions/common/select/createType/New.vue +84 -84
  99. package/components/common/vm/actions/common/select/createType/lib/models/interfaces.ts +5 -5
  100. package/components/common/vm/actions/common/select/name/Name.vue +167 -167
  101. package/components/common/vm/actions/common/select/os/New.vue +122 -122
  102. package/components/common/vm/actions/common/select/os/Old.vue +152 -152
  103. package/components/common/vm/actions/common/select/os/Os.vue +139 -139
  104. package/components/common/vm/actions/common/select/storage/Storage.vue +131 -131
  105. package/components/common/vm/actions/common/select/storage/new/lib/config/table.ts +326 -326
  106. package/components/common/vm/actions/common/select/storage/new/lib/models/interfaces.ts +5 -5
  107. package/components/common/vm/actions/common/select/storage/new/lib/utils/utils.ts +21 -21
  108. package/components/common/vm/actions/editSettings/new/Skeleton.vue +88 -88
  109. package/components/common/wizards/network/add/steps/SelectConnectionType.vue +104 -105
  110. package/components/common/wizards/vm/migrate/Migrate.vue +1 -0
  111. package/components/common/wizards/vm/migrate/lib/config/constructDataReady.ts +220 -220
  112. package/components/common/wizards/vm/migrate/lib/config/steps.ts +157 -157
  113. package/components/common/wizards/vm/migrate/lib/validations.ts +68 -68
  114. package/components/common/wizards/vm/migrate/select/computeResource/ComputeResource.vue +190 -188
  115. package/components/common/wizards/vm/migrate/select/computeResource/lib/config/tabsPannel.ts +39 -29
  116. package/components/common/wizards/vm/migrate/select/computeResource/tableView/TableView.vue +137 -137
  117. package/components/common/wizards/vm/migrate/select/network/Network.vue +103 -103
  118. package/components/common/wizards/vm/migrate/select/network/table/network/lib/config/advancedTable.ts +91 -91
  119. package/composables/productNameLocal.ts +30 -30
  120. package/composables/useAppVersion.ts +21 -21
  121. package/package.json +1 -1
  122. package/plugins/date.ts +233 -233
  123. package/public/spice-console/lib/images/bitmap.js +203 -203
  124. package/public/spice-console/network/spicechannel.js +383 -383
  125. package/store/main/mutations.ts +7 -7
  126. package/store/main/state.ts +7 -7
  127. package/store/tasks/mappers/recentTasks.ts +64 -64
@@ -1,134 +1,134 @@
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
+ }>()
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,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>
@@ -1,118 +1,118 @@
1
- <template>
2
- <common-vm-actions-common-select-compute-resource-tree-view-new
3
- v-if="isNewView"
4
- :compute-resource-tree="props.computeResourceTree"
5
- :loading="loading"
6
- @show-nodes="onShowNodes"
7
- @select-node="onSelectNode"
8
- />
9
- <common-vm-actions-common-select-compute-resource-tree-view-old
10
- v-else
11
- :compute-resource-tree="props.computeResourceTree"
12
- :loading="loading"
13
- @show-nodes="onShowNodes"
14
- @select-node="onSelectNode"
15
- />
16
- </template>
17
-
18
- <script setup lang="ts">
19
- import type { UI_I_TreeNode } from '~/components/common/recursionTree/lib/models/interfaces'
20
-
21
- const model = defineModel<UI_I_TreeNode>('modelValue', { required: true })
22
-
23
- const props = defineProps<{
24
- dataCenter: UI_I_TreeNode | null
25
- computeResource: UI_I_TreeNode
26
- computeResourceTree: UI_I_TreeNode[]
27
- }>()
28
-
29
- const emits = defineEmits<{
30
- (
31
- event: 'get-compute-resource-tree',
32
- value: { id: string | number; cb: () => void }
33
- ): void
34
- (event: 'show-compute-resource-tree', value: UI_I_TreeNode): void
35
- (event: 'select-compute-resource-tree', value: UI_I_TreeNode): void
36
- (event: 'clear-compute-resource-tree'): void
37
- }>()
38
-
39
- const { $store }: any = useNuxtApp()
40
- const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
41
-
42
- const loading = ref<boolean>(false)
43
- watch(
44
- () => props.dataCenter,
45
- async () => {
46
- if (!props.dataCenter) return
47
-
48
- loading.value = true
49
- emits('get-compute-resource-tree', {
50
- id: props.dataCenter.id,
51
- cb: () => {
52
- let node = model.value
53
- let hasNode = checkHasNodeRecursion(
54
- props.computeResourceTree[0].nodes,
55
- node
56
- )
57
- if (!hasNode) {
58
- node = props.computeResource
59
- hasNode = checkHasNodeRecursion(
60
- props.computeResourceTree[0].nodes,
61
- node
62
- )
63
- }
64
- if (!hasNode) {
65
- node = props.computeResourceTree[0]
66
- }
67
- loading.value = false
68
-
69
- if (!node) return
70
- onSelectNode(node)
71
- },
72
- })
73
- },
74
- { immediate: true, deep: true }
75
- )
76
- const checkHasNodeRecursion = (
77
- nodes: UI_I_TreeNode[],
78
- node: UI_I_TreeNode | null
79
- ): boolean => {
80
- if (!node) return false
81
-
82
- let has = false
83
- for (let i = 0; i < nodes.length; i++) {
84
- const item = nodes[i]
85
-
86
- if (item.id === node.id && item.type === node.type) {
87
- has = true
88
- break
89
- }
90
- if (has) break
91
-
92
- has = checkHasNodeRecursion(item.nodes, node)
93
- }
94
- return has
95
- }
96
-
97
- const onShowNodes = ({
98
- node,
99
- cb,
100
- }: {
101
- node: UI_I_TreeNode
102
- cb: () => void
103
- }): void => {
104
- emits('show-compute-resource-tree', node)
105
- cb()
106
- }
107
- const onSelectNode = (node: UI_I_TreeNode): void => {
108
- emits('select-compute-resource-tree', node)
109
-
110
- model.value = node
111
- }
112
-
113
- onUnmounted(() => {
114
- emits('clear-compute-resource-tree')
115
- })
116
- </script>
117
-
118
- <style scoped lang="scss"></style>
1
+ <template>
2
+ <common-vm-actions-common-select-compute-resource-tree-view-new
3
+ v-if="isNewView"
4
+ :compute-resource-tree="props.computeResourceTree"
5
+ :loading="loading"
6
+ @show-nodes="onShowNodes"
7
+ @select-node="onSelectNode"
8
+ />
9
+ <common-vm-actions-common-select-compute-resource-tree-view-old
10
+ v-else
11
+ :compute-resource-tree="props.computeResourceTree"
12
+ :loading="loading"
13
+ @show-nodes="onShowNodes"
14
+ @select-node="onSelectNode"
15
+ />
16
+ </template>
17
+
18
+ <script setup lang="ts">
19
+ import type { UI_I_TreeNode } from '~/components/common/recursionTree/lib/models/interfaces'
20
+
21
+ const model = defineModel<UI_I_TreeNode>('modelValue', { required: true })
22
+
23
+ const props = defineProps<{
24
+ dataCenter: UI_I_TreeNode | null
25
+ computeResource: UI_I_TreeNode
26
+ computeResourceTree: UI_I_TreeNode[]
27
+ }>()
28
+
29
+ const emits = defineEmits<{
30
+ (
31
+ event: 'get-compute-resource-tree',
32
+ value: { id: string | number; cb: () => void }
33
+ ): void
34
+ (event: 'show-compute-resource-tree', value: UI_I_TreeNode): void
35
+ (event: 'select-compute-resource-tree', value: UI_I_TreeNode): void
36
+ (event: 'clear-compute-resource-tree'): void
37
+ }>()
38
+
39
+ const { $store }: any = useNuxtApp()
40
+ const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
41
+
42
+ const loading = ref<boolean>(false)
43
+ watch(
44
+ () => props.dataCenter,
45
+ async () => {
46
+ if (!props.dataCenter) return
47
+
48
+ loading.value = true
49
+ emits('get-compute-resource-tree', {
50
+ id: props.dataCenter.id,
51
+ cb: () => {
52
+ let node = model.value
53
+ let hasNode = checkHasNodeRecursion(
54
+ props.computeResourceTree[0].nodes,
55
+ node
56
+ )
57
+ if (!hasNode) {
58
+ node = props.computeResource
59
+ hasNode = checkHasNodeRecursion(
60
+ props.computeResourceTree[0].nodes,
61
+ node
62
+ )
63
+ }
64
+ if (!hasNode) {
65
+ node = props.computeResourceTree[0]
66
+ }
67
+ loading.value = false
68
+
69
+ if (!node) return
70
+ onSelectNode(node)
71
+ },
72
+ })
73
+ },
74
+ { immediate: true, deep: true }
75
+ )
76
+ const checkHasNodeRecursion = (
77
+ nodes: UI_I_TreeNode[],
78
+ node: UI_I_TreeNode | null
79
+ ): boolean => {
80
+ if (!node) return false
81
+
82
+ let has = false
83
+ for (let i = 0; i < nodes.length; i++) {
84
+ const item = nodes[i]
85
+
86
+ if (item.id === node.id && item.type === node.type) {
87
+ has = true
88
+ break
89
+ }
90
+ if (has) break
91
+
92
+ has = checkHasNodeRecursion(item.nodes, node)
93
+ }
94
+ return has
95
+ }
96
+
97
+ const onShowNodes = ({
98
+ node,
99
+ cb,
100
+ }: {
101
+ node: UI_I_TreeNode
102
+ cb: () => void
103
+ }): void => {
104
+ emits('show-compute-resource-tree', node)
105
+ cb()
106
+ }
107
+ const onSelectNode = (node: UI_I_TreeNode): void => {
108
+ emits('select-compute-resource-tree', node)
109
+
110
+ model.value = node
111
+ }
112
+
113
+ onUnmounted(() => {
114
+ emits('clear-compute-resource-tree')
115
+ })
116
+ </script>
117
+
118
+ <style scoped lang="scss"></style>
@@ -1,38 +1,38 @@
1
- <template>
2
- <common-vm-actions-common-select-create-type-new
3
- v-if="isNewView"
4
- v-model="model"
5
- :items="items"
6
- :import-from-v-m-warev-sphere="props.importFromVMWarevSphere"
7
- />
8
- <common-vm-actions-common-select-create-type-old
9
- v-else
10
- v-model="model"
11
- :items="items"
12
- :import-from-v-m-warev-sphere="props.importFromVMWarevSphere"
13
- />
14
- </template>
15
-
16
- <script setup lang="ts">
17
- import type { UI_I_Localization } from '~/lib/models/interfaces'
18
- import type { UI_I_OptionItem } from '~/components/atoms/lib/models/interfaces'
19
- import { itemsFunc } from '~/components/common/vm/actions/common/select/createType/lib/config/items'
20
-
21
- const model = defineModel<string>()
22
-
23
- const props = defineProps<{
24
- importFromVMWarevSphere: string
25
- }>()
26
-
27
- const { $store }: any = useNuxtApp()
28
- const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
29
-
30
- const localization = computed<UI_I_Localization>(() => useLocal())
31
-
32
- const items = computed<UI_I_OptionItem[]>(() =>
33
- itemsFunc(localization.value, props.importFromVMWarevSphere)
34
- )
35
- </script>
36
-
37
- <style scoped lang="scss">
38
- </style>
1
+ <template>
2
+ <common-vm-actions-common-select-create-type-new
3
+ v-if="isNewView"
4
+ v-model="model"
5
+ :items="items"
6
+ :import-from-v-m-warev-sphere="props.importFromVMWarevSphere"
7
+ />
8
+ <common-vm-actions-common-select-create-type-old
9
+ v-else
10
+ v-model="model"
11
+ :items="items"
12
+ :import-from-v-m-warev-sphere="props.importFromVMWarevSphere"
13
+ />
14
+ </template>
15
+
16
+ <script setup lang="ts">
17
+ import type { UI_I_Localization } from '~/lib/models/interfaces'
18
+ import type { UI_I_OptionItem } from '~/components/atoms/lib/models/interfaces'
19
+ import { itemsFunc } from '~/components/common/vm/actions/common/select/createType/lib/config/items'
20
+
21
+ const model = defineModel<string>()
22
+
23
+ const props = defineProps<{
24
+ importFromVMWarevSphere: string
25
+ }>()
26
+
27
+ const { $store }: any = useNuxtApp()
28
+ const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
29
+
30
+ const localization = computed<UI_I_Localization>(() => useLocal())
31
+
32
+ const items = computed<UI_I_OptionItem[]>(() =>
33
+ itemsFunc(localization.value, props.importFromVMWarevSphere)
34
+ )
35
+ </script>
36
+
37
+ <style scoped lang="scss">
38
+ </style>