|
|
|
@ -128,46 +128,54 @@
|
|
|
|
|
<button class="btn btn-primary me-2" type="button" @click="$refs.TwoFADialog.show()">{{ $t("2FA Settings") }}</button>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<h2 class="mt-5 mb-2">{{ $t("Import/Export Backup") }}</h2>
|
|
|
|
|
<h2 class="mt-5 mb-2">{{ $t("Export Backup") }}</h2>
|
|
|
|
|
|
|
|
|
|
<p>
|
|
|
|
|
{{ $t("backupDescription") }} <br />
|
|
|
|
|
({{ $t("backupDescription2") }}) <br />
|
|
|
|
|
</p>
|
|
|
|
|
|
|
|
|
|
<div class="input-group mb-2">
|
|
|
|
|
<button class="btn btn-outline-primary" @click="downloadBackup">{{ $t("Export") }}</button>
|
|
|
|
|
<button type="button" class="btn btn-outline-primary" :disabled="processing" @click="confirmImport">
|
|
|
|
|
<div v-if="processing" class="spinner-border spinner-border-sm me-1"></div>
|
|
|
|
|
{{ $t("Import") }}
|
|
|
|
|
</button>
|
|
|
|
|
<input id="importBackup" type="file" class="form-control" accept="application/json">
|
|
|
|
|
<div class="d-flex mb-2 justify-content-center">
|
|
|
|
|
<button class="btn btn-primary" @click="downloadBackup">{{ $t("Export") }}</button>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<p><strong>{{ $t("backupDescription3") }}</strong></p>
|
|
|
|
|
|
|
|
|
|
<h2 class="mt-5 mb-2">{{ $t("Import Backup") }}</h2>
|
|
|
|
|
|
|
|
|
|
<label class="form-label">{{ $t("Import Options") }}:</label>
|
|
|
|
|
<br>
|
|
|
|
|
<div class="form-check form-check-inline">
|
|
|
|
|
<input v-model="importHandle" class="form-check-input" type="radio" name="radioImportHandle" id="radioKeep" value="keep">
|
|
|
|
|
<input id="radioKeep" v-model="importHandle" class="form-check-input" type="radio" name="radioImportHandle" value="keep">
|
|
|
|
|
<label class="form-check-label" for="radioKeep">{{ $t("Keep both") }}</label>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="form-check form-check-inline">
|
|
|
|
|
<input v-model="importHandle" class="form-check-input" type="radio" name="radioImportHandle" id="radioSkip" value="skip">
|
|
|
|
|
<input id="radioSkip" v-model="importHandle" class="form-check-input" type="radio" name="radioImportHandle" value="skip">
|
|
|
|
|
<label class="form-check-label" for="radioSkip">{{ $t("Skip existing") }}</label>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="form-check form-check-inline">
|
|
|
|
|
<input v-model="importHandle" class="form-check-input" type="radio" name="radioImportHandle" id="radioOverwrite" value="overwrite">
|
|
|
|
|
<input id="radioOverwrite" v-model="importHandle" class="form-check-input" type="radio" name="radioImportHandle" value="overwrite">
|
|
|
|
|
<label class="form-check-label" for="radioOverwrite">{{ $t("Overwrite") }}</label>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="form-text mb-2">
|
|
|
|
|
{{ $t("importHandleDescription") }}
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<div class="mb-2">
|
|
|
|
|
<input id="importBackup" type="file" class="form-control" accept="application/json">
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<div class="input-group mb-2 justify-content-end">
|
|
|
|
|
<button type="button" class="btn btn-outline-primary" :disabled="processing" @click="confirmImport">
|
|
|
|
|
<div v-if="processing" class="spinner-border spinner-border-sm me-1"></div>
|
|
|
|
|
{{ $t("Import") }}
|
|
|
|
|
</button>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<div v-if="importAlert" class="alert alert-danger mt-3" style="padding: 6px 16px;">
|
|
|
|
|
{{ importAlert }}
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<p><strong>{{ $t("backupDescription3") }}</strong></p>
|
|
|
|
|
|
|
|
|
|
<h2 class="mt-5 mb-2">{{ $t("Advanced") }}</h2>
|
|
|
|
|
|
|
|
|
|
<div class="mb-3">
|
|
|
|
|