##// END OF EJS Templates
Preserve nbformat_minor from the future...
Min RK -
Show More
@@ -636,7 +636,7 b' define(['
636 636 } else {
637 637 data.metadata = this.metadata;
638 638 }
639 this.element.find('.inner_cell').text("Unrecognized cell type: " + data.cell_type);
639 this.element.find('.inner_cell').find("a").text("Unrecognized cell type: " + data.cell_type);
640 640 };
641 641
642 642 UnrecognizedCell.prototype.create_element = function () {
@@ -647,10 +647,23 b' define(['
647 647 var prompt = $('<div/>').addClass('prompt input_prompt');
648 648 cell.append(prompt);
649 649 var inner_cell = $('<div/>').addClass('inner_cell');
650 inner_cell.text("Unrecognized cell type");
650 inner_cell.append(
651 $("<a>")
652 .attr("href", "#")
653 .text("Unrecognized cell type")
654 );
651 655 cell.append(inner_cell);
652 656 this.element = cell;
653 657 };
658
659 UnrecognizedCell.prototype.bind_events = function () {
660 Cell.prototype.bind_events.apply(this, arguments);
661 var cell = this;
662
663 this.element.find('.inner_cell').find("a").click(function () {
664 cell.events.trigger('unrecognized_cell.Cell', {cell: cell})
665 });
666 };
654 667
655 668 // Backwards compatibility.
656 669 IPython.Cell = Cell;
@@ -147,7 +147,7 b' define(['
147 147 this.minimum_autosave_interval = 120000;
148 148 this.notebook_name_blacklist_re = /[\/\\:]/;
149 149 this.nbformat = 4; // Increment this when changing the nbformat
150 this.nbformat_minor = 0; // Increment this when changing the nbformat
150 this.nbformat_minor = this.current_nbformat_minor = 0; // Increment this when changing the nbformat
151 151 this.codemirror_mode = 'ipython';
152 152 this.create_elements();
153 153 this.bind_events();
@@ -207,6 +207,14 b' define(['
207 207 that.dirty = true;
208 208 });
209 209
210 this.events.on('unrecognized_cell.Cell', function () {
211 that.warn_nbformat_minor();
212 });
213
214 this.events.on('unrecognized_output.OutputArea', function () {
215 that.warn_nbformat_minor();
216 });
217
210 218 this.events.on('set_dirty.Notebook', function (event, data) {
211 219 that.dirty = data.value;
212 220 });
@@ -300,6 +308,28 b' define(['
300 308 return null;
301 309 };
302 310 };
311
312 Notebook.prototype.warn_nbformat_minor = function (event) {
313 // trigger a warning dialog about missing functionality from newer minor versions
314 var v = 'v' + this.nbformat + '.';
315 var orig_vs = v + this.nbformat_minor;
316 var this_vs = v + this.current_nbformat_minor;
317 var msg = "This notebook is version " + orig_vs + ", but we only fully support up to " +
318 this_vs + ". You can still work with this notebook, but cell and output types " +
319 "introduced in later notebook versions will not be available.";
320
321 dialog.modal({
322 notebook: this,
323 keyboard_manager: this.keyboard_manager,
324 title : "Newer Notebook",
325 body : msg,
326 buttons : {
327 OK : {
328 "class" : "btn-danger"
329 }
330 }
331 });
332 }
303 333
304 334 /**
305 335 * Set the dirty flag, and trigger the set_dirty.Notebook event
@@ -2234,26 +2264,8 b' define(['
2234 2264 }
2235 2265 }
2236 2266 });
2237 } else if (orig_nbformat_minor !== undefined && nbmodel.nbformat_minor < orig_nbformat_minor) {
2238 var that = this;
2239 var orig_vs = 'v' + nbmodel.nbformat + '.' + orig_nbformat_minor;
2240 var this_vs = 'v' + nbmodel.nbformat + '.' + this.nbformat_minor;
2241 msg = "This notebook is version " + orig_vs + ", but we only fully support up to " +
2242 this_vs + ". You can still work with this notebook, but some features " +
2243 "introduced in later notebook versions may not be available.";
2244
2245 dialog.modal({
2246 notebook: this,
2247 keyboard_manager: this.keyboard_manager,
2248 title : "Newer Notebook",
2249 body : msg,
2250 buttons : {
2251 OK : {
2252 class : "btn-danger"
2253 }
2254 }
2255 });
2256
2267 } else if (this.nbformat_minor < nbmodel.nbformat_minor) {
2268 this.nbformat_minor = nbmodel.nbformat_minor;
2257 2269 }
2258 2270
2259 2271 // Create the session after the notebook is completely loaded to prevent
@@ -271,7 +271,6 b' define(['
271 271 }
272 272
273 273 var record_output = true;
274 console.log("appending", json);
275 274 switch(json.output_type) {
276 275 case 'execute_result':
277 276 json = this.validate_mimebundle(json);
@@ -490,10 +489,18 b' define(['
490 489
491 490
492 491 OutputArea.prototype.append_unrecognized = function (json) {
492 var that = this;
493 493 var toinsert = this.create_output_area();
494 494 var subarea = $('<div/>').addClass('output_subarea output_unrecognized');
495 495 toinsert.append(subarea);
496 subarea.text("Unrecognized output: " + json.output_type);
496 subarea.append(
497 $("<a>")
498 .attr("href", "#")
499 .text("Unrecognized output: " + json.output_type)
500 .click(function () {
501 that.events.trigger('unrecognized_output.OutputArea', {output: json})
502 })
503 );
497 504 this._safe_append(toinsert);
498 505 };
499 506
@@ -74,6 +74,16 b' div.unrecognized_cell {'
74 74 color: red;
75 75 border: 1px solid @light_border_color;
76 76 background: darken(@cell_background, 5%);
77 // remove decoration from link
78 a {
79 color: inherit;
80 text-decoration: none;
81
82 &:hover {
83 color: inherit;
84 text-decoration: none;
85 }
86 }
77 87 }
78 88 }
79 89 @media (max-width: 480px) {
@@ -177,4 +177,14 b' div.output_unrecognized {'
177 177 padding: 5px;
178 178 font-weight: bold;
179 179 color: red;
180 // remove decoration from link
181 a {
182 color: inherit;
183 text-decoration: none;
184
185 &:hover {
186 color: inherit;
187 text-decoration: none;
188 }
189 }
180 190 } No newline at end of file
@@ -444,6 +444,14 b' div.unrecognized_cell .inner_cell {'
444 444 border: 1px solid #cfcfcf;
445 445 background: #eaeaea;
446 446 }
447 div.unrecognized_cell .inner_cell a {
448 color: inherit;
449 text-decoration: none;
450 }
451 div.unrecognized_cell .inner_cell a:hover {
452 color: inherit;
453 text-decoration: none;
454 }
447 455 @media (max-width: 480px) {
448 456 div.unrecognized_cell > div.prompt {
449 457 display: none;
@@ -919,11 +927,18 b' p.p-space {'
919 927 margin-bottom: 10px;
920 928 }
921 929 div.output_unrecognized {
922 border-radius: 4px;
923 930 padding: 5px;
924 931 font-weight: bold;
925 932 color: red;
926 933 }
934 div.output_unrecognized a {
935 color: inherit;
936 text-decoration: none;
937 }
938 div.output_unrecognized a:hover {
939 color: inherit;
940 text-decoration: none;
941 }
927 942 .rendered_html {
928 943 color: #000000;
929 944 /* any extras will just be numbers: */
@@ -8313,6 +8313,14 b' div.unrecognized_cell .inner_cell {'
8313 8313 border: 1px solid #cfcfcf;
8314 8314 background: #eaeaea;
8315 8315 }
8316 div.unrecognized_cell .inner_cell a {
8317 color: inherit;
8318 text-decoration: none;
8319 }
8320 div.unrecognized_cell .inner_cell a:hover {
8321 color: inherit;
8322 text-decoration: none;
8323 }
8316 8324 @media (max-width: 480px) {
8317 8325 div.unrecognized_cell > div.prompt {
8318 8326 display: none;
@@ -8788,11 +8796,18 b' p.p-space {'
8788 8796 margin-bottom: 10px;
8789 8797 }
8790 8798 div.output_unrecognized {
8791 border-radius: 4px;
8792 8799 padding: 5px;
8793 8800 font-weight: bold;
8794 8801 color: red;
8795 8802 }
8803 div.output_unrecognized a {
8804 color: inherit;
8805 text-decoration: none;
8806 }
8807 div.output_unrecognized a:hover {
8808 color: inherit;
8809 text-decoration: none;
8810 }
8796 8811 .rendered_html {
8797 8812 color: #000000;
8798 8813 /* any extras will just be numbers: */
General Comments 0
You need to be logged in to leave comments. Login now