##// END OF EJS Templates
Merge pull request #4646 from ellisonbg/output-js...
Matthias Bussonnier -
r13799:3fc99a10 merge
parent child Browse files
Show More
@@ -371,18 +371,16 b' var IPython = (function (IPython) {'
371 371 }
372 372
373 373
374 OutputArea.prototype._append_javascript_error = function (err, container) {
374 OutputArea.prototype._append_javascript_error = function (err, element) {
375 375 // display a message when a javascript error occurs in display output
376 376 var msg = "Javascript error adding output!"
377 console.log(msg, err);
378 if ( container === undefined ) return;
379 container.append(
377 if ( element === undefined ) return;
378 element.append(
380 379 $('<div/>').html(msg + "<br/>" +
381 380 err.toString() +
382 381 '<br/>See your browser Javascript console for more details.'
383 382 ).addClass('js-error')
384 383 );
385 container.show();
386 384 };
387 385
388 386 OutputArea.prototype._safe_append = function (toinsert) {
@@ -394,7 +392,13 b' var IPython = (function (IPython) {'
394 392 this.element.append(toinsert);
395 393 } catch(err) {
396 394 console.log(err);
397 this._append_javascript_error(err, this.element);
395 // Create an actual output_area and output_subarea, which creates
396 // the prompt area and the proper indentation.
397 var toinsert = this.create_output_area();
398 var subarea = $('<div/>').addClass('output_subarea');
399 toinsert.append(subarea);
400 this._append_javascript_error(err, subarea);
401 this.element.append(toinsert);
398 402 }
399 403 };
400 404
@@ -512,16 +516,13 b' var IPython = (function (IPython) {'
512 516
513 517 OutputArea.prototype.append_javascript = function (js, md, container) {
514 518 // We just eval the JS code, element appears in the local scope.
515 var element = this.create_output_subarea(md, "");
519 var element = this.create_output_subarea(md, "output_javascript");
516 520 container.append(element);
517 // Div for js shouldn't be drawn, as it will add empty height to the area.
518 container.hide();
519 // If the Javascript appends content to `element` that should be drawn, then
520 // it must also call `container.show()`.
521 521 try {
522 522 eval(js);
523 523 } catch(err) {
524 this._append_javascript_error(err, container);
524 console.log(err);
525 this._append_javascript_error(err, element);
525 526 }
526 527 };
527 528
@@ -29,3 +29,11 b' div.inner_cell {'
29 29 .vbox();
30 30 .box-flex1();
31 31 }
32
33 /* This is needed so that empty prompt areas can collapse to zero height when there
34 is no content in the output_subarea and the prompt. The main purpose of this is
35 to make sure that empty JavaScript output_subareas have no height. */
36 div.prompt:empty {
37 padding-top: 0;
38 padding-bottom: 0;
39 }
@@ -127,6 +127,11 b' div.output_png {'
127 127 div.output_jpeg {
128 128 }
129 129
130 /* Empty output_javascript divs should have no height */
131 div.output_javascript:empty {
132 padding: 0;
133 }
134
130 135 .js-error {
131 136 color: darkred;
132 137 }
@@ -57,6 +57,7 b' input.engine_num_input{height:20px;margin-bottom:2px;padding-top:0;padding-botto'
57 57 div.cell{border:1px solid transparent;display:-webkit-box;-webkit-box-orient:vertical;-webkit-box-align:stretch;display:-moz-box;-moz-box-orient:vertical;-moz-box-align:stretch;display:box;box-orient:vertical;box-align:stretch;width:100%;padding:5px 5px 5px 0px;margin:0px;outline:none;}div.cell.selected{border-radius:4px;border:thin #ababab solid;}
58 58 div.prompt{min-width:11ex;padding:0.4em;margin:0px;font-family:monospace;text-align:right;line-height:1.231em;}
59 59 div.inner_cell{display:-webkit-box;-webkit-box-orient:vertical;-webkit-box-align:stretch;display:-moz-box;-moz-box-orient:vertical;-moz-box-align:stretch;display:box;box-orient:vertical;box-align:stretch;width:100%;-webkit-box-flex:1;-moz-box-flex:1;box-flex:1;}
60 div.prompt:empty{padding-top:0;padding-bottom:0;}
60 61 div.input{page-break-inside:avoid;display:-webkit-box;-webkit-box-orient:horizontal;-webkit-box-align:stretch;display:-moz-box;-moz-box-orient:horizontal;-moz-box-align:stretch;display:box;box-orient:horizontal;box-align:stretch;}
61 62 div.input_area{border:1px solid #cfcfcf;border-radius:4px;background:#f7f7f7;}
62 63 div.input_prompt{color:navy;border-top:1px solid transparent;}
@@ -102,6 +103,7 b' div.output_subarea{padding:0.4em 0.4em 0em 0.4em;-webkit-box-flex:1;-moz-box-fle'
102 103 div.output_text{text-align:left;color:#000000;font-family:monospace;line-height:1.231em;}
103 104 div.output_stderr{background:#fdd;}
104 105 div.output_latex{text-align:left;}
106 div.output_javascript:empty{padding:0;}
105 107 .js-error{color:darkred;}
106 108 div.raw_input{padding-top:0px;padding-bottom:0px;height:1em;line-height:1em;font-family:monospace;}
107 109 span.input_prompt{font-family:inherit;}
@@ -1438,6 +1438,7 b' input.engine_num_input{height:20px;margin-bottom:2px;padding-top:0;padding-botto'
1438 1438 div.cell{border:1px solid transparent;display:-webkit-box;-webkit-box-orient:vertical;-webkit-box-align:stretch;display:-moz-box;-moz-box-orient:vertical;-moz-box-align:stretch;display:box;box-orient:vertical;box-align:stretch;width:100%;padding:5px 5px 5px 0px;margin:0px;outline:none;}div.cell.selected{border-radius:4px;border:thin #ababab solid;}
1439 1439 div.prompt{min-width:11ex;padding:0.4em;margin:0px;font-family:monospace;text-align:right;line-height:1.231em;}
1440 1440 div.inner_cell{display:-webkit-box;-webkit-box-orient:vertical;-webkit-box-align:stretch;display:-moz-box;-moz-box-orient:vertical;-moz-box-align:stretch;display:box;box-orient:vertical;box-align:stretch;width:100%;-webkit-box-flex:1;-moz-box-flex:1;box-flex:1;}
1441 div.prompt:empty{padding-top:0;padding-bottom:0;}
1441 1442 div.input{page-break-inside:avoid;display:-webkit-box;-webkit-box-orient:horizontal;-webkit-box-align:stretch;display:-moz-box;-moz-box-orient:horizontal;-moz-box-align:stretch;display:box;box-orient:horizontal;box-align:stretch;}
1442 1443 div.input_area{border:1px solid #cfcfcf;border-radius:4px;background:#f7f7f7;}
1443 1444 div.input_prompt{color:navy;border-top:1px solid transparent;}
@@ -1483,6 +1484,7 b' div.output_subarea{padding:0.4em 0.4em 0em 0.4em;-webkit-box-flex:1;-moz-box-fle'
1483 1484 div.output_text{text-align:left;color:#000000;font-family:monospace;line-height:1.231em;}
1484 1485 div.output_stderr{background:#fdd;}
1485 1486 div.output_latex{text-align:left;}
1487 div.output_javascript:empty{padding:0;}
1486 1488 .js-error{color:darkred;}
1487 1489 div.raw_input{padding-top:0px;padding-bottom:0px;height:1em;line-height:1em;font-family:monospace;}
1488 1490 span.input_prompt{font-family:inherit;}
General Comments 0
You need to be logged in to leave comments. Login now