Added import options

This commit is contained in:
Ponkhy
2021-09-11 21:53:17 +02:00
parent 6caae725f9
commit 7fee4a7ea7
5 changed files with 111 additions and 46 deletions

View File

@@ -127,14 +127,33 @@
({{ $t("backupDescription2") }}) <br />
</p>
<div class="input-group mb-3">
<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="importBackup">
<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>
<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">
<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">
<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">
<label class="form-check-label" for="radioOverwrite">{{ $t("Overwrite") }}</label>
</div>
<div class="form-text mb-2">
{{ $t("importHandleDescription") }}
</div>
<div v-if="importAlert" class="alert alert-danger mt-3" style="padding: 6px 16px;">
{{ importAlert }}
</div>
@@ -259,6 +278,9 @@
<Confirm ref="confirmClearStatistics" btn-style="btn-danger" :yes-text="$t('Yes')" :no-text="$t('No')" @yes="clearStatistics">
{{ $t("confirmClearStatisticsMsg") }}
</Confirm>
<Confirm ref="confirmImport" btn-style="btn-danger" :yes-text="$t('Yes')" :no-text="$t('No')" @yes="importBackup">
{{ $t("confirmImportMsg") }}
</Confirm>
</div>
</transition>
</template>
@@ -297,6 +319,7 @@ export default {
},
loaded: false,
importAlert: null,
importHandle: "skip",
processing: false,
}
},
@@ -363,6 +386,10 @@ export default {
this.$refs.confirmClearStatistics.show();
},
confirmImport() {
this.$refs.confirmImport.show();
},
disableAuth() {
this.settings.disableAuth = true;
this.saveSettings();
@@ -408,7 +435,7 @@ export default {
fileReader.readAsText(uploadItem.item(0));
fileReader.onload = item => {
this.$root.uploadBackup(item.target.result, (res) => {
this.$root.uploadBackup(item.target.result, this.importHandle, (res) => {
this.processing = false;
if (res.ok) {