Ver código fonte

Add initial download backup support

pull/38/head
Kristijan Mitrovic 4 anos atrás
pai
commit
004d9fc02b
3 arquivos alterados com 65 adições e 21 exclusões
  1. +9
    -0
      src/_services/network.service.js
  2. +18
    -1
      src/_store/networks.module.js
  3. +38
    -20
      src/account/NetworkPage.vue

+ 9
- 0
src/_services/network.service.js Ver arquivo

@@ -19,6 +19,7 @@ export const networkService = {
deleteNetwork,
requestNetworkKeys,
retrieveNetworkKeys,
retrieveBackupPackage,
getNetworkBackups,
getLogFlag, enableLog, disableLog
};
@@ -88,6 +89,14 @@ function retrieveNetworkKeys(userId, networkId, code, password, messages, errors
.then(netKeyObj => netKeyObj.data)
.then(util.handleDataToDownloadAsFile('restore.' + networkId + '.key', 'text/plain'));
}
function retrieveBackupPackage(userId, networkId, code, password, backupId, messages, errors) {
return fetch(
`${config.apiUrl}/users/${userId}/networks/${networkId}/actions/keys/${code}/backups/${backupId}/download`,
util.postWithAuth({ name: 'password', value: password })
).then(util.handleCrudResponse(messages, errors))
.then(netKeyObj => netKeyObj.data)
.then(util.handleDataToDownloadAsFile('restore.' + networkId + '.key', 'text/plain'));
}

function getNetworkBackups(userId, networkId, messages, errors) {
return fetch(`${config.apiUrl}/users/${userId}/networks/${networkId}/backups`, util.getWithAuth())


+ 18
- 1
src/_store/networks.module.js Ver arquivo

@@ -155,6 +155,13 @@ const actions = {
error => commit('retrieveNetworkKeysFailure', error));
},

retrieveLatestBackupPackage({ commit }, {userId, networkId, code, password, messages, errors}) {
commit('retrieveLatestBackupPackageRequest');
networkService.retrieveBackupPackage(userId, networkId, code, password, state.backups[0].uuid, messages, errors)
.then(ok => commit('retrieveLatestBackupPackageSuccess'),
error => commit('retrieveLatestBackupPackageFailure', error));
},

getLogFlag({ commit }, { networkId, messages, errors }) {
commit('getLogFlagRequest');
networkService.getLogFlag(networkId, messages, errors)
@@ -330,7 +337,6 @@ const mutations = {
state.loading.requestNetworkKeys = false;
state.error = { error };
},

retrieveNetworkKeysRequest(state) {
state.loading.retrieveNetworkKeys = true;
state.networkKeysRequested = null;
@@ -342,6 +348,17 @@ const mutations = {
state.loading.retrieveNetworkKeys = false;
state.error = { error };
},
retrieveLatestBackupPackageRequest(state) {
state.loading.retrieveNetworkKeys = true;
state.networkKeysRequested = null;
},
retrieveLatestBackupPackageSuccess(state) {
state.loading.retrieveNetworkKeys = false;
},
retrieveLatestBackupPackageFailure(state, error) {
state.loading.retrieveNetworkKeys = false;
state.error = { error };
},
getNetworkBackupsRequest(state, backups) {
state.backups = null;
},


+ 38
- 20
src/account/NetworkPage.vue Ver arquivo

@@ -70,7 +70,7 @@
<hr/>
</div>

<button class="btn btn-secondary" @click="requestRestoreKey()"
<button class="btn btn-primary" @click="requestRestoreKey()"
:disabled="loading && loading.requestNetworkKeys">
{{messages.link_network_action_request_keys}}
</button>
@@ -79,30 +79,36 @@
<div v-if="networkKeysRequested && networkKeysRequested === networkId">{{messages.message_network_action_keys_requested}}</div>
<hr />
<h5>{{messages.message_network_action_retrieve_keys}}</h5>
<form @submit.prevent="retrieveRestoreKey()">
<div class="form-group">
<label for="restoreKeyCode">{{messages.field_network_key_download_code}}</label>
<input type="text" v-model="restoreKeyCode" v-validate="'required'" name="restoreKeyCode" class="form-control" :class="{ 'is-invalid': errors.has('retrieveNetworkKeys') }" />
<div v-if="errors.has('retrieveNetworkKeys')" class="invalid-feedback">{{ errors.first('retrieveNetworkKeys') }}</div>
</div>
<div class="form-group">
<label for="restoreKeyPassword">{{messages.field_network_key_download_password}}</label>
<input type="password" v-model="restoreKeyPassword" v-validate="'required'" name="restoreKeyPassword"
class="form-control" :class="{ 'is-invalid': errors.has('password') }"
:autofocus="this.$route.query.hasOwnProperty('keys_code')"/>
<div v-if="errors.has('password')" class="invalid-feedback">{{ errors.first('password') }}</div>
</div>
<button class="btn btn-secondary" :disabled="loading && loading.retrieveNetworkKeys">
{{ messages.button_label_retrieve_keys }}
<div class="form-group">
<label for="restoreKeyCode">{{messages.field_network_key_download_code}}</label>
<input type="text" v-model="restoreKeyCode" v-validate="'required'" name="restoreKeyCode" class="form-control" :class="{ 'is-invalid': errors.has('retrieveNetworkKeys') }" />
<div v-if="errors.has('retrieveNetworkKeys')" class="invalid-feedback">{{ errors.first('retrieveNetworkKeys') }}</div>
</div>
<div class="form-group">
<label for="restoreKeyPassword">{{messages.field_network_key_download_password}}</label>
<input type="password" v-model="restoreKeyPassword" v-validate="'required'" name="restoreKeyPassword"
class="form-control" :class="{ 'is-invalid': errors.has('password') }"
:autofocus="this.$route.query.hasOwnProperty('keys_code')"/>
<div v-if="errors.has('password')" class="invalid-feedback">{{ errors.first('password') }}</div>
</div>
<button @click="retrieveRestoreKey()" class="btn btn-primary"
:disabled="loading && loading.retrieveNetworkKeys">
{{ messages.button_label_retrieve_keys }}
</button>
<span v-if="backups && backups.length > 0">
{{ messages.label_or }}
<button @click="retrieveFullBackup()" class="btn btn-primary"
:disabled="loading && loading.retrieveNetworkKeys">
{{ messages.button_label_download_backup }}
</button>
<img v-show="loading && loading.retrieveNetworkKeys" :src="loadingImgSrc" />
</form>
</span>
<img v-show="loading && loading.retrieveNetworkKeys" :src="loadingImgSrc" />

<span v-html="latestBackupInfoHtml"></span>

<span v-if="allowQueueBackup">
<br/>
<button @click="queueBckup()" class="btn btn-secondary" :disabled="loading && loading.queueBackup">
<button @click="queueBckup()" class="btn btn-primary" :disabled="loading && loading.queueBackup">
{{ messages.link_backup_network }}
</button>
</span>
@@ -279,7 +285,8 @@
...mapActions('networks', [
'getNetworkById', 'deleteNetwork', 'getStatusesByNetworkId', 'getNodesByNetworkId',
'stopNetwork', 'queueBackup', 'restoreNetwork', 'deleteNetwork', 'requestNetworkKeys',
'retrieveNetworkKeys', 'getBackups', 'resetRestoreKey', 'getLogFlag', 'disableLog', 'enableLog'
'retrieveNetworkKeys', 'getBackups', 'resetRestoreKey', 'getLogFlag', 'disableLog', 'enableLog',
'retrieveLatestBackupPackage'
]),
...mapActions('system', ['getAppLinks', 'loadSystemConfigs', 'checkForUpgrade', 'upgrade']),
refreshStatus (userId) {
@@ -387,6 +394,17 @@
errors: this.errors
});
},
retrieveFullBackup () {
this.errors.clear();
this.retrieveLatestBackupPackage({
userId: this.user.uuid,
networkId: this.networkId,
code: this.restoreKeyCode,
password: this.restoreKeyPassword,
messages: this.messages,
errors: this.errors
});
},
disableLogs () {
this.errors.clear();
this.disableLog({ networkId: this.networkId, messages: this.messages, errors: this.errors });


Carregando…
Cancelar
Salvar