diff --git a/IPython/html/static/notebook/js/notificationarea.js b/IPython/html/static/notebook/js/notificationarea.js
index cc43d23d3..e3b1e9e96 100644
--- a/IPython/html/static/notebook/js/notificationarea.js
+++ b/IPython/html/static/notebook/js/notificationarea.js
@@ -108,12 +108,12 @@ define([
var $modal_ind_icon = $("#modal_indicator_icon");
// Command/Edit mode
- this.events.on('edit_mode.Notebook',function () {
+ this.events.on('edit_mode.Notebook', function () {
that.save_widget.update_document_title();
$modal_ind_icon.attr('class','edit_mode_icon').attr('title','Edit Mode');
});
- this.events.on('command_mode.Notebook',function () {
+ this.events.on('command_mode.Notebook', function () {
that.save_widget.update_document_title();
$modal_ind_icon.attr('class','command_mode_icon').attr('title','Command Mode');
});
@@ -123,9 +123,9 @@ define([
// Kernel events
- // this can be either kernel_started.Kernel or kernel_started.Session
- this.events.on('kernel_started.Kernel kernel_started.Session', function () {
- knw.info("Kernel Started", 500);
+ // this can be either kernel_created.Kernel or kernel_created.Session
+ this.events.on('kernel_created.Kernel kernel_created.Session', function () {
+ knw.info("Kernel Created", 500);
});
this.events.on('status_reconnecting.Kernel', function () {
@@ -136,7 +136,7 @@ define([
knw.info("Connected", 500);
});
- this.events.on('status_restarting.Kernel status_autorestarting.Kernel',function () {
+ this.events.on('status_restarting.Kernel', function () {
that.save_widget.update_document_title();
knw.set_message("Restarting kernel", 2000);
});
@@ -153,9 +153,13 @@ define([
}
}
});
+
+ that.save_widget.update_document_title();
+ knw.danger("Dead kernel");
+ $kernel_ind_icon.attr('class','kernel_dead_icon').attr('title','Kernel Dead');
});
- this.events.on('status_interrupting.Kernel',function () {
+ this.events.on('status_interrupting.Kernel', function () {
knw.set_message("Interrupting kernel", 2000);
});
@@ -261,12 +265,24 @@ define([
knw.danger(short, undefined, showMsg);
});
- this.events.on('status_idle.Kernel',function () {
+ this.events.on('status_starting.Kernel', function () {
+ window.document.title='(Starting) '+window.document.title;
+ $kernel_ind_icon.attr('class','kernel_busy_icon').attr('title','Kernel Busy');
+ knw.set_message("Kernel starting, please wait...");
+ });
+
+ this.events.on('status_ready.Kernel', function () {
+ that.save_widget.update_document_title();
+ $kernel_ind_icon.attr('class','kernel_idle_icon').attr('title','Kernel Idle');
+ knw.info("Kernel ready", 500);
+ });
+
+ this.events.on('status_idle.Kernel', function () {
that.save_widget.update_document_title();
$kernel_ind_icon.attr('class','kernel_idle_icon').attr('title','Kernel Idle');
});
- this.events.on('status_busy.Kernel',function () {
+ this.events.on('status_busy.Kernel', function () {
window.document.title='(Busy) '+window.document.title;
$kernel_ind_icon.attr('class','kernel_busy_icon').attr('title','Kernel Busy');
});
diff --git a/IPython/html/static/services/kernels/js/kernel.js b/IPython/html/static/services/kernels/js/kernel.js
index 7ce4f3331..7aaadf043 100644
--- a/IPython/html/static/services/kernels/js/kernel.js
+++ b/IPython/html/static/services/kernels/js/kernel.js
@@ -95,7 +95,7 @@ define([
console.log('Kernel: ' + evt.type + ' (' + that.id + ')');
};
- this.events.on('kernel_started.Kernel', record_status);
+ this.events.on('kernel_created.Kernel', record_status);
this.events.on('status_reconnecting.Kernel', record_status);
this.events.on('status_connected.Kernel', record_status);
this.events.on('status_starting.Kernel', record_status);
@@ -107,6 +107,7 @@ define([
// be uncommented for debugging purposes
//this.events.on('status_idle.Kernel', record_status);
//this.events.on('status_busy.Kernel', record_status);
+ this.events.on('status_ready.Kernel', record_status);
this.events.on('status_killed.Kernel', record_status);
this.events.on('kernel_dead.Kernel', record_status);
};
@@ -171,8 +172,8 @@ define([
var that = this;
var on_success = function (data, status, xhr) {
- that.events.trigger('kernel_started.Kernel', {kernel: that});
- that._kernel_started(data);
+ that.events.trigger('kernel_created.Kernel', {kernel: that});
+ that._kernel_created(data);
if (success) {
success(data, status, xhr);
}
@@ -251,11 +252,8 @@ define([
var that = this;
var on_success = function (data, status, xhr) {
- that.events.trigger('status_busy.Kernel', {kernel: this});
// get kernel info so we know what state the kernel is in
- that.kernel_info(function () {
- that.events.trigger('status_idle.Kernel', {kernel: this});
- });
+ that.kernel_info();
if (success) {
success(data, status, xhr);
}
@@ -287,8 +285,8 @@ define([
var that = this;
var on_success = function (data, status, xhr) {
- that.events.trigger('kernel_started.Kernel', {kernel: that});
- that._kernel_started(data);
+ that.events.trigger('kernel_created.Kernel', {kernel: that});
+ that._kernel_created(data);
if (success) {
success(data, status, xhr);
}
@@ -367,13 +365,12 @@ define([
* Perform necessary tasks once the kernel has been started,
* including actually connecting to the kernel.
*
- * @function _kernel_started
+ * @function _kernel_created
* @param {Object} data - information about the kernel including id
*/
- Kernel.prototype._kernel_started = function (data) {
+ Kernel.prototype._kernel_created = function (data) {
this.id = data.id;
this.kernel_url = utils.url_join_encode(this.kernel_service_url, this.id);
-
this.start_channels();
};
@@ -386,11 +383,11 @@ define([
*/
Kernel.prototype._kernel_connected = function () {
this.events.trigger('status_connected.Kernel', {kernel: this});
- this.events.trigger('status_busy.Kernel', {kernel: this});
+ this.events.trigger('status_starting.Kernel', {kernel: this});
// get kernel info so we know what state the kernel is in
var that = this;
this.kernel_info(function () {
- that.events.trigger('status_idle.Kernel', {kernel: this});
+ that.events.trigger('status_ready.Kernel', {kernel: this});
});
};
@@ -915,6 +912,10 @@ define([
} else if (execution_state === 'starting') {
this.events.trigger('status_starting.Kernel', {kernel: this});
+ var that = this;
+ this.kernel_info(function () {
+ that.events.trigger('status_ready.Kernel', {kernel: this});
+ });
} else if (execution_state === 'restarting') {
// autorestarting is distinct from restarting,
diff --git a/IPython/html/static/services/sessions/js/session.js b/IPython/html/static/services/sessions/js/session.js
index 132207d8c..cef8cfb80 100644
--- a/IPython/html/static/services/sessions/js/session.js
+++ b/IPython/html/static/services/sessions/js/session.js
@@ -54,7 +54,7 @@ define([
console.log('Session: ' + evt.type + ' (' + that.id + ')');
};
- this.events.on('kernel_started.Session', record_status);
+ this.events.on('kernel_created.Session', record_status);
this.events.on('kernel_dead.Session', record_status);
this.events.on('status_killed.Session', record_status);
};
@@ -98,8 +98,8 @@ define([
var kernel_service_url = utils.url_path_join(that.base_url, "api/kernels");
that.kernel = new kernel.Kernel(kernel_service_url, that.ws_url, that.notebook, that.kernel_model.name);
}
- that.events.trigger('kernel_started.Session', {session: that, kernel: that.kernel});
- that.kernel._kernel_started(data.kernel);
+ that.events.trigger('kernel_created.Session', {session: that, kernel: that.kernel});
+ that.kernel._kernel_created(data.kernel);
if (success) {
success(data, status, xhr);
}
diff --git a/IPython/html/tests/services/kernel.js b/IPython/html/tests/services/kernel.js
index f11296a4a..b5916f94a 100644
--- a/IPython/html/tests/services/kernel.js
+++ b/IPython/html/tests/services/kernel.js
@@ -195,15 +195,10 @@ casper.notebook_test(function () {
'kill/start',
[
'status_killed.Kernel',
- 'kernel_started.Kernel',
+ 'kernel_created.Kernel',
'status_connected.Kernel',
- // technically we should get this message, but sometimes the kernel
- // finishes starting before we connect to it so then we don't receive
- // this message
- //
- //'status_starting.Kernel',
- 'status_busy.Kernel',
- 'status_idle.Kernel'
+ 'status_starting.Kernel',
+ 'status_ready.Kernel'
],
function () {
this.thenEvaluate(function () {
@@ -242,15 +237,10 @@ casper.notebook_test(function () {
'restart',
[
'status_restarting.Kernel',
- 'kernel_started.Kernel',
+ 'kernel_created.Kernel',
'status_connected.Kernel',
- // technically we should get this message, but sometimes the kernel
- // finishes starting before we connect to it so then we don't receive
- // this message
- //
- //'status_starting.Kernel',
- 'status_busy.Kernel',
- 'status_idle.Kernel'
+ 'status_starting.Kernel',
+ 'status_ready.Kernel'
],
function () {
this.thenEvaluate(function () {
diff --git a/IPython/html/tests/services/session.js b/IPython/html/tests/services/session.js
index 269c60689..24bcfd633 100644
--- a/IPython/html/tests/services/session.js
+++ b/IPython/html/tests/services/session.js
@@ -102,15 +102,10 @@ casper.notebook_test(function () {
this.event_test(
'start_session',
[
- 'kernel_started.Session',
+ 'kernel_created.Session',
'status_connected.Kernel',
- // technically we should get this message, but sometimes the kernel
- // finishes starting before we connect to it so then we don't receive
- // this message
- //
- //'status_starting.Kernel',
- 'status_busy.Kernel',
- 'status_idle.Kernel'
+ 'status_starting.Kernel',
+ 'status_ready.Kernel'
],
function () {
this.thenEvaluate(function () {
@@ -137,15 +132,10 @@ casper.notebook_test(function () {
'restart_session',
[
'status_killed.Session',
- 'kernel_started.Session',
+ 'kernel_created.Session',
'status_connected.Kernel',
- // technically we should get this message, but sometimes the kernel
- // finishes starting before we connect to it so then we don't receive
- // this message
- //
- //'status_starting.Kernel',
- 'status_busy.Kernel',
- 'status_idle.Kernel'
+ 'status_starting.Kernel',
+ 'status_ready.Kernel'
],
function () {
this.thenEvaluate(function () {