mirror of
https://github.com/VueFileManager/vuefilemanager.git
synced 2026-04-18 08:12:15 +00:00
68 lines
1.5 KiB
JavaScript
Vendored
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
|
|
} |