summaryrefslogtreecommitdiffstats
path: root/sonar-server
diff options
context:
space:
mode:
authorsimonbrandhof <simon.brandhof@gmail.com>2011-03-04 16:51:32 +0100
committersimonbrandhof <simon.brandhof@gmail.com>2011-03-04 16:51:32 +0100
commit04323d78c5c7520dca1f6645b0c47662b5348c49 (patch)
tree5bff9022b687b9faec8c3ca427ccfd3470367638 /sonar-server
parent4678773c784b97f2c52cbdad5f61159ddcbde559 (diff)
downloadsonarqube-04323d78c5c7520dca1f6645b0c47662b5348c49.tar.gz
sonarqube-04323d78c5c7520dca1f6645b0c47662b5348c49.zip
SONAR-2218 add missing files
Diffstat (limited to 'sonar-server')
-rw-r--r--sonar-server/src/main/webapp/WEB-INF/app/views/resource/_header_coverage.html.erb41
-rw-r--r--sonar-server/src/main/webapp/WEB-INF/app/views/resource/_header_source.html.erb139
-rw-r--r--sonar-server/src/main/webapp/WEB-INF/app/views/resource/_header_violations.html.erb48
-rw-r--r--sonar-server/src/main/webapp/WEB-INF/app/views/resource/_options.html.erb65
-rw-r--r--sonar-server/src/main/webapp/WEB-INF/app/views/resource/_rules_filter.html.erb45
-rw-r--r--sonar-server/src/main/webapp/WEB-INF/app/views/resource/_tabs.html.erb37
-rw-r--r--sonar-server/src/main/webapp/WEB-INF/app/views/resource/_violation.html.erb12
-rw-r--r--sonar-server/src/main/webapp/WEB-INF/app/views/resource/extension.html.erb23
-rw-r--r--sonar-server/src/main/webapp/WEB-INF/app/views/resource/nothing.html.erb1
9 files changed, 411 insertions, 0 deletions
diff --git a/sonar-server/src/main/webapp/WEB-INF/app/views/resource/_header_coverage.html.erb b/sonar-server/src/main/webapp/WEB-INF/app/views/resource/_header_coverage.html.erb
new file mode 100644
index 00000000000..7590306ac0f
--- /dev/null
+++ b/sonar-server/src/main/webapp/WEB-INF/app/views/resource/_header_coverage.html.erb
@@ -0,0 +1,41 @@
+<div id="coverage_header" class="tab_header">
+ <table class="col">
+ <tr>
+ <td class="big"><%= format_measure('coverage', :default => '-') -%></td>
+ </tr>
+ </table>
+
+ <table class="col">
+ <% if m=measure('line_coverage') %>
+ <tr>
+ <td class="name">Line coverage:</td>
+ <td class="value"><%= format_measure(m) -%></td>
+ </tr>
+ <% end %>
+ <% if m=measure('uncovered_lines') %>
+ <tr>
+ <td class="name">Uncovered lines:</td>
+ <td class="value"><%= format_measure(m) -%> / <%= format_measure('lines_to_cover') -%></td>
+ </tr>
+ <% end %>
+ </table>
+
+ <table class="col">
+ <% if m=measure('branch_coverage') %>
+ <tr>
+ <td class="name">Branch coverage:</td>
+ <td class="value"><%= format_measure(m) -%></td>
+ </tr>
+ <% end %>
+ <% if m=measure('uncovered_conditions') %>
+ <tr>
+ <td class="name">Uncovered conditions:</td>
+ <td class="value"><%= format_measure(m) -%> / <%= format_measure('conditions_to_cover') -%></td>
+ </tr>
+ <% end %>
+ </table>
+
+ <%= render :partial => 'options' -%>
+ <div class="clear"></div>
+</div>
+
diff --git a/sonar-server/src/main/webapp/WEB-INF/app/views/resource/_header_source.html.erb b/sonar-server/src/main/webapp/WEB-INF/app/views/resource/_header_source.html.erb
new file mode 100644
index 00000000000..2a4d1851f78
--- /dev/null
+++ b/sonar-server/src/main/webapp/WEB-INF/app/views/resource/_header_source.html.erb
@@ -0,0 +1,139 @@
+<div id="source_header" class="tab_header">
+ <table class="col">
+ <% if m=measure('lines') %>
+ <tr>
+ <td class="name">Lines:</td>
+ <td class="value"><%= format_measure(m) -%></td>
+ </tr>
+ <% end %>
+ <% if m=measure('ncloc') %>
+ <tr>
+ <td class="name">Lines of code:</td>
+ <td class="value"><%= format_measure(m) -%></td>
+ </tr>
+ <% end %>
+ <% if m=measure('functions') %>
+ <tr>
+ <td class="name">Methods:</td>
+ <td class="value"><%= format_measure(m) -%></td>
+ </tr>
+ <% end %>
+ <% if m=measure('accessors') %>
+ <tr>
+ <td class="name">Accessors:</td>
+ <td class="value"><%= format_measure(m) -%></td>
+ </tr>
+ <% end %>
+ <% if m=measure('paragraphs') %>
+ <tr>
+ <td class="name">Paragraphs:</td>
+ <td class="value"><%= format_measure(m) -%></td>
+ </tr>
+ <% end %>
+ </table>
+
+ <table class="col">
+ <% if m=measure('statements') %>
+ <tr>
+ <td class="name">Statements:</td>
+ <td class="value"><%= format_measure(m) -%></td>
+ </tr>
+ <% end %>
+ <% if m=measure('complexity') %>
+ <tr>
+ <td class="name">Complexity:</td>
+ <td class="value"><%= format_measure(m) -%></td>
+ </tr>
+ <% end %>
+ <% if m=measure('function_complexity') %>
+ <tr>
+ <td class="name">Complexity/method:</td>
+ <td class="value"><%= format_measure(m) -%></td>
+ </tr>
+ <% end %>
+ <% if m=measure('paragraph_complexity') %>
+ <tr>
+ <td class="name">Complexity/paragraph:</td>
+ <td class="value"><%= format_measure(m) -%></td>
+ </tr>
+ <% end %>
+ </table>
+
+ <table class="col">
+ <% if m=measure('comment_lines_density') %>
+ <tr>
+ <td class="name">Comments:</td>
+ <td class="value"><%= format_measure(m) -%></td>
+ </tr>
+ <% end %>
+ <% if m=measure('comment_lines') %>
+ <tr>
+ <td class="name">Comment lines:</td>
+ <td class="value"><%= format_measure(m) -%></td>
+ </tr>
+ <% end %>
+ <% if m=measure('commented_out_code_lines') %>
+ <tr>
+ <td class="name">Commented-out LOC:</td>
+ <td class="value"><%= format_measure(m) -%></td>
+ </tr>
+ <% end %>
+ <% if m=measure('comment_blank_lines') %>
+ <tr>
+ <td class="name">Blank comments:</td>
+ <td class="value"><%= format_measure(m) -%></td>
+ </tr>
+ <% end %>
+ </table>
+
+ <table class="col">
+ <% if m=measure('public_documented_api_density') %>
+ <tr>
+ <td class="name">Public documented API:</td>
+ <td class="value"><%= format_measure(m) -%></td>
+ </tr>
+ <% end %>
+ <% if m=measure('public_undocumented_api') %>
+ <tr>
+ <td class="name">Public undocumented API:</td>
+ <td class="value"><%= format_measure(m) -%></td>
+ </tr>
+ <% end %>
+ <% if m=measure('public_api') %>
+ <tr>
+ <td class="name">Public API:</td>
+ <td class="value"><%= format_measure(m) -%></td>
+ </tr>
+ <% end %>
+ </table>
+
+ <table class="col">
+ <% if m=measure('classes') %>
+ <tr>
+ <td class="name">Classes:</td>
+ <td class="value"><%= format_measure(m) -%></td>
+ </tr>
+ <% end %>
+ <% if m=measure('noc') %>
+ <tr>
+ <td class="name">Number of Children:</td>
+ <td class="value"><%= format_measure(m) -%></td>
+ </tr>
+ <% end %>
+ <% if m=measure('dit') %>
+ <tr>
+ <td class="name">Depth in Tree:</td>
+ <td class="value"><%= format_measure(m) -%></td>
+ </tr>
+ <% end %>
+ <% if m=measure('rfc') %>
+ <tr>
+ <td class="name">Response for Class (RFC):</td>
+ <td class="value"><%= format_measure(m) -%></td>
+ </tr>
+ <% end %>
+ </table>
+
+ <%= render :partial => 'options' -%>
+</div>
+
diff --git a/sonar-server/src/main/webapp/WEB-INF/app/views/resource/_header_violations.html.erb b/sonar-server/src/main/webapp/WEB-INF/app/views/resource/_header_violations.html.erb
new file mode 100644
index 00000000000..67e1d36eff8
--- /dev/null
+++ b/sonar-server/src/main/webapp/WEB-INF/app/views/resource/_header_violations.html.erb
@@ -0,0 +1,48 @@
+<div id="violations_header" class="tab_header">
+
+ <table class="bottomcol">
+ <tr>
+ <td><span class="big"><%= format_measure('violations', :default => 0) -%></span> violations</td>
+ </tr>
+ </table>
+
+ <table class="bottomcol">
+ <tr>
+ <td><%= image_tag 'priority/BLOCKER.png' -%></td>
+ <td class="name">Blocker:</td>
+ <td class="value"><%= format_measure('blocker_violations', :default => 0) -%></td>
+ </tr>
+ </table>
+ <table class="bottomcol">
+ <tr>
+ <td><%= image_tag 'priority/CRITICAL.png' -%></td>
+ <td class="name">Critical:</td>
+ <td class="value"><%= format_measure('critical_violations', :default => 0) -%></td>
+ </tr>
+ </table>
+ <table class="bottomcol">
+ <tr>
+ <td><%= image_tag 'priority/MAJOR.png' -%></td>
+ <td class="name">Major:</td>
+ <td class="value"><%= format_measure('major_violations', :default => 0) -%></td>
+ </tr>
+ </table>
+ <table class="bottomcol">
+ <tr>
+ <td><%= image_tag 'priority/MINOR.png' -%></td>
+ <td class="name">Minor:</td>
+ <td class="value"><%= format_measure('minor_violations', :default => 0) -%></td>
+ </tr>
+ </table>
+ <table class="bottomcol">
+ <tr>
+ <td><%= image_tag 'priority/INFO.png' -%></td>
+ <td class="name">Info:</td>
+ <td class="value"><%= format_measure('info_violations', :default => 0) -%></td>
+ </tr>
+ </table>
+
+ <%= render :partial => 'options' -%>
+ <div class="clear"></div>
+</div>
+
diff --git a/sonar-server/src/main/webapp/WEB-INF/app/views/resource/_options.html.erb b/sonar-server/src/main/webapp/WEB-INF/app/views/resource/_options.html.erb
new file mode 100644
index 00000000000..ab81eaae342
--- /dev/null
+++ b/sonar-server/src/main/webapp/WEB-INF/app/views/resource/_options.html.erb
@@ -0,0 +1,65 @@
+<% display_options = @scm_available || @expandable || @snapshot.project_snapshot.periods? || @display_violations
+ if display_options
+%>
+
+<div id="source_options">
+ <script>
+ applyOptions=function() {
+ $('resource-loading').show();
+ <% if request.xhr? %>
+ var params = Form.serialize($('options-form'));
+ new Ajax.Updater('resource_container', '<%= url_for :controller => 'resource', :action => 'index', :id => @resource.key -%>', {asynchronous:true, parameters:params});
+ return true;
+ <% else %>
+ $('options-form').submit();
+ return false;
+ <% end %>
+ };
+ </script>
+ <form method="GET" action="<%= url_for :controller => 'resource', :action => 'index', :id => @resource.key -%>" id="options-form">
+ <input type="hidden" name="tab" value="<%= params[:tab] -%>"/>
+ <input type="hidden" name="metric" value="<%= params[:metric] -%>"/>
+ <input type="hidden" name="period" value="<%= params[:period] -%>"/>
+
+ <table>
+ <tr>
+ <% first=true %>
+ <% if @scm_available %>
+ <td class="<%= 'first' if first -%>">
+ <input type="checkbox" value="true" name="scm" id="scm" <%= 'checked' if @display_scm -%> onclick="applyOptions()"/>
+ <label for="scm">Show commits</label>
+ </td>
+ <% first=false
+ end %>
+
+ <% if @expandable %>
+ <td class="<%= 'first' if first -%>">
+ <input type="checkbox" value="true" name="expand" id="expand" <%= 'checked' if @expanded -%> onclick="applyOptions()"/>
+ <label for="expand">Show full source</label>
+ </td>
+ <% first=false
+ end %>
+
+ <% if @snapshot.project_snapshot.periods? %>
+ <td class="<%= 'first' if first -%>">
+ <select id="period" name="period" onchange="applyOptions()">
+ <option value="">Time changes...</option>
+ <%= period_select_options(@snapshot, 1) -%>
+ <%= period_select_options(@snapshot, 2) -%>
+ <%= period_select_options(@snapshot, 3) -%>
+ <%= period_select_options(@snapshot, 4) -%>
+ <%= period_select_options(@snapshot, 5) -%>
+ </select>
+ </td>
+ <%
+ first=false
+ end %>
+
+ <% if @display_violations %>
+ <td class="<%= 'first' if first -%>"><%= render :partial => 'rules_filter' -%></td>
+ <% end %>
+ </tr>
+ </table>
+ </form>
+</div>
+<% end %> \ No newline at end of file
diff --git a/sonar-server/src/main/webapp/WEB-INF/app/views/resource/_rules_filter.html.erb b/sonar-server/src/main/webapp/WEB-INF/app/views/resource/_rules_filter.html.erb
new file mode 100644
index 00000000000..900711898b0
--- /dev/null
+++ b/sonar-server/src/main/webapp/WEB-INF/app/views/resource/_rules_filter.html.erb
@@ -0,0 +1,45 @@
+<%
+ blocker_violations = @snapshot.measure('blocker_violations')
+ critical_violations = @snapshot.measure('critical_violations')
+ major_violations = @snapshot.measure('major_violations')
+ minor_violations = @snapshot.measure('minor_violations')
+ info_violations = @snapshot.measure('info_violations')
+
+ rule_counts={}
+ rules=[]
+ rule_measures=ProjectMeasure.find(:all, :include => 'rule', :conditions => ['metric_id=? AND snapshot_id=? AND rule_id IS NOT NULL AND characteristic_id IS NULL', Metric.by_key('violations').id, @snapshot.id])
+ rule_measures.each do |rule_measure|
+ rule_counts[rule_measure.rule_id]=rule_measure.value.to_i
+ rules<<rule_measure.rule
+ end
+
+ rule_options=[]
+ rules.uniq.sort_by{|rule| rule.name}.each do |rule|
+ rule_options<<["#{h rule.name} (#{rule_counts[rule.id]})", rule.id]
+ end
+%>
+<select id="rule" name="rule" onchange="applyOptions()">
+ <option value="">No filters</option>
+ <optgroup label="Severity">
+ <% if blocker_violations && blocker_violations.value>0 %>
+ <option value="<%= Sonar::RulePriority::BLOCKER.to_s -%>" <%= 'selected' if params[:rule]==Sonar::RulePriority::BLOCKER.to_s -%>>Blocker (<%= blocker_violations.formatted_value -%>)</option>
+ <% end %>
+ <% if critical_violations && critical_violations.value>0 %>
+ <option value="<%= Sonar::RulePriority::CRITICAL.to_s -%>" <%= 'selected' if params[:rule]==Sonar::RulePriority::CRITICAL.to_s -%>>Critical (<%= critical_violations.formatted_value -%>)</option>
+ <% end %>
+ <% if major_violations && major_violations.value>0 %>
+ <option value="<%= Sonar::RulePriority::MAJOR.to_s -%>" <%= 'selected' if params[:rule]==Sonar::RulePriority::MAJOR.to_s -%>>Major (<%= major_violations.formatted_value -%>)</option>
+ <% end %>
+ <% if minor_violations && minor_violations.value>0 %>
+ <option value="<%= Sonar::RulePriority::MINOR.to_s -%>" <%= 'selected' if params[:rule]==Sonar::RulePriority::MINOR.to_s -%>>Minor (<%= minor_violations.formatted_value -%>)</option>
+ <% end %>
+ <% if info_violations && info_violations.value>0 %>
+ <option value="<%= Sonar::RulePriority::INFO.to_s -%>" <%= 'selected' if params[:rule]==Sonar::RulePriority::INFO.to_s -%>>Info (<%= info_violations.formatted_value -%>)</option>
+ <% end %>
+ </optgroup>
+
+
+ <optgroup label="Rule">
+ <%= options_for_select(rule_options, params[:rule].to_i) -%>
+ </optgroup>
+</select> \ No newline at end of file
diff --git a/sonar-server/src/main/webapp/WEB-INF/app/views/resource/_tabs.html.erb b/sonar-server/src/main/webapp/WEB-INF/app/views/resource/_tabs.html.erb
new file mode 100644
index 00000000000..3428c56040e
--- /dev/null
+++ b/sonar-server/src/main/webapp/WEB-INF/app/views/resource/_tabs.html.erb
@@ -0,0 +1,37 @@
+<style>
+
+</style>
+
+<div id="source_title">
+ <span class="h1"><%= qualifier_icon(@resource) -%> <%= @resource.long_name -%></span>
+</div>
+
+<div id="source_tabs">
+ <ul class="tablinks">
+ <%
+ first=true
+ if @snapshot.source
+ %>
+ <li class="<%= 'first' if first -%>"><a href="<%= ApplicationController.root_context -%>/api/sources?resource=<%= @resource.key -%>&format=txt">Raw</a></li>
+ <% first=false
+ end
+ if request.xhr? %>
+ <li class="<%= 'first' if first -%>"><a href="<%= ApplicationController.root_context -%>/resource/index/<%= @resource.key -%>" target="sonar">New Window</a></li>
+ <% end %>
+ </ul>
+ <ul class="tabs" >
+ <% if request.xhr? %>
+ <% @extensions.each do |extension| %>
+ <li><a href="#" onclick="loadAjaxTab('<%= @resource.id -%>','<%= extension.getId() -%>')" class="<%= 'selected' if @extension.getId()==extension.getId() -%>"><%= extension.getTitle() -%></a></li>
+ <% end %>
+ <% else %>
+ <script>function loadTab(url) {$('resource-loading').show();document.location.href=url;return false;}</script>
+ <% @extensions.each do |extension| %>
+ <li><a href="#" onClick="loadTab('<%= url_for(:overwrite_params => {:tab => extension.getId()}) -%>')" class="<%= 'selected' if @extension.getId()==extension.getId() -%>"><%= extension.getTitle() -%></a></li>
+ <% end %>
+ <% end %>
+ <li>
+ <img src="<%= ApplicationController.root_context -%>/images/loading.gif" id="resource-loading" style="display:none"/>
+ </li>
+ </ul>
+</div>
diff --git a/sonar-server/src/main/webapp/WEB-INF/app/views/resource/_violation.html.erb b/sonar-server/src/main/webapp/WEB-INF/app/views/resource/_violation.html.erb
new file mode 100644
index 00000000000..c3feeb1f0b4
--- /dev/null
+++ b/sonar-server/src/main/webapp/WEB-INF/app/views/resource/_violation.html.erb
@@ -0,0 +1,12 @@
+<img src="<%= ApplicationController.root_context -%>/images/priority/<%=violation.failure_level-%>.png"/>
+
+<span class="rulename"><a onclick="window.open(this.href,'rule','height=800,width=900,scrollbars=1,resizable=1');return false;" href="<%= url_for :controller => 'rules', :action => 'show', :id => violation.rule.key, :layout => 'false' -%>"><%= h(violation.rule.name) -%></a></span>
+ ยป
+<%= h(violation.message) -%>
+<%
+ if violation.created_at
+ duration=Date.today - violation.created_at.to_date
+
+%>
+ <span class="violation_date"><%= duration==0 ? 'today' : "#{duration} days ago" -%></span>
+<% end %> \ No newline at end of file
diff --git a/sonar-server/src/main/webapp/WEB-INF/app/views/resource/extension.html.erb b/sonar-server/src/main/webapp/WEB-INF/app/views/resource/extension.html.erb
new file mode 100644
index 00000000000..b61e6259fc4
--- /dev/null
+++ b/sonar-server/src/main/webapp/WEB-INF/app/views/resource/extension.html.erb
@@ -0,0 +1,23 @@
+<%= render :partial => 'tabs' -%>
+
+<% if @extension.isGwt() %>
+
+ <% if request.xhr? %>
+ <div id="gwtpage"> </div>
+ <script>loadGWT('<%= @extension.getId() -%>', <%= @resource.id -%>,'<%= @resource.key -%>', '<%= @resource.name -%>', '<%= @resource.scope -%>', '<%= @resource.qualifier -%>', '<%= @resource.language -%>');</script>
+
+ <% else %>
+
+
+ <div id="gwtpage"> </div>
+ <!-- for SmartGWT -->
+ <script>var isomorphicDir = "<%= "#{ApplicationController.root_context}/deploy/gwt/#{@extension.getId()}" -%>/sc/";</script>
+
+ <%= render :partial => 'gwt/base', :locals => {:resource => @resource, :popup => false, :metric => params[:metric]} -%>
+ <script src="<%= ApplicationController.root_context -%>/deploy/gwt/<%= @extension.getId() -%>/<%= @extension.getId() -%>.nocache.js?<%= sonar_version -%>"></script>
+
+ <% end %>
+
+<% else # ruby on rails page %>
+ <%= render :inline => @page.getTemplate() %>
+<% end %> \ No newline at end of file
diff --git a/sonar-server/src/main/webapp/WEB-INF/app/views/resource/nothing.html.erb b/sonar-server/src/main/webapp/WEB-INF/app/views/resource/nothing.html.erb
new file mode 100644
index 00000000000..d22506de4cf
--- /dev/null
+++ b/sonar-server/src/main/webapp/WEB-INF/app/views/resource/nothing.html.erb
@@ -0,0 +1 @@
+<%= render :partial => 'tabs' -%> \ No newline at end of file