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 2021/07/01 17:03:05 UTC

[airavata-django-portal] 01/05: AIRAVATA-3453 Adding Save and Launch button, with styling

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 4392395662b5dbf49be80a2d77799e492f5416b1
Author: Marcus Christie <ma...@apache.org>
AuthorDate: Thu Jun 24 16:42:42 2021 -0400

    AIRAVATA-3453 Adding Save and Launch button, with styling
---
 .../js/web-components/ExperimentEditor.vue         | 24 ++++++++++++++++++++--
 .../js/web-components/ResourceSelectionEditor.vue  |  9 +++++++-
 .../js/web-components/store.js                     |  6 ++++++
 3 files changed, 36 insertions(+), 3 deletions(-)

diff --git a/django_airavata/apps/workspace/static/django_airavata_workspace/js/web-components/ExperimentEditor.vue b/django_airavata/apps/workspace/static/django_airavata_workspace/js/web-components/ExperimentEditor.vue
index 7cfa7f2..291bb29 100644
--- a/django_airavata/apps/workspace/static/django_airavata_workspace/js/web-components/ExperimentEditor.vue
+++ b/django_airavata/apps/workspace/static/django_airavata_workspace/js/web-components/ExperimentEditor.vue
@@ -34,7 +34,19 @@
       </slot>
     </div>
     <slot name="save-button">
-      <button type="submit" name="save-experiment-button">Save</button>
+      <div class="d-flex justify-content-end">
+        <b-button
+          type="submit"
+          variant="success"
+          name="save-and-launch-experiment-button"
+          class="mr-2"
+        >
+          Save and Launch
+        </b-button>
+        <b-button type="submit" variant="primary" name="save-experiment-button">
+          Save
+        </b-button>
+      </div>
     </slot>
   </form>
 </template>
@@ -45,6 +57,7 @@ import {
   getApplicationInterfaceForModule,
   saveExperiment,
   getExperiment,
+  launchExperiment,
 } from "./store";
 
 import Vue from "vue";
@@ -118,7 +131,7 @@ export default {
       const [userConfigurationData] = event.detail;
       this.experiment.userConfigurationData = userConfigurationData;
     },
-    onSubmit(event) {
+    async onSubmit(event) {
       // console.log(event);
       // 'save' event is cancelable. Listener can call .preventDefault() on the event to cancel.
       // composed: true allows the shadow DOM event to bubble up through the shadow root.
@@ -135,6 +148,8 @@ export default {
         this.saveExperiment();
       } else {
         // Default submit button handling is save and launch
+        const experiment = await this.saveExperiment();
+        await launchExperiment(experiment.experimentId);
       }
     },
     async saveExperiment() {
@@ -161,4 +176,9 @@ export default {
 
 <style>
 @import "./styles.css";
+
+:host {
+  display: block;
+  margin-bottom: 1em;
+}
 </style>
diff --git a/django_airavata/apps/workspace/static/django_airavata_workspace/js/web-components/ResourceSelectionEditor.vue b/django_airavata/apps/workspace/static/django_airavata_workspace/js/web-components/ResourceSelectionEditor.vue
index 1cf0426..a90c893 100644
--- a/django_airavata/apps/workspace/static/django_airavata_workspace/js/web-components/ResourceSelectionEditor.vue
+++ b/django_airavata/apps/workspace/static/django_airavata_workspace/js/web-components/ResourceSelectionEditor.vue
@@ -412,4 +412,11 @@ export default {
 };
 </script>
 
-<style></style>
+<style>
+@import "./styles.css";
+
+:host {
+  display: block;
+  margin-bottom: 1rem;
+}
+</style>
diff --git a/django_airavata/apps/workspace/static/django_airavata_workspace/js/web-components/store.js b/django_airavata/apps/workspace/static/django_airavata_workspace/js/web-components/store.js
index 5007bdf..c14469a 100644
--- a/django_airavata/apps/workspace/static/django_airavata_workspace/js/web-components/store.js
+++ b/django_airavata/apps/workspace/static/django_airavata_workspace/js/web-components/store.js
@@ -35,6 +35,12 @@ export async function saveExperiment(experiment) {
   }
 }
 
+export async function launchExperiment(experimentId) {
+  return await services.ExperimentService.launch({
+    lookup: experimentId,
+  });
+}
+
 export async function getWorkspacePreferences() {
   if (!CACHE.WORKSPACE_PREFERENCES) {
     CACHE.WORKSPACE_PREFERENCES = services.WorkspacePreferencesService.get();