diff options
author | Stas Vilchik <vilchiks@gmail.com> | 2015-08-26 13:55:37 +0200 |
---|---|---|
committer | Stas Vilchik <vilchiks@gmail.com> | 2015-08-26 13:55:37 +0200 |
commit | 150c2ec7b0bc2ef547bc9fa5bf64e4729f03b7c1 (patch) | |
tree | 0c5afd44a9222de748e986bf16cfd38fd32c4b6b /server | |
parent | 49d5316376bcb5c38e269eabe7edeb49e991b58b (diff) | |
download | sonarqube-150c2ec7b0bc2ef547bc9fa5bf64e4729f03b7c1.tar.gz sonarqube-150c2ec7b0bc2ef547bc9fa5bf64e4729f03b7c1.zip |
SONAR-6797 order permissions
Diffstat (limited to 'server')
-rw-r--r-- | server/sonar-web/src/main/js/apps/project-permissions/main.jsx | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/server/sonar-web/src/main/js/apps/project-permissions/main.jsx b/server/sonar-web/src/main/js/apps/project-permissions/main.jsx index 802eaff1784..7862f60f0b4 100644 --- a/server/sonar-web/src/main/js/apps/project-permissions/main.jsx +++ b/server/sonar-web/src/main/js/apps/project-permissions/main.jsx @@ -1,3 +1,4 @@ +import _ from 'underscore'; import React from 'react'; import Permissions from './permissions'; import PermissionsFooter from './permissions-footer'; @@ -5,6 +6,8 @@ import Search from './search'; let $ = jQuery; +const PERMISSIONS_ORDER = ['user', 'codeviewer', 'issueadmin', 'admin']; + export default React.createClass({ getInitialState() { return { permissions: [], projects: [], total: 0 }; @@ -14,6 +17,10 @@ export default React.createClass({ this.requestPermissions(); }, + sortPermissions(permissions) { + return _.sortBy(permissions, p => PERMISSIONS_ORDER.indexOf(p.key)); + }, + mergePermissionsToProjects(projects, basePermissions) { return projects.map(project => { // it's important to keep the order of the project permissions the same as the order of base permissions @@ -29,13 +36,14 @@ export default React.createClass({ let url = `${window.baseUrl}/api/permissions/search_project_permissions`; let data = { p: page, q: query }; $.get(url, data).done(r => { - let projects = this.mergePermissionsToProjects(r.projects, r.permissions); + let permissions = this.sortPermissions(r.permissions); + let projects = this.mergePermissionsToProjects(r.projects, permissions); if (page > 1) { projects = [].concat(this.state.projects, projects); } this.setState({ projects: projects, - permissions: r.permissions, + permissions: permissions, total: r.paging.total, page: r.paging.pageIndex, query: query |