From 4e88b9a089123ef77c0531a7e33d8cd0d026228e Mon Sep 17 00:00:00 2001 From: Stas Vilchik Date: Tue, 20 May 2014 15:37:42 +0200 Subject: [PATCH] SONAR-5209 Store settings in the local storage --- .../coffee/component-viewer/header.coffee | 5 +- .../main/coffee/component-viewer/main.coffee | 54 +++++++++++++------ sonar-server/src/main/js/issues/extra.js | 2 +- 3 files changed, 42 insertions(+), 19 deletions(-) diff --git a/sonar-server/src/main/coffee/component-viewer/header.coffee b/sonar-server/src/main/coffee/component-viewer/header.coffee index 1f8107510b3..907427fab76 100644 --- a/sonar-server/src/main/coffee/component-viewer/header.coffee +++ b/sonar-server/src/main/coffee/component-viewer/header.coffee @@ -93,7 +93,10 @@ define [ toggleSetting: (e, show, hide) -> @showBlocks = [] active = $(e.currentTarget).is '.active' - if active then hide.call @options.main else show.call @options.main + if active + hide.call @options.main, true + else + show.call @options.main, true toggleIssues: (e) -> @toggleSetting e, @options.main.showIssues, @options.main.hideIssues diff --git a/sonar-server/src/main/coffee/component-viewer/main.coffee b/sonar-server/src/main/coffee/component-viewer/main.coffee index 74565caa639..8769dbbcfad 100644 --- a/sonar-server/src/main/coffee/component-viewer/main.coffee +++ b/sonar-server/src/main/coffee/component-viewer/main.coffee @@ -57,12 +57,7 @@ define [ initialize: (options) -> - @settings = new Backbone.Model - issues: false - coverage: false - duplications: false - scm: false - workspace: false + @settings = new Backbone.Model @getDefaultSettings() @settings.set options.settings @component = new Backbone.Model() @@ -85,6 +80,20 @@ define [ @requestIssuesOnce = false + getDefaultSettings: -> + componentViewerSettings = localStorage.getItem 'componentViewerSettings' + if componentViewerSettings? then JSON.parse componentViewerSettings else + issues: false + coverage: false + duplications: false + scm: false + workspace: false + + + storeSettings: -> + localStorage.setItem 'componentViewerSettings', JSON.stringify @settings.toJSON() + + onRender: -> @workspaceRegion.show @workspaceView @$el.toggleClass 'component-viewer-workspace-enabled', @settings.get 'workspace' @@ -161,35 +170,41 @@ define [ if @settings.get('scm') then @showSCM() else @hideSCM() - showCoverage: -> + showCoverage: (store = false) -> @settings.set 'coverage', true + @storeSettings() if store unless @source.has 'coverage' @requestCoverage(@key).done => @sourceView.render() else @sourceView.render() - hideCoverage: -> + hideCoverage: (store = false) -> @settings.set 'coverage', false + @storeSettings() if store @sourceView.render() - toggleWorkspace: -> + toggleWorkspace: (store = false) -> if @settings.get 'workspace' then @hideWorkspace() else @showWorkspace() + @storeSettings() if store - showWorkspace: -> + showWorkspace: (store = false) -> @settings.set 'workspace', true + @storeSettings() if store @render() - hideWorkspace: -> + hideWorkspace: (store = false) -> @settings.set 'workspace', false + @storeSettings() if store @render() - showIssues: (issue) -> + showIssues: (store = false, issue) -> @settings.set 'issues', true + @storeSettings() if store if issue? @currentIssue = issue.key @source.set 'issues', [issue] @@ -198,31 +213,36 @@ define [ @sourceView.render() - hideIssues: -> + hideIssues: (store = false) -> @settings.set 'issues', false + @storeSettings() if store @sourceView.render() - showDuplications: -> + showDuplications: (store = false) -> @settings.set 'duplications', true + @storeSettings() if store @sourceView.render() - hideDuplications: -> + hideDuplications: (store = false) -> @settings.set 'duplications', false + @storeSettings() if store @sourceView.render() - showSCM: -> + showSCM: (store = false) -> @settings.set 'scm', true + @storeSettings() if store unless @source.has 'scm' @requestSCM(@key).done => @sourceView.render() else @sourceView.render() - hideSCM: -> + hideSCM: (store = false) -> @settings.set 'scm', false + @storeSettings() if store @sourceView.render() diff --git a/sonar-server/src/main/js/issues/extra.js b/sonar-server/src/main/js/issues/extra.js index 105ef9d16bf..2ad691cbbaa 100644 --- a/sonar-server/src/main/js/issues/extra.js +++ b/sonar-server/src/main/js/issues/extra.js @@ -156,7 +156,7 @@ define( jQuery('.navigator-details').removeClass('navigator-fetching'); app.detailsRegion.show(componentViewer); componentViewer.open(that.model.get('component')).done(function() { - componentViewer.showIssues(that.model.toJSON(), true); + componentViewer.showIssues(false, that.model.toJSON()); var row = componentViewer.$('.code-issue:first').closest('.row'); if (row.data('line-number') > 0) { -- 2.39.5