filebrowser/frontend/src/store/getters.js

45 lines
1.2 KiB
JavaScript
Raw Normal View History

2018-02-01 12:17:04 +00:00
const getters = {
2021-03-21 11:51:58 +00:00
isLogged: (state) => state.user !== null,
isFiles: (state) => !state.loading && state.route.name === "Files",
isListing: (state, getters) => getters.isFiles && state.req.isDir,
2021-03-21 11:51:58 +00:00
selectedCount: (state) => state.selected.length,
progress: (state) => {
2020-07-08 14:12:33 +00:00
if (state.upload.progress.length == 0) {
return 0;
}
let totalSize = state.upload.sizes.reduce((a, b) => a + b, 0);
2021-03-21 11:51:58 +00:00
let sum = state.upload.progress.reduce((acc, val) => acc + val);
return Math.ceil((sum / totalSize) * 100);
},
filesInUploadCount: (state) => {
let total =
Object.keys(state.upload.uploads).length + state.upload.queue.length;
return total;
},
filesInUpload: (state) => {
let files = [];
for (let index in state.upload.uploads) {
let upload = state.upload.uploads[index];
let id = upload.id;
let type = upload.type;
let name = decodeURIComponent(upload.path.replace(/^.*[\\/]/, ""));
let progress = state.upload.progress[id];
let size = state.upload.sizes[id];
files.push({
id,
name,
progress: Math.ceil((progress / size) * 100),
type,
});
}
return files.sort((a, b) => a.progress - b.progress);
2021-03-21 11:51:58 +00:00
},
};
2018-02-01 12:17:04 +00:00
2021-03-21 11:51:58 +00:00
export default getters;