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: {},
|
newMembersTempObj: {},
|
||||||
currentDepartment: {},
|
currentDepartment: {},
|
||||||
departmentsLoading: true,
|
departmentsLoading: true,
|
||||||
membersLoading: true,
|
membersLoading: false,
|
||||||
selectedMemberMap: {},
|
selectedMemberMap: {},
|
||||||
departmentsTree: [],
|
departmentsTree: [],
|
||||||
keyword: '',
|
keyword: '',
|
||||||
@@ -107,7 +107,9 @@ class DepartmentDetailDialog extends React.Component {
|
|||||||
departmentsLoading: false,
|
departmentsLoading: false,
|
||||||
departmentsTree: departmentsTree
|
departmentsTree: departmentsTree
|
||||||
});
|
});
|
||||||
this.getMembers(currentDepartment.id);
|
if (currentDepartment.id) {
|
||||||
|
this.getMembers(currentDepartment.id);
|
||||||
|
}
|
||||||
}).catch(error => {
|
}).catch(error => {
|
||||||
this.onError(error);
|
this.onError(error);
|
||||||
});
|
});
|
||||||
@@ -118,10 +120,14 @@ class DepartmentDetailDialog extends React.Component {
|
|||||||
seafileAPI.listAddressBookDepartmentMembers(department_id).then((res) => {
|
seafileAPI.listAddressBookDepartmentMembers(department_id).then((res) => {
|
||||||
this.setState({
|
this.setState({
|
||||||
departmentMembers: res.data.members,
|
departmentMembers: res.data.members,
|
||||||
membersLoading: false,
|
membersLoading: false
|
||||||
});
|
});
|
||||||
}).catch(error => {
|
}).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: [],
|
sharedItems: [],
|
||||||
isWiki: this.props.repoType === 'wiki',
|
isWiki: this.props.repoType === 'wiki',
|
||||||
tmpUserList: [],
|
tmpUserList: [],
|
||||||
|
enableSelectMembersFromDept: false,
|
||||||
isShowDepartmentDetailDialog: false
|
isShowDepartmentDetailDialog: false
|
||||||
};
|
};
|
||||||
this.options = [];
|
this.options = [];
|
||||||
@@ -259,6 +260,7 @@ class ShareToUser extends React.Component {
|
|||||||
componentDidMount() {
|
componentDidMount() {
|
||||||
let path = this.props.itemPath;
|
let path = this.props.itemPath;
|
||||||
let repoID = this.props.repoID;
|
let repoID = this.props.repoID;
|
||||||
|
this.getPermForSelectMembersFromDept();
|
||||||
seafileAPI.listSharedItems(repoID, path, 'user').then((res) => {
|
seafileAPI.listSharedItems(repoID, path, 'user').then((res) => {
|
||||||
if (res.data.length !== 0) {
|
if (res.data.length !== 0) {
|
||||||
let tmpUserList = res.data.map(item => {
|
let tmpUserList = res.data.map(item => {
|
||||||
@@ -483,15 +485,34 @@ class ShareToUser extends React.Component {
|
|||||||
this.toggleDepartmentDetailDialog();
|
this.toggleDepartmentDetailDialog();
|
||||||
};
|
};
|
||||||
|
|
||||||
render() {
|
getPermForSelectMembersFromDept = () => {
|
||||||
let showDeptBtn = true;
|
|
||||||
if (window.app.config.lang !== 'zh-cn') {
|
if (window.app.config.lang !== 'zh-cn') {
|
||||||
showDeptBtn = false;
|
this.setState({
|
||||||
|
enableSelectMembersFromDept: false
|
||||||
|
});
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (cloudMode && !isOrgContext) {
|
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 = (
|
let thead = (
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
@@ -522,12 +543,12 @@ class ShareToUser extends React.Component {
|
|||||||
<div className='add-members'>
|
<div className='add-members'>
|
||||||
<UserSelect
|
<UserSelect
|
||||||
isMulti={true}
|
isMulti={true}
|
||||||
className={classnames('reviewer-select', { 'user-select-right-btn': showDeptBtn })}
|
className={classnames('reviewer-select', { 'user-select-right-btn': enableSelectMembersFromDept })}
|
||||||
placeholder={gettext('Search users...')}
|
placeholder={gettext('Search users...')}
|
||||||
onSelectChange={this.handleSelectChange}
|
onSelectChange={this.handleSelectChange}
|
||||||
selectedUsers={this.state.selectedUsers}
|
selectedUsers={this.state.selectedUsers}
|
||||||
/>
|
/>
|
||||||
{showDeptBtn &&
|
{enableSelectMembersFromDept &&
|
||||||
<span
|
<span
|
||||||
onClick={this.toggleDepartmentDetailDialog}
|
onClick={this.toggleDepartmentDetailDialog}
|
||||||
className="sf3-font sf3-font-invite-visitors toggle-detail-btn">
|
className="sf3-font sf3-font-invite-visitors toggle-detail-btn">
|
||||||
|
@@ -21,6 +21,7 @@ class ManageMembersDialog extends React.Component {
|
|||||||
constructor(props) {
|
constructor(props) {
|
||||||
super(props);
|
super(props);
|
||||||
this.state = {
|
this.state = {
|
||||||
|
enableSelectMembersFromDept: false,
|
||||||
isLoading: true, // first loading
|
isLoading: true, // first loading
|
||||||
isLoadingMore: false,
|
isLoadingMore: false,
|
||||||
groupMembers: [],
|
groupMembers: [],
|
||||||
@@ -37,6 +38,7 @@ class ManageMembersDialog extends React.Component {
|
|||||||
}
|
}
|
||||||
|
|
||||||
componentDidMount() {
|
componentDidMount() {
|
||||||
|
this.getPermForSelectMembersFromDept();
|
||||||
this.listGroupMembers(this.state.page);
|
this.listGroupMembers(this.state.page);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -164,19 +166,41 @@ class ManageMembersDialog extends React.Component {
|
|||||||
this.props.toggleDepartmentDetailDialog();
|
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() {
|
render() {
|
||||||
const {
|
const {
|
||||||
|
enableSelectMembersFromDept,
|
||||||
isLoading, hasNextPage, groupMembers,
|
isLoading, hasNextPage, groupMembers,
|
||||||
keyword, membersFound,
|
keyword, membersFound,
|
||||||
searchActive
|
searchActive
|
||||||
} = this.state;
|
} = this.state;
|
||||||
let showDeptBtn = true;
|
|
||||||
if (window.app.config.lang !== 'zh-cn') {
|
|
||||||
showDeptBtn = false;
|
|
||||||
}
|
|
||||||
if (cloudMode && !isOrgContext) {
|
|
||||||
showDeptBtn = false;
|
|
||||||
}
|
|
||||||
return (
|
return (
|
||||||
<Fragment>
|
<Fragment>
|
||||||
<p className="mb-2">{gettext('Add group member')}</p>
|
<p className="mb-2">{gettext('Add group member')}</p>
|
||||||
@@ -188,7 +212,7 @@ class ManageMembersDialog extends React.Component {
|
|||||||
isMulti={true}
|
isMulti={true}
|
||||||
className="add-members-select"
|
className="add-members-select"
|
||||||
/>
|
/>
|
||||||
{showDeptBtn &&
|
{enableSelectMembersFromDept &&
|
||||||
<span onClick={this.onClickDeptBtn} className="sf3-font sf3-font-invite-visitors toggle-detail-btn"></span>
|
<span onClick={this.onClickDeptBtn} className="sf3-font sf3-font-invite-visitors toggle-detail-btn"></span>
|
||||||
}
|
}
|
||||||
{this.state.selectedUsers.length > 0 ?
|
{this.state.selectedUsers.length > 0 ?
|
||||||
|
Reference in New Issue
Block a user