Commit 6f00a24ab72d13844929af4c5c2e7dfad0a6b30f

Authored by Paulo Meireles
2 parents cd4a0e06 32bddd99

Merge branch 'refactoring_controllers' into mezuro-dev

Showing 60 changed files with 1380 additions and 1202 deletions   Show diff stats
plugins/mezuro/controllers/mezuro_plugin_myprofile_controller.rb
@@ -1,187 +0,0 @@ @@ -1,187 +0,0 @@
1 -class MezuroPluginMyprofileController < ProfileController  
2 -  
3 - append_view_path File.join(File.dirname(__FILE__) + '/../views')  
4 -  
5 - rescue_from Exception do |exception|  
6 - message = URI.escape(CGI.escape(exception.message),'.')  
7 - redirect_to_error_page message  
8 - end  
9 -  
10 - def error_page  
11 - @message = params[:message]  
12 - end  
13 -  
14 - def choose_base_tool  
15 - @configuration_content = profile.articles.find(params[:id])  
16 - @base_tools = Kalibro::BaseTool.all_names  
17 - end  
18 -  
19 - def choose_metric  
20 - @configuration_content = profile.articles.find(params[:id])  
21 - @base_tool = params[:base_tool]  
22 - base_tool = Kalibro::BaseTool.find_by_name(@base_tool)  
23 - @supported_metrics = base_tool.nil? ? [] : base_tool.supported_metrics  
24 - end  
25 -  
26 - def new_metric_configuration  
27 - @configuration_content = profile.articles.find(params[:id])  
28 - @metric = Kalibro::BaseTool.find_by_name(params[:base_tool]).metric params[:metric_name]  
29 - end  
30 -  
31 - def new_compound_metric_configuration  
32 - @configuration_content = profile.articles.find(params[:id])  
33 - @metric_configurations = @configuration_content.metric_configurations  
34 - if configuration_content_has_errors?  
35 - redirect_to_error_page @configuration_content.errors[:base]  
36 - end  
37 - end  
38 -  
39 - def edit_metric_configuration  
40 - @configuration_content = profile.articles.find(params[:id])  
41 - @metric_configuration = Kalibro::MetricConfiguration.find_by_configuration_name_and_metric_name(@configuration_content.name, params[:metric_name])  
42 - @metric = @metric_configuration.metric  
43 - end  
44 -  
45 - def edit_compound_metric_configuration  
46 - @configuration_content = profile.articles.find(params[:id])  
47 - @metric_configuration = Kalibro::MetricConfiguration.find_by_configuration_name_and_metric_name(@configuration_content.name, params[:metric_name])  
48 - @metric_configurations = @configuration_content.metric_configurations  
49 - @metric = @metric_configuration.metric  
50 - end  
51 -  
52 - def create_metric_configuration  
53 - id = params[:id]  
54 - metric_name = params[:metric_configuration][:metric][:name]  
55 - metric_configuration = Kalibro::MetricConfiguration.new(params[:metric_configuration])  
56 - metric_configuration.save  
57 - if metric_configuration_has_errors? metric_configuration  
58 - redirect_to_error_page metric_configuration.errors[0].message  
59 - else  
60 - redirect_to "/myprofile/#{profile.identifier}/plugin/mezuro/edit_metric_configuration?id=#{id}&metric_name=#{metric_name.gsub(/\s/, '+')}"  
61 - end  
62 - end  
63 -  
64 - def create_compound_metric_configuration  
65 - id = params[:id]  
66 - metric_name = params[:metric_configuration][:metric][:name]  
67 - metric_configuration = Kalibro::MetricConfiguration.new(params[:metric_configuration])  
68 - metric_configuration.save  
69 - if metric_configuration_has_errors? metric_configuration  
70 - redirect_to_error_page metric_configuration.errors[0].message  
71 - else  
72 - redirect_to "/myprofile/#{profile.identifier}/plugin/mezuro/edit_compound_metric_configuration?id=#{id}&metric_name=#{metric_name.gsub(/\s/, '+')}"  
73 - end  
74 - end  
75 -  
76 - def update_metric_configuration  
77 - @configuration_content = profile.articles.find(params[:id])  
78 - metric_name = params[:metric_configuration][:metric][:name]  
79 - metric_configuration = Kalibro::MetricConfiguration.find_by_configuration_name_and_metric_name(@configuration_content.name, metric_name)  
80 - metric_configuration.update_attributes params[:metric_configuration]  
81 - if metric_configuration_has_errors? metric_configuration  
82 - redirect_to_error_page metric_configuration.errors[0].message  
83 - else  
84 - redirect_to "/#{profile.identifier}/#{@configuration_content.slug}"  
85 - end  
86 - end  
87 -  
88 - def update_compound_metric_configuration  
89 - @configuration_content = profile.articles.find(params[:id])  
90 - metric_name = params[:metric_configuration][:metric][:name]  
91 - metric_configuration = Kalibro::MetricConfiguration.find_by_configuration_name_and_metric_name(@configuration_content.name, metric_name)  
92 - metric_configuration.update_attributes params[:metric_configuration]  
93 - if metric_configuration_has_errors? metric_configuration  
94 - redirect_to_error_page metric_configuration.errors[0].message  
95 - else  
96 - redirect_to "/#{profile.identifier}/#{@configuration_content.slug}"  
97 - end  
98 - end  
99 -  
100 - def remove_metric_configuration  
101 - configuration_content = profile.articles.find(params[:id])  
102 - metric_name = params[:metric_name]  
103 - metric_configuration = Kalibro::MetricConfiguration.find_by_configuration_name_and_metric_name(configuration_content.name, metric_name)  
104 - metric_configuration.destroy  
105 - if metric_configuration_has_errors? metric_configuration  
106 - redirect_to_error_page metric_configuration.errors[0].message  
107 - else  
108 - redirect_to "/#{profile.identifier}/#{configuration_content.slug}"  
109 - end  
110 - end  
111 -  
112 - def new_range  
113 - @configuration_content = profile.articles.find(params[:id])  
114 - @metric_name = params[:metric_name]  
115 - @range = Kalibro::Range.new  
116 - @range_color = "#000000"  
117 - end  
118 -  
119 - def edit_range  
120 - @configuration_content = profile.articles.find(params[:id])  
121 - @metric_name = params[:metric_name]  
122 - @beginning_id = params[:beginning_id]  
123 - metric_configuration = Kalibro::MetricConfiguration.find_by_configuration_name_and_metric_name(@configuration_content.name, @metric_name)  
124 - @range = metric_configuration.ranges.find{|range| range.beginning == @beginning_id.to_f || @beginning_id =="-INF" }  
125 - @range_color = "#" + @range.color.to_s.gsub(/^ff/, "")  
126 - end  
127 -  
128 - def create_range  
129 - @configuration_content = profile.articles.find(params[:id])  
130 - @range = Kalibro::Range.new params[:range]  
131 - metric_name = params[:metric_name]  
132 - metric_configuration = Kalibro::MetricConfiguration.find_by_configuration_name_and_metric_name(@configuration_content.name, metric_name)  
133 - metric_configuration.add_range(@range)  
134 - metric_configuration.save  
135 - if metric_configuration_has_errors? metric_configuration  
136 - redirect_to_error_page metric_configuration.errors[0].message  
137 - end  
138 - end  
139 -  
140 - def update_range  
141 - configuration_content = profile.articles.find(params[:id])  
142 - metric_name = params[:metric_name]  
143 - beginning_id = params[:beginning_id]  
144 - metric_configuration = Kalibro::MetricConfiguration.find_by_configuration_name_and_metric_name(configuration_content.name, metric_name)  
145 - index = metric_configuration.ranges.index{ |range| range.beginning == beginning_id.to_f || beginning_id == "-INF" }  
146 - metric_configuration.ranges[index] = Kalibro::Range.new params[:range]  
147 - metric_configuration.save  
148 - if metric_configuration_has_errors? metric_configuration  
149 - redirect_to_error_page metric_configuration.errors[0].message  
150 - end  
151 - end  
152 -  
153 - def remove_range  
154 - configuration_content = profile.articles.find(params[:id])  
155 - metric_name = params[:metric_name]  
156 - beginning_id = params[:beginning_id]  
157 - metric_configuration = Kalibro::MetricConfiguration.find_by_configuration_name_and_metric_name(configuration_content.name, metric_name)  
158 - metric_configuration.ranges.delete_if { |range| range.beginning == beginning_id.to_f || beginning_id == "-INF" }  
159 - metric_configuration.save  
160 - if metric_configuration_has_errors? metric_configuration  
161 - redirect_to_error_page metric_configuration.errors[0].message  
162 - else  
163 - formatted_metric_name = metric_name.gsub(/\s/, '+')  
164 - if metric_configuration.metric.class == Kalibro::CompoundMetric  
165 - redirect_to "/myprofile/#{profile.identifier}/plugin/mezuro/edit_compound_metric_configuration?id=#{configuration_content.id}&metric_name=#{formatted_metric_name}"  
166 - else  
167 - redirect_to "/myprofile/#{profile.identifier}/plugin/mezuro/edit_metric_configuration?id=#{configuration_content.id}&metric_name=#{formatted_metric_name}"  
168 - end  
169 - end  
170 - end  
171 -  
172 - private  
173 -  
174 - def redirect_to_error_page(message)  
175 - message = URI.escape(CGI.escape(message),'.')  
176 - redirect_to "/myprofile/#{profile.identifier}/plugin/mezuro/error_page?message=#{message}"  
177 - end  
178 -  
179 - def configuration_content_has_errors?  
180 - not @configuration_content.errors[:base].nil?  
181 - end  
182 -  
183 - def metric_configuration_has_errors? metric_configuration  
184 - not metric_configuration.errors.empty?  
185 - end  
186 -  
187 -end  
plugins/mezuro/controllers/mezuro_plugin_profile_controller.rb
@@ -1,120 +0,0 @@ @@ -1,120 +0,0 @@
1 -class MezuroPluginProfileController < ProfileController  
2 -  
3 - append_view_path File.join(File.dirname(__FILE__) + '/../views')  
4 -  
5 - def error_page  
6 - @message = params[:message]  
7 - end  
8 -  
9 - def project_state  
10 - @content = profile.articles.find(params[:id])  
11 - project = @content.project  
12 - if project_content_has_errors?  
13 - redirect_to_error_page(@content.errors[:base])  
14 - else  
15 - state = project.kalibro_error.nil? ? project.state : "ERROR"  
16 - render :text => state  
17 - end  
18 - end  
19 -  
20 - def project_error  
21 - @content = profile.articles.find(params[:id])  
22 - @project = @content.project  
23 - if project_content_has_errors?  
24 - redirect_to_error_page(@content.errors[:base])  
25 - else  
26 - render :partial => 'content_viewer/project_error'  
27 - end  
28 - end  
29 -  
30 - def project_result  
31 - @content = profile.articles.find(params[:id])  
32 - date = params[:date]  
33 - @project_result = date.nil? ? @content.project_result : @content.project_result_with_date(date)  
34 - if project_content_has_errors?  
35 - redirect_to_error_page(@content.errors[:base])  
36 - else  
37 - render :partial => 'content_viewer/project_result'  
38 - end  
39 - end  
40 -  
41 - def module_result  
42 - @content = profile.articles.find(params[:id])  
43 - @module_result = @content.module_result(params)  
44 - @module = @module_result.module  
45 - @module_label = "#{@module.name} (#{@module.granularity})"  
46 - if project_content_has_errors?  
47 - redirect_to_error_page(@content.errors[:base])  
48 - else  
49 - render :partial => 'content_viewer/module_result'  
50 - end  
51 - end  
52 -  
53 - def project_tree  
54 - @content = profile.articles.find(params[:id])  
55 - date = params[:date]  
56 - project_result = date.nil? ? @content.project_result : @content.project_result_with_date(date)  
57 - @project_name = @content.project.name if not @content.project.nil?  
58 - if project_content_has_errors?  
59 - redirect_to_error_page(@content.errors[:base])  
60 - else  
61 - @source_tree = project_result.node(params[:module_name])  
62 - render :partial =>'content_viewer/source_tree'  
63 - end  
64 - end  
65 -  
66 - def module_metrics_history  
67 - metric_name = params[:metric_name]  
68 - @content = profile.articles.find(params[:id])  
69 - module_history = @content.result_history(params[:module_name])  
70 - if project_content_has_errors?  
71 - redirect_to_error_page(@content.errors[:base])  
72 - else  
73 - @score_history = filtering_metric_history(metric_name, module_history)  
74 - render :partial => 'content_viewer/score_history'  
75 - end  
76 - end  
77 -  
78 - def module_grade_history  
79 - @content = profile.articles.find(params[:id])  
80 - modules_results = @content.result_history(params[:module_name])  
81 - if project_content_has_errors?  
82 - redirect_to_error_page(@content.errors[:base])  
83 - else  
84 - @score_history = modules_results.map do |module_result|  
85 - [module_result.grade, format_date_to_simple_form(module_result.date)]  
86 - end  
87 - render :partial => 'content_viewer/score_history'  
88 - end  
89 - end  
90 -  
91 - private  
92 -  
93 - def filtering_metric_history(metric_name, module_history)  
94 - metrics_history = module_history.map do |module_result|  
95 - [module_result.metric_results, format_date_to_simple_form(module_result.date)]  
96 - end  
97 - metric_history = metrics_history.map do |metric_results_with_date|  
98 - [(metric_results_with_date.first.select do |metric_result|  
99 - metric_result.metric.name.delete("() ") == metric_name  
100 - end).first, metric_results_with_date.last]  
101 - end  
102 - metric_history.map do |metric_result_with_date|  
103 - [metric_result_with_date.first.value, metric_result_with_date.last]  
104 - end  
105 - end  
106 -  
107 - def redirect_to_error_page(message)  
108 - message = URI.escape(CGI.escape(message),'.')  
109 - redirect_to "/profile/#{profile.identifier}/plugins/mezuro/error_page?message=#{message}"  
110 - end  
111 -  
112 - def project_content_has_errors?  
113 - not @content.errors[:base].nil?  
114 - end  
115 -  
116 - def format_date_to_simple_form date  
117 - date.to_s[0..9]  
118 - end  
119 -  
120 -end  
plugins/mezuro/controllers/myprofile/mezuro_plugin_base_tool_controller.rb 0 → 100644
@@ -0,0 +1,17 @@ @@ -0,0 +1,17 @@
  1 +class MezuroPluginBaseToolController < MezuroPluginMyprofileController
  2 +
  3 + append_view_path File.join(File.dirname(__FILE__) + '/../../views')
  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
  11 + @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
  15 + end
  16 +
  17 +end
plugins/mezuro/controllers/myprofile/mezuro_plugin_metric_configuration_controller.rb 0 → 100644
@@ -0,0 +1,97 @@ @@ -0,0 +1,97 @@
  1 +class MezuroPluginMetricConfigurationController < MezuroPluginMyprofileController
  2 +
  3 + append_view_path File.join(File.dirname(__FILE__) + '/../../views')
  4 +
  5 + def new_metric_configuration
  6 + @configuration_content = profile.articles.find(params[:id])
  7 + @metric = Kalibro::BaseTool.find_by_name(params[:base_tool]).metric params[:metric_name]
  8 + end
  9 +
  10 + def new_compound_metric_configuration
  11 + @configuration_content = profile.articles.find(params[:id])
  12 + @metric_configurations = @configuration_content.metric_configurations
  13 + if configuration_content_has_errors?
  14 + redirect_to_error_page @configuration_content.errors[:base]
  15 + end
  16 + end
  17 +
  18 + def edit_metric_configuration
  19 + @configuration_content = profile.articles.find(params[:id])
  20 + @metric_configuration = Kalibro::MetricConfiguration.find_by_configuration_name_and_metric_name(@configuration_content.name, params[:metric_name])
  21 + @metric = @metric_configuration.metric
  22 + end
  23 +
  24 + def edit_compound_metric_configuration
  25 + @configuration_content = profile.articles.find(params[:id])
  26 + @metric_configuration = Kalibro::MetricConfiguration.find_by_configuration_name_and_metric_name(@configuration_content.name, params[:metric_name])
  27 + @metric_configurations = @configuration_content.metric_configurations
  28 + @metric = @metric_configuration.metric
  29 + end
  30 +
  31 + def create_metric_configuration
  32 + id = params[:id]
  33 + metric_name = params[:metric_configuration][:metric][:name]
  34 + metric_configuration = Kalibro::MetricConfiguration.new(params[:metric_configuration])
  35 + metric_configuration.save
  36 + if metric_configuration_has_errors? metric_configuration
  37 + redirect_to_error_page metric_configuration.errors[0].message
  38 + else
  39 + redirect_to "edit_metric_configuration?id=#{id}&metric_name=#{metric_name.gsub(/\s/, '+')}"
  40 + end
  41 + end
  42 +
  43 + def create_compound_metric_configuration
  44 + id = params[:id]
  45 + metric_name = params[:metric_configuration][:metric][:name]
  46 + metric_configuration = Kalibro::MetricConfiguration.new(params[:metric_configuration])
  47 + metric_configuration.save
  48 + if metric_configuration_has_errors? metric_configuration
  49 + redirect_to_error_page metric_configuration.errors[0].message
  50 + else
  51 + redirect_to "edit_compound_metric_configuration?id=#{id}&metric_name=#{metric_name.gsub(/\s/, '+')}"
  52 + end
  53 + end
  54 +
  55 + def update_metric_configuration
  56 + @configuration_content = profile.articles.find(params[:id])
  57 + metric_name = params[:metric_configuration][:metric][:name]
  58 + metric_configuration = Kalibro::MetricConfiguration.find_by_configuration_name_and_metric_name(@configuration_content.name, metric_name)
  59 + metric_configuration.update_attributes params[:metric_configuration]
  60 + if metric_configuration_has_errors? metric_configuration
  61 + redirect_to_error_page metric_configuration.errors[0].message
  62 + else
  63 + redirect_to "/#{profile.identifier}/#{@configuration_content.slug}"
  64 + end
  65 + end
  66 +
  67 + def update_compound_metric_configuration
  68 + @configuration_content = profile.articles.find(params[:id])
  69 + metric_name = params[:metric_configuration][:metric][:name]
  70 + metric_configuration = Kalibro::MetricConfiguration.find_by_configuration_name_and_metric_name(@configuration_content.name, metric_name)
  71 + metric_configuration.update_attributes params[:metric_configuration]
  72 + if metric_configuration_has_errors? metric_configuration
  73 + redirect_to_error_page metric_configuration.errors[0].message
  74 + else
  75 + redirect_to "/#{profile.identifier}/#{@configuration_content.slug}"
  76 + end
  77 + end
  78 +
  79 + def remove_metric_configuration
  80 + configuration_content = profile.articles.find(params[:id])
  81 + metric_name = params[:metric_name]
  82 + metric_configuration = Kalibro::MetricConfiguration.find_by_configuration_name_and_metric_name(configuration_content.name, metric_name)
  83 + metric_configuration.destroy
  84 + if metric_configuration_has_errors? metric_configuration
  85 + redirect_to_error_page metric_configuration.errors[0].message
  86 + else
  87 + redirect_to "/#{profile.identifier}/#{configuration_content.slug}"
  88 + end
  89 + end
  90 +
  91 + private
  92 +
  93 + def configuration_content_has_errors?
  94 + not @configuration_content.errors[:base].nil?
  95 + end
  96 +
  97 +end
plugins/mezuro/controllers/myprofile/mezuro_plugin_myprofile_controller.rb 0 → 100644
@@ -0,0 +1,37 @@ @@ -0,0 +1,37 @@
  1 +class MezuroPluginMyprofileController < ProfileController #MyprofileController?
  2 +
  3 + append_view_path File.join(File.dirname(__FILE__) + '/../../views')
  4 +
  5 + rescue_from Exception do |exception|
  6 + message = URI.escape(CGI.escape(exception.message),'.')
  7 + redirect_to_error_page message
  8 + end
  9 +
  10 + def error_page
  11 + @message = params[:message]
  12 + end
  13 +
  14 + def choose_base_tool
  15 + @configuration_content = profile.articles.find(params[:id])
  16 + @base_tools = Kalibro::BaseTool.all_names
  17 + end
  18 +
  19 + def choose_metric
  20 + @configuration_content = profile.articles.find(params[:id])
  21 + @base_tool = params[:base_tool]
  22 + base_tool = Kalibro::BaseTool.find_by_name(@base_tool)
  23 + @supported_metrics = base_tool.nil? ? [] : base_tool.supported_metrics
  24 + end
  25 +
  26 + protected
  27 +
  28 + def redirect_to_error_page(message)
  29 + message = URI.escape(CGI.escape(message),'.')
  30 + redirect_to "/myprofile/#{profile.identifier}/plugin/mezuro/error_page?message=#{message}"
  31 + end
  32 +
  33 + def metric_configuration_has_errors? metric_configuration
  34 + not metric_configuration.errors.empty?
  35 + end
  36 +
  37 +end
plugins/mezuro/controllers/myprofile/mezuro_plugin_range_controller.rb 0 → 100644
@@ -0,0 +1,65 @@ @@ -0,0 +1,65 @@
  1 +class MezuroPluginRangeController < MezuroPluginMyprofileController
  2 +
  3 + append_view_path File.join(File.dirname(__FILE__) + '/../../views')
  4 +
  5 + def new_range
  6 + @configuration_content = profile.articles.find(params[:id])
  7 + @metric_name = params[:metric_name]
  8 + @range = Kalibro::Range.new
  9 + @range_color = "#000000"
  10 + end
  11 +
  12 + def edit_range
  13 + @configuration_content = profile.articles.find(params[:id])
  14 + @metric_name = params[:metric_name]
  15 + @beginning_id = params[:beginning_id]
  16 + metric_configuration = Kalibro::MetricConfiguration.find_by_configuration_name_and_metric_name(@configuration_content.name, @metric_name)
  17 + @range = metric_configuration.ranges.find{|range| range.beginning == @beginning_id.to_f || @beginning_id =="-INF" }
  18 + @range_color = "#" + @range.color.to_s.gsub(/^ff/, "")
  19 + end
  20 +
  21 + def create_range
  22 + @configuration_content = profile.articles.find(params[:id])
  23 + @range = Kalibro::Range.new params[:range]
  24 + metric_name = params[:metric_name]
  25 + metric_configuration = Kalibro::MetricConfiguration.find_by_configuration_name_and_metric_name(@configuration_content.name, metric_name)
  26 + metric_configuration.add_range(@range)
  27 + metric_configuration.save
  28 + if metric_configuration_has_errors? metric_configuration
  29 + redirect_to_error_page metric_configuration.errors[0].message
  30 + end
  31 + end
  32 +
  33 + def update_range
  34 + configuration_content = profile.articles.find(params[:id])
  35 + metric_name = params[:metric_name]
  36 + beginning_id = params[:beginning_id]
  37 + metric_configuration = Kalibro::MetricConfiguration.find_by_configuration_name_and_metric_name(configuration_content.name, metric_name)
  38 + index = metric_configuration.ranges.index{ |range| range.beginning == beginning_id.to_f || beginning_id == "-INF" }
  39 + metric_configuration.ranges[index] = Kalibro::Range.new params[:range]
  40 + metric_configuration.save
  41 + if metric_configuration_has_errors? metric_configuration
  42 + redirect_to_error_page metric_configuration.errors[0].message
  43 + end
  44 + end
  45 +
  46 + def remove_range
  47 + configuration_content = profile.articles.find(params[:id])
  48 + metric_name = params[:metric_name]
  49 + beginning_id = params[:beginning_id]
  50 + metric_configuration = Kalibro::MetricConfiguration.find_by_configuration_name_and_metric_name(configuration_content.name, metric_name)
  51 + metric_configuration.ranges.delete_if { |range| range.beginning == beginning_id.to_f || beginning_id == "-INF" }
  52 + metric_configuration.save
  53 + if metric_configuration_has_errors? metric_configuration
  54 + redirect_to_error_page metric_configuration.errors[0].message
  55 + else
  56 + formatted_metric_name = metric_name.gsub(/\s/, '+')
  57 + if metric_configuration.metric.class == Kalibro::CompoundMetric
  58 + redirect_to "/myprofile/#{profile.identifier}/plugin/mezuro/edit_compound_metric_configuration?id=#{configuration_content.id}&metric_name=#{formatted_metric_name}"
  59 + else
  60 + redirect_to "/myprofile/#{profile.identifier}/plugin/mezuro/edit_metric_configuration?id=#{configuration_content.id}&metric_name=#{formatted_metric_name}"
  61 + end
  62 + end
  63 + end
  64 +
  65 +end
plugins/mezuro/controllers/profile/mezuro_plugin_module_controller.rb 0 → 100644
@@ -0,0 +1,67 @@ @@ -0,0 +1,67 @@
  1 +class MezuroPluginModuleController < MezuroPluginProfileController
  2 +
  3 + append_view_path File.join(File.dirname(__FILE__) + '/../../views')
  4 +
  5 + def module_result
  6 + @content = profile.articles.find(params[:id])
  7 + @module_result = @content.module_result(params)
  8 + @module = @module_result.module
  9 + @module_label = "#{@module.name} (#{@module.granularity})"
  10 + if project_content_has_errors?
  11 + redirect_to_error_page(@content.errors[:base])
  12 + else
  13 + render :partial => 'module_result'
  14 + end
  15 + end
  16 +
  17 + def module_metrics_history
  18 + metric_name = params[:metric_name]
  19 + @content = profile.articles.find(params[:id])
  20 + module_history = @content.result_history(params[:module_name])
  21 + if project_content_has_errors?
  22 + redirect_to_error_page(@content.errors[:base])
  23 + else
  24 + @score_history = filtering_metric_history(metric_name, module_history)
  25 + render :partial => 'score_history'
  26 + end
  27 + end
  28 +
  29 + def module_grade_history
  30 + @content = profile.articles.find(params[:id])
  31 + modules_results = @content.result_history(params[:module_name])
  32 + if project_content_has_errors?
  33 + redirect_to_error_page(@content.errors[:base])
  34 + else
  35 + @score_history = modules_results.map do |module_result|
  36 + [module_result.grade, format_date_to_simple_form(module_result.date)]
  37 + end
  38 + render :partial => 'score_history'
  39 + end
  40 + end
  41 +
  42 + private
  43 +
  44 + def filtering_metric_history(metric_name, module_history)
  45 + metrics_history = module_history.map do |module_result|
  46 + [module_result.metric_results, format_date_to_simple_form(module_result.date)]
  47 + end
  48 + metric_history = metrics_history.map do |metric_results_with_date|
  49 + [(metric_results_with_date.first.select do |metric_result|
  50 + metric_result.metric.name.delete("() ") == metric_name
  51 + end).first, metric_results_with_date.last]
  52 + end
  53 + metric_history.map do |metric_result_with_date|
  54 + [metric_result_with_date.first.value, metric_result_with_date.last]
  55 + end
  56 + end
  57 +
  58 + def redirect_to_error_page(message)
  59 + message = URI.escape(CGI.escape(message),'.')
  60 + redirect_to "/profile/#{profile.identifier}/plugins/mezuro/error_page?message=#{message}"
  61 + end
  62 +
  63 + def format_date_to_simple_form date
  64 + date.to_s[0..9]
  65 + end
  66 +
  67 +end
plugins/mezuro/controllers/profile/mezuro_plugin_profile_controller.rb 0 → 100644
@@ -0,0 +1,16 @@ @@ -0,0 +1,16 @@
  1 +class MezuroPluginProfileController < ProfileController
  2 +
  3 + append_view_path File.join(File.dirname(__FILE__) + '/../../views')
  4 +
  5 + def error_page
  6 + @message = params[:message]
  7 + end
  8 +
  9 + protected
  10 +
  11 + def project_content_has_errors?
  12 + not @content.errors[:base].nil?
  13 + end
  14 +
  15 +end
  16 +
plugins/mezuro/controllers/profile/mezuro_plugin_project_controller.rb 0 → 100644
@@ -0,0 +1,50 @@ @@ -0,0 +1,50 @@
  1 +class MezuroPluginProjectController < MezuroPluginProfileController
  2 +
  3 + append_view_path File.join(File.dirname(__FILE__) + '/../../views')
  4 +
  5 + def project_state
  6 + @content = profile.articles.find(params[:id])
  7 + project = @content.project
  8 + if project_content_has_errors?
  9 + redirect_to_error_page(@content.errors[:base])
  10 + else
  11 + state = project.kalibro_error.nil? ? project.state : "ERROR"
  12 + render :text => state
  13 + end
  14 + end
  15 +
  16 + def project_error
  17 + @content = profile.articles.find(params[:id])
  18 + @project = @content.project
  19 + if project_content_has_errors?
  20 + redirect_to_error_page(@content.errors[:base])
  21 + else
  22 + render :partial => 'project_error'
  23 + end
  24 + end
  25 +
  26 + def project_result
  27 + @content = profile.articles.find(params[:id])
  28 + date = params[:date]
  29 + @project_result = date.nil? ? @content.project_result : @content.project_result_with_date(date)
  30 + if project_content_has_errors?
  31 + redirect_to_error_page(@content.errors[:base])
  32 + else
  33 + render :partial => 'project_result'
  34 + end
  35 + end
  36 +
  37 + def project_tree
  38 + @content = profile.articles.find(params[:id])
  39 + date = params[:date]
  40 + project_result = date.nil? ? @content.project_result : @content.project_result_with_date(date)
  41 + @project_name = @content.project.name if not @content.project.nil?
  42 + if project_content_has_errors?
  43 + redirect_to_error_page(@content.errors[:base])
  44 + else
  45 + @source_tree = project_result.node(params[:module_name])
  46 + render :partial =>'source_tree'
  47 + end
  48 + end
  49 +
  50 +end
plugins/mezuro/public/javascripts/project_content.js
@@ -10,7 +10,7 @@ jQuery(function (){ @@ -10,7 +10,7 @@ jQuery(function (){
10 }); 10 });
11 11
12 function showProjectContent() { 12 function showProjectContent() {
13 - callAction('project_state', {}, showProjectContentFor); 13 + callAction('project', 'project_state', {}, showProjectContentFor);
14 } 14 }
15 15
16 function display_metric_history() { 16 function display_metric_history() {
@@ -18,14 +18,14 @@ function display_metric_history() { @@ -18,14 +18,14 @@ function display_metric_history() {
18 var metric_name = jQuery(this).attr('show-metric-history'); 18 var metric_name = jQuery(this).attr('show-metric-history');
19 toggle_mezuro("." + metric_name); 19 toggle_mezuro("." + metric_name);
20 metricName = metric_name; 20 metricName = metric_name;
21 - callAction('module_metrics_history', {module_name: module_name, metric_name: metric_name}, show_metrics); 21 + callAction('module', 'module_metrics_history', {module_name: module_name, metric_name: metric_name}, show_metrics);
22 return false; 22 return false;
23 } 23 }
24 24
25 function display_grade_history() { 25 function display_grade_history() {
26 var module_name = jQuery(this).attr('data-module-name'); 26 var module_name = jQuery(this).attr('data-module-name');
27 toggle_mezuro("#historical-grade"); 27 toggle_mezuro("#historical-grade");
28 - callAction('module_grade_history', {module_name: module_name}, show_grades); 28 + callAction('module', 'module_grade_history', {module_name: module_name}, show_grades);
29 return false; 29 return false;
30 } 30 }
31 31
@@ -46,8 +46,8 @@ function reloadModule(){ @@ -46,8 +46,8 @@ function reloadModule(){
46 var module_name = jQuery(this).attr('data-module-name'); 46 var module_name = jQuery(this).attr('data-module-name');
47 showLoadingProcess(false); 47 showLoadingProcess(false);
48 processingTree = true; 48 processingTree = true;
49 - callAction('project_tree', {module_name: module_name }, showProjectTree);  
50 - callAction('module_result', {module_name: module_name}, showModuleResult); 49 + callAction('project', 'project_tree', {module_name: module_name }, showProjectTree);
  50 + callAction('module', 'module_result', {module_name: module_name}, showModuleResult);
51 return false; 51 return false;
52 } 52 }
53 53
@@ -59,23 +59,23 @@ function reloadProjectWithDate(date){ @@ -59,23 +59,23 @@ function reloadProjectWithDate(date){
59 function reloadProject(date){ 59 function reloadProject(date){
60 showLoadingProcess(true); 60 showLoadingProcess(true);
61 61
62 - callAction('project_result', {date: date}, showProjectResult);  
63 - callAction('project_tree', {date: date}, showProjectTree);  
64 - callAction('module_result', {date: date}, showModuleResult); 62 + callAction('project', 'project_result', {date: date}, showProjectResult);
  63 + callAction('project', 'project_tree', {date: date}, showProjectTree);
  64 + callAction('module', 'module_result', {date: date}, showModuleResult);
65 } 65 }
66 66
67 function showProjectContentFor(state){ 67 function showProjectContentFor(state){
68 if (state == 'ERROR') { 68 if (state == 'ERROR') {
69 jQuery('#project-state').html('ERROR'); 69 jQuery('#project-state').html('ERROR');
70 - callAction('project_error', {}, showProjectResult); 70 + callAction('project', 'project_error', {}, showProjectResult);
71 } 71 }
72 else if (state == 'READY') { 72 else if (state == 'READY') {
73 jQuery('#msg-time').html(''); 73 jQuery('#msg-time').html('');
74 jQuery('#project-state').html('READY'); 74 jQuery('#project-state').html('READY');
75 - callAction('project_result', {}, showProjectResult);  
76 - callAction('project_tree', {}, showProjectTree); 75 + callAction('project', 'project_result', {}, showProjectResult);
  76 + callAction('project','project_tree', {}, showProjectTree);
77 var project_name = jQuery("#project-result").attr('data-project-name'); 77 var project_name = jQuery("#project-result").attr('data-project-name');
78 - callAction('module_result', {module_name: project_name}, showModuleResult); 78 + callAction('module', 'module_result', {module_name: project_name}, showModuleResult);
79 } 79 }
80 else if (state.endsWith("ING")) { 80 else if (state.endsWith("ING")) {
81 jQuery('#project-state').html(state); 81 jQuery('#project-state').html(state);
@@ -109,10 +109,10 @@ function showModuleResult(content){ @@ -109,10 +109,10 @@ function showModuleResult(content){
109 return false; 109 return false;
110 } 110 }
111 111
112 -function callAction(action, params, callback){ 112 +function callAction(controller, action, params, callback){
113 var profile = projectContentData('profile'); 113 var profile = projectContentData('profile');
114 var content = projectContentData('content'); 114 var content = projectContentData('content');
115 - var endpoint = '/profile/' + profile + '/plugins/mezuro/' + action + '/' + content; 115 + var endpoint = '/profile/' + profile + '/plugin/mezuro/' + controller + '/' + action + '/' + content;
116 jQuery.get(endpoint, params, callback); 116 jQuery.get(endpoint, params, callback);
117 } 117 }
118 118
plugins/mezuro/test/functional/mezuro_plugin_myprofile_controller_test.rb
@@ -5,7 +5,6 @@ require &quot;#{RAILS_ROOT}/plugins/mezuro/test/fixtures/base_tool_fixtures&quot; @@ -5,7 +5,6 @@ require &quot;#{RAILS_ROOT}/plugins/mezuro/test/fixtures/base_tool_fixtures&quot;
5 require "#{RAILS_ROOT}/plugins/mezuro/test/fixtures/native_metric_fixtures" 5 require "#{RAILS_ROOT}/plugins/mezuro/test/fixtures/native_metric_fixtures"
6 require "#{RAILS_ROOT}/plugins/mezuro/test/fixtures/metric_configuration_fixtures" 6 require "#{RAILS_ROOT}/plugins/mezuro/test/fixtures/metric_configuration_fixtures"
7 require "#{RAILS_ROOT}/plugins/mezuro/test/fixtures/configuration_fixtures" 7 require "#{RAILS_ROOT}/plugins/mezuro/test/fixtures/configuration_fixtures"
8 -require "#{RAILS_ROOT}/plugins/mezuro/test/fixtures/range_fixtures"  
9 8
10 class MezuroPluginMyprofileControllerTest < ActionController::TestCase 9 class MezuroPluginMyprofileControllerTest < ActionController::TestCase
11 10
@@ -35,9 +34,6 @@ class MezuroPluginMyprofileControllerTest &lt; ActionController::TestCase @@ -35,9 +34,6 @@ class MezuroPluginMyprofileControllerTest &lt; ActionController::TestCase
35 @native_hash.delete :attributes! 34 @native_hash.delete :attributes!
36 @compound_hash = @compound_metric_configuration.to_hash.merge({:configuration_name => @compound_metric_configuration.configuration_name}) 35 @compound_hash = @compound_metric_configuration.to_hash.merge({:configuration_name => @compound_metric_configuration.configuration_name})
37 @compound_hash.delete :attributes! 36 @compound_hash.delete :attributes!
38 -  
39 - @range = RangeFixtures.range_excellent  
40 - @range_hash = RangeFixtures.range_excellent_hash  
41 end 37 end
42 38
43 should 'test choose base tool' do 39 should 'test choose base tool' do
@@ -57,172 +53,4 @@ class MezuroPluginMyprofileControllerTest &lt; ActionController::TestCase @@ -57,172 +53,4 @@ class MezuroPluginMyprofileControllerTest &lt; ActionController::TestCase
57 assert_response 200 53 assert_response 200
58 end 54 end
59 55
60 - should 'test new metric configuration' do  
61 - Kalibro::BaseTool.expects(:request).with("BaseTool", :get_base_tool, {:base_tool_name => @base_tool.name}).returns({:base_tool => @base_tool_hash})  
62 - get :new_metric_configuration, :profile => @profile.identifier, :id => @content.id, :base_tool => @base_tool.name, :metric_name => @metric.name  
63 - assert_equal @content, assigns(:configuration_content)  
64 - assert_equal @metric.name, assigns(:metric).name  
65 - assert_response 200  
66 - end  
67 -  
68 -  
69 - should 'test new compound metric configuration' do  
70 - Kalibro::Configuration.expects(:request).with("Configuration", :get_configuration, {:configuration_name => @content.name}).returns({:configuration => @configuration_hash})  
71 - get :new_compound_metric_configuration, :profile => @profile.identifier, :id => @content.id  
72 - assert_equal @content, assigns(:configuration_content)  
73 - assert_equal @configuration.metric_configuration[0].code, assigns(:metric_configurations)[0].code  
74 - assert_response 200  
75 - end  
76 -  
77 - should 'test edit metric configuration' do  
78 - Kalibro::MetricConfiguration.expects(:request).with("MetricConfiguration", :get_metric_configuration, {  
79 - :configuration_name => @content.name,  
80 - :metric_name => @metric_configuration.metric.name}).returns({:metric_configuration => @metric_configuration_hash})  
81 - get :edit_metric_configuration, :profile => @profile.identifier, :id => @content.id, :metric_name => @metric.name  
82 - assert_equal @content, assigns(:configuration_content)  
83 - assert_equal @metric_configuration.code, assigns(:metric_configuration).code  
84 - assert_equal @metric_configuration.metric.name, assigns(:metric).name  
85 - assert_response 200  
86 - end  
87 -  
88 - should 'test edit compound metric configuration' do  
89 - Kalibro::MetricConfiguration.expects(:request).with("MetricConfiguration", :get_metric_configuration, {  
90 - :configuration_name => @content.name,  
91 - :metric_name => @compound_metric_configuration.metric.name}).returns({:metric_configuration => @compound_metric_configuration_hash})  
92 - Kalibro::Configuration.expects(:request).with("Configuration", :get_configuration, {:configuration_name => @content.name}).returns({:configuration => @configuration_hash})  
93 - get :edit_compound_metric_configuration,  
94 - :profile => @profile.identifier,  
95 - :id => @content.id,  
96 - :metric_name => @compound_metric_configuration.metric.name  
97 - assert_equal @content, assigns(:configuration_content)  
98 - assert_equal @compound_metric_configuration.code, assigns(:metric_configuration).code  
99 - assert_equal @compound_metric_configuration.metric.name, assigns(:metric).name  
100 - assert_equal @configuration.metric_configuration[0].code, assigns(:metric_configurations)[0].code  
101 - assert_response 200  
102 - end  
103 -  
104 - should 'test create native metric configuration' do  
105 - Kalibro::MetricConfiguration.expects(:request).with("MetricConfiguration", :save_metric_configuration, {  
106 - :metric_configuration => @metric_configuration.to_hash,  
107 - :configuration_name => @metric_configuration.configuration_name})  
108 - get :create_metric_configuration,  
109 - :profile => @profile.identifier,  
110 - :id => @content.id,  
111 - :metric_configuration => @native_hash  
112 - assert_response 302  
113 - end  
114 -  
115 - should 'test compound metric creation' do  
116 - Kalibro::MetricConfiguration.expects(:request).with("MetricConfiguration", :save_metric_configuration, {  
117 - :metric_configuration => @compound_metric_configuration.to_hash,  
118 - :configuration_name => @compound_metric_configuration.configuration_name})  
119 - get :create_compound_metric_configuration, :profile => @profile.identifier, :id => @content.id,  
120 - :metric_configuration => @compound_hash  
121 - assert_response 302  
122 - end  
123 -  
124 - should 'test update native metric configuration' do  
125 - Kalibro::MetricConfiguration.expects(:request).with("MetricConfiguration", :get_metric_configuration, {  
126 - :configuration_name => @content.name,  
127 - :metric_name => @metric_configuration.metric.name}).returns({:metric_configuration => @metric_configuration_hash})  
128 - Kalibro::MetricConfiguration.expects(:request).with("MetricConfiguration", :save_metric_configuration, {  
129 - :metric_configuration => @metric_configuration.to_hash,  
130 - :configuration_name => @metric_configuration.configuration_name})  
131 - get :update_metric_configuration, :profile => @profile.identifier, :id => @content.id,  
132 - :metric_configuration => @native_hash  
133 - assert_equal @content, assigns(:configuration_content)  
134 - assert_response 302  
135 - end  
136 -  
137 - should 'test update compound metric configuration' do  
138 - Kalibro::MetricConfiguration.expects(:request).with("MetricConfiguration", :get_metric_configuration, {  
139 - :configuration_name => @content.name,  
140 - :metric_name => @compound_metric_configuration.metric.name}).returns({:metric_configuration => @compound_metric_configuration_hash})  
141 - Kalibro::MetricConfiguration.expects(:request).with("MetricConfiguration", :save_metric_configuration, {  
142 - :metric_configuration => @compound_metric_configuration.to_hash,  
143 - :configuration_name => @compound_metric_configuration.configuration_name})  
144 - get :update_compound_metric_configuration, :profile => @profile.identifier, :id => @content.id,  
145 - :metric_configuration => @compound_hash  
146 - assert_equal @content, assigns(:configuration_content)  
147 - assert_response 302  
148 - end  
149 -  
150 - should 'test remove metric configuration' do  
151 - Kalibro::MetricConfiguration.expects(:request).with("MetricConfiguration", :get_metric_configuration, {  
152 - :configuration_name => @content.name,  
153 - :metric_name => @metric.name}).returns({:metric_configuration => @metric_configuration_hash})  
154 - Kalibro::MetricConfiguration.expects(:request).with("MetricConfiguration", :remove_metric_configuration, {  
155 - :metric_name => @metric.name,  
156 - :configuration_name => @metric_configuration.configuration_name})  
157 - get :remove_metric_configuration, :profile => @profile.identifier, :id => @content.id, :metric_name => @metric.name  
158 - assert_response 302  
159 - end  
160 -  
161 - should 'test new range' do  
162 - get :new_range, :profile => @profile.identifier, :id => @content.id, :metric_name => @metric.name  
163 - assert_equal @content, assigns(:configuration_content)  
164 - assert_equal @metric.name, assigns(:metric_name)  
165 - assert_response 200  
166 - end  
167 -  
168 - should 'test edit range' do  
169 - Kalibro::MetricConfiguration.expects(:request).with("MetricConfiguration", :get_metric_configuration, {  
170 - :configuration_name => @content.name,  
171 - :metric_name => @metric.name}).returns({:metric_configuration => @metric_configuration_hash})  
172 - get :edit_range, :profile => @profile.identifier, :id => @content.id, :metric_name => @metric.name, :beginning_id => @range.beginning  
173 - assert_equal @content, assigns(:configuration_content)  
174 - assert_equal @metric.name, assigns(:metric_name)  
175 - assert_equal @range.beginning, assigns(:beginning_id)  
176 - assert_equal @range.end, assigns(:range).end  
177 - assert_response 200  
178 - end  
179 -  
180 - should 'test create instance range' do  
181 - metric_configuration = @metric_configuration  
182 - metric_configuration.add_range(@range)  
183 - Kalibro::MetricConfiguration.expects(:request).with("MetricConfiguration", :get_metric_configuration, {  
184 - :configuration_name => @content.name,  
185 - :metric_name => @metric.name}).returns({:metric_configuration => @metric_configuration_hash})  
186 - Kalibro::MetricConfiguration.expects(:request).with("MetricConfiguration", :save_metric_configuration, {  
187 - :metric_configuration => metric_configuration.to_hash,  
188 - :configuration_name => metric_configuration.configuration_name})  
189 - get :create_range, :profile => @profile.identifier, :range => @range_hash, :id => @content.id, :metric_name => @metric.name  
190 - assert_equal @content, assigns(:configuration_content)  
191 - assert_equal @range.end, assigns(:range).end  
192 - assert_response 200  
193 - end  
194 -  
195 - should 'test update range' do  
196 - Kalibro::MetricConfiguration.expects(:request).with("MetricConfiguration", :get_metric_configuration, {  
197 - :configuration_name => @content.name,  
198 - :metric_name => @metric.name}).returns({:metric_configuration => @metric_configuration_hash})  
199 - Kalibro::MetricConfiguration.expects(:request).with("MetricConfiguration", :save_metric_configuration, {  
200 - :metric_configuration => @metric_configuration.to_hash,  
201 - :configuration_name => @metric_configuration.configuration_name})  
202 - get :update_range,  
203 - :profile => @profile.identifier,  
204 - :range => @range_hash,  
205 - :id => @content.id,  
206 - :metric_name => @metric.name,  
207 - :beginning_id => @range.beginning  
208 - assert_response 200  
209 - end  
210 -  
211 - should 'test remove range' do  
212 - metric_configuration = @metric_configuration  
213 - metric_configuration.ranges.delete_if { |range| range.beginning == @range.beginning.to_f }  
214 - Kalibro::MetricConfiguration.expects(:request).with("MetricConfiguration", :get_metric_configuration, {  
215 - :configuration_name => @content.name,  
216 - :metric_name => @metric.name}).returns({:metric_configuration => @metric_configuration_hash})  
217 - Kalibro::MetricConfiguration.expects(:request).with("MetricConfiguration", :save_metric_configuration, {  
218 - :metric_configuration => metric_configuration.to_hash,  
219 - :configuration_name => metric_configuration.configuration_name})  
220 - get :remove_range,  
221 - :profile => @profile.identifier,  
222 - :id => @content.id,  
223 - :metric_name => @metric.name,  
224 - :beginning_id => @range.beginning  
225 - assert_response 302  
226 - end  
227 -  
228 end 56 end
plugins/mezuro/test/functional/mezuro_plugin_profile_controller_test.rb
@@ -1,141 +0,0 @@ @@ -1,141 +0,0 @@
1 -require 'test_helper'  
2 -  
3 -require "#{RAILS_ROOT}/plugins/mezuro/test/fixtures/module_result_fixtures"  
4 -require "#{RAILS_ROOT}/plugins/mezuro/test/fixtures/project_result_fixtures"  
5 -require "#{RAILS_ROOT}/plugins/mezuro/test/fixtures/error_fixtures"  
6 -require "#{RAILS_ROOT}/plugins/mezuro/test/fixtures/repository_fixtures"  
7 -  
8 -class MezuroPluginProfileControllerTest < ActionController::TestCase  
9 -  
10 - def setup  
11 - @controller = MezuroPluginProfileController.new  
12 - @request = ActionController::TestRequest.new  
13 - @response = ActionController::TestResponse.new  
14 - @profile = fast_create(Community)  
15 -  
16 - @project_result = ProjectResultFixtures.project_result  
17 - @module_result = ModuleResultFixtures.module_result  
18 - @repository_url = RepositoryFixtures.repository.address  
19 - @project = @project_result.project  
20 - @date = "2012-04-13T20:39:41+04:00"  
21 -  
22 - Kalibro::Project.expects(:all_names).returns([])  
23 - @content = MezuroPlugin::ProjectContent.new(:profile => @profile, :name => @project.name, :repository_url => @repository_url)  
24 - @content.expects(:send_project_to_service).returns(nil)  
25 - @content.save  
26 - end  
27 -  
28 - should 'test project state without kalibro_error' do  
29 - Kalibro::Project.expects(:request).with("Project", :get_project, :project_name => @project.name).returns({:project => @project.to_hash})  
30 - get :project_state, :profile => @profile.identifier, :id => @content.id  
31 - assert_response 200  
32 - assert_equal @content, assigns(:content)  
33 - end  
34 -  
35 - should 'test project state with kalibro_error' do  
36 - Kalibro::Project.expects(:request).with("Project", :get_project, :project_name => @project.name).returns({:project => @project.to_hash.merge({:error => ErrorFixtures.error_hash})})  
37 - get :project_state, :profile => @profile.identifier, :id => @content.id  
38 - assert_response 200  
39 - assert_equal "ERROR", @response.body  
40 - assert_equal @content, assigns(:content)  
41 - end  
42 -  
43 - should 'test project error' do  
44 - Kalibro::Project.expects(:request).with("Project", :get_project, :project_name => @project.name).returns({:project => @project.to_hash.merge({:error => ErrorFixtures.error_hash})})  
45 - get :project_error, :profile => @profile.identifier, :id => @content.id  
46 - assert_response 200  
47 - assert_select('h3', 'ERROR')  
48 - assert_equal @content, assigns(:content)  
49 - assert_equal @project.name, assigns(:project).name  
50 - end  
51 -  
52 - should 'test project result without date' do  
53 - Kalibro::ProjectResult.expects(:request).with("ProjectResult", :get_last_result_of, {:project_name => @project.name}).returns({:project_result => @project_result.to_hash})  
54 - get :project_result, :profile => @profile.identifier, :id => @content.id, :date => nil  
55 - assert_equal @content, assigns(:content)  
56 - assert_equal @project_result.project.name, assigns(:project_result).project.name  
57 - assert_response 200  
58 - assert_select('h4', 'Last Result')  
59 - end  
60 -  
61 - should 'test project results from a specific date' do  
62 - request_body = {:project_name => @project.name, :date => @date}  
63 - Kalibro::ProjectResult.expects(:request).with("ProjectResult", :has_results_before, request_body).returns({:has_results => true})  
64 - Kalibro::ProjectResult.expects(:request).with("ProjectResult", :get_last_result_before, request_body).returns({:project_result => @project_result.to_hash})  
65 - get :project_result, :profile => @profile.identifier, :id => @content.id, :date => @date  
66 - assert_equal @content, assigns(:content)  
67 - assert_equal @project_result.project.name, assigns(:project_result).project.name  
68 - assert_response 200  
69 - assert_select('h4', 'Last Result')  
70 - end  
71 -  
72 -  
73 - should 'get module result without date' do  
74 - date_with_milliseconds = Kalibro::ProjectResult.date_with_milliseconds(@project_result.date)  
75 - Kalibro::ProjectResult.expects(:request).  
76 - with("ProjectResult", :get_last_result_of, {:project_name => @project.name}).  
77 - returns({:project_result => @project_result.to_hash})  
78 - Kalibro::ModuleResult.expects(:request).  
79 - with("ModuleResult", :get_module_result, {:project_name => @project.name, :module_name => @project.name, :date => date_with_milliseconds}).  
80 - returns({:module_result => @module_result.to_hash})  
81 - get :module_result, :profile => @profile.identifier, :id => @content.id, :module_name => @project.name, :date => nil  
82 - assert_equal @content, assigns(:content)  
83 - assert_equal @module_result.grade, assigns(:module_result).grade  
84 - assert_response 200  
85 - assert_select('h5', 'Metric results for: Qt-Calculator (APPLICATION)')  
86 - end  
87 -  
88 - should 'get module result with a specific date' do  
89 - date_with_milliseconds = Kalibro::ProjectResult.date_with_milliseconds(@project_result.date)  
90 - request_body = {:project_name => @project.name, :date => @project_result.date}  
91 - Kalibro::ProjectResult.expects(:request).with("ProjectResult", :has_results_before, request_body).returns({:has_results => true})  
92 - Kalibro::ProjectResult.expects(:request).with("ProjectResult", :get_last_result_before, request_body).returns({:project_result => @project_result.to_hash})  
93 - Kalibro::ModuleResult.expects(:request).with("ModuleResult", :get_module_result, {:project_name => @project.name, :module_name => @project.name, :date => date_with_milliseconds}).returns({:module_result => @module_result.to_hash})  
94 - get :module_result, :profile => @profile.identifier, :id => @content.id, :module_name => @project.name, :date => @project_result.date  
95 - assert_equal @content, assigns(:content)  
96 - assert_equal @module_result.grade, assigns(:module_result).grade  
97 - assert_response 200  
98 - assert_select('h5', 'Metric results for: Qt-Calculator (APPLICATION)')  
99 - end  
100 -  
101 - should 'test project tree without date' do  
102 - Kalibro::ProjectResult.expects(:request).with("ProjectResult", :get_last_result_of, {:project_name => @project.name}).returns({:project_result => @project_result.to_hash})  
103 - Kalibro::Project.expects(:request).with("Project", :get_project, :project_name => @project.name).returns({:project => @project.to_hash})  
104 - get :project_tree, :profile => @profile.identifier, :id => @content.id, :module_name => @project.name, :date => nil  
105 - assert_equal @content, assigns(:content)  
106 - assert_equal @project.name, assigns(:project_name)  
107 - assert_equal @project_result.source_tree.module.name, assigns(:source_tree).module.name  
108 - assert_response 200  
109 - assert_select('h2', /Qt-Calculator/)  
110 - end  
111 -  
112 - should 'test project tree with a specific date' do  
113 - request_body = {:project_name => @project.name, :date => @project_result.date}  
114 - Kalibro::Project.expects(:request).with("Project", :get_project, :project_name => @project.name).returns({:project => @project.to_hash})  
115 - Kalibro::ProjectResult.expects(:request).with("ProjectResult", :has_results_before, request_body).returns({:has_results => true})  
116 - Kalibro::ProjectResult.expects(:request).with("ProjectResult", :get_last_result_before, request_body).returns({:project_result => @project_result.to_hash})  
117 - get :project_tree, :profile => @profile.identifier, :id => @content.id, :module_name => @project.name, :date => @project_result.date  
118 - assert_equal @content, assigns(:content)  
119 - assert_equal @project.name, assigns(:project_name)  
120 - assert_equal @project_result.source_tree.module.name, assigns(:source_tree).module.name  
121 - assert_response 200  
122 - end  
123 -  
124 - should 'test module metrics history' do  
125 - Kalibro::ModuleResult.expects(:request).with("ModuleResult", :get_result_history, {:project_name => @project.name, :module_name => @project.name}).returns({:module_result => @module_result})  
126 - get :module_metrics_history, :profile => @profile.identifier, :id => @content.id, :module_name => @project.name,  
127 - :metric_name => @module_result.metric_result.first.metric.name.delete("() ")  
128 - assert_equal @content, assigns(:content)  
129 - assert_equal [[@module_result.metric_result[0].value, @module_result.date.to_s[0..9]]], assigns(:score_history)  
130 - assert_response 200  
131 - end  
132 -  
133 - should 'test grade history' do  
134 - Kalibro::ModuleResult.expects(:request).with("ModuleResult", :get_result_history, {:project_name => @project.name, :module_name => @project.name}).returns({:module_result => @module_result})  
135 - get :module_grade_history, :profile => @profile.identifier, :id => @content.id, :module_name => @project.name  
136 - assert_equal @content, assigns(:content)  
137 - assert_equal [[@module_result.grade, @module_result.date.to_s[0..9]]], assigns(:score_history)  
138 - assert_response 200  
139 - end  
140 -  
141 -end  
plugins/mezuro/test/functional/myprofile/mezuro_plugin_base_tool_controller_test.rb 0 → 100644
@@ -0,0 +1,42 @@ @@ -0,0 +1,42 @@
  1 +require 'test_helper'
  2 +
  3 +require "#{RAILS_ROOT}/plugins/mezuro/test/fixtures/base_tool_fixtures"
  4 +require "#{RAILS_ROOT}/plugins/mezuro/test/fixtures/configuration_fixtures"
  5 +
  6 +class MezuroPluginBaseToolControllerTest < ActionController::TestCase
  7 +
  8 + def setup
  9 + @controller = MezuroPluginBaseToolController.new
  10 + @request = ActionController::TestRequest.new
  11 + @response = ActionController::TestResponse.new
  12 + @profile = fast_create(Community)
  13 +
  14 + @base_tool = BaseToolFixtures.base_tool
  15 + @base_tool_hash = BaseToolFixtures.base_tool_hash
  16 + @configuration = ConfigurationFixtures.configuration
  17 +
  18 + Kalibro::Configuration.expects(:all_names).returns([])
  19 + @content = MezuroPlugin::ConfigurationContent.new(:profile => @profile, :name => @configuration.name)
  20 + @content.expects(:send_kalibro_configuration_to_service).returns(nil)
  21 + @content.stubs(:solr_save)
  22 + @content.save
  23 + end
  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
  34 + 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
  36 + 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
  40 + end
  41 +
  42 +end
plugins/mezuro/test/functional/myprofile/mezuro_plugin_metric_configuration_controller_test.rb 0 → 100644
@@ -0,0 +1,141 @@ @@ -0,0 +1,141 @@
  1 +require 'test_helper'
  2 +
  3 +require "#{RAILS_ROOT}/plugins/mezuro/test/fixtures/base_tool_fixtures"
  4 +require "#{RAILS_ROOT}/plugins/mezuro/test/fixtures/native_metric_fixtures"
  5 +require "#{RAILS_ROOT}/plugins/mezuro/test/fixtures/metric_configuration_fixtures"
  6 +require "#{RAILS_ROOT}/plugins/mezuro/test/fixtures/configuration_fixtures"
  7 +
  8 +class MezuroPluginMetricConfigurationControllerTest < ActionController::TestCase
  9 +
  10 + def setup
  11 + @controller = MezuroPluginMetricConfigurationController.new
  12 + @request = ActionController::TestRequest.new
  13 + @response = ActionController::TestResponse.new
  14 + @profile = fast_create(Community)
  15 +
  16 + @base_tool = BaseToolFixtures.base_tool
  17 + @base_tool_hash = BaseToolFixtures.base_tool_hash
  18 + @metric = NativeMetricFixtures.amloc
  19 + @metric_configuration = MetricConfigurationFixtures.amloc_metric_configuration
  20 + @metric_configuration_hash = MetricConfigurationFixtures.amloc_metric_configuration_hash
  21 + @compound_metric_configuration = MetricConfigurationFixtures.sc_metric_configuration
  22 + @compound_metric_configuration_hash = MetricConfigurationFixtures.sc_metric_configuration_hash
  23 + @configuration = ConfigurationFixtures.configuration
  24 + @configuration_hash = ConfigurationFixtures.configuration_hash
  25 +
  26 + Kalibro::Configuration.expects(:all_names).returns([])
  27 + @content = MezuroPlugin::ConfigurationContent.new(:profile => @profile, :name => @configuration.name)
  28 + @content.expects(:send_kalibro_configuration_to_service).returns(nil)
  29 + @content.stubs(:solr_save)
  30 + @content.save
  31 +
  32 + @native_hash = @metric_configuration.to_hash.merge({:configuration_name => @metric_configuration.configuration_name})
  33 + @native_hash.delete :attributes!
  34 + @compound_hash = @compound_metric_configuration.to_hash.merge({:configuration_name => @compound_metric_configuration.configuration_name})
  35 + @compound_hash.delete :attributes!
  36 +
  37 + end
  38 +
  39 + should 'test new metric configuration' do
  40 + Kalibro::BaseTool.expects(:request).with("BaseTool", :get_base_tool, {:base_tool_name => @base_tool.name}).returns({:base_tool => @base_tool_hash})
  41 + get :new_metric_configuration, :profile => @profile.identifier, :id => @content.id, :base_tool => @base_tool.name, :metric_name => @metric.name
  42 + assert_equal @content, assigns(:configuration_content)
  43 + assert_equal @metric.name, assigns(:metric).name
  44 + assert_response 200
  45 + end
  46 +
  47 +
  48 + should 'test new compound metric configuration' do
  49 + Kalibro::Configuration.expects(:request).with("Configuration", :get_configuration, {
  50 + :configuration_name => @content.name}).returns({:configuration => @configuration_hash})
  51 + get :new_compound_metric_configuration, :profile => @profile.identifier, :id => @content.id
  52 + assert_equal @content, assigns(:configuration_content)
  53 + assert_equal @configuration.metric_configuration[0].code, assigns(:metric_configurations)[0].code
  54 + assert_response 200
  55 + end
  56 +
  57 + should 'test edit metric configuration' do
  58 + Kalibro::MetricConfiguration.expects(:request).with("MetricConfiguration", :get_metric_configuration, {
  59 + :configuration_name => @content.name,
  60 + :metric_name => @metric_configuration.metric.name}).returns({:metric_configuration => @metric_configuration_hash})
  61 + get :edit_metric_configuration, :profile => @profile.identifier, :id => @content.id, :metric_name => @metric.name
  62 + assert_equal @content, assigns(:configuration_content)
  63 + assert_equal @metric_configuration.code, assigns(:metric_configuration).code
  64 + assert_equal @metric_configuration.metric.name, assigns(:metric).name
  65 + assert_response 200
  66 + end
  67 +
  68 + should 'test edit compound metric configuration' do
  69 + Kalibro::MetricConfiguration.expects(:request).with("MetricConfiguration", :get_metric_configuration, {
  70 + :configuration_name => @content.name,
  71 + :metric_name => @compound_metric_configuration.metric.name}).returns({:metric_configuration => @compound_metric_configuration_hash})
  72 + Kalibro::Configuration.expects(:request).with("Configuration", :get_configuration, {:configuration_name => @content.name}).returns({:configuration => @configuration_hash})
  73 + get :edit_compound_metric_configuration,
  74 + :profile => @profile.identifier,
  75 + :id => @content.id,
  76 + :metric_name => @compound_metric_configuration.metric.name
  77 + assert_equal @content, assigns(:configuration_content)
  78 + assert_equal @compound_metric_configuration.code, assigns(:metric_configuration).code
  79 + assert_equal @compound_metric_configuration.metric.name, assigns(:metric).name
  80 + assert_equal @configuration.metric_configuration[0].code, assigns(:metric_configurations)[0].code
  81 + assert_response 200
  82 + end
  83 +
  84 + should 'test create native metric configuration' do
  85 + Kalibro::MetricConfiguration.expects(:request).with("MetricConfiguration", :save_metric_configuration, {
  86 + :metric_configuration => @metric_configuration.to_hash,
  87 + :configuration_name => @metric_configuration.configuration_name})
  88 + get :create_metric_configuration,
  89 + :profile => @profile.identifier,
  90 + :id => @content.id,
  91 + :metric_configuration => @native_hash
  92 + assert_response 302
  93 + end
  94 +
  95 + should 'test compound metric creation' do
  96 + Kalibro::MetricConfiguration.expects(:request).with("MetricConfiguration", :save_metric_configuration, {
  97 + :metric_configuration => @compound_metric_configuration.to_hash,
  98 + :configuration_name => @compound_metric_configuration.configuration_name})
  99 + get :create_compound_metric_configuration, :profile => @profile.identifier, :id => @content.id,
  100 + :metric_configuration => @compound_hash
  101 + assert_response 302
  102 + end
  103 +
  104 + should 'test update native metric configuration' do
  105 + Kalibro::MetricConfiguration.expects(:request).with("MetricConfiguration", :get_metric_configuration, {
  106 + :configuration_name => @content.name,
  107 + :metric_name => @metric_configuration.metric.name}).returns({:metric_configuration => @metric_configuration_hash})
  108 + Kalibro::MetricConfiguration.expects(:request).with("MetricConfiguration", :save_metric_configuration, {
  109 + :metric_configuration => @metric_configuration.to_hash,
  110 + :configuration_name => @metric_configuration.configuration_name})
  111 + get :update_metric_configuration, :profile => @profile.identifier, :id => @content.id,
  112 + :metric_configuration => @native_hash
  113 + assert_equal @content, assigns(:configuration_content)
  114 + assert_response 302
  115 + end
  116 +
  117 + should 'test update compound metric configuration' do
  118 + Kalibro::MetricConfiguration.expects(:request).with("MetricConfiguration", :get_metric_configuration, {
  119 + :configuration_name => @content.name,
  120 + :metric_name => @compound_metric_configuration.metric.name}).returns({:metric_configuration => @compound_metric_configuration_hash})
  121 + Kalibro::MetricConfiguration.expects(:request).with("MetricConfiguration", :save_metric_configuration, {
  122 + :metric_configuration => @compound_metric_configuration.to_hash,
  123 + :configuration_name => @compound_metric_configuration.configuration_name})
  124 + get :update_compound_metric_configuration, :profile => @profile.identifier, :id => @content.id,
  125 + :metric_configuration => @compound_hash
  126 + assert_equal @content, assigns(:configuration_content)
  127 + assert_response 302
  128 + end
  129 +
  130 + should 'test remove metric configuration' do
  131 + Kalibro::MetricConfiguration.expects(:request).with("MetricConfiguration", :get_metric_configuration, {
  132 + :configuration_name => @content.name,
  133 + :metric_name => @metric.name}).returns({:metric_configuration => @metric_configuration_hash})
  134 + Kalibro::MetricConfiguration.expects(:request).with("MetricConfiguration", :remove_metric_configuration, {
  135 + :metric_name => @metric.name,
  136 + :configuration_name => @metric_configuration.configuration_name})
  137 + get :remove_metric_configuration, :profile => @profile.identifier, :id => @content.id, :metric_name => @metric.name
  138 + assert_response 302
  139 + end
  140 +
  141 +end
plugins/mezuro/test/functional/myprofile/mezuro_plugin_range_controller_test.rb 0 → 100644
@@ -0,0 +1,97 @@ @@ -0,0 +1,97 @@
  1 +require 'test_helper'
  2 +
  3 +require "#{RAILS_ROOT}/plugins/mezuro/test/fixtures/native_metric_fixtures"
  4 +require "#{RAILS_ROOT}/plugins/mezuro/test/fixtures/metric_configuration_fixtures"
  5 +require "#{RAILS_ROOT}/plugins/mezuro/test/fixtures/configuration_fixtures"
  6 +require "#{RAILS_ROOT}/plugins/mezuro/test/fixtures/range_fixtures"
  7 +
  8 +class MezuroPluginRangeControllerTest < ActionController::TestCase
  9 +
  10 + def setup
  11 + @controller = MezuroPluginRangeController.new
  12 + @request = ActionController::TestRequest.new
  13 + @response = ActionController::TestResponse.new
  14 + @profile = fast_create(Community)
  15 +
  16 + @metric = NativeMetricFixtures.amloc
  17 + @metric_configuration = MetricConfigurationFixtures.amloc_metric_configuration
  18 + @metric_configuration_hash = MetricConfigurationFixtures.amloc_metric_configuration_hash
  19 + @configuration = ConfigurationFixtures.configuration
  20 +
  21 + Kalibro::Configuration.expects(:all_names).returns([])
  22 + @content = MezuroPlugin::ConfigurationContent.new(:profile => @profile, :name => @configuration.name)
  23 + @content.expects(:send_kalibro_configuration_to_service).returns(nil)
  24 + @content.stubs(:solr_save)
  25 + @content.save
  26 +
  27 + @range = RangeFixtures.range_excellent
  28 + @range_hash = RangeFixtures.range_excellent_hash
  29 + end
  30 +
  31 + should 'test new range' do
  32 + get :new_range, :profile => @profile.identifier, :id => @content.id, :metric_name => @metric.name
  33 + assert_equal @content, assigns(:configuration_content)
  34 + assert_equal @metric.name, assigns(:metric_name)
  35 + assert_response 200
  36 + end
  37 +
  38 + should 'test edit range' do
  39 + Kalibro::MetricConfiguration.expects(:request).with("MetricConfiguration", :get_metric_configuration, {
  40 + :configuration_name => @content.name,
  41 + :metric_name => @metric.name}).returns({:metric_configuration => @metric_configuration_hash})
  42 + get :edit_range, :profile => @profile.identifier, :id => @content.id, :metric_name => @metric.name, :beginning_id => @range.beginning
  43 + assert_equal @content, assigns(:configuration_content)
  44 + assert_equal @metric.name, assigns(:metric_name)
  45 + assert_equal @range.beginning, assigns(:beginning_id)
  46 + assert_equal @range.end, assigns(:range).end
  47 + assert_response 200
  48 + end
  49 +
  50 + should 'test create instance range' do
  51 + metric_configuration = @metric_configuration
  52 + metric_configuration.add_range(@range)
  53 + Kalibro::MetricConfiguration.expects(:request).with("MetricConfiguration", :get_metric_configuration, {
  54 + :configuration_name => @content.name,
  55 + :metric_name => @metric.name}).returns({:metric_configuration => @metric_configuration_hash})
  56 + Kalibro::MetricConfiguration.expects(:request).with("MetricConfiguration", :save_metric_configuration, {
  57 + :metric_configuration => metric_configuration.to_hash,
  58 + :configuration_name => metric_configuration.configuration_name})
  59 + get :create_range, :profile => @profile.identifier, :range => @range_hash, :id => @content.id, :metric_name => @metric.name
  60 + assert_equal @content, assigns(:configuration_content)
  61 + assert_equal @range.end, assigns(:range).end
  62 + assert_response 200
  63 + end
  64 +
  65 + should 'test update range' do
  66 + Kalibro::MetricConfiguration.expects(:request).with("MetricConfiguration", :get_metric_configuration, {
  67 + :configuration_name => @content.name,
  68 + :metric_name => @metric.name}).returns({:metric_configuration => @metric_configuration_hash})
  69 + Kalibro::MetricConfiguration.expects(:request).with("MetricConfiguration", :save_metric_configuration, {
  70 + :metric_configuration => @metric_configuration.to_hash,
  71 + :configuration_name => @metric_configuration.configuration_name})
  72 + get :update_range,
  73 + :profile => @profile.identifier,
  74 + :range => @range_hash,
  75 + :id => @content.id,
  76 + :metric_name => @metric.name,
  77 + :beginning_id => @range.beginning
  78 + assert_response 200
  79 + end
  80 +
  81 + should 'test remove range' do
  82 + metric_configuration = @metric_configuration
  83 + metric_configuration.ranges.delete_if { |range| range.beginning == @range.beginning.to_f }
  84 + Kalibro::MetricConfiguration.expects(:request).with("MetricConfiguration", :get_metric_configuration, {
  85 + :configuration_name => @content.name,
  86 + :metric_name => @metric.name}).returns({:metric_configuration => @metric_configuration_hash})
  87 + Kalibro::MetricConfiguration.expects(:request).with("MetricConfiguration", :save_metric_configuration, {
  88 + :metric_configuration => metric_configuration.to_hash,
  89 + :configuration_name => metric_configuration.configuration_name})
  90 + get :remove_range,
  91 + :profile => @profile.identifier,
  92 + :id => @content.id,
  93 + :metric_name => @metric.name,
  94 + :beginning_id => @range.beginning
  95 + assert_response 302
  96 + end
  97 +end
plugins/mezuro/test/functional/profile/mezuro_plugin_module_controller_test.rb 0 → 100644
@@ -0,0 +1,74 @@ @@ -0,0 +1,74 @@
  1 +require 'test_helper'
  2 +
  3 +require "#{RAILS_ROOT}/plugins/mezuro/test/fixtures/module_result_fixtures"
  4 +require "#{RAILS_ROOT}/plugins/mezuro/test/fixtures/project_result_fixtures"
  5 +require "#{RAILS_ROOT}/plugins/mezuro/test/fixtures/error_fixtures"
  6 +require "#{RAILS_ROOT}/plugins/mezuro/test/fixtures/repository_fixtures"
  7 +
  8 +class MezuroPluginModuleControllerTest < ActionController::TestCase
  9 +
  10 + def setup
  11 + @controller = MezuroPluginModuleController.new
  12 + @request = ActionController::TestRequest.new
  13 + @response = ActionController::TestResponse.new
  14 + @profile = fast_create(Community)
  15 +
  16 + @project_result = ProjectResultFixtures.project_result
  17 + @module_result = ModuleResultFixtures.module_result
  18 + @repository_url = RepositoryFixtures.repository.address
  19 + @project = @project_result.project
  20 + @date = "2012-04-13T20:39:41+04:00"
  21 +
  22 + Kalibro::Project.expects(:all_names).returns([])
  23 + @content = MezuroPlugin::ProjectContent.new(:profile => @profile, :name => @project.name, :repository_url => @repository_url)
  24 + @content.expects(:send_project_to_service).returns(nil)
  25 + @content.save
  26 + end
  27 +
  28 +
  29 + should 'get module result without date' do
  30 + date_with_milliseconds = Kalibro::ProjectResult.date_with_milliseconds(@project_result.date)
  31 + Kalibro::ProjectResult.expects(:request).
  32 + with("ProjectResult", :get_last_result_of, {:project_name => @project.name}).
  33 + returns({:project_result => @project_result.to_hash})
  34 + Kalibro::ModuleResult.expects(:request).
  35 + with("ModuleResult", :get_module_result, {:project_name => @project.name, :module_name => @project.name, :date => date_with_milliseconds}).
  36 + returns({:module_result => @module_result.to_hash})
  37 + get :module_result, :profile => @profile.identifier, :id => @content.id, :module_name => @project.name, :date => nil
  38 + assert_equal @content, assigns(:content)
  39 + assert_equal @module_result.grade, assigns(:module_result).grade
  40 + assert_response 200
  41 + assert_select('h5', 'Metric results for: Qt-Calculator (APPLICATION)')
  42 + end
  43 +
  44 + should 'get module result with a specific date' do
  45 + date_with_milliseconds = Kalibro::ProjectResult.date_with_milliseconds(@project_result.date)
  46 + request_body = {:project_name => @project.name, :date => @project_result.date}
  47 + Kalibro::ProjectResult.expects(:request).with("ProjectResult", :has_results_before, request_body).returns({:has_results => true})
  48 + Kalibro::ProjectResult.expects(:request).with("ProjectResult", :get_last_result_before, request_body).returns({:project_result => @project_result.to_hash})
  49 + Kalibro::ModuleResult.expects(:request).with("ModuleResult", :get_module_result, {:project_name => @project.name, :module_name => @project.name, :date => date_with_milliseconds}).returns({:module_result => @module_result.to_hash})
  50 + get :module_result, :profile => @profile.identifier, :id => @content.id, :module_name => @project.name, :date => @project_result.date
  51 + assert_equal @content, assigns(:content)
  52 + assert_equal @module_result.grade, assigns(:module_result).grade
  53 + assert_response 200
  54 + assert_select('h5', 'Metric results for: Qt-Calculator (APPLICATION)')
  55 + end
  56 +
  57 + should 'test module metrics history' do
  58 + Kalibro::ModuleResult.expects(:request).with("ModuleResult", :get_result_history, {:project_name => @project.name, :module_name => @project.name}).returns({:module_result => @module_result})
  59 + get :module_metrics_history, :profile => @profile.identifier, :id => @content.id, :module_name => @project.name,
  60 + :metric_name => @module_result.metric_result.first.metric.name.delete("() ")
  61 + assert_equal @content, assigns(:content)
  62 + assert_equal [[@module_result.metric_result[0].value, @module_result.date.to_s[0..9]]], assigns(:score_history)
  63 + assert_response 200
  64 + end
  65 +
  66 + should 'test grade history' do
  67 + Kalibro::ModuleResult.expects(:request).with("ModuleResult", :get_result_history, {:project_name => @project.name, :module_name => @project.name}).returns({:module_result => @module_result})
  68 + get :module_grade_history, :profile => @profile.identifier, :id => @content.id, :module_name => @project.name
  69 + assert_equal @content, assigns(:content)
  70 + assert_equal [[@module_result.grade, @module_result.date.to_s[0..9]]], assigns(:score_history)
  71 + assert_response 200
  72 + end
  73 +
  74 +end
plugins/mezuro/test/functional/profile/mezuro_plugin_project_controller_test.rb 0 → 100644
@@ -0,0 +1,92 @@ @@ -0,0 +1,92 @@
  1 +require 'test_helper'
  2 +
  3 +require "#{RAILS_ROOT}/plugins/mezuro/test/fixtures/project_result_fixtures"
  4 +require "#{RAILS_ROOT}/plugins/mezuro/test/fixtures/error_fixtures"
  5 +require "#{RAILS_ROOT}/plugins/mezuro/test/fixtures/repository_fixtures"
  6 +
  7 +class MezuroPluginProjectControllerTest < ActionController::TestCase
  8 + def setup
  9 + @controller = MezuroPluginProjectController.new
  10 + @request = ActionController::TestRequest.new
  11 + @response = ActionController::TestResponse.new
  12 + @profile = fast_create(Community)
  13 +
  14 + @project_result = ProjectResultFixtures.project_result
  15 + @repository_url = RepositoryFixtures.repository.address
  16 + @project = @project_result.project
  17 + @date = "2012-04-13T20:39:41+04:00"
  18 +
  19 + Kalibro::Project.expects(:all_names).returns([])
  20 + @content = MezuroPlugin::ProjectContent.new(:profile => @profile, :name => @project.name, :repository_url => @repository_url)
  21 + @content.expects(:send_project_to_service).returns(nil)
  22 + @content.save
  23 + end
  24 +
  25 + should 'test project state without kalibro_error' do
  26 + Kalibro::Project.expects(:request).with("Project", :get_project, :project_name => @project.name).returns({:project => @project.to_hash})
  27 + get :project_state, :profile => @profile.identifier, :id => @content.id
  28 + assert_response 200
  29 + assert_equal @content, assigns(:content)
  30 + end
  31 +
  32 + should 'test project state with kalibro_error' do
  33 + Kalibro::Project.expects(:request).with("Project", :get_project, :project_name => @project.name).returns({:project => @project.to_hash.merge({:error => ErrorFixtures.error_hash})})
  34 + get :project_state, :profile => @profile.identifier, :id => @content.id
  35 + assert_response 200
  36 + assert_equal "ERROR", @response.body
  37 + assert_equal @content, assigns(:content)
  38 + end
  39 +
  40 + should 'test project error' do
  41 + Kalibro::Project.expects(:request).with("Project", :get_project, :project_name => @project.name).returns({:project => @project.to_hash.merge({:error => ErrorFixtures.error_hash})})
  42 + get :project_error, :profile => @profile.identifier, :id => @content.id
  43 + assert_response 200
  44 + assert_select('h3', 'ERROR')
  45 + assert_equal @content, assigns(:content)
  46 + assert_equal @project.name, assigns(:project).name
  47 + end
  48 +
  49 + should 'test project result without date' do
  50 + Kalibro::ProjectResult.expects(:request).with("ProjectResult", :get_last_result_of, {:project_name => @project.name}).returns({:project_result => @project_result.to_hash})
  51 + get :project_result, :profile => @profile.identifier, :id => @content.id, :date => nil
  52 + assert_equal @content, assigns(:content)
  53 + assert_equal @project_result.project.name, assigns(:project_result).project.name
  54 + assert_response 200
  55 + assert_select('h4', 'Last Result')
  56 + end
  57 +
  58 + should 'test project results from a specific date' do
  59 + request_body = {:project_name => @project.name, :date => @date}
  60 + Kalibro::ProjectResult.expects(:request).with("ProjectResult", :has_results_before, request_body).returns({:has_results => true})
  61 + Kalibro::ProjectResult.expects(:request).with("ProjectResult", :get_last_result_before, request_body).returns({:project_result => @project_result.to_hash})
  62 + get :project_result, :profile => @profile.identifier, :id => @content.id, :date => @date
  63 + assert_equal @content, assigns(:content)
  64 + assert_equal @project_result.project.name, assigns(:project_result).project.name
  65 + assert_response 200
  66 + assert_select('h4', 'Last Result')
  67 + end
  68 +
  69 + should 'test project tree without date' do
  70 + Kalibro::ProjectResult.expects(:request).with("ProjectResult", :get_last_result_of, {:project_name => @project.name}).returns({:project_result => @project_result.to_hash})
  71 + Kalibro::Project.expects(:request).with("Project", :get_project, :project_name => @project.name).returns({:project => @project.to_hash})
  72 + get :project_tree, :profile => @profile.identifier, :id => @content.id, :module_name => @project.name, :date => nil
  73 + assert_equal @content, assigns(:content)
  74 + assert_equal @project.name, assigns(:project_name)
  75 + assert_equal @project_result.source_tree.module.name, assigns(:source_tree).module.name
  76 + assert_response 200
  77 + assert_select('h2', /Qt-Calculator/)
  78 + end
  79 +
  80 + should 'test project tree with a specific date' do
  81 + request_body = {:project_name => @project.name, :date => @project_result.date}
  82 + Kalibro::Project.expects(:request).with("Project", :get_project, :project_name => @project.name).returns({:project => @project.to_hash})
  83 + Kalibro::ProjectResult.expects(:request).with("ProjectResult", :has_results_before, request_body).returns({:has_results => true})
  84 + Kalibro::ProjectResult.expects(:request).with("ProjectResult", :get_last_result_before, request_body).returns({:project_result => @project_result.to_hash})
  85 + get :project_tree, :profile => @profile.identifier, :id => @content.id, :module_name => @project.name, :date => @project_result.date
  86 + assert_equal @content, assigns(:content)
  87 + assert_equal @project.name, assigns(:project_name)
  88 + assert_equal @project_result.source_tree.module.name, assigns(:source_tree).module.name
  89 + assert_response 200
  90 + end
  91 +
  92 +end
plugins/mezuro/views/content_viewer/_module_result.rhtml
@@ -1,52 +0,0 @@ @@ -1,52 +0,0 @@
1 -<h5><%= _('Metric results for: ') + @module_label %> </h5>  
2 -  
3 -<hr/>  
4 -<div class="zoomable-image">  
5 -<table>  
6 - <thead>  
7 - <tr>  
8 - <th>Metric</th>  
9 - <th>Value</th>  
10 - <th>Weight</th>  
11 - <th>Threshold</th>  
12 - </tr>  
13 - </thead>  
14 - <tbody>  
15 - <% @module_result.metric_results.each do |metric_result| %>  
16 - <% range = metric_result.range %>  
17 - <% if !range.nil? %>  
18 - <tr>  
19 - <td><a href="#" show-metric-history="<%= MezuroPlugin::Helpers::ContentViewerHelper.format_name(metric_result) %>" data-module-name="<%= @module.name %>"><%= metric_result.metric.name %></a></td>  
20 - <td><%= MezuroPlugin::Helpers::ContentViewerHelper.format_grade(metric_result.value) %></td>  
21 - <td><%= metric_result.weight %></td>  
22 - <td style="background-color: #<%= range.color[2..-1] %>"><%= range.label %></td>  
23 - </tr>  
24 - <tr class="<%= MezuroPlugin::Helpers::ContentViewerHelper.format_name(metric_result) %>" style="display: none;">  
25 - <td colspan="3">  
26 - <div id='historical-<%= MezuroPlugin::Helpers::ContentViewerHelper.format_name(metric_result) %>'>  
27 - </div>  
28 - </td>  
29 - <td align="right">  
30 - <%= range.comments.nil? ? '' : range.comments %>  
31 - </td>  
32 - </tr>  
33 - <% end %>  
34 - <% end %>  
35 - </tbody>  
36 - <tfoot>  
37 - <tr>  
38 - <td colspan = "3">  
39 - <div id='historical-grade' style="display: none;"></div>  
40 - </td>  
41 - <td align = "right">  
42 - <a href="#" show-grade-history="<%= @module_result.module.name %>" data-module-name="<%= @module.name%>" >  
43 - <strong>  
44 - <%= _('Grade:') %>  
45 - <%= "%.02f" % @module_result.grade %>  
46 - </strong>  
47 - </a>  
48 - </td>  
49 - </tr>  
50 - </tfoot>  
51 -</table>  
52 -</div>  
plugins/mezuro/views/content_viewer/_project_error.rhtml
@@ -1,12 +0,0 @@ @@ -1,12 +0,0 @@
1 -<h3><%= _('ERROR') %></h3>  
2 -<p>  
3 - <%= "State when error ocurred: #{@project.state}" %>  
4 - <br/>  
5 - <% error = @project.kalibro_error %>  
6 - <%= error.message %>  
7 -<ul>  
8 - <% error.stack_trace.each do |trace| %>  
9 - <li><%= "#{trace.declaring_class}.#{trace.method_name}(#{trace.file_name}:#{trace.line_number})" %></li>  
10 - <% end %>  
11 -</ul>  
12 -</p>  
plugins/mezuro/views/content_viewer/_project_result.rhtml
@@ -1,39 +0,0 @@ @@ -1,39 +0,0 @@
1 -<% unless @content.errors[:base].nil? %>  
2 - <%= @content.errors[:base] %>  
3 -<% else %>  
4 - <p> Choose a date to see specific project results: </p>  
5 - <div id="datepicker" data-date="<%= @project_result.date %>">  
6 - <input id="datepicker_field" style="display:none"/>  
7 - </div>  
8 -  
9 - <h4><%= _('Last Result') %></h4>  
10 -  
11 - <table>  
12 - <tr>  
13 - <td><%= _('Date') %></td>  
14 - <td><%= @project_result.date %></td>  
15 - </tr>  
16 - <tr>  
17 - <td><%= _('Load time') %></td>  
18 - <td><%= @project_result.formatted_load_time %></td>  
19 - </tr>  
20 - <tr>  
21 - <td><%= _('Analysis time') %></td>  
22 - <td><%= @project_result.formatted_analysis_time %></td>  
23 - </tr>  
24 - </table>  
25 -  
26 -  
27 - <script>  
28 - jQuery(document).ready(function($) {  
29 - $("#datepicker").datepicker({ altField: '#datepicker_field', showOn: 'button', dateFormat: "yy-mm-dd",  
30 - buttonImageOnly: true, buttonImage: '/images/calendar_date_select/calendar.png',  
31 - onSelect: function(dateText, inst) {  
32 - reloadProjectWithDate(dateText) } });  
33 - var date = jQuery("#datepicker").attr('data-date').substr(0,10);  
34 - $("#datepicker").datepicker( "setDate" , date );  
35 -  
36 - });  
37 - </script>  
38 -  
39 -<% end %>  
plugins/mezuro/views/content_viewer/_score_history.rhtml
@@ -1,2 +0,0 @@ @@ -1,2 +0,0 @@
1 -<%= image_tag(MezuroPlugin::Helpers::ContentViewerHelper.generate_chart(@score_history)) %>  
2 -  
plugins/mezuro/views/content_viewer/_source_tree.rhtml
@@ -1,45 +0,0 @@ @@ -1,45 +0,0 @@
1 -<% unless @content.errors[:base].nil? %>  
2 - <%= @content.errors[:base] %>  
3 -<% else %>  
4 - <h4><%= _('Source tree') %></h4>  
5 - <% module_name = @source_tree.module.name %>  
6 - <% module_label = "#{module_name} (#{@source_tree.module.granularity})" %>  
7 -  
8 - <p><h2 class="path">  
9 - <% if module_name != @project_name %>  
10 - <a href="#" class="source-tree-link" data-module-name="<%= @project_name %>">  
11 - <%= @project_name %>  
12 - </a>  
13 - <% end %>  
14 -  
15 -  
16 - <% split_link = @source_tree.module.ancestor_names %>  
17 - <% split_link.each do |link| %>  
18 - /<a href="#" class="source-tree-link" data-module-name="<%= link %>">  
19 - <%= link.split(".").last %>  
20 - </a>  
21 - <% end %>  
22 - </h2></p>  
23 -  
24 - <% if @source_tree.children %>  
25 - <table border="0" class="source-tree">  
26 - <% @source_tree.children.each do |child| %>  
27 - <% if child.module.granularity=='PACKAGE' %>  
28 - <tr>  
29 - <td class="icon"><%= image_tag('/plugins/mezuro/images/folder.png')%></td>  
30 - <td class="source-tree-text"><a href='#' class="source-tree-link" data-module-name="<%= child.module.name %>"><%= child.module.name %></a></td>  
31 - </tr>  
32 - <% else %>  
33 - <tr>  
34 - <td class="icon"><%= image_tag('/plugins/mezuro/images/file.png') %></td>  
35 - <td class="source-tree-text">  
36 - <a href='#' class="source-tree-link" data-module-name="<%= child.module.name %>">  
37 - <%= child.module.name %>  
38 - </a>  
39 - </td>  
40 - </tr>  
41 - <% end %>  
42 - <% end %>  
43 - </table>  
44 - <% end %>  
45 -<% end %>  
plugins/mezuro/views/content_viewer/show_configuration.rhtml
@@ -3,7 +3,7 @@ @@ -3,7 +3,7 @@
3 <% unless @page.errors[:base].nil? %> 3 <% unless @page.errors[:base].nil? %>
4 <% if @page.errors[:base] =~ /There is no configuration named/ %> 4 <% if @page.errors[:base] =~ /There is no configuration named/ %>
5 <h3>Warning:</h3> 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> 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>
7 <% else %> 7 <% else %>
8 <%= @page.errors[:base] %> 8 <%= @page.errors[:base] %>
9 <% end %> 9 <% end %>
@@ -22,8 +22,10 @@ @@ -22,8 +22,10 @@
22 22
23 <br/> 23 <br/>
24 24
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/> 25 + <%= link_to "#{image_tag ('/plugins/mezuro/images/plus.png')}Add Metric", :controller => "mezuro_plugin_base_tool",
  26 + :profile => @page.profile.identifier,
  27 + :action => "choose_base_tool",
  28 + :id => @configuration_content.id %><br/>
27 29
28 <table> 30 <table>
29 <tr class="titles"> 31 <tr class="titles">
@@ -40,19 +42,22 @@ @@ -40,19 +42,22 @@
40 <%= metric_configuration.metric.origin %> 42 <%= metric_configuration.metric.origin %>
41 </td> 43 </td>
42 <td><%= metric_configuration.code %></td> 44 <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 + <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>
45 <% else %> 48 <% else %>
46 <td> 49 <td>
47 Compound Metric 50 Compound Metric
48 </td> 51 </td>
49 <td><%= metric_configuration.code %></td> 52 <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> 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>
52 <% end %> 56 <% end %>
53 57
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> 58 + <td><%= link_to "Remove", :controller => "mezuro_plugin_metric_configuration", :action => "remove_metric_configuration",
  59 + :metric_name => metric_configuration.metric.name, :id => @configuration_content.id,
  60 + :profile => @page.profile.identifier %></td>
56 </tr> 61 </tr>
57 <% end %> 62 <% end %>
58 </table> 63 </table>
plugins/mezuro/views/content_viewer/show_project.rhtml
@@ -4,7 +4,7 @@ @@ -4,7 +4,7 @@
4 <% unless @page.errors[:base].nil? %> 4 <% unless @page.errors[:base].nil? %>
5 <% if @page.errors[:base] =~ /There is no project named/ %> 5 <% if @page.errors[:base] =~ /There is no project named/ %>
6 <h3>Warning:</h3> 6 <h3>Warning:</h3>
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> 7 + <p>This project 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 <% else %> 8 <% else %>
9 <%= @page.errors[:base] %> 9 <%= @page.errors[:base] %>
10 <% end %> 10 <% end %>
plugins/mezuro/views/mezuro_plugin_base_tool/choose_base_tool.html.erb 0 → 100644
@@ -0,0 +1,16 @@ @@ -0,0 +1,16 @@
  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 0 → 100644
@@ -0,0 +1,18 @@ @@ -0,0 +1,18 @@
  1 +<h2><%= @configuration_content.name %> Configuration</h2>
  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>
plugins/mezuro/views/mezuro_plugin_metric_configuration/_metric_codes.html.erb 0 → 100644
@@ -0,0 +1,12 @@ @@ -0,0 +1,12 @@
  1 +<table>
  2 + <tr class="titles">
  3 + <td><h5>Metric Name</h5></td>
  4 + <td><h5>Metric Code</h5></td>
  5 + </tr>
  6 + <% metric_configurations.each do |metric_configuration| %>
  7 + <tr class="metric">
  8 + <td><%= metric_configuration.metric.name %></td>
  9 + <td><%= metric_configuration.code %></td>
  10 + </tr>
  11 + <% end %>
  12 +</table>
plugins/mezuro/views/mezuro_plugin_metric_configuration/edit_compound_metric_configuration.html.erb 0 → 100644
@@ -0,0 +1,81 @@ @@ -0,0 +1,81 @@
  1 +<script src="/plugins/mezuro/javascripts/validations.js" type="text/javascript"></script>
  2 +<script src="/plugins/mezuro/javascripts/colorPicker/jquery.colorPicker.min.js" type="text/javascript"></script>
  3 +<script src="/plugins/mezuro/javascripts/colorPicker/jquery.colorPicker.js" type="text/javascript"></script>
  4 +
  5 +<h2><%= @configuration_content.name %> Configuration</h2>
  6 +
  7 +<% form_for :metric_configuration, :url => {:action =>"update_compound_metric_configuration", :controller => "mezuro_plugin_metric_configuration"}, :method => :get do |f| %>
  8 + <%= hidden_field_tag :id, @configuration_content.id %>
  9 + <%= f.hidden_field :configuration_name, :value => @configuration_content.name %>
  10 +
  11 + <p>
  12 + <%= "Metric Name:" + @metric.name %>
  13 + </p>
  14 + <% f.fields_for :metric do |m| %>
  15 + <%= m.hidden_field :name, :value => @metric.name %>
  16 + <p>
  17 + <%= m.label :description, "Description:" %>
  18 + <%= m.text_field "description", :value => @metric.description %>
  19 + </p>
  20 + <p>
  21 + <%= m.label :scope, "Scope:" %>
  22 + <%= m.select :scope, [["Class", "CLASS"]], :selected => @metric.scope %>
  23 + </p>
  24 + <p>
  25 + <%= m.label :script, "Script:" %>
  26 + <%= m.text_area "script", :value => @metric.script %>
  27 + </p>
  28 + <% end %>
  29 + <p>
  30 + <%= f.label :code, "Code:" %>
  31 + <%= f.text_field "code" %>
  32 + </p>
  33 + <p>
  34 + <%= f.label :aggregation_form, "Aggregation Form:" %>
  35 + <%= f.select :aggregation_form, [["Average","AVERAGE"], ["Median", "MEDIAN"], ["Maximum", "MAXIMUM"], ["Minimum", "MINIMUM"],
  36 + ["Count", "COUNT"], ["Standard Deviation", "STANDARD_DEVIATION"]] %>
  37 + </p>
  38 + <p>
  39 + <%= f.label :weight, "Weight:" %>
  40 + <%= f.text_field :weight %>
  41 + </p>
  42 + <p>
  43 + <%= f.submit "Save" %>
  44 + </p>
  45 +<% end %>
  46 +
  47 +
  48 +<h5> Ranges </h5><br/>
  49 +
  50 +<table id="ranges">
  51 + <tr>
  52 + <td>
  53 + Label
  54 + </td>
  55 + <td>
  56 + Beginning
  57 + </td>
  58 + <td>
  59 + End
  60 + </td>
  61 + <td>
  62 + Grade
  63 + </td>
  64 + <td>
  65 + Color
  66 + </td>
  67 + </tr>
  68 + <% if (@metric_configuration.ranges!=nil)
  69 + @metric_configuration.ranges.each do |range| %>
  70 + <%= render :partial => "mezuro_plugin_range/range", :locals => {:range => range, :id => @configuration_content.id,
  71 + :metric_name => @metric_configuration.metric.name} %>
  72 + <% end
  73 + end %>
  74 +</table>
  75 +
  76 +<br/>
  77 +<%= link_to_remote "New Range", :url => {:action =>"new_range", :controller => "mezuro_plugin_range", :id => @configuration_content.id, :metric_name => @metric.name} %>
  78 +<div id="range_form" style="display:none"></div>
  79 +
  80 +<br/>
  81 +<%= render :partial => "metric_codes", :locals => {:metric_configurations => @metric_configurations} %>
plugins/mezuro/views/mezuro_plugin_metric_configuration/edit_metric_configuration.html.erb 0 → 100644
@@ -0,0 +1,88 @@ @@ -0,0 +1,88 @@
  1 +<script src="/plugins/mezuro/javascripts/validations.js" type="text/javascript"></script>
  2 +<script src="/plugins/mezuro/javascripts/colorPicker/jquery.colorPicker.min.js" type="text/javascript"></script>
  3 +<script src="/plugins/mezuro/javascripts/colorPicker/jquery.colorPicker.js" type="text/javascript"></script>
  4 +
  5 +<h2><%= @configuration_content.name %> Configuration</h2>
  6 +
  7 +<% form_for :metric_configuration, :url => {:action =>"update_metric_configuration", :controller => "mezuro_plugin_metric_configuration"}, :method => :get do |f| %>
  8 + <%= hidden_field_tag :id, @configuration_content.id %>
  9 + <%= f.hidden_field :configuration_name, :value => @configuration_content.name %>
  10 +
  11 + <% f.fields_for :metric do |m| %>
  12 +
  13 + <% @metric.language.each do |language| %>
  14 + <%= m.hidden_field :language, :multiple => true, :value => language %>
  15 + <% end %>
  16 +
  17 + <%= m.hidden_field "scope", :value => @metric.scope %>
  18 + <p>
  19 + <%= m.label :origin, "Collector Name:" %>
  20 + <%= @metric.origin %>
  21 + <%= m.hidden_field "origin", :value => @metric.origin %>
  22 + </p>
  23 + <p>
  24 + <%= m.label :metric_name, "Metric Name:" %>
  25 + <%= @metric.name %>
  26 + <%= m.hidden_field "name", :value => @metric.name %>
  27 + </p>
  28 + <!--<p>-->
  29 + <% m.label :description, "Description:" %>
  30 + <% @metric.description %>
  31 + <% m.hidden_field "description", :value => @metric.description %>
  32 + <!--</p>-->
  33 + <% end %>
  34 + <p>
  35 + <%= f.label :code, "Code:" %>
  36 + <%= @metric_configuration.code %>
  37 + <%= f.hidden_field "code", :value => @metric_configuration.code %>
  38 + </p>
  39 + <p>
  40 + <%= f.label :aggregation_form, "Aggregation Form:" %>
  41 + <%= f.select :aggregation_form, [["Average","AVERAGE"], ["Median", "MEDIAN"], ["Maximum", "MAXIMUM"], ["Minimum", "MINIMUM"],
  42 + ["Count", "COUNT"], ["Standard Deviation", "STANDARD_DEVIATION"]] %>
  43 + </p>
  44 + <p>
  45 + <%= f.label :weight, "Weight:" %>
  46 + <%= f.text_field "weight", :value => @metric_configuration.weight %>
  47 + </p>
  48 +
  49 + <p>
  50 + <%= f.submit "Save" %>
  51 + </p>
  52 +<% end %>
  53 +
  54 +
  55 +<h5> Ranges </h5><br/>
  56 +
  57 +<table id="ranges">
  58 + <tr>
  59 + <td>
  60 + Label
  61 + </td>
  62 + <td>
  63 + Beginning
  64 + </td>
  65 + <td>
  66 + End
  67 + </td>
  68 + <td>
  69 + Grade
  70 + </td>
  71 + <td>
  72 + Color
  73 + </td>
  74 + <td></td>
  75 + <td></td>
  76 + </tr>
  77 + <% if (@metric_configuration.ranges!=nil)
  78 + @metric_configuration.ranges.each do |range| %>
  79 + <%= render :partial => "mezuro_plugin_range/range", :locals => {:range => range, :id => @configuration_content.id,
  80 + :metric_name => @metric.name} %>
  81 + <% end
  82 + end %>
  83 +</table>
  84 +
  85 +<br/>
  86 +<%= link_to_remote "New Range", :url => {:action =>"new_range", :controller => "mezuro_plugin_range", :id => @configuration_content.id, :metric_name => @metric.name} %>
  87 +<div id="range_form" style="display:none"></div>
  88 +
plugins/mezuro/views/mezuro_plugin_metric_configuration/new_compound_metric_configuration.html.erb 0 → 100644
@@ -0,0 +1,44 @@ @@ -0,0 +1,44 @@
  1 +<h2><%= @configuration_content.name %> Configuration</h2>
  2 +
  3 +<% form_for :metric_configuration, :url => {:action =>"create_compound_metric_configuration",
  4 +:controller => "mezuro_plugin_metric_configuration"}, :method => :get do |f| %>
  5 + <%= hidden_field_tag :id, @configuration_content.id %>
  6 + <%= f.hidden_field :configuration_name, :value => @configuration_content.name %>
  7 +
  8 + <% f.fields_for :metric do |m| %>
  9 + <p>
  10 + <%= m.label :name, "Name:" %>
  11 + <%= m.text_field "name" %>
  12 + </p>
  13 + <p>
  14 + <%= m.label :description, "Description:" %>
  15 + <%= m.text_field "description" %>
  16 + </p>
  17 + <p>
  18 + <%= m.label :scope, "Scope:" %>
  19 + <%= m.select :scope, [["Class", "CLASS"]] %>
  20 + </p>
  21 + <p>
  22 + <%= m.label :script, "Script:" %>
  23 + <%= m.text_area "script" %>
  24 + </p>
  25 + <% end %>
  26 + <p>
  27 + <%= f.label :code, "Code:" %>
  28 + <%= f.text_field "code" %>
  29 + </p>
  30 + <p>
  31 + <%= f.label :aggregation_form, "Aggregation Form:" %>
  32 + <%= f.select :aggregation_form, [["Average","AVERAGE"], ["Median", "MEDIAN"], ["Maximum", "MAXIMUM"], ["Minimum", "MINIMUM"],
  33 + ["Count", "COUNT"], ["Standard Deviation", "STANDARD_DEVIATION"]] %>
  34 + </p>
  35 + <p>
  36 + <%= f.label :weight, "Weight:" %>
  37 + <%= f.text_field :weight %>
  38 + </p>
  39 + <p>
  40 + <%= f.submit "Add" %>
  41 + </p>
  42 +<% end %>
  43 +
  44 +<%= render :partial => "metric_codes", :locals => {:metric_configurations => @metric_configurations} %>
plugins/mezuro/views/mezuro_plugin_metric_configuration/new_metric_configuration.html.erb 0 → 100644
@@ -0,0 +1,51 @@ @@ -0,0 +1,51 @@
  1 +<script src="/plugins/mezuro/javascripts/validations.js" type="text/javascript"></script>
  2 +
  3 +<h2><%= @configuration_content.name %> Configuration</h2>
  4 +
  5 +<% form_for :metric_configuration, :url => {:action =>"create_metric_configuration", :controller => "mezuro_plugin_metric_configuration"}, :method => :get do |f| %>
  6 + <%= hidden_field_tag :id, @configuration_content.id %>
  7 + <%= f.hidden_field :configuration_name, :value => @configuration_content.name %>
  8 +
  9 + <% f.fields_for :metric do |m| %>
  10 +
  11 + <% @metric.language.each do |language| %>
  12 + <%= m.hidden_field :language, :multiple => true, :value => language %>
  13 + <% end %>
  14 +
  15 + <%= m.hidden_field "scope", :value => @metric.scope %>
  16 + <p>
  17 + <%= m.label :origin, "Collector Name:" %>
  18 + <%= @metric.origin %>
  19 + <%= m.hidden_field "origin", :value => @metric.origin %>
  20 + </p>
  21 + <p>
  22 + <%= m.label :name, "Metric Name:" %>
  23 + <%= @metric.name %>
  24 + <%= m.hidden_field "name", :value => @metric.name %>
  25 + </p>
  26 + <!--<p>-->
  27 + <% m.label :description, "Description:" %>
  28 + <% @metric.description %>
  29 + <% m.hidden_field "description", :value => @metric.description %>
  30 + <!--</p>-->
  31 + <% end %>
  32 + <p>
  33 + <%= f.label :code, "Code:" %>
  34 + <%= f.text_field :code %>
  35 + </p>
  36 + <p>
  37 + <%= f.label :aggregation_form, "Aggregation Form:" %>
  38 + <%= f.select :aggregation_form, [["Average","AVERAGE"], ["Median", "MEDIAN"], ["Maximum", "MAXIMUM"], ["Minimum", "MINIMUM"],
  39 + ["Count", "COUNT"], ["Standard Deviation", "STANDARD_DEVIATION"]] %>
  40 + </p>
  41 + <p>
  42 + <%= f.label :weight, "Weight:" %>
  43 + <%= f.text_field :weight %>
  44 + </p>
  45 +
  46 + <p>
  47 + <%= f.submit "Add" %>
  48 + </p>
  49 +
  50 +<% end %>
  51 +
plugins/mezuro/views/mezuro_plugin_module/_module_result.rhtml 0 → 100644
@@ -0,0 +1,52 @@ @@ -0,0 +1,52 @@
  1 +<h5><%= _('Metric results for: ') + @module_label %> </h5>
  2 +
  3 +<hr/>
  4 +<div class="zoomable-image">
  5 +<table>
  6 + <thead>
  7 + <tr>
  8 + <th>Metric</th>
  9 + <th>Value</th>
  10 + <th>Weight</th>
  11 + <th>Threshold</th>
  12 + </tr>
  13 + </thead>
  14 + <tbody>
  15 + <% @module_result.metric_results.each do |metric_result| %>
  16 + <% range = metric_result.range %>
  17 + <% if !range.nil? %>
  18 + <tr>
  19 + <td><a href="#" show-metric-history="<%= MezuroPlugin::Helpers::ContentViewerHelper.format_name(metric_result) %>" data-module-name="<%= @module.name %>"><%= metric_result.metric.name %></a></td>
  20 + <td><%= MezuroPlugin::Helpers::ContentViewerHelper.format_grade(metric_result.value) %></td>
  21 + <td><%= metric_result.weight %></td>
  22 + <td style="background-color: #<%= range.color[2..-1] %>"><%= range.label %></td>
  23 + </tr>
  24 + <tr class="<%= MezuroPlugin::Helpers::ContentViewerHelper.format_name(metric_result) %>" style="display: none;">
  25 + <td colspan="3">
  26 + <div id='historical-<%= MezuroPlugin::Helpers::ContentViewerHelper.format_name(metric_result) %>'>
  27 + </div>
  28 + </td>
  29 + <td align="right">
  30 + <%= range.comments.nil? ? '' : range.comments %>
  31 + </td>
  32 + </tr>
  33 + <% end %>
  34 + <% end %>
  35 + </tbody>
  36 + <tfoot>
  37 + <tr>
  38 + <td colspan = "3">
  39 + <div id='historical-grade' style="display: none;"></div>
  40 + </td>
  41 + <td align = "right">
  42 + <a href="#" show-grade-history="<%= @module_result.module.name %>" data-module-name="<%= @module.name%>" >
  43 + <strong>
  44 + <%= _('Grade:') %>
  45 + <%= "%.02f" % @module_result.grade %>
  46 + </strong>
  47 + </a>
  48 + </td>
  49 + </tr>
  50 + </tfoot>
  51 +</table>
  52 +</div>
plugins/mezuro/views/mezuro_plugin_module/_score_history.rhtml 0 → 100644
@@ -0,0 +1 @@ @@ -0,0 +1 @@
  1 +<%= image_tag(MezuroPlugin::Helpers::ContentViewerHelper.generate_chart(@score_history)) %>
plugins/mezuro/views/mezuro_plugin_myprofile/_edit_range.html.erb
@@ -1,4 +0,0 @@ @@ -1,4 +0,0 @@
1 -<% remote_form_for :range, :url => {:action =>"update_range", :controller => "mezuro_plugin_myprofile"}, :method => :get do |f| %>  
2 - <%= hidden_field_tag :beginning_id, beginning_id %>  
3 - <%= render :partial => "range_form", :locals => {:f => f, :metric_name => metric_name, :id => id, :beginning_id => beginning_id, :range => range } %>  
4 -<% end %>  
plugins/mezuro/views/mezuro_plugin_myprofile/_metric_codes.html.erb
@@ -1,12 +0,0 @@ @@ -1,12 +0,0 @@
1 -<table>  
2 - <tr class="titles">  
3 - <td><h5>Metric Name</h5></td>  
4 - <td><h5>Metric Code</h5></td>  
5 - </tr>  
6 - <% metric_configurations.each do |metric_configuration| %>  
7 - <tr class="metric">  
8 - <td><%= metric_configuration.metric.name %></td>  
9 - <td><%= metric_configuration.code %></td>  
10 - </tr>  
11 - <% end %>  
12 -</table>  
plugins/mezuro/views/mezuro_plugin_myprofile/_new_range.html.erb
@@ -1,3 +0,0 @@ @@ -1,3 +0,0 @@
1 -<% remote_form_for :range, :url => {:action =>"create_range", :controller => "mezuro_plugin_myprofile"}, :method => :get do |f| %>  
2 - <%= render :partial => "range_form", :locals => {:f => f, :metric_name => metric_name, :id => id } %>  
3 -<% end %>  
plugins/mezuro/views/mezuro_plugin_myprofile/_range.html.erb
@@ -1,17 +0,0 @@ @@ -1,17 +0,0 @@
1 -<tr>  
2 - <td>  
3 - <%=range.label%>  
4 - </td>  
5 - <td>  
6 - <%=range.beginning%>  
7 - </td>  
8 - <td>  
9 - <%=range.end%>  
10 - </td>  
11 - <td>  
12 - <%=range.grade%>  
13 - </td>  
14 - <td bgcolor="#<%= range.color[2..-1] %>"></td>  
15 - <td><%= link_to_remote "Edit", :url => {:action =>"edit_range", :controller => "mezuro_plugin_myprofile", :id => params[:id], :metric_name => params[:metric_name], :beginning_id => range.beginning} %></td>  
16 - <td><%= link_to "Remove", :action =>"remove_range", :controller => "mezuro_plugin_myprofile", :id => params[:id], :metric_name => params[:metric_name], :beginning_id => range.beginning %></td>  
17 -</tr>  
plugins/mezuro/views/mezuro_plugin_myprofile/_range_form.html.erb
@@ -1,61 +0,0 @@ @@ -1,61 +0,0 @@
1 -<%= hidden_field_tag :id, id %>  
2 -<%= hidden_field_tag :metric_name, metric_name %>  
3 -<table>  
4 - <tr>  
5 - <td>  
6 - <%= f.label :label, "(*) Label:" %>  
7 - </td>  
8 - <td>  
9 - <%= f.text_field :label %>  
10 - </td>  
11 - </tr>  
12 - <tr>  
13 - <td>  
14 - <%= f.label :beginning, "(*) Beginning:" %>  
15 - </td>  
16 - <td>  
17 - <%= f.text_field :beginning, :value => @range.beginning %>  
18 - </td>  
19 - </tr>  
20 - <tr>  
21 - <td>  
22 - <%= f.label :end, "(*) End:" %>  
23 - </td>  
24 - <td>  
25 - <%= f.text_field :end, :value => @range.end %>  
26 - </td>  
27 - </tr>  
28 - <tr>  
29 - <td>  
30 - <%= f.label :grade, "(*) Grade:" %>  
31 - </td>  
32 - <td>  
33 - <%= f.text_field :grade %>  
34 - </td>  
35 - </tr>  
36 - <tr>  
37 - <td>  
38 - <%= f.label :color, "(*) Color:" %>  
39 - </td>  
40 - <td>  
41 - <%= f.text_field(:color, :id => "range_color", :value => @range.mezuro_color) %>  
42 - </td>  
43 - </tr>  
44 - <tr>  
45 - <td>  
46 - <%= f.label :comments, "Comments:" %>  
47 - </td>  
48 - <td>  
49 - <%= f.text_field :comments %>  
50 - </td>  
51 - </tr>  
52 -</table>  
53 -<%= f.submit "Save Range" %>  
54 -  
55 -<script>jQuery(document).ready(function($) {  
56 - $('#range_color').colorPicker({  
57 - onColorChange : function(id, newValue) {  
58 - jQuery('#range_color').val(newValue);  
59 - }  
60 - });  
61 -});</script>  
plugins/mezuro/views/mezuro_plugin_myprofile/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_myprofile", :action => "new_compound_metric_configuration", :params =>  
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_myprofile", :action => "choose_metric", :params =>  
12 - { :base_tool => base_tool, :id => @configuration_content.id} %>  
13 - </td>  
14 - </tr>  
15 - <% end %>  
16 -</table>  
plugins/mezuro/views/mezuro_plugin_myprofile/choose_metric.html.erb
@@ -1,18 +0,0 @@ @@ -1,18 +0,0 @@
1 -<h2><%= @configuration_content.name %> Configuration</h2>  
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_myprofile", :action => "new_metric_configuration", :params => {:metric_name => metric.name,  
14 - :base_tool => @base_tool, :id => @configuration_content.id } %>  
15 - </td>  
16 - </tr>  
17 - <% end %>  
18 -</table>  
plugins/mezuro/views/mezuro_plugin_myprofile/create_range.rjs
@@ -1,2 +0,0 @@ @@ -1,2 +0,0 @@
1 -page.visual_effect :toggle_slide, "range_form"  
2 -page.insert_html :bottom, "ranges", :partial => "range", :locals => {:range => @range}  
plugins/mezuro/views/mezuro_plugin_myprofile/edit_compound_metric_configuration.html.erb
@@ -1,81 +0,0 @@ @@ -1,81 +0,0 @@
1 -<script src="/plugins/mezuro/javascripts/validations.js" type="text/javascript"></script>  
2 -<script src="/plugins/mezuro/javascripts/colorPicker/jquery.colorPicker.min.js" type="text/javascript"></script>  
3 -<script src="/plugins/mezuro/javascripts/colorPicker/jquery.colorPicker.js" type="text/javascript"></script>  
4 -  
5 -<h2><%= @configuration_content.name %> Configuration</h2>  
6 -  
7 -<% form_for :metric_configuration, :url => {:action =>"update_compound_metric_configuration", :controller => "mezuro_plugin_myprofile"}, :method => :get do |f| %>  
8 - <%= hidden_field_tag :id, @configuration_content.id %>  
9 - <%= f.hidden_field :configuration_name, :value => @configuration_content.name %>  
10 -  
11 - <p>  
12 - <%= "Metric Name:" + @metric.name %>  
13 - </p>  
14 - <% f.fields_for :metric do |m| %>  
15 - <%= m.hidden_field :name, :value => @metric.name %>  
16 - <p>  
17 - <%= m.label :description, "Description:" %>  
18 - <%= m.text_field "description", :value => @metric.description %>  
19 - </p>  
20 - <p>  
21 - <%= m.label :scope, "Scope:" %>  
22 - <%= m.select :scope, [["Class", "CLASS"]], :selected => @metric.scope %>  
23 - </p>  
24 - <p>  
25 - <%= m.label :script, "Script:" %>  
26 - <%= m.text_area "script", :value => @metric.script %>  
27 - </p>  
28 - <% end %>  
29 - <p>  
30 - <%= f.label :code, "Code:" %>  
31 - <%= f.text_field "code" %>  
32 - </p>  
33 - <p>  
34 - <%= f.label :aggregation_form, "Aggregation Form:" %>  
35 - <%= f.select :aggregation_form, [["Average","AVERAGE"], ["Median", "MEDIAN"], ["Maximum", "MAXIMUM"], ["Minimum", "MINIMUM"],  
36 - ["Count", "COUNT"], ["Standard Deviation", "STANDARD_DEVIATION"]] %>  
37 - </p>  
38 - <p>  
39 - <%= f.label :weight, "Weight:" %>  
40 - <%= f.text_field :weight %>  
41 - </p>  
42 - <p>  
43 - <%= f.submit "Save" %>  
44 - </p>  
45 -<% end %>  
46 -  
47 -  
48 -<h5> Ranges </h5><br/>  
49 -  
50 -<table id="ranges">  
51 - <tr>  
52 - <td>  
53 - Label  
54 - </td>  
55 - <td>  
56 - Beginning  
57 - </td>  
58 - <td>  
59 - End  
60 - </td>  
61 - <td>  
62 - Grade  
63 - </td>  
64 - <td>  
65 - Color  
66 - </td>  
67 - </tr>  
68 - <% if (@metric_configuration.ranges!=nil)  
69 - @metric_configuration.ranges.each do |range| %>  
70 - <%= render :partial => "range", :locals => {:range => range, :id => @configuration_content.id,  
71 - :metric_name => @metric_configuration.metric.name} %>  
72 - <% end  
73 - end %>  
74 -</table>  
75 -  
76 -<br/>  
77 -<%= link_to_remote "New Range", :url => {:action =>"new_range", :controller => "mezuro_plugin_myprofile", :id => @configuration_content.id, :metric_name => @metric.name} %>  
78 -<div id="range_form" style="display:none"></div>  
79 -  
80 -<br/>  
81 -<%= render :partial => "metric_codes", :locals => {:metric_configurations => @metric_configurations} %>  
plugins/mezuro/views/mezuro_plugin_myprofile/edit_metric_configuration.html.erb
@@ -1,89 +0,0 @@ @@ -1,89 +0,0 @@
1 -<script src="/plugins/mezuro/javascripts/validations.js" type="text/javascript"></script>  
2 -<script src="/plugins/mezuro/javascripts/colorPicker/jquery.colorPicker.min.js" type="text/javascript"></script>  
3 -<script src="/plugins/mezuro/javascripts/colorPicker/jquery.colorPicker.js" type="text/javascript"></script>  
4 -  
5 -<h2><%= @configuration_content.name %> Configuration</h2>  
6 -  
7 -<% form_for :metric_configuration, :url => {:action =>"update_metric_configuration", :controller => "mezuro_plugin_myprofile"}, :method => :get do |f| %>  
8 - <%= hidden_field_tag :id, @configuration_content.id %>  
9 - <%= f.hidden_field :configuration_name, :value => @configuration_content.name %>  
10 -  
11 - <% f.fields_for :metric do |m| %>  
12 -  
13 - <% @metric.language.each do |language| %>  
14 - <%= m.hidden_field :language, :multiple => true, :value => language %>  
15 - <% end %>  
16 -  
17 - <%= m.hidden_field "scope", :value => @metric.scope %>  
18 - <p>  
19 - <%= m.label :origin, "Collector Name:" %>  
20 - <%= @metric.origin %>  
21 - <%= m.hidden_field "origin", :value => @metric.origin %>  
22 - </p>  
23 - <p>  
24 - <%= m.label :metric_name, "Metric Name:" %>  
25 - <%= @metric.name %>  
26 - <%= m.hidden_field "name", :value => @metric.name %>  
27 - </p>  
28 - <!--<p>-->  
29 - <% m.label :description, "Description:" %>  
30 - <% @metric.description %>  
31 - <% m.hidden_field "description", :value => @metric.description %>  
32 - <!--</p>-->  
33 - <% end %>  
34 - <p>  
35 - <%= f.label :code, "Code:" %>  
36 - <%= @metric_configuration.code %>  
37 - <%= f.hidden_field "code", :value => @metric_configuration.code %>  
38 - </p>  
39 - <p>  
40 - <%= f.label :aggregation_form, "Aggregation Form:" %>  
41 - <%= f.select :aggregation_form, [["Average","AVERAGE"], ["Median", "MEDIAN"], ["Maximum", "MAXIMUM"], ["Minimum", "MINIMUM"],  
42 - ["Count", "COUNT"], ["Standard Deviation", "STANDARD_DEVIATION"]] %>  
43 - </p>  
44 - <p>  
45 - <%= f.label :weight, "Weight:" %>  
46 - <%= f.text_field "weight", :value => @metric_configuration.weight %>  
47 - </p>  
48 -  
49 - <p>  
50 - <%= f.submit "Save" %>  
51 - </p>  
52 -<% end %>  
53 -  
54 -  
55 -<h5> Ranges </h5><br/>  
56 -  
57 -<table id="ranges">  
58 - <tr>  
59 - <td>  
60 - Label  
61 - </td>  
62 - <td>  
63 - Beginning  
64 - </td>  
65 - <td>  
66 - End  
67 - </td>  
68 - <td>  
69 - Grade  
70 - </td>  
71 - <td>  
72 - Color  
73 - </td>  
74 - <td></td>  
75 - <td></td>  
76 - </tr>  
77 - <% if (@metric_configuration.ranges!=nil)  
78 - @metric_configuration.ranges.each do |range| %>  
79 - <%= render :partial => "range", :locals => {:range => range, :id => @configuration_content.id,  
80 - :metric_name => @metric.name} %>  
81 - <% end  
82 - end %>  
83 -</table>  
84 -  
85 -<br/>  
86 -<%= link_to_remote "New Range", :url => {:action =>"new_range", :controller => "mezuro_plugin_myprofile", :id => @configuration_content.id, :metric_name => @metric.name} %>  
87 -<div id="range_form" style="display:none"></div>  
88 -  
89 -  
plugins/mezuro/views/mezuro_plugin_myprofile/edit_range.rjs
@@ -1,2 +0,0 @@ @@ -1,2 +0,0 @@
1 -page.replace_html 'range_form', :partial => "edit_range", :locals => {:metric_name => @metric_name, :id => @configuration_content.id, :beginning_id => @beginning_id, :range => @range }  
2 -page.visual_effect :slide_down, "range_form"  
plugins/mezuro/views/mezuro_plugin_myprofile/new_compound_metric_configuration.html.erb
@@ -1,44 +0,0 @@ @@ -1,44 +0,0 @@
1 -<h2><%= @configuration_content.name %> Configuration</h2>  
2 -  
3 -<% form_for :metric_configuration, :url => {:action =>"create_compound_metric_configuration",  
4 -:controller => "mezuro_plugin_myprofile"}, :method => :get do |f| %>  
5 - <%= hidden_field_tag :id, @configuration_content.id %>  
6 - <%= f.hidden_field :configuration_name, :value => @configuration_content.name %>  
7 -  
8 - <% f.fields_for :metric do |m| %>  
9 - <p>  
10 - <%= m.label :name, "Name:" %>  
11 - <%= m.text_field "name" %>  
12 - </p>  
13 - <p>  
14 - <%= m.label :description, "Description:" %>  
15 - <%= m.text_field "description" %>  
16 - </p>  
17 - <p>  
18 - <%= m.label :scope, "Scope:" %>  
19 - <%= m.select :scope, [["Class", "CLASS"]] %>  
20 - </p>  
21 - <p>  
22 - <%= m.label :script, "Script:" %>  
23 - <%= m.text_area "script" %>  
24 - </p>  
25 - <% end %>  
26 - <p>  
27 - <%= f.label :code, "Code:" %>  
28 - <%= f.text_field "code" %>  
29 - </p>  
30 - <p>  
31 - <%= f.label :aggregation_form, "Aggregation Form:" %>  
32 - <%= f.select :aggregation_form, [["Average","AVERAGE"], ["Median", "MEDIAN"], ["Maximum", "MAXIMUM"], ["Minimum", "MINIMUM"],  
33 - ["Count", "COUNT"], ["Standard Deviation", "STANDARD_DEVIATION"]] %>  
34 - </p>  
35 - <p>  
36 - <%= f.label :weight, "Weight:" %>  
37 - <%= f.text_field :weight %>  
38 - </p>  
39 - <p>  
40 - <%= f.submit "Add" %>  
41 - </p>  
42 -<% end %>  
43 -  
44 -<%= render :partial => "metric_codes", :locals => {:metric_configurations => @metric_configurations} %>  
plugins/mezuro/views/mezuro_plugin_myprofile/new_metric_configuration.html.erb
@@ -1,51 +0,0 @@ @@ -1,51 +0,0 @@
1 -<script src="/plugins/mezuro/javascripts/validations.js" type="text/javascript"></script>  
2 -  
3 -<h2><%= @configuration_content.name %> Configuration</h2>  
4 -  
5 -<% form_for :metric_configuration, :url => {:action =>"create_metric_configuration", :controller => "mezuro_plugin_myprofile"}, :method => :get do |f| %>  
6 - <%= hidden_field_tag :id, @configuration_content.id %>  
7 - <%= f.hidden_field :configuration_name, :value => @configuration_content.name %>  
8 -  
9 - <% f.fields_for :metric do |m| %>  
10 -  
11 - <% @metric.language.each do |language| %>  
12 - <%= m.hidden_field :language, :multiple => true, :value => language %>  
13 - <% end %>  
14 -  
15 - <%= m.hidden_field "scope", :value => @metric.scope %>  
16 - <p>  
17 - <%= m.label :origin, "Collector Name:" %>  
18 - <%= @metric.origin %>  
19 - <%= m.hidden_field "origin", :value => @metric.origin %>  
20 - </p>  
21 - <p>  
22 - <%= m.label :name, "Metric Name:" %>  
23 - <%= @metric.name %>  
24 - <%= m.hidden_field "name", :value => @metric.name %>  
25 - </p>  
26 - <!--<p>-->  
27 - <% m.label :description, "Description:" %>  
28 - <% @metric.description %>  
29 - <% m.hidden_field "description", :value => @metric.description %>  
30 - <!--</p>-->  
31 - <% end %>  
32 - <p>  
33 - <%= f.label :code, "Code:" %>  
34 - <%= f.text_field :code %>  
35 - </p>  
36 - <p>  
37 - <%= f.label :aggregation_form, "Aggregation Form:" %>  
38 - <%= f.select :aggregation_form, [["Average","AVERAGE"], ["Median", "MEDIAN"], ["Maximum", "MAXIMUM"], ["Minimum", "MINIMUM"],  
39 - ["Count", "COUNT"], ["Standard Deviation", "STANDARD_DEVIATION"]] %>  
40 - </p>  
41 - <p>  
42 - <%= f.label :weight, "Weight:" %>  
43 - <%= f.text_field :weight %>  
44 - </p>  
45 -  
46 - <p>  
47 - <%= f.submit "Add" %>  
48 - </p>  
49 -  
50 -<% end %>  
51 -  
plugins/mezuro/views/mezuro_plugin_myprofile/new_range.rjs
@@ -1,2 +0,0 @@ @@ -1,2 +0,0 @@
1 -page.replace_html 'range_form', :partial => "new_range", :locals => {:metric_name => @metric_name, :id => @configuration_content.id }  
2 -page.visual_effect :slide_down, "range_form"  
plugins/mezuro/views/mezuro_plugin_myprofile/update_range.rjs
@@ -1 +0,0 @@ @@ -1 +0,0 @@
1 -page.reload()  
plugins/mezuro/views/mezuro_plugin_project/_project_error.rhtml 0 → 100644
@@ -0,0 +1,12 @@ @@ -0,0 +1,12 @@
  1 +<h3><%= _('ERROR') %></h3>
  2 +<p>
  3 + <%= "State when error ocurred: #{@project.state}" %>
  4 + <br/>
  5 + <% error = @project.kalibro_error %>
  6 + <%= error.message %>
  7 +<ul>
  8 + <% error.stack_trace.each do |trace| %>
  9 + <li><%= "#{trace.declaring_class}.#{trace.method_name}(#{trace.file_name}:#{trace.line_number})" %></li>
  10 + <% end %>
  11 +</ul>
  12 +</p>
plugins/mezuro/views/mezuro_plugin_project/_project_result.rhtml 0 → 100644
@@ -0,0 +1,39 @@ @@ -0,0 +1,39 @@
  1 +<% unless @content.errors[:base].nil? %>
  2 + <%= @content.errors[:base] %>
  3 +<% else %>
  4 + <p> Choose a date to see specific project results: </p>
  5 + <div id="datepicker" data-date="<%= @project_result.date %>">
  6 + <input id="datepicker_field" style="display:none"/>
  7 + </div>
  8 +
  9 + <h4><%= _('Last Result') %></h4>
  10 +
  11 + <table>
  12 + <tr>
  13 + <td><%= _('Date') %></td>
  14 + <td><%= @project_result.date %></td>
  15 + </tr>
  16 + <tr>
  17 + <td><%= _('Load time') %></td>
  18 + <td><%= @project_result.formatted_load_time %></td>
  19 + </tr>
  20 + <tr>
  21 + <td><%= _('Analysis time') %></td>
  22 + <td><%= @project_result.formatted_analysis_time %></td>
  23 + </tr>
  24 + </table>
  25 +
  26 +
  27 + <script>
  28 + jQuery(document).ready(function($) {
  29 + $("#datepicker").datepicker({ altField: '#datepicker_field', showOn: 'button', dateFormat: "yy-mm-dd",
  30 + buttonImageOnly: true, buttonImage: '/images/calendar_date_select/calendar.png',
  31 + onSelect: function(dateText, inst) {
  32 + reloadProjectWithDate(dateText) } });
  33 + var date = jQuery("#datepicker").attr('data-date').substr(0,10);
  34 + $("#datepicker").datepicker( "setDate" , date );
  35 +
  36 + });
  37 + </script>
  38 +
  39 +<% end %>
plugins/mezuro/views/mezuro_plugin_project/_source_tree.rhtml 0 → 100644
@@ -0,0 +1,45 @@ @@ -0,0 +1,45 @@
  1 +<% unless @content.errors[:base].nil? %>
  2 + <%= @content.errors[:base] %>
  3 +<% else %>
  4 + <h4><%= _('Source tree') %></h4>
  5 + <% module_name = @source_tree.module.name %>
  6 + <% module_label = "#{module_name} (#{@source_tree.module.granularity})" %>
  7 +
  8 + <p><h2 class="path">
  9 + <% if module_name != @project_name %>
  10 + <a href="#" class="source-tree-link" data-module-name="<%= @project_name %>">
  11 + <%= @project_name %>
  12 + </a>
  13 + <% end %>
  14 +
  15 +
  16 + <% split_link = @source_tree.module.ancestor_names %>
  17 + <% split_link.each do |link| %>
  18 + /<a href="#" class="source-tree-link" data-module-name="<%= link %>">
  19 + <%= link.split(".").last %>
  20 + </a>
  21 + <% end %>
  22 + </h2></p>
  23 +
  24 + <% if @source_tree.children %>
  25 + <table border="0" class="source-tree">
  26 + <% @source_tree.children.each do |child| %>
  27 + <% if child.module.granularity=='PACKAGE' %>
  28 + <tr>
  29 + <td class="icon"><%= image_tag('/plugins/mezuro/images/folder.png')%></td>
  30 + <td class="source-tree-text"><a href='#' class="source-tree-link" data-module-name="<%= child.module.name %>"><%= child.module.name %></a></td>
  31 + </tr>
  32 + <% else %>
  33 + <tr>
  34 + <td class="icon"><%= image_tag('/plugins/mezuro/images/file.png') %></td>
  35 + <td class="source-tree-text">
  36 + <a href='#' class="source-tree-link" data-module-name="<%= child.module.name %>">
  37 + <%= child.module.name %>
  38 + </a>
  39 + </td>
  40 + </tr>
  41 + <% end %>
  42 + <% end %>
  43 + </table>
  44 + <% end %>
  45 +<% end %>
plugins/mezuro/views/mezuro_plugin_range/_edit_range.html.erb 0 → 100644
@@ -0,0 +1,4 @@ @@ -0,0 +1,4 @@
  1 +<% remote_form_for :range, :url => {:action =>"update_range", :controller => "mezuro_plugin_range"}, :method => :get do |f| %>
  2 + <%= hidden_field_tag :beginning_id, beginning_id %>
  3 + <%= render :partial => "range_form", :locals => {:f => f, :metric_name => metric_name, :id => id, :beginning_id => beginning_id, :range => range } %>
  4 +<% end %>
plugins/mezuro/views/mezuro_plugin_range/_new_range.html.erb 0 → 100644
@@ -0,0 +1,3 @@ @@ -0,0 +1,3 @@
  1 +<% remote_form_for :range, :url => {:action =>"create_range", :controller => "mezuro_plugin_range"}, :method => :get do |f| %>
  2 + <%= render :partial => "range_form", :locals => {:f => f, :metric_name => metric_name, :id => id } %>
  3 +<% end %>
plugins/mezuro/views/mezuro_plugin_range/_range.html.erb 0 → 100644
@@ -0,0 +1,17 @@ @@ -0,0 +1,17 @@
  1 +<tr>
  2 + <td>
  3 + <%=range.label%>
  4 + </td>
  5 + <td>
  6 + <%=range.beginning%>
  7 + </td>
  8 + <td>
  9 + <%=range.end%>
  10 + </td>
  11 + <td>
  12 + <%=range.grade%>
  13 + </td>
  14 + <td bgcolor="#<%= range.color[2..-1] %>"></td>
  15 + <td><%= link_to_remote "Edit", :url => {:action =>"edit_range", :controller => "mezuro_plugin_range", :id => params[:id], :metric_name => params[:metric_name], :beginning_id => range.beginning} %></td>
  16 + <td><%= link_to "Remove", :action =>"remove_range", :controller => "mezuro_plugin_range", :id => params[:id], :metric_name => params[:metric_name], :beginning_id => range.beginning %></td>
  17 +</tr>
plugins/mezuro/views/mezuro_plugin_range/_range_form.html.erb 0 → 100644
@@ -0,0 +1,61 @@ @@ -0,0 +1,61 @@
  1 +<%= hidden_field_tag :id, id %>
  2 +<%= hidden_field_tag :metric_name, metric_name %>
  3 +<table>
  4 + <tr>
  5 + <td>
  6 + <%= f.label :label, "(*) Label:" %>
  7 + </td>
  8 + <td>
  9 + <%= f.text_field :label %>
  10 + </td>
  11 + </tr>
  12 + <tr>
  13 + <td>
  14 + <%= f.label :beginning, "(*) Beginning:" %>
  15 + </td>
  16 + <td>
  17 + <%= f.text_field :beginning, :value => @range.beginning %>
  18 + </td>
  19 + </tr>
  20 + <tr>
  21 + <td>
  22 + <%= f.label :end, "(*) End:" %>
  23 + </td>
  24 + <td>
  25 + <%= f.text_field :end, :value => @range.end %>
  26 + </td>
  27 + </tr>
  28 + <tr>
  29 + <td>
  30 + <%= f.label :grade, "(*) Grade:" %>
  31 + </td>
  32 + <td>
  33 + <%= f.text_field :grade %>
  34 + </td>
  35 + </tr>
  36 + <tr>
  37 + <td>
  38 + <%= f.label :color, "(*) Color:" %>
  39 + </td>
  40 + <td>
  41 + <%= f.text_field(:color, :id => "range_color", :value => @range.mezuro_color) %>
  42 + </td>
  43 + </tr>
  44 + <tr>
  45 + <td>
  46 + <%= f.label :comments, "Comments:" %>
  47 + </td>
  48 + <td>
  49 + <%= f.text_field :comments %>
  50 + </td>
  51 + </tr>
  52 +</table>
  53 +<%= f.submit "Save Range" %>
  54 +
  55 +<script>jQuery(document).ready(function($) {
  56 + $('#range_color').colorPicker({
  57 + onColorChange : function(id, newValue) {
  58 + jQuery('#range_color').val(newValue);
  59 + }
  60 + });
  61 +});</script>
plugins/mezuro/views/mezuro_plugin_range/create_range.rjs 0 → 100644
@@ -0,0 +1,2 @@ @@ -0,0 +1,2 @@
  1 +page.visual_effect :toggle_slide, "range_form"
  2 +page.insert_html :bottom, "ranges", :partial => "range", :locals => {:range => @range}
plugins/mezuro/views/mezuro_plugin_range/edit_range.rjs 0 → 100644
@@ -0,0 +1,2 @@ @@ -0,0 +1,2 @@
  1 +page.replace_html 'range_form', :partial => "edit_range", :locals => {:metric_name => @metric_name, :id => @configuration_content.id, :beginning_id => @beginning_id, :range => @range }
  2 +page.visual_effect :slide_down, "range_form"
plugins/mezuro/views/mezuro_plugin_range/new_range.rjs 0 → 100644
@@ -0,0 +1,2 @@ @@ -0,0 +1,2 @@
  1 +page.replace_html 'range_form', :partial => "new_range", :locals => {:metric_name => @metric_name, :id => @configuration_content.id }
  2 +page.visual_effect :slide_down, "range_form"
plugins/mezuro/views/mezuro_plugin_range/update_range.rjs 0 → 100644
@@ -0,0 +1 @@ @@ -0,0 +1 @@
  1 +page.reload()
test/test_helper.rb
1 ENV["RAILS_ENV"] = "test" 1 ENV["RAILS_ENV"] = "test"
2 2
3 # Start/stop Solr 3 # Start/stop Solr
4 -if not $test_helper_loaded  
5 - abort unless system 'rake -s solr:start'  
6 - at_exit { system 'rake -s solr:stop' }  
7 - $test_helper_loaded = true  
8 -end 4 +#if not $test_helper_loaded
  5 +# abort unless system 'rake -s solr:start'
  6 +# at_exit { system 'rake -s solr:stop' }
  7 +# $test_helper_loaded = true
  8 +#end
9 9
10 require File.expand_path(File.dirname(__FILE__) + "/../config/environment") 10 require File.expand_path(File.dirname(__FILE__) + "/../config/environment")
11 require 'test_help' 11 require 'test_help'