1
0
mirror of https://github.com/haiwen/seahub.git synced 2025-09-09 19:01:42 +00:00

update UI bug when org admin add/delete/update user (#5286)

Co-authored-by: lian <lian@seafile.com>
This commit is contained in:
lian
2022-10-19 19:08:02 +08:00
committed by GitHub
parent d6c67cfec3
commit 1a63ee1f3d
4 changed files with 28 additions and 22 deletions

View File

@@ -76,28 +76,12 @@ class UserItem extends React.Component {
this.props.toggleRevokeAdmin(email); this.props.toggleRevokeAdmin(email);
} }
changeStatus = (st) => { changeStatus = (value) => {
let isActive; const isActive = value == 'active';
if (st == 'active') { if (isActive) {
isActive = 'true'; toaster.notify(gettext('It may take some time, please wait.'));
} else {
isActive = 'false';
} }
this.props.changeStatus(this.props.user.email, isActive);
seafileAPI.orgAdminChangeOrgUserStatus(orgID, this.props.user.email, isActive).then(res => {
this.setState({
currentStatus: isActive == 'true' ? 'active' : 'inactive',
highlight: false,
showMenu: false,
});
toaster.success(gettext('Edit succeeded.'));
}).catch(error => {
let errMessage = Utils.getErrorMsg(error);
if (errMessage === gettext('Error')) {
errMessage = gettext('Edit failed.');
}
toaster.danger(errMessage);
});
} }
onDropdownToggleClick = (e) => { onDropdownToggleClick = (e) => {
@@ -147,7 +131,7 @@ class UserItem extends React.Component {
<UserStatusEditor <UserStatusEditor
isTextMode={true} isTextMode={true}
isEditIconShow={isEditIconShow} isEditIconShow={isEditIconShow}
currentStatus={this.state.currentStatus} currentStatus={user.is_active ? 'active' : 'inactive'}
statusArray={this.statusArray} statusArray={this.statusArray}
onStatusChanged={this.changeStatus} onStatusChanged={this.changeStatus}
/> />

View File

@@ -6,6 +6,7 @@ import UserItem from './org-user-item';
const propTypes = { const propTypes = {
initOrgUsersData: PropTypes.func.isRequired, initOrgUsersData: PropTypes.func.isRequired,
toggleDelete: PropTypes.func.isRequired, toggleDelete: PropTypes.func.isRequired,
changeStatus: PropTypes.func.isRequired,
orgUsers: PropTypes.array.isRequired, orgUsers: PropTypes.array.isRequired,
page: PropTypes.number.isRequired, page: PropTypes.number.isRequired,
pageNext: PropTypes.bool.isRequired, pageNext: PropTypes.bool.isRequired,
@@ -79,6 +80,7 @@ class OrgUsersList extends React.Component {
currentTab="users" currentTab="users"
isItemFreezed={this.state.isItemFreezed} isItemFreezed={this.state.isItemFreezed}
toggleDelete={this.props.toggleDelete} toggleDelete={this.props.toggleDelete}
changeStatus={this.props.changeStatus}
onFreezedItem={this.onFreezedItem} onFreezedItem={this.onFreezedItem}
onUnfreezedItem={this.onUnfreezedItem} onUnfreezedItem={this.onUnfreezedItem}
/> />

View File

@@ -166,6 +166,22 @@ class OrgUsers extends Component {
}); });
} }
changeStatus= (email, isActive) => {
seafileAPI.orgAdminChangeOrgUserStatus(orgID, email, isActive).then(res => {
let users = this.state.orgUsers.map(item => {
if (item.email == email) {
item['is_active']= res.data['is_active'];
}
return item;
});
this.setState({orgUsers: users});
toaster.success(gettext('Edit succeeded.'));
}).catch(error => {
let errMessage = Utils.getErrorMsg(error);
toaster.danger(errMessage);
});
}
searchItems = (keyword) => { searchItems = (keyword) => {
navigate(`${siteRoot}org/useradmin/search-users/?query=${encodeURIComponent(keyword)}`); navigate(`${siteRoot}org/useradmin/search-users/?query=${encodeURIComponent(keyword)}`);
} }
@@ -210,6 +226,7 @@ class OrgUsers extends Component {
<OrgUsersList <OrgUsersList
initOrgUsersData={this.initOrgUsersData} initOrgUsersData={this.initOrgUsersData}
toggleDelete={this.toggleOrgUsersDelete} toggleDelete={this.toggleOrgUsersDelete}
changeStatus={this.changeStatus}
orgUsers={this.state.orgUsers} orgUsers={this.state.orgUsers}
page={this.state.page} page={this.state.page}
pageNext={this.state.pageNext} pageNext={this.state.pageNext}

View File

@@ -289,6 +289,9 @@ class OrgAdminUsers(APIView):
logger.error(e) logger.error(e)
user_info['quota'] = -1 user_info['quota'] = -1
user_info['quota_usage'] = user_info['self_usage']
user_info['quota_total'] = user_info['quota']
return Response(user_info) return Response(user_info)