summaryrefslogtreecommitdiff
path: root/app/assets/javascripts/notebook/cells
diff options
context:
space:
mode:
authorROSPARS Benoit <benoit.rospars@inria.fr>2019-03-27 13:03:30 +0100
committerROSPARS Benoit <benoit.rospars@inria.fr>2019-03-27 16:53:25 +0100
commitf620c69acc12074128c3f2f50e4a26f9d3c2df1c (patch)
treec3d886d5fc57dcac5d9fec6d0996ca29e2ec45bd /app/assets/javascripts/notebook/cells
parent0610bb091766d3bb935fc10898dd66bc6f76b1c5 (diff)
downloadgitlab-ce-f620c69acc12074128c3f2f50e4a26f9d3c2df1c.tar.gz
Fix jupyter rendering bug that ended in an infinite loop
Diffstat (limited to 'app/assets/javascripts/notebook/cells')
-rw-r--r--app/assets/javascripts/notebook/cells/output/index.vue29
1 files changed, 15 insertions, 14 deletions
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)"