session.js
118 lines
| 3.4 KiB
| application/javascript
|
JavascriptLexer
Zachary Sailer
|
r12987 | //---------------------------------------------------------------------------- | ||
MinRK
|
r13103 | // Copyright (C) 2013 The IPython Development Team | ||
Zachary Sailer
|
r12987 | // | ||
// Distributed under the terms of the BSD License. The full license is in | ||||
// the file COPYING, distributed as part of this software. | ||||
//---------------------------------------------------------------------------- | ||||
//============================================================================ | ||||
// Notebook | ||||
//============================================================================ | ||||
var IPython = (function (IPython) { | ||||
MinRK
|
r13103 | "use strict"; | ||
Zachary Sailer
|
r12987 | |||
MinRK
|
r13103 | var utils = IPython.utils; | ||
var Session = function(notebook_name, notebook_path, notebook){ | ||||
Zachary Sailer
|
r12987 | this.kernel = null; | ||
Zachary Sailer
|
r13060 | this.id = null; | ||
this.name = notebook_name; | ||||
this.path = notebook_path; | ||||
MinRK
|
r13103 | this.notebook = notebook; | ||
this._baseProjectUrl = notebook.baseProjectUrl(); | ||||
Zachary Sailer
|
r12987 | }; | ||
MinRK
|
r13133 | Session.prototype.start = function(callback) { | ||
MinRK
|
r13103 | var that = this; | ||
var model = { | ||||
notebook : { | ||||
name : this.name, | ||||
path : this.path | ||||
} | ||||
}; | ||||
Zachary Sailer
|
r13057 | var settings = { | ||
processData : false, | ||||
cache : false, | ||||
type : "POST", | ||||
MinRK
|
r13103 | data: JSON.stringify(model), | ||
Zachary Sailer
|
r13057 | dataType : "json", | ||
MinRK
|
r13133 | success : function (data, status, xhr) { | ||
that._handle_start_success(data); | ||||
if (callback) { | ||||
callback(data, status, xhr); | ||||
} | ||||
}, | ||||
Zachary Sailer
|
r13057 | }; | ||
MinRK
|
r13693 | var url = utils.url_join_encode(this._baseProjectUrl, 'api/sessions'); | ||
Zachary Sailer
|
r13057 | $.ajax(url, settings); | ||
Zachary Sailer
|
r12987 | }; | ||
MinRK
|
r13133 | Session.prototype.rename_notebook = function (name, path) { | ||
Zachary Sailer
|
r13060 | this.name = name; | ||
this.path = path; | ||||
MinRK
|
r13103 | var model = { | ||
notebook : { | ||||
name : this.name, | ||||
path : this.path | ||||
} | ||||
}; | ||||
Zachary Sailer
|
r12997 | var settings = { | ||
processData : false, | ||||
cache : false, | ||||
type : "PATCH", | ||||
MinRK
|
r13103 | data: JSON.stringify(model), | ||
Zachary Sailer
|
r12997 | dataType : "json", | ||
}; | ||||
MinRK
|
r13693 | var url = utils.url_join_encode(this._baseProjectUrl, 'api/sessions', this.id); | ||
Zachary Sailer
|
r12997 | $.ajax(url, settings); | ||
MinRK
|
r13103 | }; | ||
Zachary Sailer
|
r12997 | |||
MinRK
|
r13133 | Session.prototype.delete = function() { | ||
Zachary Sailer
|
r12997 | var settings = { | ||
processData : false, | ||||
cache : false, | ||||
type : "DELETE", | ||||
dataType : "json", | ||||
}; | ||||
Paul Ivanov
|
r13308 | this.kernel.running = false; | ||
MinRK
|
r13693 | var url = utils.url_join_encode(this._baseProjectUrl, 'api/sessions', this.id); | ||
Zachary Sailer
|
r12997 | $.ajax(url, settings); | ||
}; | ||||
Zachary Sailer
|
r12987 | // Kernel related things | ||
/** | ||||
MinRK
|
r13133 | * Create the Kernel object associated with this Session. | ||
Zachary Sailer
|
r12987 | * | ||
MinRK
|
r13133 | * @method _handle_start_success | ||
Zachary Sailer
|
r12987 | */ | ||
MinRK
|
r13133 | Session.prototype._handle_start_success = function (data, status, xhr) { | ||
this.id = data.id; | ||||
MinRK
|
r13103 | var base_url = utils.url_path_join($('body').data('baseKernelUrl'), "api/kernels"); | ||
MinRK
|
r13133 | this.kernel = new IPython.Kernel(base_url); | ||
this.kernel._kernel_started(data.kernel); | ||||
Zachary Sailer
|
r12987 | }; | ||
/** | ||||
* Prompt the user to restart the IPython kernel. | ||||
* | ||||
* @method restart_kernel | ||||
*/ | ||||
Session.prototype.restart_kernel = function () { | ||||
Zachary Sailer
|
r12994 | this.kernel.restart(); | ||
Zachary Sailer
|
r12987 | }; | ||
Zachary Sailer
|
r12994 | Session.prototype.interrupt_kernel = function() { | ||
this.kernel.interrupt(); | ||||
Zachary Sailer
|
r12995 | }; | ||
Session.prototype.kill_kernel = function() { | ||||
MinRK
|
r13103 | this.kernel.kill(); | ||
Zachary Sailer
|
r12995 | }; | ||
Zachary Sailer
|
r12994 | |||
Zachary Sailer
|
r12987 | IPython.Session = Session; | ||
return IPython; | ||||
}(IPython)); | ||||