]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-6440 The "Quality Gates" page should start by a short description message expla...
authorStas Vilchik <vilchiks@gmail.com>
Wed, 22 Apr 2015 12:13:55 +0000 (14:13 +0200)
committerStas Vilchik <vilchiks@gmail.com>
Wed, 22 Apr 2015 12:22:21 +0000 (14:22 +0200)
server/sonar-web/src/main/coffee/quality-gate/app.coffee
server/sonar-web/src/main/coffee/quality-gate/router.coffee
server/sonar-web/src/main/hbs/quality-gates/_quality-gate-intro.hbs [new file with mode: 0644]
server/sonar-web/src/main/hbs/quality-gates/quality-gates-layout.hbs
server/sonar-web/src/main/webapp/WEB-INF/config/routes.rb
server/sonar-web/src/test/js/quality-gates-spec.js
server/sonar-web/src/test/views/quality-gates.jade [deleted file]
server/sonar-web/src/test/views/quality_gates.jade [new file with mode: 0644]

index 5aff2a4f4ce626533e6e0b990f0f09b8f0ef4728..38705f870b2850303fec082003325add7f52dfbc 100644 (file)
@@ -29,14 +29,12 @@ requirejs [
   'quality-gate/views/quality-gate-edit-view',
   'quality-gate/router',
   'quality-gate/layout'
-], (
-  QualityGates,
+], (QualityGates,
   QualityGateSidebarListItemView,
   QualityGateActionsView,
   QualityGateEditView,
   QualityGateRouter,
-  QualityGateLayout
-) ->
+  QualityGateLayout) ->
 
   # Create a Quality Gate Application
   App = new Marionette.Application
@@ -46,10 +44,7 @@ requirejs [
 
 
   App.openFirstQualityGate = ->
-    if @qualityGates.length > 0
-      @router.navigate "show/#{@qualityGates.models[0].get('id')}", trigger: true
-    else
-      App.layout.detailsRegion.reset()
+    App.layout.detailsRegion.reset()
 
 
   App.deleteQualityGate = (id) ->
@@ -93,7 +88,12 @@ requirejs [
   # Start router
   App.addInitializer ->
     @router = new QualityGateRouter app: @
-    Backbone.history.start()
+
+    QUALITY_GATES = '/quality_gates'
+    path = window.location.pathname
+    pos = path.indexOf QUALITY_GATES
+    root = path.substr(0, pos + QUALITY_GATES.length)
+    Backbone.history.start pushState: true, root: root
 
 
   # Open first quality gate when come to the page
@@ -106,9 +106,9 @@ requirejs [
   appXHR = jQuery.ajax
     url: "#{baseUrl}/api/qualitygates/app"
   .done (r) =>
-      App.canEdit = r.edit
-      App.periods = r.periods
-      App.metrics = r.metrics
+    App.canEdit = r.edit
+    App.periods = r.periods
+    App.metrics = r.metrics
 
   qualityGatesXHR = App.qualityGates.fetch()
 
@@ -116,6 +116,7 @@ requirejs [
   l10nXHR = window.requestMessages()
 
   jQuery.when(qualityGatesXHR, appXHR, l10nXHR)
-    .done ->
-      # Start the application
-      App.start()
+  .done ->
+    # Start the application
+    App.start()
+
index 9f8f30fa713d0a53e4c0e392879527b1800fe062..d63a1fbc7133f0c7909dc98117d903c97e483660 100644 (file)
@@ -31,6 +31,7 @@ define [
   class QualityGateRouter extends Backbone.Router
 
     routes:
+      '': 'index'
       'show/:id': 'show'
 
 
@@ -38,6 +39,9 @@ define [
       @app = options.app
 
 
+    index: ->
+
+
     show: (id) ->
       qualityGate = @app.qualityGates.get id
       if qualityGate
diff --git a/server/sonar-web/src/main/hbs/quality-gates/_quality-gate-intro.hbs b/server/sonar-web/src/main/hbs/quality-gates/_quality-gate-intro.hbs
new file mode 100644 (file)
index 0000000..8d627a1
--- /dev/null
@@ -0,0 +1,7 @@
+<div class="alert alert-info">
+  <p class="spacer-bottom">Quality Gates are collections of simple boolean thresholds set on project measures. A project
+    must pass each of the thresholds in order to pass the Quality Gate as a whole.</p>
+
+  <p>It is possible to set a default Quality Gate, which will be applied to all projects not explicitly assigned to some
+    other gate.</p>
+</div>
index e156acf6e18a6c844b56b09bfbf4b625743fd8fc..caac49159fdcba05e344a01f06ae0c34a1bdaab2 100644 (file)
@@ -4,6 +4,6 @@
 </div>
 
 <div class="search-navigator-workspace">
-  <div class="search-navigator-workspace-header"></div>
-  <div class="search-navigator-workspace-list"></div>
+  <div class="search-navigator-workspace-header">&nbsp;</div>
+  <div class="search-navigator-workspace-list">{{> '_quality-gate-intro'}}</div>
 </div>
index 6754a315d627183b49f5ae38561918d4b106e9f8..442ebdce8b5362e4b18b44dab19906075fde9146 100644 (file)
@@ -44,6 +44,7 @@ ActionController::Routing::Routes.draw do |map|
   map.connect 'rules_configuration/:action/:language/:name/:plugin.:format', :controller => 'rules_configuration'
 
   map.connect 'api_documentation/*other', :controller => 'api_documentation', :action => 'index'
+  map.connect 'quality_gates/*other', :controller => 'quality_gates', :action => 'index'
 
   # Install the default route as the lowest priority.
   map.connect ':controller/:action/:id', :requirements => { :id => /.*/ }
index dc3c644d008f6934a77a09e3425ec12d7030dc15..b892b5527a30ae5d8c838a653a887f1f2f67bc69 100644 (file)
@@ -28,7 +28,7 @@ lib.configureCasper();
 
 casper.test.begin('Quality Gates', function suite (test) {
   casper
-      .start(lib.buildUrl('quality-gates'), function () {
+      .start(lib.buildUrl('quality_gates#show/1'), function () {
         lib.setDefaultViewport();
 
 
diff --git a/server/sonar-web/src/test/views/quality-gates.jade b/server/sonar-web/src/test/views/quality-gates.jade
deleted file mode 100644 (file)
index c7cbf2c..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-extends layouts/main
-
-block body
-  #content
-    .search-navigator#quality-gates
diff --git a/server/sonar-web/src/test/views/quality_gates.jade b/server/sonar-web/src/test/views/quality_gates.jade
new file mode 100644 (file)
index 0000000..c7cbf2c
--- /dev/null
@@ -0,0 +1,5 @@
+extends layouts/main
+
+block body
+  #content
+    .search-navigator#quality-gates