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.