This is an automated email from the ASF dual-hosted git repository.

yasithdev pushed a commit to branch feat/generic-experiment-launcher
in repository https://gitbox.apache.org/repos/asf/airavata-portals.git

commit 10845f60992b59b7e27b0c68e9ecf5330c0b084e
Author: yasithdev <[email protected]>
AuthorDate: Fri Apr 24 23:21:06 2026 -0400

    refactor(launcher): retarget repo-internal links from old apps URL to 
/workspace/launch
---
 .../js/containers/UserProfileContainer.vue               |  2 +-
 .../js/containers/ApplicationEditorContainer.vue         |  6 +++---
 .../js/containers/DashboardContainer.vue                 |  2 +-
 .../js/containers/ExperimentListContainer.vue            |  4 ++--
 .../js/containers/ProjectOverviewContainer.vue           |  2 +-
 .../js/containers/WorkspaceDashboardContainer.vue        |  2 +-
 .../static/django_airavata_workspace/js/utils/urls.ts    | 16 ++++------------
 .../django_airavata/wagtailapps/base/blocks.py           |  2 +-
 8 files changed, 14 insertions(+), 22 deletions(-)

diff --git 
a/airavata-django-portal/django_airavata/apps/auth/static/django_airavata_auth/js/containers/UserProfileContainer.vue
 
b/airavata-django-portal/django_airavata/apps/auth/static/django_airavata_auth/js/containers/UserProfileContainer.vue
index 89269adc7..46d6bc8d7 100644
--- 
a/airavata-django-portal/django_airavata/apps/auth/static/django_airavata_auth/js/containers/UserProfileContainer.vue
+++ 
b/airavata-django-portal/django_airavata/apps/auth/static/django_airavata_auth/js/containers/UserProfileContainer.vue
@@ -27,7 +27,7 @@
         </template>
 
         <button class="btn btn-primary" @click="onSave">Save</button>
-        <button v-if="!mustComplete" class="btn btn-success" 
href="/workspace/applications">
+        <button v-if="!mustComplete" class="btn btn-success" 
href="/workspace/launch">
           Go to Applications
         </button>
       </div>
diff --git 
a/airavata-django-portal/django_airavata/apps/workspace/static/django_airavata_workspace/js/containers/ApplicationEditorContainer.vue
 
b/airavata-django-portal/django_airavata/apps/workspace/static/django_airavata_workspace/js/containers/ApplicationEditorContainer.vue
index ebcd22a5b..164e66082 100644
--- 
a/airavata-django-portal/django_airavata/apps/workspace/static/django_airavata_workspace/js/containers/ApplicationEditorContainer.vue
+++ 
b/airavata-django-portal/django_airavata/apps/workspace/static/django_airavata_workspace/js/containers/ApplicationEditorContainer.vue
@@ -723,7 +723,7 @@ const hasInterface = computed(() => {
 
 const hasDeployments = computed(() => appDeployments.value.length > 0);
 
-const launchUrl = computed(() => "/workspace/applications/" + 
props.appModuleId + "/create_experiment");
+const launchUrl = computed(() => "/workspace/launch");
 
 const inputDataTypes = computed(() => (models.InputDataObjectType as unknown 
as Record<string, unknown>).VALID_DATA_TYPES as unknown[]);
 
@@ -1034,7 +1034,7 @@ async function deleteApp(): Promise<void> {
     if (props.appModuleId) {
       await services.ApplicationModuleService.delete({ lookup: 
props.appModuleId });
     }
-    window.location.href = "/workspace/applications";
+    window.location.href = "/workspace/launch";
   } catch (error) {
     console.error("Failed to delete application", error);
     const err = error as { message?: string; details?: unknown };
@@ -1048,7 +1048,7 @@ async function deleteApp(): Promise<void> {
 }
 
 function cancel(): void {
-  window.location.href = "/workspace/applications";
+  window.location.href = "/workspace/launch";
 }
 
 onMounted(() => {
diff --git 
a/airavata-django-portal/django_airavata/apps/workspace/static/django_airavata_workspace/js/containers/DashboardContainer.vue
 
b/airavata-django-portal/django_airavata/apps/workspace/static/django_airavata_workspace/js/containers/DashboardContainer.vue
index a16017f2f..375651179 100644
--- 
a/airavata-django-portal/django_airavata/apps/workspace/static/django_airavata_workspace/js/containers/DashboardContainer.vue
+++ 
b/airavata-django-portal/django_airavata/apps/workspace/static/django_airavata_workspace/js/containers/DashboardContainer.vue
@@ -214,7 +214,7 @@ function navigateToApp(appModule: unknown) {
 }
 
 function runExperimentUrl(appModule: unknown) {
-  return "/workspace/applications/" + (appModule as { app_module_id: string 
}).app_module_id + "/create_experiment";
+  return "/workspace/launch";
 }
 
 function toggleFavorite(appModule: unknown) {
diff --git 
a/airavata-django-portal/django_airavata/apps/workspace/static/django_airavata_workspace/js/containers/ExperimentListContainer.vue
 
b/airavata-django-portal/django_airavata/apps/workspace/static/django_airavata_workspace/js/containers/ExperimentListContainer.vue
index 1f82f1885..6b3a0d09e 100644
--- 
a/airavata-django-portal/django_airavata/apps/workspace/static/django_airavata_workspace/js/containers/ExperimentListContainer.vue
+++ 
b/airavata-django-portal/django_airavata/apps/workspace/static/django_airavata_workspace/js/containers/ExperimentListContainer.vue
@@ -7,7 +7,7 @@
         <p class="text-muted mb-0">Search, view, and manage your computational 
experiments.</p>
       </div>
       <div class="col-auto">
-        <a href="/workspace/applications" class="btn btn-primary btn-sm"
+        <a href="/workspace/launch" class="btn btn-primary btn-sm"
           ><i class="fa fa-plus me-1"></i>Create New</a
         >
       </div>
@@ -94,7 +94,7 @@
                   <div class="table-empty__title">No experiments yet</div>
                   <div class="table-empty__text">
                     Launch your first experiment from the
-                    <a href="/workspace/applications">Dashboard</a>.
+                    <a href="/workspace/launch">Dashboard</a>.
                   </div>
                 </div>
               </td>
diff --git 
a/airavata-django-portal/django_airavata/apps/workspace/static/django_airavata_workspace/js/containers/ProjectOverviewContainer.vue
 
b/airavata-django-portal/django_airavata/apps/workspace/static/django_airavata_workspace/js/containers/ProjectOverviewContainer.vue
index b7b40f8eb..b7b0547c0 100644
--- 
a/airavata-django-portal/django_airavata/apps/workspace/static/django_airavata_workspace/js/containers/ProjectOverviewContainer.vue
+++ 
b/airavata-django-portal/django_airavata/apps/workspace/static/django_airavata_workspace/js/containers/ProjectOverviewContainer.vue
@@ -235,7 +235,7 @@ const experimentsUrl = computed(() =>
 const artifactsUrl = computed(() =>
   `/workspace/projects/${encodeURIComponent(props.projectId)}/artifacts`,
 );
-const newExperimentUrl = "/workspace/applications";
+const newExperimentUrl = "/workspace/launch";
 
 const formattedCreationTime = computed(() => {
   const p = project.value as Record<string, unknown> | null;
diff --git 
a/airavata-django-portal/django_airavata/apps/workspace/static/django_airavata_workspace/js/containers/WorkspaceDashboardContainer.vue
 
b/airavata-django-portal/django_airavata/apps/workspace/static/django_airavata_workspace/js/containers/WorkspaceDashboardContainer.vue
index 38986a693..a31809d53 100644
--- 
a/airavata-django-portal/django_airavata/apps/workspace/static/django_airavata_workspace/js/containers/WorkspaceDashboardContainer.vue
+++ 
b/airavata-django-portal/django_airavata/apps/workspace/static/django_airavata_workspace/js/containers/WorkspaceDashboardContainer.vue
@@ -37,7 +37,7 @@
         <h5 class="mb-0">Recent Experiments</h5>
         <div class="ms-auto d-flex gap-2">
           <a
-            href="/workspace/applications?action=launch"
+            href="/workspace/launch"
             class="btn btn-primary btn-sm"
             title="Choose an application to run an experiment from"
           >
diff --git 
a/airavata-django-portal/django_airavata/apps/workspace/static/django_airavata_workspace/js/utils/urls.ts
 
b/airavata-django-portal/django_airavata/apps/workspace/static/django_airavata_workspace/js/utils/urls.ts
index 7e3f10a1a..a1c102085 100644
--- 
a/airavata-django-portal/django_airavata/apps/workspace/static/django_airavata_workspace/js/utils/urls.ts
+++ 
b/airavata-django-portal/django_airavata/apps/workspace/static/django_airavata_workspace/js/utils/urls.ts
@@ -2,10 +2,6 @@ interface Experiment {
   experiment_id: string;
 }
 
-interface AppModule {
-  app_module_id: string;
-}
-
 interface Project {
   project_id: string;
 }
@@ -54,15 +50,11 @@ export default {
       this.viewExperiment(projectId, experiment, { launching })
     );
   },
-  createExperiment(appModule: AppModule): string {
-    return (
-      "/workspace/applications/" +
-      encodeURIComponent(appModule.app_module_id) +
-      "/create_experiment"
-    );
+  createExperiment(): string {
+    return "/workspace/launch";
   },
-  navigateToCreateExperiment(appModule: AppModule): void {
-    window.location.assign(this.createExperiment(appModule));
+  navigateToCreateExperiment(): void {
+    window.location.assign(this.createExperiment());
   },
   projectOverview(project: Project): string {
     return (
diff --git a/airavata-django-portal/django_airavata/wagtailapps/base/blocks.py 
b/airavata-django-portal/django_airavata/wagtailapps/base/blocks.py
index e791f6049..24ffd6b5b 100644
--- a/airavata-django-portal/django_airavata/wagtailapps/base/blocks.py
+++ b/airavata-django-portal/django_airavata/wagtailapps/base/blocks.py
@@ -654,7 +654,7 @@ class LoginNavItem(NavItem):
 class DashboardLinkNavItem(NavItem):
     class Meta:
         default = {
-            "link": "/workspace/applications",
+            "link": "/workspace/launch",
             "link_text": "Go to Applications",
             "icon_class": "fas fa-arrow-circle-right",
             "show": "logged-in",

Reply via email to