]> source.dussan.org Git - sonarqube.git/commitdiff
Component Viewer: workspace
authorStas Vilchik <vilchiks@gmail.com>
Mon, 21 Apr 2014 06:11:21 +0000 (12:11 +0600)
committerStas Vilchik <vilchiks@gmail.com>
Mon, 21 Apr 2014 06:11:21 +0000 (12:11 +0600)
sonar-server/src/main/coffee/component-viewer/coverage-popup.coffee
sonar-server/src/main/coffee/component-viewer/header.coffee
sonar-server/src/main/coffee/component-viewer/main.coffee
sonar-server/src/main/hbs/component-viewer/header.hbs
sonar-server/src/main/js/common/handlebars-extensions.js

index a0f5454c1fe0dc240275d5fb3fda02f584167ba3..c225a07b428363c9582c5cbe859009ecd620da66 100644 (file)
@@ -31,4 +31,5 @@ define [
 
     goToFile: (e) ->
       key = $(e.currentTarget).data 'key'
+      console.log key
       @options.main.addTransition key, 'coverage'
index ae4f05b4ebecc53bbbe48a2c4e3e469e70cf9c5b..e64f546d43e65679544d80377fbf7e3056b0cb9b 100644 (file)
@@ -14,6 +14,7 @@ define [
 
 
     events:
+      'click .component-viewer-workspace-item [data-key]': 'goToWorkspaceItem'
       'click [data-option=coverage]': 'toggleCoverage'
 
 
@@ -21,6 +22,15 @@ define [
       @delegateEvents()
 
 
+    goToWorkspaceItem: (e) ->
+      key = $(e.currentTarget).data 'key'
+      workspace = @options.main.workspace
+      workspaceItem = workspace.findWhere key: key
+      workspaceItemIndex = workspace.indexOf workspaceItem
+      workspace.reset workspace.initial(workspace.length - workspaceItemIndex)
+      @options.main.addTransition workspaceItem.get('key'), workspaceItem.get('transition')
+
+
     toggleCoverage: (e) ->
       el = $(e.currentTarget)
       active = el.is '.active'
@@ -29,5 +39,7 @@ define [
 
 
     serializeData: ->
-      _.extend super, workspace: @options.workspace.toJSON()
+      _.extend super,
+        workspace: @options.main.workspace.toJSON()
+        settings: @options.main.settings.toJSON()
 
index f9b20cb334a1550ddb9c97854517281ed0ee7679..c207d8c3f87c70c9491b85ebc698bb4dcc9c25b1 100644 (file)
@@ -33,12 +33,13 @@ define [
       @component = new Backbone.Model()
       @headerView = new HeaderView
         model: @component
-        workspace: @workspace
         main: @
 
       @source = new Backbone.Model()
       @sourceView = new SourceView model: @source, main: @
 
+      @settings = new Backbone.Model issues: false, coverage: true, duplications: false
+
 
     onRender: ->
       @headerRegion.show @headerView
@@ -84,9 +85,10 @@ define [
       source = @requestSource key
       component = @requestComponent key
       $.when(source, component).done =>
-        @workspace.findWhere(key: key).set 'component': @component.toJSON()
+        @workspace.where(key: key).forEach (model) =>
+          model.set 'component': @component.toJSON()
         @render()
-        @showCoverage()
+        if @settings.get('coverage') then @showCoverage() else @hideCoverage()
 
 
     showCoverage: ->
index 953880f5be2a9b4d4f49b9b1c08e3ba3da9e8d0f..0e05fdf6a2bbf58fe59f9d8b61c3f26dae7c96ba 100644 (file)
 </div>
 
 <div class="component-viewer-options button-group">
-  <button data-option="issues"><i class="icon-issue"></i>&nbsp;&nbsp;Issues</button>
-  <button data-option="coverage"><i class="icon-coverage"></i>&nbsp;&nbsp;Coverage</button>
-  <button data-option="duplications"><i class="icon-duplications"></i>&nbsp;&nbsp;Duplications</button>
+  <button data-option="issues" {{#if settings.issues}}class="active"{{/if}}>
+    <i class="icon-issue"></i>&nbsp;&nbsp;Issues
+  </button>
+  <button data-option="coverage" {{#if settings.coverage}}class="active"{{/if}}>
+    <i class="icon-coverage"></i>&nbsp;&nbsp;Coverage
+  </button>
+  <button data-option="duplications" {{#if settings.duplications}}class="active"{{/if}}>
+    <i class="icon-duplications"></i>&nbsp;&nbsp;Duplications
+  </button>
 </div>
\ No newline at end of file
index 2a8f5747b5060308a17c779f9eaf22747868147f..b1f27e57c592b648f505a5d67865f3f89b2b2c05 100644 (file)
@@ -27,7 +27,7 @@ define(['handlebars'], function (Handlebars) {
 
   Handlebars.registerHelper('qualifierIcon', function(qualifier) {
     return new Handlebars.SafeString(
-        '<i class="icon-qualifier-' + qualifier.toLowerCase() + '"></i>'
+        qualifier ? '<i class="icon-qualifier-' + qualifier.toLowerCase() + '"></i>': ''
     );
   });