diff options
author | Jean-Baptiste Vilain <jean-baptiste.vilain@sonarsource.com> | 2013-07-24 17:06:01 +0200 |
---|---|---|
committer | Jean-Baptiste Vilain <jean-baptiste.vilain@sonarsource.com> | 2013-07-24 17:06:01 +0200 |
commit | 8a755efd4325f2ae020ef82f39c7b73781becce4 (patch) | |
tree | 9a4107f72c182423a8da82c28345efd1b7e4a048 /sonar-server | |
parent | 5edbce381be268c40e7ea907274d68147a24a717 (diff) | |
download | sonarqube-8a755efd4325f2ae020ef82f39c7b73781becce4.tar.gz sonarqube-8a755efd4325f2ae020ef82f39c7b73781becce4.zip |
SONAR-3392 Faster display of the modal window used to apply permission templates
Diffstat (limited to 'sonar-server')
3 files changed, 24 insertions, 22 deletions
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 3b68aac03b5..0ccae067312 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 @@ -81,26 +81,25 @@ class RolesController < ApplicationController # GET /roles/apply_template_form?criteria def apply_template_form @permission_templates = Internal.permission_templates.selectAllPermissionTemplates().sort_by {|t| t.name.downcase}.collect {|pt| [pt.name, pt.key]} + @names = params[:names] + @keys = params[:keys] + @qualifiers = params[:qualifiers] || 'TRK' + @results_count = params[:results_count].to_i || 0 - params['qualifiers'] ||= 'TRK' - params['pageSize'] = -1 - - query_result = Internal.component_api.find(params) - components = query_result.components().to_a - - @projects_ids = components.collect{|component| component.getId()} - @qualifier = params[:qualifiers] - - render :partial => 'apply_template_form', - :locals => {:project_name => components.size == 1 ? components[0].name : nil, - :empty => @projects_ids.nil? || @projects_ids.size == 0} + render :partial => 'apply_template_form' end # POST /roles/apply_template?criteria def apply_template verify_post_request require_parameters :template_key + + params['pageSize'] = -1 + components = Internal.component_api.find(params).components().to_a + + params['components'] = components.collect{|component| component.getId()}.join(',') Internal.permissions.applyPermissionTemplate(params) + redirect_to :action => 'projects' end diff --git a/sonar-server/src/main/webapp/WEB-INF/app/views/roles/_apply_template_form.html.erb b/sonar-server/src/main/webapp/WEB-INF/app/views/roles/_apply_template_form.html.erb index 58e2a63cbb6..5062a63e056 100644 --- a/sonar-server/src/main/webapp/WEB-INF/app/views/roles/_apply_template_form.html.erb +++ b/sonar-server/src/main/webapp/WEB-INF/app/views/roles/_apply_template_form.html.erb @@ -1,18 +1,20 @@ <form id="apply-template-form" method="post" action="<%= ApplicationController.root_context -%>/roles/apply_template"> - <% unless empty %> - <input type="hidden" name="components" id="apply-template-components" value="<%= @projects_ids.join(',') %>"/> + <% unless @results_count == 0 %> + <input type="hidden" name="names" id="apply-template-names" value="<%= @names %>"/> + <input type="hidden" name="keys" id="apply-template-keys" value="<%= @keys %>"/> + <input type="hidden" name="qualifiers" id="apply-template-qualifiers" value="<%= @qualifiers %>"/> <% end %> <fieldset> <div class="modal-head"> - <% if project_name %> - <h2><%= message('projects_role.apply_template_to_xxx', :params => project_name) -%></h2> + <% if @results_count == 1 %> + <h2><%= message('projects_role.apply_template_to_xxx', :params => @names) -%></h2> <% else %> <h2><%= message('projects_role.apply_template') -%></h2> <% end %> </div> <div class="modal-body"> <div class="modal-error"/> - <% if empty %> + <% if @results_count == 0 %> <div class="info"> <img src="<%= ApplicationController.root_context -%>/images/information.png" style="vertical-align: text-bottom"/> <%= message 'projects_role.no_projects' -%> @@ -21,14 +23,14 @@ <div class="modal-field"> <%= label_tag 'template_key', 'Permission Template' %> <%= select_tag('template_key', options_for_select(@permission_templates, -1), :style => 'width: 250px;') %> - <% unless project_name %> - <span style="float:right" class="note">(<%= "#{@projects_ids.size} #{message('qualifier.' + @qualifier)}s" %>)</span><br/> + <% unless @results_count == 1 %> + <span style="float:right" class="note">(<%= "#{@results_count} #{message('qualifier.' + @qualifiers)}s" %>)</span><br/> <% end %> </div> <% end %> </div> <div class="modal-foot"> - <% unless empty %> + <% unless @results_count == 0 %> <span id="apply-template-loading-image" class="loading-image hidden"><%= image_tag 'loading.gif' %></span> <input type="submit" value="<%= message('apply') -%>" id="apply-template-submit" class="apply-template" onclick="return displayLoadingImage()" /> <% 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 9ce4a13c7cf..66d1183a69b 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 @@ -34,7 +34,8 @@ <ul class="operations"> <li class="last"> <%= link_to message('projects_role.bulk_change'), {:action => :apply_template_form, :names => @components_names, - :keys => @components_keys, :qualifiers => @components_qualifiers}, + :keys => @components_keys, :qualifiers => @components_qualifiers, + :results_count => @query_result.paging.total}, :id => 'apply-template-modal', :class => 'open-modal link-action' %> </li> </ul> @@ -82,7 +83,7 @@ </td> <% end %> <td align="right"> - <%= link_to message('projects_role.apply_template'), {:action => :apply_template_form, :names => project.name}, + <%= link_to message('projects_role.apply_template'), {:action => :apply_template_form, :names => project.name, :results_count => 1}, :id => "apply-template-#{u project.kee}", :class => 'open-modal link-action' %> </td> </tr> |