diff --git a/IPython/html/static/services/sessions/js/session.js b/IPython/html/static/services/sessions/js/session.js
index 9ee4bf8..ffbd296 100644
--- a/IPython/html/static/services/sessions/js/session.js
+++ b/IPython/html/static/services/sessions/js/session.js
@@ -11,11 +11,12 @@ define([
var Session = function (options) {
this.id = null;
- this.notebook = {
+ this.notebook_model = {
name: options.notebook_name,
path: options.notebook_path
};
- this.kernel = {
+ this.kernel_model = {
+ id: null,
name: options.kernel_name
};
@@ -23,7 +24,8 @@ define([
this.ws_url = options.ws_url;
this.sessions_url = utils.url_join_encode(this.base_url, 'api/sessions');
- this.notebook_obj = options.notebook;
+ this.notebook = options.notebook;
+ this.kernel = null;
this.events = options.events;
};
@@ -48,7 +50,9 @@ define([
var that = this;
var on_success = function (data, status, xhr) {
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_obj, that.kernel_name);
+ that.kernel = new kernel.Kernel(
+ kernel_service_url, that.ws_url, that.notebook,
+ that.kernel_model.id, that.kernel_model.name);
that.kernel._kernel_started(data.kernel);
if (success) {
success(data, status, xhr);
@@ -91,9 +95,9 @@ define([
* PATCH /api/sessions/[:session_id]
*/
Session.prototype.change = function (notebook_name, notebook_path, kernel_name, success, error) {
- this.notebook.name = notebook_name;
- this.notebook.path = notebook_path;
- this.kernel.name = kernel_name;
+ this.notebook_model.name = notebook_name;
+ this.notebook_model.path = notebook_path;
+ this.kernel_model.name = kernel_name;
var url = utils.url_join_encode(this.sessions_url, this.id);
$.ajax(url, {
@@ -108,17 +112,19 @@ define([
};
Session.prototype.rename_notebook = function (name, path, success, error) {
- this.change(name, path, this.kernel.name, success, error);
+ this.change(name, path, this.kernel_model.name, success, error);
};
/**
* DELETE /api/sessions/[:session_id]
*/
- Session.prototype.kill = function (success, error) {
- if (this.kernel) {
- this.kernel.running = false;
- this.kernel.stop_channels();
- }
+ Session.prototype.delete = function (success, error) {
+ var that = this;
+ var on_success = function (data, status, xhr) {
+ if (that.kernel) {
+ that.kernel._kernel_dead();
+ }
+ };
var url = utils.url_join_encode(this.sessions_url, this.id);
$.ajax(url, {
@@ -126,26 +132,29 @@ define([
cache: false,
type: "DELETE",
dataType: "json",
- success: this._on_success(success),
+ success: this._on_success(on_success),
error: this._on_error(error)
});
};
Session.prototype._get_model = function () {
return {
- notebook: this.notebook,
- kernel: this.kernel
+ notebook: this.notebook_model,
+ kernel: this.kernel_model
};
};
Session.prototype._update_model = function (data) {
- this.id = data.id;
- if (data.notebook) {
- this.notebook.name = data.notebook.name;
- this.notebook.path = data.notebook.path;
+ if (data && data.id) {
+ this.id = data.id;
+ }
+ if (data && data.notebook) {
+ this.notebook_model.name = data.notebook.name;
+ this.notebook_model.path = data.notebook.path;
}
- if (data.kernel) {
- this.kernel.name = data.kernel.name;
+ if (data && data.kernel) {
+ this.kernel_model.name = data.kernel.name;
+ this.kernel_model.id = data.kernel.id;
}
};