web: People: Added opportunity to delete group

This commit is contained in:
Alexey Safronov 2019-09-25 09:46:45 +03:00
parent 17616763af
commit 1e274cc63f
3 changed files with 29 additions and 5 deletions

View File

@ -28,7 +28,7 @@ import {
resendUserInvites,
deleteUsers
} from "../../../../../store/services/api";
import { deleteGroup } from '../../../../../store/group/actions';
const wrapperStyle = {
@ -53,7 +53,8 @@ const SectionHeaderContent = props => {
onLoading,
filter,
history,
settings
settings,
deleteGroup
} = props;
const selectedUserIds = getSelectionIds(selection);
@ -150,8 +151,9 @@ const SectionHeaderContent = props => {
const onEditGroup = useCallback(() => history.push(`${settings.homepage}/group/edit/${group.id}`), [history, settings, group]);
const onDeleteGroup = useCallback(() => {
toastr.success("Delete group action");
}, []);
deleteGroup(group.id)
.then(() => toastr.success("Group has been removed successfully"));
}, [deleteGroup, group]);
const getContextOptions = useCallback(() => {
return [
@ -214,5 +216,5 @@ const mapStateToProps = state => {
export default connect(
mapStateToProps,
{ updateUserStatus, updateUserType, fetchPeople }
{ updateUserStatus, updateUserType, fetchPeople, deleteGroup }
)(withTranslation()(withRouter(SectionHeaderContent)));

View File

@ -87,3 +87,21 @@ export function updateGroup(id, groupName, groupManager, members) {
});
};
}
export function deleteGroup(id) {
return (dispatch, getState) => {
const { people } = getState();
const { groups, filter } = people;
return api
.deleteGroup(id)
.then(res => {
checkResponseError(res);
return dispatch(setGroups(groups.filter(g => g.id !== id)));
})
.then(() => {
const newFilter = filter.clone(true);
return fetchPeopleByFilter(dispatch, newFilter);
});
};
}

View File

@ -227,3 +227,7 @@ export function updateGroup(id, groupName, groupManager, members) {
const group = {groupId: id, groupName, groupManager, members};
return axios.put(`${API_URL}/group/${id}.json`, group);
}
export function deleteGroup(id) {
return axios.delete(`${API_URL}/group/${id}.json`);
}