##// END OF EJS Templates
Fix the "test for nothing was streamed" so it doesn't add empty elements -- but only when there wasn't already something there.
Fix the "test for nothing was streamed" so it doesn't add empty elements -- but only when there wasn't already something there.

File last commit:

r7209:fb02a677
r7340:4c1fd039
Show More
notificationwidget.js
123 lines | 4.4 KiB | application/javascript | JavascriptLexer
Brian Granger
Major refactoring of saving, notification....
r6047 //----------------------------------------------------------------------------
// Copyright (C) 2008-2011 The IPython Development Team
//
// Distributed under the terms of the BSD License. The full license is in
// the file COPYING, distributed as part of this software.
//----------------------------------------------------------------------------
//============================================================================
// Notification widget
//============================================================================
var IPython = (function (IPython) {
var utils = IPython.utils;
var NotificationWidget = function (selector) {
this.selector = selector;
this.timeout = null;
this.busy = false;
if (this.selector !== undefined) {
this.element = $(selector);
this.style();
this.bind_events();
}
};
NotificationWidget.prototype.style = function () {
this.element.addClass('ui-widget ui-widget-content ui-corner-all');
this.element.addClass('border-box-sizing');
};
NotificationWidget.prototype.bind_events = function () {
var that = this;
// Kernel events
$([IPython.events]).on('status_idle.Kernel',function () {
IPython.save_widget.update_document_title();
if (that.get_message() === 'Kernel busy') {
that.element.fadeOut(100, function () {
that.element.html('');
});
};
});
$([IPython.events]).on('status_busy.Kernel',function () {
window.document.title='(Busy) '+window.document.title;
that.set_message("Kernel busy");
});
$([IPython.events]).on('status_restarting.Kernel',function () {
Takafumi Arakaki
Clear window title when kernel is restarted...
r7207 IPython.save_widget.update_document_title();
Brian Granger
Major refactoring of saving, notification....
r6047 that.set_message("Restarting kernel",500);
});
$([IPython.events]).on('status_interrupting.Kernel',function () {
that.set_message("Interrupting kernel",500);
});
Brian Granger
Major refactoring of the Notebook, Kernel and CodeCell JavaScript....
r7168 $([IPython.events]).on('status_dead.Kernel',function () {
var dialog = $('<div/>');
Brian Granger
Adding back kernel dead choice for user....
r7178 dialog.html('The kernel has died, would you like to restart it? If you do not restart the kernel, you will be able to save the notebook, but running code will not work until the notebook is reopened.');
Brian Granger
Major refactoring of the Notebook, Kernel and CodeCell JavaScript....
r7168 $(document).append(dialog);
dialog.dialog({
resizable: false,
modal: true,
title: "Dead kernel",
buttons : {
Brian Granger
Adding back kernel dead choice for user....
r7178 "Restart": function () {
Takafumi Arakaki
Reduce repeated code regarding restarting events
r7208 $([IPython.events]).trigger('status_restarting.Kernel');
Brian Granger
Adding back kernel dead choice for user....
r7178 IPython.notebook.start_kernel();
$(this).dialog('close');
},
"Continue running": function () {
Brian Granger
Major refactoring of the Notebook, Kernel and CodeCell JavaScript....
r7168 $(this).dialog('close');
}
}
});
});
Brian Granger
Major refactoring of saving, notification....
r6047 // Notebook events
$([IPython.events]).on('notebook_loading.Notebook', function () {
that.set_message("Loading notebook",500);
});
$([IPython.events]).on('notebook_loaded.Notebook', function () {
that.set_message("Notebook loaded",500);
});
$([IPython.events]).on('notebook_saving.Notebook', function () {
that.set_message("Saving notebook",500);
});
$([IPython.events]).on('notebook_saved.Notebook', function () {
that.set_message("Notebook saved",500);
});
$([IPython.events]).on('notebook_save_failed.Notebook', function () {
that.set_message("Notebook save failed",500);
});
};
NotificationWidget.prototype.set_message = function (msg, timeout) {
var that = this;
this.element.html(msg);
this.element.fadeIn(100);
if (this.timeout !== null) {
clearTimeout(this.timeout);
this.timeout = null;
};
if (timeout !== undefined) {
this.timeout = setTimeout(function () {
that.element.fadeOut(100, function () {that.element.html('');});
that.timeout = null;
}, timeout)
};
};
NotificationWidget.prototype.get_message = function () {
return this.element.html();
};
IPython.NotificationWidget = NotificationWidget;
return IPython;
}(IPython));