1
0
mirror of https://github.com/haiwen/seahub.git synced 2025-09-24 12:58:34 +00:00
* ['deptments, members' dialog] fixed 'get members for the current department'

* ['share to user', 'manage group members' dialogs] don't offer the switch for 'select members from departments' dialog when there is no department
This commit is contained in:
llj
2025-05-21 11:15:44 +08:00
committed by GitHub
parent 5cf569b405
commit ccf8b24769
3 changed files with 70 additions and 19 deletions

View File

@@ -35,7 +35,7 @@ class DepartmentDetailDialog extends React.Component {
newMembersTempObj: {},
currentDepartment: {},
departmentsLoading: true,
membersLoading: true,
membersLoading: false,
selectedMemberMap: {},
departmentsTree: [],
keyword: '',
@@ -107,7 +107,9 @@ class DepartmentDetailDialog extends React.Component {
departmentsLoading: false,
departmentsTree: departmentsTree
});
this.getMembers(currentDepartment.id);
if (currentDepartment.id) {
this.getMembers(currentDepartment.id);
}
}).catch(error => {
this.onError(error);
});
@@ -118,10 +120,14 @@ class DepartmentDetailDialog extends React.Component {
seafileAPI.listAddressBookDepartmentMembers(department_id).then((res) => {
this.setState({
departmentMembers: res.data.members,
membersLoading: false,
membersLoading: false
});
}).catch(error => {
this.onError(error);
let errMessage = Utils.getErrorMsg(error);
toaster.danger(errMessage);
this.setState({
membersLoading: false
});
});
};

View File

@@ -230,6 +230,7 @@ class ShareToUser extends React.Component {
sharedItems: [],
isWiki: this.props.repoType === 'wiki',
tmpUserList: [],
enableSelectMembersFromDept: false,
isShowDepartmentDetailDialog: false
};
this.options = [];
@@ -259,6 +260,7 @@ class ShareToUser extends React.Component {
componentDidMount() {
let path = this.props.itemPath;
let repoID = this.props.repoID;
this.getPermForSelectMembersFromDept();
seafileAPI.listSharedItems(repoID, path, 'user').then((res) => {
if (res.data.length !== 0) {
let tmpUserList = res.data.map(item => {
@@ -483,15 +485,34 @@ class ShareToUser extends React.Component {
this.toggleDepartmentDetailDialog();
};
render() {
let showDeptBtn = true;
getPermForSelectMembersFromDept = () => {
if (window.app.config.lang !== 'zh-cn') {
showDeptBtn = false;
this.setState({
enableSelectMembersFromDept: false
});
return;
}
if (cloudMode && !isOrgContext) {
showDeptBtn = false;
this.setState({
enableSelectMembersFromDept: false
});
return;
}
let { sharedItems } = this.state;
seafileAPI.listAddressBookDepartments().then((res) => {
this.setState({
enableSelectMembersFromDept: res.data.departments.length > 0
});
}).catch(error => {
this.setState({
enableSelectMembersFromDept: false
});
});
};
render() {
const { sharedItems, enableSelectMembersFromDept } = this.state;
let thead = (
<thead>
<tr>
@@ -522,12 +543,12 @@ class ShareToUser extends React.Component {
<div className='add-members'>
<UserSelect
isMulti={true}
className={classnames('reviewer-select', { 'user-select-right-btn': showDeptBtn })}
className={classnames('reviewer-select', { 'user-select-right-btn': enableSelectMembersFromDept })}
placeholder={gettext('Search users...')}
onSelectChange={this.handleSelectChange}
selectedUsers={this.state.selectedUsers}
/>
{showDeptBtn &&
{enableSelectMembersFromDept &&
<span
onClick={this.toggleDepartmentDetailDialog}
className="sf3-font sf3-font-invite-visitors toggle-detail-btn">

View File

@@ -21,6 +21,7 @@ class ManageMembersDialog extends React.Component {
constructor(props) {
super(props);
this.state = {
enableSelectMembersFromDept: false,
isLoading: true, // first loading
isLoadingMore: false,
groupMembers: [],
@@ -37,6 +38,7 @@ class ManageMembersDialog extends React.Component {
}
componentDidMount() {
this.getPermForSelectMembersFromDept();
this.listGroupMembers(this.state.page);
}
@@ -164,19 +166,41 @@ class ManageMembersDialog extends React.Component {
this.props.toggleDepartmentDetailDialog();
};
getPermForSelectMembersFromDept = () => {
if (window.app.config.lang !== 'zh-cn') {
this.setState({
enableSelectMembersFromDept: false
});
return;
}
if (cloudMode && !isOrgContext) {
this.setState({
enableSelectMembersFromDept: false
});
return;
}
seafileAPI.listAddressBookDepartments().then((res) => {
this.setState({
enableSelectMembersFromDept: res.data.departments.length > 0
});
}).catch(error => {
this.setState({
enableSelectMembersFromDept: false
});
});
};
render() {
const {
enableSelectMembersFromDept,
isLoading, hasNextPage, groupMembers,
keyword, membersFound,
searchActive
} = this.state;
let showDeptBtn = true;
if (window.app.config.lang !== 'zh-cn') {
showDeptBtn = false;
}
if (cloudMode && !isOrgContext) {
showDeptBtn = false;
}
return (
<Fragment>
<p className="mb-2">{gettext('Add group member')}</p>
@@ -188,7 +212,7 @@ class ManageMembersDialog extends React.Component {
isMulti={true}
className="add-members-select"
/>
{showDeptBtn &&
{enableSelectMembersFromDept &&
<span onClick={this.onClickDeptBtn} className="sf3-font sf3-font-invite-visitors toggle-detail-btn"></span>
}
{this.state.selectedUsers.length > 0 ?