From 62e3644cada2c0b8b7ded5911b07bf9a60561093 Mon Sep 17 00:00:00 2001 From: Robert Buels Date: Tue, 28 Aug 2012 10:07:39 -0400 Subject: [PATCH] fix tracklist=0 URL control param, which fixes embedded mode and closes #132 --- src/JBrowse/Browser.js | 36 +++++++++++++++++++++++++++++- src/JBrowse/View/TrackList/Null.js | 14 +++++++----- 2 files changed, 44 insertions(+), 6 deletions(-) diff --git a/src/JBrowse/Browser.js b/src/JBrowse/Browser.js index 2e3b16f9a1..6358fa9260 100644 --- a/src/JBrowse/Browser.js +++ b/src/JBrowse/Browser.js @@ -454,7 +454,41 @@ Browser.prototype.loadConfig = function () { this.onConfigLoaded(); })); }; -Browser.prototype.onConfigLoaded = function() {}; + +/** + * Hook run after the configuration is all loaded. + */ +Browser.prototype.onConfigLoaded = function() { + // coerce some config keys to boolean + dojo.forEach( ['show_tracklist','show_nav','show_overview'], function(v) { + this.config[v] = this._coerceBoolean( this.config[v] ); + },this); +}; + +/** + * Coerce a value of unknown type to a boolean, treating string 'true' + * and 'false' as the values they indicate, and string numbers as + * numbers. + * @private + */ +Browser.prototype._coerceBoolean = function(val) { + if( typeof val == 'string' ) { + val = val.toLowerCase(); + if( val == 'true' ) { + return true; + } + else if( val == 'false' ) + return false; + else + return parseInt(val); + } + else if( typeof val == 'boolean' ) { + return val; + } + else { + return true; + } +}; /** * Add a function to be executed once JBrowse is initialized diff --git a/src/JBrowse/View/TrackList/Null.js b/src/JBrowse/View/TrackList/Null.js index 0336e6c25d..8e3c10bc15 100644 --- a/src/JBrowse/View/TrackList/Null.js +++ b/src/JBrowse/View/TrackList/Null.js @@ -1,12 +1,16 @@ +define(['dojo/_base/declare'],function(declare) { + +return declare(null, + /** - * Null track selector. Does not actually do anything. - * @class JBrowse.View.TrackList.Null + * @lends JBrowse.View.TrackList.Null.prototype */ - -dojo.declare( 'JBrowse.View.TrackList.Null', null, { +{ setTracksActive: function() {}, setTracksInactive: function() {}, show: function() {}, hide: function() {}, toggle: function() {} -} ); +}); +}); +