show the friendly region name
This commit is contained in:
@@ -286,31 +286,31 @@ const REGIONS_CONTABO = [
|
||||
];
|
||||
|
||||
const STORAGE_PROVIDERS = [
|
||||
{ name: 'Amazon S3', value: 's3' },
|
||||
{ name: 'Amazon S3', value: 's3', regions: REGIONS_S3 },
|
||||
{ name: 'Backblaze B2 (S3 API)', value: 'backblaze-b2' },
|
||||
{ name: 'CIFS Mount', value: 'cifs' },
|
||||
{ name: 'Cloudflare R2', value: 'cloudflare-r2' },
|
||||
{ name: 'Contabo Object Storage', value: 'contabo-objectstorage' },
|
||||
{ name: 'DigitalOcean Spaces', value: 'digitalocean-spaces' },
|
||||
{ name: 'Contabo Object Storage', value: 'contabo-objectstorage', regions: REGIONS_CONTABO },
|
||||
{ name: 'DigitalOcean Spaces', value: 'digitalocean-spaces', regions: REGIONS_DIGITALOCEAN },
|
||||
{ name: 'External/Local Disk (EXT4 or XFS)', value: 'disk' },
|
||||
{ name: 'EXT4 Disk', value: 'ext4' },
|
||||
{ name: 'Exoscale SOS', value: 'exoscale-sos' },
|
||||
{ name: 'Exoscale SOS', value: 'exoscale-sos', regions: REGIONS_EXOSCALE },
|
||||
{ name: 'Filesystem', value: 'filesystem' },
|
||||
{ name: 'Filesystem (Mountpoint)', value: 'mountpoint' }, // legacy
|
||||
{ name: 'Google Cloud Storage', value: 'gcs' },
|
||||
{ name: 'Hetzner Object Storage', value: 'hetzner-objectstorage' },
|
||||
{ name: 'Hetzner Object Storage', value: 'hetzner-objectstorage', regions: REGIONS_HETZNER },
|
||||
{ name: 'IDrive e2', value: 'idrive-e2' },
|
||||
{ name: 'IONOS (Profitbricks)', value: 'ionos-objectstorage' },
|
||||
{ name: 'Linode Object Storage', value: 'linode-objectstorage' },
|
||||
{ name: 'IONOS (Profitbricks)', value: 'ionos-objectstorage', regions: REGIONS_IONOS },
|
||||
{ name: 'Linode Object Storage', value: 'linode-objectstorage', regions: REGIONS_LINODE },
|
||||
{ name: 'Minio', value: 'minio' },
|
||||
{ name: 'NFS Mount', value: 'nfs' },
|
||||
{ name: 'OVH Object Storage', value: 'ovh-objectstorage' },
|
||||
{ name: 'OVH Object Storage', value: 'ovh-objectstorage', regions: REGIONS_OVH },
|
||||
{ name: 'S3 API Compatible (v4)', value: 's3-v4-compat' },
|
||||
{ name: 'Scaleway Object Storage', value: 'scaleway-objectstorage' },
|
||||
{ name: 'Scaleway Object Storage', value: 'scaleway-objectstorage', regions: REGIONS_SCALEWAY },
|
||||
{ name: 'SSHFS Mount', value: 'sshfs' },
|
||||
{ name: 'UpCloud Object Storage', value: 'upcloud-objectstorage' },
|
||||
{ name: 'Vultr Object Storage', value: 'vultr-objectstorage' },
|
||||
{ name: 'Wasabi', value: 'wasabi' },
|
||||
{ name: 'Vultr Object Storage', value: 'vultr-objectstorage', regions: REGIONS_VULTR },
|
||||
{ name: 'Wasabi', value: 'wasabi', regions: REGIONS_WASABI },
|
||||
{ name: 'XFS Disk', value: 'xfs' },
|
||||
];
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
|
||||
import { prettyBinarySize } from '@cloudron/pankow/utils';
|
||||
import { ISTATES } from './constants.js';
|
||||
import { ISTATES, STORAGE_PROVIDERS } from './constants.js';
|
||||
|
||||
// https://stackoverflow.com/questions/3665115/how-to-create-a-file-in-memory-for-user-to-download-but-not-through-server#18197341
|
||||
function download(filename, text) {
|
||||
@@ -29,6 +29,15 @@ function s3like(provider) {
|
||||
|| provider === 'contabo-objectstorage';
|
||||
}
|
||||
|
||||
function regionName(provider, endpoint) {
|
||||
const storageProvider = STORAGE_PROVIDERS.find(sp => sp.value === provider);
|
||||
const regions = storageProvider.regions;
|
||||
if (!regions) return endpoint;
|
||||
const region = regions.find(r => r.value === endpoint);
|
||||
if (!region) return endpoint;
|
||||
return region.name;
|
||||
}
|
||||
|
||||
function eventlogDetails(eventLog, app = null, appIdContext = '') {
|
||||
const ACTION_ACTIVATE = 'cloudron.activate';
|
||||
const ACTION_PROVISION = 'cloudron.provision';
|
||||
@@ -610,6 +619,7 @@ export {
|
||||
download,
|
||||
mountlike,
|
||||
s3like,
|
||||
regionName,
|
||||
eventlogDetails,
|
||||
eventlogSource,
|
||||
taskNameFromInstallationState,
|
||||
@@ -623,6 +633,7 @@ export default {
|
||||
download,
|
||||
mountlike,
|
||||
s3like,
|
||||
regionName,
|
||||
eventlogDetails,
|
||||
eventlogSource,
|
||||
taskNameFromInstallationState,
|
||||
|
||||
@@ -16,7 +16,7 @@ import { TASK_TYPES } from '../constants.js';
|
||||
import BackupSitesModel from '../models/BackupSitesModel.js';
|
||||
import ProfileModel from '../models/ProfileModel.js';
|
||||
import TasksModel from '../models/TasksModel.js';
|
||||
import { mountlike, s3like } from '../utils.js';
|
||||
import { regionName, mountlike } from '../utils.js';
|
||||
|
||||
const profileModel = ProfileModel.create();
|
||||
const tasksModel = TasksModel.create();
|
||||
@@ -231,14 +231,19 @@ onMounted(async () => {
|
||||
<div><b style="font-size: 16px">{{ site.name }}</b></div>
|
||||
<div>
|
||||
<i v-if="site.encrypted" class="fa-solid fa-lock"></i>
|
||||
{{ site.provider }}/{{ site.format }} @
|
||||
{{ site.provider }}/{{ site.format }}
|
||||
<span v-if="site.provider === 'filesystem' || mountlike(site.provider)">
|
||||
({{ site.config.noHardlinks ? 'no hardlinks' : 'hardlinks' }})
|
||||
</span>
|
||||
</div>
|
||||
<div>
|
||||
<span v-if="site.provider === 'filesystem'">{{ site.config.backupDir }}{{ (site.config.prefix ? `/${site.config.prefix}` : '') }}</span>
|
||||
<span v-else-if="site.provider === 'disk' || site.provider === 'ext4' || site.provider === 'xfs' || site.provider === 'mountpoint'">{{ site.config.mountOptions.diskPath || site.config.mountPoint }}{{ (site.config.prefix ? `/${site.config.prefix}` : '') }}</span>
|
||||
<span v-else-if="site.provider === 'cifs' || site.provider === 'nfs' || site.provider === 'sshfs'">{{ site.config.mountOptions.host }}:{{ site.config.mountOptions.remoteDir }}{{ (site.config.prefix ? `/${site.config.prefix}` : '') }}</span>
|
||||
<span v-else-if="site.provider === 's3'">{{ site.config.region + ' ' + site.config.bucket + (site.config.prefix ? `/${site.config.prefix}` : '') }}</span>
|
||||
<span v-else-if="site.provider === 'minio'">{{ site.config.endpoint + ' ' + site.config.bucket + (site.config.prefix ? `/${site.config.prefix}` : '') }}</span>
|
||||
<span v-else-if="site.provider === 'gcs'">{{ site.config.endpoint + ' ' + site.config.bucket + (site.config.prefix ? `/${site.config.prefix}` : '') }}</span>
|
||||
<span v-else>{{ site.config.bucket + (site.config.prefix ? `/${site.config.prefix}` : '') }}</span>
|
||||
<span v-else>{{ regionName(site.provider, site.config.endpoint) + ' ' + site.config.bucket + (site.config.prefix ? `/${site.config.prefix}` : '') }}</span>
|
||||
</div>
|
||||
|
||||
<div class="backup-site-task">
|
||||
|
||||
Reference in New Issue
Block a user