From 31e7fdbe45238ada90eb3838db24142f1638a9e3 Mon Sep 17 00:00:00 2001 From: Julien Lancelot Date: Mon, 15 Jul 2013 08:33:56 +0200 Subject: [PATCH] SONAR-4498 Use modal windows in the "Roles" page to select groups/users --- .../resources/org/sonar/l10n/core.properties | 8 +-- .../app/controllers/roles_controller.rb | 14 +--- .../_edit_groups.html.erb | 11 +-- .../permission_templates/_edit_users.html.erb | 8 ++- .../app/views/roles/_edit_groups.html.erb | 67 +++++++++++++++++++ .../app/views/roles/_edit_users.html.erb | 64 ++++++++++++++++++ .../edit_default_project_groups.html.erb | 55 --------------- .../roles/edit_default_project_users.html.erb | 54 --------------- .../app/views/roles/edit_groups.html.erb | 60 ----------------- .../app/views/roles/edit_users.html.erb | 58 ---------------- .../WEB-INF/app/views/roles/global.html.erb | 6 +- .../WEB-INF/app/views/roles/projects.html.erb | 18 +++-- 12 files changed, 165 insertions(+), 258 deletions(-) create mode 100644 sonar-server/src/main/webapp/WEB-INF/app/views/roles/_edit_groups.html.erb create mode 100644 sonar-server/src/main/webapp/WEB-INF/app/views/roles/_edit_users.html.erb delete mode 100644 sonar-server/src/main/webapp/WEB-INF/app/views/roles/edit_default_project_groups.html.erb delete mode 100644 sonar-server/src/main/webapp/WEB-INF/app/views/roles/edit_default_project_users.html.erb delete mode 100644 sonar-server/src/main/webapp/WEB-INF/app/views/roles/edit_groups.html.erb delete mode 100644 sonar-server/src/main/webapp/WEB-INF/app/views/roles/edit_users.html.erb diff --git a/plugins/sonar-core-plugin/src/main/resources/org/sonar/l10n/core.properties b/plugins/sonar-core-plugin/src/main/resources/org/sonar/l10n/core.properties index e6e567d880d..8badcd35be4 100644 --- a/plugins/sonar-core-plugin/src/main/resources/org/sonar/l10n/core.properties +++ b/plugins/sonar-core-plugin/src/main/resources/org/sonar/l10n/core.properties @@ -2242,7 +2242,7 @@ global_permissions.dryRunScan.desc=Ability to execute local (dry run) analyses w #------------------------------------------------------------------------------ # -# PROJECTS ROLES +# PROJECTS PERMISSIONS # #------------------------------------------------------------------------------ projects_role.criteria.name=Name contains @@ -2250,11 +2250,11 @@ projects_role.criteria.key=Key contains projects_role.role=Role Membership For New projects_role.users=Users projects_role.groups=Groups -projects_role.admin=Role: Administrators +projects_role.admin=Administrators projects_role.admin.desc=Ability to perform administration tasks for the project by accessing its settings. -projects_role.user=Role: Users +projects_role.user=Users projects_role.user.desc=Ability to browse the measures and to create/edit issues on the project. -projects_role.codeviewer=Role: Code Viewers +projects_role.codeviewer=Code Viewers projects_role.codeviewer.desc=Ability to view the source code of the project. projects_role.apply_template=Apply permission template projects_role.apply_template.form.title=Apply permission template diff --git a/sonar-server/src/main/webapp/WEB-INF/app/controllers/roles_controller.rb b/sonar-server/src/main/webapp/WEB-INF/app/controllers/roles_controller.rb index df7403e2f32..a7b55db8ebc 100644 --- a/sonar-server/src/main/webapp/WEB-INF/app/controllers/roles_controller.rb +++ b/sonar-server/src/main/webapp/WEB-INF/app/controllers/roles_controller.rb @@ -50,21 +50,13 @@ class RolesController < ApplicationController def edit_users @project=Project.by_key(params[:resource]) if params[:resource].present? @role = params[:role] + render :partial => 'edit_users' end def edit_groups @project=Project.by_key(params[:resource]) if params[:resource].present? @role = params[:role] - end - - def edit_default_project_groups - bad_request('Missing role') if params[:role].blank? - bad_request('Missing qualifier') if params[:qualifier].blank? - end - - def edit_default_project_users - bad_request('Missing role') if params[:role].blank? - bad_request('Missing qualifier') if params[:qualifier].blank? + render :partial => 'edit_groups' end def apply_template_form @@ -78,7 +70,7 @@ class RolesController < ApplicationController def set_users bad_request('Missing role') if params[:role].blank? UserRole.grant_users(params[:users], params[:role], params[:resource]) - redirect + render :text => '', :status => 200 end def set_groups diff --git a/sonar-server/src/main/webapp/WEB-INF/app/views/permission_templates/_edit_groups.html.erb b/sonar-server/src/main/webapp/WEB-INF/app/views/permission_templates/_edit_groups.html.erb index a5d0a387401..fce1c839136 100644 --- a/sonar-server/src/main/webapp/WEB-INF/app/views/permission_templates/_edit_groups.html.erb +++ b/sonar-server/src/main/webapp/WEB-INF/app/views/permission_templates/_edit_groups.html.erb @@ -4,9 +4,10 @@
@@ -52,9 +53,9 @@ }, error: function (xhr, textStatus, errorThrown) { var htmlClass = 'permission-template'; - $j('input[id^="submit-permission-template"]').removeAttr('disabled'); - $j('.' + htmlClass + '.errors').show(); - $j('.' + htmlClass + '.errors').html(xhr.responseText); + $j('input[id="submit-permission-template-update"]').removeAttr('disabled'); + $j('.' + htmlClass + '.error').show(); + $j('.' + htmlClass + '.error').html(xhr.responseText); } }); diff --git a/sonar-server/src/main/webapp/WEB-INF/app/views/permission_templates/_edit_users.html.erb b/sonar-server/src/main/webapp/WEB-INF/app/views/permission_templates/_edit_users.html.erb index 9a2b7256cba..9125985ed90 100644 --- a/sonar-server/src/main/webapp/WEB-INF/app/views/permission_templates/_edit_users.html.erb +++ b/sonar-server/src/main/webapp/WEB-INF/app/views/permission_templates/_edit_users.html.erb @@ -7,6 +7,7 @@

<%= message('permission_template.edit_permissions') -%>

diff --git a/sonar-server/src/main/webapp/WEB-INF/app/views/roles/_edit_users.html.erb b/sonar-server/src/main/webapp/WEB-INF/app/views/roles/_edit_users.html.erb new file mode 100644 index 00000000000..b5f8cd1b7ee --- /dev/null +++ b/sonar-server/src/main/webapp/WEB-INF/app/views/roles/_edit_users.html.erb @@ -0,0 +1,64 @@ +<% + granted_users=users(@role, params[:resource]) + ungranted_users=(all_users - granted_users) +%> +
+ + +
+ +
+
+ + diff --git a/sonar-server/src/main/webapp/WEB-INF/app/views/roles/edit_default_project_groups.html.erb b/sonar-server/src/main/webapp/WEB-INF/app/views/roles/edit_default_project_groups.html.erb deleted file mode 100644 index 8d4a2003e2b..00000000000 --- a/sonar-server/src/main/webapp/WEB-INF/app/views/roles/edit_default_project_groups.html.erb +++ /dev/null @@ -1,55 +0,0 @@ -<% - granted_groups=default_project_group_names(params[:role], params[:qualifier]) - all_groups = ['Anyone'].concat(Api::Utils.insensitive_sort(Group.all.map{|group| group.name})) - ungranted_groups=all_groups - granted_groups -%> -
» Back
-

Role Membership For New <%= message("qualifiers.#{params[:qualifier]}") -%>

-
-
-
- - - - - - - - - - - - - -
-

Add Groups

- -
-
-

-
- -
-

Role: <%= role_name(params[:role]) -%>

- -
- - -
-
- -
diff --git a/sonar-server/src/main/webapp/WEB-INF/app/views/roles/edit_default_project_users.html.erb b/sonar-server/src/main/webapp/WEB-INF/app/views/roles/edit_default_project_users.html.erb deleted file mode 100644 index 9108ff50d96..00000000000 --- a/sonar-server/src/main/webapp/WEB-INF/app/views/roles/edit_default_project_users.html.erb +++ /dev/null @@ -1,54 +0,0 @@ -<% - granted_users=default_project_users(params[:role], params[:qualifier]) - ungranted_users=all_users - granted_users -%> -
» Back
-

Role Membership For New <%= message("qualifiers.#{params[:qualifier]}") -%>

-
-
-
- - - - - - - - - - - - - -
-

Add Users

- -
-
-

-
- -
-

Role: <%= role_name(params[:role]) -%>

- -
- - -
-
- -
diff --git a/sonar-server/src/main/webapp/WEB-INF/app/views/roles/edit_groups.html.erb b/sonar-server/src/main/webapp/WEB-INF/app/views/roles/edit_groups.html.erb deleted file mode 100644 index 7a258bc5218..00000000000 --- a/sonar-server/src/main/webapp/WEB-INF/app/views/roles/edit_groups.html.erb +++ /dev/null @@ -1,60 +0,0 @@ -<% - granted_groups=groups(@role, params[:resource]) - ungranted_groups=all_groups - granted_groups - if @project - title='Role Membership For: ' + h(@project.name) - else - title="#{global_role_name(@role)}" - end -%> -
» Back
-

<%= title %>

-
-
-
- - - - - - - - - - - - - - -
-

Add Groups

- -
-
-

-
- -
-

Role: <%= @project ? role_name(@role) : global_role_name(@role) -%>

- -
- - -
-
- -
diff --git a/sonar-server/src/main/webapp/WEB-INF/app/views/roles/edit_users.html.erb b/sonar-server/src/main/webapp/WEB-INF/app/views/roles/edit_users.html.erb deleted file mode 100644 index 08f655b0aaa..00000000000 --- a/sonar-server/src/main/webapp/WEB-INF/app/views/roles/edit_users.html.erb +++ /dev/null @@ -1,58 +0,0 @@ -<% - granted_users=users(@role, params[:resource]) - ungranted_users=(all_users - granted_users) - if @project - title='Role Membership For: ' + h(@project.name) - else - title="#{global_role_name(@role)}" - end -%> -
» Back
-

<%= title %>

-
-
-
- - - - - - - - - - - - - - -
-

Add Users

- -
-
-

-
- -
-

Role: <%= @project ? role_name(@role) : global_role_name(@role) -%>

- -
- - -
-
- -
diff --git a/sonar-server/src/main/webapp/WEB-INF/app/views/roles/global.html.erb b/sonar-server/src/main/webapp/WEB-INF/app/views/roles/global.html.erb index ff6e336ee74..de6f010ae2f 100644 --- a/sonar-server/src/main/webapp/WEB-INF/app/views/roles/global.html.erb +++ b/sonar-server/src/main/webapp/WEB-INF/app/views/roles/global.html.erb @@ -16,11 +16,13 @@ <%= message('global_permissions.' + global_permission_key + '.desc') -%> <%= users(global_permission_key).map(&:name).join(', ') -%> - (<%= link_to "select", {:action => 'edit_users', :role => global_permission_key, :redirect => 'global'}, :class => 'link-action', :id => "select-users-#{global_permission_key}" -%>) + (<%= link_to message('select'), {:action => :edit_users, :role => global_permission_key}, + :id => "select-users-#{global_permission_key}", :class => 'open-modal link-action', 'modal-width' => '760px' %>)
<%= groups(global_permission_key).map{|g| group_name(g)}.join(', ') %> - (<%= link_to "select", {:action => 'edit_groups', :role => global_permission_key, :redirect => 'global'}, :class => 'link-action', :id => "select-groups-#{global_permission_key}" -%>) + (<%= link_to message('select'), {:action => :edit_groups, :role => global_permission_key}, + :id => "select-groups-#{global_permission_key}", :class => 'open-modal link-action', 'modal-width' => '760px' %>)
<% end %> diff --git a/sonar-server/src/main/webapp/WEB-INF/app/views/roles/projects.html.erb b/sonar-server/src/main/webapp/WEB-INF/app/views/roles/projects.html.erb index d2bea8d3bfe..8fc851b830b 100644 --- a/sonar-server/src/main/webapp/WEB-INF/app/views/roles/projects.html.erb +++ b/sonar-server/src/main/webapp/WEB-INF/app/views/roles/projects.html.erb @@ -71,9 +71,11 @@ groups=Api::Utils.insensitive_sort(project.group_roles.select { |gr| gr.role=='admin' }.map { |gr| group_name(gr.group) }) %> <%= users.join(', ') %> - (select users)
+ (<%= link_to message('select users'), {:action => :edit_users, :role => 'admin', :resource => project.id}, + :id => "selectu-admin-#{u project.kee}", :class => 'open-modal link-action', 'modal-width' => '760px' %>)
<%= groups.join(', ') %> - (select groups) + (<%= link_to message('select groups'), {:action => :edit_groups, :role => 'admin', :resource => project.id}, + :id => "selectg-admin-#{u project.kee}", :class => 'open-modal link-action', 'modal-width' => '760px' %>)
<% @@ -81,9 +83,11 @@ groups=Api::Utils.insensitive_sort(project.group_roles.select { |gr| gr.role=='user' }.map { |gr| group_name(gr.group) }) %> <%= users.join(', ') %> - (select users)
+ (<%= link_to message('select users'), {:action => :edit_users, :role => 'user', :resource => project.id}, + :id => "selectu-user-#{u project.kee}", :class => 'open-modal link-action', 'modal-width' => '760px' %>)
<%= groups.join(', ') %> - (select groups) + (<%= link_to message('select groups'), {:action => :edit_groups, :role => 'user', :resource => project.id}, + :id => "selectg-user-#{u project.kee}", :class => 'open-modal link-action', 'modal-width' => '760px' %>)
<% @@ -91,9 +95,11 @@ groups=Api::Utils.insensitive_sort(project.group_roles.select { |gr| gr.role=='codeviewer' }.map { |gr| group_name(gr.group) }) %> <%= users.join(', ') %> - (select users)
+ (<%= link_to message('select users'), {:action => :edit_users, :role => 'codeviewer', :resource => project.id}, + :id => "selectu-codeviewer-#{u project.kee}", :class => 'open-modal link-action', 'modal-width' => '760px' %>)
<%= groups.join(', ') %> - (select groups) + (<%= link_to message('select groups'), {:action => :edit_groups, :role => 'codeviewer', :resource => project.id}, + :id => "selectg-codeviewer-#{u project.kee}", :class => 'open-modal link-action', 'modal-width' => '760px' %>)
<% -- 2.39.5