summaryrefslogblamecommitdiffstats
path: root/webapp/src/store/groups.js
blob: fca5358c82f8d5d5e999eaf2c5cfbc852ef6e0e4 (plain) (tree)
































                                                                                                             
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 })
      }))
    }
  }
}