You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by ma...@apache.org on 2019/05/28 13:22:35 UTC

[airavata-django-portal] 05/06: AIRAVATA-3032 Add isInputFileUpload to DataProductSerializer

This is an automated email from the ASF dual-hosted git repository.

machristie pushed a commit to branch airavata-3016
in repository https://gitbox.apache.org/repos/asf/airavata-django-portal.git

commit 8657f9d775c8debcb579fbdfe78e9fa293011616
Author: Marcus Christie <ma...@apache.org>
AuthorDate: Mon May 27 17:34:47 2019 -0400

    AIRAVATA-3032 Add isInputFileUpload to DataProductSerializer
    
    Use isInputFileUpload to distinguish between input files that were
    uploaded from ones that are selected from user storage. This is
    then used to delete input files that were uploaded when the user no
    longer wants to use that file in an experiment.
---
 django_airavata/apps/api/serializers.py                             | 6 ++++++
 .../apps/api/static/django_airavata_api/js/models/DataProduct.js    | 1 +
 .../js/components/experiment/input-editors/FileInputEditor.vue      | 4 +++-
 3 files changed, 10 insertions(+), 1 deletion(-)

diff --git a/django_airavata/apps/api/serializers.py b/django_airavata/apps/api/serializers.py
index 4e6a0fe..91a5d6b 100644
--- a/django_airavata/apps/api/serializers.py
+++ b/django_airavata/apps/api/serializers.py
@@ -432,6 +432,7 @@ class DataProductSerializer(
     lastModifiedTime = UTCPosixTimestampDateTimeField()
     replicaLocations = DataReplicaLocationSerializer(many=True)
     downloadURL = serializers.SerializerMethodField()
+    isInputFileUpload = serializers.SerializerMethodField()
 
     def get_downloadURL(self, data_product):
         """Getter for downloadURL field."""
@@ -443,6 +444,11 @@ class DataProductSerializer(
                 urlencode({'data-product-uri': data_product.productUri}))
         return None
 
+    def get_isInputFileUpload(self, data_product):
+        """Return True if this is an uploaded input file."""
+        request = self.context['request']
+        return data_products_helper.is_input_file_upload(request, data_product)
+
 
 # TODO move this into airavata_sdk?
 class FullExperiment:
diff --git a/django_airavata/apps/api/static/django_airavata_api/js/models/DataProduct.js b/django_airavata/apps/api/static/django_airavata_api/js/models/DataProduct.js
index 1f95ce3..2634807 100644
--- a/django_airavata/apps/api/static/django_airavata_api/js/models/DataProduct.js
+++ b/django_airavata/apps/api/static/django_airavata_api/js/models/DataProduct.js
@@ -28,6 +28,7 @@ const FIELDS = [
         list: true
     },
     'downloadURL',
+    'isInputFileUpload'
 ];
 
 const FILENAME_REGEX = /[^/]+$/;
diff --git a/django_airavata/apps/workspace/static/django_airavata_workspace/js/components/experiment/input-editors/FileInputEditor.vue b/django_airavata/apps/workspace/static/django_airavata_workspace/js/components/experiment/input-editors/FileInputEditor.vue
index b37bf2a..4009866 100644
--- a/django_airavata/apps/workspace/static/django_airavata_workspace/js/components/experiment/input-editors/FileInputEditor.vue
+++ b/django_airavata/apps/workspace/static/django_airavata_workspace/js/components/experiment/input-editors/FileInputEditor.vue
@@ -10,12 +10,14 @@
         :input-file="true"
       />
       <delete-link
+        v-if="dataProduct.isInputFileUpload"
         class="ml-2"
         @delete="deleteDataProduct"
       >
-        Are you sure you want to delete input file {{ dataProduct.filename }}?
+        Are you sure you want to delete input file {{ dataProduct.productName }}?
       </delete-link>
       <b-link
+        v-else
         @click="unselect"
         class="ml-2 text-secondary"
       >