AIRAVATA-3557 Don't show output view providers menu when executing
diff --git a/django_airavata/apps/workspace/static/django_airavata_workspace/js/components/experiment/ExperimentSummary.vue b/django_airavata/apps/workspace/static/django_airavata_workspace/js/components/experiment/ExperimentSummary.vue
index a2140a4..ab10994 100644
--- a/django_airavata/apps/workspace/static/django_airavata_workspace/js/components/experiment/ExperimentSummary.vue
+++ b/django_airavata/apps/workspace/static/django_airavata_workspace/js/components/experiment/ExperimentSummary.vue
@@ -29,12 +29,7 @@
     <template v-for="output in experiment.experimentOutputs">
       <div class="row" v-if="finishedOrExecuting" :key="output.name">
         <div class="col">
-          <output-display-container
-            :experiment-output="output"
-            :data-products="outputDataProducts[output.name]"
-            :output-views="localFullExperiment.outputViews[output.name]"
-            :experiment-id="experiment.experimentId"
-          />
+          <output-display-container :experiment-output="output" />
         </div>
       </div>
     </template>
@@ -268,10 +263,16 @@
                   <tr v-for="job in failedJobs" :key="job.jobId">
                     <th scope="row">Job Submission Response</th>
                     <td>
-                      <b-card v-if="job.stdOut" :header="job.jobName + ' STDOUT'">
+                      <b-card
+                        v-if="job.stdOut"
+                        :header="job.jobName + ' STDOUT'"
+                      >
                         <pre class="pre-scrollable">{{ job.stdOut }}</pre>
                       </b-card>
-                      <b-card v-if="job.stdErr" :header="job.jobName + ' STDERR'">
+                      <b-card
+                        v-if="job.stdErr"
+                        :header="job.jobName + ' STDERR'"
+                      >
                         <pre class="pre-scrollable">{{ job.stdErr }}</pre>
                       </b-card>
                     </td>
diff --git a/django_airavata/apps/workspace/static/django_airavata_workspace/js/components/experiment/output-displays/OutputDisplayContainer.vue b/django_airavata/apps/workspace/static/django_airavata_workspace/js/components/experiment/output-displays/OutputDisplayContainer.vue
index 2390048..df30a15 100644
--- a/django_airavata/apps/workspace/static/django_airavata_workspace/js/components/experiment/output-displays/OutputDisplayContainer.vue
+++ b/django_airavata/apps/workspace/static/django_airavata_workspace/js/components/experiment/output-displays/OutputDisplayContainer.vue
@@ -24,7 +24,11 @@
       :parameters="viewData.interactive"
       @input="parametersUpdated"
     />
-    <div slot="footer" v-if="dataProducts.length > 0 || isExecuting" class="d-flex justify-content-end align-items-baseline">
+    <div
+      slot="footer"
+      v-if="dataProducts.length > 0 || isExecuting"
+      class="d-flex justify-content-end align-items-baseline"
+    >
       <template v-if="isExecuting">
         <span class="small text-muted mr-2">
           {{ fetchIntermediateOutputStatusMessage }}</span
@@ -36,7 +40,9 @@
       </template>
       <template v-else>
         <!-- TODO: support downloading URI_COLLECTIONs as well -->
-        <b-btn size="sm" :href="dataProducts[0].downloadURL + '&download'">Download</b-btn>
+        <b-btn size="sm" :href="dataProducts[0].downloadURL + '&download'"
+          >Download</b-btn
+        >
       </template>
     </div>
   </b-card>
@@ -73,6 +79,15 @@
     InteractiveParametersPanel,
   },
   created() {
+    // Only show the default output view while executing or if no output dataProducts
+    if (
+      this.outputViews.length > 0 &&
+      (!this.isFinished || this.dataProducts.length === 0)
+    ) {
+      this.currentViewIndex = this.outputViews.findIndex(
+        (ov) => ov["provider-id"] === "default"
+      );
+    }
     if (this.providerId && this.providerId !== "default") {
       this.loader = this.createLoader();
       this.loader.load();
@@ -90,6 +105,7 @@
       "outputDataProducts",
       "experimentId",
       "isExecuting",
+      "isFinished",
     ]),
     outputViews() {
       return this.fullExperiment
@@ -156,7 +172,11 @@
       }
     },
     showMenu() {
-      return this.outputViews.length > 1;
+      return (
+        this.isFinished &&
+        this.outputViews.length > 1 &&
+        this.dataProducts.length > 0
+      );
     },
     providerId() {
       return this.currentView ? this.currentView["provider-id"] : null;
diff --git a/django_airavata/apps/workspace/static/django_airavata_workspace/js/store/modules/view-experiment.js b/django_airavata/apps/workspace/static/django_airavata_workspace/js/store/modules/view-experiment.js
index 534fa6d..8f82b47 100644
--- a/django_airavata/apps/workspace/static/django_airavata_workspace/js/store/modules/view-experiment.js
+++ b/django_airavata/apps/workspace/static/django_airavata_workspace/js/store/modules/view-experiment.js
@@ -146,6 +146,8 @@
     getters.experiment &&
     getters.experiment.latestStatus &&
     getters.experiment.latestStatus.state === ExperimentState.EXECUTING,
+  isFinished: (state, getters) =>
+    getters.experiment && getters.experiment.isFinished,
   finishedOrExecuting: (state, getters) =>
     getters.experiment &&
     (getters.experiment.isFinished || getters.isExecuting),