]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-5498 Make all links consistent
authorStas Vilchik <vilchiks@gmail.com>
Tue, 29 Jul 2014 12:44:23 +0000 (14:44 +0200)
committerStas Vilchik <vilchiks@gmail.com>
Tue, 29 Jul 2014 12:44:30 +0000 (14:44 +0200)
42 files changed:
server/sonar-web/src/main/coffee/widgets/treemap.coffee
server/sonar-web/src/main/hbs/common/_markdown-tips.hbs
server/sonar-web/src/main/hbs/component-viewer/cw-more-actions.hbs
server/sonar-web/src/main/hbs/component-viewer/header/cw-coverage-header.hbs
server/sonar-web/src/main/hbs/component-viewer/header/cw-scm-header.hbs
server/sonar-web/src/main/hbs/component-viewer/header/cw-tests-header.hbs
server/sonar-web/src/main/hbs/issue/issue.hbs
server/sonar-web/src/main/less/api-documentation.less
server/sonar-web/src/main/less/coding-rules.less
server/sonar-web/src/main/less/component-viewer-source-colorizer.less
server/sonar-web/src/main/less/component-viewer.less
server/sonar-web/src/main/less/dashboard.less
server/sonar-web/src/main/less/icons.less
server/sonar-web/src/main/less/layout.less
server/sonar-web/src/main/less/mixins.less
server/sonar-web/src/main/less/navigator.less
server/sonar-web/src/main/less/quality-gates.less
server/sonar-web/src/main/less/select2-sonar.less
server/sonar-web/src/main/less/style.less
server/sonar-web/src/main/less/ui.less
server/sonar-web/src/main/webapp/WEB-INF/app/helpers/application_helper.rb
server/sonar-web/src/main/webapp/WEB-INF/app/helpers/measures_helper.rb
server/sonar-web/src/main/webapp/WEB-INF/app/views/admin_dashboards/_list.html.erb
server/sonar-web/src/main/webapp/WEB-INF/app/views/comparison/index.html.erb
server/sonar-web/src/main/webapp/WEB-INF/app/views/components/_list_table_header.rhtml
server/sonar-web/src/main/webapp/WEB-INF/app/views/components/index.html.erb
server/sonar-web/src/main/webapp/WEB-INF/app/views/dashboard/_header.html.erb
server/sonar-web/src/main/webapp/WEB-INF/app/views/dashboards/_available_dashboards.html.erb
server/sonar-web/src/main/webapp/WEB-INF/app/views/dashboards/_my_dashboards.html.erb
server/sonar-web/src/main/webapp/WEB-INF/app/views/drilldown/_severity.html.erb
server/sonar-web/src/main/webapp/WEB-INF/app/views/drilldown/issues.html.erb
server/sonar-web/src/main/webapp/WEB-INF/app/views/drilldown/measures.html.erb
server/sonar-web/src/main/webapp/WEB-INF/app/views/groups/index.html.erb
server/sonar-web/src/main/webapp/WEB-INF/app/views/layouts/_footer.html.erb
server/sonar-web/src/main/webapp/WEB-INF/app/views/measures/_display_list.html.erb
server/sonar-web/src/main/webapp/WEB-INF/app/views/metrics/index.html.erb
server/sonar-web/src/main/webapp/WEB-INF/app/views/permission_templates/index.html.erb
server/sonar-web/src/main/webapp/WEB-INF/app/views/profiles/index.html.erb
server/sonar-web/src/main/webapp/WEB-INF/app/views/project/widgets/issues/_issues_list.html.erb
server/sonar-web/src/main/webapp/WEB-INF/app/views/project_roles/index.html.erb
server/sonar-web/src/main/webapp/WEB-INF/app/views/roles/projects.html.erb
server/sonar-web/src/main/webapp/WEB-INF/app/views/users/index.html.erb

index f205fb1c4866c678b4da5e0c2cc08894d867a8f1..72cff1254f34077463764707c0385253db7d4ed1 100644 (file)
@@ -101,7 +101,6 @@ class Treemap extends window.SonarWidgets.BaseWidget
     breadcrumbsEnter.append('i').attr 'class', (d) ->
       if d.qualifier? then "icon-qualifier-#{d.qualifier.toLowerCase()}" else ''
     breadcrumbsEnterLinks = breadcrumbsEnter.append 'a'
-    breadcrumbsEnterLinks.classed 'underlined-link', (d, i) -> i > 0
     breadcrumbsEnterLinks.html (d) -> d.name
     breadcrumbsEnterLinks.on 'click', (d) =>
       @updateTreemap d.components, d.maxResultsReached
index fe5edc9fc35a1ebe1ac71dd9a3e380b8bc94cae8..51ebaa00ae552275b6ab330a9aad8bce27355f73 100644 (file)
@@ -1,4 +1,4 @@
 <div class="markdown-tips">
-  <a href="#" class="underlined-link" onclick="window.open(baseUrl + '/markdown/help','markdown','height=300,width=600,scrollbars=1,resizable=1');return false;">{{t 'markdown.helplink'}}</a> :
+  <a href="#" onclick="window.open(baseUrl + '/markdown/help','markdown','height=300,width=600,scrollbars=1,resizable=1');return false;">{{t 'markdown.helplink'}}</a> :
   &nbsp; *{{t 'bold'}}* &nbsp;&nbsp; ``{{t 'code'}}`` &nbsp;&nbsp; * {{t 'bulleted_point'}}
 </div>
index 354436d5cdb6cc8eb1167310ec825eb91ff7e013..4fe8ed7400c027256082eb80669be6d76180fefc 100644 (file)
@@ -1,10 +1,10 @@
-<a class="js-new-window underlined-link">{{t 'component_viewer.new_window'}}</a>
+<a class="js-new-window">{{t 'component_viewer.new_window'}}</a>
 <br>
-<a class="js-full-source underlined-link">{{t 'component_viewer.show_full_source'}}</a>
+<a class="js-full-source">{{t 'component_viewer.show_full_source'}}</a>
 <br>
-<a class="js-raw-source underlined-link">{{t 'component_viewer.show_raw_source'}}</a>
+<a class="js-raw-source">{{t 'component_viewer.show_raw_source'}}</a>
 
 {{#each state.extensions}}
   <br>
-  <a class="js-extension underlined-link" data-key="{{this.[0]}}">{{this.[1]}}</a>
-{{/each}}
\ No newline at end of file
+  <a class="js-extension" data-key="{{this.[0]}}">{{this.[1]}}</a>
+{{/each}}
index 8b656730ef7aff2c47fcfddf5d0a70a57052daab..9b0966ce4c3b952c5878bd6c6850d6bcb99cf1cb 100644 (file)
@@ -1,6 +1,6 @@
 {{#if state.hasSource}}
   <div class="component-viewer-header-time-changes">
-    <a class="highlighted-link js-coverage-time-changes">
+    <a class="js-coverage-time-changes">
       {{#if period}}Δ {{period.label}}{{else}}<i class="icon-period"></i> {{t 'component_viewer.time_changes'}}{{/if}}
     </a>
   </div>
index 599f9f71e33c732612da18a6d2e2053ecf8fc794..2cf3da9e995be4a7c90cfa1c1830c6d8358b1bc8 100644 (file)
@@ -1,5 +1,5 @@
 <div class="component-viewer-header-time-changes">
-  <a class="highlighted-link js-scm-time-changes">
+  <a class="js-scm-time-changes">
     {{#if period}}Δ {{period.label}}{{else}}<i class="icon-period"></i> {{t 'component_viewer.time_changes'}}{{/if}}
   </a>
 </div>
index 19f904c1b3b71c43ddc83abe85a4cd3b3ba74697..c11d69bc2798e21e91eead35c3243bcf936c9c75 100644 (file)
@@ -47,9 +47,9 @@
     <span class="ib">
       {{t 'component_viewer.measure_section.test_cases'}}
       {{t 'component_viewer.tests.ordered_by'}}
-      <a class="js-sort-tests-name underlined-link">{{t 'component_viewer.tests.test_name'}}</a>
+      <a class="js-sort-tests-name">{{t 'component_viewer.tests.test_name'}}</a>
       /
-      <a class="js-sort-tests-duration underlined-link">{{t 'component_viewer.tests.duration'}}</a>
+      <a class="js-sort-tests-duration">{{t 'component_viewer.tests.duration'}}</a>
     </span>
     {{#if hasCoveragePerTestData}}
       <span class="ib">{{t 'component_viewer.covered_lines'}}</span>
index ac3a80fd69e91aeb20662b28979904bf66a30740..de7379aa2c5e29364f90631c2b49dcbc5bb55af7 100644 (file)
   <div class="code-issue-details">
     <ul class="code-issue-tabs">
       <li>
-        <a class="js-tab-link underlined-link" href="#tab-issue-rule">{{t 'rule'}}</a>
+        <a class="js-tab-link" href="#tab-issue-rule">{{t 'rule'}}</a>
       </li>
       <li>
-        <a class="js-tab-link underlined-link" href="#tab-issue-changelog">{{t 'changelog'}}</a>
+        <a class="js-tab-link" href="#tab-issue-changelog">{{t 'changelog'}}</a>
       </li>
     </ul>
 
index 98041a072892b5c9b0fa42a92313f3d508db3ccc..d73a319aec8ca6a32218d9e79ffa2e34c6483b9e 100644 (file)
@@ -1,6 +1,6 @@
-@import "variables";
-@import "mixins";
-@import "navigator/config";
+@import (reference) "variables";
+@import (reference) "mixins";
+@import (reference) "navigator/config";
 
 @apiDocumentationSidebarWidth: 230px;
 
index e562f8117008d3c7fefdf308603e38d04524fdef..105519635573a905b3350ddcd1e2dcca521edd74 100644 (file)
@@ -1,6 +1,6 @@
-@import 'mixins';
-@import 'variables';
-@import 'navigator/config';
+@import (reference) 'mixins';
+@import (reference) 'variables';
+@import (reference) 'navigator/config';
 
 @facetsHeight: 40px;
 
index c3a56f66f404f126b5261688a187db823ecf5e68..f80ebe3fd83f0650290ed92f4410b8dfddbba874 100644 (file)
@@ -1,4 +1,4 @@
-@import 'variables';
+@import (reference) 'variables';
 
 .component-viewer-source {
 
index 84ce9a28f63881be78f8e580ca759458bbfa4b82..e0d468fd11518771d824ef5c6b96c4428069dc4b 100644 (file)
@@ -1,5 +1,6 @@
-@import "variables";
-@import "mixins";
+@import (reference) "variables";
+@import (reference) "mixins";
+@import (reference) "ui";
 
 @headerHeight: 60px;
 @workspaceWidth: 250px;
   position: relative;
   top: -2px;
   margin-left: 4px;
+  .link-no-underline;
 }
 
 .component-viewer-header-measures {
   border-left: 1px solid @barBackgroundColor;
   .box-sizing(border-box);
   background-color: lighten(@blue, 30%);
+  .link-no-underline;
   .transform-origin(0 0);
   .trans;
 
   display: block;
   padding: 11px 20px;
   white-space: nowrap;
+  .link-no-underline;
 
   a& {
     .trans(background);
   display: block;
   padding: 20px 10px;
   font-size: @iconFontSize;
+  .link-no-underline;
 }
 
 .component-viewer-header-more-actions {
index aa181d7791eb15977e08f5ad3523c6a85567aa61..97fdda25b68d1317739721c1dd5a3a4a0735ad00 100644 (file)
@@ -1,6 +1,6 @@
-@import "mixins";
-@import "variables";
-@import "ui";
+@import (reference) "mixins";
+@import (reference) "variables";
+@import (reference) "ui";
 
 .dashboard-page {
   background-color: @barBackgroundColor;
@@ -74,7 +74,7 @@
 }
 
 #dashboard .widget-title a {
-  .highlighted-link;
+  .link-no-underline;
 }
 
 /*CONFIGURATION*/
index 08b7cccc175b930d48720980fb2116b507fedce4..bf494eed3eec8d5638de54036c3c5a9736217856 100644 (file)
@@ -1,5 +1,6 @@
-@import "variables";
-@import "mixins";
+@import (reference) "variables";
+@import (reference) "mixins";
+@import (reference) "ui";
 
 @font-face {
        font-family: 'sonar';
@@ -28,7 +29,7 @@
 }
 
 a[class^="icon-"], a[class*=" icon-"] {
-  text-decoration: none !important;
+  .link-no-underline;
 }
 
 
index 8f4c36156a817da192e5566cb3cad0706d8a751d..75579aa28af83797f078061a6e13625f839e5949 100644 (file)
@@ -1,6 +1,6 @@
-@import "mixins";
-@import "variables";
-@import "ui";
+@import (reference) "mixins";
+@import (reference) "variables";
+@import (reference) "ui";
 
 @media print {
   /* ------------------- PRINT ------------------- */
@@ -70,8 +70,8 @@ body, a {
 }
 
 #hd a {
-  .base-link;
-  color: #e5e5e5;
+  color: #fff;
+  .link-no-underline;
 
   &.selected { color: @blue; }
 }
@@ -145,11 +145,7 @@ body, a {
 }
 
 #bc li a {
-  text-decoration: none;
-}
-
-#bc li a:hover, #bc li a:focus {
-  text-decoration: underline;
+  .link-no-underline;
 }
 
 #crumbs-ops {
@@ -163,11 +159,7 @@ body, a {
 }
 
 #crumbs-ops li a {
-  text-decoration: none;
-}
-
-#crumbs-ops li a:hover, #crumbs-ops li a:focus {
-  text-decoration: underline;
+  .link-no-underline;
 }
 
 #hd .dropdown-menu a {
@@ -224,7 +216,7 @@ ul.sidebar li {
 }
 
 ul.sidebar li > a {
-  .highlighted-link;
+  .link-no-underline;
 }
 
 ul.sidebar li.active {
index ef2dc10a7b5f2d6361ca37e10aa2c4eff702679f..66349f4b6559ad3339d3c91ea20afb988f15bde6 100644 (file)
@@ -1,4 +1,4 @@
-@import "variables";
+@import (reference) "variables";
 
 .clearfix() {
   &:before, &:after { display: table; content: ""; line-height: 0; }
index ab9401b04784ade08283f7524f29052572987eff..ddb1478deaafc4b459585070a88cff56bd2c4ff3 100644 (file)
@@ -1,5 +1,5 @@
-@import "mixins";
-@import "variables";
+@import (reference) "mixins";
+@import (reference) "variables";
 
 @import "navigator/config";
 @import "navigator/base";
index fb56fbc7be70eb0f48efc001f2e94d0680090234..070216d1b21aef108cecffaade17dbc265e1f2b8 100644 (file)
@@ -1,6 +1,6 @@
-@import "variables";
-@import "mixins";
-@import "navigator/config";
+@import (reference) "variables";
+@import (reference) "mixins";
+@import (reference) "navigator/config";
 
 @qualityGateSidebarWidth: 230px;
 
     border-left: none !important;
     border-right: none !important;
   }
-}
\ No newline at end of file
+}
index fed92898f3d9f3cb030af816d16f99f48d55e67a..d6b89c29cc100b5f49be5f89674cd901a14d14d3 100644 (file)
@@ -1,5 +1,5 @@
-@import "mixins";
-@import "variables";
+@import (reference) "mixins";
+@import (reference) "variables";
 
 @imagesPath: '../images/select2.png';
 @imagesPath2x: '../images/select2x2.png';
index 8a607cfa13685a72f5d6fc77035921ab0d692c3b..db1329484a05189537df90ca9d495e133fd65a83 100644 (file)
@@ -1,6 +1,6 @@
-@import "mixins";
-@import "variables";
-@import "ui";
+@import (reference) "mixins";
+@import (reference) "variables";
+@import (reference) "ui";
 
 /*
  * SonarQube, open source software quality management tool.
@@ -40,6 +40,7 @@
   border-top: 1px solid #fff;
   font-size: 85%;
   padding: 10px 0;
+  line-height: 1.4;
 }
 
 .ie-warn {
   text-decoration: underline;
 }
 
-#ftlinks a {
-  color: #444;
-}
-
 /*
   GENERAL
 */
@@ -64,6 +61,11 @@ a {
   cursor: pointer;
 }
 
+a.icon-favorite,
+a.icon-not-favorite {
+  .link-no-underline;
+}
+
 .loading {
   background: url("../images/loading.gif") no-repeat 4px 2px;
   color: #444;
@@ -386,6 +388,7 @@ table.data > thead > tr > th {
   vertical-align: top;
   font-size: 93%;
   padding: 4px 7px 4px 3px;
+  line-height: 1.4;
   text-transform: uppercase;
 
   & > .small {
@@ -471,7 +474,6 @@ table.sortable .sortcol {
   padding-left: 15px;
   background-repeat: no-repeat;
   background-position: right center;
-  text-decoration: underline;
 }
 
 table.sortable .sortasc {
@@ -1792,10 +1794,6 @@ ul.bullet li {
   padding: 0;
 }
 
-.tabs li a {
-  outline: none;
-}
-
 .tabs2 li a, .tabs li a {
   float: left;
   color: #777;
@@ -1803,6 +1801,7 @@ ul.bullet li {
   height: 17px;
   margin: 0 1px 0 0;
   padding: 1px 5px;
+  .link-no-underline;
 }
 
 .tabs2 li a.selected, .tabs li a.selected, .tabs .ui-tabs-active a {
@@ -1864,6 +1863,14 @@ ul.bullet li {
   color: #fff;
   margin: 0;
   padding: 0 3px;
+
+  a > & {
+    margin-bottom: -1px;
+    border-bottom: 1px solid @orange;
+    .trans;
+
+    &:hover { opacity: 0.8; }
+  }
 }
 
 .alert_ERROR {
@@ -1871,6 +1878,14 @@ ul.bullet li {
   color: #fff;
   margin: 0;
   padding: 0 3px;
+
+  a > & {
+    margin-bottom: -1px;
+    border-bottom: 1px solid @red;
+    .trans;
+
+    &:hover { opacity: 0.8; }
+  }
 }
 
 #comparison span.best {
@@ -2076,11 +2091,7 @@ table.matrix tbody td.title {
 }
 
 a.nolink {
-  text-decoration: none;
-}
-
-a.nolink:hover {
-  text-decoration: underline;
+  .link-no-underline;
 }
 
 h1 strong, .dashbox .title, .gwt-SourcePanel .sources .msg li strong {
@@ -2222,11 +2233,6 @@ table.nowrap td.small, td.nowrap.small, th.nowrap.small {
   background: #FFFBCC;
 }
 
-.action {
-  text-decoration: underline;
-  cursor: pointer;
-}
-
 /* Used on links which are located inside a dense text place or in tables */
 /* in order to rapidly identify them                                      */
 .link-action {
@@ -2850,6 +2856,7 @@ div.rule-title {
   line-height: @iconSmallFontSize;
   color: #fff;
   opacity: 0.5;
+  .link-no-underline;
 
   &:hover { opacity: 1; }
 }
index 571f245e061efadd7c766d0bfd0c8ecfdba7fc46..374bb140db215b7896c67ab7e306d294a6b4a761 100644 (file)
@@ -1,5 +1,5 @@
-@import "variables";
-@import "mixins";
+@import (reference) "variables";
+@import (reference) "mixins";
 
 
 
@@ -107,12 +107,12 @@ select::-moz-focus-inner, input::-moz-focus-inner, button::-moz-focus-inner {
   .link;
 }
 
-.highlighted-link {
+.highlighted-link() {
   color: @darkBlue;
   .link;
 }
 
-.underlined-link {
+.underlined-link() {
   .highlighted-link;
   border-bottom: 1px solid @lightBlue;
 
@@ -139,14 +139,19 @@ select::-moz-focus-inner, input::-moz-focus-inner, button::-moz-focus-inner {
   }
 }
 
-.active-link {
+.link-no-underline() {
   border-bottom: none;
-  font-weight: 500;
 }
 
+
 a {
   cursor: pointer;
-  .highlighted-link;
+  .underlined-link;
+
+  &.active-link {
+    border-bottom: none;
+    font-weight: 500;
+  }
 }
 
 
@@ -238,6 +243,8 @@ input[type=button] {
   }
 }
 
+.button { line-height: 22px; }
+
 .button-red {
   &:hover, &:focus {
     border-color: #900;
@@ -267,7 +274,8 @@ input[type=button] {
   font-size: 0;
   white-space: nowrap;
 
-  & > button {
+  & > button,
+  & > .button {
     position: relative;
     z-index: 2;
     display: inline-block;
@@ -283,11 +291,16 @@ input[type=button] {
     }
   }
 
-  & > button + button {
+  & > .button { line-height: 16px; }
+
+  & > button + button,
+  & > button + .button,
+  & > .button + button,
+  & > .button + .button {
     margin-left: -1px;
   }
 
-  & > a {
+  & > a:not(.button) {
     vertical-align: middle;
     margin: 0 8px;
     font-size: @smallFontSize;
@@ -325,25 +338,38 @@ input[type=button] {
   color: #fff;
   font-weight: 300;
   text-align: center;
+
+  a > & {
+    margin-bottom: -1px;
+    border-bottom: 1px solid;
+    .trans;
+
+    &:hover { opacity: 0.8; }
+  }
 }
 
 .rating-A {
   background-color: #00AA00;
+  a & { border-bottom-color: #00AA00; }
 }
 
 .rating-B {
   background-color: #80CC00;
+  a & { border-bottom-color: #80CC00; }
 }
 
 .rating-C {
   background-color: #FFEE00;
   color: @baseFontColor;
+  a & { border-bottom-color: #FFEE00; }
 }
 
 .rating-D {
   background-color: #F77700;
+  a & { border-bottom-color: #F77700; }
 }
 
 .rating-E {
   background-color: #EE0000;
+  a & { border-bottom-color: #EE0000; }
 }
index 9a58a14981d30c45adc4cace21c12d5f93812858..5ea88ea1f96d865ae814458ed4c7b3fbfa664c97 100644 (file)
@@ -129,7 +129,7 @@ module ApplicationHelper
 
   def boolean_icon(boolean_value, options={})
     if boolean_value
-      image_tag('tick.png', options)
+      "<i class='icon-check'></i>"
     elsif options[:display_false]
       image_tag('cross.png', options)
     else
@@ -947,7 +947,7 @@ module ApplicationHelper
     total = pagination.total.to_i
     page_index = pagination.pageIndex() ? pagination.pageIndex().to_i : 1
     pages = pagination.pages().to_i
-    results_html = options[:url_results] ? message('x_results', :params => "<a class='underlined-link' href='#{options[:url_results]}'>#{total}</a>") : message('x_results', :params => [total])
+    results_html = options[:url_results] ? message('x_results', :params => "<a href='#{options[:url_results]}'>#{total}</a>") : message('x_results', :params => [total])
 
     html = '<tfoot'
     html += " id='#{options[:id]}'" if options[:id]
index ca4472c524be55d4794bf3c046fc1620d26e71ab..23d1e6879d3e9da004549fa38c659ea3a9ae0a8e 100644 (file)
@@ -50,9 +50,9 @@ module MeasuresHelper
       end
 
     elsif column.key=='name'
-      "#{qualifier_icon(row.snapshot)} #{link_to(h(row.snapshot.resource.name(true)), {:controller => 'dashboard', :id => row.snapshot.resource_id}, {:title => h(row.snapshot.resource.key), :class => 'underlined-link'})}"
+      "#{qualifier_icon(row.snapshot)} #{link_to(h(row.snapshot.resource.name(true)), {:controller => 'dashboard', :id => row.snapshot.resource_id}, {:title => h(row.snapshot.resource.key)})}"
     elsif column.key=='short_name'
-      "#{qualifier_icon(row.snapshot)} #{link_to(h(row.snapshot.resource.name(false)), {:controller => 'dashboard', :id => row.snapshot.resource_id}, {:title => h(row.snapshot.resource.key), :class => 'highlighted-link'})}"
+      "#{qualifier_icon(row.snapshot)} #{link_to(h(row.snapshot.resource.name(false)), {:controller => 'dashboard', :id => row.snapshot.resource_id}, {:title => h(row.snapshot.resource.key)})}"
     elsif column.key=='date'
       human_short_date(row.snapshot.created_at)
     elsif column.key=='project_creation_date'
index 5490789acc74d508d8adb8d8ddd57d6fc6b8f0c6..4f474906a13a59688ba51f3575aa0489396f3e21 100644 (file)
         </td>
         <td class="order">
           <% if index > 0 %>
-            <%= link_to image_tag('blue-up.png'), {:action => :up, :id => active.id}, :method => :post, :id => "up-#{u active.name}" %>
+            <%= link_to '', {:action => :up, :id => active.id}, :method => :post, :id => "up-#{u active.name}", :class => 'icon-move-up' %>
           <% else %>
             <%= image_tag('transparent_16.gif') %>
           <% end %>
           <% if index < active_dashboards.size-1 %>
-            <%= link_to image_tag('blue-down.png'), {:action => :down, :id => active.id}, :method => :post, :id => "down-#{u active.name}" %>
+            <%= link_to '', {:action => :down, :id => active.id}, :method => :post, :id => "down-#{u active.name}", :class => 'icon-move-down' %>
           <% else %>
             <%= image_tag('transparent_16.gif') %>
         <% end %>
index 9a3b6e3d5480ef24c93d26d927bb216f2c6a9a1f..71a1b4463a1a96855d3891006964f4050125c698 100644 (file)
             %>
               <th style="text-align: center; vertical-align: top; line-height: 1.5;">
                 <span class="no-transform">
-                  <a class="underlined-link" href="<%= ApplicationController.root_context -%>/dashboard/index/<%= s.resource.key -%>"><%= h s.resource.name(true) -%></a>
+                  <a href="<%= ApplicationController.root_context -%>/dashboard/index/<%= s.resource.key -%>"><%= h s.resource.name(true) -%></a>
                   <br/>
                   <span class="note"><b><%= event ? event.name : message('comparison.version.latest') -%></b></span>
                   <br/>
index 17838c3e0977a8325642f060f23dae9ad159178a..5d74204a21188ebbb8c4916511f3ad5ee44103bf 100644 (file)
@@ -16,7 +16,7 @@
     <th><% if logged_in? %><%= link_to_favourite(@snapshot.project) -%><% end %></th>
     <th class="left text <%= 'sortfirstasc' if @components_configuration.sorted_by_project_name? -%>">
       <%= qualifier_icon(@snapshot) -%>
-      <a class="underlined-link no-transform" x="<%= u(@snapshot.project.name) -%>" href="<%= ApplicationController.root_context + "/dashboard/index/#{@snapshot.project.id}" -%>"><%= h @snapshot.project.name -%></a>
+      <a class="no-transform" x="<%= u(@snapshot.project.name) -%>" href="<%= ApplicationController.root_context + "/dashboard/index/#{@snapshot.project.id}" -%>"><%= h @snapshot.project.name -%></a>
     </th>
     <% @columns.each do |column| %>
       <%= get_header_content(column, @snapshot) -%>
index f85b44f48f27528e7c48b806824c602bafcf4526..f24a454aa4629235c4e78adec68a3148c568eefc 100644 (file)
@@ -53,7 +53,7 @@
                 <td class="left" x="<%= u(snapshot.project.name) -%>">
                   <%= qualifier_icon(snapshot) %>
                   <% if snapshot.display_dashboard? %>
-                    <%= link_to_resource(project, h(snapshot.project.name), :class => 'underlined-link') %>
+                    <%= link_to_resource(project, h(snapshot.project.name)) %>
                   <% else %>
                     <%= h snapshot.project.name %>
                   <% end %>
index 1dab108bcc4967dbb3482b7c8447762b190ef9ad..900075c19f027f58febe1d9ef04835c8464c7a94 100644 (file)
@@ -2,16 +2,16 @@
 <div class="line-block">
 
   <% if logged_in? %>
-    <ul class="operations noprint">
+    <div class="operations noprint button-group">
       <% if back %>
-        <li><%= link_to message('dashboard.back_to_dashboard'), dashboard_action(:index) -%></li>
+        <%= link_to message('dashboard.back_to_dashboard'), dashboard_action(:index), :class => 'button' -%>
       <% else %>
         <% if @dashboard.editable_by?(current_user) %>
-          <li><%= link_to message('dashboard.configure_widgets'), dashboard_action(:configure) -%></li>
+          <%= link_to message('dashboard.configure_widgets'), dashboard_action(:configure), :class => 'button' -%>
         <% end %>
       <% end %>
-      <li class="last"><%= link_to message('dashboard.manage_dashboards'), {:controller => :dashboards, :action => :index, :resource => (@resource.id if @resource) } -%></li>
-    </ul>
+      <%= link_to message('dashboard.manage_dashboards'), {:controller => :dashboards, :action => :index, :resource => (@resource.id if @resource) }, :class => 'button' -%>
+    </div>
   <% end %>
 
   <% if @snapshot %>
index 073f91dc35afe2f837dfc3f74cb553496ca27bb7..5737650fb8004da6a3525f6332a245527743f04c 100644 (file)
@@ -19,7 +19,7 @@
       <tr id="dashboard-<%= dashboard.id -%>" class="<%= cycle('even', 'odd', :name => 'shared') -%>">
         <td>
           <%= link_to h(dashboard.name(true)), {:controller => :dashboard, :action => :index, :did => dashboard.id, :id => (resource_id unless dashboard.global?)},
-                      :id => "view-#{u dashboard.name}", :class => 'underlined-link' %>
+                      :id => "view-#{u dashboard.name}" %>
           <div class="description"><%= h dashboard.description -%></div>
         </td>
         <td class="shared">
index 6a36cbe070665bd19bb68358c75ea34dd09d70be..68240dea7290489216710efc0633c88df7414e07 100644 (file)
@@ -19,7 +19,7 @@
       <tr id="dashboard-<%= dashboard.id -%>" class="<%= cycle('even', 'odd', :name => 'dashboard') -%>">
         <td>
           <%= link_to h(dashboard.name(true)), {:controller => :dashboard, :action => :index, :did => dashboard.id, :id => (resource_id unless dashboard.global?)},
-                      :id => "view-#{u dashboard.name}", :class => 'underlined-link' %>
+                      :id => "view-#{u dashboard.name}" %>
           <div class="description"><%= h dashboard.description -%></div>
         </td>
         <td class="shared">
index cb890b1cf7afaa934fd4aef1f916f7d78c41e540..8625066e0c47dd6b200a04593da67ec731a460a0 100644 (file)
@@ -2,7 +2,7 @@
 <tr class="<%= css -%> <%= 'selected' if selected -%>">
        <td><i class="icon-severity-<%= severity.downcase -%>"></i></td>
   <td>
-    <%= link_to message("severity.#{severity}"), {:controller => :drilldown, :action => :issues, :id => @resource.id, :severity => (selected ? nil : severity), :period => @period}, :class => 'underlined-link' %>
+    <%= link_to message("severity.#{severity}"), {:controller => :drilldown, :action => :issues, :id => @resource.id, :severity => (selected ? nil : severity), :period => @period} %>
   </td>
   <td style="padding-left: 10px;" align="right" nowrap>
          <%= @period ? format_variation(measure, :index => @period, :style => 'light') : format_measure(measure) -%>
index 8aef0011a5e795dbe44bb43dfa59841d4332e050..7c588467e661abfe81c38180993052f0d7c74fe9 100644 (file)
                             {:controller => :drilldown, :action => :issues, :id => @resource.id, :rule => (selected ? nil : rule.key),
                                         :rule_sev => (selected ? nil : rule_measure.severity), :sid => nil, :severity => @severity, :period => @period,
                                         :rids => (selected ? nil : @selected_rids)},
-                            :title => "#{rule.plugin_name}: #{rule.plugin_rule_key}",
-                            :class => 'underlined-link'
+                            :title => "#{rule.plugin_name}: #{rule.plugin_rule_key}"
                     ) -%>
               </td>
               <td class="right" nowrap="nowrap">
                 <a href="<%= url_for :controller => 'dashboard', :action => 'index', :id => resource.id, :period => @period, :metric => (@metric && @metric.key),
                                      :rule => @rule ? @rule.id : @severity -%>"
                    onclick="window.open(this.href,'resource-<%= resource.key.parameterize -%>','scrollbars=1,resizable=1');return false;"
-                   id="popup-<%= resource.key.parameterize -%>"
+                   id="popup-<%= resource.key.parameterize -%>" class="nolink"
                    target="_blank"><i class="icon-detach" title="<%= message('new_window') -%>"></i></a>
               <% else %>
                 <%= link_to(image_tag('zoom.png'), {:id => resource.id}, {:class => 'nolink'}) %>
               <%= qualifier_icon(resource) -%>&nbsp;
               <% if resource.source_code? %>
                 <a href="#" alt="<%= h resource.name(true) -%>" title="<%= h resource.name(true) -%>" data-key="<%= resource.key -%>"
-                   class="js-drilldown-link underlined-link"><%= h resource.name(false) %></a>
+                   class="js-drilldown-link"><%= h resource.name(false) %></a>
               <% else %>
-                <%= link_to(h(resource.name), {:only_path => true, :overwrite_params => {:rids => (selected ? rids-[resource.id] : rids+[resource.id])}}, :class => 'underlined-link') -%>
+                <%= link_to(h(resource.name), {:only_path => true, :overwrite_params => {:rids => (selected ? rids-[resource.id] : rids+[resource.id])}}) -%>
               <% end %>
             </td>
             <td class="right" nowrap>
index 0bea2a00709f5fcfc5a2d99447fa21684fde8c56..453e9e8ba65ff0fcbfc9a305fee8f5d2197e9be7 100644 (file)
@@ -77,7 +77,7 @@
                 <% if resource.source_code? %>
                   <a href="<%= url_for :controller => 'dashboard', :action => 'index', :id => resource.id, :period => @period, :metric => (@metric && @metric.key), :rule => @rule ? @rule.id : @severity -%>"
                      onclick="window.open(this.href,'resource-<%= resource.key.parameterize -%>','scrollbars=1,resizable=1');return false;"
-                     id="popup-<%= resource.key.parameterize -%>"
+                     id="popup-<%= resource.key.parameterize -%>" class="nolink"
                      target="_blank"><i class="icon-detach" title="<%= message('new_window') -%>"></i></a>
                 <% else %>
                   <%= link_to(image_tag('zoom.png'), {:id => resource.id, :metric => @metric.id}, {:class => 'nolink'}) -%>
@@ -85,9 +85,9 @@
                 <%= qualifier_icon(resource) -%>&nbsp;
                 <% if resource.source_code? %>
                   <a href="#" title="<%= h resource.name(true) -%>" data-key="<%= resource.key -%>"
-                     class="js-drilldown-link underlined-link"><%= h resource.name(false) %></a>
+                     class="js-drilldown-link"><%= h resource.name(false) %></a>
                 <% else %>
-                  <%= link_to(h(resource.name), params.merge({:only_path => true, :rids => (selected ? rids-[resource.id] : rids+[resource.id])}), :class => 'underlined-link') -%>
+                  <%= link_to(h(resource.name), params.merge({:only_path => true, :rids => (selected ? rids-[resource.id] : rids+[resource.id])})) -%>
                 <% end %>
               </td>
               <td class="right">
index 671e29f1ab21383733746d146ca6950d1d295457..3d75fcbfdba0aaaf20d03edfd7b61319a898e783 100644 (file)
       <table class="data width100 sortable" id="groups">
         <thead>
           <tr>
-            <th class="left sortfirstasc">Name</th>
-            <th class="left">Description</th>
-            <th class="left">Members</th>
-            <th class="operations nosort" nowrap>Operations</th>
+            <th class="left sortfirstasc"><a>Name</a></th>
+            <th class="left"><a>Description</a></th>
+            <th class="left"><a>Members</a></th>
+            <th class="operations nosort" nowrap><a>Operations</a></th>
           </tr>
         </thead>
         <tbody>
index 1512e0ea45af76b3c931e7b7e15372a842506c74..e4985adb84323d96d92c337c069e21d0ef03e31b 100644 (file)
@@ -2,7 +2,7 @@
 <div style="position:fixed;z-index:99999;top:0;bottom:0;left:0;right:0;background:#fff;">
   <div style="margin-top:150px;text-align:center;line-height:1.4;color:#333;">
     The web interface cannot be displayed because your browser is not supported.<br>
-    Please switch to a <a class="underlined-link" target="_blank"
+    Please switch to a <a target="_blank"
                           href="http://docs.codehaus.org/x/zYHEBg">supported version or another supported browser</a>.
   </div>
 </div>
index 8a63f3807ddd1cbd7b3042f704af1452eb95a7ac..3dae12f9a0e940958a65fa6237d22138086c0535 100644 (file)
   </tbody>
   <% if widget_id %>
     <%= table_pagination(filter.pagination, :colspan => colspan, :id => "measure_filter_foot#{widget_id}", :include_loading_icon => true) { |label, page_id|
-      link_to_function label, "refreshList#{widget_id}('#{filter.criteria[:sort]}', #{filter.criteria[:asc]}, #{page_id})", :class => 'underlined-link'
+      link_to_function label, "refreshList#{widget_id}('#{filter.criteria[:sort]}', #{filter.criteria[:asc]}, #{page_id})"
     } -%>
   <% else %>
     <%= table_pagination(filter.pagination, :colspan => colspan, :id => "measure_filter_foot#{widget_id}", :include_loading_icon => true) { |label, page_id|
-      link_to(label, filter.criteria.merge({:page => page_id}), :class => 'underlined-link')
+      link_to(label, filter.criteria.merge({:page => page_id}))
     } -%>
   <% end %>
 </table>
index 05f02a80d92c9edbdbb527ea9bd8465048a9fddf..d308a1f9161e55be89c9b42a93329c344921636c 100644 (file)
       <table class="sortable data width100" id="metrics">
         <thead>
           <tr>
-            <th class="left">Key</th>
-            <th class="left sortfirstasc">Name</th>
-            <th class="left">Description</th>
-            <th class="left">Domain</th>
-            <th class="left">Type</th>
-            <th class="left nosort">Operations</th>
+            <th class="left"><a>Key</a></th>
+            <th class="left sortfirstasc"><a>Name</a></th>
+            <th class="left"><a>Description</a></th>
+            <th class="left"><a>Domain</a></th>
+            <th class="left"><a>Type</a></th>
+            <th class="left nosort"><a>Operations</a></th>
           </tr>
         </thead>
         <tbody>
index 1a4f834e45bd554553dec4d7278197fe918c7acc..fa44944563aa0fe5ac062772343dd911490ca97f 100644 (file)
@@ -8,15 +8,11 @@
 <%= render :partial => 'roles/tabs', :locals => {:selected_tab=>'Permission templates'} %>
 <br/>
 <div class="line-block marginbottom10">
-  <ul class="operations">
-    <li>
-      <%= link_to message('permission_template.set_default_templates'), {:action => :default_templates_form, :qualifiers => @root_qualifiers},
-                  :id => 'configure-defaults-permission-template', :class => 'open-modal link-action' %>
-    </li>
-    <li class="last">
-      <%= link_to message('create'), {:action => :create_form}, :id => 'create-link-permission-template', :class => 'open-modal link-action' %>
-    </li>
-  </ul>
+  <div class="button-group operations">
+    <%= link_to message('permission_template.set_default_templates'), {:action => :default_templates_form, :qualifiers => @root_qualifiers},
+                :id => 'configure-defaults-permission-template', :class => 'open-modal link-action button' %>
+    <%= link_to message('create'), {:action => :create_form}, :id => 'create-link-permission-template', :class => 'open-modal link-action button' %>
+  </div>
 </div>
 <table class="data width100" id="permission-templates">
   <thead>
index e8a77e22cd98952f77525cc036be3e710a2cca64..536e6eb445ee60510b4beea3026a2c4bd2e13f2e 100644 (file)
@@ -1,17 +1,11 @@
 <div class="page">
 <div class="line-block marginbottom10">
-  <ul style="float: right" class="operations">
-    <li>
-      <i class="icon-compare"></i>
-      <a href="profiles/compare" id="compare-link"><%= message('quality_profiles.compare_profiles') -%></a>
-    </li>
+  <div style="float: right" class="operations button-group">
+    <a href="profiles/compare" id="compare-link" class="button"><i class="icon-compare"></i> <%= message('quality_profiles.compare_profiles') -%></a>
     <% if profiles_administrator? %>
-      <li class="last">
-        <i class="icon-restore"></i>
-        <a href="profiles/restore_form" class="open-modal" id="restore-link"><%= message('quality_profiles.restore_profile') -%></a>
-      </li>
+      <a href="profiles/restore_form" class="open-modal button" id="restore-link"><i class="icon-restore"></i> <%= message('quality_profiles.restore_profile') -%></a>
     <% end %>
-  </ul>
+  </div>
 </div>
 
 <%
index 141d250d49184aa358a0a07eaf023bf825a137a9..15719704de4278f3f03091bbe6f3a61f04485f3d 100644 (file)
@@ -71,7 +71,7 @@
     <%= paginate_java(paging, :colspan => 3, :id => "issue-filter-foot-#{widget_id}", :include_loading_icon => true,
                       :url_results => url_for_issues(search_options.except('pageSize', 'pageIndex', 'table_limit', 'widget_id')) ) { |label, page_id|
 <<EOF
-<a class="underlined-link" href="#" onclick="$j.ajax({ url:'#{url_for(link_params.merge({:pageIndex => page_id}))}',   type:'post', success:function(response){$j('#issues-widget-#{widget_id}').html(response);}}); return false;">#{label}</a>
+<a href="#" onclick="$j.ajax({ url:'#{url_for(link_params.merge({:pageIndex => page_id}))}',   type:'post', success:function(response){$j('#issues-widget-#{widget_id}').html(response);}}); return false;">#{label}</a>
 EOF
     } -%>
   </table>
index 93a7882995417c697014d00abe18af766b776abd..5aee7f3041651128a2c38e359a928f9205593d1c 100644 (file)
@@ -3,13 +3,11 @@
 <% end %>
 
 <div>
-  <ul class="operations">
-    <li class="last">
-      <%= link_to message('projects_role.apply_template'), {:controller => :roles, :action => :apply_template_form, :components => [@project.key], :names => @project.name,
-                                                            :results_count => 1},
-                  :id => "apply-template-#{u @project.kee}", :class => 'open-modal link-action' %>
-    </li>
-  </ul>
+  <div class="operations button-group">
+    <%= link_to message('projects_role.apply_template'), {:controller => :roles, :action => :apply_template_form, :components => [@project.key], :names => @project.name,
+                                                          :results_count => 1},
+                :id => "apply-template-#{u @project.kee}", :class => 'open-modal link-action button' %>
+  </div>
   <h1 class="admin-page-title"><%= message('project_roles.page') -%></h1>
   <p class="admin-page-description"><%= message('project_roles.page.description2') -%></p>
 </div>
index 200b74e46e49f95a2d9022fe596d391e9cf0a2c0..64e2f4483fd68314c28281cf35c47454df81a02c 100644 (file)
 </div>
 
 <div id="project-roles-operations" style="float: right;">
-  <ul class="operations">
-    <li class="last">
-      <%= link_to message('projects_role.bulk_change'), {:action => :apply_template_form, :names => @components_names,
-                                                         :keys => @components_keys, :qualifiers => @components_qualifiers,
-                                                         :results_count => @query_result.paging.total},
-                   :id => 'apply-template-modal', :class => 'open-modal link-action' %>
-    </li>
-  </ul>
+  <div class="operations button-group">
+    <%= link_to message('projects_role.bulk_change'), {:action => :apply_template_form, :names => @components_names,
+                                                       :keys => @components_keys, :qualifiers => @components_qualifiers,
+                                                       :results_count => @query_result.paging.total},
+                 :id => 'apply-template-modal', :class => 'open-modal link-action button' %>
+  </div>
 </div>
 
 <table class="data width100" id="projects">
index 2fd4e5045eb2979c2400e5318f7bbba6f91c5d22..131c24919820561ed3805790e9e00203fb6d8eb5 100644 (file)
       <table class="data width100 sortable" id="users">
         <thead>
           <tr>
-            <th class="left">Login</th>
-            <th class="left sortfirstasc">Name</th>
-            <th class="left">Email</th>
-            <th class="left nosort">Groups</th>
-            <th class="right nosort" nowrap>Operations</th>
+            <th class="left"><a>Login</a></th>
+            <th class="left sortfirstasc"><a>Name</a></th>
+            <th class="left"><a>Email</a></th>
+            <th class="left nosort"><a>Groups</a></th>
+            <th class="right nosort" nowrap><a>Operations</a></th>
           </tr>
         </thead>
         <tbody >