]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-6797 apply feedback
authorStas Vilchik <vilchiks@gmail.com>
Tue, 25 Aug 2015 15:23:09 +0000 (17:23 +0200)
committerStas Vilchik <vilchiks@gmail.com>
Tue, 25 Aug 2015 15:23:09 +0000 (17:23 +0200)
server/sonar-web/src/main/js/apps/global-permissions/groups-view.js
server/sonar-web/src/main/js/apps/global-permissions/users-view.js
server/sonar-web/src/main/js/apps/project-permissions/groups-view.js
server/sonar-web/src/main/js/apps/project-permissions/project.jsx
server/sonar-web/src/main/js/apps/project-permissions/templates/project-permissions-groups.hbs
server/sonar-web/src/main/js/apps/project-permissions/templates/project-permissions-users.hbs
server/sonar-web/src/main/js/apps/project-permissions/users-view.js
sonar-core/src/main/resources/org/sonar/l10n/core.properties

index 3e515d9403154fe619ddbb99171701e7a8073a9e..5b25ec62db27be447062f66499d8a9a76c75c486 100644 (file)
@@ -1,43 +1,36 @@
 define([
   'components/common/modals',
-  'react',
-  'components/select-list/main',
-  '../../api/permissions',
+  'components/common/select-list',
   './templates'
-], function (Modal, React, SelectList, Permissions) {
+], function (Modal) {
 
   return Modal.extend({
     template: Templates['global-permissions-groups'],
 
     onRender: function () {
-      var that = this;
       this._super();
-      var props = {
-        loadItems: function (options, callback) {
-          var _data = { permission: that.options.permission, p: options.page, ps: 100 };
-          options.query ? _.extend(_data, { q: options.query }) : _.extend(_data, { selected: options.selection });
-          Permissions.getGroups(_data).done(function (r) {
-            var paging = _.defaults({}, r.paging, { total: 0, pageIndex: 1 });
-            callback(r.groups, paging);
-          });
+      new window.SelectList({
+        el: this.$('#global-permissions-groups'),
+        width: '100%',
+        readOnly: false,
+        focusSearch: false,
+        format: function (item) {
+          return item.name;
         },
-        renderItem: function (group) {
-          return group.name;
+        queryParam: 'q',
+        searchUrl: baseUrl + '/api/permissions/groups?ps=100&permission=' + this.options.permission,
+        selectUrl: baseUrl + '/api/permissions/add_group',
+        deselectUrl: baseUrl + '/api/permissions/remove_group',
+        extra: {
+          permission: this.options.permission
         },
-        getItemKey: function (group) {
-          return group.name;
-        },
-        selectItem: function (group, callback) {
-          Permissions.grantToGroup(that.options.permission, group.name).done(callback);
-        },
-        deselectItem: function (group, callback) {
-          Permissions.revokeFromGroup(that.options.permission, group.name).done(callback);
+        selectParameter: 'groupName',
+        selectParameterValue: 'name',
+        parse: function (r) {
+          this.more = false;
+          return r.groups;
         }
-      };
-      React.render(
-          React.createElement(SelectList, props),
-          this.$('#global-permissions-groups')[0]
-      );
+      });
     },
 
     onDestroy: function () {
index 54c413421270a2a5f1c82b6c4e1c09152c23cb6b..b5660c650da6392b5187340a3b561a54e8a30af1 100644 (file)
@@ -1,43 +1,36 @@
 define([
   'components/common/modals',
-  'react',
-  'components/select-list/main',
-  '../../api/permissions',
+  'components/common/select-list',
   './templates'
-], function (Modal, React, SelectList, Permissions) {
+], function (Modal) {
 
   return Modal.extend({
     template: Templates['global-permissions-users'],
 
     onRender: function () {
-      var that = this;
       this._super();
-      var props = {
-        loadItems: function (options, callback) {
-          var data = { permission: that.options.permission, p: options.page, ps: 100 };
-          options.query ? _.extend(data, { q: options.query }) : _.extend(data, { selected: options.selection });
-          Permissions.getUsers(data).done(function (r) {
-            var paging = _.defaults({}, r.paging, { total: 0, pageIndex: 1 });
-            callback(r.users, paging);
-          });
+      new window.SelectList({
+        el: this.$('#global-permissions-users'),
+        width: '100%',
+        readOnly: false,
+        focusSearch: false,
+        format: function (item) {
+          return item.name + '<br><span class="note">' + item.login + '</span>';
         },
-        renderItem: function (user) {
-          return user.name + '<br><span class="note">' + user.login + '</span>';
+        queryParam: 'q',
+        searchUrl: baseUrl + '/api/permissions/users?ps=100&permission=' + this.options.permission,
+        selectUrl: baseUrl + '/api/permissions/add_user',
+        deselectUrl: baseUrl + '/api/permissions/remove_user',
+        extra: {
+          permission: this.options.permission
         },
-        getItemKey: function (user) {
-          return user.login;
-        },
-        selectItem: function (user, callback) {
-          Permissions.grantToUser(that.options.permission, user.login).done(callback);
-        },
-        deselectItem: function (user, callback) {
-          Permissions.revokeFromUser(that.options.permission, user.login).done(callback);
+        selectParameter: 'login',
+        selectParameterValue: 'login',
+        parse: function (r) {
+          this.more = false;
+          return r.users;
         }
-      };
-      React.render(
-          React.createElement(SelectList, props),
-          this.$('#global-permissions-users')[0]
-      );
+      });
     },
 
     onDestroy: function () {
index 0c49e3c55849e132cf111f0d14c0fe6dd442badb..5e00efe9b8646f174bc8a67e4ec21fd92ff7d4a9 100644 (file)
@@ -1,48 +1,48 @@
 define([
   'components/common/modals',
-  'react',
-  'components/select-list/main',
-  '../../api/permissions',
+  'components/common/select-list',
   './templates'
-], function (Modal, React, SelectList, Permissions) {
+], function (Modal) {
 
   return Modal.extend({
     template: Templates['project-permissions-groups'],
 
     onRender: function () {
-      var that = this;
       this._super();
-      var props = {
-        loadItems: function (options, callback) {
-          var _data = { permission: that.options.permission, projectId: that.options.project, p: options.page, ps: 100 };
-          options.query ? _.extend(_data, { q: options.query }) : _.extend(_data, { selected: options.selection });
-          Permissions.getGroups(_data).done(function (r) {
-            var paging = _.defaults({}, r.paging, { total: 0, pageIndex: 1 });
-            callback(r.groups, paging);
-          });
+      new window.SelectList({
+        el: this.$('#project-permissions-groups'),
+        width: '100%',
+        readOnly: false,
+        focusSearch: false,
+        format: function (item) {
+          return item.name;
         },
-        renderItem: function (group) {
-          return group.name;
+        queryParam: 'q',
+        searchUrl: baseUrl + '/api/permissions/groups?ps=100&permission=' + this.options.permission + '&projectId=' + this.options.project,
+        selectUrl: baseUrl + '/api/permissions/add_group',
+        deselectUrl: baseUrl + '/api/permissions/remove_group',
+        extra: {
+          permission: this.options.permission,
+          projectId: this.options.project
         },
-        getItemKey: function (group) {
-          return group.name;
-        },
-        selectItem: function (group, callback) {
-          Permissions.grantToGroup(that.options.permission, group.name, that.options.project).done(callback);
-        },
-        deselectItem: function (group, callback) {
-          Permissions.revokeFromGroup(that.options.permission, group.name, that.options.project).done(callback);
+        selectParameter: 'groupName',
+        selectParameterValue: 'name',
+        parse: function (r) {
+          this.more = false;
+          return r.groups;
         }
-      };
-      React.render(
-          React.createElement(SelectList, props),
-          this.$('#project-permissions-groups')[0]
-      );
+      });
     },
 
     onDestroy: function () {
       this.options.refresh && this.options.refresh();
       this._super();
+    },
+
+    serializeData: function () {
+      return _.extend(Modal.prototype.serializeData.apply(this, arguments), {
+        projectName: this.options.projectName
+      })
     }
   });
 
index 31c03a1572f80b7f295fc2ab190beada41dcaaab..9d7baf2b0a5a4b978c875eeb82a083c346773721 100644 (file)
@@ -14,6 +14,7 @@ export default React.createClass({
     new GroupsView({
       permission: permission,
       project: this.props.project.uuid,
+      projectName: this.props.project.name,
       refresh: this.props.refresh
     }).render();
   },
@@ -23,6 +24,7 @@ export default React.createClass({
     new UsersView({
       permission: permission,
       project: this.props.project.uuid,
+      projectName: this.props.project.name,
       refresh: this.props.refresh
     }).render();
   },
index c5f551e3682eb7d80ffe57908ca91e691581da95..68ceacf26b09ac8e6838127194813c1a42deefa4 100644 (file)
@@ -1,5 +1,5 @@
 <div class="modal-head">
-  <h2>Update Groups</h2>
+  <h2>Update Groups of "{{projectName}}"</h2>
 </div>
 <div class="modal-body">
   <div class="js-modal-messages"></div>
index acfd4eaf75d1f44728bec5b4c983baea4997c17b..b21ac813bccb48f8c5191f525f5a386c1fa26915 100644 (file)
@@ -1,5 +1,5 @@
 <div class="modal-head">
-  <h2>Update Users</h2>
+  <h2>Update Users of "{{projectName}}"</h2>
 </div>
 <div class="modal-body">
   <div class="js-modal-messages"></div>
index 0ed4f2cc000e446cbf2b49e1377ab43226dee0d2..5f54a1ad2a90a233b3fc748196f8a0d22af1b4e8 100644 (file)
@@ -1,48 +1,48 @@
 define([
   'components/common/modals',
-  'react',
-  'components/select-list/main',
-  '../../api/permissions',
+  'components/common/select-list',
   './templates'
-], function (Modal, React, SelectList, Permissions) {
+], function (Modal) {
 
   return Modal.extend({
     template: Templates['project-permissions-users'],
 
     onRender: function () {
-      var that = this;
       this._super();
-      var props = {
-        loadItems: function (options, callback) {
-          var data = { permission: that.options.permission, projectId: that.options.project, p: options.page, ps: 100 };
-          options.query ? _.extend(data, { q: options.query }) : _.extend(data, { selected: options.selection });
-          Permissions.getUsers(data).done(function (r) {
-            var paging = _.defaults({}, r.paging, { total: 0, pageIndex: 1 });
-            callback(r.users, paging);
-          });
+      new window.SelectList({
+        el: this.$('#project-permissions-users'),
+        width: '100%',
+        readOnly: false,
+        focusSearch: false,
+        format: function (item) {
+          return item.name + '<br><span class="note">' + item.login + '</span>';
         },
-        renderItem: function (user) {
-          return user.name + '<br><span class="note">' + user.login + '</span>';
+        queryParam: 'q',
+        searchUrl: baseUrl + '/api/permissions/users?ps=100&permission=' + this.options.permission + '&projectId=' + this.options.project,
+        selectUrl: baseUrl + '/api/permissions/add_user',
+        deselectUrl: baseUrl + '/api/permissions/remove_user',
+        extra: {
+          permission: this.options.permission,
+          projectId: this.options.project
         },
-        getItemKey: function (user) {
-          return user.login;
-        },
-        selectItem: function (user, callback) {
-          Permissions.grantToUser(that.options.permission, user.login, that.options.project).done(callback);
-        },
-        deselectItem: function (user, callback) {
-          Permissions.revokeFromUser(that.options.permission, user.login, that.options.project).done(callback);
+        selectParameter: 'login',
+        selectParameterValue: 'login',
+        parse: function (r) {
+          this.more = false;
+          return r.users;
         }
-      };
-      React.render(
-          React.createElement(SelectList, props),
-          this.$('#project-permissions-users')[0]
-      );
+      });
     },
 
     onDestroy: function () {
       this.options.refresh && this.options.refresh();
       this._super();
+    },
+
+    serializeData: function () {
+      return _.extend(Modal.prototype.serializeData.apply(this, arguments), {
+        projectName: this.options.projectName
+      })
     }
   });
 
index db77759fb01e0f1b13146833cc75e924f765739a..58d6c50ea0087022c31c6221f7f74c796cb32258 100644 (file)
@@ -2819,13 +2819,13 @@ projects_role.criteria.key=Key contains
 projects_role.role=Role Membership For New
 projects_role.groups=Groups
 projects_role.admin=Administer
-projects_role.admin.desc=Ability to access project settings and perform administration tasks. (Users will also need "Browse" permission)
+projects_role.admin.desc=Access project settings and perform administration tasks. (Users will also need "Browse" permission)
 projects_role.issueadmin=Administer Issues
-projects_role.issueadmin.desc=Grants the permission to perform advanced editing on issues: marking an issue False Positive / Won't Fix or changing an Issue's severity. (Users will also need "Browse" permission)
+projects_role.issueadmin.desc=Perform advanced editing on issues: marking an issue False Positive / Won't Fix, and changing an Issue's severity. (Users will also need "Brose" permission)
 projects_role.user=Browse
-projects_role.user.desc=Ability to access a project, browse its measures, and create/edit issues for it.
+projects_role.user.desc=Access a project, browse its measures, and create/edit issues for it.
 projects_role.codeviewer=See Source Code
-projects_role.codeviewer.desc=Ability to view the project's source code. (Users will also need "Browse" permission)
+projects_role.codeviewer.desc=View the project's source code. (Users will also need "Browse" permission)
 projects_role.bulk_change=Bulk Change
 projects_role.apply_template=Apply Permission Template
 projects_role.apply_template_to_xxx=Apply Permission Template To "{0}"