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 2019/10/30 14:28:58 UTC

[airavata-django-portal] branch master updated: AIRAVATA-3250 Link on dashboard to PGA

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 e527842  AIRAVATA-3250 Link on dashboard to PGA
e527842 is described below

commit e527842cd2e017bf6e908192e0da458698ad2689
Author: Marcus Christie <ma...@apache.org>
AuthorDate: Wed Oct 30 10:14:41 2019 -0400

    AIRAVATA-3250 Link on dashboard to PGA
---
 django_airavata/apps/api/serializers.py            |  1 +
 .../django_airavata_api/js/models/Settings.js      |  2 +-
 django_airavata/apps/api/views.py                  |  1 +
 .../js/components/PgaLink.vue                      | 40 ++++++++++++++++++++++
 .../js/containers/DashboardContainer.vue           |  8 +++--
 django_airavata/settings.py                        |  3 ++
 django_airavata/settings_local.py.sample           |  3 ++
 .../static/common/js/components/Uppy.vue           |  3 +-
 8 files changed, 57 insertions(+), 4 deletions(-)

diff --git a/django_airavata/apps/api/serializers.py b/django_airavata/apps/api/serializers.py
index 84da946..5929bb0 100644
--- a/django_airavata/apps/api/serializers.py
+++ b/django_airavata/apps/api/serializers.py
@@ -976,3 +976,4 @@ class LogRecordSerializer(serializers.Serializer):
 class SettingsSerializer(serializers.Serializer):
     fileUploadMaxFileSize = serializers.IntegerField()
     tusEndpoint = serializers.CharField()
+    pgaUrl = serializers.CharField()
diff --git a/django_airavata/apps/api/static/django_airavata_api/js/models/Settings.js b/django_airavata/apps/api/static/django_airavata_api/js/models/Settings.js
index 3d80d88..3bcae81 100644
--- a/django_airavata/apps/api/static/django_airavata_api/js/models/Settings.js
+++ b/django_airavata/apps/api/static/django_airavata_api/js/models/Settings.js
@@ -1,6 +1,6 @@
 import BaseModel from "./BaseModel";
 
-const FIELDS = ["fileUploadMaxFileSize", "tusEndpoint"];
+const FIELDS = ["fileUploadMaxFileSize", "tusEndpoint", "pgaUrl"];
 
 export default class Settings extends BaseModel {
   constructor(data = {}) {
diff --git a/django_airavata/apps/api/views.py b/django_airavata/apps/api/views.py
index 0c4d731..7fa8523 100644
--- a/django_airavata/apps/api/views.py
+++ b/django_airavata/apps/api/views.py
@@ -1740,6 +1740,7 @@ class SettingsAPIView(APIView):
         data = {
             'fileUploadMaxFileSize': settings.FILE_UPLOAD_MAX_FILE_SIZE,
             'tusEndpoint': settings.TUS_ENDPOINT,
+            'pgaUrl': settings.PGA_URL
         }
         serializer = self.serializer_class(
             data, context={'request': request})
diff --git a/django_airavata/apps/workspace/static/django_airavata_workspace/js/components/PgaLink.vue b/django_airavata/apps/workspace/static/django_airavata_workspace/js/components/PgaLink.vue
new file mode 100644
index 0000000..01858a7
--- /dev/null
+++ b/django_airavata/apps/workspace/static/django_airavata_workspace/js/components/PgaLink.vue
@@ -0,0 +1,40 @@
+<template>
+  <div
+    class="row"
+    v-if="showPGAUrl"
+  >
+    <div class="col">
+      <b-alert
+        variant="info"
+        show
+      >You're using the new portal interface. To switch back to the old interface, go to <b-link
+          :href="settings.pgaUrl">{{ settings.pgaUrl }}</b-link>
+      </b-alert>
+    </div>
+  </div>
+</template>
+
+<script>
+import { services } from "django-airavata-api";
+export default {
+  name: "pga-url",
+  data() {
+    return {
+      settings: null
+    };
+  },
+  computed: {
+    showPGAUrl() {
+      return this.settings && this.settings.pgaUrl != null;
+    }
+  },
+  beforeMount() {
+    services.SettingsService.get().then(s => {
+      this.settings = s;
+    });
+  }
+};
+</script>
+
+<style>
+</style>
diff --git a/django_airavata/apps/workspace/static/django_airavata_workspace/js/containers/DashboardContainer.vue b/django_airavata/apps/workspace/static/django_airavata_workspace/js/containers/DashboardContainer.vue
index a7c05de..810057f 100644
--- a/django_airavata/apps/workspace/static/django_airavata_workspace/js/containers/DashboardContainer.vue
+++ b/django_airavata/apps/workspace/static/django_airavata_workspace/js/containers/DashboardContainer.vue
@@ -1,5 +1,6 @@
 <template>
   <div>
+    <pga-link />
     <div class="row">
       <div class="col">
         <h1 class="h4 mb-4">Dashboard</h1>
@@ -75,6 +76,7 @@
 import { services, session } from "django-airavata-api";
 import { components as comps } from "django-airavata-common-ui";
 import urls from "../utils/urls";
+import PgaLink from "../components/PgaLink";
 
 export default {
   name: "dashboard-container",
@@ -88,7 +90,8 @@ export default {
   },
   components: {
     "application-card": comps.ApplicationCard,
-    "favorite-toggle": comps.FavoriteToggle
+    "favorite-toggle": comps.FavoriteToggle,
+    "pga-link": PgaLink
   },
   methods: {
     handleAppSelected: function(appModule) {
@@ -109,7 +112,8 @@ export default {
           );
           this.$nextTick(() => {
             this.$refs.favoriteApplicationCards[index].$el.scrollIntoView({
-              behavior: "smooth", block: "center"
+              behavior: "smooth",
+              block: "center"
             });
           });
         });
diff --git a/django_airavata/settings.py b/django_airavata/settings.py
index 58bce54..9efe750 100644
--- a/django_airavata/settings.py
+++ b/django_airavata/settings.py
@@ -222,6 +222,9 @@ TUS_ENDPOINT = None
 # Override and set to the directory where tus uploads will be stored
 TUS_DATA_DIR = None
 
+# Legacy (PGA) Portal link - provide a link to the legacy portal
+PGA_URL = None
+
 # Django REST Framework configuration
 REST_FRAMEWORK = {
     'DEFAULT_AUTHENTICATION_CLASSES': (
diff --git a/django_airavata/settings_local.py.sample b/django_airavata/settings_local.py.sample
index d36b38c..65358f4 100644
--- a/django_airavata/settings_local.py.sample
+++ b/django_airavata/settings_local.py.sample
@@ -103,6 +103,9 @@ PORTAL_TITLE = 'Django Airavata Gateway'
 # Override and set to the directory where tus uploads will be stored.
 # TUS_DATA_DIR = "/path/to/tus-temp-dir"
 
+# Legacy (PGA) Portal link - uncomment to provide a link to the legacy portal
+# PGA_URL = '...'
+
 # Logging configuration. Uncomment following to override default log configuration
 # LOGGING = {
 #     'version': 1,
diff --git a/django_airavata/static/common/js/components/Uppy.vue b/django_airavata/static/common/js/components/Uppy.vue
index 16e1966..495a342 100644
--- a/django_airavata/static/common/js/components/Uppy.vue
+++ b/django_airavata/static/common/js/components/Uppy.vue
@@ -55,7 +55,8 @@ export default {
   data() {
     return {
       uppy: null,
-      restrictionFailedMessage: null
+      restrictionFailedMessage: null,
+      settings: null
     };
   },
   computed: {