AIRAVATA-3557 Only display text files less than 10MB in browser
diff --git a/django_airavata/apps/workspace/static/django_airavata_workspace/js/components/experiment/output-displays/DefaultOutputDisplay.vue b/django_airavata/apps/workspace/static/django_airavata_workspace/js/components/experiment/output-displays/DefaultOutputDisplay.vue
index cf3ed8a..98bec88 100644
--- a/django_airavata/apps/workspace/static/django_airavata_workspace/js/components/experiment/output-displays/DefaultOutputDisplay.vue
+++ b/django_airavata/apps/workspace/static/django_airavata_workspace/js/components/experiment/output-displays/DefaultOutputDisplay.vue
@@ -40,6 +40,8 @@
import { models, utils } from "django-airavata-api";
import DataProductViewer from "django-airavata-common-ui/js/components/DataProductViewer.vue";
+const MAX_DISPLAY_TEXT_FILE_SIZE = 10 * 1024 * 1024; // 10 MB
+
export default {
name: "default-output-viewer",
props: {
@@ -121,15 +123,28 @@
return -1;
}
},
- },
- methods: {
- async loadIntermediateOutputText() {
- if (
+ isIntermediateOutputFileDisplayable() {
+ return (
this.intermediateOutputDataProduct &&
(this.intermediateOutputDataProduct.isText ||
this.fileMimeType === "text/plain") &&
- this.intermediateOutputDataProduct.downloadURL
- ) {
+ this.intermediateOutputDataProduct.downloadURL &&
+ this.intermediateOutputDataProduct.filesize < MAX_DISPLAY_TEXT_FILE_SIZE
+ );
+ },
+ isFinalOutputFileDisplayable() {
+ return (
+ this.dataProducts &&
+ this.dataProducts.length === 1 &&
+ (this.dataProducts[0].isText || this.fileMimeType === "text/plain") &&
+ this.dataProducts[0].downloadURL &&
+ this.dataProducts[0].filesize < MAX_DISPLAY_TEXT_FILE_SIZE
+ );
+ },
+ },
+ methods: {
+ async loadIntermediateOutputText() {
+ if (this.isIntermediateOutputFileDisplayable) {
this.intermediateOutputText = await utils.FetchUtils.get(
this.intermediateOutputDataProduct.downloadURL,
"",
@@ -140,12 +155,7 @@
}
},
async loadFinalOutputText() {
- if (
- this.dataProducts &&
- this.dataProducts.length === 1 &&
- (this.dataProducts[0].isText || this.fileMimeType === "text/plain") &&
- this.dataProducts[0].downloadURL
- ) {
+ if (this.isFinalOutputFileDisplayable) {
this.finalOutputText = await utils.FetchUtils.get(
this.dataProducts[0].downloadURL,
"",