From f620c69acc12074128c3f2f50e4a26f9d3c2df1c Mon Sep 17 00:00:00 2001 From: ROSPARS Benoit Date: Wed, 27 Mar 2019 13:03:30 +0100 Subject: Fix jupyter rendering bug that ended in an infinite loop --- .../javascripts/notebook/cells/output/index.vue | 29 +++++++++++----------- .../unreleased/59079-fix-jupyter-render-loop.yml | 5 ++++ 2 files changed, 20 insertions(+), 14 deletions(-) create mode 100644 changelogs/unreleased/59079-fix-jupyter-render-loop.yml diff --git a/app/assets/javascripts/notebook/cells/output/index.vue b/app/assets/javascripts/notebook/cells/output/index.vue index c5ae7e7ee10..b59ddd0d57a 100644 --- a/app/assets/javascripts/notebook/cells/output/index.vue +++ b/app/assets/javascripts/notebook/cells/output/index.vue @@ -20,12 +20,20 @@ export default { required: true, }, }, - data() { - return { - outputType: '', - }; - }, methods: { + outputType(output) { + if (output.text) { + return 'text/plain'; + } else if (output.data['image/png']) { + return 'image/png'; + } else if (output.data['text/html']) { + return 'text/html'; + } else if (output.data['image/svg+xml']) { + return 'image/svg+xml'; + } + + return 'text/plain'; + }, dataForType(output, type) { let data = output.data[type]; @@ -39,20 +47,13 @@ export default { if (output.text) { return CodeOutput; } else if (output.data['image/png']) { - this.outputType = 'image/png'; - return ImageOutput; } else if (output.data['text/html']) { - this.outputType = 'text/html'; - return HtmlOutput; } else if (output.data['image/svg+xml']) { - this.outputType = 'image/svg+xml'; - return HtmlOutput; } - this.outputType = 'text/plain'; return CodeOutput; }, rawCode(output) { @@ -60,7 +61,7 @@ export default { return output.text.join(''); } - return this.dataForType(output, this.outputType); + return this.dataForType(output, this.outputType(output)); }, }, }; @@ -73,7 +74,7 @@ export default { v-for="(output, index) in outputs" :key="index" type="output" - :output-type="outputType" + :output-type="outputType(output)" :count="count" :index="index" :raw-code="rawCode(output)" diff --git a/changelogs/unreleased/59079-fix-jupyter-render-loop.yml b/changelogs/unreleased/59079-fix-jupyter-render-loop.yml new file mode 100644 index 00000000000..29264b33dfa --- /dev/null +++ b/changelogs/unreleased/59079-fix-jupyter-render-loop.yml @@ -0,0 +1,5 @@ +--- +title: Fix jupyter rendering bug that ended in an infinite loop +merge_request: 26656 +author: ROSPARS Benoit +type: fixed -- cgit v1.2.1