bfg-common 1.5.730 → 1.5.732

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 (110) 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/collapse/CollapseNav.vue +170 -170
  8. package/components/atoms/perPage/PerPage.vue +58 -58
  9. package/components/atoms/table/dataGrid/DataGrid.vue +1718 -1718
  10. package/components/atoms/table/dataGrid/DataGridPagination.vue +97 -97
  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/common/backup/storage/actions/add/lib/utils.ts +51 -51
  14. package/components/common/browse/blocks/contents/filesNew/Skeleton.vue +18 -18
  15. package/components/common/diagramMain/modals/lib/config/vCenterModal.ts +48 -48
  16. package/components/common/diagramMain/port/Port.vue +580 -580
  17. package/components/common/layout/console/Console.vue +70 -70
  18. package/components/common/layout/theHeader/userMenu/modals/preferences/lib/models/types.ts +7 -7
  19. package/components/common/pages/backups/DetailView.vue +52 -52
  20. package/components/common/pages/backups/lib/models/interfaces.ts +36 -36
  21. package/components/common/pages/backups/modals/Modals.vue +243 -243
  22. package/components/common/pages/backups/modals/createBackup/configuration/maxBandwidth/lib/config/options.ts +6 -6
  23. package/components/common/pages/backups/modals/createBackup/lib/config/readyToCompleteOptions.ts +69 -69
  24. package/components/common/pages/backups/modals/lib/config/restore.ts +115 -115
  25. package/components/common/pages/backups/modals/lib/models/interfaces.ts +186 -186
  26. package/components/common/pages/backups/modals/restore/Restore.vue +289 -289
  27. package/components/common/pages/backups/modals/restore/lib/config/readyToCompleteOptions.ts +85 -85
  28. package/components/common/pages/backups/modals/restore/lib/config/steps.ts +121 -121
  29. package/components/common/pages/backups/modals/restore/name/lib/models/interfaces.ts +6 -6
  30. package/components/common/pages/backups/modals/restore/types/New.vue +95 -95
  31. package/components/common/pages/backups/modals/restore/types/Old.vue +62 -62
  32. package/components/common/pages/backups/modals/restore/types/Types.vue +31 -31
  33. package/components/common/pages/home/lib/models/interfaces.ts +48 -48
  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/VmsOld.vue +35 -35
  37. package/components/common/pages/home/widgets/vms/lib/config/items.ts +19 -19
  38. package/components/common/pages/scheduledTasks/lib/utils/utils.ts +84 -84
  39. package/components/common/pages/tasks/Tasks.vue +125 -125
  40. package/components/common/pages/tasks/table/Table.vue +373 -373
  41. package/components/common/pages/tasks/table/lib/config/config.ts +279 -279
  42. package/components/common/pages/tasks/table/lib/models/interfaces.ts +9 -9
  43. package/components/common/readyToComplete/ReadyToComplete.vue +17 -17
  44. package/components/common/select/radio/RadioGroup.vue +137 -137
  45. package/components/common/spiceConsole/Drawer.vue +420 -420
  46. package/components/common/spiceConsole/SpiceConsole.vue +184 -184
  47. package/components/common/spiceConsole/lib/models/interfaces.ts +5 -5
  48. package/components/common/tools/Actions.vue +207 -207
  49. package/components/common/treeView/TreeView.vue +52 -52
  50. package/components/common/vm/actions/clone/lib/config/steps.ts +295 -295
  51. package/components/common/vm/actions/clone/new/New.vue +438 -438
  52. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/shares/lib/config/options.ts +28 -28
  53. package/components/common/vm/actions/common/customizeHardware/virtualHardware/memory/Memory.vue +283 -283
  54. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/Order.vue +156 -156
  55. package/components/common/vm/actions/common/select/compatibility/Old.vue +107 -107
  56. package/components/common/vm/actions/common/select/createType/lib/models/interfaces.ts +5 -5
  57. package/components/common/vm/actions/common/select/options/New.vue +264 -264
  58. package/components/common/vm/actions/common/select/options/Options.vue +58 -58
  59. package/components/common/vm/actions/common/select/storage/Old.vue +125 -125
  60. package/components/common/vm/actions/common/select/storage/new/New.vue +311 -311
  61. package/components/common/vm/actions/common/select/storage/new/lib/models/interfaces.ts +5 -5
  62. package/components/common/vm/actions/common/select/storage/new/lib/utils/utils.ts +21 -21
  63. package/components/common/vm/actions/common/select/template/old/Old.vue +50 -50
  64. package/components/common/vm/actions/editSettings/new/Skeleton.vue +88 -88
  65. package/components/common/vm/snapshots/DetailView.vue +90 -0
  66. package/components/common/vm/snapshots/Old.vue +71 -0
  67. package/components/common/vm/snapshots/Snapshots.vue +82 -0
  68. package/components/common/vm/snapshots/lib/models/types.ts +8 -0
  69. package/components/common/vm/snapshots/new/New.vue +389 -0
  70. package/components/common/vm/snapshots/new/contextMenuView/ContextMenuView.vue +96 -0
  71. package/components/common/vm/snapshots/new/contextMenuView/lib/config/contextMenuItems.ts +34 -0
  72. package/components/common/vm/snapshots/new/lib/models/interfaces.ts +12 -0
  73. package/components/common/vm/snapshots/new/lib/utils/contextMenu.ts +29 -0
  74. package/components/common/vm/snapshots/new/lib/utils/details.ts +48 -0
  75. package/components/common/vm/snapshots/tools/Tools.vue +56 -0
  76. package/components/common/vm/snapshots/tools/lib/config/tabsPannel.ts +39 -0
  77. package/components/common/wizards/common/compatibility/Compatibility.vue +35 -35
  78. package/components/common/wizards/common/steps/computeResource/New.vue +93 -93
  79. package/components/common/wizards/common/steps/name/Name.vue +178 -178
  80. package/components/common/wizards/common/steps/name/New.vue +221 -221
  81. package/components/common/wizards/common/steps/name/Old.vue +121 -121
  82. package/components/common/wizards/common/steps/name/lib/models/interfaces.ts +4 -4
  83. package/components/common/wizards/common/steps/name/location/New.vue +40 -40
  84. package/components/common/wizards/datastore/add/Add.vue +228 -228
  85. package/components/common/wizards/datastore/add/lib/utils.ts +85 -85
  86. package/components/common/wizards/datastore/add/steps/typeMode/lib/config/typeOptions.ts +43 -43
  87. package/composables/useAppVersion.ts +21 -21
  88. package/composables/useBrowse.ts +24 -24
  89. package/composables/useLocal.ts +6 -6
  90. package/composables/useLocalCommon.ts +39 -39
  91. package/lib/models/types.ts +59 -59
  92. package/package.json +1 -1
  93. package/plugins/console.ts +21 -21
  94. package/plugins/mouse.ts +21 -21
  95. package/plugins/panelStates.ts +70 -70
  96. package/plugins/text.ts +59 -59
  97. package/public/spice-console/application/clientgui.js +854 -854
  98. package/public/spice-console/application/packetfactory.js +211 -211
  99. package/public/spice-console/application/virtualmouse.js +147 -147
  100. package/public/spice-console/lib/images/bitmap.js +203 -203
  101. package/public/spice-console/network/spicechannel.js +440 -440
  102. package/public/spice-console/process/cursorprocess.js +128 -128
  103. package/public/spice-console/process/inputprocess.js +227 -227
  104. package/public/spice-console/process/mainprocess.js +212 -212
  105. package/public/spice-console/run.js +210 -210
  106. package/store/inventory/modules/snapshots/lib/models/interfaces.ts +40 -0
  107. package/store/main/mutations.ts +7 -7
  108. package/store/main/state.ts +7 -7
  109. package/store/tasks/mappers/recentTasks.ts +123 -123
  110. package/store/tasks/mutations.ts +82 -82
@@ -1,50 +1,50 @@
1
- <template>
2
- <div class="select-template">
3
- <atoms-alert
4
- v-show="props.errors.length"
5
- :items="props.errors"
6
- status="alert-danger"
7
- test-id="template-alert"
8
- @remove="emits('remove')"
9
- />
10
-
11
- <p class="template-description">
12
- {{ localization.vmWizard.selectTemplateForCreatingVm }}
13
- </p>
14
- <div class="tree-view-wrap">
15
- <common-vm-actions-common-select-template-tree-view
16
- :templates-tree="props.templatesTree"
17
- @select-node="emits('select', $event)"
18
- />
19
- </div>
20
- </div>
21
- </template>
22
-
23
- <script setup lang="ts">
24
- import type { UI_I_Localization } from '~/lib/models/interfaces'
25
- import type { UI_I_TreeNode } from '~/components/common/recursionTree/lib/models/interfaces'
26
-
27
- const props = defineProps<{
28
- templatesTree: UI_I_TreeNode[]
29
- errors: string[]
30
- }>()
31
-
32
- const emits = defineEmits<{
33
- (event: 'remove'): void
34
- (event: 'select', value: UI_I_TreeNode): void
35
- }>()
36
-
37
- const localization = computed<UI_I_Localization>(() => useLocal())
38
- </script>
39
-
40
- <style scoped lang="scss">
41
- .tree-view-wrap {
42
- position: relative;
43
- border: 1px solid #000;
44
- padding: 5px;
45
- max-height: 300px;
46
- min-height: 200px;
47
- overflow: auto;
48
- margin-bottom: 10px;
49
- }
50
- </style>
1
+ <template>
2
+ <div class="select-template">
3
+ <atoms-alert
4
+ v-show="props.errors.length"
5
+ :items="props.errors"
6
+ status="alert-danger"
7
+ test-id="template-alert"
8
+ @remove="emits('remove')"
9
+ />
10
+
11
+ <p class="template-description">
12
+ {{ localization.vmWizard.selectTemplateForCreatingVm }}
13
+ </p>
14
+ <div class="tree-view-wrap">
15
+ <common-vm-actions-common-select-template-tree-view
16
+ :templates-tree="props.templatesTree"
17
+ @select-node="emits('select', $event)"
18
+ />
19
+ </div>
20
+ </div>
21
+ </template>
22
+
23
+ <script setup lang="ts">
24
+ import type { UI_I_Localization } from '~/lib/models/interfaces'
25
+ import type { UI_I_TreeNode } from '~/components/common/recursionTree/lib/models/interfaces'
26
+
27
+ const props = defineProps<{
28
+ templatesTree: UI_I_TreeNode[]
29
+ errors: string[]
30
+ }>()
31
+
32
+ const emits = defineEmits<{
33
+ (event: 'remove'): void
34
+ (event: 'select', value: UI_I_TreeNode): void
35
+ }>()
36
+
37
+ const localization = computed<UI_I_Localization>(() => useLocal())
38
+ </script>
39
+
40
+ <style scoped lang="scss">
41
+ .tree-view-wrap {
42
+ position: relative;
43
+ border: 1px solid #000;
44
+ padding: 5px;
45
+ max-height: 300px;
46
+ min-height: 200px;
47
+ overflow: auto;
48
+ margin-bottom: 10px;
49
+ }
50
+ </style>
@@ -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>
@@ -0,0 +1,90 @@
1
+ <template>
2
+ <div class="detail-view overflow-auto py-0 px-6">
3
+ <table
4
+ v-if="detailData"
5
+ class="table table-noborder"
6
+ data-id="detail-view-table"
7
+ >
8
+ <tbody>
9
+ <tr>
10
+ <td class="left">{{ localization.common.name }}</td>
11
+ <td class="left snapshot-name-label" data-id="vm-snapshot-name">
12
+ {{ detailData.name }}
13
+ </td>
14
+ </tr>
15
+ <tr>
16
+ <td class="left">{{ localization.common.description }}</td>
17
+ <td
18
+ class="left snapshot-name-label"
19
+ data-id="vm-snapshot-description"
20
+ >
21
+ {{ detailData.description }}
22
+ </td>
23
+ </tr>
24
+ <tr>
25
+ <td class="left">{{ localization.common.timestamp }}</td>
26
+ <td class="left snapshot-name-label" data-id="vm-snapshot-timestamp">
27
+ {{ detailData.timestamp }}
28
+ </td>
29
+ </tr>
30
+ <tr>
31
+ <td class="left">{{ localization.common.size }}</td>
32
+ <td class="left snapshot-name-label">{{ detailData.size }}</td>
33
+ </tr>
34
+ <tr>
35
+ <td class="left">
36
+ {{ localization.common.snapshotTheVirtualMachinesMemory }}
37
+ </td>
38
+ <td class="left snapshot-name-label" data-id="vm-snapshot-of-memory">
39
+ {{ detailData.snapshot_the_virtual_machines_memory }}
40
+ </td>
41
+ </tr>
42
+ <tr>
43
+ <td class="left">
44
+ {{ localization.common.quiesceGuestFileSystem }}
45
+ </td>
46
+ <td
47
+ class="left snapshot-name-label"
48
+ data-id="vm-snapshot-file-system"
49
+ >
50
+ {{ detailData.quiesce_guest_file_system }}
51
+ </td>
52
+ </tr>
53
+ </tbody>
54
+ </table>
55
+ </div>
56
+ </template>
57
+
58
+ <script setup lang="ts">
59
+ import type { UI_I_Localization } from '~/lib/models/interfaces'
60
+ import type { UI_I_SnapshotsDetails } from '~/store/inventory/modules/snapshots/lib/models/interfaces'
61
+
62
+ const props = defineProps<{
63
+ detail: UI_I_SnapshotsDetails | null
64
+ }>()
65
+
66
+ const localization = computed<UI_I_Localization>(() => useLocal())
67
+
68
+ const detailData = ref<any | null>(null)
69
+ watch(
70
+ () => props.detail,
71
+ (newValue) => {
72
+ if (!newValue) return
73
+
74
+ detailData.value = newValue
75
+ },
76
+ { immediate: true, deep: true }
77
+ )
78
+ </script>
79
+
80
+ <style scoped lang="scss">
81
+ .detail-view {
82
+ width: 50%;
83
+
84
+ .table {
85
+ .left:not(.snapshot-name-label) {
86
+ width: 320px;
87
+ }
88
+ }
89
+ }
90
+ </style>
@@ -0,0 +1,71 @@
1
+ <template>
2
+ <div class="main-content-snapshots h-full overflow-hidden">
3
+ <common-vm-snapshots-tools
4
+ :snapshots-count="props.snapshotsTree.length"
5
+ :snapshots-loading="props.snapshotsLoading"
6
+ @select="emits('show-modal', $event)"
7
+ />
8
+
9
+ <atoms-loader-pre-loader
10
+ v-show="props.snapshotsLoading"
11
+ id="loader"
12
+ class="snapshots-loading w-full h-full flex items-center justify-center"
13
+ test-id="snapshots-tree-spinner"
14
+ show
15
+ />
16
+ <div class="fill-parent w-full h-full">
17
+ <div
18
+ v-if="props.snapshotsTree.length"
19
+ class="snapshot-view mt-1 flex w-full"
20
+ >
21
+ <common-tree-view
22
+ :loading="props.snapshotsLoading"
23
+ :nodes="props.snapshotsTree"
24
+ @select-node="emits('select-node', $event)"
25
+ @show-nodes="emits('show-nodes', $event)"
26
+ />
27
+ <common-vm-snapshots-detail-view :detail="props.detailData" />
28
+ </div>
29
+ <div v-else class="empty-block flex items-center justify-center w-full">
30
+ {{ localization.common.noSnapshotAvailable }}
31
+ </div>
32
+ </div>
33
+ </div>
34
+ </template>
35
+
36
+ <script setup lang="ts">
37
+ import type { UI_I_Localization } from '~/lib/models/interfaces'
38
+ import type {
39
+ UI_I_SnapshotsDetails,
40
+ UI_I_SnapshotsTreeNode,
41
+ } from '~/store/inventory/modules/snapshots/lib/models/interfaces'
42
+ import type { UI_T_SnapshotActionType } from '~/components/common/vm/snapshots/lib/models/types'
43
+
44
+ const props = defineProps<{
45
+ snapshotsTree: UI_I_SnapshotsTreeNode[]
46
+ snapshotsLoading: boolean
47
+ detailData: UI_I_SnapshotsDetails | null
48
+ }>()
49
+
50
+ const emits = defineEmits<{
51
+ (event: 'show-modal', value: UI_T_SnapshotActionType): void
52
+ (event: 'select-node', value: UI_I_SnapshotsTreeNode): void
53
+ (event: 'show-nodes', value: string): void
54
+ }>()
55
+
56
+ const localization = computed<UI_I_Localization>(() => useLocal())
57
+ </script>
58
+
59
+ <style scoped lang="scss">
60
+ .main-content-snapshots {
61
+ padding: 10px 5px 10px 0;
62
+
63
+ .fill-parent {
64
+ overflow: visible;
65
+
66
+ .snapshot-view {
67
+ height: 90%;
68
+ }
69
+ }
70
+ }
71
+ </style>
@@ -0,0 +1,82 @@
1
+ <template>
2
+ <component
3
+ :is="currentComponent"
4
+ :snapshots-tree="props.snapshotsTree"
5
+ :snapshots-loading="props.snapshotsLoading"
6
+ :detail-data="detailData"
7
+ @show-modal="onShowModal"
8
+ @select-node="onSelectNode"
9
+ @show-nodes="onShowNodes"
10
+ />
11
+ </template>
12
+
13
+ <script setup lang="ts">
14
+ import type { UI_I_Localization } from '~/lib/models/interfaces'
15
+ import type { UI_T_SnapshotActionType } from '~/components/common/vm/snapshots/lib/models/types'
16
+ import type {
17
+ UI_I_SnapshotsDetails,
18
+ UI_I_SnapshotsTreeNode,
19
+ } from '~/store/inventory/modules/snapshots/lib/models/interfaces'
20
+
21
+ const props = defineProps<{
22
+ snapshotsTree: UI_I_SnapshotsTreeNode
23
+ snapshotsLoading: boolean
24
+ }>()
25
+
26
+ const emits = defineEmits<{
27
+ (event: 'select-node', value: UI_I_SnapshotsTreeNode): void
28
+ (event: 'show-nodes', value: string): void
29
+ (event: 'show-modal', value: UI_T_SnapshotActionType): void
30
+ }>()
31
+
32
+ const { $recursion, $store }: any = useNuxtApp()
33
+
34
+ const localization = computed<UI_I_Localization>(() => useLocal())
35
+
36
+ const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
37
+ const currentComponent = computed(() =>
38
+ isNewView.value
39
+ ? defineAsyncComponent(() => import('./new/New.vue'))
40
+ : defineAsyncComponent(() => import('./Old.vue'))
41
+ )
42
+
43
+ const detailData = computed<UI_I_SnapshotsDetails | null>(() => {
44
+ const node: UI_I_SnapshotsTreeNode =
45
+ $recursion.find(props.snapshotsTree, true, 'isActive', 'nodes') || null
46
+
47
+ if (!node) return null
48
+
49
+ let snapshot_the_virtual_machines_memory = ''
50
+ let quiesce_guest_file_system = ''
51
+
52
+ if (isNewView.value) {
53
+ snapshot_the_virtual_machines_memory = node.memory?.enabled ? 'yes' : 'no'
54
+ quiesce_guest_file_system = node.quiesce_fs ? 'yes' : 'no'
55
+ } else {
56
+ snapshot_the_virtual_machines_memory = node.memory?.enabled
57
+ ? localization.value.common.yes
58
+ : localization.value.common.no
59
+ quiesce_guest_file_system = node.quiesce_fs
60
+ ? localization.value.common.yes
61
+ : localization.value.common.no
62
+ }
63
+
64
+ return {
65
+ ...node,
66
+ snapshot_the_virtual_machines_memory,
67
+ quiesce_guest_file_system,
68
+ }
69
+ })
70
+ const onSelectNode = (item: UI_I_SnapshotsTreeNode): void => {
71
+ emits('select-node', item.type === 'location' ? item.parent_id : item.id)
72
+ }
73
+ const onShowNodes = (id: string): void => {
74
+ emits('show-nodes', id)
75
+ }
76
+
77
+ const onShowModal = (action: UI_T_SnapshotActionType): void => {
78
+ emits('show-modal', action)
79
+ }
80
+ </script>
81
+
82
+ <style scoped lang="scss"></style>
@@ -0,0 +1,8 @@
1
+ export type UI_T_SnapshotActionType =
2
+ | 'take'
3
+ | 'edit'
4
+ | 'revert'
5
+ | 'delete'
6
+ | 'delete_all'
7
+ | 'group_take'
8
+ | 'group_delete_all'