mirror of
https://github.com/haiwen/seahub.git
synced 2025-09-24 12:58:34 +00:00
No dept (#7835)
* ['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:
@@ -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
|
||||
});
|
||||
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
|
||||
});
|
||||
});
|
||||
};
|
||||
|
||||
|
@@ -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">
|
||||
|
@@ -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 ?
|
||||
|
Reference in New Issue
Block a user