From aa5a8ced9136c42d9cf818ab3345eba84ed025ff 2014-11-17 22:17:17 From: Jonathan Frederic <jdfreder@calpoly.edu> Date: 2014-11-17 22:17:17 Subject: [PATCH] Address @takluyver 's review comments --- diff --git a/IPython/html/static/base/js/utils.js b/IPython/html/static/base/js/utils.js index a0d9c3c..fba5baa 100644 --- a/IPython/html/static/base/js/utils.js +++ b/IPython/html/static/base/js/utils.js @@ -661,7 +661,7 @@ define([ }); }; - var resolve_dict = function(d) { + var resolve_promises_dict = function(d) { // Resolve a promiseful dictionary. // Returns a single Promise. var keys = Object.keys(d); @@ -749,7 +749,7 @@ define([ promising_ajax : promising_ajax, WrappedError: WrappedError, load_class: load_class, - resolve_dict: resolve_dict, + resolve_promises_dict: resolve_promises_dict, reject: reject, }; diff --git a/IPython/html/static/widgets/js/manager.js b/IPython/html/static/widgets/js/manager.js index b4d9d84..1507e5f 100644 --- a/IPython/html/static/widgets/js/manager.js +++ b/IPython/html/static/widgets/js/manager.js @@ -54,18 +54,12 @@ define([ if (cell === null) { reject(new Error("Could not determine where the display" + " message was from. Widget will not be displayed")); - } else { - var dummy = null; - if (cell.widget_subarea) { - dummy = $('<div />'); - cell.widget_subarea.append(dummy); - } - + } else if (cell.widget_subarea) { + var dummy = $('<div />'); + cell.widget_subarea.append(dummy); that.create_view(model, {cell: cell}).then(function(view) { that._handle_display_view(view); - if (dummy) { - dummy.replaceWith(view.$el); - } + dummy.replaceWith(view.$el); view.trigger('displayed'); resolve(view); }, function(error) { @@ -178,6 +172,7 @@ define([ }; WidgetManager.prototype.get_model = function (model_id) { + // Get a promise for a model by model id. return this._models[model_id]; }; diff --git a/IPython/html/static/widgets/js/widget.js b/IPython/html/static/widgets/js/widget.js index b7730fe..00a4ca7 100644 --- a/IPython/html/static/widgets/js/widget.js +++ b/IPython/html/static/widgets/js/widget.js @@ -80,7 +80,7 @@ define(["widgets/js/manager", this.trigger('msg:custom', msg.content.data.content); break; case 'display': - this.widget_manager.display_view(msg, that); + this.widget_manager.display_view(msg, this); break; } }, @@ -262,7 +262,7 @@ define(["widgets/js/manager", _.each(value, function(sub_value, key) { unpacked[key] = that._unpack_models(sub_value); }); - return utils.resolve_dict(unpacked); + return utils.resolve_promises_dict(unpacked); } else if (typeof value === 'string' && value.slice(0,10) === "IPY_MODEL_") { // get_model returns a promise already return this.widget_manager.get_model(value.slice(10, value.length));