##// END OF EJS Templates
Make top-level metadata dictionary not optional.
Make top-level metadata dictionary not optional.

File last commit:

r7527:0522c457
r7955:450d0a58
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 () {
MinRK
increase duration of save messages...
r7527 that.set_message("Notebook saved",2000);
Brian Granger
Major refactoring of saving, notification....
r6047 });
$([IPython.events]).on('notebook_save_failed.Notebook', function () {
MinRK
increase duration of save messages...
r7527 that.set_message("Notebook save failed",2000);
Brian Granger
Major refactoring of saving, notification....
r6047 });
};
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));