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 () {