diff --git a/frontend/src/components/dialog/department-detail-widget/department-group-members.js b/frontend/src/components/dialog/department-detail-widget/department-group-members.js
index 44db25333e1..a44bd41dde5 100644
--- a/frontend/src/components/dialog/department-detail-widget/department-group-members.js
+++ b/frontend/src/components/dialog/department-detail-widget/department-group-members.js
@@ -52,10 +52,10 @@ class Item extends Component {
|
- |
+ |
{member.name} |
-
-
+ |
+
{tip}
@@ -107,12 +107,7 @@ class DepartmentGroupMembers extends Component {
render() {
const { members, memberSelected, loading, selectedMemberMap, currentDepartment, usedFor } = this.props;
- let headerTitle;
- if (currentDepartment.id === -1) {
- headerTitle = gettext('All users');
- } else {
- headerTitle = currentDepartment.name + ' ' + gettext('members');
- }
+ let headerTitle = (currentDepartment.name || '') + ' ' + gettext('members');
if (loading) {
return (
diff --git a/frontend/src/components/dialog/department-detail-widget/department-group.js b/frontend/src/components/dialog/department-detail-widget/department-group.js
index 8b2beac86e2..81197dabe0c 100644
--- a/frontend/src/components/dialog/department-detail-widget/department-group.js
+++ b/frontend/src/components/dialog/department-detail-widget/department-group.js
@@ -1,7 +1,7 @@
import React, { Component } from 'react';
import PropTypes from 'prop-types';
import Loading from '../../../components/loading';
-import { gettext, isOrgContext } from '../../../utils/constants';
+import { isOrgContext } from '../../../utils/constants';
const ItemPropTypes = {
department: PropTypes.object,
@@ -30,7 +30,7 @@ class Item extends Component {
renderSubDepartments = () => {
const { departments } = this.props;
return (
-
+
{departments.map((department, index) => {
if (department.parent_group_id !== this.props.department.id) return null;
return (
@@ -43,6 +43,7 @@ class Item extends Component {
toggleExpanded={this.props.toggleExpanded}
currentDepartment={this.props.currentDepartment}
allMembersClick={this.props.allMembersClick}
+ padding={this.props.padding + 10}
/>
);
})}
@@ -56,12 +57,12 @@ class Item extends Component {
const { hasChild, isExpanded } = department;
return (
<>
-
+
{hasChild &&
}
@@ -112,19 +113,9 @@ class DepartmentGroup extends Component {
if (loading) {
return ( );
}
- const { allMembersClick } = this.state;
return (
- {isOrgContext &&
-
-
- {gettext('All users')}
-
- }
{departments.length > 0 && departments.map((department, index) => {
if (department.parent_group_id !== -1) return null;
return (
@@ -137,6 +128,7 @@ class DepartmentGroup extends Component {
toggleExpanded={this.toggleExpanded}
currentDepartment={this.props.currentDepartment}
allMembersClick={this.state.allMembersClick}
+ padding={10}
/>
);
})}
diff --git a/frontend/src/css/add-user-to-departments.css b/frontend/src/css/add-user-to-departments.css
deleted file mode 100644
index 1b2f3cac0f5..00000000000
--- a/frontend/src/css/add-user-to-departments.css
+++ /dev/null
@@ -1,129 +0,0 @@
-.department-dialog .department-dialog-content {
- padding: 0;
- min-height: 30rem;
- display: flex;
- overflow: hidden;
- flex-wrap: nowrap;
- align-content: space-between;
- justify-content: space-between;
- flex-direction: row;
-}
-
-.department-dialog .department-dialog-content > div {
- max-height: calc(100vh - 120px);
- overflow-y: auto;
-}
-
-.department-dialog-content .department-dialog-group {
- flex: 0 0 35%;
- padding: 1rem;
- border-right: 1px solid #eee;
-}
-
-.department-dialog-content .department-dialog-member {
- display: flex;
- flex: 0 0 35%;
- border-right: 1px solid #eee;
-}
-
-.department-dialog-content .department-dialog-member-selected {
- display: flex;
- flex: 0 0 65%;
- border-right: 1px solid #eee;
- flex-direction: column;
- justify-content: space-between;
-}
-
-.department-dialog-content .department-dialog-member-selected .modal-footer {
- border-top: none;
-}
-
-.department-dialog-content .department-dialog-group .group-item {
- cursor: pointer;
- padding: 5px;
- border-radius: 5px;
-}
-
-.department-dialog-content .department-dialog-group .group-item:hover {
- background-color: #f5f5f5;
-}
-
-.department-dialog-content .department-dialog-group .group-item.tr-highlight:hover,
-.department-dialog-content .department-dialog-group .tr-highlight {
- background-color: #ED7109;
- color: #ffffff;
-}
-
-.department-dialog-member-head {
- display: flex;
- padding: 0 0 12px 0;
- justify-content: space-between;
-}
-
-.department-dialog-member-head .department-name {
- font-size: 0.8125rem;
- color: #666;
-}
-
-.department-dialog-member-head .select-all {
- cursor: pointer;
- font-size: 0.8125rem;
- color: #ED7109;
-}
-
-.department-dialog-member-head .select-all-disable {
- font-size: 0.8125rem;
- color: rgb(248, 205, 160);
-}
-
-.department-dialog-member-table td,
-.department-dialog-member-head td {
- border: none;
- text-align: left;
- padding: 0;
-}
-
-.department-dialog-member-table {
- display: block;
- text-align: center;
- max-height: calc(100% - 32px);
- overflow-y: auto;
- -webkit-overflow-scrolling: touch;
-}
-
-.department-dialog-member-table tr {
- display: table;
- width: 100%;
- table-layout: fixed;
- height: 36px;
-}
-
-.department-dialog-content .avatar {
- width: 24px;
- height: 24px;
- line-height: 24px;
-}
-
-.department-dialog-content tr td:first-child {
- padding-left: 16px;
-}
-
-.department-dialog-member-table tr td:first-child {
- padding-bottom: 2px;
-}
-
-.tooltip-inner {
- font-size: 13px;
- font-weight: lighter;
- text-align: justify;
- color: #fff;
- background-color: #303133;
-}
-
-.department-dialog-member-selected tr td:last-child {
- padding-right: 16px;
-}
-
-.department-dialog-member-selected .modal-footer .btn {
- min-width: 80px;
-}
diff --git a/frontend/src/css/group-departments.css b/frontend/src/css/group-departments.css
index fb94813804e..e328ccf1e66 100644
--- a/frontend/src/css/group-departments.css
+++ b/frontend/src/css/group-departments.css
@@ -9,7 +9,7 @@
flex-direction: row;
}
-.department-dialog .department-dialog-content>div {
+.department-dialog .department-dialog-content > div {
max-height: calc(100vh - 120px);
overflow-y: auto;
}
@@ -20,16 +20,6 @@
border-right: 1px solid #eee;
}
-.department-dialog-content .department-dialog-group .tr-highlight .dtable-icon-groups {
- padding-right: 10px;
- color: #ffffff;
-}
-
-.department-dialog-content .department-dialog-group .dtable-icon-groups {
- padding-right: 10px;
- color: #9c9c9c;
-}
-
.department-dialog-content .department-dialog-member {
display: flex;
flex: 0 0 35%;
@@ -48,9 +38,9 @@
border-top: none;
}
-.department-dialog-content .department-dialog-member-selected .dtable-icon-cancel {
+.department-dialog-content .department-dialog-member-selected .sf3-font-close {
cursor: pointer;
- color: #959595;
+ color: #666;
}
.department-dialog-content .department-dialog-group .group-item {
@@ -65,8 +55,22 @@
.department-dialog-content .department-dialog-group .group-item.tr-highlight:hover,
.department-dialog-content .department-dialog-group .tr-highlight {
- background-color: #FF8000;
- color: #ffffff;
+ background-color: #f0f0f0;
+ color: inherit;
+ position: relative;
+}
+
+.department-dialog-content .department-dialog-group .group-item.tr-highlight::before {
+ content: '';
+ display: block;
+ width: 4px;
+ background-color: #ff9800;
+ border-radius: 2px;
+ position: absolute;
+ top: 4px;
+ bottom: 4px;
+ left: -8px;
+ z-index: 0;
}
.department-dialog-member-head {
@@ -77,13 +81,13 @@
.department-dialog-member-head .department-name {
font-size: 0.8125rem;
- color: #9c9c9c;
+ color: #666;
}
.department-dialog-member-head .select-all {
cursor: pointer;
font-size: 0.8125rem;
- color: #ea7500;;
+ color: #ED7109;
}
.department-dialog-member-head .select-all-disable {
@@ -104,6 +108,7 @@
max-height: calc(100% - 32px);
overflow-y: auto;
-webkit-overflow-scrolling: touch;
+ padding-bottom: 30px;
}
.department-dialog-member-table tr {
@@ -115,6 +120,13 @@
.department-dialog-member-table .sf3-font-help {
color: #999;
+ padding-right: 16px;
+ float: right;
+}
+
+.department-dialog-member-table .sf3-font-help:hover {
+ color: #666;
+ cursor: pointer;
}
.department-dialog-member .empty-tip {
@@ -127,7 +139,7 @@
}
.department-dialog-member .empty-tip h2 {
- color: #999;
+ color: #666;
font-weight: normal;
font-size: 1rem;
}
@@ -146,22 +158,20 @@
padding-bottom: 2px;
}
-.department-dialog-member-table tr td .dtable-icon-use-help {
- color: #bdbdbd;
-}
-
-.department-dialog-member-table tr td .dtable-icon-use-help:hover {
- color: #888;
-}
-
.tooltip-inner {
font-size: 13px;
font-weight: lighter;
text-align: justify;
- color: #FFF;
+ color: #fff;
background-color: #303133;
}
+.bs-tooltip-top .arrow::before,
+.bs-tooltip-auto[x-placement^="bottom"] .arrow::before,
+.bs-tooltip-auto[x-placement^="top"] .arrow::before {
+ border-top-color: #303133;
+}
+
.department-dialog-member-selected tr td:last-child {
padding-right: 16px;
}
diff --git a/seahub/api2/endpoints/address_book/departments.py b/seahub/api2/endpoints/address_book/departments.py
index 9f71ef84851..e608b5cc81a 100644
--- a/seahub/api2/endpoints/address_book/departments.py
+++ b/seahub/api2/endpoints/address_book/departments.py
@@ -92,12 +92,7 @@ def _check_department_permission(self, org_id, department_id):
'''
check if the department belongs to the org
'''
- # TODO
- # owner = "%s@seafile_group" % department_id
- # ws = Workspaces.objects.get_workspace_by_owner(owner)
- # if ws and ws.org_id == org_id:
- # return True
- return False
+ return org_id == ccnet_api.get_org_id_by_group(department_id)
def get(self, request, department_id):
""" List members of a group in address book.
@@ -118,7 +113,6 @@ def get(self, request, department_id):
members = ccnet_api.get_group_members(department_id)
for m in members:
member_info = get_address_book_group_memeber_info(m)
- # filter empty-user from bug that made an empty-group-owner when creating department
if m.user_name == '':
continue
return_results.append(member_info)
|