Richard Dern 400e3d01f1 Refresh
2022-01-12 00:35:37 +01:00

138 lines
3.6 KiB
JavaScript
Executable File

/**
* Actions on groups
*/
export default {
/*
* -------------------------------------------------------------------------
* ----| CRUD |-------------------------------------------------------------
* -------------------------------------------------------------------------
*/
/**
* Display a listing of the resource - Groups in which user is active
*/
async indexActive({ commit }) {
const data = await api.get(route("group.index_active"));
commit("setGroups", data);
},
/**
* Display a listing of the resource - Groups associated with this user
*/
async indexMyGroups({ commit }) {
const data = await api.get(route("group.my_groups"));
commit("setGroups", data);
},
/**
* Display the specified resource.
*/
show({ getters, dispatch, rootGetters }, { group, folder }) {
const currentSelectedGroup = getters.selectedGroup;
if (!group) {
group = currentSelectedGroup;
} else if (Number.isInteger(group)) {
group = getters.groups.find((g) => g.id === group);
}
dispatch("selectGroup", group);
dispatch("documents/selectDocuments", [], { root: true });
api.get(route("group.show", group)).then(function (folders) {
if (folder) {
dispatch(
"folders/index",
{ folders: folders, show: folder },
{ root: true }
);
} else {
dispatch("folders/index", { folders: folders }, { root: true });
}
});
},
/**
* Mark specified group as selected
*/
selectGroup({ commit, getters }, group) {
if (Number.isInteger(group)) {
group = getters.groups.find((g) => g.id === group);
}
commit("setSelectedGroup", group);
},
/**
* Update a group
*/
updateGroup({ dispatch }, { group, newProperties }) {
api.put(route("group.update", group), newProperties).then(function (
response
) {
dispatch("updateProperties", {
groupId: group.id,
newProperties: response,
});
});
},
/**
* Delete group
*/
deleteGroup({ commit }, group) {
api.delete(route("group.destroy", group)).then(function (response) {
commit("setGroups", response);
});
},
/**
* Update the specified resource in storage.
*/
updateProperties({ commit, getters }, { groupId, newProperties }) {
const group = getters.groups.find((g) => g.id == groupId);
if (!group) {
console.warn("Group #" + groupId + " not found");
return;
}
commit("update", { group: group, newProperties: newProperties });
},
/**
* Create a group
*/
createGroup({ commit }, properties) {
api.post(route("group.store"), properties).then(function (response) {
commit("setGroups", response);
});
},
/**
* Update my groups positions
*/
updatePositions({ getters, commit }, { positions }) {
for (var groupId in positions) {
const group = getters.groups.find((g) => g.id == groupId);
if (!group) {
console.warn("Group #" + groupId + " not found");
return;
}
commit("updatePosition", {
group: group,
position: positions[groupId],
});
}
api.post(route("group.update_positions"), {
positions: positions,
});
},
};