Files
vuefilemanager/resources/js/store/modules/teams.js

68 lines
1.5 KiB
JavaScript
Vendored

import router from "../../router";
import {events} from "../../bus";
import i18n from "../../i18n";
import axios from "axios";
const defaultState = {
currentTeamFolder: undefined,
}
const actions = {
getTeamFolder: ({commit, getters}, id) => {
commit('LOADING_STATE', {loading: true, data: []})
if (typeof id === 'undefined') {
commit('SET_CURRENT_TEAM_FOLDER', null)
}
axios
.get(`${getters.api}/teams/folders/${id}/${getters.sorting.URI}`)
.then(response => {
let folders = response.data.folders.data
let files = response.data.files.data
commit('LOADING_STATE', {loading: false, data: folders.concat(files)})
commit('SET_CURRENT_FOLDER', response.data.root)
if (! getters.currentTeamFolder || getters.currentTeamFolder.data.id !== response.data.teamFolder.data.id) {
commit('SET_CURRENT_TEAM_FOLDER', response.data.teamFolder)
}
events.$emit('scrollTop')
})
.catch(error => {
// Redirect if unauthenticated
if ([401, 403].includes(error.response.status)) {
commit('SET_AUTHORIZED', false)
router.push({name: 'SignIn'})
} else {
// Show error message
events.$emit('alert:open', {
title: i18n.t('popup_error.title'),
message: i18n.t('popup_error.message'),
})
}
})
},
}
const mutations = {
SET_CURRENT_TEAM_FOLDER(state, payload) {
state.currentTeamFolder = payload
}
}
const getters = {
currentTeamFolder: state => state.currentTeamFolder,
}
export default {
state: defaultState,
getters,
actions,
mutations
}