浏览代码

Add restore network UI elements

pull/8/head
父节点
当前提交
17057ab525
共有 3 个文件被更改,包括 51 次插入5 次删除
  1. +6
    -0
      src/_services/network.service.js
  2. +21
    -1
      src/_store/networks.module.js
  3. +24
    -4
      src/account/NetworkPage.vue

+ 6
- 0
src/_services/network.service.js 查看文件

@@ -14,6 +14,7 @@ export const networkService = {
getStatusesByNetworkId,
getNodesByNetworkId,
stopNetwork,
restoreNetwork,
deleteNetwork,
requestNetworkKeys,
retrieveNetworkKeys
@@ -58,6 +59,11 @@ function stopNetwork(userId, networkId, messages, errors) {
return fetch(`${config.apiUrl}/users/${userId}/networks/${networkId}/actions/stop`, util.postWithAuth()).then(util.handleCrudResponse(messages, errors));
}

function restoreNetwork(userId, networkId, messages, errors) {
return fetch(`${config.apiUrl}/users/${userId}/networks/${networkId}/actions/restore`,
util.postWithAuth()).then(util.handleCrudResponse(messages, errors));
}

// deleting network is not allowed via API, instead we delete the AccountPlan, which in turn deletes the network
function deleteNetwork(userId, networkId, messages, errors) {
return fetch(`${config.apiUrl}/users/${userId}/plans/${networkId}`, util.deleteWithAuth()).then(util.handleCrudResponse(messages, errors));


+ 21
- 1
src/_store/networks.module.js 查看文件

@@ -8,7 +8,7 @@ import { util } from '../_helpers';

const state = {
loading: {
networks: false, network: false, deleting: false,
networks: false, network: false, stopping: false, restoring: false, deleting: false,
nearestRegions: false, startingNetwork: false, networkStatuses: false, networkNodes: false,
requestNetworkKeys: false, retrieveNetworkKeys: false
},
@@ -95,6 +95,15 @@ const actions = {
);
},

restoreNetwork({ commit }, { userId, networkId, messages, errors }) {
commit('restoreNetworkRequest', networkId);
networkService.restoreNetwork(userId, networkId, messages, errors)
.then(
network => commit('restoreNetworkSuccess', network),
error => commit('restoreNetworkFailure', { networkId, error: error.toString() })
);
},

deleteNetwork({ commit }, {userId, networkId, messages, errors}) {
commit('deleteNetworkRequest', networkId);
networkService.deleteNetwork(userId, networkId, messages, errors)
@@ -212,6 +221,17 @@ const mutations = {
state.error = error;
},

restoreNetworkRequest(state, id) {
state.loading.restoring = true;
},
restoreNetworkSuccess(state, id) {
state.loading.restoring = false;
},
restoreNetworkFailure(state, { id, error }) {
state.loading.restoring = false;
state.error = error;
},

deleteNetworkRequest(state, id) {
state.loading.deleting = true;
},


+ 24
- 4
src/account/NetworkPage.vue 查看文件

@@ -90,10 +90,21 @@
</div>
</div>

<hr/>

<div v-if="network.state === 'stopped'">
<!-- todo: add button to restart network in restore mode -->
<hr/>
<div v-if="errors.has('networkRestore')" class="invalid-feedback d-block">
{{ errors.first('networkRestore') }}
</div>

<div v-if="networkNodes && networkNodes.length === 0">
<button @click="restoreNet()" class="btn btn-primary" :disabled="loading && loading.restoring">
{{ messages.button_label_restore }}
</button>
<img v-show="loading && loading.restoring" :src="loadingImgSrc" />
{{ messages.button_description_restore }}
</div>
<div v-else v-html="messages.restore_not_possible_nodes_exist_html" />

</div>

<div v-if="configs.sageLauncher && (network.state === 'running' || network.state === 'starting' || network.state === 'stopped' || network.state === 'error_stopping')">
@@ -147,7 +158,7 @@
methods: {
...mapActions('networks', [
'getNetworkById', 'deleteNetwork', 'getStatusesByNetworkId', 'getNodesByNetworkId',
'stopNetwork', 'deleteNetwork', 'requestNetworkKeys', 'retrieveNetworkKeys'
'stopNetwork', 'restoreNetwork', 'deleteNetwork', 'requestNetworkKeys', 'retrieveNetworkKeys'
]),
refreshStatus (userId) {
this.getNetworkById({userId: userId, networkId: this.networkId, messages: this.messages, errors: this.errors});
@@ -178,6 +189,15 @@
errors: this.errors
});
},
restoreNet () {
this.errors.clear();
this.restoreNetwork({
userId: this.user.uuid,
networkId: this.networkId,
messages: this.messages,
errors: this.errors
});
},
deleteNet () {
this.errors.clear();
this.deleteNetwork({


正在加载...
取消
保存