##// END OF EJS Templates
Merge pull request #1919 from tkf/better_find_edit_target2...
Merge pull request #1919 from tkf/better_find_edit_target2 Use oinspect in CodeMagics._find_edit_target inspect.getabsfile and inspect.getsourcelines are replaced by find_file and find_source_lines in IPython.core.oinspect, which is our own more robust code that wraps the default one from the stdlib.

File last commit:

r7209:fb02a677
r7466:dc7323f1 merge
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));