mirror of
https://github.com/VueFileManager/vuefilemanager.git
synced 2026-05-21 12:35:01 +00:00
split code to components, add arrow functions
This commit is contained in:
+253
-228
@@ -1,245 +1,270 @@
|
||||
import i18n from '@/i18n/index'
|
||||
import router from '@/router'
|
||||
import {events} from '@/bus'
|
||||
import {last} from 'lodash'
|
||||
import axios from 'axios'
|
||||
import i18n from "@/i18n/index";
|
||||
import router from "@/router";
|
||||
import { events } from "@/bus";
|
||||
import { last } from "lodash";
|
||||
import axios from "axios";
|
||||
|
||||
const actions = {
|
||||
moveItem: ({commit, getters, dispatch}, [item_from, to_item]) => {
|
||||
moveItem: ({ commit, getters, dispatch }, [item_from, to_item]) => {
|
||||
// Get route
|
||||
let route =
|
||||
getters.sharedDetail && !getters.sharedDetail.protected
|
||||
? "/api/move/" +
|
||||
item_from.unique_id +
|
||||
"/public/" +
|
||||
router.currentRoute.params.token
|
||||
: "/api/move/" + item_from.unique_id;
|
||||
|
||||
// Get route
|
||||
let route = getters.sharedDetail && ! getters.sharedDetail.protected
|
||||
? '/api/move/' + item_from.unique_id + '/public/' + router.currentRoute.params.token
|
||||
: '/api/move/' + item_from.unique_id
|
||||
axios
|
||||
.patch(route, {
|
||||
from_type: item_from.type,
|
||||
to_unique_id: to_item.unique_id,
|
||||
})
|
||||
.then(() => {
|
||||
commit("REMOVE_ITEM", item_from.unique_id);
|
||||
commit("INCREASE_FOLDER_ITEM", to_item.unique_id);
|
||||
|
||||
axios
|
||||
.patch(route, {
|
||||
from_type: item_from.type,
|
||||
to_unique_id: to_item.unique_id
|
||||
})
|
||||
.then(() => {
|
||||
commit('REMOVE_ITEM', item_from.unique_id)
|
||||
commit('INCREASE_FOLDER_ITEM', to_item.unique_id)
|
||||
if (
|
||||
item_from.type === "folder" &&
|
||||
getters.currentFolder.location !== "public"
|
||||
)
|
||||
dispatch("getAppData");
|
||||
})
|
||||
.catch(() => isSomethingWrong());
|
||||
},
|
||||
createFolder: ({ commit, getters, dispatch }, folderName) => {
|
||||
// Get route
|
||||
let route =
|
||||
getters.sharedDetail && !getters.sharedDetail.protected
|
||||
? "/api/create-folder/public/" + router.currentRoute.params.token
|
||||
: "/api/create-folder";
|
||||
|
||||
if (item_from.type === 'folder' && getters.currentFolder.location !== 'public')
|
||||
dispatch('getAppData')
|
||||
axios
|
||||
.post(route, {
|
||||
parent_id: getters.currentFolder.unique_id,
|
||||
name: folderName,
|
||||
})
|
||||
.then((response) => {
|
||||
commit("ADD_NEW_FOLDER", response.data);
|
||||
|
||||
})
|
||||
.catch(() => isSomethingWrong())
|
||||
},
|
||||
createFolder: ({commit, getters, dispatch}, folderName) => {
|
||||
events.$emit("scrollTop");
|
||||
|
||||
// Get route
|
||||
let route = getters.sharedDetail && ! getters.sharedDetail.protected
|
||||
? '/api/create-folder/public/' + router.currentRoute.params.token
|
||||
: '/api/create-folder'
|
||||
|
||||
axios
|
||||
.post(route, {
|
||||
parent_id: getters.currentFolder.unique_id,
|
||||
name: folderName
|
||||
})
|
||||
.then(response => {
|
||||
commit('ADD_NEW_FOLDER', response.data)
|
||||
|
||||
events.$emit('scrollTop')
|
||||
|
||||
if ( getters.currentFolder.location !== 'public' ) {
|
||||
dispatch('getAppData')
|
||||
}
|
||||
})
|
||||
.catch(() => isSomethingWrong())
|
||||
},
|
||||
renameItem: ({commit, getters, dispatch}, data) => {
|
||||
|
||||
// Updated name in favourites panel
|
||||
if (getters.permission === 'master' && data.type === 'folder')
|
||||
commit('UPDATE_NAME_IN_FAVOURITES', data)
|
||||
|
||||
// Get route
|
||||
let route = getters.sharedDetail && ! getters.sharedDetail.protected
|
||||
? '/api/rename-item/' + data.unique_id + '/public/' + router.currentRoute.params.token
|
||||
: '/api/rename-item/' + data.unique_id
|
||||
|
||||
axios
|
||||
.patch(route, {
|
||||
name: data.name,
|
||||
type: data.type,
|
||||
})
|
||||
.then(response => {
|
||||
commit('CHANGE_ITEM_NAME', response.data)
|
||||
|
||||
if (data.type === 'folder' && getters.currentFolder.location !== 'public')
|
||||
dispatch('getAppData')
|
||||
})
|
||||
.catch(() => isSomethingWrong())
|
||||
},
|
||||
uploadFiles: ({commit, getters}, {form, fileSize, totalUploadedSize}) => {
|
||||
return new Promise((resolve, reject) => {
|
||||
|
||||
// Get route
|
||||
let route = getters.sharedDetail && ! getters.sharedDetail.protected
|
||||
? '/api/upload/public/' + router.currentRoute.params.token
|
||||
: '/api/upload'
|
||||
|
||||
axios
|
||||
.post(route, form, {
|
||||
headers: {
|
||||
'Content-Type': 'application/octet-stream'
|
||||
},
|
||||
onUploadProgress: event => {
|
||||
|
||||
var percentCompleted = Math.floor(((totalUploadedSize + event.loaded) / fileSize) * 100)
|
||||
|
||||
commit('UPLOADING_FILE_PROGRESS', percentCompleted >= 100 ? 100 : percentCompleted)
|
||||
|
||||
if (percentCompleted >= 100) {
|
||||
commit('PROCESSING_FILE', true)
|
||||
}
|
||||
}
|
||||
})
|
||||
.then(response => {
|
||||
commit('PROCESSING_FILE', false)
|
||||
|
||||
// Check if user is in uploading folder, if yes, than show new file
|
||||
if (response.data.folder_id == getters.currentFolder.unique_id)
|
||||
commit('ADD_NEW_ITEMS', response.data)
|
||||
|
||||
resolve(response)
|
||||
})
|
||||
.catch(error => {
|
||||
commit('PROCESSING_FILE', false)
|
||||
|
||||
reject(error)
|
||||
|
||||
switch (error.response.status) {
|
||||
case 423:
|
||||
events.$emit('alert:open', {
|
||||
emoji: '😬',
|
||||
title: i18n.t('popup_exceed_limit.title'),
|
||||
message: i18n.t('popup_exceed_limit.message')
|
||||
})
|
||||
break;
|
||||
case 413:
|
||||
events.$emit('alert:open', {
|
||||
emoji: '😟',
|
||||
title: i18n.t('popup_paylod_error.title'),
|
||||
message: i18n.t('popup_paylod_error.message')
|
||||
})
|
||||
break;
|
||||
default:
|
||||
events.$emit('alert:open', {
|
||||
title: i18n.t('popup_error.title'),
|
||||
message: i18n.t('popup_error.message'),
|
||||
})
|
||||
break;
|
||||
}
|
||||
|
||||
// Reset uploader
|
||||
commit('UPDATE_FILE_COUNT_PROGRESS', undefined)
|
||||
})
|
||||
})
|
||||
},
|
||||
restoreItem: ({commit, getters}, item) => {
|
||||
|
||||
let restoreToHome = false
|
||||
|
||||
// Check if file can be restored to home directory
|
||||
if (getters.currentFolder.location === 'trash')
|
||||
restoreToHome = true
|
||||
|
||||
// Remove file
|
||||
commit('REMOVE_ITEM', item.unique_id)
|
||||
|
||||
// Remove file preview
|
||||
commit('CLEAR_FILEINFO_DETAIL')
|
||||
|
||||
axios
|
||||
.patch(getters.api + '/restore-item/' + item.unique_id, {
|
||||
type: item.type,
|
||||
to_home: restoreToHome,
|
||||
})
|
||||
.catch(() => isSomethingWrong())
|
||||
},
|
||||
deleteItem: ({commit, getters, dispatch}, data) => {
|
||||
|
||||
// Remove file
|
||||
commit('REMOVE_ITEM', data.unique_id)
|
||||
|
||||
// Remove item from sidebar
|
||||
if (getters.permission === 'master') {
|
||||
|
||||
if (data.type === 'folder')
|
||||
commit('REMOVE_ITEM_FROM_FAVOURITES', data)
|
||||
if (getters.currentFolder.location !== "public") {
|
||||
dispatch("getAppData");
|
||||
}
|
||||
})
|
||||
.catch(() => isSomethingWrong());
|
||||
},
|
||||
renameItem: ({ commit, getters, dispatch }, data) => {
|
||||
// Updated name in favourites panel
|
||||
if (getters.permission === "master" && data.type === "folder")
|
||||
commit("UPDATE_NAME_IN_FAVOURITES", data);
|
||||
|
||||
// Get route
|
||||
let route =
|
||||
getters.sharedDetail && !getters.sharedDetail.protected
|
||||
? "/api/rename-item/" +
|
||||
data.unique_id +
|
||||
"/public/" +
|
||||
router.currentRoute.params.token
|
||||
: "/api/rename-item/" + data.unique_id;
|
||||
|
||||
axios
|
||||
.patch(route, {
|
||||
name: data.name,
|
||||
type: data.type,
|
||||
})
|
||||
.then((response) => {
|
||||
commit("CHANGE_ITEM_NAME", response.data);
|
||||
|
||||
if (
|
||||
data.type === "folder" &&
|
||||
getters.currentFolder.location !== "public"
|
||||
)
|
||||
dispatch("getAppData");
|
||||
})
|
||||
.catch(() => isSomethingWrong());
|
||||
},
|
||||
uploadFiles: ({ commit, getters }, { form, fileSize, totalUploadedSize }) => {
|
||||
return new Promise((resolve, reject) => {
|
||||
// Get route
|
||||
let route =
|
||||
getters.sharedDetail && !getters.sharedDetail.protected
|
||||
? "/api/upload/public/" + router.currentRoute.params.token
|
||||
: "/api/upload";
|
||||
|
||||
axios
|
||||
.post(route, form, {
|
||||
headers: {
|
||||
"Content-Type": "application/octet-stream",
|
||||
},
|
||||
onUploadProgress: (event) => {
|
||||
var percentCompleted = Math.floor(
|
||||
((totalUploadedSize + event.loaded) / fileSize) * 100
|
||||
);
|
||||
|
||||
commit(
|
||||
"UPLOADING_FILE_PROGRESS",
|
||||
percentCompleted >= 100 ? 100 : percentCompleted
|
||||
);
|
||||
|
||||
if (percentCompleted >= 100) {
|
||||
commit("PROCESSING_FILE", true);
|
||||
}
|
||||
},
|
||||
})
|
||||
.then((response) => {
|
||||
commit("PROCESSING_FILE", false);
|
||||
|
||||
// Check if user is in uploading folder, if yes, than show new file
|
||||
if (response.data.folder_id == getters.currentFolder.unique_id)
|
||||
commit("ADD_NEW_ITEMS", response.data);
|
||||
|
||||
resolve(response);
|
||||
})
|
||||
.catch((error) => {
|
||||
commit("PROCESSING_FILE", false);
|
||||
|
||||
reject(error);
|
||||
|
||||
switch (error.response.status) {
|
||||
case 423:
|
||||
events.$emit("alert:open", {
|
||||
emoji: "😬",
|
||||
title: i18n.t("popup_exceed_limit.title"),
|
||||
message: i18n.t("popup_exceed_limit.message"),
|
||||
});
|
||||
break;
|
||||
case 413:
|
||||
events.$emit("alert:open", {
|
||||
emoji: "😟",
|
||||
title: i18n.t("popup_paylod_error.title"),
|
||||
message: i18n.t("popup_paylod_error.message"),
|
||||
});
|
||||
break;
|
||||
default:
|
||||
events.$emit("alert:open", {
|
||||
title: i18n.t("popup_error.title"),
|
||||
message: i18n.t("popup_error.message"),
|
||||
});
|
||||
break;
|
||||
}
|
||||
|
||||
// Reset uploader
|
||||
commit("UPDATE_FILE_COUNT_PROGRESS", undefined);
|
||||
});
|
||||
});
|
||||
},
|
||||
restoreItem: ({ commit, getters }, item) => {
|
||||
let restoreToHome = false;
|
||||
|
||||
// Check if file can be restored to home directory
|
||||
if (getters.currentFolder.location === "trash") restoreToHome = true;
|
||||
|
||||
// Remove file
|
||||
commit("REMOVE_ITEM", item.unique_id);
|
||||
|
||||
// Remove file preview
|
||||
commit("CLEAR_FILEINFO_DETAIL");
|
||||
|
||||
axios
|
||||
.patch(getters.api + "/restore-item/" + item.unique_id, {
|
||||
type: item.type,
|
||||
to_home: restoreToHome,
|
||||
})
|
||||
.catch(() => isSomethingWrong());
|
||||
},
|
||||
deleteItem: ({ commit, getters, dispatch }, data) => {
|
||||
if (data) {
|
||||
//ADD BY M
|
||||
// Remove file
|
||||
commit("REMOVE_ITEM", data.unique_id);
|
||||
|
||||
// Remove item from sidebar
|
||||
if (getters.permission === "master") {
|
||||
if (data.type === "folder") commit("REMOVE_ITEM_FROM_FAVOURITES", data);
|
||||
}
|
||||
|
||||
// Remove file preview
|
||||
commit("CLEAR_FILEINFO_DETAIL");
|
||||
|
||||
// Get route
|
||||
let route =
|
||||
getters.sharedDetail && !getters.sharedDetail.protected
|
||||
? "/api/remove-item/" +
|
||||
data.unique_id +
|
||||
"/public/" +
|
||||
router.currentRoute.params.token
|
||||
: "/api/remove-item/" + data.unique_id;
|
||||
|
||||
axios
|
||||
.delete(route, {
|
||||
data: {
|
||||
type: data.type,
|
||||
force_delete: data.deleted_at ? true : false,
|
||||
},
|
||||
})
|
||||
.then(() => {
|
||||
// If is folder, update app data
|
||||
if (data.type === "folder") {
|
||||
if (data.unique_id === getters.currentFolder.unique_id) {
|
||||
if (getters.currentFolder.location === "public") {
|
||||
dispatch("browseShared", [
|
||||
{
|
||||
folder: last(getters.browseHistory),
|
||||
back: true,
|
||||
init: false,
|
||||
},
|
||||
]);
|
||||
} else {
|
||||
dispatch("getFolder", [
|
||||
{
|
||||
folder: last(getters.browseHistory),
|
||||
back: true,
|
||||
init: false,
|
||||
},
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
if (getters.currentFolder.location !== "public")
|
||||
dispatch("getAppData");
|
||||
}
|
||||
})
|
||||
.catch(() => isSomethingWrong());
|
||||
}
|
||||
},
|
||||
emptyTrash: ({ commit, getters }) => {
|
||||
// Clear file browser
|
||||
commit("LOADING_STATE", { loading: true, data: [] });
|
||||
|
||||
axios
|
||||
.delete(getters.api + "/empty-trash")
|
||||
.then(() => {
|
||||
commit("LOADING_STATE", { loading: false, data: [] });
|
||||
events.$emit("scrollTop");
|
||||
|
||||
// Remove file preview
|
||||
commit('CLEAR_FILEINFO_DETAIL')
|
||||
commit("CLEAR_FILEINFO_DETAIL");
|
||||
|
||||
// Get route
|
||||
let route = getters.sharedDetail && ! getters.sharedDetail.protected
|
||||
? '/api/remove-item/' + data.unique_id + '/public/' + router.currentRoute.params.token
|
||||
: '/api/remove-item/' + data.unique_id
|
||||
|
||||
axios
|
||||
.delete(route, {
|
||||
data: {
|
||||
type: data.type,
|
||||
force_delete: data.deleted_at ? true : false
|
||||
}
|
||||
})
|
||||
.then(() => {
|
||||
|
||||
// If is folder, update app data
|
||||
if (data.type === 'folder') {
|
||||
|
||||
if (data.unique_id === getters.currentFolder.unique_id) {
|
||||
|
||||
if ( getters.currentFolder.location === 'public' ) {
|
||||
dispatch('browseShared', [{folder: last(getters.browseHistory), back: true, init: false}])
|
||||
} else {
|
||||
dispatch('getFolder', [{folder: last(getters.browseHistory), back: true, init: false}])
|
||||
}
|
||||
}
|
||||
|
||||
if ( getters.currentFolder.location !== 'public' )
|
||||
dispatch('getAppData')
|
||||
}
|
||||
})
|
||||
.catch(() => isSomethingWrong())
|
||||
},
|
||||
emptyTrash: ({commit, getters}) => {
|
||||
|
||||
// Clear file browser
|
||||
commit('LOADING_STATE', {loading: true, data: []})
|
||||
|
||||
axios
|
||||
.delete(getters.api + '/empty-trash')
|
||||
.then(() => {
|
||||
commit('LOADING_STATE', {loading: false, data: []})
|
||||
events.$emit('scrollTop')
|
||||
|
||||
// Remove file preview
|
||||
commit('CLEAR_FILEINFO_DETAIL')
|
||||
|
||||
// Show success message
|
||||
events.$emit('success:open', {
|
||||
title: i18n.t('popup_trashed.title'),
|
||||
message: i18n.t('popup_trashed.message'),
|
||||
})
|
||||
})
|
||||
.catch(() => isSomethingWrong())
|
||||
},
|
||||
}
|
||||
// Show success message
|
||||
events.$emit("success:open", {
|
||||
title: i18n.t("popup_trashed.title"),
|
||||
message: i18n.t("popup_trashed.message"),
|
||||
});
|
||||
})
|
||||
.catch(() => isSomethingWrong());
|
||||
},
|
||||
};
|
||||
|
||||
// Show error message
|
||||
function isSomethingWrong() {
|
||||
events.$emit('alert:open', {
|
||||
title: i18n.t('popup_error.title'),
|
||||
message: i18n.t('popup_error.message'),
|
||||
})
|
||||
events.$emit("alert:open", {
|
||||
title: i18n.t("popup_error.title"),
|
||||
message: i18n.t("popup_error.message"),
|
||||
});
|
||||
}
|
||||
|
||||
export default {
|
||||
actions,
|
||||
}
|
||||
actions,
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user