138 lines
3.6 KiB
JavaScript
Executable File
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,
|
|
});
|
|
},
|
|
};
|