From ccd888511b73fcffb80d6f63c75d19471968adbe Mon Sep 17 00:00:00 2001 From: Jeremy Goecks Date: Sat, 20 Apr 2013 15:04:07 -0400 Subject: [PATCH] (a) Fetch sample names before drawing variant track and (b) update dataset metadata when changed. --- static/scripts/mvc/data.js | 12 ++++++++++-- static/scripts/viz/trackster/tracks.js | 9 +++++++++ 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/static/scripts/mvc/data.js b/static/scripts/mvc/data.js index 2735b75452b..012203707aa 100644 --- a/static/scripts/mvc/data.js +++ b/static/scripts/mvc/data.js @@ -20,8 +20,15 @@ var Dataset = Backbone.RelationalModel.extend({ }, initialize: function() { - // -- Create and initialize metadata. -- + // Set metadata. + // FIXME: pass back a metadata dict and then Backbone-relational + // can be used unpack metadata automatically. + this._set_metadata(); + // Update metadata on change. + this.on('change', this._set_metadata, this); + }, + _set_metadata: function() { var metadata = new DatasetMetadata(); // Move metadata from dataset attributes to metadata object. @@ -34,7 +41,8 @@ var Dataset = Backbone.RelationalModel.extend({ } }, this); - this.set('metadata', metadata); + // Because this is an internal change, silence it. + this.set('metadata', metadata, { 'silent': true }); }, /** diff --git a/static/scripts/viz/trackster/tracks.js b/static/scripts/viz/trackster/tracks.js index 55fc68dbb2a..a514f84a174 100644 --- a/static/scripts/viz/trackster/tracks.js +++ b/static/scripts/viz/trackster/tracks.js @@ -4262,6 +4262,15 @@ extend(VariantTrack.prototype, Drawable.prototype, TiledTrack.prototype, { this.max_height_px = 0; }, + /** + * Additional initialization required before drawing track for the first time. + */ + predraw_init: function() { + if (!this.dataset.get_metadata('sample_names')) { + return this.dataset.fetch(); + } + }, + /** * Actions to be taken after draw has been completed. Draw is completed when all tiles have been * drawn/fetched and shown.