bfg-common 1.5.293 → 1.5.294

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 (136) 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/assets/localization/local_en.json +1 -1
  7. package/components/atoms/TheIcon3.vue +50 -50
  8. package/components/atoms/perPage/PerPage.vue +58 -58
  9. package/components/atoms/table/dataGrid/DataGrid.vue +1717 -1717
  10. package/components/atoms/table/dataGrid/lib/config/settingsTable.ts +94 -94
  11. package/components/atoms/table/dataGrid/lib/utils/export.ts +16 -16
  12. package/components/atoms/tabs/VerticalTabs.vue +105 -105
  13. package/components/common/backup/storage/actions/add/lib/config/steps.ts +168 -168
  14. package/components/common/backup/storage/actions/add/steps/hostAccessibility/HostAccessibility.vue +52 -52
  15. package/components/common/backup/storage/actions/add/steps/nameAndConfigure/NameAndConfigure.vue +42 -42
  16. package/components/common/backup/storage/actions/add/steps/readyComplete/ReadyComplete.vue +45 -45
  17. package/components/common/backup/storage/actions/add/steps/readyComplete/lib/config/propertiesDetails.ts +243 -243
  18. package/components/common/backup/storage/actions/delete/Delete.vue +65 -65
  19. package/components/common/browse/blocks/contents/filesNew/Skeleton.vue +18 -18
  20. package/components/common/context/lib/models/interfaces.ts +31 -31
  21. package/components/common/diagramMain/DiagramMain.vue +897 -897
  22. package/components/common/layout/theHeader/helpMenu/About.vue +82 -82
  23. package/components/common/layout/theHeader/userMenu/modals/preferences/view/ViewOld.vue +112 -112
  24. package/components/common/monitor/overview/OverviewOld.vue +139 -139
  25. package/components/common/pages/home/headline/Headline.vue +45 -45
  26. package/components/common/pages/home/headline/HeadlineOld.vue +42 -42
  27. package/components/common/pages/home/lib/models/interfaces.ts +48 -48
  28. package/components/common/pages/home/widgets/Widgets.vue +49 -49
  29. package/components/common/pages/home/widgets/WidgetsNew.vue +86 -86
  30. package/components/common/pages/home/widgets/WidgetsOld.vue +34 -34
  31. package/components/common/pages/home/widgets/hosts/Hosts.vue +27 -27
  32. package/components/common/pages/home/widgets/hosts/lib/config/items.ts +23 -23
  33. package/components/common/pages/home/widgets/vms/Vms.vue +26 -26
  34. package/components/common/pages/home/widgets/vms/VmsOld.vue +35 -35
  35. package/components/common/pages/home/widgets/vms/lib/config/items.ts +19 -19
  36. package/components/common/pages/packages/Packages.vue +208 -208
  37. package/components/common/pages/shortcuts/block/BlockOld.vue +68 -68
  38. package/components/common/readyToComplete/ReadyToComplete.vue +17 -17
  39. package/components/common/recursionTree/RecursionTree.vue +223 -223
  40. package/components/common/select/button/ButtonDropdown.vue +108 -108
  41. package/components/common/spiceConsole/Drawer.vue +377 -377
  42. package/components/common/spiceConsole/SpiceConsole.vue +127 -127
  43. package/components/common/spiceConsole/lib/models/interfaces.ts +5 -5
  44. package/components/common/vm/actions/add/folderTreeView/FolderTreeView.vue +72 -72
  45. package/components/common/vm/actions/add/folderTreeView/New.vue +40 -40
  46. package/components/common/vm/actions/add/folderTreeView/Old.vue +50 -50
  47. package/components/common/vm/actions/clone/Clone.vue +817 -817
  48. package/components/common/vm/actions/clone/lib/config/steps.ts +291 -291
  49. package/components/common/vm/actions/clone/toTemplate/lib/config/steps.ts +116 -116
  50. package/components/common/vm/actions/common/customizeHardware/virtualHardware/VirtualHardwareOld.vue +321 -321
  51. package/components/common/vm/actions/common/customizeHardware/virtualHardware/browseView/BrowseView.vue +227 -227
  52. package/components/common/vm/actions/common/customizeHardware/virtualHardware/bus/Bus.vue +100 -100
  53. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/CdDvdDrive.vue +232 -232
  54. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/CdDvdDriveNew.vue +3 -3
  55. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/CdDvdDriveOld.vue +168 -168
  56. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/Media.vue +25 -25
  57. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/MediaNew.vue +78 -78
  58. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/MediaOld.vue +50 -50
  59. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/model/ModelNew.vue +26 -24
  60. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/shares/Shares.vue +140 -140
  61. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/shares/lib/config/options.ts +28 -28
  62. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/tooltip/TooltipNew.vue +154 -154
  63. package/components/common/vm/actions/common/customizeHardware/virtualHardware/limit/Limit.vue +220 -220
  64. package/components/common/vm/actions/common/customizeHardware/virtualHardware/memory/Memory.vue +307 -307
  65. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/NewHardDisk.vue +385 -385
  66. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/NewHardDiskNew.vue +3 -3
  67. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/file/FileNew.vue +1 -1
  68. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/location/Location.vue +154 -154
  69. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/location/LocationOld.vue +85 -85
  70. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/maximumSize/MaximumSizeNew.vue +6 -0
  71. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/NewNetwork.vue +288 -288
  72. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/location/new/table/lib/config/config.ts +94 -94
  73. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/macAddress/MacAddress.vue +119 -119
  74. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/macAddress/MacAddressNew.vue +1 -1
  75. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/NewPciDevice.vue +205 -205
  76. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/directPathIo/DirectPathIoNew.vue +66 -66
  77. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/directPathIo/DirectPathIoOld.vue +62 -62
  78. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIo.vue +31 -31
  79. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIoOld.vue +76 -76
  80. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/Note.vue +15 -15
  81. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/NoteNew.vue +42 -42
  82. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/NoteOld.vue +30 -30
  83. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/nvidiaGrid/NvidiaGridOld.vue +84 -84
  84. package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/Other.vue +16 -16
  85. package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/inputDevices/InputDevicesNew.vue +45 -40
  86. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/VideoCard.vue +154 -154
  87. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/numberDisplays/NumberDisplays.vue +53 -53
  88. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/numberDisplays/NumberDisplaysNew.vue +1 -1
  89. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/delay/Delay.vue +32 -32
  90. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/delay/DelayNew.vue +1 -1
  91. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/firmware/Firmware.vue +60 -60
  92. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/firmware/FirmwareNew.vue +1 -1
  93. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/menu/MenuNew.vue +1 -1
  94. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/Order.vue +174 -174
  95. package/components/common/vm/actions/common/customizeHardware/vmoptions/generalOptions/GeneralOptionsNew.vue +3 -3
  96. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/copyPaste/CopyPasteNew.vue +31 -31
  97. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/fileTransfer/FileTransferNew.vue +31 -31
  98. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/folderSharing/FolderSharingNew.vue +1 -1
  99. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/keymap/Keymap.vue +32 -32
  100. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/keymap/KeymapNew.vue +1 -1
  101. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/password/Password.vue +103 -103
  102. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/password/PasswordNew.vue +128 -128
  103. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirection.vue +28 -28
  104. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirectionNew.vue +1 -1
  105. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirectionOld.vue +44 -44
  106. package/components/common/vm/actions/common/customizeHardware/vmoptions/tools/ToolsNew.vue +1 -1
  107. package/components/common/vm/actions/common/lib/utils/capabilities.ts +52 -52
  108. package/components/common/vm/actions/common/select/compatibility/Old.vue +107 -107
  109. package/components/common/vm/actions/common/select/computeResource/treeView/TreeView.vue +118 -118
  110. package/components/common/vm/actions/common/select/createType/CreateType.vue +38 -38
  111. package/components/common/vm/actions/common/select/createType/lib/models/interfaces.ts +5 -5
  112. package/components/common/vm/actions/common/select/name/Name.vue +174 -174
  113. package/components/common/vm/actions/common/select/os/Old.vue +152 -152
  114. package/components/common/vm/actions/common/select/os/Os.vue +139 -139
  115. package/components/common/vm/actions/common/select/storage/new/lib/models/interfaces.ts +5 -5
  116. package/components/common/vm/actions/common/select/storage/new/lib/utils/utils.ts +21 -21
  117. package/components/common/vm/actions/editSettings/new/Skeleton.vue +88 -88
  118. package/components/common/vmt/actions/add/Add.vue +641 -641
  119. package/components/common/vmt/actions/add/lib/config/steps.ts +107 -107
  120. package/components/common/vmt/actions/add/lib/models/interfaces.ts +23 -23
  121. package/components/common/wizards/vm/migrate/lib/config/constructDataReady.ts +220 -220
  122. package/components/common/wizards/vm/migrate/lib/config/steps.ts +157 -157
  123. package/components/common/wizards/vm/migrate/lib/validations.ts +68 -68
  124. package/components/common/wizards/vm/migrate/select/network/Network.vue +103 -103
  125. package/components/common/wizards/vm/migrate/select/network/table/network/lib/config/advancedTable.ts +91 -91
  126. package/composables/productNameLocal.ts +30 -30
  127. package/composables/useAppVersion.ts +21 -21
  128. package/package.json +2 -2
  129. package/plugins/date.ts +233 -233
  130. package/plugins/panelStates.ts +70 -70
  131. package/plugins/text.ts +59 -59
  132. package/public/spice-console/lib/images/bitmap.js +203 -203
  133. package/public/spice-console/network/spicechannel.js +387 -387
  134. package/store/main/mutations.ts +7 -7
  135. package/store/main/state.ts +7 -7
  136. package/store/tasks/mappers/recentTasks.ts +64 -64
@@ -1,127 +1,127 @@
1
- <template>
2
- <div ref="fullScreen" class="spice-console">
3
- <div id="vmw" ref="vmScreen" @scroll="onConsoleScroll"></div>
4
- <common-spice-console-drawer
5
- @toggle-fullscreen="toggle"
6
- @send-alt-command="onSendAltCommand"
7
- />
8
- </div>
9
- </template>
10
- <script setup lang="ts">
11
- import { useFullscreen } from '@vueuse/core'
12
- import RFB from '@novnc/novnc/core/rfb.js'
13
- import SpiceConsole from '~/plugins/spice-console/spice.console'
14
-
15
- const props = defineProps<{
16
- wsUrl: string
17
- vmType: string
18
- vmId: string
19
- host: string
20
- port: number
21
- }>()
22
-
23
- let rfb: any
24
- const vmScreen = ref<any>(null)
25
- const fullScreen = ref<any>(null)
26
- const { toggle } = useFullscreen(fullScreen)
27
-
28
- const connectWS = (): void => {
29
- if (props.vmType === 'VNC') {
30
- connectVNC()
31
- } else if (props.vmType === 'SPICE') {
32
- SpiceConsole.init(props.wsUrl)
33
- }
34
- }
35
-
36
- const connectVNC = (): void => {
37
- rfb = new RFB(vmScreen.value, props.wsUrl, {
38
- protocols: {},
39
- })
40
- }
41
-
42
- const vmDisconnect = (): void => {
43
- if (props.vmType === 'VNC') {
44
- if (rfb) {
45
- rfb.disconnect()
46
- }
47
- }
48
- }
49
-
50
- const onSendAltCommand = (): void => {
51
- // @ts-ignore
52
- window.app.sendCtrlAltDelete()
53
- }
54
-
55
- const onConsoleScroll = (event: any): void => {
56
- app.clientGui.setClientOffset(
57
- app.clientGui.clientOffsetX,
58
- event.target.scrollTop
59
- )
60
- }
61
-
62
- const blockCtrlOrCmdCommands = (e): void => {
63
- const blockedKeys = [
64
- 'e',
65
- 's',
66
- 'p',
67
- 'u',
68
- 'r',
69
- 'o',
70
- 'i',
71
- 'j',
72
- 'k',
73
- 'n',
74
- 't',
75
- 'w',
76
- 'h',
77
- 'd',
78
- ]
79
-
80
- const key = e.key
81
- const ctrlOrCmd = e.ctrlKey || e.metaKey
82
-
83
- // Block Ctrl+key or Cmd+key
84
- if (ctrlOrCmd && blockedKeys.includes(key.toLowerCase())) {
85
- e.preventDefault()
86
- e.stopPropagation()
87
- // console.log(`Blocked key: ${key}`);
88
- return false
89
- }
90
-
91
- // Optionally block right-click menu key (context menu)
92
- // if (e.key === 'ContextMenu') {
93
- // e.preventDefault();
94
- // return false;
95
- // }
96
-
97
- // Optional: block F5/Reload with Ctrl+R as fallback
98
- // if (key === 'F5' || (ctrlOrCmd && key.toLowerCase() === 'r')) {
99
- // e.preventDefault();
100
- // return false;
101
- // }
102
- }
103
- onMounted(() => {
104
- connectWS()
105
- document.addEventListener('keydown', blockCtrlOrCmdCommands)
106
- })
107
-
108
- onBeforeUnmount(() => {
109
- vmDisconnect()
110
- document.removeEventListener('keydown', blockCtrlOrCmdCommands)
111
- })
112
- </script>
113
- <style scoped lang="scss">
114
- .spice-console {
115
- width: 100vw;
116
- height: 100vh;
117
- overflow: hidden;
118
- position: relative;
119
- }
120
- #vmw {
121
- overflow-y: auto;
122
- overflow-x: auto;
123
- position: relative;
124
- height: 100vh;
125
- background-color: #000;
126
- }
127
- </style>
1
+ <template>
2
+ <div ref="fullScreen" class="spice-console">
3
+ <div id="vmw" ref="vmScreen" @scroll="onConsoleScroll"></div>
4
+ <common-spice-console-drawer
5
+ @toggle-fullscreen="toggle"
6
+ @send-alt-command="onSendAltCommand"
7
+ />
8
+ </div>
9
+ </template>
10
+ <script setup lang="ts">
11
+ import { useFullscreen } from '@vueuse/core'
12
+ import RFB from '@novnc/novnc/core/rfb.js'
13
+ import SpiceConsole from '~/plugins/spice-console/spice.console'
14
+
15
+ const props = defineProps<{
16
+ wsUrl: string
17
+ vmType: string
18
+ vmId: string
19
+ host: string
20
+ port: number
21
+ }>()
22
+
23
+ let rfb: any
24
+ const vmScreen = ref<any>(null)
25
+ const fullScreen = ref<any>(null)
26
+ const { toggle } = useFullscreen(fullScreen)
27
+
28
+ const connectWS = (): void => {
29
+ if (props.vmType === 'VNC') {
30
+ connectVNC()
31
+ } else if (props.vmType === 'SPICE') {
32
+ SpiceConsole.init(props.wsUrl)
33
+ }
34
+ }
35
+
36
+ const connectVNC = (): void => {
37
+ rfb = new RFB(vmScreen.value, props.wsUrl, {
38
+ protocols: {},
39
+ })
40
+ }
41
+
42
+ const vmDisconnect = (): void => {
43
+ if (props.vmType === 'VNC') {
44
+ if (rfb) {
45
+ rfb.disconnect()
46
+ }
47
+ }
48
+ }
49
+
50
+ const onSendAltCommand = (): void => {
51
+ // @ts-ignore
52
+ window.app.sendCtrlAltDelete()
53
+ }
54
+
55
+ const onConsoleScroll = (event: any): void => {
56
+ app.clientGui.setClientOffset(
57
+ app.clientGui.clientOffsetX,
58
+ event.target.scrollTop
59
+ )
60
+ }
61
+
62
+ const blockCtrlOrCmdCommands = (e): void => {
63
+ const blockedKeys = [
64
+ 'e',
65
+ 's',
66
+ 'p',
67
+ 'u',
68
+ 'r',
69
+ 'o',
70
+ 'i',
71
+ 'j',
72
+ 'k',
73
+ 'n',
74
+ 't',
75
+ 'w',
76
+ 'h',
77
+ 'd',
78
+ ]
79
+
80
+ const key = e.key
81
+ const ctrlOrCmd = e.ctrlKey || e.metaKey
82
+
83
+ // Block Ctrl+key or Cmd+key
84
+ if (ctrlOrCmd && blockedKeys.includes(key.toLowerCase())) {
85
+ e.preventDefault()
86
+ e.stopPropagation()
87
+ // console.log(`Blocked key: ${key}`);
88
+ return false
89
+ }
90
+
91
+ // Optionally block right-click menu key (context menu)
92
+ // if (e.key === 'ContextMenu') {
93
+ // e.preventDefault();
94
+ // return false;
95
+ // }
96
+
97
+ // Optional: block F5/Reload with Ctrl+R as fallback
98
+ // if (key === 'F5' || (ctrlOrCmd && key.toLowerCase() === 'r')) {
99
+ // e.preventDefault();
100
+ // return false;
101
+ // }
102
+ }
103
+ onMounted(() => {
104
+ connectWS()
105
+ document.addEventListener('keydown', blockCtrlOrCmdCommands)
106
+ })
107
+
108
+ onBeforeUnmount(() => {
109
+ vmDisconnect()
110
+ document.removeEventListener('keydown', blockCtrlOrCmdCommands)
111
+ })
112
+ </script>
113
+ <style scoped lang="scss">
114
+ .spice-console {
115
+ width: 100vw;
116
+ height: 100vh;
117
+ overflow: hidden;
118
+ position: relative;
119
+ }
120
+ #vmw {
121
+ overflow-y: auto;
122
+ overflow-x: auto;
123
+ position: relative;
124
+ height: 100vh;
125
+ background-color: #000;
126
+ }
127
+ </style>
@@ -1,5 +1,5 @@
1
- export interface UI_I_DeviceOption {
2
- label: string
3
- value: any
4
- disabled?: boolean
5
- }
1
+ export interface UI_I_DeviceOption {
2
+ label: string
3
+ value: any
4
+ disabled?: boolean
5
+ }
@@ -1,72 +1,72 @@
1
- <template>
2
- <common-vm-actions-add-folder-tree-view-new
3
- v-if="isNewView"
4
- :nodes="nodes"
5
- :loading="loading"
6
- @show-nodes="showNodes"
7
- @select-node="selectNode"
8
- />
9
- <common-vm-actions-add-folder-tree-view-old
10
- v-else
11
- :nodes="nodes"
12
- :loading="loading"
13
- @show-nodes="showNodes"
14
- @select-node="selectNode"
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 props = defineProps<{
22
- dataCenter: UI_I_TreeNode
23
- }>()
24
- const emits = defineEmits<{
25
- (event: 'select-node', value: UI_I_TreeNode): void
26
- }>()
27
-
28
- const { $store }: any = useNuxtApp()
29
- const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
30
-
31
- const nodes = computed<UI_I_TreeNode[]>(
32
- () => $store.getters['inventory/getFolderTree'] || []
33
- )
34
- const loading = ref<boolean>(false)
35
- const getTree = async (): Promise<void> => {
36
- loading.value = true
37
- await $store.dispatch('inventory/A_GET_FOLDER_TREE', null)
38
- loading.value = false
39
- }
40
- getTree().then(() => {
41
- selectNode(props.dataCenter)
42
- })
43
-
44
- const showNodes = ({
45
- node,
46
- cb,
47
- }: {
48
- node: UI_I_TreeNode
49
- cb: () => void
50
- }): void => {
51
- const payload: any = { node, treeName: 'folderTree' }
52
- $store.dispatch('inventory/A_SHOW_NODE', payload)
53
- cb()
54
- }
55
- const selectNode = (node: UI_I_TreeNode): void => {
56
- const payload: any = {
57
- node,
58
- treeName: 'folderTree',
59
- doSelect: false,
60
- }
61
- $store.dispatch('inventory/A_SELECT_NODE', payload)
62
-
63
- emits('select-node', node)
64
- }
65
-
66
- onUnmounted(() => {
67
- $store.dispatch('inventory/A_CLEAR_FOLDER_TREE', null)
68
- })
69
- </script>
70
-
71
- <style scoped lang="scss">
72
- </style>
1
+ <template>
2
+ <common-vm-actions-add-folder-tree-view-new
3
+ v-if="isNewView"
4
+ :nodes="nodes"
5
+ :loading="loading"
6
+ @show-nodes="showNodes"
7
+ @select-node="selectNode"
8
+ />
9
+ <common-vm-actions-add-folder-tree-view-old
10
+ v-else
11
+ :nodes="nodes"
12
+ :loading="loading"
13
+ @show-nodes="showNodes"
14
+ @select-node="selectNode"
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 props = defineProps<{
22
+ dataCenter: UI_I_TreeNode
23
+ }>()
24
+ const emits = defineEmits<{
25
+ (event: 'select-node', value: UI_I_TreeNode): void
26
+ }>()
27
+
28
+ const { $store }: any = useNuxtApp()
29
+ const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
30
+
31
+ const nodes = computed<UI_I_TreeNode[]>(
32
+ () => $store.getters['inventory/getFolderTree'] || []
33
+ )
34
+ const loading = ref<boolean>(false)
35
+ const getTree = async (): Promise<void> => {
36
+ loading.value = true
37
+ await $store.dispatch('inventory/A_GET_FOLDER_TREE', null)
38
+ loading.value = false
39
+ }
40
+ getTree().then(() => {
41
+ selectNode(props.dataCenter)
42
+ })
43
+
44
+ const showNodes = ({
45
+ node,
46
+ cb,
47
+ }: {
48
+ node: UI_I_TreeNode
49
+ cb: () => void
50
+ }): void => {
51
+ const payload: any = { node, treeName: 'folderTree' }
52
+ $store.dispatch('inventory/A_SHOW_NODE', payload)
53
+ cb()
54
+ }
55
+ const selectNode = (node: UI_I_TreeNode): void => {
56
+ const payload: any = {
57
+ node,
58
+ treeName: 'folderTree',
59
+ doSelect: false,
60
+ }
61
+ $store.dispatch('inventory/A_SELECT_NODE', payload)
62
+
63
+ emits('select-node', node)
64
+ }
65
+
66
+ onUnmounted(() => {
67
+ $store.dispatch('inventory/A_CLEAR_FOLDER_TREE', null)
68
+ })
69
+ </script>
70
+
71
+ <style scoped lang="scss">
72
+ </style>
@@ -1,40 +1,40 @@
1
- <template>
2
- <div class="tree-view">
3
- <ui-tree
4
- :nodes="props.nodes"
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
- loading: boolean
25
- nodes: UI_I_TreeNode[]
26
- }>()
27
- const emits = defineEmits<{
28
- (event: 'select-node', value: UI_I_TreeNode): void
29
- (event: 'show-nodes', value: {
30
- node: UI_I_TreeNode
31
- cb: () => void
32
- }): void
33
- }>()
34
-
35
- const onShowNodes = (node: UI_I_TreeNode) => {
36
- emits('show-nodes', { node, cb: (): void => {} })
37
- }
38
- </script>
39
-
40
- <style scoped lang="scss"></style>
1
+ <template>
2
+ <div class="tree-view">
3
+ <ui-tree
4
+ :nodes="props.nodes"
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
+ loading: boolean
25
+ nodes: UI_I_TreeNode[]
26
+ }>()
27
+ const emits = defineEmits<{
28
+ (event: 'select-node', value: UI_I_TreeNode): void
29
+ (event: 'show-nodes', value: {
30
+ node: UI_I_TreeNode
31
+ cb: () => void
32
+ }): void
33
+ }>()
34
+
35
+ const onShowNodes = (node: UI_I_TreeNode) => {
36
+ emits('show-nodes', { node, cb: (): void => {} })
37
+ }
38
+ </script>
39
+
40
+ <style scoped lang="scss"></style>
@@ -1,50 +1,50 @@
1
- <template>
2
- <div class="tree-view">
3
- <atoms-loader-pre-loader
4
- v-show="props.loading"
5
- id="loader"
6
- class="absolute-center tree-view__loading"
7
- :show="true"
8
- />
9
- <common-recursion-tree
10
- :nodes="props.nodes"
11
- class="recursion-tree"
12
- @get-nodes="emits('show-nodes', $event)"
13
- @select-node="emits('select-node', $event)"
14
- @contextmenu.prevent
15
- />
16
- </div>
17
- </template>
18
-
19
- <script setup lang="ts">
20
- import type { UI_I_TreeNode } from '~/components/common/recursionTree/lib/models/interfaces'
21
-
22
- const props = defineProps<{
23
- loading: boolean
24
- nodes: UI_I_TreeNode[]
25
- }>()
26
- const emits = defineEmits<{
27
- (event: 'select-node', value: UI_I_TreeNode): void
28
- (
29
- event: 'show-nodes',
30
- value: {
31
- node: UI_I_TreeNode
32
- cb: () => void
33
- }
34
- ): void
35
- }>()
36
- </script>
37
-
38
- <style scoped lang="scss">
39
- .tree-view {
40
- &__loading {
41
- :deep(.spinner.spinner-inverse) {
42
- position: static;
43
- width: 45px;
44
- height: 45px;
45
- min-width: 45px;
46
- min-height: 45px;
47
- }
48
- }
49
- }
50
- </style>
1
+ <template>
2
+ <div class="tree-view">
3
+ <atoms-loader-pre-loader
4
+ v-show="props.loading"
5
+ id="loader"
6
+ class="absolute-center tree-view__loading"
7
+ :show="true"
8
+ />
9
+ <common-recursion-tree
10
+ :nodes="props.nodes"
11
+ class="recursion-tree"
12
+ @get-nodes="emits('show-nodes', $event)"
13
+ @select-node="emits('select-node', $event)"
14
+ @contextmenu.prevent
15
+ />
16
+ </div>
17
+ </template>
18
+
19
+ <script setup lang="ts">
20
+ import type { UI_I_TreeNode } from '~/components/common/recursionTree/lib/models/interfaces'
21
+
22
+ const props = defineProps<{
23
+ loading: boolean
24
+ nodes: UI_I_TreeNode[]
25
+ }>()
26
+ const emits = defineEmits<{
27
+ (event: 'select-node', value: UI_I_TreeNode): void
28
+ (
29
+ event: 'show-nodes',
30
+ value: {
31
+ node: UI_I_TreeNode
32
+ cb: () => void
33
+ }
34
+ ): void
35
+ }>()
36
+ </script>
37
+
38
+ <style scoped lang="scss">
39
+ .tree-view {
40
+ &__loading {
41
+ :deep(.spinner.spinner-inverse) {
42
+ position: static;
43
+ width: 45px;
44
+ height: 45px;
45
+ min-width: 45px;
46
+ min-height: 45px;
47
+ }
48
+ }
49
+ }
50
+ </style>