aboutsummaryrefslogtreecommitdiffstats
path: root/sonar-server/src
diff options
context:
space:
mode:
Diffstat (limited to 'sonar-server/src')
-rw-r--r--sonar-server/src/main/webapp/WEB-INF/app/controllers/dev_controller.rb32
-rw-r--r--sonar-server/src/main/webapp/WEB-INF/app/views/layouts/_breadcrumb.html.erb5
-rw-r--r--sonar-server/src/main/webapp/WEB-INF/app/views/layouts/_head.html.erb21
-rw-r--r--sonar-server/src/main/webapp/WEB-INF/app/views/layouts/_layout.html.erb328
-rw-r--r--sonar-server/src/main/webapp/stylesheets/layout.css198
-rw-r--r--sonar-server/src/main/webapp/stylesheets/style.css217
-rw-r--r--sonar-server/src/main/webapp/stylesheets/yui-2.6.0.css7
-rw-r--r--sonar-server/src/main/webapp/stylesheets/yui-reset-font.css12
8 files changed, 429 insertions, 391 deletions
diff --git a/sonar-server/src/main/webapp/WEB-INF/app/controllers/dev_controller.rb b/sonar-server/src/main/webapp/WEB-INF/app/controllers/dev_controller.rb
new file mode 100644
index 00000000000..2fb2e7d6b5a
--- /dev/null
+++ b/sonar-server/src/main/webapp/WEB-INF/app/controllers/dev_controller.rb
@@ -0,0 +1,32 @@
+#
+# Sonar, entreprise quality control tool.
+# Copyright (C) 2008-2012 SonarSource
+# mailto:contact AT sonarsource DOT com
+#
+# Sonar is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 3 of the License, or (at your option) any later version.
+#
+# Sonar is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with Sonar; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02
+#
+class DevController < ApplicationController
+
+ SECTION=Navigation::SECTION_HOME
+
+ def layout
+ render :text => '', :layout => true
+ end
+
+ def empty
+ render :text => ''
+ end
+
+end
diff --git a/sonar-server/src/main/webapp/WEB-INF/app/views/layouts/_breadcrumb.html.erb b/sonar-server/src/main/webapp/WEB-INF/app/views/layouts/_breadcrumb.html.erb
index 6d85c456e27..526601cef6d 100644
--- a/sonar-server/src/main/webapp/WEB-INF/app/views/layouts/_breadcrumb.html.erb
+++ b/sonar-server/src/main/webapp/WEB-INF/app/views/layouts/_breadcrumb.html.erb
@@ -1,5 +1,3 @@
-<ol id="crumbs">
- <li><a href="<%= ApplicationController.root_context -%>/"><%= message('layout.home') -%></a></li>
<%
resource_link = {}
only_resource = true
@@ -47,5 +45,4 @@ if @review
</li>
<%
end
-%>
-</ol> \ No newline at end of file
+%> \ No newline at end of file
diff --git a/sonar-server/src/main/webapp/WEB-INF/app/views/layouts/_head.html.erb b/sonar-server/src/main/webapp/WEB-INF/app/views/layouts/_head.html.erb
index 89d6e219f5a..91ef035e22c 100644
--- a/sonar-server/src/main/webapp/WEB-INF/app/views/layouts/_head.html.erb
+++ b/sonar-server/src/main/webapp/WEB-INF/app/views/layouts/_head.html.erb
@@ -2,7 +2,15 @@
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta name="gwt:property" content="locale=<%= I18n.locale.to_s.gsub(/-/, '_') -%>">
<meta http-equiv="X-UA-Compatible" content="IE=9">
+<link rel="shortcut icon" type="image/x-icon" href="<%= image_path('favicon.ico') -%>" />
+<%
+ if @project
+%><link rel="alternate" title="Sonar Alerts on <%= @project.name -%>" href="<%= ApplicationController.root_context -%>/feeds/project/<%= @project.key -%>?category=<%= EventCategory::KEY_ALERT -%>" type="application/atom+xml">
<%
+ else
+%><link rel="alternate" title="Sonar Alerts" href="<%= ApplicationController.root_context -%>/feeds/projects/<%= EventCategory::KEY_ALERT -%>" type="application/atom+xml"><%
+ end
+
if @page_title
title="Sonar - #{h(@page_title)}"
elsif @project
@@ -13,11 +21,12 @@
title='Sonar'
end
%>
-<title><%= title %></title>
+<title><%= title -%></title>
<% if ENV['RAILS_ENV'] == 'production'
%><%= stylesheet_link_tag 'sonar', :media => 'all' -%><%= javascript_include_tag 'sonar'
-%><% else %>
-<%= stylesheet_link_tag 'yui-2.6.0.css', :media => 'all' %>
+<%= stylesheet_link_tag 'yui-reset-font.css', :media => 'all' %>
+<%= stylesheet_link_tag 'layout.css', :media => 'all' %>
<%= stylesheet_link_tag 'style', :media => 'all' %>
<%= stylesheet_link_tag 'sonar-colorizer', :media => 'all' %>
<%= stylesheet_link_tag 'dashboard', :media => 'all' %>
@@ -33,11 +42,5 @@
<%= javascript_include_tag 'resource' %>
<% end %>
<!--[if lte IE 8]><%= javascript_include_tag 'protovis-msie' -%><![endif]-->
-<link rel="shortcut icon" type="image/x-icon" href="<%= image_path('favicon.ico') -%>" />
-<%
-if @project %>
-<link rel="alternate" title="Sonar Alerts on <%= @project.name -%>" href="<%= ApplicationController.root_context -%>/feeds/project/<%= @project.key -%>?category=<%= EventCategory::KEY_ALERT -%>" type="application/atom+xml">
-<% else
-%><link rel="alternate" title="Sonar Alerts" href="<%= ApplicationController.root_context -%>/feeds/projects/<%= EventCategory::KEY_ALERT -%>" type="application/atom+xml"><%
-end %><script>var baseUrl = '<%= ApplicationController.root_context -%>';var $j = jQuery.noConflict();</script>
+<script>var baseUrl = '<%= ApplicationController.root_context -%>';var $j = jQuery.noConflict();</script>
</head><body> \ No newline at end of file
diff --git a/sonar-server/src/main/webapp/WEB-INF/app/views/layouts/_layout.html.erb b/sonar-server/src/main/webapp/WEB-INF/app/views/layouts/_layout.html.erb
index 345fb8176b9..d131b7c45de 100644
--- a/sonar-server/src/main/webapp/WEB-INF/app/views/layouts/_layout.html.erb
+++ b/sonar-server/src/main/webapp/WEB-INF/app/views/layouts/_layout.html.erb
@@ -7,9 +7,26 @@
period_param = "period=#{params[:period]}" if params[:period]
%>
<div id="container">
- <div id="hd">
- <%= render :partial => 'layouts/breadcrumb' %>
- <ol id="nav">
+<div id="hd">
+ <div id="nav1">
+ <ul>
+ <li>
+ <% global_dashboards = ActiveDashboard.user_dashboards(current_user, true)
+ if global_dashboards.empty?
+ %>
+ <a href="<%= ApplicationController.root_context -%>/"><%= message('layout.home') -%></a>
+ <%
+ else
+ main_global_dashboard = global_dashboards[0]
+ %>
+ <a href="<%= ApplicationController.root_context -%>/dashboard/?did=<%= main_global_dashboard.dashboard_id -%>"><%= h main_global_dashboard.dashboard.name(true) -%></a>
+ <% end %>
+ </li>
+ <%= render :partial => 'layouts/breadcrumb' -%>
+ </ul>
+ </div>
+ <div id="nav2">
+ <ul>
<li>
<input type="text" size="15" name="search" id="searchInput" onFocus="autocompleteResources()" value="<%= message('search_verb') -%>"/>
<img src="<%= ApplicationController.root_context -%>/images/loading-small.gif" id="searchingResources" style="display:none">
@@ -26,180 +43,183 @@
<li><a href="<%= ApplicationController.root_context -%>/sessions/new?return_to=<%= u (request.request_uri) -%>"><%= message('layout.login') -%></a></li>
<% end %>
<li><a href="<%= ApplicationController.root_context -%>/profiles"><%= message('layout.configuration') -%></a></li>
- </ol>
-
+ </ul>
</div>
- <div id="body">
- <div id="searchResourcesResults" class="autocomplete" style="display:none"></div>
- <div id="sb">
- <div id="sidebar">
- <ul>
- <% if selected_section==Navigation::SECTION_HOME %>
- <% ActiveDashboard.user_dashboards(current_user, true).each do |active_dashboard| %>
- <li class="<%= 'selected' if @dashboard && controller.controller_path=='dashboard' && active_dashboard.dashboard_id==@dashboard.id -%>">
- <a href="<%= ApplicationController.root_context -%>/dashboard/?did=<%= active_dashboard.dashboard_id -%>"><%= active_dashboard.dashboard.name(true) -%></a>
- </li>
- <% end %>
+</div>
+<div id="body">
+ <div id="searchResourcesResults" class="autocomplete" style="display:none"></div>
+ <div id="sb">
+ <div id="sidebar">
+ <ul>
+ <% if selected_section==Navigation::SECTION_HOME %>
+ <% ActiveDashboard.user_dashboards(current_user, true).each do |active_dashboard| %>
+ <li class="<%= 'selected' if @dashboard && controller.controller_path=='dashboard' && active_dashboard.dashboard_id==@dashboard.id -%>">
+ <a href="<%= ApplicationController.root_context -%>/dashboard/?did=<%= active_dashboard.dashboard_id -%>"><%= active_dashboard.dashboard.name(true) -%></a>
+ </li>
+ <% end %>
+
+ <li class="<%= 'selected' if controller.controller_path=='reviews' -%>">
+ <a href="<%= ApplicationController.root_context -%>/reviews/index"><%= message('reviews.page') -%></a></li>
+ <li class="<%= 'selected' if controller.controller_path=='dependencies' -%>">
+ <a href="<%= ApplicationController.root_context -%>/dependencies/index"><%= message('dependencies.page') -%></a></li>
- <li class="<%= 'selected' if controller.controller_path=='reviews' -%>">
- <a href="<%= ApplicationController.root_context -%>/reviews/index"><%= message('reviews.page') -%></a></li>
- <li class="<%= 'selected' if controller.controller_path=='dependencies' -%>">
- <a href="<%= ApplicationController.root_context -%>/dependencies/index"><%= message('dependencies.page') -%></a></li>
+ <% controller.java_facade.getPages(Navigation::SECTION_HOME, nil, nil, nil, nil).each do |page|
+ page_url = (page.isController() ? page.getId() : "/plugins/home/#{page.getId()}")
+ selected=request.request_uri.include?("/plugins/home/#{page_url}")
+ %>
+ <li class="<%= 'selected' if selected -%>">
+ <a href="<%= ApplicationController.root_context -%><%= page_url -%>"><%= message(page.getId() + '.page', :default => page.getTitle()) -%></a></li>
+ <% end %>
- <% controller.java_facade.getPages(Navigation::SECTION_HOME, nil, nil, nil, nil).each do |page|
- page_url = (page.isController() ? page.getId() : "/plugins/home/#{page.getId()}")
- selected=request.request_uri.include?("/plugins/home/#{page_url}")
+ <% elsif selected_section==Navigation::SECTION_RESOURCE %>
+ <% ActiveDashboard.user_dashboards(current_user, false).each do |active_dashboard| %>
+ <li class="<%= 'selected' if @dashboard && controller.controller_path=='dashboard' && active_dashboard.dashboard_id==@dashboard.id -%>">
+ <a href="<%= ApplicationController.root_context -%>/dashboard/index/<%= @project.id -%>?did=<%= active_dashboard.dashboard_id -%><%= "&"+period_param if period_param -%>"><%= active_dashboard.dashboard.name(true) -%></a>
+ </li>
+ <% end %>
+ <li class="<%= 'selected' if request.request_uri.include?('/components/index') -%>">
+ <a href="<%= ApplicationController.root_context -%>/components/index/<%= @project.id -%>"><%= message('components.page') -%></a></li>
+ <li class="<%= 'selected' if request.request_uri.include?('/drilldown/violations') -%>">
+ <a href="<%= ApplicationController.root_context -%>/drilldown/violations/<%= @project.id -%><%= "?"+period_param if period_param -%>"><%= message('violations_drilldown.page') -%></a>
+ </li>
+ <li class="<%= 'selected' if request.request_uri.include?('/cloud/index') -%>">
+ <a href="<%= ApplicationController.root_context -%>/cloud/index/<%= @project.id -%>"><%= message('clouds.page') -%></a></li>
+ <% controller.java_facade.getPages(Navigation::SECTION_RESOURCE, @project.scope, @project.qualifier, @project.language, @project.last_snapshot.metric_keys.to_java(:string)).each do |page|
+ page_url = (page.isController() ? "#{page.getId()}?id=#{@project.id}" : "/plugins/resource/#{@project.id}?page=#{page.getId()}")
+ %>
+ <li class="<%= 'selected' if request.request_uri.include?(page_url) -%>">
+ <a href="<%= ApplicationController.root_context -%><%= page_url -%>"><%= message(page.getId() + '.page', :default => page.getTitle()) %></a>
+ </li>
+ <% end %>
+ <% if has_role?(:admin, @project) %>
+ <li class="h2"><%= message('sidebar.project_settings') -%></li>
+ <% if (@project.project?) %>
+ <li class="<%= 'selected' if request.request_uri.include?('/project/quality_profile') -%>">
+ <a href="<%= ApplicationController.root_context -%>/project/quality_profile/<%= @project.id -%>"><%= message('project_quality_profile.page') -%></a></li>
+ <% end %>
+ <li class="<%= 'selected' if request.request_uri.include?('/manual_measures') -%>">
+ <a href="<%= ApplicationController.root_context -%>/manual_measures/index/<%= @project.id -%>"><%= message('manual_measures.page') -%></a></li>
+ <% if (@project.project?) %>
+ <li class="<%= 'selected' if request.request_uri.include?('/action_plans') -%>">
+ <a href="<%= ApplicationController.root_context -%>/action_plans/index/<%= @project.id -%>"><%= message('action_plans.page') -%></a></li>
+ <% end %>
+ <% if (@project.project? || @project.module?) %>
+ <li class="<%= 'selected' if request.request_uri.include?('/project/settings') -%>">
+ <a href="<%= ApplicationController.root_context -%>/project/settings/<%= @project.id -%>"><%= message('project_settings.page') -%></a></li>
+ <% end %>
+ <% if (@project.project? || @project.module?) %>
+ <li class="<%= 'selected' if request.request_uri.include?('/project/exclusions') -%>">
+ <a href="<%= ApplicationController.root_context -%>/project/exclusions/<%= @project.id -%>"><%= message('project_exclusions.page') -%></a></li>
+ <% end %>
+ <% if (@project.project?) %>
+ <li class="<%= 'selected' if request.request_uri.include?('/project/links') -%>">
+ <a href="<%= ApplicationController.root_context -%>/project/links/<%= @project.id -%>"><%= message('project_links.page') -%></a></li>
+ <% end %>
+ <% if (@project.project? || @project.view? || @project.subview?) %>
+ <li class="<%= 'selected' if request.request_uri.include?('/project_roles') -%>">
+ <a href="<%= ApplicationController.root_context -%>/project_roles/index?resource=<%= @project.id -%>"><%= message('roles.page') -%></a></li>
+ <% end %>
+ <%
+ # NOTE: we keep "@project.view? || @project.subview?" in the test for backward compatibility with the Views plugin
+ if (controller.java_facade.getResourceTypeBooleanProperty(@project.qualifier, 'modifiable_history') || @project.view? || @project.subview?)
%>
- <li class="<%= 'selected' if selected -%>">
- <a href="<%= ApplicationController.root_context -%><%= page_url -%>"><%= message(page.getId() + '.page', :default => page.getTitle()) -%></a></li>
+ <li class="<%= 'selected' if request.request_uri.include?('/project/history') -%>">
+ <a href="<%= ApplicationController.root_context -%>/project/history/<%= @project.id -%>"><%= message('project_history.page') -%></a></li>
<% end %>
-
- <% elsif selected_section==Navigation::SECTION_RESOURCE %>
- <% ActiveDashboard.user_dashboards(current_user, false).each do |active_dashboard| %>
- <li class="<%= 'selected' if @dashboard && controller.controller_path=='dashboard' && active_dashboard.dashboard_id==@dashboard.id -%>">
- <a href="<%= ApplicationController.root_context -%>/dashboard/index/<%= @project.id -%>?did=<%= active_dashboard.dashboard_id -%><%= "&"+period_param if period_param -%>"><%= active_dashboard.dashboard.name(true) -%></a>
+ <% if controller.java_facade.getResourceTypeBooleanProperty(@project.qualifier, 'updatable_key') %>
+ <li class="<%= 'selected' if request.request_uri.include?('/project/key') -%>">
+ <a href="<%= ApplicationController.root_context -%>/project/key/<%= @project.id -%>"><%= message('update_key.page') -%></a></li>
+ <% end %>
+ <% if controller.java_facade.getResourceTypeBooleanProperty(@project.qualifier, 'deletable') %>
+ <li class="<%= 'selected' if request.request_uri.include?('/project/deletion') -%>">
+ <a href="<%= ApplicationController.root_context -%>/project/deletion/<%= @project.id -%>"><%= message('resource_deletion.page', :params => message('qualifier.' + @project.qualifier)) -%></a>
</li>
<% end %>
- <li class="<%= 'selected' if request.request_uri.include?('/components/index') -%>">
- <a href="<%= ApplicationController.root_context -%>/components/index/<%= @project.id -%>"><%= message('components.page') -%></a></li>
- <li class="<%= 'selected' if request.request_uri.include?('/drilldown/violations') -%>">
- <a href="<%= ApplicationController.root_context -%>/drilldown/violations/<%= @project.id -%><%= "?"+period_param if period_param -%>"><%= message('violations_drilldown.page') -%></a></li>
- <li class="<%= 'selected' if request.request_uri.include?('/cloud/index') -%>">
- <a href="<%= ApplicationController.root_context -%>/cloud/index/<%= @project.id -%>"><%= message('clouds.page') -%></a></li>
- <% controller.java_facade.getPages(Navigation::SECTION_RESOURCE, @project.scope, @project.qualifier, @project.language, @project.last_snapshot.metric_keys.to_java(:string)).each do |page|
- page_url = (page.isController() ? "#{page.getId()}?id=#{@project.id}" : "/plugins/resource/#{@project.id}?page=#{page.getId()}")
+ <% end %>
+
+ <% elsif selected_section==Navigation::SECTION_CONFIGURATION %>
+
+ <li class="<%= 'selected' if request.request_uri.include?('/profiles') || request.request_uri.include?('/rules_configuration') -%>">
+ <a href="<%= ApplicationController.root_context -%>/profiles"><%= message('quality_profiles.page') -%></a></li>
+ <% if current_user %>
+ <li class="<%= 'selected' if controller.controller_path=='account' -%>">
+ <a href="<%= ApplicationController.root_context -%>/account/index"><%= message('my_profile.page') -%></a></li>
+ <li class="<%= 'selected' if controller.controller_path=='filters' -%>">
+ <a href="<%= ApplicationController.root_context -%>/filters/manage"><%= message('default_filters.page') -%></a></li>
+ <% end %>
+ <% if is_admin? %>
+ <li class="<%= 'selected' if controller.controller_path=='metrics' -%>">
+ <a href="<%= ApplicationController.root_context -%>/metrics/index"><%= message('manual_metrics.page') -%></a></li>
+ <li class="<%= 'selected' if controller.controller_path=='manual_rules' -%>">
+ <a href="<%= ApplicationController.root_context -%>/manual_rules/index"><%= message('manual_rules.page') -%></a></li>
+ <li class="<%= 'selected' if controller.controller_path=='admin_dashboards' -%>">
+ <a href="<%= ApplicationController.root_context -%>/admin_dashboards/index"><%= message('default_dashboards.page') -%></a></li>
+ <% controller.java_facade.getPages(Navigation::SECTION_CONFIGURATION, nil, nil, nil, nil).each do |page|
+ page_url = (page.isController() ? page.getId() : "/plugins/configuration/#{page.getId()}")
%>
<li class="<%= 'selected' if request.request_uri.include?(page_url) -%>">
<a href="<%= ApplicationController.root_context -%><%= page_url -%>"><%= message(page.getId() + '.page', :default => page.getTitle()) %></a>
</li>
<% end %>
- <% if has_role?(:admin, @project) %>
- <li class="h2"><%= message('sidebar.project_settings') -%></li>
- <% if (@project.project?) %>
- <li class="<%= 'selected' if request.request_uri.include?('/project/quality_profile') -%>">
- <a href="<%= ApplicationController.root_context -%>/project/quality_profile/<%= @project.id -%>"><%= message('project_quality_profile.page') -%></a></li>
- <% end %>
- <li class="<%= 'selected' if request.request_uri.include?('/manual_measures') -%>">
- <a href="<%= ApplicationController.root_context -%>/manual_measures/index/<%= @project.id -%>"><%= message('manual_measures.page') -%></a></li>
- <% if (@project.project?) %>
- <li class="<%= 'selected' if request.request_uri.include?('/action_plans') -%>">
- <a href="<%= ApplicationController.root_context -%>/action_plans/index/<%= @project.id -%>"><%= message('action_plans.page') -%></a></li>
- <% end %>
- <% if (@project.project? || @project.module?) %>
- <li class="<%= 'selected' if request.request_uri.include?('/project/settings') -%>">
- <a href="<%= ApplicationController.root_context -%>/project/settings/<%= @project.id -%>"><%= message('project_settings.page') -%></a></li>
- <% end %>
- <% if (@project.project? || @project.module?) %>
- <li class="<%= 'selected' if request.request_uri.include?('/project/exclusions') -%>">
- <a href="<%= ApplicationController.root_context -%>/project/exclusions/<%= @project.id -%>"><%= message('project_exclusions.page') -%></a></li>
- <% end %>
- <% if (@project.project?) %>
- <li class="<%= 'selected' if request.request_uri.include?('/project/links') -%>">
- <a href="<%= ApplicationController.root_context -%>/project/links/<%= @project.id -%>"><%= message('project_links.page') -%></a></li>
- <% end %>
- <% if (@project.project? || @project.view? || @project.subview?) %>
- <li class="<%= 'selected' if request.request_uri.include?('/project_roles') -%>">
- <a href="<%= ApplicationController.root_context -%>/project_roles/index?resource=<%= @project.id -%>"><%= message('roles.page') -%></a></li>
- <% end %>
- <%
- # NOTE: we keep "@project.view? || @project.subview?" in the test for backward compatibility with the Views plugin
- if (controller.java_facade.getResourceTypeBooleanProperty(@project.qualifier, 'modifiable_history') || @project.view? || @project.subview?)
- %>
- <li class="<%= 'selected' if request.request_uri.include?('/project/history') -%>">
- <a href="<%= ApplicationController.root_context -%>/project/history/<%= @project.id -%>"><%= message('project_history.page') -%></a></li>
- <% end %>
- <% if controller.java_facade.getResourceTypeBooleanProperty(@project.qualifier, 'updatable_key') %>
- <li class="<%= 'selected' if request.request_uri.include?('/project/key') -%>">
- <a href="<%= ApplicationController.root_context -%>/project/key/<%= @project.id -%>"><%= message('update_key.page') -%></a></li>
- <% end %>
- <% if controller.java_facade.getResourceTypeBooleanProperty(@project.qualifier, 'deletable') %>
- <li class="<%= 'selected' if request.request_uri.include?('/project/deletion') -%>">
- <a href="<%= ApplicationController.root_context -%>/project/deletion/<%= @project.id -%>"><%= message('resource_deletion.page', :params => message('qualifier.' + @project.qualifier)) -%></a></li>
- <% end %>
- <% end %>
- <% elsif selected_section==Navigation::SECTION_CONFIGURATION %>
+ <li class="h2"><%= message('sidebar.security') -%></li>
+ <li class="<%= 'selected' if request.request_uri.include?('/users') -%>"><a href="<%= ApplicationController.root_context -%>/users"><%= message('users.page') -%></a>
+ </li>
+ <li class="<%= 'selected' if request.request_uri.include?('/groups') -%>">
+ <a href="<%= ApplicationController.root_context -%>/groups/index"><%= message('user_groups.page') -%></a></li>
+ <li class="<%= 'selected' if request.request_uri.include?('/roles/global') -%>">
+ <a href="<%= ApplicationController.root_context -%>/roles/global"><%= message('system_administrators.page') -%></a></li>
+ <li class="<%= 'selected' if request.request_uri.include?('/roles/projects') -%>">
+ <a href="<%= ApplicationController.root_context -%>/roles/projects"><%= message('roles.page') -%></a></li>
- <li class="<%= 'selected' if request.request_uri.include?('/profiles') || request.request_uri.include?('/rules_configuration') -%>">
- <a href="<%= ApplicationController.root_context -%>/profiles"><%= message('quality_profiles.page') -%></a></li>
- <% if current_user %>
- <li class="<%= 'selected' if controller.controller_path=='account' -%>">
- <a href="<%= ApplicationController.root_context -%>/account/index"><%= message('my_profile.page') -%></a></li>
- <li class="<%= 'selected' if controller.controller_path=='filters' -%>">
- <a href="<%= ApplicationController.root_context -%>/filters/manage"><%= message('default_filters.page') -%></a></li>
+ <li class="h2"><%= message('sidebar.system') -%></li>
+ <li class="<%= 'selected' if request.request_uri.include?('/settings') -%>">
+ <a href="<%= ApplicationController.root_context -%>/settings/index"><%= message('settings.page') -%></a></li>
+ <li class="<%= 'selected' if controller.controller_path=='backup' -%>"><a href="<%= ApplicationController.root_context -%>/backup"><%= message('backup.page') -%></a>
+ </li>
+ <li class="<%= 'selected' if controller.controller_path=='bulk_deletion' -%>">
+ <a href="<%= ApplicationController.root_context -%>/bulk_deletion"><%= message('bulk_deletion.page') -%></a>
+ </li>
+ <li class="<%= 'selected' if controller.controller_path=='system' -%>">
+ <a href="<%= ApplicationController.root_context -%>/system"><%= message('system_info.page') -%></a></li>
+ <% update_center_activated = controller.java_facade.getSettings().getBoolean('sonar.updatecenter.activate')
+ if update_center_activated %>
+ <li class="<%= 'selected' if controller.controller_path=='updatecenter' -%>">
+ <a href="<%= ApplicationController.root_context -%>/updatecenter"><%= message('update_center.page') -%></a></li>
<% end %>
- <% if is_admin? %>
- <li class="<%= 'selected' if controller.controller_path=='metrics' -%>">
- <a href="<%= ApplicationController.root_context -%>/metrics/index"><%= message('manual_metrics.page') -%></a></li>
- <li class="<%= 'selected' if controller.controller_path=='manual_rules' -%>">
- <a href="<%= ApplicationController.root_context -%>/manual_rules/index"><%= message('manual_rules.page') -%></a></li>
- <li class="<%= 'selected' if controller.controller_path=='admin_dashboards' -%>">
- <a href="<%= ApplicationController.root_context -%>/admin_dashboards/index"><%= message('default_dashboards.page') -%></a></li>
- <% controller.java_facade.getPages(Navigation::SECTION_CONFIGURATION, nil, nil, nil, nil).each do |page|
- page_url = (page.isController() ? page.getId() : "/plugins/configuration/#{page.getId()}")
- %>
- <li class="<%= 'selected' if request.request_uri.include?(page_url) -%>">
- <a href="<%= ApplicationController.root_context -%><%= page_url -%>"><%= message(page.getId() + '.page', :default => page.getTitle()) %></a>
- </li>
- <% end %>
-
- <li class="h2"><%= message('sidebar.security') -%></li>
- <li class="<%= 'selected' if request.request_uri.include?('/users') -%>"><a href="<%= ApplicationController.root_context -%>/users"><%= message('users.page') -%></a>
- </li>
- <li class="<%= 'selected' if request.request_uri.include?('/groups') -%>">
- <a href="<%= ApplicationController.root_context -%>/groups/index"><%= message('user_groups.page') -%></a></li>
- <li class="<%= 'selected' if request.request_uri.include?('/roles/global') -%>">
- <a href="<%= ApplicationController.root_context -%>/roles/global"><%= message('system_administrators.page') -%></a></li>
- <li class="<%= 'selected' if request.request_uri.include?('/roles/projects') -%>">
- <a href="<%= ApplicationController.root_context -%>/roles/projects"><%= message('roles.page') -%></a></li>
-
- <li class="h2"><%= message('sidebar.system') -%></li>
- <li class="<%= 'selected' if request.request_uri.include?('/settings') -%>">
- <a href="<%= ApplicationController.root_context -%>/settings/index"><%= message('settings.page') -%></a></li>
- <li class="<%= 'selected' if controller.controller_path=='backup' -%>"><a href="<%= ApplicationController.root_context -%>/backup"><%= message('backup.page') -%></a>
- </li>
- <li class="<%= 'selected' if controller.controller_path=='bulk_deletion' -%>"><a href="<%= ApplicationController.root_context -%>/bulk_deletion"><%= message('bulk_deletion.page') -%></a>
- </li>
- <li class="<%= 'selected' if controller.controller_path=='system' -%>">
- <a href="<%= ApplicationController.root_context -%>/system"><%= message('system_info.page') -%></a></li>
- <% update_center_activated = controller.java_facade.getSettings().getBoolean('sonar.updatecenter.activate')
- if update_center_activated %>
- <li class="<%= 'selected' if controller.controller_path=='updatecenter' -%>">
- <a href="<%= ApplicationController.root_context -%>/updatecenter"><%= message('update_center.page') -%></a></li>
- <% end %>
- <% end %>
-
<% end %>
- </ul>
- <div id="logo">
- <center><a href="http://www.sonarsource.org/" target="SonarSource"><%= image_tag('sonar.png', :alt => message('layout.sonar.slogan'), :class => 'png') -%></a></center>
- </div>
+
+ <% end %>
+ </ul>
+ <div id="logo">
+ <center><a href="http://www.sonarsource.org/" target="SonarSource"><%= image_tag('sonar.png', :alt => message('layout.sonar.slogan'), :class => 'png') -%></a></center>
</div>
+ </div>
- <% if @sidebar %>
- <div id="sidebarconf"><%= render :partial => @sidebar %></div>
- <% else %>
- <div id="sidebarconf" class="hidden"></div>
- <% end %>
+ <% if @sidebar %>
+ <div id="sidebarconf"><%= render :partial => @sidebar %></div>
+ <% else %>
+ <div id="sidebarconf" class="hidden"></div>
+ <% end %>
+ </div>
+ <div id="content" class="with_sidebar">
+ <% if @project %>
+ <div class="print"><h2><%= @project.name(true) %></h2></div>
+ <% end %>
+ <div class="error" id="error" style="display:none">
+ <span id="errormsg"></span> &nbsp;&nbsp;[<a href="#" onclick="javascript:$('error').hide();return false;"><%= message('hide').downcase -%></a>]
</div>
- <div id="content" class="with_sidebar">
- <% if @project %>
- <div class="print"><h2><%= @project.name(true) %></h2></div>
- <% end %>
- <div class="error" id="error" style="display:none">
- <span id="errormsg"></span> &nbsp;&nbsp;[<a href="#" onclick="javascript:$('error').hide();return false;"><%= message('hide').downcase -%></a>]
- </div>
- <div class="notice" id="info" style="display:none">
- <span id="infomsg"></span> &nbsp;&nbsp;[<a href="#" onclick="javascript:$('info').hide();return false;"><%= message('hide').downcase -%></a>]
- </div>
- <div class="warning" id="warning" style="display:none">
- <span id="warningmsg"></span> &nbsp;&nbsp;[<a href="#" onclick="javascript:$('warning').hide();return false;"><%= message('hide').downcase -%></a>]
- </div>
- <%= yield %>
+ <div class="notice" id="info" style="display:none">
+ <span id="infomsg"></span> &nbsp;&nbsp;[<a href="#" onclick="javascript:$('info').hide();return false;"><%= message('hide').downcase -%></a>]
</div>
+ <div class="warning" id="warning" style="display:none">
+ <span id="warningmsg"></span> &nbsp;&nbsp;[<a href="#" onclick="javascript:$('warning').hide();return false;"><%= message('hide').downcase -%></a>]
+ </div>
+ <%= yield %>
</div>
</div>
+</div>
<% unless params[:hd]=='false' %>
<div id="footer">
diff --git a/sonar-server/src/main/webapp/stylesheets/layout.css b/sonar-server/src/main/webapp/stylesheets/layout.css
new file mode 100644
index 00000000000..ac6771b03db
--- /dev/null
+++ b/sonar-server/src/main/webapp/stylesheets/layout.css
@@ -0,0 +1,198 @@
+@media print {
+ /* ------------------- PRINT ------------------- */
+ html, body {
+ font-size: 8pt;
+ }
+
+ a, a:link, a:visited {
+ text-decoration: none;
+ border-bottom: 0;
+ }
+
+ .noprint {
+ display: none !important;
+ }
+
+ .print {
+ display: inline;
+ position: static;
+ left: 0;
+ }
+
+ #hd, #sb {
+ display: none;
+ }
+
+ .with_sidebar, .wo_sidebar {
+ padding: 0 !important;
+ margin: 0;
+ }
+
+ #content {
+ margin-left: 0 !important;
+ }
+}
+
+@media screen {
+ .print {
+ display: none;
+ }
+}
+
+body, a {
+ color: #444;
+}
+
+/* LAYOUT */
+#container {
+ height: auto !important;
+ min-width: 940px;
+}
+
+#hd {
+ color: #FFF;
+ background: #262626;
+ padding: 0 5px;
+ height: 30px;
+ line-height: 30px;
+ font-size: 93%;
+ margin: 0 10px;
+}
+
+#hd a {
+ color: #FFF;
+ text-decoration: none;
+}
+
+#hd a:focus, #hd a:hover {
+ text-decoration: underline;
+}
+
+
+#nav1 {
+ float: left;
+ vertical-align: middle;
+}
+
+#nav2 {
+ float: right;
+ padding: 0 0 0 10px;
+ vertical-align: middle;
+}
+
+#nav1 img, #nav2 img {
+ vertical-align: text-bottom;
+}
+
+#nav1 > ul> li {
+ float: left;
+ padding: 0 10px 0 5px;
+}
+
+#nav2 > ul> li {
+ float: right;
+ padding: 0 0 0 10px;
+}
+
+#nonav {
+ text-align: left;
+ margin: 50px 180px 0;
+}
+
+#body {
+ position: relative;
+}
+
+#footer {
+ margin: 10px;
+ clear: both;
+}
+
+.with_sidebar {
+ margin: 0 10px 0 170px;
+}
+
+.wo_sidebar {
+ margin: 0 10px 0 10px;
+}
+
+#content {
+ padding-top: 10px;
+ width: auto;
+}
+
+#sb {
+ width: 150px;
+ position: absolute;
+ margin: 0 10px;
+ top: 0;
+ left: 0;
+}
+
+#sidebar {
+ background-color: #CAE3F2;
+ color: #262626;
+ text-align: left;
+ line-height: 1.1em;
+ border: 2px solid #4b9fd5;
+ border-top: 0;
+ padding: 10px 0;
+}
+
+#sidebar li {
+ list-style-type: none;
+ padding: 3px 0 3px 8px;
+}
+
+#sidebar li.h2 {
+ color: #003366;
+ padding: 20px 0 3px 8px;
+ text-transform: uppercase;
+ font-size: 100% !important;
+ font-weight: bold;
+}
+
+#sidebar .selected {
+ background-color: #4b9fd5;
+}
+
+#sidebar a, #sidebarpages a:visited {
+ text-decoration: none;
+ border-bottom: 0;
+}
+
+#sidebar a:hover {
+ text-decoration: underline;
+}
+
+#sidebar .selected a, #sidebar .selected a:hover, #sidebar.selected a:visited {
+ font-weight: bold;
+ color: #FEFEFE;
+}
+
+#logo {
+ text-align: center;
+ padding: 8px 0 0 0;
+}
+
+#logo a {
+ text-decoration: none;
+ border-bottom-width: 0;
+}
+
+#logo img {
+ display: block;
+}
+
+#sidebarconf {
+ background-color: #EFEFEF;
+ border: 2px solid #DDD;
+ color: #666;
+ line-height: 1.1em;
+ margin-top: 10px;
+ padding: 10px;
+}
+
+.nolayout {
+ padding: 10px;
+}
diff --git a/sonar-server/src/main/webapp/stylesheets/style.css b/sonar-server/src/main/webapp/stylesheets/style.css
index 35c047ab65f..c10072a4b1c 100644
--- a/sonar-server/src/main/webapp/stylesheets/style.css
+++ b/sonar-server/src/main/webapp/stylesheets/style.css
@@ -1,222 +1,5 @@
/* CSS optimized by http://www.cleancss.com */
-@media print {
- /* ------------------- PRINT ------------------- */
- html, body {
- font-size: 8pt;
- }
-
- a, a:link, a:visited {
- text-decoration: none;
- border-bottom: 0;
- }
-
- .noprint {
- display: none !important;
- }
-
- .print {
- display: inline;
- position: static;
- left: 0;
- }
-
- div#hd, div#sb {
- display: none;
- }
-
- .with_sidebar, .wo_sidebar {
- padding: 0 !important;
- margin: 0;
- }
-
- div#content {
- margin-left: 0 !important;
- }
-}
-
-@media screen {
- .print {
- display: none;
- }
-}
-
-html, body {
- height: 100%;
-}
-
-body {
- background-color: #FFF;
- color: #444;
- font-family: Arial, Helvetica, sans-serif;
- text-align: left;
-}
-
-a {
- color: #444;
-}
-
-/* LAYOUT */
-div#container {
- height: auto !important;
- min-width: 940px;
-}
-
-div#hd {
- background: #262626;
- padding: 0 5px;
- height: 30px;
- line-height: 28px;
- font-size: 93%;
- margin: 0 10px;
-}
-
-#crumbs ol, #nav ol {
- list-style-type: none;
- padding: 0;
- margin: 0;
-
-}
-
-#crumbs li {
- float: left;
- margin: 0;
- color: #fff;
- padding: 0 10px 0 5px;
-}
-
-#nav li {
- float: right;
- margin: 0;
- line-height: 29px;
- color: #fff;
- padding: 0 0 0 10px;
-}
-
-#crumbs li {
- height: 30px;
- line-height: 30px;
- vertical-align: middle;
-}
-
-#crumbs li a, #nav li a {
- color: #fff;
-}
-
-#crumbs li a:link, #crumbs li a:visited, #nav li a:link, #nav li a:visited {
- text-decoration: none;
-}
-
-#crumbs li a:hover, #crumbs li a:focus, #nav li a:hover, #nav li a:focus {
- text-decoration: underline;
-}
-
-#crumbs li img, #nav li img {
- vertical-align: text-bottom;
-}
-
-#nonav {
- text-align: left;
- margin: 50px 180px 0;
-}
-
-div#body {
- position: relative;
-}
-
-div#footer {
- margin: 10px;
- clear: both;
-}
-
-.with_sidebar {
- margin: 0 10px 0 170px;
-}
-
-.wo_sidebar {
- margin: 0 10px 0 10px;
-}
-
-div#content {
- padding-top: 10px;
- width: auto;
-}
-
-div#sb {
- width: 150px;
- position: absolute;
- margin: 0 10px;
- top: 0;
- left: 0;
-}
-
-div#sidebar {
- background-color: #CAE3F2;
- color: #262626;
- text-align: left;
- line-height: 1.1em;
- border: 2px solid #4b9fd5;
- border-top: 0;
- padding: 10px 0;
-}
-
-div#sidebar li {
- list-style-type: none;
- padding: 3px 0 3px 8px;
-}
-
-div#sidebar li.h2 {
- color: #003366;
- padding: 20px 0 3px 8px;
- text-transform: uppercase;
- font-size: 100% !important;
- font-weight: bold;
-}
-
-div#sidebar .selected {
- background-color: #4b9fd5;
-}
-
-div#sidebar a, #sidebarpages a:visited {
- text-decoration: none;
- border-bottom: 0;
-}
-
-div#sidebar a:hover {
- color: #4b9fd5;
-}
-
-div#sidebar .selected a, div#sidebar .selected a:hover, div#sidebar.selected a:visited {
- font-weight: bold;
- color: #efefef;
-}
-
-#logo {
- text-align: center;
- padding: 8px 0 0 0;
-}
-
-#logo a {
- text-decoration: none;
- border-bottom-width: 0;
-}
-
-#logo img {
- display: block;
-}
-
-#sidebarconf {
- background-color: #EFEFEF;
- border: 2px solid #DDD;
- color: #666;
- line-height: 1.1em;
- margin-top: 10px;
- padding: 10px;
-}
-
-.nolayout {
- padding: 10px;
-}
/* ------------------- PROJECTS SEARCH FORM ------------------- */
#projectSearch {
diff --git a/sonar-server/src/main/webapp/stylesheets/yui-2.6.0.css b/sonar-server/src/main/webapp/stylesheets/yui-2.6.0.css
deleted file mode 100644
index b3e042c9179..00000000000
--- a/sonar-server/src/main/webapp/stylesheets/yui-2.6.0.css
+++ /dev/null
@@ -1,7 +0,0 @@
-/*
-Copyright (c) 2008, Yahoo! Inc. All rights reserved.
-Code licensed under the BSD License:
-http://developer.yahoo.net/yui/license.txt
-version: 2.6.0
-*/
-html{color:#000;background:#FFF;}body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,code,form,fieldset,legend,input,textarea,p,blockquote,th,td{margin:0;padding:0;}table{border-collapse:collapse;border-spacing:0;}fieldset,img{border:0;}address,caption,cite,code,dfn,em,strong,th,var{font-style:normal;font-weight:normal;}li{list-style:none;}caption,th{text-align:left;}h1,h2,h3,h4,h5,h6{font-size:100%;font-weight:normal;}q:before,q:after{content:'';}abbr,acronym{border:0;font-variant:normal;}sup{vertical-align:text-top;}sub{vertical-align:text-bottom;}input,textarea,select{font-family:inherit;font-size:inherit;font-weight:inherit;}input,textarea,select{*font-size:100%;}legend{color:#000;}del,ins{text-decoration:none;}body{font:13px/1.231 arial,helvetica,clean,sans-serif;*font-size:small;*font:x-small;}select,input,button,textarea{font:99% arial,helvetica,clean,sans-serif;}table{font-size:inherit;font:100%;}pre,code,kbd,samp,tt{font-family:monospace;*font-size:108%;line-height:100%;}body{text-align:center;}#ft{clear:both;}#doc,#doc2,#doc3,#doc4,.yui-t1,.yui-t2,.yui-t3,.yui-t4,.yui-t5,.yui-t6,.yui-t7{margin:auto;text-align:left;width:57.69em;*width:56.25em;min-width:750px;}#doc2{width:73.076em;*width:71.25em;}#doc3{margin:auto 10px;width:auto;}#doc4{width:74.923em;*width:73.05em;}.yui-b{position:relative;}.yui-b{_position:static;}#yui-main .yui-b{position:static;}#yui-main,.yui-g .yui-u .yui-g{width:100%;}{width:100%;}.yui-t1 #yui-main,.yui-t2 #yui-main,.yui-t3 #yui-main{float:right;margin-left:-25em;}.yui-t4 #yui-main,.yui-t5 #yui-main,.yui-t6 #yui-main{float:left;margin-right:-25em;}.yui-t1 .yui-b{float:left;width:12.30769em;*width:12.00em;}.yui-t1 #yui-main .yui-b{margin-left:13.30769em;*margin-left:13.05em;}.yui-t2 .yui-b{float:left;width:13.8461em;*width:13.50em;}.yui-t2 #yui-main .yui-b{margin-left:14.8461em;*margin-left:14.55em;}.yui-t3 .yui-b{float:left;width:23.0769em;*width:22.50em;}.yui-t3 #yui-main .yui-b{margin-left:24.0769em;*margin-left:23.62em;}.yui-t4 .yui-b{float:right;width:13.8456em;*width:13.50em;}.yui-t4 #yui-main .yui-b{margin-right:14.8456em;*margin-right:14.55em;}.yui-t5 .yui-b{float:right;width:18.4615em;*width:18.00em;}.yui-t5 #yui-main .yui-b{margin-right:19.4615em;*margin-right:19.125em;}.yui-t6 .yui-b{float:right;width:23.0769em;*width:22.50em;}.yui-t6 #yui-main .yui-b{margin-right:24.0769em;*margin-right:23.62em;}.yui-t7 #yui-main .yui-b{display:block;margin:0 0 1em 0;}#yui-main .yui-b{float:none;width:auto;}.yui-gb .yui-u,.yui-g .yui-gb .yui-u,.yui-gb .yui-g,.yui-gb .yui-gb,.yui-gb .yui-gc,.yui-gb .yui-gd,.yui-gb .yui-ge,.yui-gb .yui-gf,.yui-gc .yui-u,.yui-gc .yui-g,.yui-gd .yui-u{float:left;}.yui-g .yui-u,.yui-g .yui-g,.yui-g .yui-gb,.yui-g .yui-gc,.yui-g .yui-gd,.yui-g .yui-ge,.yui-g .yui-gf,.yui-gc .yui-u,.yui-gd .yui-g,.yui-g .yui-gc .yui-u,.yui-ge .yui-u,.yui-ge .yui-g,.yui-gf .yui-g,.yui-gf .yui-u{float:right;}.yui-g div.first,.yui-gb div.first,.yui-gc div.first,.yui-gd div.first,.yui-ge div.first,.yui-gf div.first,.yui-g .yui-gc div.first,.yui-g .yui-ge div.first,.yui-gc div.first div.first{float:left;}.yui-g .yui-u,.yui-g .yui-g,.yui-g .yui-gb,.yui-g .yui-gc,.yui-g .yui-gd,.yui-g .yui-ge,.yui-g .yui-gf{width:49.1%;}.yui-gb .yui-u,.yui-g .yui-gb .yui-u,.yui-gb .yui-g,.yui-gb .yui-gb,.yui-gb .yui-gc,.yui-gb .yui-gd,.yui-gb .yui-ge,.yui-gb .yui-gf,.yui-gc .yui-u,.yui-gc .yui-g,.yui-gd .yui-u{width:32%;margin-left:1.99%;}.yui-gb .yui-u{*margin-left:1.9%;*width:31.9%;}.yui-gc div.first,.yui-gd .yui-u{width:66%;}.yui-gd div.first{width:32%;}.yui-ge div.first,.yui-gf .yui-u{width:74.2%;}.yui-ge .yui-u,.yui-gf div.first{width:24%;}.yui-g .yui-gb div.first,.yui-gb div.first,.yui-gc div.first,.yui-gd div.first{margin-left:0;}.yui-g .yui-g .yui-u,.yui-gb .yui-g .yui-u,.yui-gc .yui-g .yui-u,.yui-gd .yui-g .yui-u,.yui-ge .yui-g .yui-u,.yui-gf .yui-g .yui-u{width:49%;*width:48.1%;*margin-left:0;}.yui-g .yui-g .yui-u{width:48.1%;}.yui-g .yui-gb div.first,.yui-gb .yui-gb div.first{*margin-right:0;*width:32%;_width:31.7%;}.yui-g .yui-gc div.first,.yui-gd .yui-g{width:66%;}.yui-gb .yui-g div.first{*margin-right:4%;_margin-right:1.3%;}.yui-gb .yui-gc div.first,.yui-gb .yui-gd div.first{*margin-right:0;}.yui-gb .yui-gb .yui-u,.yui-gb .yui-gc .yui-u{*margin-left:1.8%;_margin-left:4%;}.yui-g .yui-gb .yui-u{_margin-left:1.0%;}.yui-gb .yui-gd .yui-u{*width:66%;_width:61.2%;}.yui-gb .yui-gd div.first{*width:31%;_width:29.5%;}.yui-g .yui-gc .yui-u,.yui-gb .yui-gc .yui-u{width:32%;_float:right;margin-right:0;_margin-left:0;}.yui-gb .yui-gc div.first{width:66%;*float:left;*margin-left:0;}.yui-gb .yui-ge .yui-u,.yui-gb .yui-gf .yui-u{margin:0;}.yui-gb .yui-gb .yui-u{_margin-left:.7%;}.yui-gb .yui-g div.first,.yui-gb .yui-gb div.first{*margin-left:0;}.yui-gc .yui-g .yui-u,.yui-gd .yui-g .yui-u{*width:48.1%;*margin-left:0;} .yui-gb .yui-gd div.first{width:32%;}.yui-g .yui-gd div.first{_width:29.9%;}.yui-ge .yui-g{width:24%;}.yui-gf .yui-g{width:74.2%;}.yui-gb .yui-ge div.yui-u,.yui-gb .yui-gf div.yui-u{float:right;}.yui-gb .yui-ge div.first,.yui-gb .yui-gf div.first{float:left;}.yui-gb .yui-ge .yui-u,.yui-gb .yui-gf div.first{*width:24%;_width:20%;}.yui-gb .yui-ge div.first,.yui-gb .yui-gf .yui-u{*width:73.5%;_width:65.5%;}.yui-ge div.first .yui-gd .yui-u{width:65%;}.yui-ge div.first .yui-gd div.first{width:32%;}#bd:after,.yui-g:after,.yui-gb:after,.yui-gc:after,.yui-gd:after,.yui-ge:after,.yui-gf:after{content:".";display:block;height:0;clear:both;visibility:hidden;}#bd,.yui-g,.yui-gb,.yui-gc,.yui-gd,.yui-ge,.yui-gf{zoom:1;} \ No newline at end of file
diff --git a/sonar-server/src/main/webapp/stylesheets/yui-reset-font.css b/sonar-server/src/main/webapp/stylesheets/yui-reset-font.css
new file mode 100644
index 00000000000..bf3e732e3c7
--- /dev/null
+++ b/sonar-server/src/main/webapp/stylesheets/yui-reset-font.css
@@ -0,0 +1,12 @@
+/*
+YUI 3.6.0 (build 5521)
+Copyright 2012 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
+/* reset */
+html{color:#000;background:#FFF}body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,code,form,fieldset,legend,input,textarea,p,blockquote,th,td{margin:0;padding:0}table{border-collapse:collapse;border-spacing:0}fieldset,img{border:0}address,caption,cite,code,dfn,em,strong,th,var{font-style:normal;font-weight:normal}ol,ul{list-style:none}caption,th{text-align:left}h1,h2,h3,h4,h5,h6{font-size:100%;font-weight:normal}q:before,q:after{content:''}abbr,acronym{border:0;font-variant:normal}sup{vertical-align:text-top}sub{vertical-align:text-bottom}input,textarea,select{font-family:inherit;font-size:inherit;font-weight:inherit}input,textarea,select{*font-size:100%}legend{color:#000}
+
+/* font */
+body{font:13px/1.231 arial,helvetica,clean,sans-serif;*font-size:small;*font:x-small}select,input,button,textarea{font:99% arial,helvetica,clean,sans-serif}table{font-size:inherit;font:100%}pre,code,kbd,samp,tt{font-family:monospace;*font-size:108%;line-height:100%} \ No newline at end of file