From 18cefefca1c9621242faa84326975d6f9fb2cb7e Mon Sep 17 00:00:00 2001 From: Colin Date: Mon, 26 Nov 2018 05:43:26 -0500 Subject: [PATCH] Autosave configs on publish events --- src/JBrowse/Browser.js | 7 ++++--- src/JBrowse/View/Track/Alignments2.js | 15 +-------------- src/JBrowse/View/Track/BlockBased.js | 3 +-- 3 files changed, 6 insertions(+), 19 deletions(-) diff --git a/src/JBrowse/Browser.js b/src/JBrowse/Browser.js index 071b020e0c..671c3f2f4d 100644 --- a/src/JBrowse/Browser.js +++ b/src/JBrowse/Browser.js @@ -1976,7 +1976,7 @@ _calculateClientStats: function() { publish: function() { if( this.config.logMessages ) - console.log( arguments ); + console.log( arguments ) return topic.publish.apply( topic, arguments ); }, @@ -2197,6 +2197,7 @@ _replaceTrackConfigs: function( /**Array*/ newConfigs ) { this.trackConfigsByName[conf.label] = dojo.mixin( this.trackConfigsByName[ conf.label ] || {}, conf ); + this.saveConfig(conf); },this); }, /** @@ -3426,12 +3427,12 @@ teardown: function() { } }, -saveConfig(name, config) { +saveConfig(config) { const c = Object.assign({}, config) delete c.store delete c.menuTemplate delete c.events - this.cookie('track-' + name, JSON.stringify(c)); + this.cookie('track-' + config.label + '-config', JSON.stringify(c)); } }); diff --git a/src/JBrowse/View/Track/Alignments2.js b/src/JBrowse/View/Track/Alignments2.js index 336656e97e..df622b5f98 100644 --- a/src/JBrowse/View/Track/Alignments2.js +++ b/src/JBrowse/View/Track/Alignments2.js @@ -84,7 +84,6 @@ return declare( [ CanvasFeatureTrack, AlignmentsMixin ], { checked: this.config.glyph == 'JBrowse/View/FeatureGlyph/Alignment', onClick: function(event) { thisB.config.glyph = 'JBrowse/View/FeatureGlyph/Alignment' - thisB.browser.cookie('track-' + thisB.name, JSON.stringify(thisB.config)); thisB.browser.publish('/jbrowse/v1/v/tracks/replace', [thisB.config]); } }); @@ -95,7 +94,6 @@ return declare( [ CanvasFeatureTrack, AlignmentsMixin ], { checked: this.config.glyph == 'JBrowse/View/FeatureGlyph/PairedAlignment', onClick: function(event) { thisB.config.glyph = 'JBrowse/View/FeatureGlyph/PairedAlignment' - thisB.browser.saveConfig(thisB.config, thisB.name); thisB.browser.publish('/jbrowse/v1/v/tracks/replace', [thisB.config]); } }); @@ -106,7 +104,6 @@ return declare( [ CanvasFeatureTrack, AlignmentsMixin ], { checked: this.config.glyph == 'JBrowse/View/FeatureGlyph/PairedArc', onClick: function(event) { thisB.config.glyph = 'JBrowse/View/FeatureGlyph/PairedArc' - thisB.browser.saveConfig(thisB.config, thisB.name); thisB.browser.publish('/jbrowse/v1/v/tracks/replace', [thisB.config]); } }); @@ -116,7 +113,6 @@ return declare( [ CanvasFeatureTrack, AlignmentsMixin ], { checked: this.config.glyph == 'JBrowse/View/FeatureGlyph/PairedReadCloud', onClick: function(event) { thisB.config.glyph = 'JBrowse/View/FeatureGlyph/PairedReadCloud' - thisB.browser.saveConfig(thisB.config, thisB.name); thisB.browser.publish('/jbrowse/v1/v/tracks/replace', [thisB.config]); } }); @@ -129,7 +125,6 @@ return declare( [ CanvasFeatureTrack, AlignmentsMixin ], { thisB.config.type = 'JBrowse/View/Track/SNPCoverage' thisB.config._oldAlignmentsHeight = thisB.config.style.height thisB.config.style.height = thisB.config._oldSnpCoverageHeight - thisB.browser.saveConfig(thisB.config, thisB.name); thisB.browser.publish('/jbrowse/v1/v/tracks/replace', [thisB.config]); } }); @@ -141,7 +136,6 @@ return declare( [ CanvasFeatureTrack, AlignmentsMixin ], { onClick: function(event) { thisB.clearColorConfig() thisB.config.defaultColor = this.get('checked'); - thisB.browser.saveConfig(thisB.config, thisB.name); thisB.browser.publish('/jbrowse/v1/v/tracks/replace', [thisB.config]); } }); @@ -152,7 +146,6 @@ return declare( [ CanvasFeatureTrack, AlignmentsMixin ], { onClick: function(event) { thisB.clearColorConfig() thisB.config.useXS = this.get('checked'); - thisB.browser.saveConfig(thisB.config, thisB.name); thisB.browser.publish('/jbrowse/v1/v/tracks/replace', [thisB.config]); } }); @@ -164,7 +157,6 @@ return declare( [ CanvasFeatureTrack, AlignmentsMixin ], { onClick: function(event) { thisB.clearColorConfig() thisB.config.useTS = this.get('checked'); - thisB.browser.saveConfig(thisB.config, thisB.name); thisB.browser.publish('/jbrowse/v1/v/tracks/replace', [thisB.config]); } }); @@ -175,7 +167,6 @@ return declare( [ CanvasFeatureTrack, AlignmentsMixin ], { onClick: function(event) { thisB.clearColorConfig() thisB.config.useReverseTemplate = this.get('checked'); - thisB.browser.saveConfig(thisB.config, thisB.name); thisB.browser.publish('/jbrowse/v1/v/tracks/replace', [thisB.config]); } }); @@ -187,7 +178,6 @@ return declare( [ CanvasFeatureTrack, AlignmentsMixin ], { onClick: function(event) { thisB.clearColorConfig() thisB.config.colorByMAPQ = this.get('checked'); - thisB.browser.saveConfig(thisB.config, thisB.name); thisB.browser.publish('/jbrowse/v1/v/tracks/replace', [thisB.config]); } }); @@ -198,7 +188,6 @@ return declare( [ CanvasFeatureTrack, AlignmentsMixin ], { onClick: function(event) { thisB.clearColorConfig() thisB.config.colorByOrientation = this.get('checked'); - thisB.browser.saveConfig(thisB.config, thisB.name); thisB.browser.publish('/jbrowse/v1/v/tracks/replace', [thisB.config]); } }); @@ -209,7 +198,6 @@ return declare( [ CanvasFeatureTrack, AlignmentsMixin ], { onClick: function(event) { thisB.clearColorConfig() thisB.config.colorBySize = this.get('checked'); - thisB.browser.saveConfig(thisB.config, thisB.name); thisB.browser.publish('/jbrowse/v1/v/tracks/replace', [thisB.config]); } }); @@ -220,7 +208,6 @@ return declare( [ CanvasFeatureTrack, AlignmentsMixin ], { onClick: function(event) { thisB.clearColorConfig() thisB.config.colorByOrientationAndSize = this.get('checked'); - thisB.browser.saveConfig(thisB.config, thisB.name); thisB.browser.publish('/jbrowse/v1/v/tracks/replace', [thisB.config]); } }); @@ -230,7 +217,6 @@ return declare( [ CanvasFeatureTrack, AlignmentsMixin ], { checked: !!this.config.showInterchromosomalArcs, onClick: function(event) { thisB.config.showInterchromosomalArcs = this.get('checked'); - thisB.browser.saveConfig(thisB.config, thisB.name); thisB.browser.publish('/jbrowse/v1/v/tracks/replace', [thisB.config]); } }); @@ -345,6 +331,7 @@ return declare( [ CanvasFeatureTrack, AlignmentsMixin ], { if(none) { this.config.defaultColor = true } + }, renderClickMap() { diff --git a/src/JBrowse/View/Track/BlockBased.js b/src/JBrowse/View/Track/BlockBased.js index 52144fb3d1..172fcc94e2 100644 --- a/src/JBrowse/View/Track/BlockBased.js +++ b/src/JBrowse/View/Track/BlockBased.js @@ -81,7 +81,7 @@ return declare( [Component,DetailsMixin,FeatureFiltererMixin,Destroyable], this.refSeq = args.refSeq; this.name = args.label || this.config.label; - var cookie = this.browser.cookie("track-" + this.name); + var cookie = this.browser.cookie("track-" + this.name + '-config'); if (cookie) { cookie = JSON.parse(cookie) Object.assign(this.config, cookie) @@ -957,7 +957,6 @@ return declare( [Component,DetailsMixin,FeatureFiltererMixin,Destroyable], new TrackConfigEditor( that.config ) .show( function( result ) { // replace this track's configuration - that.browser.saveConfig(result.conf, that.name); that.browser.publish( '/jbrowse/v1/v/tracks/replace', [result.conf] ); }); }