Marcus Christie created AIRAVATA-2994:
-
Summary: Experiment input editors: transformations
Key: AIRAVATA-2994
URL: https://issues.apache.org/jira/browse/AIRAVATA-2994
Project: Airavata
Issue Type: Sub-task
Components: Django Portal
Reporter: Marcus Christie
Assignee: Marcus Christie
Add the ability to add transformations to input editors through input metadata,
validations (AIRAVATA-2762) and dependencies (AIRAVATA-2761).
The schema I'm thinking of is
{code}
{
"editor": {
"transformations": [
{
"type": "regex-replace",
"value": ["\s+", "", ""]
},
...
]
}
}
{code}
A list of transformations can be specified. They will be applied in order to
the input value whenever it changes.
The type must be implemented by a Transformation class ([something like how the
ValidatorFactory
works|https://github.com/apache/airavata-django-portal/blob/master/django_airavata/apps/api/static/django_airavata_api/js/models/validators/ValidatorFactory.js#L10]).
Example: transform
{noformat}
>101M:A|PDBID|CHAIN|SEQUENCE
MVLSEGEWQLVLHVWAKVEADVAGHGQDILIRLFKSHPETLEKFDRVKHLKTEAEMKASEDLKKHGVTVLTALGAILKKK
GHHEAELKPLAQSHATKHKIPIKYLEFISEAIIHVLHSRHPGNFGADAQGAMNKALELFRKDIAAKYKELGYQG
{noformat}
into
{noformat}
MVLSEGEWQLVLHVWAKVEADVAGHGQDILIRLFKSHPETLEKFDRVKHLKTEAEMKASEDLKKHGVTVLTALGAILKKKGHHEAELKPLAQSHATKHKIPIKYLEFISEAIIHVLHSRHPGNFGADAQGAMNKALELFRKDIAAKYKELGYQG
{noformat}
That is, remove the initial header line and remove all newlines.
Other notes:
* transformations should be applied before validations
* need to add a {{transform(value)}} method to InputDataObjectType. transform()
should apply transformations and return the transformed value. If there are no
transformations then transform() should just return the given value
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)