//---------------------------------------------------------------------------- // 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 () { that.set_message("Restarting kernel",500); }); $([IPython.events]).on('status_interrupting.Kernel',function () { that.set_message("Interrupting kernel",500); }); // 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));