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())