Skip to content

Commit

Permalink
Single selector (#5792)
Browse files Browse the repository at this point in the history
* [system admin - orgs] member: replaced the membership selector with the new 'single selector'

* deleted unused wiki-permission-editor.js
  • Loading branch information
llj authored Nov 24, 2023
1 parent 29fa239 commit e8048b6
Show file tree
Hide file tree
Showing 3 changed files with 29 additions and 94 deletions.

This file was deleted.

43 changes: 0 additions & 43 deletions frontend/src/components/select-editor/wiki-permission-editor.js

This file was deleted.

39 changes: 29 additions & 10 deletions frontend/src/pages/sys-admin/orgs/org-users.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@ import toaster from '../../../components/toast';
import EmptyTip from '../../../components/empty-tip';
import Loading from '../../../components/loading';
import Selector from '../../../components/single-selector';
import SysAdminUserMembershipEditor from '../../../components/select-editor/sysadmin-user-membership-editor';
import SysAdminAddUserDialog from '../../../components/dialog/sysadmin-dialog/sysadmin-add-user-dialog';
import CommonOperationConfirmationDialog from '../../../components/dialog/common-operation-confirmation-dialog';
import OpMenu from '../../../components/dialog/op-menu';
Expand Down Expand Up @@ -163,8 +162,8 @@ class Item extends Component {
this.props.updateStatus(this.props.item.email, statusOption.value);
};

updateMembership= (membershipValue) => {
this.props.updateMembership(this.props.item.email, membershipValue);
updateMembership= (membershipOption) => {
this.props.updateMembership(this.props.item.email, membershipOption.value);
};

deleteUser = () => {
Expand Down Expand Up @@ -204,6 +203,15 @@ class Item extends Component {
}
};

translateMembership = (membership) => {
switch (membership) {
case 'Admin':
return gettext('Admin');
case 'Member':
return gettext('Member');
}
};

render() {
const { item } = this.props;
const { highlight, isOpIconShown, isDeleteDialogOpen, isResetPasswordDialogOpen } = this.state;
Expand All @@ -223,6 +231,17 @@ class Item extends Component {
});
const currentSelectedStatusOption = this.statusOptions.filter(item => item.isSelected)[0];

// for 'user membership'
const curMembership = item.is_org_staff? 'Admin' : 'Member';
this.membershipOptions = ['Admin', 'Member'].map(item => {
return {
value: item,
text: this.translateMembership(item),
isSelected: item == curMembership
};
});
const currentSelectedMembershipOption = this.membershipOptions.filter(item => item.isSelected)[0];

return (
<Fragment>
<tr className={this.state.highlight ? 'tr-highlight' : ''} onMouseEnter={this.handleMouseEnter} onMouseLeave={this.handleMouseLeave}>
Expand All @@ -237,12 +256,12 @@ class Item extends Component {
/>
</td>
<td>
<SysAdminUserMembershipEditor
isTextMode={true}
isEditIconShow={isOpIconShown}
currentStatus={item.is_org_staff ? 'is_org_staff' : 'not_is_org_staff'}
statusOptions={['is_org_staff', 'not_is_org_staff']}
onStatusChanged={this.updateMembership}
<Selector
isDropdownToggleShown={highlight}
currentSelectedOption={currentSelectedMembershipOption}
options={this.membershipOptions}
selectOption={this.updateMembership}
toggleItemFreezed={this.props.toggleItemFreezed}
/>
</td>
<td>{`${Utils.bytesToSize(item.quota_usage)} / ${item.quota_total > 0 ? Utils.bytesToSize(item.quota_total) : '--'}`}</td>
Expand Down Expand Up @@ -373,7 +392,7 @@ class OrgUsers extends Component {
};

updateMembership = (email, membershipValue) => {
const isOrgStaff = membershipValue == 'is_org_staff';
const isOrgStaff = membershipValue == 'Admin';
seafileAPI.sysAdminUpdateOrgUser(this.props.orgID, email, 'is_org_staff', isOrgStaff).then(res => {
let newUserList = this.state.userList.map(item => {
if (item.email == email) {
Expand Down

0 comments on commit e8048b6

Please sign in to comment.