diff --git a/dashboard/src/components/BackupSiteConfigDialog.vue b/dashboard/src/components/BackupSiteConfigDialog.vue index 006fff2a9..9ee9fbcb2 100644 --- a/dashboard/src/components/BackupSiteConfigDialog.vue +++ b/dashboard/src/components/BackupSiteConfigDialog.vue @@ -3,7 +3,7 @@ import { ref, useTemplateRef, watch } from 'vue'; import { MaskedInput, Dialog, FormGroup, TextInput, Checkbox } from '@cloudron/pankow'; import { prettyBinarySize } from '@cloudron/pankow/utils'; -import { s3like, mountlike, regionName } from '../utils.js'; +import { s3like, mountlike, prettySiteLocation } from '../utils.js'; import BackupSitesModel from '../models/BackupSitesModel.js'; import SystemModel from '../models/SystemModel.js'; @@ -205,15 +205,7 @@ defineExpose({ -
- {{ site.config.backupDir }}{{ (site.config.prefix ? `/${site.config.prefix}` : '') }} - {{ site.config.mountOptions.diskPath || site.config.mountPoint }}{{ (site.config.prefix ? `/${site.config.prefix}` : '') }} - {{ site.config.mountOptions.host }}:{{ site.config.mountOptions.remoteDir }}{{ (site.config.prefix ? `/${site.config.prefix}` : '') }} - {{ site.config.region + ' ' + site.config.bucket + (site.config.prefix ? `/${site.config.prefix}` : '') }} - {{ site.config.endpoint + ' ' + site.config.bucket + (site.config.prefix ? `/${site.config.prefix}` : '') }} - {{ site.config.endpoint + ' ' + site.config.bucket + (site.config.prefix ? `/${site.config.prefix}` : '') }} - {{ regionName(site.provider, site.config.endpoint) + ' ' + site.config.bucket + (site.config.prefix ? `/${site.config.prefix}` : '') }} -
+
{{ prettySiteLocation(site) }}
diff --git a/dashboard/src/utils.js b/dashboard/src/utils.js index 6e827f1e8..e4986a8d4 100644 --- a/dashboard/src/utils.js +++ b/dashboard/src/utils.js @@ -43,6 +43,30 @@ function regionName(provider, endpoint) { return region.name; } +function prettySiteLocation(site) { + switch (site.provider) { + case 'filesystem': + return site.config.backupDir + (site.config.prefix ? `/${site.config.prefix}` : ''); + case 'disk': + case 'ext4': + case 'xfs': + case 'mountpoint': + return (site.config.mountOptions.diskPath || site.config.mountPoint) + (site.config.prefix ? ` / ${site.config.prefix}` : ''); + case 'cifs': + case 'nfs': + case 'sshfs': + return site.config.mountOptions.host + ':' + site.config.mountOptions.remoteDir + (site.config.prefix ? ` / ${site.config.prefix}` : ''); + case 's3': + return site.config.region + ' / ' + site.config.bucket + (site.config.prefix ? ` / ${site.config.prefix}` : ''); + case 'minio': + return site.config.endpoint + ' / ' + site.config.bucket + (site.config.prefix ? ` / ${site.config.prefix}` : ''); + case 'gcs': + return site.config.endpoint + ' / ' + site.config.bucket + (site.config.prefix ? ` / ${site.config.prefix}` : ''); + default: + return regionName(site.provider, site.config.endpoint) + ' / ' + site.config.bucket + (site.config.prefix ? ` / ${site.config.prefix}` : ''); + } +} + function eventlogDetails(eventLog, app = null, appIdContext = '') { const ACTION_ACTIVATE = 'cloudron.activate'; const ACTION_PROVISION = 'cloudron.provision'; @@ -721,7 +745,6 @@ export { download, mountlike, s3like, - regionName, eventlogDetails, eventlogSource, taskNameFromInstallationState, @@ -733,7 +756,8 @@ export { cronHours, getColor, prettySchedule, - parseSchedule + parseSchedule, + prettySiteLocation }; // default export @@ -742,7 +766,6 @@ export default { download, mountlike, s3like, - regionName, eventlogDetails, eventlogSource, taskNameFromInstallationState, @@ -754,5 +777,6 @@ export default { cronHours, getColor, prettySchedule, - parseSchedule + parseSchedule, + prettySiteLocation }; diff --git a/dashboard/src/views/BackupSitesView.vue b/dashboard/src/views/BackupSitesView.vue index 9376b38e6..27e4817e3 100644 --- a/dashboard/src/views/BackupSitesView.vue +++ b/dashboard/src/views/BackupSitesView.vue @@ -17,7 +17,7 @@ import SystemBackupList from '../components/SystemBackupList.vue'; import { TASK_TYPES } from '../constants.js'; import BackupSitesModel from '../models/BackupSitesModel.js'; import TasksModel from '../models/TasksModel.js'; -import { prettySchedule, regionName } from '../utils.js'; +import { prettySchedule, prettySiteLocation } from '../utils.js'; const profile = inject('profile'); @@ -290,15 +290,7 @@ onMounted(async () => {
Storage: {{ site.provider }} ({{ site.format }}) - at - {{ site.config.backupDir }}{{ (site.config.prefix ? `/${site.config.prefix}` : '') }} - {{ site.config.mountOptions.diskPath || site.config.mountPoint }}{{ (site.config.prefix ? `/${site.config.prefix}` : '') }} - {{ site.config.mountOptions.host }}:{{ site.config.mountOptions.remoteDir }}{{ (site.config.prefix ? `/${site.config.prefix}` : '') }} - {{ site.config.region + ' ' + site.config.bucket + (site.config.prefix ? `/${site.config.prefix}` : '') }} - {{ site.config.endpoint + ' ' + site.config.bucket + (site.config.prefix ? `/${site.config.prefix}` : '') }} - {{ site.config.endpoint + ' ' + site.config.bucket + (site.config.prefix ? `/${site.config.prefix}` : '') }} - {{ regionName(site.provider, site.config.endpoint) + ' ' + site.config.bucket + (site.config.prefix ? `/${site.config.prefix}` : '') }} - + at {{ prettySiteLocation(site) }}