summaryrefslogtreecommitdiffstats
path: root/webapp/src/store/groups.js
diff options
context:
space:
mode:
authorUdo Walter2018-07-19 18:15:47 +0200
committerUdo Walter2018-07-19 18:15:47 +0200
commit0b392357a474165134ec7122d1b5fc6d4e9df4cd (patch)
tree14806ce5a85a98db6eaa5687c2db21f61e774efc /webapp/src/store/groups.js
parentmerge (diff)
downloadbas-0b392357a474165134ec7122d1b5fc6d4e9df4cd.tar.gz
bas-0b392357a474165134ec7122d1b5fc6d4e9df4cd.tar.xz
bas-0b392357a474165134ec7122d1b5fc6d4e9df4cd.zip
[webapp/groups] switched from emits to vuex
Diffstat (limited to 'webapp/src/store/groups.js')
-rw-r--r--webapp/src/store/groups.js33
1 files changed, 33 insertions, 0 deletions
diff --git a/webapp/src/store/groups.js b/webapp/src/store/groups.js
new file mode 100644
index 0000000..fca5358
--- /dev/null
+++ b/webapp/src/store/groups.js
@@ -0,0 +1,33 @@
+import axios from 'axios'
+
+export default {
+ namespaced: true,
+ state: {
+ groupChain: [],
+ activeTab: 0
+ },
+ mutations: {
+ updateActiveTab (state, tabIndex) {
+ state.activeTab = tabIndex
+ },
+ addGroup (state, data) {
+ if (state.groupChain.length <= data.tabIndex || state.groupChain[data.tabIndex].id !== data.group.id) {
+ state.groupChain = state.groupChain.slice(0, data.tabIndex)
+ state.groupChain.push(data.group)
+ }
+ state.activeTab = data.tabIndex
+ }
+ },
+ actions: {
+ loadGroup (context, data) {
+ var getSubGroups = axios('/api/groups?action=getSubGroups&id=' + data.id)
+ var getClients = axios('/api/groups?action=getClients&id=' + data.id)
+ axios.all([getSubGroups, getClients]).then(axios.spread((groupRespsonse, clientResponse) => {
+ var group = { id: data.id, name: data.name }
+ group.subGroups = groupRespsonse.data
+ group.clients = clientResponse.data
+ context.commit('addGroup', { group: group, tabIndex: data.tabIndex })
+ }))
+ }
+ }
+}