diff --git a/IPython/html/static/base/js/contentmanager.js b/IPython/html/static/base/js/contentmanager.js index a764e570a..3c508f217 100644 --- a/IPython/html/static/base/js/contentmanager.js +++ b/IPython/html/static/base/js/contentmanager.js @@ -75,12 +75,19 @@ define([ }; ContentManager.prototype.delete_notebook = function(name, path) { + var that = this; var settings = { processData : false, cache : false, type : "DELETE", dataType : "json", - error : utils.log_ajax_error, + success : function (data, status, xhr) { + that.events.trigger('notebook_deleted.ContentManager', { + name: name, + path: path + }); + }, + error : utils.log_ajax_error }; var url = utils.url_join_encode( this.base_url, diff --git a/IPython/html/static/tree/js/notebooklist.js b/IPython/html/static/tree/js/notebooklist.js index 83275fc3e..96b740bdd 100644 --- a/IPython/html/static/tree/js/notebooklist.js +++ b/IPython/html/static/tree/js/notebooklist.js @@ -39,6 +39,21 @@ define([ this.session_list.events.on('sessions_loaded.Dashboard', function(e, d) { that.sessions_loaded(d); }); } + + + if (this.content_manager && this.content_manager.events) { + this.content_manager.events.on('notebook_deleted.ContentManager', + function(e, d) { + // Remove the deleted notebook. + $( ":data(nbname)" ).each(function() { + var element = $( this ); + if (element.data( "nbname" ) == d.name && + element.data( "path" ) == d.path) { + element.remove(); + } + }); + }); + } }; NotebookList.prototype.style = function () {