diff --git a/media/css/seahub.css b/media/css/seahub.css index e73b997ac1..a7d99ac23e 100644 --- a/media/css/seahub.css +++ b/media/css/seahub.css @@ -2884,6 +2884,7 @@ button.sf-dropdown-toggle:focus { } #search-form, #search-user-form, +#search-group-form, #search-repo-form { padding:7px 5px; background:#f7f7f8; @@ -2985,10 +2986,12 @@ button.sf-dropdown-toggle:focus { margin:10px 15px 20px 0; } #search-repo-form label, +#search-group-form label, #search-user-form label { width:3.5em; } #search-repo-form .submit, +#search-group-form .submit, #search-user-form .submit { margin-left:3.5em; } diff --git a/seahub/api2/endpoints/admin/groups.py b/seahub/api2/endpoints/admin/groups.py index fd4d7cd143..2e7a2c66f7 100644 --- a/seahub/api2/endpoints/admin/groups.py +++ b/seahub/api2/endpoints/admin/groups.py @@ -42,12 +42,25 @@ class AdminGroups(APIView): permission_classes = (IsAdminUser,) def get(self, request): - """ List all groups + """ List all groups / search group by name Permission checking: 1. Admin user; """ + # search groups by name + group_name = request.GET.get('name', '') + group_name = group_name.strip() + return_results = [] + if group_name: + # search by name(keyword in name) + groups_all = ccnet_api.search_groups(group_name, -1, -1) + for group in groups_all: + group_info = get_group_info(group.id) + return_results.append(group_info) + + return Response({"name": group_name, "groups": return_results}) + try: current_page = int(request.GET.get('page', '1')) per_page = int(request.GET.get('per_page', '100')) diff --git a/seahub/templates/js/sysadmin-templates.html b/seahub/templates/js/sysadmin-templates.html index b439566af2..3cbac5d3aa 100644 --- a/seahub/templates/js/sysadmin-templates.html +++ b/seahub/templates/js/sysadmin-templates.html @@ -79,6 +79,11 @@ <% } %> <% } %> + <% if (cur_tab == 'groups') { %> +
+ <% } %> + +