Share backup provide form between app import and backup storage configuration

This commit is contained in:
Johannes Zellner
2025-04-29 19:50:28 +02:00
parent a8cb0a0e9c
commit e2659c87f4
3 changed files with 155 additions and 431 deletions
+15 -6
View File
@@ -10,6 +10,7 @@ import { REGIONS_CONTABO, REGIONS_VULTR, REGIONS_IONOS, REGIONS_OVH, REGIONS_LIN
const appsModel = AppsModel.create();
const dialog = useTemplateRef('dialog');
const form = useTemplateRef('form');
const backupConfigInput = useTemplateRef('backupConfigInput');
const appId = ref('');
const busy = ref(false);
@@ -19,6 +20,8 @@ const provider = ref('');
const remotePath = ref('');
async function onSubmit() {
if (!form.value.reportValidity()) return;
formError.value = {};
busy.value = true;
@@ -236,13 +239,19 @@ defineExpose({
<div>
<div>{{ $t('app.importBackupDialog.description') }}</div>
<!-- remotePath contains the prefix as well -->
<FormGroup>
<label for="inputRemotePath">{{ $t('app.importBackupDialog.remotePath') }} <sup><a href="https://docs.cloudron.io/backups/#import-app-backup" class="help" target="_blank"><i class="fa fa-question-circle"></i></a></sup></label>
<TextInput id="inputRemotePath" v-model="remotePath" required />
</FormGroup>
<form @submit.prevent="onSubmit()" autocomplete="off" ref="form">
<fieldset :disabled="busy">
<input style="display: none;" type="submit"/>
<BackupProviderForm ref="form" v-model:provider="provider" v-model:provider-config="providerConfig" :form-error="formError" :import-only="true" />
<!-- remotePath contains the prefix as well -->
<FormGroup>
<label for="inputRemotePath">{{ $t('app.importBackupDialog.remotePath') }} <sup><a href="https://docs.cloudron.io/backups/#import-app-backup" class="help" target="_blank"><i class="fa fa-question-circle"></i></a></sup></label>
<TextInput id="inputRemotePath" v-model="remotePath" required />
</FormGroup>
<BackupProviderForm ref="form" v-model:provider="provider" v-model:provider-config="providerConfig" :form-error="formError" :import-only="true" />
</fieldset>
</form>
</div>
</Dialog>
</div>