##// END OF EJS Templates
Fixed bug when linking kernel to new code cells
Zachary Sailer -
Show More
@@ -87,7 +87,6 b' class NotebookHandler(IPythonHandler):'
87 87 notebook_name, notebook_path = nbm.named_notebook_path(notebook_path)
88 88 data = jsonapi.loads(self.request.body)
89 89 model = nbm.change_notebook(data, notebook_name, notebook_path)
90 self.log.info(model)
91 90 self.finish(jsonapi.dumps(model))
92 91
93 92 @web.authenticated
@@ -60,8 +60,8 b' var IPython = (function (IPython) {'
60 60 * @param {object|undefined} [options]
61 61 * @param [options.cm_config] {object} config to pass to CodeMirror
62 62 */
63 var CodeCell = function (kernel, options) {
64 this.kernel = kernel || null;
63 var CodeCell = function (session, options) {
64 this.session = session || null;
65 65 this.code_mirror = null;
66 66 this.input_prompt_number = null;
67 67 this.collapsed = false;
@@ -232,8 +232,8 b' var IPython = (function (IPython) {'
232 232
233 233 // Kernel related calls.
234 234
235 CodeCell.prototype.set_kernel = function (kernel) {
236 this.kernel = kernel;
235 CodeCell.prototype.set_session = function (session) {
236 this.session = session;
237 237 }
238 238
239 239 /**
@@ -374,7 +374,7 b' var IPython = (function (IPython) {'
374 374 // TODO: Make killing the kernel configurable.
375 375 var kill_kernel = false;
376 376 if (kill_kernel) {
377 that.kernel.kill();
377 that.session.kill_kernel();
378 378 }
379 379 // if we are autosaving, trigger an autosave on nav-away.
380 380 // still warn, because if we don't the autosave may fail.
@@ -798,7 +798,7 b' var IPython = (function (IPython) {'
798 798
799 799 if (ncells === 0 || this.is_valid_cell_index(index) || index === ncells) {
800 800 if (type === 'code') {
801 cell = new IPython.CodeCell(this.kernel);
801 cell = new IPython.CodeCell(this.session);
802 802 cell.set_input_prompt();
803 803 } else if (type === 'markdown') {
804 804 cell = new IPython.MarkdownCell();
@@ -1393,8 +1393,24 b' var IPython = (function (IPython) {'
1393 1393 var notebook_info = this.notebookPath() + this.notebook_name;
1394 1394 this.session = new IPython.Session(notebook_info, this);
1395 1395 this.session.start();
1396 this.link_cells_to_session();
1396 1397 };
1397 1398
1399
1400 /**
1401 * Once a session is started, link the code cells to the session
1402 *
1403 */
1404 Notebook.prototype.link_cells_to_session= function(){
1405 var ncells = this.ncells();
1406 for (var i=0; i<ncells; i++) {
1407 var cell = this.get_cell(i);
1408 if (cell instanceof IPython.CodeCell) {
1409 cell.set_session(this.session);
1410 };
1411 };
1412 };
1413
1398 1414 /**
1399 1415 * Prompt the user to restart the IPython kernel.
1400 1416 *
@@ -68,15 +68,7 b' var IPython = (function (IPython) {'
68 68 var base_url = $('body').data('baseKernelUrl') + "api/kernels";
69 69 this.kernel = new IPython.Kernel(base_url, this.session_id);
70 70 // Now that the kernel has been created, tell the CodeCells about it.
71 this.kernel._kernel_started(this.kernel_content)
72 var ncells = this.notebook.ncells();
73 for (var i=0; i<ncells; i++) {
74 var cell = this.notebook.get_cell(i);
75 if (cell instanceof IPython.CodeCell) {
76 cell.set_kernel(this.kernel)
77 };
78 };
79
71 this.kernel._kernel_started(this.kernel_content);
80 72 };
81 73
82 74 /**
General Comments 0
You need to be logged in to leave comments. Login now