This saves a direct request to the server when loading the backup codes. There is no need for this as the data is already known. Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>pull/13481/head
parent
53c077afc9
commit
0971232050
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -1,9 +1,15 @@ |
||||
import Vue from 'vue'; |
||||
import PersonalSettings from './views/PersonalSettings'; |
||||
import store from './store'; |
||||
|
||||
Vue.prototype.t = t; |
||||
|
||||
export default new Vue({ |
||||
el: '#twofactor-backupcodes-settings', |
||||
render: h => h(PersonalSettings) |
||||
}); |
||||
const initialStateElem = JSON.parse(atob(document.getElementById('twofactor-backupcodes-initial-state').value)); |
||||
store.replaceState( |
||||
initialStateElem |
||||
) |
||||
|
||||
const View = Vue.extend(PersonalSettings) |
||||
new View({ |
||||
store |
||||
}).$mount('#twofactor-backupcodes-settings') |
||||
|
||||
@ -0,0 +1,69 @@ |
||||
/* |
||||
* @copyright 2019 Roeland Jago Douma <roeland@famdouma.nl> |
||||
* |
||||
* @author 2019 Roeland Jago Douma <roeland@famdouma.nl> |
||||
* |
||||
* @license GNU AGPL version 3 or any later version |
||||
* |
||||
* This program is free software: you can redistribute it and/or modify |
||||
* it under the terms of the GNU Affero General Public License as |
||||
* published by the Free Software Foundation, either version 3 of the |
||||
* License, or (at your option) any later version. |
||||
* |
||||
* This program is distributed in the hope that it will be useful, |
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||
* GNU Affero General Public License for more details. |
||||
* |
||||
* You should have received a copy of the GNU Affero General Public License |
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/ |
||||
|
||||
import Vue from 'vue' |
||||
import Vuex from 'vuex' |
||||
|
||||
import {generateCodes} from './service/BackupCodesService' |
||||
|
||||
Vue.use(Vuex) |
||||
|
||||
export const mutations = { |
||||
setEnabled(state, enabled) { |
||||
Vue.set(state, 'enabled', enabled) |
||||
}, |
||||
setTotal(state, total) { |
||||
Vue.set(state, 'total', total) |
||||
}, |
||||
setUsed(state, used) { |
||||
Vue.set(state, 'used', used) |
||||
}, |
||||
setCodes(state, codes) { |
||||
Vue.set(state, 'codes', codes) |
||||
} |
||||
} |
||||
|
||||
export const actions = { |
||||
generate ({commit}) { |
||||
commit('setEnabled', false); |
||||
|
||||
return generateCodes() |
||||
.then(({codes, state}) => { |
||||
commit('setEnabled', state.enabled); |
||||
commit('setTotal', state.total); |
||||
commit('setUsed', state.used); |
||||
commit('setCodes', codes); |
||||
return true; |
||||
}); |
||||
} |
||||
} |
||||
|
||||
export default new Vuex.Store({ |
||||
strict: process.env.NODE_ENV !== 'production', |
||||
state: { |
||||
enabled: false, |
||||
total: 0, |
||||
used: 0, |
||||
codes: undefined |
||||
}, |
||||
mutations, |
||||
actions |
||||
}) |
||||
Loading…
Reference in new issue