diff --git a/plugins/mezuro/controllers/mezuro_plugin_profile_controller.rb b/plugins/mezuro/controllers/mezuro_plugin_profile_controller.rb index f6ac0f1..a8311a7 100644 --- a/plugins/mezuro/controllers/mezuro_plugin_profile_controller.rb +++ b/plugins/mezuro/controllers/mezuro_plugin_profile_controller.rb @@ -18,7 +18,9 @@ class MezuroPluginProfileController < ProfileController def project_result content = profile.articles.find(params[:id]) project_result = content.project_result - render :partial => 'content_viewer/project_result', :locals => { :project_result => project_result } + source_tree = project_result.subtree(params[:module_name]) + source_tree = project_result.source_tree if source_tree.nil? + render :partial => 'content_viewer/project_result', :locals => { :project_result => project_result, :source_tree => source_tree } end def module_result diff --git a/plugins/mezuro/lib/kalibro/entities/project_result.rb b/plugins/mezuro/lib/kalibro/entities/project_result.rb index 604e64e..d5ed758 100644 --- a/plugins/mezuro/lib/kalibro/entities/project_result.rb +++ b/plugins/mezuro/lib/kalibro/entities/project_result.rb @@ -14,6 +14,22 @@ class Kalibro::Entities::ProjectResult < Kalibro::Entities::Entity format_milliseconds(@load_time) end + def subtree(name) + find_subtree(@source_tree, name) + end + + def find_subtree(tree, name) + if tree.module.name == name + tree + elsif !tree.children.nil? + tree.children.each do |child| + found = find_subtree(child, name) + return found if !found.nil? + end + return nil + end + end + def formatted_analysis_time format_milliseconds(@analysis_time) end @@ -31,4 +47,4 @@ class Kalibro::Entities::ProjectResult < Kalibro::Entities::Entity ('%2d' % amount).sub(/\s/, '0') end -end \ No newline at end of file +end diff --git a/plugins/mezuro/public/javascripts/project_content.js b/plugins/mezuro/public/javascripts/project_content.js index 331747e..2d03920 100644 --- a/plugins/mezuro/public/javascripts/project_content.js +++ b/plugins/mezuro/public/javascripts/project_content.js @@ -24,8 +24,16 @@ function showProjectContentAfter(seconds){ } function setProjectContent(content){ + var module_name = jQuery(this).attr('data-module-name'); jQuery('#project-content').html(content); - jQuery('.module-result-link').click(showModuleResult); + jQuery('.module-result-link').click(showProjectTree); + callAction('module_result', {module_name: module_name}, setModuleResult); +} + +function showProjectTree(){ + var module_name = jQuery(this).attr('data-module-name'); + callAction('project_result', {module_name: module_name}, setProjectContent); + return false; } function showModuleResult(){ @@ -35,6 +43,10 @@ function showModuleResult(){ return false; } +function setProjectResult(content){ + jQuery('#project_results').html(content); +} + function setModuleResult(content){ jQuery('#module-result').html(content); } @@ -54,4 +66,4 @@ function sourceNodeToggle(id){ var suffixes = ['_hidden', '_plus', '_minus']; for (var i in suffixes) jQuery('#' + id + suffixes[i]).toggle(); -} \ No newline at end of file +} diff --git a/plugins/mezuro/views/content_viewer/_project_result.rhtml b/plugins/mezuro/views/content_viewer/_project_result.rhtml index 78e94bc..dcbd08f 100644 --- a/plugins/mezuro/views/content_viewer/_project_result.rhtml +++ b/plugins/mezuro/views/content_viewer/_project_result.rhtml @@ -1,4 +1,4 @@ -
| - - | @@ -15,7 +15,7 @@ |