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",
