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 17:59:06 UTC

[airavata-django-portal] 02/02: AIRAVATA-2762 Factored out InputEditorFormGroup for single/multi error messages

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

commit 9a13c521e4a1a5bacc8a8c11ecf06b3d466872d2
Author: Marcus Christie <ma...@iu.edu>
AuthorDate: Wed Apr 25 13:58:41 2018 -0400

    AIRAVATA-2762 Factored out InputEditorFormGroup for single/multi error messages
---
 .../experiment/input-editors/FileInputEditor.vue   | 10 ++++--
 .../input-editors/InputEditorFormGroup.vue         | 37 ++++++++++++++++++++++
 .../experiment/input-editors/StringInputEditor.vue | 10 ++++--
 .../input-editors/TextareaInputEditor.vue          | 18 ++++-------
 4 files changed, 58 insertions(+), 17 deletions(-)

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 34f8c4b..5d8d49b 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
@@ -1,17 +1,21 @@
 <template>
-    <b-form-group :label="experimentInput.name" :label-for="experimentInput.name"
-        :feedback="validationFeedback" :state="validationState">
+    <input-editor-form-group :label="experimentInput.name" :label-for="experimentInput.name"
+        :state="validationState" :feedback-messages="validationFeedback">
         <b-form-file :id="experimentInput.name" v-model="data"
             :placeholder="experimentInput.userFriendlyDescription"
             :state="validationState"
             @input="valueChanged"/>
-    </b-form-group>
+    </input-editor-form-group>
 </template>
 
 <script>
+import InputEditorFormGroup from './InputEditorFormGroup.vue'
 import InputEditorMixin from './InputEditorMixin'
 export default {
     name: 'file-input-editor',
     mixins: [InputEditorMixin],
+    components: {
+        InputEditorFormGroup,
+    },
 }
 </script>
diff --git a/django_airavata/apps/workspace/static/django_airavata_workspace/js/components/experiment/input-editors/InputEditorFormGroup.vue b/django_airavata/apps/workspace/static/django_airavata_workspace/js/components/experiment/input-editors/InputEditorFormGroup.vue
new file mode 100644
index 0000000..a174953
--- /dev/null
+++ b/django_airavata/apps/workspace/static/django_airavata_workspace/js/components/experiment/input-editors/InputEditorFormGroup.vue
@@ -0,0 +1,37 @@
+<template>
+    <b-form-group :label="label" :label-for="labelFor" :state="state">
+        <slot></slot>
+        <template slot="invalid-feedback">
+            <ul v-if="feedbackMessages && feedbackMessages.length > 1">
+                <li v-for="feedback in feedbackMessages">{{ feedback }}</li>
+            </ul>
+            <div v-else-if="feedbackMessages && feedbackMessages.length === 1">
+                {{ feedbackMessages[0] }}
+            </div>
+        </template>
+    </b-form-group>
+</template>
+
+<script>
+import InputEditorMixin from './InputEditorMixin'
+
+export default {
+    name: 'input-editor-form-group',
+    props: {
+        label: {
+            type: String,
+            required: true,
+        },
+        labelFor: {
+            type: String,
+            required: true,
+        },
+        state: {
+            type: String,
+        },
+        feedbackMessages: {
+            type: Array,
+        },
+    },
+}
+</script>
\ No newline at end of file
diff --git a/django_airavata/apps/workspace/static/django_airavata_workspace/js/components/experiment/input-editors/StringInputEditor.vue b/django_airavata/apps/workspace/static/django_airavata_workspace/js/components/experiment/input-editors/StringInputEditor.vue
index 3063896..4d6a6a6 100644
--- a/django_airavata/apps/workspace/static/django_airavata_workspace/js/components/experiment/input-editors/StringInputEditor.vue
+++ b/django_airavata/apps/workspace/static/django_airavata_workspace/js/components/experiment/input-editors/StringInputEditor.vue
@@ -1,14 +1,15 @@
 <template>
-    <b-form-group :label="experimentInput.name" :label-for="experimentInput.name"
-        :feedback="validationFeedback" :state="validationState">
+    <input-editor-form-group :label="experimentInput.name" :label-for="experimentInput.name"
+        :state="validationState" :feedback-messages="validationFeedback">
         <b-form-input :id="experimentInput.name" type="text" v-model="data"
             :placeholder="experimentInput.userFriendlyDescription"
             :state="validationState"
             @input="valueChanged"/>
-    </b-form-group>
+    </input-editor-form-group>
 </template>
 
 <script>
+import InputEditorFormGroup from './InputEditorFormGroup.vue'
 import InputEditorMixin from './InputEditorMixin'
 
 export default {
@@ -20,5 +21,8 @@ export default {
             required: true,
         },
     },
+    components: {
+        InputEditorFormGroup,
+    },
 }
 </script>
\ No newline at end of file
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
index 88ef9da..64d7aad 100644
--- 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
@@ -1,23 +1,16 @@
 <template>
-    <b-form-group :label="experimentInput.name" :label-for="experimentInput.name"
-        :state="validationState">
+    <input-editor-form-group :label="experimentInput.name" :label-for="experimentInput.name"
+        :state="validationState" :feedback-messages="validationFeedback">
         <b-form-textarea :id="experimentInput.name" v-model="data"
             :rows="rows"
             :placeholder="experimentInput.userFriendlyDescription"
             :state="validationState"
             @input="valueChanged"/>
-        <template slot="invalid-feedback">
-            <ul v-if="validationFeedback && validationFeedback.length > 1">
-                <li v-for="feedback in validationFeedback">{{ feedback }}</li>
-            </ul>
-            <div v-else-if="validationFeedback && validationFeedback.length === 1">
-                {{ validationFeedback[0] }}
-            </div>
-        </template>
-    </b-form-group>
+    </input-editor-form-group>
 </template>
 
 <script>
+import InputEditorFormGroup from './InputEditorFormGroup.vue'
 import InputEditorMixin from './InputEditorMixin'
 
 const DEFAULT_ROWS = 3;
@@ -31,6 +24,9 @@ export default {
             required: true,
         },
     },
+    components: {
+        InputEditorFormGroup,
+    },
     computed: {
         rows: function() {
             return 'rows' in this.experimentInput.editorConfig

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