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 2020/06/22 15:04:32 UTC
[airavata-django-portal] 01/01: Merge branch
'AIRAVATA-3285--Interactive-output-view-providers' into develop
This is an automated email from the ASF dual-hosted git repository.
machristie pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/airavata-django-portal.git
commit 53ccaa022dd8403e11260b72fc22b9a493deb340
Merge: aec5cdf c8fe65b
Author: Marcus Christie <ma...@apache.org>
AuthorDate: Mon Jun 22 11:03:56 2020 -0400
Merge branch 'AIRAVATA-3285--Interactive-output-view-providers' into develop
django_airavata/apps/api/output_views.py | 93 +++++-
django_airavata/apps/api/urls.py | 2 +
django_airavata/apps/api/views.py | 37 ++-
.../output-displays/DefaultOutputDisplay.vue | 9 +-
.../output-displays/HtmlOutputDisplay.vue | 60 ++--
.../output-displays/ImageOutputDisplay.vue | 40 +--
.../experiment/output-displays/LinkDisplay.vue | 26 --
.../output-displays/LinkOutputDisplay.vue | 15 +
.../output-displays/OutputDisplayContainer.vue | 126 ++++++--
.../output-displays/OutputViewDataLoader.js | 46 +++
.../InteractiveParameterCheckboxWidget.vue | 15 +
.../InteractiveParameterRangeWidget.vue | 62 ++++
.../InteractiveParameterSelectWidget.vue | 28 ++
.../InteractiveParameterStepperWidget.vue | 74 +++++
.../InteractiveParameterTextInputWidget.vue | 48 ++++
.../InteractiveParameterWidgetContainer.vue | 67 +++++
.../InteractiveParametersPanel.vue | 67 +++++
.../static/common/js/components/ValidatedForm.vue | 83 ++++++
.../common/js/components/ValidatedFormGroup.vue | 43 +++
django_airavata/static/common/js/index.js | 6 +-
docs/dev/custom_output_view_provider.md | 317 +++++++++++++++++++++
docs/tutorial/gateways2019_tutorial.md | 114 ++++++--
.../gateways19/gaussian-eigenvalues-show_grid.png | Bin 0 -> 149262 bytes
mkdocs.yml | 7 +-
24 files changed, 1200 insertions(+), 185 deletions(-)
diff --cc django_airavata/apps/api/views.py
index 01cb1ab,6b8ee27..36e5e2a
--- a/django_airavata/apps/api/views.py
+++ b/django_airavata/apps/api/views.py
@@@ -1847,27 -1847,31 +1848,33 @@@ def notebook_output_view(request)
return HttpResponse(data['output'])
+@login_required
def html_output_view(request):
- provider_id = request.GET['provider-id']
- experiment_id = request.GET['experiment-id']
- experiment_output_name = request.GET['experiment-output-name']
- data = output_views.generate_data(request,
- provider_id,
- experiment_output_name,
- experiment_id)
+ data = _generate_output_view_data(request)
return JsonResponse(data)
+@login_required
def image_output_view(request):
- provider_id = request.GET['provider-id']
- experiment_id = request.GET['experiment-id']
- experiment_output_name = request.GET['experiment-output-name']
- data = output_views.generate_data(request,
- provider_id,
- experiment_output_name,
- experiment_id)
+ data = _generate_output_view_data(request)
# data should contain 'image' as a file-like object or raw bytes with the
# file data and 'mime-type' with the images mimetype
- return HttpResponse(data['image'], content_type=data['mime-type'])
+ data['image'] = base64.b64encode(data['image']).decode('utf-8')
+ return JsonResponse(data)
+
+
+ def link_output_view(request):
+ data = _generate_output_view_data(request)
+ return JsonResponse(data)
+
+
+ def _generate_output_view_data(request):
+ params = request.GET.copy()
+ provider_id = params.pop('provider-id')[0]
+ experiment_id = params.pop('experiment-id')[0]
+ experiment_output_name = params.pop('experiment-output-name')[0]
+ return output_views.generate_data(request,
+ provider_id,
+ experiment_output_name,
+ experiment_id,
+ **params.dict())