Basic app backup import is working

This commit is contained in:
Johannes Zellner
2025-04-29 16:58:36 +02:00
parent 1d61d4dad4
commit 34583c834d
3 changed files with 224 additions and 13 deletions
@@ -8,7 +8,13 @@ import { mountlike, s3like } from '../utils.js';
const provider = defineModel('provider');
const providerConfig = defineModel('providerConfig');
const formError = defineProps(['formError']);
const formError = defineProps({
formError: {},
importOnly: {
type: Boolean,
default: false,
}
});
const systemModel = SystemModel.create();
@@ -156,19 +162,19 @@ onMounted(async () => {
</FormGroup>
<!-- Filesystem -->
<FormGroup v-if="provider === 'filesystem'">
<FormGroup v-if="provider === 'filesystem' && !importOnly">
<label for="backupFolderInput">{{ $t('backups.configureBackupStorage.localDirectory') }}</label>
<TextInput id="backupFolderInput" v-model="providerConfig.backupFolder" placeholder="Directory for backups" required />
</FormGroup>
<!-- Filesystem/SSHFS/CIFS/NFS/EXT4/mountpoint -->
<Checkbox v-if="provider === 'filesystem' || mountlike(provider)" v-model="providerConfig.useHardlinks" :label="$t('backups.configureBackupStorage.hardlinksLabel')"/>
<Checkbox v-if="(provider === 'filesystem' || mountlike(provider)) && !importOnly" v-model="providerConfig.useHardlinks" :label="$t('backups.configureBackupStorage.hardlinksLabel')"/>
<!-- CIFS/mountpoint -->
<Checkbox v-if="provider === 'mountpoint' || provider === 'cifs'" v-model="providerConfig.preserveAttributes" :label="$t('backups.configureBackupStorage.preserveAttributesLabel')"/>
<Checkbox v-if="(provider === 'mountpoint' || provider === 'cifs') && !importOnly" v-model="providerConfig.preserveAttributes" :label="$t('backups.configureBackupStorage.preserveAttributesLabel')"/>
<!-- mountpoint -->
<Checkbox v-if="provider === 'mountpoint'" v-model="providerConfig.chown" :label="$t('backups.configureBackupStorage.chown')"/>
<Checkbox v-if="provider === 'mountpoint' && !importOnly" v-model="providerConfig.chown" :label="$t('backups.configureBackupStorage.chown')"/>
<!-- S3/Minio/SOS/GCS/UpCloud/B2/R2 -->
<FormGroup v-if="provider === 'minio' || provider === 'upcloud-objectstorage' || provider === 'backblaze-b2' || provider === 'cloudflare-r2' || provider === 's3-v4-compat' || provider === 'idrive-e2'">
@@ -183,7 +189,7 @@ onMounted(async () => {
<TextInput id="bucketInput" v-model="providerConfig.bucket" required />
</FormGroup>
<FormGroup v-if="provider !== 'filesystem' && provider !== 'noop'">
<FormGroup v-if="(provider !== 'filesystem' && provider !== 'noop') && !importOnly">
<label for="prefixInput">{{ $t('backups.configureBackupStorage.prefix') }}</label>
<TextInput id="prefixInput" v-model="providerConfig.prefix" placeholder="Prefix for backup file names" />
</FormGroup>