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 2018/04/25 14:21:38 UTC

[airavata-django-portal] branch master updated: AIRAVATA-2763 Textarea input editor

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

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


The following commit(s) were added to refs/heads/master by this push:
     new 55e5a85  AIRAVATA-2763 Textarea input editor
55e5a85 is described below

commit 55e5a85c5f8d3636edeba4df93f0636cd84968c0
Author: Marcus Christie <ma...@iu.edu>
AuthorDate: Wed Apr 25 10:21:15 2018 -0400

    AIRAVATA-2763 Textarea input editor
---
 .../js/models/InputDataObjectType.js               | 11 ++++++-
 .../js/components/experiment/ExperimentEditor.vue  |  6 ++--
 .../input-editors/TextareaInputEditor.vue          | 34 ++++++++++++++++++++++
 3 files changed, 48 insertions(+), 3 deletions(-)

diff --git a/django_airavata/apps/api/static/django_airavata_api/js/models/InputDataObjectType.js b/django_airavata/apps/api/static/django_airavata_api/js/models/InputDataObjectType.js
index c403d1d..5b41891 100644
--- a/django_airavata/apps/api/static/django_airavata_api/js/models/InputDataObjectType.js
+++ b/django_airavata/apps/api/static/django_airavata_api/js/models/InputDataObjectType.js
@@ -26,7 +26,7 @@ export default class InputDataObjectType extends BaseModel {
         super(FIELDS, data);
     }
 
-    get uiComponentId() {
+    get editorUIComponentId() {
         const metadata = this._getMetadata();
         if (metadata && 'editor' in metadata && 'ui-component-id' in metadata['editor']) {
             return metadata['editor']['ui-component-id'];
@@ -35,6 +35,15 @@ export default class InputDataObjectType extends BaseModel {
         }
     }
 
+    get editorConfig() {
+        const metadata = this._getMetadata();
+        if (metadata && 'editor' in metadata && 'config' in metadata['editor']) {
+            return metadata['editor']['config'];
+        } else {
+            return {};
+        }
+    }
+
     _getMetadata() {
         // metaData could really be anything, here we expect it to be an object
         // so safely check if it is first
diff --git a/django_airavata/apps/workspace/static/django_airavata_workspace/js/components/experiment/ExperimentEditor.vue b/django_airavata/apps/workspace/static/django_airavata_workspace/js/components/experiment/ExperimentEditor.vue
index dd201b2..564f562 100644
--- a/django_airavata/apps/workspace/static/django_airavata_workspace/js/components/experiment/ExperimentEditor.vue
+++ b/django_airavata/apps/workspace/static/django_airavata_workspace/js/components/experiment/ExperimentEditor.vue
@@ -101,6 +101,7 @@ import ComputationalResourceSchedulingEditor from './ComputationalResourceSchedu
 import GroupResourceProfileSelector from './GroupResourceProfileSelector.vue'
 import StringInputEditor from './input-editors/StringInputEditor.vue'
 import FileInputEditor from './input-editors/FileInputEditor.vue'
+import TextareaInputEditor from './input-editors/TextareaInputEditor.vue'
 import {models, services, utils as apiUtils} from 'django-airavata-api'
 import {utils} from 'django-airavata-common-ui'
 
@@ -132,6 +133,7 @@ export default {
         GroupResourceProfileSelector,
         StringInputEditor,
         FileInputEditor,
+        TextareaInputEditor,
     },
     mounted: function () {
         services.ProjectService.listAll()
@@ -206,8 +208,8 @@ export default {
         },
         getInputEditorComponentName: function(experimentInput) {
             // If input specifices an editor UI component, use that
-            if (experimentInput.uiComponentId) {
-                return experimentInput.uiComponentId;
+            if (experimentInput.editorUIComponentId) {
+                return experimentInput.editorUIComponentId;
             }
             // Default UI components based on input type
             if (experimentInput.type === models.DataType.STRING) {
diff --git a/django_airavata/apps/workspace/static/django_airavata_workspace/js/components/experiment/input-editors/TextareaInputEditor.vue b/django_airavata/apps/workspace/static/django_airavata_workspace/js/components/experiment/input-editors/TextareaInputEditor.vue
new file mode 100644
index 0000000..f388ed5
--- /dev/null
+++ b/django_airavata/apps/workspace/static/django_airavata_workspace/js/components/experiment/input-editors/TextareaInputEditor.vue
@@ -0,0 +1,34 @@
+<template>
+    <b-form-group :label="experimentInput.name" :label-for="experimentInput.name"
+        :feedback="validationFeedback" :state="validationState">
+        <b-form-textarea :id="experimentInput.name" v-model="data"
+            :rows="rows"
+            :placeholder="experimentInput.userFriendlyDescription"
+            :state="validationState"
+            @input="valueChanged"/>
+    </b-form-group>
+</template>
+
+<script>
+import InputEditorMixin from './InputEditorMixin'
+
+const DEFAULT_ROWS = 3;
+
+export default {
+    name: 'textarea-input-editor',
+    mixins: [InputEditorMixin],
+    props: {
+        value: {
+            type: String,
+            required: true,
+        },
+    },
+    computed: {
+        rows: function() {
+            return 'rows' in this.experimentInput.editorConfig
+                ? this.experimentInput.editorConfig['rows']
+                : DEFAULT_ROWS;
+        }
+    }
+}
+</script>
\ No newline at end of file

-- 
To stop receiving notification emails like this one, please contact
machristie@apache.org.