bfg-common 1.5.421 → 1.5.423

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 (157) 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_be.json +7 -3
  7. package/assets/localization/local_en.json +12 -8
  8. package/assets/localization/local_hy.json +8 -4
  9. package/assets/localization/local_kk.json +7 -3
  10. package/assets/localization/local_ru.json +12 -8
  11. package/assets/localization/local_zh.json +7 -3
  12. package/assets/scss/common/theme.scss +0 -214
  13. package/components/atoms/TheIcon3.vue +50 -50
  14. package/components/atoms/collapse/CollapseNav.vue +170 -170
  15. package/components/atoms/perPage/PerPage.vue +58 -58
  16. package/components/atoms/table/dataGrid/lib/config/settingsTable.ts +94 -94
  17. package/components/atoms/table/dataGrid/lib/utils/export.ts +16 -16
  18. package/components/common/browse/blocks/contents/filesNew/Skeleton.vue +18 -18
  19. package/components/common/context/lib/models/interfaces.ts +33 -33
  20. package/components/common/diagramMain/modals/lib/config/networkModal.ts +398 -398
  21. package/components/common/layout/theHeader/helpMenu/About.vue +82 -82
  22. package/components/common/pages/backups/Backups.vue +102 -102
  23. package/components/common/pages/backups/DetailView.vue +52 -52
  24. package/components/common/pages/backups/lib/models/interfaces.ts +36 -36
  25. package/components/common/pages/backups/modals/Modals.vue +231 -226
  26. package/components/common/pages/backups/modals/createBackup/CreateBackup.vue +376 -353
  27. package/components/common/pages/backups/modals/createBackup/configuration/Configuration.vue +29 -29
  28. package/components/common/pages/backups/modals/createBackup/configuration/backupWindow/BackupWindow.vue +26 -26
  29. package/components/common/pages/backups/modals/createBackup/configuration/maxBandwidth/MaxBandwidth.vue +66 -66
  30. package/components/common/pages/backups/modals/createBackup/configuration/maxBandwidth/lib/config/options.ts +6 -6
  31. package/components/common/pages/backups/modals/createBackup/configuration/strategy/Strategy.vue +35 -35
  32. package/components/common/pages/backups/modals/createBackup/datastores/Datastores.vue +59 -59
  33. package/components/common/pages/backups/modals/createBackup/datastores/tableView/TableView.vue +95 -95
  34. package/components/common/pages/backups/modals/createBackup/datastores/tableView/lib/config/table.ts +119 -119
  35. package/components/common/pages/backups/modals/createBackup/disks/Disks.vue +2 -2
  36. package/components/common/pages/backups/modals/createBackup/disks/tableView/TableView.vue +7 -4
  37. package/components/common/pages/backups/modals/createBackup/disks/tableView/lib/config/table.ts +117 -117
  38. package/components/common/pages/backups/modals/createBackup/general/General.vue +135 -48
  39. package/components/common/pages/backups/modals/createBackup/lib/config/steps.ts +117 -117
  40. package/components/common/pages/backups/modals/createBackup/lib/config/strategyOptions.ts +12 -12
  41. package/components/common/pages/backups/modals/lib/config/restore.ts +115 -115
  42. package/components/common/pages/backups/modals/lib/models/interfaces.ts +186 -185
  43. package/components/common/pages/backups/modals/restore/Restore.vue +417 -417
  44. package/components/common/pages/backups/modals/restore/disks/Disks.vue +27 -27
  45. package/components/common/pages/backups/modals/restore/disks/tableView/TableView.vue +102 -102
  46. package/components/common/pages/backups/modals/restore/disks/tableView/lib/config/table.ts +117 -117
  47. package/components/common/pages/backups/modals/restore/lib/config/steps.ts +108 -108
  48. package/components/common/pages/backups/modals/restore/name/Name.vue +160 -160
  49. package/components/common/pages/backups/modals/restore/name/lib/models/interfaces.ts +6 -6
  50. package/components/common/pages/backups/modals/restore/networks/Networks.vue +67 -67
  51. package/components/common/pages/backups/modals/restore/networks/table/Table.vue +214 -214
  52. package/components/common/pages/backups/modals/restore/types/lib/config/typeOptions.ts +25 -25
  53. package/components/common/pages/backups/tools/Tools.vue +75 -75
  54. package/components/common/pages/backups/tools/lib/config/tabs.ts +36 -36
  55. package/components/common/pages/home/headline/HeadlineOld.vue +42 -42
  56. package/components/common/pages/home/lib/models/interfaces.ts +48 -48
  57. package/components/common/pages/home/widgets/hosts/Hosts.vue +27 -27
  58. package/components/common/pages/home/widgets/hosts/lib/config/items.ts +23 -23
  59. package/components/common/pages/home/widgets/vms/VmsOld.vue +35 -35
  60. package/components/common/pages/home/widgets/vms/lib/config/items.ts +19 -19
  61. package/components/common/pages/scheduledTasks/lib/utils/utils.ts +84 -84
  62. package/components/common/readyToComplete/ReadyToComplete.vue +17 -17
  63. package/components/common/select/radio/RadioGroup.vue +137 -137
  64. package/components/common/spiceConsole/Drawer.vue +381 -381
  65. package/components/common/spiceConsole/SpiceConsole.vue +127 -127
  66. package/components/common/spiceConsole/lib/models/interfaces.ts +5 -5
  67. package/components/common/split/horizontal/HorizontalNew.vue +22 -5
  68. package/components/common/split/horizontal/HorizontalOld.vue +8 -1
  69. package/components/common/split/vertical/VerticalNew.vue +13 -2
  70. package/components/common/summary/notification/NotificationNew.vue +20 -4
  71. package/components/common/titleBar/titleBarNew/notification/Notification.vue +31 -0
  72. package/components/common/tools/Actions.vue +207 -207
  73. package/components/common/tooltip/Help.vue +14 -1
  74. package/components/common/treeView/TreeView.vue +52 -52
  75. package/components/common/vm/actions/add/New.vue +10 -0
  76. package/components/common/vm/actions/add/folderTreeView/FolderTreeView.vue +72 -72
  77. package/components/common/vm/actions/add/folderTreeView/New.vue +40 -40
  78. package/components/common/vm/actions/clone/Clone.vue +11 -0
  79. package/components/common/vm/actions/clone/lib/config/steps.ts +291 -291
  80. package/components/common/vm/actions/clone/toTemplate/ToTemplate.vue +11 -0
  81. package/components/common/vm/actions/common/customizeHardware/virtualHardware/VirtualHardwareNew.vue +26 -0
  82. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/Media.vue +25 -25
  83. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/MediaNew.vue +78 -70
  84. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/MediaOld.vue +50 -50
  85. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/CpuNew.vue +8 -0
  86. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/shares/Shares.vue +140 -140
  87. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/shares/lib/config/options.ts +28 -28
  88. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/tooltip/TooltipNew.vue +2 -0
  89. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/NewHardDiskNew.vue +15 -0
  90. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/file/FileNew.vue +8 -0
  91. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/location/Location.vue +154 -154
  92. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/location/LocationOld.vue +85 -85
  93. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/maximumSize/MaximumSize.vue +23 -23
  94. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/maximumSize/MaximumSizeNew.vue +8 -0
  95. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/macAddress/MacAddress.vue +119 -119
  96. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/directPathIo/DirectPathIoNew.vue +66 -66
  97. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/directPathIo/DirectPathIoOld.vue +62 -62
  98. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIo.vue +31 -31
  99. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIoOld.vue +76 -76
  100. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/Note.vue +15 -15
  101. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/NoteNew.vue +42 -42
  102. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/NoteOld.vue +30 -30
  103. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/nvidiaGrid/NvidiaGridOld.vue +84 -84
  104. package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/Other.vue +16 -16
  105. package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/inputDevices/InputDevicesNew.vue +10 -0
  106. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/numberDisplays/NumberDisplays.vue +53 -53
  107. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/delay/Delay.vue +32 -32
  108. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/firmware/Firmware.vue +60 -60
  109. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/Order.vue +174 -174
  110. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/keymap/Keymap.vue +32 -32
  111. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/keymap/KeymapOld.vue +44 -44
  112. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/password/Password.vue +103 -103
  113. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirection.vue +28 -28
  114. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirectionOld.vue +44 -44
  115. package/components/common/vm/actions/common/select/compatibility/New.vue +18 -0
  116. package/components/common/vm/actions/common/select/compatibility/Old.vue +107 -107
  117. package/components/common/vm/actions/common/select/computeResource/ComputeResource.vue +143 -143
  118. package/components/common/vm/actions/common/select/computeResource/New.vue +184 -168
  119. package/components/common/vm/actions/common/select/computeResource/treeView/TreeView.vue +131 -131
  120. package/components/common/vm/actions/common/select/createType/CreateType.vue +38 -38
  121. package/components/common/vm/actions/common/select/createType/New.vue +16 -0
  122. package/components/common/vm/actions/common/select/createType/Old.vue +9 -0
  123. package/components/common/vm/actions/common/select/createType/lib/config/items.ts +48 -48
  124. package/components/common/vm/actions/common/select/createType/lib/models/interfaces.ts +5 -5
  125. package/components/common/vm/actions/common/select/name/New.vue +20 -0
  126. package/components/common/vm/actions/common/select/os/New.vue +10 -0
  127. package/components/common/vm/actions/common/select/os/Old.vue +152 -152
  128. package/components/common/vm/actions/common/select/os/Os.vue +139 -139
  129. package/components/common/vm/actions/common/select/storage/new/New.vue +32 -0
  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/common/select/template/old/Old.vue +50 -50
  133. package/components/common/vm/actions/common/select/template/treeView/New.vue +10 -0
  134. package/components/common/vm/actions/editSettings/new/Skeleton.vue +88 -88
  135. package/components/common/vmt/actions/add/Old.vue +10 -0
  136. package/components/common/vmt/actions/add/lib/models/interfaces.ts +23 -23
  137. package/components/common/wizards/datastore/add/steps/nameAndConfigure/_serversList/DeletePopover.vue +8 -0
  138. package/components/common/wizards/datastore/add/steps/nameAndDevice/table/new/New.vue +11 -0
  139. package/components/common/wizards/datastore/add/steps/typeMode/lib/config/typeOptions.ts +43 -43
  140. package/components/common/wizards/network/add/modals/SelectStandardSwitch.vue +17 -6
  141. package/components/common/wizards/network/add/modals/SelectSwitch.vue +17 -6
  142. package/components/common/wizards/vm/migrate/lib/config/steps.ts +157 -157
  143. package/components/common/wizards/vm/migrate/lib/validations.ts +68 -68
  144. package/components/common/wizards/vm/migrate/select/network/Network.vue +103 -103
  145. package/components/common/wizards/vm/migrate/select/type/lib/config/typeOptions.ts +45 -45
  146. package/composables/productNameLocal.ts +30 -30
  147. package/composables/useAppVersion.ts +21 -21
  148. package/package.json +1 -1
  149. package/plugins/date.ts +233 -233
  150. package/plugins/panelStates.ts +70 -70
  151. package/plugins/text.ts +59 -59
  152. package/public/spice-console/lib/images/bitmap.js +203 -203
  153. package/public/spice-console/network/spicechannel.js +390 -390
  154. package/store/main/mutations.ts +7 -7
  155. package/store/main/state.ts +7 -7
  156. package/components/common/pages/backups/modals/createBackup/disks/tableView/lib/models/interfaces.ts +0 -4
  157. package/components/common/wizards/network/add/modals/lib/models/interfaces.ts +0 -21
@@ -1,82 +1,82 @@
1
- <template>
2
- <Teleport to="body">
3
- <common-layout-the-header-help-menu-about-new
4
- v-if="isNewView"
5
- :title="title"
6
- :subtitle="subtitle"
7
- :about-heading-text="aboutHeadingText"
8
- :about-desc-one="aboutDesc1"
9
- :about-desc-second="aboutDesc2"
10
- :project-name="props.projectName"
11
- :url="companyWebSitePath"
12
- @hide="emits('hide')"
13
- />
14
-
15
- <common-layout-the-header-help-menu-about-old
16
- v-else
17
- :title="title"
18
- :subtitle="subtitle"
19
- :about-heading-text="aboutHeadingText"
20
- :about-desc-one="aboutDesc1"
21
- :about-desc-second="aboutDesc2"
22
- :project-name="props.projectName"
23
- :url="companyWebSitePath"
24
- @hide="emits('hide')"
25
- />
26
- </Teleport>
27
- </template>
28
-
29
- <script lang="ts" setup>
30
- import type { UI_I_Localization } from '~/lib/models/interfaces'
31
-
32
- const props = defineProps<{
33
- version: string
34
- projectName: string
35
- }>()
36
- const emits = defineEmits<{
37
- (event: 'hide'): void
38
- }>()
39
-
40
- const localization = computed<UI_I_Localization>(() => useLocal())
41
- const { $store }: any = useNuxtApp()
42
- const config = useRuntimeConfig()
43
-
44
- const companyName = computed<string>(
45
- () => config.public[`COMPANY_NAME_${useEnvLanguage()}`]
46
- )
47
- const brandName = computed<string>(
48
- () => config.public[`TRADEMARK_${useEnvLanguage()}`]
49
- )
50
-
51
- const companyWebSitePath = ref<string>('https://iridium-soft.com/')
52
-
53
- const title = computed<string>(() => `${brandName.value}® ${props.projectName}`)
54
- const subtitle = computed<string>(() =>
55
- localization.value.layout.aboutWebClientVersion
56
- .replace('{0}', props.projectName)
57
- .replace('{1}', props.version)
58
- )
59
-
60
- const aboutHeadingText = computed<string>(() =>
61
- localization.value.layout.aboutHeading.replace(
62
- '{companyName}',
63
- companyName.value
64
- ).replace(
65
- '{year}',
66
- new Date().getFullYear() + ''
67
- )
68
- )
69
-
70
- const aboutDesc1 = computed<string>(() =>
71
- localization.value.layout.aboutDesc1
72
- .replaceAll('{companyName}', companyName.value)
73
- .replaceAll('{trademark}', brandName.value)
74
- )
75
- const aboutDesc2 = computed<string>(() =>
76
- localization.value.layout.aboutDesc2
77
- .replaceAll('{companyName}', companyName.value)
78
- .replaceAll('{trademark}', brandName.value)
79
- )
80
-
81
- const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
82
- </script>
1
+ <template>
2
+ <Teleport to="body">
3
+ <common-layout-the-header-help-menu-about-new
4
+ v-if="isNewView"
5
+ :title="title"
6
+ :subtitle="subtitle"
7
+ :about-heading-text="aboutHeadingText"
8
+ :about-desc-one="aboutDesc1"
9
+ :about-desc-second="aboutDesc2"
10
+ :project-name="props.projectName"
11
+ :url="companyWebSitePath"
12
+ @hide="emits('hide')"
13
+ />
14
+
15
+ <common-layout-the-header-help-menu-about-old
16
+ v-else
17
+ :title="title"
18
+ :subtitle="subtitle"
19
+ :about-heading-text="aboutHeadingText"
20
+ :about-desc-one="aboutDesc1"
21
+ :about-desc-second="aboutDesc2"
22
+ :project-name="props.projectName"
23
+ :url="companyWebSitePath"
24
+ @hide="emits('hide')"
25
+ />
26
+ </Teleport>
27
+ </template>
28
+
29
+ <script lang="ts" setup>
30
+ import type { UI_I_Localization } from '~/lib/models/interfaces'
31
+
32
+ const props = defineProps<{
33
+ version: string
34
+ projectName: string
35
+ }>()
36
+ const emits = defineEmits<{
37
+ (event: 'hide'): void
38
+ }>()
39
+
40
+ const localization = computed<UI_I_Localization>(() => useLocal())
41
+ const { $store }: any = useNuxtApp()
42
+ const config = useRuntimeConfig()
43
+
44
+ const companyName = computed<string>(
45
+ () => config.public[`COMPANY_NAME_${useEnvLanguage()}`]
46
+ )
47
+ const brandName = computed<string>(
48
+ () => config.public[`TRADEMARK_${useEnvLanguage()}`]
49
+ )
50
+
51
+ const companyWebSitePath = ref<string>('https://iridium-soft.com/')
52
+
53
+ const title = computed<string>(() => `${brandName.value}® ${props.projectName}`)
54
+ const subtitle = computed<string>(() =>
55
+ localization.value.layout.aboutWebClientVersion
56
+ .replace('{0}', props.projectName)
57
+ .replace('{1}', props.version)
58
+ )
59
+
60
+ const aboutHeadingText = computed<string>(() =>
61
+ localization.value.layout.aboutHeading.replace(
62
+ '{companyName}',
63
+ companyName.value
64
+ ).replace(
65
+ '{year}',
66
+ new Date().getFullYear() + ''
67
+ )
68
+ )
69
+
70
+ const aboutDesc1 = computed<string>(() =>
71
+ localization.value.layout.aboutDesc1
72
+ .replaceAll('{companyName}', companyName.value)
73
+ .replaceAll('{trademark}', brandName.value)
74
+ )
75
+ const aboutDesc2 = computed<string>(() =>
76
+ localization.value.layout.aboutDesc2
77
+ .replaceAll('{companyName}', companyName.value)
78
+ .replaceAll('{trademark}', brandName.value)
79
+ )
80
+
81
+ const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
82
+ </script>
@@ -1,102 +1,102 @@
1
- <template>
2
- <div class="main-content-backups h-full overflow-hidden">
3
- <common-pages-backups-tools
4
- :project="props.project"
5
- :backups-count="backupsTree.length"
6
- :backups-loading="backupsLoading"
7
- :selected-node="selectedNode"
8
- :target-type="typeFromRoute"
9
- @select="onShowModal"
10
- />
11
-
12
- <atoms-loader-pre-loader
13
- v-show="backupsLoading"
14
- id="loader"
15
- :show="true"
16
- class="backups-loading w-full h-full flex items-center justify-center"
17
- test-id="backups-tree-spinner"
18
- />
19
- <div class="fill-parent w-full h-full">
20
- <div v-if="backupsTree.length" class="backup-view mt-1 flex w-full">
21
- <common-tree-view
22
- :loading="backupsLoading"
23
- :nodes="backupsTree"
24
- @select-node="onSelectNode"
25
- @show-nodes="onShowNodes"
26
- />
27
- <common-pages-backups-detail-view :detail="detailData" />
28
- </div>
29
- <div v-else class="empty-block flex justify-center items-center w-full">
30
- {{ localization.common.noBackupAvailable }}
31
- </div>
32
- </div>
33
- </div>
34
- </template>
35
-
36
- <script setup lang="ts">
37
- import type { UI_T_Project } from '~/lib/models/types'
38
- import type { UI_I_Localization } from '~/lib/models/interfaces'
39
- import type {
40
- UI_T_TargetType,
41
- UI_T_BackupActionType,
42
- } from '~/components/common/pages/backups/lib/models/types'
43
- import type {
44
- UI_I_Backup,
45
- UI_I_BackupsTreeNode,
46
- } from '~/components/common/pages/backups/lib/models/interfaces'
47
-
48
- const props = defineProps<{
49
- project: UI_T_Project
50
- backups: UI_I_Backup[]
51
- backupsTree: UI_I_BackupsTreeNode[]
52
- backupsLoading: boolean
53
- selectedNode: UI_I_BackupsTreeNode
54
- }>()
55
- const emits = defineEmits<{
56
- (event: 'select-node', value: string | number): void
57
- (event: 'show-nodes', value: string | number): void
58
- (event: 'set-action', value: UI_T_BackupActionType): void
59
- }>()
60
-
61
- const localization = computed<UI_I_Localization>(() => useLocal())
62
- const { $recursion }: any = useNuxtApp()
63
-
64
- const typeFromRoute = computed<UI_T_TargetType>(
65
- () => useRoute().params.type.toString() as UI_T_TargetType
66
- )
67
-
68
- const detailData = computed<UI_I_BackupsTreeNode | null>(() => {
69
- const node =
70
- $recursion.find(props.backupsTree, true, 'isActive', 'nodes') || null
71
- return node?.type === 'backup' ? node : null
72
- })
73
-
74
- const onSelectNode = (item: UI_I_BackupsTreeNode): void => {
75
- emits('select-node', item.id)
76
- if (item.type === 'group') {
77
- onShowNodes(item.id.toString())
78
- }
79
- }
80
- const onShowNodes = (id: string | number): void => {
81
- emits('show-nodes', id)
82
- }
83
-
84
- const onShowModal = (action: UI_T_BackupActionType): void => {
85
- emits('set-action', action)
86
- }
87
- </script>
88
-
89
- <style scoped lang="scss">
90
- .main-content-backups {
91
- padding: 10px 5px 10px 0;
92
-
93
- .fill-parent {
94
- overflow: visible;
95
-
96
- .backup-view {
97
- // TODO fix
98
- height: calc(90% - 24px);
99
- }
100
- }
101
- }
102
- </style>
1
+ <template>
2
+ <div class="main-content-backups h-full overflow-hidden">
3
+ <common-pages-backups-tools
4
+ :project="props.project"
5
+ :backups-count="backupsTree.length"
6
+ :backups-loading="backupsLoading"
7
+ :selected-node="selectedNode"
8
+ :target-type="typeFromRoute"
9
+ @select="onShowModal"
10
+ />
11
+
12
+ <atoms-loader-pre-loader
13
+ v-show="backupsLoading"
14
+ id="loader"
15
+ :show="true"
16
+ class="backups-loading w-full h-full flex items-center justify-center"
17
+ test-id="backups-tree-spinner"
18
+ />
19
+ <div class="fill-parent w-full h-full">
20
+ <div v-if="backupsTree.length" class="backup-view mt-1 flex w-full">
21
+ <common-tree-view
22
+ :loading="backupsLoading"
23
+ :nodes="backupsTree"
24
+ @select-node="onSelectNode"
25
+ @show-nodes="onShowNodes"
26
+ />
27
+ <common-pages-backups-detail-view :detail="detailData" />
28
+ </div>
29
+ <div v-else class="empty-block flex justify-center items-center w-full">
30
+ {{ localization.common.noBackupAvailable }}
31
+ </div>
32
+ </div>
33
+ </div>
34
+ </template>
35
+
36
+ <script setup lang="ts">
37
+ import type { UI_T_Project } from '~/lib/models/types'
38
+ import type { UI_I_Localization } from '~/lib/models/interfaces'
39
+ import type {
40
+ UI_T_TargetType,
41
+ UI_T_BackupActionType,
42
+ } from '~/components/common/pages/backups/lib/models/types'
43
+ import type {
44
+ UI_I_Backup,
45
+ UI_I_BackupsTreeNode,
46
+ } from '~/components/common/pages/backups/lib/models/interfaces'
47
+
48
+ const props = defineProps<{
49
+ project: UI_T_Project
50
+ backups: UI_I_Backup[]
51
+ backupsTree: UI_I_BackupsTreeNode[]
52
+ backupsLoading: boolean
53
+ selectedNode: UI_I_BackupsTreeNode
54
+ }>()
55
+ const emits = defineEmits<{
56
+ (event: 'select-node', value: string | number): void
57
+ (event: 'show-nodes', value: string | number): void
58
+ (event: 'set-action', value: UI_T_BackupActionType): void
59
+ }>()
60
+
61
+ const localization = computed<UI_I_Localization>(() => useLocal())
62
+ const { $recursion }: any = useNuxtApp()
63
+
64
+ const typeFromRoute = computed<UI_T_TargetType>(
65
+ () => useRoute().params.type.toString() as UI_T_TargetType
66
+ )
67
+
68
+ const detailData = computed<UI_I_BackupsTreeNode | null>(() => {
69
+ const node =
70
+ $recursion.find(props.backupsTree, true, 'isActive', 'nodes') || null
71
+ return node?.type === 'backup' ? node : null
72
+ })
73
+
74
+ const onSelectNode = (item: UI_I_BackupsTreeNode): void => {
75
+ emits('select-node', item.id)
76
+ if (item.type === 'group') {
77
+ onShowNodes(item.id.toString())
78
+ }
79
+ }
80
+ const onShowNodes = (id: string | number): void => {
81
+ emits('show-nodes', id)
82
+ }
83
+
84
+ const onShowModal = (action: UI_T_BackupActionType): void => {
85
+ emits('set-action', action)
86
+ }
87
+ </script>
88
+
89
+ <style scoped lang="scss">
90
+ .main-content-backups {
91
+ padding: 10px 5px 10px 0;
92
+
93
+ .fill-parent {
94
+ overflow: visible;
95
+
96
+ .backup-view {
97
+ // TODO fix
98
+ height: calc(90% - 24px);
99
+ }
100
+ }
101
+ }
102
+ </style>
@@ -1,52 +1,52 @@
1
- <template>
2
- <div class="detail-view overflow-auto py-0 px-6">
3
- <table v-if="detailData" class="table table-noborder">
4
- <tbody>
5
- <tr>
6
- <td class="left">{{ localization.common.name }}</td>
7
- <td class="left backup-name-label">{{ detailData.name }}</td>
8
- </tr>
9
- <tr>
10
- <td class="left">{{ localization.common.description }}</td>
11
- <td class="left backup-name-label">{{ detailData.description }}</td>
12
- </tr>
13
- <tr>
14
- <td class="left">{{ localization.common.timestamp }}</td>
15
- <td class="left backup-name-label">{{ detailData.timestamp }}</td>
16
- </tr>
17
- </tbody>
18
- </table>
19
- </div>
20
- </template>
21
-
22
- <script setup lang="ts">
23
- import type { UI_I_Localization } from '~/lib/models/interfaces'
24
- import type { UI_I_BackupsTreeNode } from '~/components/common/pages/backups/lib/models/interfaces'
25
-
26
- const props = defineProps<{
27
- detail: UI_I_BackupsTreeNode | null
28
- }>()
29
-
30
- const localization = computed<UI_I_Localization>(() => useLocal())
31
-
32
- const detailData = ref<UI_I_BackupsTreeNode | null>(null)
33
- watch(
34
- () => props.detail,
35
- (newValue) => {
36
- detailData.value = newValue
37
- },
38
- { immediate: true, deep: true }
39
- )
40
- </script>
41
-
42
- <style scoped lang="scss">
43
- .detail-view {
44
- width: 50%;
45
-
46
- .table {
47
- .left:not(.backup-name-label) {
48
- width: 320px;
49
- }
50
- }
51
- }
52
- </style>
1
+ <template>
2
+ <div class="detail-view overflow-auto py-0 px-6">
3
+ <table v-if="detailData" class="table table-noborder">
4
+ <tbody>
5
+ <tr>
6
+ <td class="left">{{ localization.common.name }}</td>
7
+ <td class="left backup-name-label">{{ detailData.name }}</td>
8
+ </tr>
9
+ <tr>
10
+ <td class="left">{{ localization.common.description }}</td>
11
+ <td class="left backup-name-label">{{ detailData.description }}</td>
12
+ </tr>
13
+ <tr>
14
+ <td class="left">{{ localization.common.timestamp }}</td>
15
+ <td class="left backup-name-label">{{ detailData.timestamp }}</td>
16
+ </tr>
17
+ </tbody>
18
+ </table>
19
+ </div>
20
+ </template>
21
+
22
+ <script setup lang="ts">
23
+ import type { UI_I_Localization } from '~/lib/models/interfaces'
24
+ import type { UI_I_BackupsTreeNode } from '~/components/common/pages/backups/lib/models/interfaces'
25
+
26
+ const props = defineProps<{
27
+ detail: UI_I_BackupsTreeNode | null
28
+ }>()
29
+
30
+ const localization = computed<UI_I_Localization>(() => useLocal())
31
+
32
+ const detailData = ref<UI_I_BackupsTreeNode | null>(null)
33
+ watch(
34
+ () => props.detail,
35
+ (newValue) => {
36
+ detailData.value = newValue
37
+ },
38
+ { immediate: true, deep: true }
39
+ )
40
+ </script>
41
+
42
+ <style scoped lang="scss">
43
+ .detail-view {
44
+ width: 50%;
45
+
46
+ .table {
47
+ .left:not(.backup-name-label) {
48
+ width: 320px;
49
+ }
50
+ }
51
+ }
52
+ </style>
@@ -1,36 +1,36 @@
1
- import type { API_UI_I_DataTable } from '~/lib/models/table/interfaces'
2
- import type { UI_I_TreeNode } from '~/components/common/recursionTree/lib/models/interfaces'
3
- import type { UI_T_BackupActionType } from '~/components/common/pages/backups/lib/models/types'
4
-
5
- export interface API_UI_I_Backup {
6
- creation_time: number
7
- creation_type: number
8
- description: string
9
- kind: number // TODO
10
- msg: string
11
- name: string
12
- state: number // TODO
13
- uuid: string
14
- vm_name: string
15
- vmid: string
16
- storage_id: string
17
- storage_name: string
18
- }
19
-
20
- export interface UI_I_Backup extends API_UI_I_Backup {}
21
-
22
- export interface UI_I_BackupsTreeNode
23
- extends UI_I_TreeNode<UI_I_BackupsTreeNode> {
24
- parent_id: string
25
- timestamp: string
26
- description: string
27
- }
28
-
29
- export interface UI_I_BackupAction {
30
- action: UI_T_BackupActionType | ''
31
- id?: string
32
- name?: string
33
- backupId?: string
34
- bucketId?: string
35
- storageId?: string
36
- }
1
+ import type { API_UI_I_DataTable } from '~/lib/models/table/interfaces'
2
+ import type { UI_I_TreeNode } from '~/components/common/recursionTree/lib/models/interfaces'
3
+ import type { UI_T_BackupActionType } from '~/components/common/pages/backups/lib/models/types'
4
+
5
+ export interface API_UI_I_Backup {
6
+ creation_time: number
7
+ creation_type: number
8
+ description: string
9
+ kind: number // TODO
10
+ msg: string
11
+ name: string
12
+ state: number // TODO
13
+ uuid: string
14
+ vm_name: string
15
+ vmid: string
16
+ storage_id: string
17
+ storage_name: string
18
+ }
19
+
20
+ export interface UI_I_Backup extends API_UI_I_Backup {}
21
+
22
+ export interface UI_I_BackupsTreeNode
23
+ extends UI_I_TreeNode<UI_I_BackupsTreeNode> {
24
+ parent_id: string
25
+ timestamp: string
26
+ description: string
27
+ }
28
+
29
+ export interface UI_I_BackupAction {
30
+ action: UI_T_BackupActionType | ''
31
+ id?: string
32
+ name?: string
33
+ backupId?: string
34
+ bucketId?: string
35
+ storageId?: string
36
+ }