Commit b129d88bddf23ae48c197c4f6eaf1ac3f76ae5ed

Authored by João M. M. da Silva + Alessandro Palmeira + Diego Araújo
Committed by Paulo Meireles
1 parent aef90e14

[Mezuro] refactored choose base tool and choose metric views

plugins/mezuro/controllers/myprofile/mezuro_plugin_base_tool_controller.rb
@@ -2,16 +2,9 @@ class MezuroPluginBaseToolController < MezuroPluginMyprofileController @@ -2,16 +2,9 @@ class MezuroPluginBaseToolController < MezuroPluginMyprofileController
2 2
3 append_view_path File.join(File.dirname(__FILE__) + '/../../views') 3 append_view_path File.join(File.dirname(__FILE__) + '/../../views')
4 4
5 - def choose_base_tool  
6 - @configuration_content = profile.articles.find(params[:id])  
7 - @base_tools = Kalibro::BaseTool.all_names  
8 - end  
9 -  
10 def choose_metric 5 def choose_metric
11 @configuration_content = profile.articles.find(params[:id]) 6 @configuration_content = profile.articles.find(params[:id])
12 - @base_tool = params[:base_tool]  
13 - base_tool = Kalibro::BaseTool.find_by_name(@base_tool)  
14 - @supported_metrics = base_tool.nil? ? [] : base_tool.supported_metrics 7 + @base_tools = Kalibro::BaseTool.all
15 end 8 end
16 9
17 end 10 end
plugins/mezuro/lib/kalibro/base_tool.rb
@@ -10,6 +10,11 @@ class Kalibro::BaseTool < Kalibro::Model @@ -10,6 +10,11 @@ class Kalibro::BaseTool < Kalibro::Model
10 new request("BaseTool", :get_base_tool, {:base_tool_name => base_tool_name})[:base_tool] 10 new request("BaseTool", :get_base_tool, {:base_tool_name => base_tool_name})[:base_tool]
11 end 11 end
12 12
  13 + def self.all
  14 + basetools = all_names
  15 + basetools.map{ |name| find_by_name(name) }
  16 + end
  17 +
13 def supported_metric=(value) 18 def supported_metric=(value)
14 @supported_metric = Kalibro::NativeMetric.to_objects_array value 19 @supported_metric = Kalibro::NativeMetric.to_objects_array value
15 end 20 end
plugins/mezuro/test/functional/myprofile/mezuro_plugin_base_tool_controller_test.rb
@@ -22,20 +22,12 @@ class MezuroPluginBaseToolControllerTest < ActionController::TestCase @@ -22,20 +22,12 @@ class MezuroPluginBaseToolControllerTest < ActionController::TestCase
22 @content.save 22 @content.save
23 end 23 end
24 24
25 - should 'test choose base tool' do  
26 - Kalibro::BaseTool.expects(:request).with("BaseTool", :get_base_tool_names).returns({:base_tool_name => @base_tool.name})  
27 - get :choose_base_tool, :profile => @profile.identifier, :id => @content.id  
28 - assert_equal [@base_tool.name], assigns(:base_tools)  
29 - assert_equal @content, assigns(:configuration_content)  
30 - assert_response 200  
31 - end  
32 -  
33 should 'test choose metric' do 25 should 'test choose metric' do
  26 + Kalibro::BaseTool.expects(:request).with("BaseTool", :get_base_tool_names).returns({:base_tool_name => @base_tool.name})
34 Kalibro::BaseTool.expects(:request).with("BaseTool", :get_base_tool, {:base_tool_name => @base_tool.name}).returns({:base_tool => @base_tool_hash}) 27 Kalibro::BaseTool.expects(:request).with("BaseTool", :get_base_tool, {:base_tool_name => @base_tool.name}).returns({:base_tool => @base_tool_hash})
35 - get :choose_metric, :profile => @profile.identifier, :id => @content.id, :base_tool => @base_tool.name 28 + get :choose_metric, :profile => @profile.identifier, :id => @content.id
  29 + assert_equal @base_tool.name, assigns(:base_tools).first.name
36 assert_equal @content, assigns(:configuration_content) 30 assert_equal @content, assigns(:configuration_content)
37 - assert_equal @base_tool.name, assigns(:base_tool)  
38 - assert_equal @base_tool.supported_metric[0].name, assigns(:supported_metrics)[0].name  
39 assert_response 200 31 assert_response 200
40 end 32 end
41 33
plugins/mezuro/views/content_viewer/show_configuration.rhtml
1 <% @configuration_content = @page 1 <% @configuration_content = @page
2 @kalibro_configuration = @page.kalibro_configuration %> 2 @kalibro_configuration = @page.kalibro_configuration %>
  3 +<% owner = (not user.nil?) && user.id == @profile.id %>
  4 +
3 <% unless @page.errors[:base].nil? %> 5 <% unless @page.errors[:base].nil? %>
4 <% if @page.errors[:base] =~ /There is no configuration named/ %> 6 <% if @page.errors[:base] =~ /There is no configuration named/ %>
5 <h3>Warning:</h3> 7 <h3>Warning:</h3>
6 - <p>This Configuration doesn't exist on the Web Service. Do you want to <%= link_to 'delete', :action => 'destroy', :controller => 'cms', :profile => @page.profile.identifier, :id => @page.id %> or <%= link_to 'save it again', :action => 'edit', :controller => 'cms', :profile => @page.profile.identifier, :id => @page.id %>?</p> 8 + <p>This Configuration doesn't exist on the Web Service.</p>
  9 + <% if owner %>
  10 + <p> Do you want to <%= link_to 'delete', :action => 'destroy', :controller => 'cms', :profile => @page.profile.identifier, :id => @page.id %> or <%= link_to 'save it again', :action => 'edit', :controller => 'cms', :profile => @page.profile.identifier, :id => @page.id %>?</p>
  11 + <% end %>
7 <% else %> 12 <% else %>
8 <%= @page.errors[:base] %> 13 <%= @page.errors[:base] %>
9 <% end %> 14 <% end %>
@@ -22,42 +27,44 @@ @@ -22,42 +27,44 @@
22 27
23 <br/> 28 <br/>
24 29
25 - <%= link_to "#{image_tag ('/plugins/mezuro/images/plus.png')}Add Metric", :controller => "mezuro_plugin_base_tool", 30 + <% if owner %>
  31 + <%= link_to "#{image_tag ('/plugins/mezuro/images/plus.png')}Add Metric", :controller => "mezuro_plugin_base_tool",
26 :profile => @page.profile.identifier, 32 :profile => @page.profile.identifier,
27 - :action => "choose_base_tool", 33 + :action => "choose_metric",
28 :id => @configuration_content.id %><br/> 34 :id => @configuration_content.id %><br/>
  35 + <% end %>
29 36
30 <table> 37 <table>
31 <tr class="titles"> 38 <tr class="titles">
32 <td><h5>Metric Name</h5></td> 39 <td><h5>Metric Name</h5></td>
33 <td><h5>Collector Name</h5></td> 40 <td><h5>Collector Name</h5></td>
34 <td><h5>Metric Code</h5></td> 41 <td><h5>Metric Code</h5></td>
35 - <td/><td/> 42 + <td/>
36 </tr> 43 </tr>
37 <% @kalibro_configuration.metric_configurations.each do |metric_configuration| %> 44 <% @kalibro_configuration.metric_configurations.each do |metric_configuration| %>
38 <tr class="metric"> 45 <tr class="metric">
39 - <td><%= metric_configuration.metric.name %></td>  
40 <% if metric_configuration.metric.instance_of? Kalibro::NativeMetric %> 46 <% if metric_configuration.metric.instance_of? Kalibro::NativeMetric %>
  47 + <td><%= link_to metric_configuration.metric.name, :controller => "mezuro_plugin_metric_configuration", :action => "edit_metric_configuration",
  48 + :metric_name => metric_configuration.metric.name, :id => @configuration_content.id,
  49 + :profile => @page.profile.identifier %></td>
41 <td> 50 <td>
42 <%= metric_configuration.metric.origin %> 51 <%= metric_configuration.metric.origin %>
43 </td> 52 </td>
44 <td><%= metric_configuration.code %></td> 53 <td><%= metric_configuration.code %></td>
45 - <td><%= link_to "Edit", :controller => "mezuro_plugin_metric_configuration", :action => "edit_metric_configuration",  
46 - :metric_name => metric_configuration.metric.name, :id => @configuration_content.id,  
47 - :profile => @page.profile.identifier %></td>  
48 <% else %> 54 <% else %>
  55 + <td><%= link_to metric_configuration.metric.name, :controller => "mezuro_plugin_metric_configuration",
  56 + :action => "edit_compound_metric_configuration", :metric_name => metric_configuration.metric.name,
  57 + :id => @configuration_content.id, :profile => @page.profile.identifier %></td>
49 <td> 58 <td>
50 Compound Metric 59 Compound Metric
51 </td> 60 </td>
52 <td><%= metric_configuration.code %></td> 61 <td><%= metric_configuration.code %></td>
53 - <td><%= link_to "Edit", :controller => "mezuro_plugin_metric_configuration",  
54 - :action => "edit_compound_metric_configuration", :metric_name => metric_configuration.metric.name,  
55 - :id => @configuration_content.id, :profile => @page.profile.identifier %></td>  
56 <% end %> 62 <% end %>
57 -  
58 - <td><%= link_to "Remove", :controller => "mezuro_plugin_metric_configuration", :action => "remove_metric_configuration", 63 + <% if owner %>
  64 + <td><%= link_to "Remove", :controller => "mezuro_plugin_metric_configuration", :action => "remove_metric_configuration",
59 :metric_name => metric_configuration.metric.name, :id => @configuration_content.id, 65 :metric_name => metric_configuration.metric.name, :id => @configuration_content.id,
60 :profile => @page.profile.identifier %></td> 66 :profile => @page.profile.identifier %></td>
  67 + <% end %>
61 </tr> 68 </tr>
62 <% end %> 69 <% end %>
63 </table> 70 </table>
plugins/mezuro/views/mezuro_plugin_base_tool/choose_base_tool.html.erb
@@ -1,16 +0,0 @@ @@ -1,16 +0,0 @@
1 -<h2><%= @configuration_content.name%> Configuration</h2>  
2 -  
3 -<%= link_to "New Compound Metric", :controller => "mezuro_plugin_metric_configuration", :action => "new_compound_metric_configuration",  
4 - :id => @configuration_content.id %>  
5 -  
6 -<h5>Base Tools:</h5>  
7 -<table id="project_info">  
8 - <% @base_tools.each do |base_tool| %>  
9 - <tr>  
10 - <td>  
11 - <%= link_to base_tool, :controller => "mezuro_plugin_base_tool", :action => "choose_metric", :base_tool => base_tool,  
12 - :id => @configuration_content.id %>  
13 - </td>  
14 - </tr>  
15 - <% end %>  
16 -</table>  
plugins/mezuro/views/mezuro_plugin_base_tool/choose_metric.html.erb
1 -<h2><%= @configuration_content.name %> Configuration</h2> 1 +<h2><%= @configuration_content.name%> Configuration</h2>
2 2
3 -<table id="project_info">  
4 - <tr>  
5 - <h5>Metric Collector: <%= @base_tool %></h5>  
6 - </tr>  
7 - <tr>  
8 - <h5>Choose a metric to add:</h5>  
9 - </tr>  
10 - <% @supported_metrics.each do |metric| %>  
11 - <tr class="metric" title="<%= metric.name %>">  
12 - <td>  
13 - <%= link_to metric.name, :controller => "mezuro_plugin_metric_configuration", :action => "new_metric_configuration",  
14 - :metric_name => metric.name, :base_tool => @base_tool, :id => @configuration_content.id %>  
15 - </td>  
16 - </tr>  
17 - <% end %>  
18 -</table> 3 +<%= link_to "New Compound Metric", :controller => "mezuro_plugin_metric_configuration", :action => "new_compound_metric_configuration",
  4 + :id => @configuration_content.id %>
  5 +
  6 +<h5>Base Tools:</h5>
  7 +<% @base_tools.each do |base_tool| %>
  8 + <h4><%= link_to base_tool.name, "#", :onclick => "jQuery(\"\##{base_tool.name}\").toggle();"%></h4>
  9 + <hr/>
  10 +
  11 + <div id="<%=base_tool.name%>" style="display:none">
  12 + <% base_tool.supported_metrics.each do |metric| %>
  13 + &nbsp&nbsp&nbsp&nbsp&nbsp&nbsp<%= link_to metric.name, :controller => "mezuro_plugin_metric_configuration", :action => "new_metric_configuration",
  14 + :metric_name => metric.name, :base_tool => base_tool.name, :id => @configuration_content.id %>
  15 + <hr size="1" width="93%"/>
  16 + <% end %>
  17 + </div>
  18 +<% end %>