diff --git a/IPython/html/static/services/kernels/js/kernel.js b/IPython/html/static/services/kernels/js/kernel.js index 2ae0fcb..020835e 100644 --- a/IPython/html/static/services/kernels/js/kernel.js +++ b/IPython/html/static/services/kernels/js/kernel.js @@ -109,24 +109,40 @@ define([ /** * POST /api/kernels + * + * In general this shouldn't be used -- the kernel should be + * started through the session API. If you use this function and + * are also using the session API then your session and kernel + * WILL be out of sync! */ - Kernel.prototype.start = function (success, error) { + Kernel.prototype.start = function (params, success, error) { + var url = this.kernel_service_url; + var qs = $.param(params || {}); // query string for sage math stuff + if (qs !== "") { + url = url + "?" + qs; + } + var that = this; var on_success = function (data, status, xhr) { + that.id = data.id; + that.kernel_url = utils.url_join_encode(that.kernel_service_url, that.id); that._kernel_started(data); if (success) { success(data, status, xhr); } }; - $.ajax(this.kernel_service_url, { + $.ajax(url, { processData: false, cache: false, type: "POST", + data: JSON.stringify({name: this.name}), dataType: "json", success: this._on_success(on_success), error: this._on_error(error) }); + + return url; }; /**