bfg-common 1.5.447 → 1.5.449

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 (119) 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 +1694 -1694
  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/browse/blocks/Container.vue +235 -235
  14. package/components/common/browse/blocks/contents/filesNew/Skeleton.vue +18 -18
  15. package/components/common/context/lib/models/interfaces.ts +33 -33
  16. package/components/common/diagramMain/modals/lib/config/networkModal.ts +398 -398
  17. package/components/common/diagramMain/modals/lib/config/portModal.ts +251 -251
  18. package/components/common/diagramMain/modals/lib/config/vCenterModal.ts +48 -48
  19. package/components/common/diagramMain/port/Port.vue +580 -580
  20. package/components/common/feedback/Buttons.vue +2 -1
  21. package/components/common/layout/theHeader/helpMenu/About.vue +82 -82
  22. package/components/common/layout/theHeader/modals/reconnect/Reconnect.vue +2 -4
  23. package/components/common/layout/theHeader/modals/reconnect/ReconnectNew.vue +1 -2
  24. package/components/common/layout/theHeader/modals/reconnect/ReconnectOld.vue +1 -2
  25. package/components/common/pages/backups/Backups.vue +102 -102
  26. package/components/common/pages/backups/DetailView.vue +52 -52
  27. package/components/common/pages/backups/lib/models/interfaces.ts +36 -36
  28. package/components/common/pages/backups/modals/createBackup/configuration/Configuration.vue +29 -29
  29. package/components/common/pages/backups/modals/createBackup/configuration/backupWindow/BackupWindow.vue +26 -26
  30. package/components/common/pages/backups/modals/createBackup/configuration/maxBandwidth/MaxBandwidth.vue +66 -66
  31. package/components/common/pages/backups/modals/createBackup/configuration/maxBandwidth/lib/config/options.ts +6 -6
  32. package/components/common/pages/backups/modals/createBackup/configuration/strategy/Strategy.vue +35 -35
  33. package/components/common/pages/backups/modals/createBackup/datastores/Datastores.vue +59 -59
  34. package/components/common/pages/backups/modals/createBackup/datastores/tableView/TableView.vue +95 -95
  35. package/components/common/pages/backups/modals/createBackup/disks/tableView/lib/config/table.ts +117 -117
  36. package/components/common/pages/backups/modals/createBackup/general/General.vue +135 -135
  37. package/components/common/pages/backups/modals/createBackup/lib/config/strategyOptions.ts +12 -12
  38. package/components/common/pages/backups/modals/lib/config/restore.ts +115 -115
  39. package/components/common/pages/backups/modals/lib/models/interfaces.ts +186 -186
  40. package/components/common/pages/backups/modals/restore/disks/Disks.vue +27 -27
  41. package/components/common/pages/backups/modals/restore/disks/tableView/TableView.vue +102 -102
  42. package/components/common/pages/backups/modals/restore/disks/tableView/lib/config/table.ts +117 -117
  43. package/components/common/pages/backups/modals/restore/name/Name.vue +160 -160
  44. package/components/common/pages/backups/modals/restore/name/lib/models/interfaces.ts +6 -6
  45. package/components/common/pages/backups/modals/restore/networks/Networks.vue +67 -67
  46. package/components/common/pages/backups/modals/restore/networks/table/Table.vue +214 -214
  47. package/components/common/pages/backups/modals/restore/types/lib/config/typeOptions.ts +25 -25
  48. package/components/common/pages/backups/tools/Tools.vue +75 -75
  49. package/components/common/pages/backups/tools/lib/config/tabs.ts +36 -36
  50. package/components/common/pages/home/lib/models/interfaces.ts +48 -48
  51. package/components/common/pages/home/widgets/hosts/Hosts.vue +27 -27
  52. package/components/common/pages/home/widgets/hosts/lib/config/items.ts +23 -23
  53. package/components/common/pages/home/widgets/vms/VmsOld.vue +35 -35
  54. package/components/common/pages/home/widgets/vms/lib/config/items.ts +19 -19
  55. package/components/common/pages/scheduledTasks/lib/utils/utils.ts +84 -84
  56. package/components/common/readyToComplete/ReadyToComplete.vue +17 -17
  57. package/components/common/select/radio/RadioGroup.vue +137 -137
  58. package/components/common/spiceConsole/Drawer.vue +381 -381
  59. package/components/common/spiceConsole/SpiceConsole.vue +127 -127
  60. package/components/common/spiceConsole/lib/models/interfaces.ts +5 -5
  61. package/components/common/tools/Actions.vue +207 -207
  62. package/components/common/treeView/TreeView.vue +52 -52
  63. package/components/common/vm/actions/add/folderTreeView/FolderTreeView.vue +72 -72
  64. package/components/common/vm/actions/add/folderTreeView/New.vue +40 -40
  65. package/components/common/vm/actions/common/customizeHardware/virtualHardware/VirtualHardware.vue +7 -1
  66. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/Media.vue +25 -25
  67. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/MediaNew.vue +78 -78
  68. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/MediaOld.vue +50 -50
  69. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/shares/Shares.vue +140 -140
  70. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/shares/lib/config/options.ts +28 -28
  71. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/location/Location.vue +154 -154
  72. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/location/LocationOld.vue +85 -85
  73. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/maximumSize/MaximumSize.vue +23 -23
  74. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/location/new/table/Table.vue +99 -99
  75. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/macAddress/MacAddress.vue +119 -119
  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/videoCard/numberDisplays/NumberDisplays.vue +53 -53
  86. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/delay/Delay.vue +32 -32
  87. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/firmware/Firmware.vue +60 -60
  88. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/Order.vue +174 -174
  89. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/keymap/Keymap.vue +32 -32
  90. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/keymap/KeymapOld.vue +44 -44
  91. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/password/Password.vue +103 -103
  92. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirection.vue +28 -28
  93. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirectionOld.vue +44 -44
  94. package/components/common/vm/actions/common/select/compatibility/Old.vue +107 -107
  95. package/components/common/vm/actions/common/select/computeResource/ComputeResource.vue +143 -143
  96. package/components/common/vm/actions/common/select/computeResource/New.vue +184 -184
  97. package/components/common/vm/actions/common/select/computeResource/treeView/TreeView.vue +131 -131
  98. package/components/common/vm/actions/common/select/createType/CreateType.vue +38 -38
  99. package/components/common/vm/actions/common/select/createType/lib/models/interfaces.ts +5 -5
  100. package/components/common/vm/actions/common/select/os/Old.vue +152 -152
  101. package/components/common/vm/actions/common/select/os/Os.vue +139 -139
  102. package/components/common/vm/actions/common/select/storage/new/New.vue +320 -320
  103. package/components/common/vm/actions/common/select/storage/new/lib/models/interfaces.ts +5 -5
  104. package/components/common/vm/actions/common/select/storage/new/lib/utils/utils.ts +21 -21
  105. package/components/common/vm/actions/common/select/template/old/Old.vue +50 -50
  106. package/components/common/vm/actions/editSettings/new/Skeleton.vue +88 -88
  107. package/components/common/wizards/datastore/add/steps/typeMode/lib/config/typeOptions.ts +43 -43
  108. package/components/common/wizards/vm/migrate/select/network/Network.vue +103 -103
  109. package/components/common/wizards/vm/migrate/select/type/lib/config/typeOptions.ts +45 -45
  110. package/composables/productNameLocal.ts +30 -30
  111. package/composables/useAppVersion.ts +21 -21
  112. package/package.json +1 -1
  113. package/plugins/date.ts +233 -233
  114. package/plugins/panelStates.ts +70 -70
  115. package/plugins/text.ts +59 -59
  116. package/public/spice-console/lib/images/bitmap.js +203 -203
  117. package/public/spice-console/network/spicechannel.js +390 -390
  118. package/store/main/mutations.ts +7 -7
  119. package/store/main/state.ts +7 -7
@@ -52,11 +52,12 @@
52
52
  </template>
53
53
 
54
54
  <script setup lang="ts">
55
+ import type { UI_T_FeedbackType } from '~/components/common/feedback/lib/models/types'
55
56
  import type { UI_I_FeedbackButtonsItem } from './lib/models/interfaces'
56
57
  import type { UI_I_Localization } from '~/lib/models/interfaces'
57
58
 
58
59
  const props = defineProps<{
59
- select: number | null
60
+ select: UI_T_FeedbackType
60
61
  items: UI_I_FeedbackButtonsItem[]
61
62
  }>()
62
63
  const emits = defineEmits<{
@@ -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,7 +1,6 @@
1
1
  <template>
2
2
  <common-layout-the-header-modals-reconnect-new
3
- v-if="isNewView"
4
- :is-show="isShow"
3
+ v-if="isNewView && isShow"
5
4
  :title="title"
6
5
  :timer="timer"
7
6
  :total-time="totalTime"
@@ -9,8 +8,7 @@
9
8
  @reconnect="onReconnect"
10
9
  />
11
10
  <common-layout-the-header-modals-reconnect-old
12
- v-else
13
- :is-show="isShow"
11
+ v-else-if="!isNewView && isShow"
14
12
  :title="title"
15
13
  :timer="timer"
16
14
  :total-time="totalTime"
@@ -1,11 +1,11 @@
1
1
  <template>
2
2
  <ui-modal
3
- :show="props.isShow"
4
3
  :title="props.title"
5
4
  :texts="modalTexts"
6
5
  test-id="reconnect-modal"
7
6
  size="sm"
8
7
  width="560px"
8
+ show
9
9
  @hide="emits('logout')"
10
10
  @submit="emits('reconnect')"
11
11
  >
@@ -36,7 +36,6 @@ import type { UI_I_ModalTexts } from '~/node_modules/bfg-uikit/components/ui/mod
36
36
  import type { UI_I_Localization } from '~/lib/models/interfaces'
37
37
 
38
38
  const props = defineProps<{
39
- isShow: boolean
40
39
  title: string
41
40
  timer: NodeJS.Timer | null
42
41
  totalTime: number
@@ -1,11 +1,11 @@
1
1
  <template>
2
2
  <atoms-modal
3
- :show="props.isShow"
4
3
  :title="props.title"
5
4
  test-id="connection-timeout-reconnect-modal"
6
5
  width="580px"
7
6
  class="connection-timeout"
8
7
  is-hide-close-icon
8
+ show
9
9
  >
10
10
  <template #modalBody>
11
11
  <div class="connection-timeout__body">
@@ -43,7 +43,6 @@
43
43
  import type { UI_I_Localization } from '~/lib/models/interfaces'
44
44
 
45
45
  const props = defineProps<{
46
- isShow: boolean
47
46
  title: string
48
47
  timer: NodeJS.Timer | null
49
48
  totalTime: number
@@ -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
+ }