Commit 944cfe81cdc8897f7122152380d31b2f83636b48

Authored by João M. M. da Silva + Alessandro Palmeira
Committed by Paulo Meireles
1 parent feec92ee

[Mezuro] showing message of not existent project in kalibro, not working yet for configuration

plugins/mezuro/controllers/mezuro_plugin_myprofile_controller.rb
... ... @@ -8,6 +8,7 @@ class MezuroPluginMyprofileController < ProfileController
8 8 end
9 9  
10 10 def error_page
  11 + @message = params[:message]
11 12 end
12 13  
13 14 def choose_base_tool
... ...
plugins/mezuro/controllers/mezuro_plugin_profile_controller.rb
... ... @@ -4,15 +4,17 @@ class MezuroPluginProfileController < ProfileController
4 4  
5 5 rescue_from Exception do |exception|
6 6 message = URI.escape(CGI.escape(exception.message),'.')
7   - redirect_to "/myprofile/#{profile.identifier}/plugin/mezuro/error_page?message=#{message}"
  7 + redirect_to_error_page message
8 8 end
9 9  
10 10 def error_page
  11 + @message = params[:message]
11 12 end
12 13  
13 14 def project_state
14 15 @content = profile.articles.find(params[:id])
15 16 project = @content.project
  17 + redirect_to_error_page(project.errors[0].message) if not project.errors.empty?
16 18 state = project.kalibro_error.nil? ? project.state : "ERROR"
17 19 render :text => state
18 20 end
... ... @@ -75,4 +77,10 @@ class MezuroPluginProfileController < ProfileController
75 77 metric_result.value
76 78 end
77 79 end
  80 +
  81 + def redirect_to_error_page(message)
  82 + redirect_to "/profile/#{profile.identifier}/plugin/mezuro/error_page?message=#{message}"
  83 + end
  84 +
78 85 end
  86 +
... ...
plugins/mezuro/lib/kalibro/model.rb
... ... @@ -55,10 +55,6 @@ class Kalibro::Model
55 55 false
56 56 end
57 57 end
58   -
59   - def add_error(exception)
60   - @errors << exception
61   - end
62 58  
63 59 def destroy
64 60 begin
... ... @@ -133,4 +129,9 @@ class Kalibro::Model
133 129 {"#{class_name.underscore}_name".to_sym => self.name}
134 130 end
135 131  
  132 + def add_error(exception)
  133 + @errors << exception
  134 + end
  135 +
136 136 end
  137 +
... ...
plugins/mezuro/lib/mezuro_plugin/project_content.rb
... ... @@ -25,6 +25,7 @@ class MezuroPlugin::ProjectContent &lt; Article
25 25 @project ||= Kalibro::Project.find_by_name(name)
26 26 rescue Exception => error
27 27 errors.add_to_base(error.message)
  28 + @project
28 29 end
29 30 end
30 31  
... ... @@ -105,7 +106,7 @@ Kalibro::ProjectResult.first_result_after(name, date)
105 106 end
106 107  
107 108 def destroy_project_from_service
108   - project.destroy
  109 + project.destroy unless project.nil?
109 110 end
110 111  
111 112 end
... ...
plugins/mezuro/test/functional/mezuro_plugin_profile_controller_test.rb
... ... @@ -25,14 +25,21 @@ class MezuroPluginProfileControllerTest &lt; ActionController::TestCase
25 25 @content.save
26 26 end
27 27  
28   - should 'test project state without error' do
  28 + should 'show an error page if an exception is raised' do
  29 + Kalibro::Project.expects(:request).with("Project", :get_project, :project_name => @project.name).returns(Exception.new(:message => "Error message"))
  30 + get :project_state, :profile => @profile.identifier, :id => @content.id
  31 + assert_response 302
  32 + assert_select('h2', 'An error occured: ')
  33 + end
  34 +
  35 + should 'test project state without kalibro_error' do
29 36 Kalibro::Project.expects(:request).with("Project", :get_project, :project_name => @project.name).returns({:project => @project.to_hash})
30 37 get :project_state, :profile => @profile.identifier, :id => @content.id
31 38 assert_response 200
32 39 assert_equal @content, assigns(:content)
33 40 end
34 41  
35   - should 'test project state with error' do
  42 + should 'test project state with kalibro_error' do
36 43 Kalibro::Project.expects(:request).with("Project", :get_project, :project_name => @project.name).returns({:project => @project.to_hash.merge({:error => ErrorFixtures.error_hash})})
37 44 get :project_state, :profile => @profile.identifier, :id => @content.id
38 45 assert_response 200
... ...
plugins/mezuro/views/content_viewer/show_configuration.rhtml
1 1 <% @configuration_content = @page
2 2 @configuration = @page.configuration %>
  3 +<% unless @page.errors[:base].nil? %>
  4 + <% if @page.errors[:base] =~ /There is no project named/ %>
  5 + <h3>Warning:</h3>
  6 + <p>This Configuration doesn't exist on the Web Service. Do you want to <a href="/myprofile/<%= @page.profile.name %>/cms/destroy/<%= @page.id%>">delete</a> or <a href="/myprofile/<%= @page.profile.name %>/cms/edit/<%= @page.id%>">save it again</a>?</p>
  7 + <% else %>
  8 + <%= @page.errors[:base] %>
  9 + <% end %>
  10 +<% else %>
3 11  
4   -<table id="project_info">
5   - <tr>
6   - <td><%= _('Name') %></td>
7   - <td><%= @configuration.name %></td>
8   - </tr>
9   - <tr>
10   - <td><%= _('Description') %></td>
11   - <td><%= @configuration.description %></td>
12   - </tr>
13   -</table>
  12 + <table id="project_info">
  13 + <tr>
  14 + <td><%= _('Name') %></td>
  15 + <td><%= @configuration.name %></td>
  16 + </tr>
  17 + <tr>
  18 + <td><%= _('Description') %></td>
  19 + <td><%= @configuration.description %></td>
  20 + </tr>
  21 + </table>
14 22  
15   -<br/>
  23 + <br/>
16 24  
17   -<%= link_to "#{image_tag ('/plugins/mezuro/images/plus.png')}Add Metric", :controller => "mezuro_plugin_myprofile",
18   -:action => "choose_base_tool", :params => { :id => @configuration_content.id } %><br/>
  25 + <%= link_to "#{image_tag ('/plugins/mezuro/images/plus.png')}Add Metric", :controller => "mezuro_plugin_myprofile",
  26 + :action => "choose_base_tool", :params => { :id => @configuration_content.id } %><br/>
19 27  
20   -<table>
21   - <tr class="titles">
22   - <td><h5>Metric Name</h5></td>
23   - <td><h5>Collector Name</h5></td>
24   - <td><h5>Metric Code</h5></td>
25   - <td/><td/>
26   - </tr>
27   - <% @configuration.metric_configurations.each do |metric_configuration| %>
28   - <tr class="metric">
29   - <td><%= metric_configuration.metric.name %></td>
30   - <% if metric_configuration.metric.instance_of? Kalibro::NativeMetric %>
31   - <td>
32   - <%= metric_configuration.metric.origin %>
33   - </td>
34   - <td><%= metric_configuration.code %></td>
35   - <td><%= link_to "Edit", :controller => "mezuro_plugin_myprofile", :action => "edit_metric_configuration", :params =>
36   - {:metric_name => metric_configuration.metric.name, :id => @configuration_content.id} %></td>
37   - <% else %>
38   - <td>
39   - Compound Metric
40   - </td>
41   - <td><%= metric_configuration.code %></td>
42   - <td><%= link_to "Edit", :controller => "mezuro_plugin_myprofile", :action => "edit_compound_metric_configuration", :params =>
43   - {:metric_name => metric_configuration.metric.name, :id => @configuration_content.id} %></td>
44   - <% end %>
45   -
46   - <td><%= link_to "Remove", :controller => "mezuro_plugin_myprofile", :action => "remove_metric_configuration", :params =>
47   - {:metric_name => metric_configuration.metric.name, :id => @configuration_content.id} %></td>
  28 + <table>
  29 + <tr class="titles">
  30 + <td><h5>Metric Name</h5></td>
  31 + <td><h5>Collector Name</h5></td>
  32 + <td><h5>Metric Code</h5></td>
  33 + <td/><td/>
48 34 </tr>
49   - <% end %>
50   -</table>
  35 + <% @configuration.metric_configurations.each do |metric_configuration| %>
  36 + <tr class="metric">
  37 + <td><%= metric_configuration.metric.name %></td>
  38 + <% if metric_configuration.metric.instance_of? Kalibro::NativeMetric %>
  39 + <td>
  40 + <%= metric_configuration.metric.origin %>
  41 + </td>
  42 + <td><%= metric_configuration.code %></td>
  43 + <td><%= link_to "Edit", :controller => "mezuro_plugin_myprofile", :action => "edit_metric_configuration", :params =>
  44 + {:metric_name => metric_configuration.metric.name, :id => @configuration_content.id} %></td>
  45 + <% else %>
  46 + <td>
  47 + Compound Metric
  48 + </td>
  49 + <td><%= metric_configuration.code %></td>
  50 + <td><%= link_to "Edit", :controller => "mezuro_plugin_myprofile", :action => "edit_compound_metric_configuration", :params =>
  51 + {:metric_name => metric_configuration.metric.name, :id => @configuration_content.id} %></td>
  52 + <% end %>
  53 +
  54 + <td><%= link_to "Remove", :controller => "mezuro_plugin_myprofile", :action => "remove_metric_configuration", :params =>
  55 + {:metric_name => metric_configuration.metric.name, :id => @configuration_content.id} %></td>
  56 + </tr>
  57 + <% end %>
  58 + </table>
  59 +<% end %>
... ...
plugins/mezuro/views/content_viewer/show_project.rhtml
... ... @@ -2,60 +2,58 @@
2 2  
3 3 <% @project = @page.project %>
4 4 <% unless @page.errors[:base].nil? %>
5   - <%= @page.errors[:base] %>
6   -<% else %>
7   -
8   - <% if (@project==nil) %>
  5 + <% if @page.errors[:base] =~ /There is no project named/ %>
9 6 <h3>Warning:</h3>
10 7 <p>This project doesn't exist on the Web Service. Do you want to <a href="/myprofile/<%= @page.profile.name %>/cms/destroy/<%= @page.id%>">delete</a> or <a href="/myprofile/<%= @page.profile.name %>/cms/edit/<%= @page.id%>">save it again</a>?</p>
11 8 <% else %>
  9 + <%= @page.errors[:base] %>
  10 + <% end %>
  11 +<% else %>
12 12  
  13 + <table>
  14 + <tr>
  15 + <td><%= _('Name') %></td>
  16 + <td><%= @project.name %></td>
  17 + </tr>
  18 + <tr>
  19 + <td><%= _('License') %></td>
  20 + <td><%= @project.license %></td>
  21 + </tr>
  22 + <tr>
  23 + <td><%= _('Description') %></td>
  24 + <td><%= @project.description %></td>
  25 + </tr>
  26 + <tr>
  27 + <td><%= _('Repository type') %></td>
  28 + <td><%= @project.repository.type %></td>
  29 + </tr>
  30 + <tr>
  31 + <td><%= _('Repository address') %></td>
  32 + <td><%= @project.repository.address %></td>
  33 + </tr>
  34 + <tr>
  35 + <td><%= _('Configuration') %></td>
  36 + <td><%= @project.configuration_name %></td>
  37 + </tr>
  38 + <tr>
  39 + <td><%= _('Periodicity') %></td>
  40 + <td><%= MezuroPlugin::Helpers::ContentViewerHelper.get_periodicity_option(@page.periodicity_in_days) %></td>
  41 + </tr>
  42 + <tr>
  43 + <td><%= _('Status')%></td>
  44 + <td>
  45 + <div id="project-state"><%= @project.state %></div>
  46 + <div id="msg-time"></div>
  47 + </td>
  48 + </tr>
  49 + </table>
13 50  
14   - <table>
15   - <tr>
16   - <td><%= _('Name') %></td>
17   - <td><%= @project.name %></td>
18   - </tr>
19   - <tr>
20   - <td><%= _('License') %></td>
21   - <td><%= @project.license %></td>
22   - </tr>
23   - <tr>
24   - <td><%= _('Description') %></td>
25   - <td><%= @project.description %></td>
26   - </tr>
27   - <tr>
28   - <td><%= _('Repository type') %></td>
29   - <td><%= @project.repository.type %></td>
30   - </tr>
31   - <tr>
32   - <td><%= _('Repository address') %></td>
33   - <td><%= @project.repository.address %></td>
34   - </tr>
35   - <tr>
36   - <td><%= _('Configuration') %></td>
37   - <td><%= @project.configuration_name %></td>
38   - </tr>
39   - <tr>
40   - <td><%= _('Periodicity') %></td>
41   - <td><%= MezuroPlugin::Helpers::ContentViewerHelper.get_periodicity_option(@page.periodicity_in_days) %></td>
42   - </tr>
43   - <tr>
44   - <td><%= _('Status')%></td>
45   - <td>
46   - <div id="project-state"><%= @project.state %></div>
47   - <div id="msg-time"></div>
48   - </td>
49   - </tr>
50   - </table>
51   -
52   - <br />
  51 + <br />
53 52  
54   - <div id="project-result" data-profile="<%= @page.profile.identifier %>" data-content="<%= @page.id %>"
55   - data-project-name="<%= @project.name %>">
56   - </div>
57   - <div id="project-tree"></div>
58   - <div id="module-result">
59   - </div>
60   - <% end %>
  53 + <div id="project-result" data-profile="<%= @page.profile.identifier %>" data-content="<%= @page.id %>"
  54 + data-project-name="<%= @project.name %>">
  55 + </div>
  56 + <div id="project-tree"></div>
  57 + <div id="module-result">
  58 + </div>
61 59 <% end %>
... ...
plugins/mezuro/views/mezuro_plugin_myprofile/error_page.html.erb
1   -<h2> <%= "An error occured: " %> </h2>
2   -<%=h params[:message] %>
  1 +<h2> An error occured: </h2>
  2 +<%= @message %>
3 3 <!-- The <%=h is for escaping the URL properly --!>
... ...
plugins/mezuro/views/mezuro_plugin_profile/error_page.html.erb 0 → 100644
... ... @@ -0,0 +1,3 @@
  1 +<h2> An error occured: </h2>
  2 +<%= @message %>
  3 +<!-- The <%=h is for escaping the URL properly --!>
... ...