filebrowser/frontend/src/store/mutations.js

108 lines
2.5 KiB
JavaScript
Raw Normal View History

2021-03-21 11:51:58 +00:00
import * as i18n from "@/i18n";
import moment from "moment";
2018-02-01 12:17:04 +00:00
const mutations = {
2021-03-21 11:51:58 +00:00
closeHovers: (state) => {
state.show = null;
state.showConfirm = null;
2018-02-01 12:17:04 +00:00
},
toggleShell: (state) => {
2021-03-21 11:51:58 +00:00
state.showShell = !state.showShell;
},
2018-02-01 12:17:04 +00:00
showHover: (state, value) => {
2021-03-21 11:51:58 +00:00
if (typeof value !== "object") {
state.show = value;
return;
2018-02-01 12:17:04 +00:00
}
2021-03-21 11:51:58 +00:00
state.show = value.prompt;
state.showConfirm = value.confirm;
2018-02-01 12:17:04 +00:00
},
2021-03-03 17:46:37 +00:00
showError: (state) => {
2021-03-21 11:51:58 +00:00
state.show = "error";
2018-02-01 12:17:04 +00:00
},
2021-03-03 17:46:37 +00:00
showSuccess: (state) => {
2021-03-21 11:51:58 +00:00
state.show = "success";
},
setLoading: (state, value) => {
state.loading = value;
},
setReload: (state, value) => {
state.reload = value;
2018-02-01 12:17:04 +00:00
},
setUser: (state, value) => {
if (value === null) {
2021-03-21 11:51:58 +00:00
state.user = null;
return;
}
2021-03-21 11:51:58 +00:00
let locale = value.locale;
2018-02-01 12:17:04 +00:00
2021-03-21 11:51:58 +00:00
if (locale === "") {
locale = i18n.detectLocale();
2018-02-01 12:17:04 +00:00
}
2021-03-21 11:51:58 +00:00
moment.locale(locale);
i18n.default.locale = locale;
state.user = value;
2018-02-01 12:17:04 +00:00
},
setJWT: (state, value) => (state.jwt = value),
2023-08-17 21:46:49 +00:00
setSession: (state, value) => (state.sessionId = value),
2018-02-01 12:17:04 +00:00
multiple: (state, value) => (state.multiple = value),
2021-03-21 11:51:58 +00:00
addSelected: (state, value) => state.selected.push(value),
2018-02-01 12:17:04 +00:00
removeSelected: (state, value) => {
2021-03-21 11:51:58 +00:00
let i = state.selected.indexOf(value);
if (i === -1) return;
state.selected.splice(i, 1);
2018-02-01 12:17:04 +00:00
},
resetSelected: (state) => {
2021-03-21 11:51:58 +00:00
state.selected = [];
2018-02-01 12:17:04 +00:00
},
updateUser: (state, value) => {
2021-03-21 11:51:58 +00:00
if (typeof value !== "object") return;
2018-02-01 12:17:04 +00:00
for (let field in value) {
2021-03-21 11:51:58 +00:00
if (field === "locale") {
moment.locale(value[field]);
i18n.default.locale = value[field];
}
2021-03-21 11:51:58 +00:00
state.user[field] = value[field];
2018-02-01 12:17:04 +00:00
}
},
updateRequest: (state, value) => {
2021-03-21 11:51:58 +00:00
state.oldReq = state.req;
state.req = value;
2018-02-01 12:17:04 +00:00
},
// Inside your mutations object
updateListingSortConfig(state, { field, asc }) {
state.req.sorting.by = field;
state.req.sorting.asc = asc;
},
updateListingItems(state) {
// Sort the items array based on the sorting settings
state.req.items.sort((a, b) => {
const valueA = a[state.req.sorting.by];
const valueB = b[state.req.sorting.by];
if (state.req.sorting.asc) {
return valueA > valueB ? 1 : -1;
} else {
return valueA < valueB ? 1 : -1;
}
});
},
2018-02-01 12:17:04 +00:00
updateClipboard: (state, value) => {
2021-03-21 11:51:58 +00:00
state.clipboard.key = value.key;
state.clipboard.items = value.items;
state.clipboard.path = value.path;
2018-02-01 12:17:04 +00:00
},
resetClipboard: (state) => {
2021-03-21 11:51:58 +00:00
state.clipboard.key = "";
state.clipboard.items = [];
},
};
2018-02-01 12:17:04 +00:00
2021-03-21 11:51:58 +00:00
export default mutations;