|
|
@@ -24,15 +24,29 @@ |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
|
|
|
|
<div class="form-group"> |
|
|
|
<label htmlFor="restoreLongNetworkKeyFile">{{ messages.field_label_restore_long_key }}</label> |
|
|
|
<input type="file" ref="restoreLongNetworkKeyFile" @change="readUploadedKeyFile" |
|
|
|
class="form-control" :class="{ 'is-invalid': submitted && !restoreLongNetworkKey }" /> |
|
|
|
<div v-show="submitted && !restoreLongNetworkKey" class="invalid-feedback"> |
|
|
|
{{ messages.err_restoreLongNetworkKey_required }} |
|
|
|
<div style="border: 2px solid #000;"> |
|
|
|
<div class="form-group"> |
|
|
|
<label htmlFor="restoreLongNetworkKeyFile">{{ messages.field_label_restore_long_key }}</label> |
|
|
|
<input type="file" ref="restoreLongNetworkKeyFile" @change="readUploadedKeyFile" |
|
|
|
class="form-control" :class="{ 'is-invalid': fileFieldsConstaintFailed }" /> |
|
|
|
<div v-if="submitted && errors.has('restoreLongNetworkKey')" class="invalid-feedback d-block"> |
|
|
|
{{ errors.first('restoreLongNetworkKey') }} |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
{{ messages.label_or }} |
|
|
|
<div class="form-group"> |
|
|
|
<label htmlFor="restoreBackupPackageFile"> |
|
|
|
{{ messages.field_label_restore_backup_package }} |
|
|
|
</label> |
|
|
|
<input type="file" ref="restoreBackupPackageFile" @change="setBackupFileForUpload" |
|
|
|
class="form-control" :class="{ 'is-invalid': fileFieldsConstaintFailed }" /> |
|
|
|
<div v-if="submitted && errors.has('restoreLongNetworkKey')" class="invalid-feedback d-block"> |
|
|
|
{{ errors.first('restoreLongNetworkKey') }} |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
<div v-if="submitted && errors.has('restoreLongNetworkKey')" class="invalid-feedback d-block"> |
|
|
|
{{ errors.first('restoreLongNetworkKey') }} |
|
|
|
|
|
|
|
<div v-show="fileFieldsConstaintFailed" class="invalid-feedback"> |
|
|
|
{{ messages.err_restoreFile_constraint }} |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
|
|
|
@@ -68,6 +82,7 @@ export default { |
|
|
|
return { |
|
|
|
restoreShortKey: (this.$route.query && this.$route.query.k) ? this.$route.query.k : null, |
|
|
|
restoreLongNetworkKey: null, |
|
|
|
restoreBackupPackageFileRef: null, |
|
|
|
password: '', |
|
|
|
submitted: false, |
|
|
|
loadingImgSrc: loadingImgSrc |
|
|
@@ -78,25 +93,40 @@ export default { |
|
|
|
}, |
|
|
|
computed: { |
|
|
|
...mapState('account', [ 'status' ]), |
|
|
|
...mapState('system', [ 'configs', 'messages' ]) |
|
|
|
...mapState('system', [ 'configs', 'messages' ]), |
|
|
|
fileFieldsConstaintFailed() { |
|
|
|
// only and exactly 1 file may be uploaded - either file including long network key, or full backup package |
|
|
|
return this.submitted && ((!this.restoreLongNetworkKey && !this.restoreBackupPackageFileRef) |
|
|
|
|| (this.restoreLongNetworkKey && this.restoreBackupPackageFileRef)) |
|
|
|
} |
|
|
|
}, |
|
|
|
methods: { |
|
|
|
...mapActions('account', [ 'restore' ]), |
|
|
|
...mapActions('account', [ 'restore', 'restoreFromPackage' ]), |
|
|
|
...mapActions('system', [ 'loadSystemConfigs' ]), |
|
|
|
handleSubmit (e) { |
|
|
|
this.errors.clear(); |
|
|
|
const { restoreShortKey, password } = this; |
|
|
|
this.submitted = true; |
|
|
|
this.restore({ |
|
|
|
shortKey: restoreShortKey, longKey: this.restoreLongNetworkKey, password: password, |
|
|
|
systemConfigs: this.configs, messages: this.messages, errors: this.errors |
|
|
|
}); |
|
|
|
if (this.restoreLongNetworkKey) { |
|
|
|
this.restore({ |
|
|
|
shortKey: restoreShortKey, longKey: this.restoreLongNetworkKey, password: password, |
|
|
|
systemConfigs: this.configs, messages: this.messages, errors: this.errors |
|
|
|
}); |
|
|
|
} else { |
|
|
|
this.restoreFromPackage({ |
|
|
|
shortKey: restoreShortKey, backupFileRef: this.restoreBackupPackageFileRef, password: password, |
|
|
|
systemConfigs: this.configs, messages: this.messages, errors: this.errors |
|
|
|
}); |
|
|
|
} |
|
|
|
}, |
|
|
|
readUploadedKeyFile() { |
|
|
|
var uploadedFile = this.$refs.restoreLongNetworkKeyFile.files[0]; |
|
|
|
var reader = new FileReader(); |
|
|
|
reader.onload = (event) => this.restoreLongNetworkKey = event.target.result; |
|
|
|
reader.readAsText(uploadedFile); |
|
|
|
}, |
|
|
|
setBackupFileForUpload() { |
|
|
|
this.restoreBackupPackageFileRef = this.$refs.restoreBackupPackageFile.files[0]; |
|
|
|
} |
|
|
|
} |
|
|
|
}; |
|
|
|