From ec184554fcba165e64cfa1ed2b9b20b25938f6d4 Mon Sep 17 00:00:00 2001 From: Simon Brandhof Date: Wed, 20 Jul 2011 14:10:33 +0200 Subject: SONAR-2628 improve administration console --- .../app/controllers/manual_measures_controller.rb | 11 +++++-- .../webapp/WEB-INF/app/models/manual_measure.rb | 7 +++++ .../app/views/filters/_customize_list.html.erb | 6 ++-- .../app/views/filters/_customize_treemap.html.erb | 6 ++-- .../webapp/WEB-INF/app/views/filters/new.html.erb | 26 ++++++++-------- .../WEB-INF/app/views/layouts/_layout.html.erb | 2 +- .../app/views/manual_measures/_edit_form.html.erb | 14 --------- .../app/views/manual_measures/index.html.erb | 35 +++++++++++++++------- .../WEB-INF/app/views/manual_measures/new.html.erb | 20 +++++++++---- sonar-server/src/main/webapp/stylesheets/style.css | 6 ++-- 10 files changed, 76 insertions(+), 57 deletions(-) delete mode 100644 sonar-server/src/main/webapp/WEB-INF/app/views/manual_measures/_edit_form.html.erb (limited to 'sonar-server/src') diff --git a/sonar-server/src/main/webapp/WEB-INF/app/controllers/manual_measures_controller.rb b/sonar-server/src/main/webapp/WEB-INF/app/controllers/manual_measures_controller.rb index 947da59ca2f..f2a9c564f21 100644 --- a/sonar-server/src/main/webapp/WEB-INF/app/controllers/manual_measures_controller.rb +++ b/sonar-server/src/main/webapp/WEB-INF/app/controllers/manual_measures_controller.rb @@ -21,7 +21,7 @@ class ManualMeasuresController < ApplicationController SECTION=Navigation::SECTION_RESOURCE before_filter :load_resource - verify :method => :post, :only => [:save, :delete], :redirect_to => { :action => :index } + verify :method => :post, :only => [:save, :delete], :redirect_to => {:action => :index} def index load_measures() @@ -47,7 +47,11 @@ class ManualMeasuresController < ApplicationController measure.value = params[:val] measure.description = params[:desc] measure.save! - redirect_to :action => 'index', :resource => params[:resource], :metric => params[:metric] + if (params[:redirect_to_new]=='true') + redirect_to :action => 'new', :resource => params[:resource] + else + redirect_to :action => 'index', :resource => params[:resource], :metric => params[:metric] + end end def delete @@ -62,9 +66,10 @@ class ManualMeasuresController < ApplicationController @resource=Project.by_key(params[:resource]) return redirect_to home_path unless @resource return access_denied unless has_role?(:admin, @resource) + @snapshot=@resource.last_snapshot end def load_measures - @measures=ManualMeasure.find(:all, :conditions => ['resource_id=?', @resource.id]).select{|m| m.metric.enabled}.sort_by{|m| m.metric.domain} + @measures=ManualMeasure.find(:all, :conditions => ['resource_id=?', @resource.id]).select { |m| m.metric.enabled } end end diff --git a/sonar-server/src/main/webapp/WEB-INF/app/models/manual_measure.rb b/sonar-server/src/main/webapp/WEB-INF/app/models/manual_measure.rb index 7273e229d7d..5907c95a9ab 100644 --- a/sonar-server/src/main/webapp/WEB-INF/app/models/manual_measure.rb +++ b/sonar-server/src/main/webapp/WEB-INF/app/models/manual_measure.rb @@ -51,4 +51,11 @@ class ManualMeasure < ActiveRecord::Base def validate_metric errors.add_to_base("Not a valid metric") unless metric && metric.enabled? end + + def pending?(snapshot=nil) + if snapshot.nil? + snapshot=resource.last_snapshot + end + snapshot && updated_at && snapshot.created_at - + <%= message('filters.add_column') -%>: @@ -32,7 +32,7 @@ - <%= message('filters.default_sorted_column') -%>: + <%= message('filters.default_sorted_column') -%>:
diff --git a/sonar-server/src/main/webapp/WEB-INF/app/views/filters/_customize_treemap.html.erb b/sonar-server/src/main/webapp/WEB-INF/app/views/filters/_customize_treemap.html.erb index 748def5b202..7b6eea93a2e 100644 --- a/sonar-server/src/main/webapp/WEB-INF/app/views/filters/_customize_treemap.html.erb +++ b/sonar-server/src/main/webapp/WEB-INF/app/views/filters/_customize_treemap.html.erb @@ -5,14 +5,14 @@ %> - <%= message('size') -%>: + <%= message('size') -%>: <%= select_tag 'columns[]', options_grouped_by_domain(Sonar::TreemapBuilder.size_metrics({:exclude_user_managed => true}), size_metric.key), :id => 'size_metric' %> - <%= message('color') -%>: + <%= message('color') -%>: <%= select_tag 'columns[]', options_grouped_by_domain(Sonar::TreemapBuilder.color_metrics, color_metric.key), :id => 'color_metric' %> @@ -20,7 +20,7 @@ - + diff --git a/sonar-server/src/main/webapp/WEB-INF/app/views/filters/new.html.erb b/sonar-server/src/main/webapp/WEB-INF/app/views/filters/new.html.erb index 654cbca200b..eabbdbf682b 100644 --- a/sonar-server/src/main/webapp/WEB-INF/app/views/filters/new.html.erb +++ b/sonar-server/src/main/webapp/WEB-INF/app/views/filters/new.html.erb @@ -23,7 +23,7 @@ table#columns td { - + - + - + - + - + - + @@ -100,7 +100,7 @@ table#columns td { - + - + - + - + - + - +
<%= message('name') -%>:<%= message('name') -%>: <% if is_admin? %> @@ -36,7 +36,7 @@ table#columns td {
<%= message('path') -%>:<%= message('path') -%>: <%= @filter.resource ? @filter.resource.path_name : params[:path_name] -%> @@ -45,7 +45,7 @@ table#columns td {
<%= message('filters.search_for') -%>:<%= message('filters.search_for') -%>: <% qualifiers=(@filter.criterion('qualifier') ? @filter.criterion('qualifier').text_values : []) %> @@ -74,19 +74,19 @@ table#columns td {
<%= message('criteria') -%>:<%= message('criteria') -%>: <%= render :partial => 'filters/criterion', :locals => {:id => '0', :criterion => (@filter.measure_criteria.size>0 ? @filter.measure_criteria[0] : nil)} %>
<%= message('and').downcase -%>: <%= message('and').downcase -%>: <%= render :partial => 'filters/criterion', :locals => {:id => '1', :criterion => (@filter.measure_criteria.size>1 ? @filter.measure_criteria[1] : nil) } %>
<%= message('and').downcase -%>: <%= message('and').downcase -%>: <%= render :partial => 'filters/criterion', :locals => {:id => '2', :criterion => (@filter.measure_criteria.size>2 ? @filter.measure_criteria[2] : nil) } %>
<%= message('filters.default_period') -%>:<%= message('filters.default_period') -%>:
<%= message('language') -%>:<%= message('language') -%>: <% languages=(@filter.criterion('language') ? @filter.criterion('language').text_values : []) %> <% controller.java_facade.getLanguages().each do |language| %> @@ -121,13 +121,13 @@ table#columns td {
<%= image_tag 'star.png' %> <%= image_tag 'star.png' %> >
<% key_regexp_criterion=@filter.criterion('key') %> @@ -135,7 +135,7 @@ table#columns td {
<% name_regexp_criterion=@filter.criterion('name') %> @@ -143,7 +143,7 @@ table#columns td {
<% date_criterion = @filter.criterion('date') %> - + - - - - - - diff --git a/sonar-server/src/main/webapp/WEB-INF/app/views/manual_measures/index.html.erb b/sonar-server/src/main/webapp/WEB-INF/app/views/manual_measures/index.html.erb index 5f5ba47e5b5..ea9e0d94e7b 100644 --- a/sonar-server/src/main/webapp/WEB-INF/app/views/manual_measures/index.html.erb +++ b/sonar-server/src/main/webapp/WEB-INF/app/views/manual_measures/index.html.erb @@ -2,6 +2,13 @@ #manualMeasures td { vertical-align: top; } + + #manualMeasures td.pendingMeasure { + background-color: orange; + width: 4px; + padding: 0; + cursor: help; + }
    @@ -12,42 +19,48 @@
-
<%= message('filters.display_as') -%>:<%= message('filters.display_as') -%>: id="view-list" onClick="$('view-loading').show();submit();"> diff --git a/sonar-server/src/main/webapp/WEB-INF/app/views/layouts/_layout.html.erb b/sonar-server/src/main/webapp/WEB-INF/app/views/layouts/_layout.html.erb index 8a6e7b55b5c..3b55930adde 100644 --- a/sonar-server/src/main/webapp/WEB-INF/app/views/layouts/_layout.html.erb +++ b/sonar-server/src/main/webapp/WEB-INF/app/views/layouts/_layout.html.erb @@ -50,7 +50,7 @@ <% end %> <% if has_role?(:admin, @project) %>
  • <%= message('sidebar.project_system') -%>
  • -
  • <%= message('manual_measures.page') -%>
  • +
  • <%= message('manual_measures.page') -%>
  • <% if (@project.project? || @project.module?) %>
  • <%= message('project_settings.page') -%>
  • <% end %> diff --git a/sonar-server/src/main/webapp/WEB-INF/app/views/manual_measures/_edit_form.html.erb b/sonar-server/src/main/webapp/WEB-INF/app/views/manual_measures/_edit_form.html.erb deleted file mode 100644 index 24eb195c0f2..00000000000 --- a/sonar-server/src/main/webapp/WEB-INF/app/views/manual_measures/_edit_form.html.erb +++ /dev/null @@ -1,14 +0,0 @@ -
    <%= measure.metric.domain -%><%= measure.metric.short_name -%> - - - - - - Cancel -
    +
    - + + - + <% if @measures.empty? %> - + <% end %> <% @measures.each do |measure| %> - + + <% if measure.pending?(@snapshot) %> + + <% else %> + + <% end %> - - <% end %> -
    DomainDomain Metric Value Description Author DateOperationsOperations
    No measuresNo measures
    <%= measure.metric.domain -%> <%= measure.metric.short_name -%> <%= measure.value -%> <%= measure.description -%><%= measure.username -%> + <%= measure.username -%> - <%= l(measure.updated_at) -%> + <%= l(measure.updated_at) -%> - Edit - <%= link_to 'Delete', {:action => 'delete', :metric => measure.metric.key, :resource => @resource.id}, {:method => 'POST', :confirm => "This measure will be deleted during next project analysis", :class => 'action'} -%> + Edit + <%= link_to 'Delete', {:action => 'delete', :metric => measure.metric.key, :resource => @resource.id}, {:method => 'POST', :confirm => "This measure will be deleted during next project analysis", :class => 'action'} -%>
    \ No newline at end of file +
    + diff --git a/sonar-server/src/main/webapp/WEB-INF/app/views/manual_measures/new.html.erb b/sonar-server/src/main/webapp/WEB-INF/app/views/manual_measures/new.html.erb index 8e917aead2a..4dc0ef8e3bb 100644 --- a/sonar-server/src/main/webapp/WEB-INF/app/views/manual_measures/new.html.erb +++ b/sonar-server/src/main/webapp/WEB-INF/app/views/manual_measures/new.html.erb @@ -3,6 +3,10 @@ document.location = '<%= ApplicationController.root_context-%>/manual_measures/new?resource=<%= @resource.key -%>&metric=' + $('metricSelect').getValue(); return false; } + function saveAndAddNew() { + $('redirect_to_new').setValue('true'); + return true; + } @@ -10,7 +14,7 @@ - <% if @measure %> - - <% unless @measure.new_record?() %> - - diff --git a/sonar-server/src/main/webapp/stylesheets/style.css b/sonar-server/src/main/webapp/stylesheets/style.css index 70738451f96..49d3332679c 100644 --- a/sonar-server/src/main/webapp/stylesheets/style.css +++ b/sonar-server/src/main/webapp/stylesheets/style.css @@ -639,11 +639,11 @@ table.form td { padding: 2px 5px; vertical-align: top; } -table.form td.first { - min-width: 120px; +table.form td.keyCell { + width: 140px; text-align: right; font-weight: bold; - vertical-align: middle; + vertical-align: top; } table.form td img { vertical-align: bottom; -- cgit v1.2.3
    + Metric: @@ -20,15 +24,17 @@ <% end %> + <%= link_to 'Manage metrics', :controller => 'metrics', :action => 'index' -%> - <% if @metric %> + <% if @metric && @metric.description %> +
    <%= @metric.description -%> <% end %>
    + Value: @@ -36,7 +42,7 @@
    + Description: @@ -45,7 +51,7 @@
    + Last change: @@ -55,11 +61,13 @@ <% end %> <% end %>
    + <% if @measure %> + + <% end %> <%= link_to 'Cancel', :action => 'index', :resource => @resource.key -%>