mirror of
https://github.com/VueFileManager/vuefilemanager.git
synced 2026-04-05 18:23:48 +00:00
130 lines
4.1 KiB
JavaScript
Vendored
130 lines
4.1 KiB
JavaScript
Vendored
import router from '../../router'
|
|
import { events } from '../../bus'
|
|
import i18n from '../../i18n'
|
|
import axios from 'axios'
|
|
import Vue from 'vue'
|
|
|
|
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 || 'all'}${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'),
|
|
})
|
|
}
|
|
})
|
|
},
|
|
getSharedWithMeFolder: ({ commit, getters }, id) => {
|
|
commit('LOADING_STATE', { loading: true, data: [] })
|
|
|
|
if (typeof id === 'undefined') {
|
|
commit('SET_CURRENT_TEAM_FOLDER', null)
|
|
}
|
|
|
|
axios
|
|
.get(`${getters.api}/teams/shared-with-me/${id || 'all'}${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'),
|
|
})
|
|
}
|
|
})
|
|
},
|
|
getTeamFolderTree: ({ commit, getters }) => {
|
|
return new Promise((resolve, reject) => {
|
|
axios
|
|
.get(`/api/teams/folders/${getters.currentTeamFolder.data.id}/tree${getters.sorting.URI}`)
|
|
.then((response) => {
|
|
resolve(response)
|
|
|
|
commit('UPDATE_FOLDER_TREE', response.data)
|
|
})
|
|
.catch((error) => {
|
|
reject(error)
|
|
|
|
Vue.prototype.$isSomethingWrong()
|
|
})
|
|
})
|
|
},
|
|
}
|
|
|
|
const mutations = {
|
|
SET_CURRENT_TEAM_FOLDER(state, payload) {
|
|
state.currentTeamFolder = payload
|
|
},
|
|
}
|
|
|
|
const getters = {
|
|
currentTeamFolder: (state) => state.currentTeamFolder,
|
|
}
|
|
|
|
export default {
|
|
state: defaultState,
|
|
getters,
|
|
actions,
|
|
mutations,
|
|
}
|