Commit a947b109de8cc69ab8d4731de9540eb3b9c915a8

Authored by Caio + Diego + Pedro + João
Committed by Diego Camarinha
1 parent ed170105

[Mezuro] remodel project show

plugins/mezuro/controllers/mezuro_plugin_profile_controller.rb
... ... @@ -19,18 +19,28 @@ class MezuroPluginProfileController < ProfileController
19 19 content = profile.articles.find(params[:id])
20 20 project_result = content.project_result
21 21 project = content.project
22   - if params[:module_name].nil?
23   - source_tree = project_result.source_tree
24   - else
25   - source_tree = project_result.get_node(params[:module_name])
26   - end
27   - render :partial => 'content_viewer/project_result', :locals => { :project_result => project_result, :source_tree => source_tree, :project => project }
  22 + render :partial => 'content_viewer/project_result', :locals => { :project_result => project_result }
28 23 end
29 24  
30 25 def module_result
31 26 content = profile.articles.find(params[:id])
32   - module_result = content.module_result(params[:module_name])
  27 + if params[:module_name].nil? or params[:module_name] == content.project.name
  28 + module_result = content.module_result(content.project.name)
  29 + else
  30 + module_result = content.module_result(params[:module_name])
  31 + end
33 32 render :partial => 'content_viewer/module_result', :locals => { :module_result => module_result}
34 33 end
35 34  
  35 + def project_tree
  36 + content = profile.articles.find(params[:id])
  37 + project_result = content.project_result
  38 + if params[:module_name].nil? or params[:module_name] == content.project.name
  39 + source_tree = project_result.source_tree
  40 + else
  41 + source_tree = project_result.get_node(params[:module_name])
  42 + end
  43 + render :partial =>'content_viewer/source_tree', :locals => { :source_tree => source_tree, :project_name => content.project.name}
  44 + end
  45 +
36 46 end
... ...
plugins/mezuro/public/javascripts/project_content.js
1   -jQuery(showProjectContent);
  1 +jQuery(function (){
  2 + jQuery('.source-tree-link').live("click", reloadModule);
  3 + showProjectContent();
  4 +});
2 5  
3 6 function showProjectContent() {
4 7 callAction('project_state', {}, showProjectContentFor);
5 8 }
6 9  
  10 +function reloadModule(){
  11 + var module_name = jQuery(this).attr('data-module-name');
  12 + callAction('project_tree', {module_name: module_name }, showProjectTree);
  13 + callAction('module_result', {module_name: module_name}, showModuleResult);
  14 + return false;
  15 +}
  16 +
7 17 function showProjectContentFor(state){
8 18 if (state == 'ERROR')
9   - callAction('project_error', {}, setProjectContent);
10   - else if (state == 'READY')
11   - callAction('project_result', {}, setProjectContent);
  19 + callAction('project_error', {}, showProjectResult);
  20 + else if (state == 'READY') {
  21 + callAction('project_result', {}, showProjectResult);
  22 + callAction('project_tree', {}, showProjectTree);
  23 + callAction('module_result', {}, showModuleResult);
  24 + }
12 25 else if (state.endsWith("ING"))
13 26 showProjectContentAfter(20);
14 27 }
... ... @@ -23,31 +36,15 @@ function showProjectContentAfter(seconds){
23 36 }
24 37 }
25 38  
26   -function setProjectContent(content){
27   - var module_name = jQuery(this).attr('data-module-name');
28   - jQuery('#project-content').html(content);
29   - jQuery('.module-result-link').click(showProjectTree);
30   - callAction('module_result', {module_name: module_name}, setModuleResult);
31   -}
32   -
33   -function showProjectTree(){
34   - var module_name = jQuery(this).attr('data-module-name');
35   - callAction('project_result', {module_name: module_name}, setProjectContent);
36   - return false;
37   -}
38   -
39   -function showModuleResult(){
40   - var module_name = jQuery(this).attr('data-module-name');
41   - setModuleResult("Loading results for " + module_name + "...");
42   - callAction('module_result', {module_name: module_name}, setModuleResult);
43   - return false;
  39 +function showProjectResult(content) {
  40 + jQuery('#project-result').html(content);
44 41 }
45 42  
46   -function setProjectResult(content){
47   - jQuery('#project_results').html(content);
  43 +function showProjectTree(content){
  44 + jQuery('#project-tree').html(content);
48 45 }
49 46  
50   -function setModuleResult(content){
  47 +function showModuleResult(content){
51 48 jQuery('#module-result').html(content);
52 49 }
53 50  
... ... @@ -59,11 +56,5 @@ function callAction(action, params, callback){
59 56 }
60 57  
61 58 function projectContentData(data){
62   - return jQuery('#project-content').attr('data-' + data);
63   -}
64   -
65   -function sourceNodeToggle(id){
66   - var suffixes = ['_hidden', '_plus', '_minus'];
67   - for (var i in suffixes)
68   - jQuery('#' + id + suffixes[i]).toggle();
  59 + return jQuery('#project-result').attr('data-' + data);
69 60 }
... ...
plugins/mezuro/views/content_viewer/_project_result.rhtml
... ... @@ -14,21 +14,3 @@
14 14 <td><%= project_result.formatted_analysis_time %></td>
15 15 </tr>
16 16 </table>
17   -<h4><%= _('Source tree') %></h4>
18   -
19   -<% if !source_tree.nil? && project.name != source_tree.module.name %>
20   - <a href="#" class="module-result-link" data-module-name="<%= project_result.source_tree %>">
21   - <%= project.name %>
22   - </a>
23   - <% split_link = source_tree.module.ancestor_names %>
24   - <% split_link.each do |link| %>
25   - <% if split_link.length - 1 != split_link.index(link) %>
26   - <a href="#" class="module-result-link" data-module-name="<%= link %>">
27   - <%= link.split(".").last %>
28   - </a>
29   - <% end %>
30   - <% end %>
31   - <%= render :partial => 'content_viewer/source_tree', :locals => { :source_tree => source_tree } %>
32   -<% else %>
33   - <%= render :partial => 'content_viewer/source_tree', :locals => { :source_tree => project_result.source_tree } %>
34   -<% end %>
... ...
plugins/mezuro/views/content_viewer/_source_tree.rhtml
  1 +<h4><%= _('Source tree') %></h4>
1 2 <% module_name = source_tree.module.name %>
2 3 <% module_label = "#{module_name} (#{source_tree.module.granularity})" %>
3 4  
  5 +<% if module_name != project_name %>
  6 + <a href="#" class="source-tree-link" data-module-name="<%= project_name %>">
  7 + <%= project_name %>
  8 + </a>
  9 +<% end %>
  10 +
  11 + <% split_link = source_tree.module.ancestor_names %>
  12 + <% split_link.each do |link| %>
  13 + <a href="#" class="source-tree-link" data-module-name="<%= link %>">
  14 + <%= link.split(".").last %>
  15 + </a>
  16 +<% end %>
  17 +
4 18 <% if source_tree.children %>
5 19 <table>
6   - <tr>
7   - <td width="10%">
8   - <img alt="+" src="/plugins/mezuro/images/plus.png" class="link" style="display: none"
9   - id="<%= module_name %>_plus" onclick="sourceNodeToggle('<%= module_name %>')"/>
10   - <img alt="-" src="/plugins/mezuro/images/minus.png" class="link"
11   - id="<%= module_name %>_minus" onclick="sourceNodeToggle('<%= module_name %>')"/>
12   - </td>
13   - <td>
14   - <a href="#" class="module-result-link" data-module-name="<%= module_name %>">
15   - <%= module_label %>
16   - </a>
17   - </td>
18   - </tr>
19   - <tr id="<%= module_name %>_hidden">
20   - <td></td>
21   - <td style="text-align: left">
22   - <% source_tree.children.each do |child| %>
23   - <%= render :partial => 'content_viewer/source_tree', :locals => { :source_tree => child } %>
24   - <% end %>
25   - </td>
26   - </tr>
27   - </table>
28   -<% else %>
29   - <table>
30   - <tr>
31   - <td width="1"></td>
32   - <td>
33   - <a href="#" class="module-result-link" data-module-name="<%= module_name %>">
34   - <%= module_label %>
35   - </a>
36   - </td>
37   - </tr>
  20 + <% source_tree.children.each do |child| %>
  21 + <tr>
  22 + <td>
  23 + <a href='#' class="source-tree-link" data-module-name="<%= child.module.name %>">
  24 + <%= "#{child.module.name} (#{child.module.granularity})" %>
  25 + </td>
  26 + </tr>
  27 + <% end %>
38 28 </table>
39 29 <% end %>
... ...
plugins/mezuro/views/content_viewer/show_project.rhtml
... ... @@ -30,8 +30,8 @@
30 30  
31 31 <br />
32 32  
33   -<div id="project-content" data-profile="<%= @page.profile.identifier %>" data-content="<%= @page.id %>">
  33 +<div id="project-result" data-profile="<%= @page.profile.identifier %>" data-content="<%= @page.id %>">
34 34 <h3><%= _('Processing ') + @project.name + '...' %></h3>
35 35 </div>
36   -<div id='module-result'>
37   -</div>
  36 +<div id="project-tree"></div>
  37 +<div id="module-result"></div>
... ...