Fixup various state issues in the app archive restore dialog

This commit is contained in:
Johannes Zellner
2025-04-24 20:42:52 +02:00
parent 00ca21243b
commit ff195ad272
2 changed files with 14 additions and 6 deletions

View File

@@ -207,8 +207,10 @@ async function onRestoreSubmit() {
if (error.type === 'externally_exists') {
restoreError.value.dnsInUse = 'Some DNS records exist. Submit again to overwrite.';
restoreNeedsOverwrite.value = true;
} else if (error.body) {
restoreError.value.generic = error.body.message;
} else {
restoreError.value.generic = error.body ? error.body.message : 'Internal error';
restoreError.value.generic = 'Internal error';
console.error(error);
}
restoreBusy.value = false;
@@ -257,9 +259,9 @@ onMounted(async () => {
>
<p v-html="$t('backups.restoreArchiveDialog.description', { appId: restoreManifest.id, fqdn: restoreFqdn, creationTime: prettyLongDate(restoreArchive.creationTime) })"></p>
<div class="text-danger" v-show="restoreError.generic">{{ restoreError.generic }}</div>
<div class="text-danger" v-show="restoreError.dnsInUse">{{ restoreError.dnsInUse }}</div>
<!-- <div ng-show="archiveRestore.error.location.fqdn === archiveRestore.subdomain + '.' + archiveRestore.domain.domain"><small>{{ archiveRestore.error.location.message }}</small></div> -->
<div class="error-label" v-show="restoreError.generic">{{ restoreError.generic }}</div>
<div class="error-label" v-show="restoreError.dnsInUse">{{ restoreError.dnsInUse }}</div>
<div class="error-label" v-show="restoreError.port">{{ restoreError.port }}</div>
<form @submit.prevent="onRestoreSubmit()" autocomplete="off">
<fieldset>
@@ -269,6 +271,7 @@ onMounted(async () => {
<TextInput id="locationInput" ref="locationInput" v-model="restoreLocation" style="flex-grow: 1;" />
<SingleSelect v-model="restoreDomain" :options="domains" option-label="domain" option-key="domain" />
</InputGroup>
<div class="warning-label" v-show="restoreDomainProvider === 'noop' || restoreDomainProvider === 'manual'" v-html="$t('appstore.installDialog.manualWarning', { location: ((location ? location + '.' : '') + domain) })"></div>
</FormGroup>
<FormGroup v-for="(domain, key) in restoreSecondaryDomains" :key="key">
@@ -280,8 +283,6 @@ onMounted(async () => {
</InputGroup>
</FormGroup>
<!-- <div class="warning-label" ng-show="archiveRestore.domain.provider === 'noop' || archiveRestore.domain.provider === 'manual'" ng-bind-html="'appstore.installDialog.manualWarning' | tr:{ location: ((archiveRestore.subdomain ? archiveRestore.subdomain + '.' : '') + archiveRestore.domain.domain) }"></div> -->
<!-- <div class="has-error text-center" ng-show="archiveRestore.error.port">{{ archiveRestore.error.port }}</div> -->
<PortBindings v-model:tcp="restoreTcpPorts" v-model:udp="restoreUdpPorts" :error="restoreError" :domain-provider="restoreDomainProvider"/>
</fieldset>
</form>