]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-5209 Permalink feedback
authorStas Vilchik <vilchiks@gmail.com>
Thu, 26 Jun 2014 06:04:17 +0000 (12:04 +0600)
committerStas Vilchik <vilchiks@gmail.com>
Thu, 26 Jun 2014 06:04:17 +0000 (12:04 +0600)
sonar-core/src/main/resources/org/sonar/l10n/core.properties
sonar-server/src/main/coffee/component-viewer/app.coffee
sonar-server/src/main/coffee/component-viewer/header.coffee
sonar-server/src/main/coffee/component-viewer/line-actions-popup.coffee
sonar-server/src/main/coffee/component-viewer/source.coffee
sonar-server/src/main/hbs/component-viewer/line-options-popup.hbs
sonar-server/src/main/hbs/component-viewer/source.hbs

index d3a8c178e7416f0b64e6210468812297d0bb63b7..93e5f0f0b793920a3d23ce3564ce446613d1be36 100644 (file)
@@ -2663,6 +2663,7 @@ component_viewer.show_full_source=Show full source
 component_viewer.show_raw_source=Show raw source
 component_viewer.more_actions=More actions
 component_viewer.new_window=Open in new window
+component_viewer.get_permalink=Get Permalink
 
 component_viewer.workspace=Workspace
 component_viewer.workspace.tooltip=Keeps track of history of navigation
index 7b3e11fd67423e85e8156f347a63cbff0dfcc824..030b538f6d91a59387d5711a1d738b720066dc95 100644 (file)
@@ -65,6 +65,12 @@ requirejs [
           viewer.off 'sized'
           viewer.scrollToLine params.line
 
+      if params.blocks?
+        blocks = params.blocks.split(';').map (b) ->
+          t = b.split ','
+          from: +t[0], to: +t[1]
+        viewer.on 'resetShowBlocks', -> viewer.sourceView.showBlocks = blocks
+
       viewer.open params.component
 
       viewer.on 'loaded', ->
index 5ded3d82d61bc39150f5a8a65ff6bd75c278ae7d..6889b2a66e345009d6065b0a43d3d4977cca1c35 100644 (file)
@@ -207,12 +207,18 @@ define [
       method.call @options.main, extra
 
 
+    serializeShowBlocks: ->
+      blocks = @options.main.sourceView.showBlocks.map (b) -> "#{b.from},#{b.to}"
+      blocks.join ';'
+
+
     getPermalink: ->
       params = []
       params.push key: 'component', value: @options.main.component.get 'key'
       settings = []
       _.map @options.main.settings.toJSON(), (v, k) -> settings.push k if v
       params.push key: 'settings', value: settings.join ','
+      params.push key: 'blocks', value: @serializeShowBlocks()
       activeHeaderTab = @state.get 'activeHeaderTab'
       if activeHeaderTab
         params.push key: 'tab', value: activeHeaderTab
index 652e0dc679cc4d837d13970798746679bfb96ace..303fe28b1e56035da41f8d6937744a3322b33174 100644 (file)
@@ -18,9 +18,15 @@ define [
 
 
     events:
+      'click .js-get-permalink': 'getPermalink'
       'click .js-add-manual-issue': 'addManualIssue'
 
 
+    getPermalink: (e) ->
+      e.preventDefault()
+      @options.main.headerView.getPermalink()
+
+
     addManualIssue: (e) ->
       e.preventDefault()
       line = @options.row.data 'line-number'
@@ -42,3 +48,6 @@ define [
         @options.main.sourceView.render()
 
 
+    serializeData: ->
+      _.extend super,
+        state: @options.main.state.toJSON()
index 37dec3768364f2f5a8117135efd17bf89125b1ae..9b15f4e62766243a819454aed537569cf17ac0f7 100644 (file)
@@ -58,6 +58,7 @@ define [
 
     resetShowBlocks: ->
       @showBlocks = []
+      @options.main.trigger 'resetShowBlocks'
 
 
     addShowBlock: (from, to, forceIncludeZero = false) ->
index eccd2e20a09e53ca7d8f5601a6244fd297628d35..04e4e6c6457ace86448f8a2c7bf0013ef02708c7 100644 (file)
@@ -2,8 +2,14 @@
   <div class="component-viewer-popup-title">{{t 'component_viewer.line_actions'}}</div>
 
   <div class="component-viewer-popup-section">
-    <a href="#" class="js-add-manual-issue link-action">{{t 'component_viewer.add_manual_issue'}}</a>
+    <a href="#" class="js-get-permalink link-action">{{t 'component_viewer.get_permalink'}}</a>
   </div>
+
+  {{#if state.canCreateManualIssue}}
+    <div class="component-viewer-popup-section">
+      <a href="#" class="js-add-manual-issue link-action">{{t 'component_viewer.add_manual_issue'}}</a>
+    </div>
+  {{/if}}
 </div>
 
 <div class="component-viewer-popup-arrow"></div>
\ No newline at end of file
index a0ae95fe133c240f32af245916caac28b93058a2..f033fb4d582af97d059cb840264e7a500227f014 100644 (file)
             </td>
           {{/if}}
 
-          {{#if ../../state.canCreateManualIssue}}
-            <td class="stat lid js-line-actions" title="{{t 'component_viewer.line_actions'}}">{{lineNumber}}</td>
-          {{else}}
-            <td class="stat lid js-line-actions">{{lineNumber}}</td>
-          {{/if}}
+          <td class="stat lid js-line-actions" title="{{t 'component_viewer.line_actions'}}">{{lineNumber}}</td>
 
           <td class="line"><pre>{{{code}}}</pre></td>
         </tr>