diff --git a/frontend/src/components/dialog/department-detail-dialog.js b/frontend/src/components/dialog/department-detail-dialog.js index 4ccdff9c8d..f5f0feeaa4 100644 --- a/frontend/src/components/dialog/department-detail-dialog.js +++ b/frontend/src/components/dialog/department-detail-dialog.js @@ -7,11 +7,13 @@ import { Utils } from '../../utils/utils'; import toaster from '../toast'; import EmptyTip from '../empty-tip'; import Loading from '../loading'; +import { eventBus } from '../common/event-bus'; import Department from '../../models/department'; import SeahubModalHeader from '../common/seahub-modal-header'; import DepartmentGroup from './department-detail-widget/department-group'; import DepartmentGroupMembers from './department-detail-widget/department-group-members'; import DepartmentGroupMemberSelected from './department-detail-widget/department-group-member-selected'; + import '../../css/manage-members-dialog.css'; import '../../css/group-departments.css'; @@ -149,6 +151,7 @@ class DepartmentDetailDialog extends React.Component { let emails = Object.keys(this.state.newMembersTempObj); seafileAPI.addGroupMembers(this.props.groupID, emails).then((res) => { this.toggle(); + eventBus.dispatch('updateGroupList'); }).catch(error => { this.onError(error); }); diff --git a/frontend/src/components/list-and-add-group-members.js b/frontend/src/components/list-and-add-group-members.js index 95ac919fa9..871bd05df5 100644 --- a/frontend/src/components/list-and-add-group-members.js +++ b/frontend/src/components/list-and-add-group-members.js @@ -9,6 +9,7 @@ import toaster from './toast'; import Loading from './loading'; import GroupMembers from './group-members'; import SelectUsersIcon from './select-members-to-share-with'; +import { eventBus } from './common/event-bus'; const propTypes = { toggleManageMembersDialog: PropTypes.func, @@ -39,11 +40,12 @@ class ManageMembersDialog extends React.Component { componentDidMount() { this.listGroupMembers(this.state.page); + eventBus.subscribe('updateGroupList', this.listGroupMembers); } - listGroupMembers = (page) => { + listGroupMembers = (page = 1, initGroupMembers = []) => { const { groupID } = this.props; - const { perPage, groupMembers } = this.state; + const { perPage } = this.state; seafileAPI.listGroupMembers(groupID, page, perPage).then((res) => { const members = res.data; this.setState({ @@ -51,7 +53,7 @@ class ManageMembersDialog extends React.Component { isLoadingMore: false, page: page, hasNextPage: members.length < perPage ? false : true, - groupMembers: groupMembers.concat(members) + groupMembers: initGroupMembers.concat(members) }); }).catch(error => { let errMessage = Utils.getErrorMsg(error); @@ -109,7 +111,7 @@ class ManageMembersDialog extends React.Component { const isBottom = (clientHeight + scrollTop + 1 >= scrollHeight); if (isBottom) { // scroll to the bottom this.setState({ isLoadingMore: true }, () => { - this.listGroupMembers(page + 1); + this.listGroupMembers(page + 1, this.state.groupMembers); }); } }