This is an automated email from the ASF dual-hosted git repository. yasithdev pushed a commit to branch modernization in repository https://gitbox.apache.org/repos/asf/airavata-portals.git
commit 98544ff6fd795530f4563c5e7cde9d22faa69175 Merge: 509366959 189b76885 Author: yasithdev <[email protected]> AuthorDate: Wed Apr 22 14:14:07 2026 -0400 merge: Track A (Vue Composition + TS + Pinia) .../django_airavata/apps/admin/package.json | 5 +- .../admin/static/django_airavata_admin/src/App.vue | 4 +- .../src/components/admin/ComputeResourcesModal.vue | 119 +- .../applications/ApplicationDeploymentEditor.vue | 313 +- .../applications/ApplicationDeploymentsList.vue | 291 +- .../applications/ApplicationEditorContainer.vue | 1048 +- .../applications/ApplicationInputFieldEditor.vue | 132 +- .../applications/ApplicationInterfaceEditor.vue | 212 +- .../applications/ApplicationModuleEditor.vue | 71 +- .../applications/ApplicationOutputFieldEditor.vue | 126 +- .../applications/CommandObjectsEditor.vue | 89 +- .../src/components/applications/JSONEditor.vue | 84 +- .../components/applications/SetEnvPathsEditor.vue | 86 +- .../credentials/NewPasswordCredentialModal.vue | 92 +- .../credentials/NewSSHCredentialModal.vue | 61 +- .../credentials/SSHCredentialSelector.vue | 212 +- .../dashboards/ApplicationsDashboard.vue | 81 +- .../dashboards/CredentialStoreDashboard.vue | 83 +- .../components/developers/DevelopersContainer.vue | 5 +- .../GatewayResourceProfileEditor.vue | 38 +- .../GatewayResourceProfileEditorContainer.vue | 124 +- .../gatewayprofile/StoragePreferenceEditor.vue | 43 +- .../gatewayprofile/StoragePreferenceList.vue | 366 +- .../src/components/notices/NoticeEditor.vue | 217 +- .../notices/NoticesManagementContainer.vue | 150 +- .../statistics/ExperimentDetailsView.vue | 216 +- .../statistics/ExperimentStatisticsCard.vue | 82 +- .../statistics/ExperimentStatisticsContainer.vue | 644 +- .../src/components/users/ActivateUserPanel.vue | 27 +- .../src/components/users/ChangeUsernamePanel.vue | 82 +- .../src/components/users/DeleteUserPanel.vue | 32 +- .../src/components/users/EnableUserPanel.vue | 32 +- .../users/ExtendedUserProfileContainer.vue | 131 +- .../components/users/ExtendedUserProfilePanel.vue | 98 +- .../components/users/ExternalIDPUserInfoPanel.vue | 36 +- .../IdentityServiceUserManagementContainer.vue | 275 +- .../UnverifiedEmailUserManagementContainer.vue | 189 +- .../src/components/users/UserDetailsContainer.vue | 73 +- .../components/users/UserManagementContainer.vue | 29 +- .../src/components/users/UserProfilePanel.vue | 67 +- .../ExtendedUserProfileFieldEditor.vue | 343 +- .../static/django_airavata_admin/src/env.d.ts | 54 + .../admin/static/django_airavata_admin/src/main.js | 4 - .../src/{router.js => router.ts} | 12 +- .../django_airavata_admin/src/store/index.js | 15 - .../src/store/modules/extendedUserProfile.js | 191 - .../django_airavata/apps/admin/tsconfig.json | 7 + ...tion.js => ApplicationDeploymentDescription.ts} | 3 +- ...nition.js => ApplicationInterfaceDefinition.ts} | 11 +- .../{ApplicationModule.js => ApplicationModule.ts} | 3 +- ...eference.js => AwsComputeResourcePreference.ts} | 3 +- .../js/models/{BaseEnum.js => BaseEnum.ts} | 14 +- .../js/models/{BaseModel.js => BaseModel.ts} | 73 +- .../js/models/{BatchQueue.js => BatchQueue.ts} | 3 +- ...sourcePolicy.js => BatchQueueResourcePolicy.ts} | 19 +- .../models/{CommandObject.js => CommandObject.ts} | 6 +- ....js => ComputationalResourceSchedulingModel.ts} | 29 +- ...escription.js => ComputeResourceDescription.ts} | 3 +- ...eResourcePolicy.js => ComputeResourcePolicy.ts} | 9 +- ...eservation.js => ComputeResourceReservation.ts} | 16 +- .../{CredentialSummary.js => CredentialSummary.ts} | 3 +- .../js/models/{DataProduct.js => DataProduct.ts} | 17 +- ...taReplicaLocation.js => DataReplicaLocation.ts} | 3 +- .../js/models/{DataType.js => DataType.ts} | 9 + .../js/models/{ErrorModel.js => ErrorModel.ts} | 3 +- .../js/models/{Experiment.js => Experiment.ts} | 45 +- .../js/models/ExperimentSearchFields.js | 14 - .../js/models/ExperimentSearchFields.ts | 25 + .../{ExperimentState.js => ExperimentState.ts} | 11 + ...rimentStatistics.js => ExperimentStatistics.ts} | 3 +- .../{ExperimentStatus.js => ExperimentStatus.ts} | 7 +- ...mentStoragePath.js => ExperimentStoragePath.ts} | 0 .../{ExperimentSummary.js => ExperimentSummary.ts} | 5 +- ...ProfileField.js => ExtendedUserProfileField.ts} | 8 +- ...Choice.js => ExtendedUserProfileFieldChoice.ts} | 8 +- ...ieldLink.js => ExtendedUserProfileFieldLink.ts} | 8 +- ...ProfileValue.js => ExtendedUserProfileValue.ts} | 5 +- .../{FullExperiment.js => FullExperiment.ts} | 19 +- ...esourceProfile.js => GatewayResourceProfile.ts} | 3 +- .../js/models/{Group.js => Group.ts} | 5 +- ...nfig.js => GroupAccountSSHProvisionerConfig.ts} | 3 +- ...erence.js => GroupComputeResourcePreference.ts} | 77 +- .../{GroupPermission.js => GroupPermission.ts} | 3 +- ...pResourceProfile.js => GroupResourceProfile.ts} | 53 +- .../{IAMUserProfile.js => IAMUserProfile.ts} | 5 +- .../static/django_airavata_api/js/models/IOType.js | 4 - .../static/django_airavata_api/js/models/IOType.ts | 8 + .../js/models/InputDataObjectType.js | 248 - .../js/models/InputDataObjectType.ts | 181 + ...IntermediateOutput.js => IntermediateOutput.ts} | 3 +- .../js/models/{Job.js => Job.ts} | 13 +- .../django_airavata_api/js/models/JobState.js | 14 - .../django_airavata_api/js/models/JobState.ts | 25 + .../js/models/{JobStatus.js => JobStatus.ts} | 3 +- ...ssionInterface.js => JobSubmissionInterface.ts} | 3 +- .../js/models/{LogRecord.js => LogRecord.ts} | 3 +- .../js/models/{Notification.js => Notification.ts} | 7 +- .../js/models/NotificationPriority.js | 4 - .../js/models/NotificationPriority.ts | 9 + ...utDataObjectType.js => OutputDataObjectType.ts} | 14 +- .../js/models/ParallelismType.js | 4 - .../js/models/ParallelismType.ts | 12 + .../js/models/{Parser.js => Parser.ts} | 3 +- .../js/models/{ParserInput.js => ParserInput.ts} | 3 +- .../js/models/{ParserOutput.js => ParserOutput.ts} | 3 +- .../js/models/{ProcessModel.js => ProcessModel.ts} | 7 +- .../django_airavata_api/js/models/ProcessState.js | 24 - .../django_airavata_api/js/models/ProcessState.ts | 40 + .../models/{ProcessStatus.js => ProcessStatus.ts} | 5 +- .../{ProcessWorkflow.js => ProcessWorkflow.ts} | 3 +- .../js/models/{Project.js => Project.ts} | 3 +- ...ngsCalculator.js => QueueSettingsCalculator.ts} | 3 +- .../js/models/ResourcePermissionType.js | 4 - .../js/models/ResourcePermissionType.ts | 10 + .../django_airavata_api/js/models/ResourceType.js | 4 - .../django_airavata_api/js/models/ResourceType.ts | 8 + .../js/models/{SetEnvPaths.js => SetEnvPaths.ts} | 6 +- .../js/models/{Settings.js => Settings.ts} | 3 +- .../js/models/{SharedEntity.js => SharedEntity.ts} | 33 +- ...erence.js => SlurmComputeResourcePreference.ts} | 13 +- .../{StoragePreference.js => StoragePreference.ts} | 3 +- ...escription.js => StorageResourceDescription.ts} | 3 +- .../django_airavata_api/js/models/SummaryType.js | 4 - .../django_airavata_api/js/models/SummaryType.ts | 9 + .../js/models/{Task.js => Task.ts} | 7 +- .../django_airavata_api/js/models/TaskState.js | 4 - .../django_airavata_api/js/models/TaskState.ts | 11 + .../js/models/{TaskStatus.js => TaskStatus.ts} | 3 +- .../django_airavata_api/js/models/TaskTypes.js | 11 - .../django_airavata_api/js/models/TaskTypes.ts | 19 + ...serProfile.js => UnverifiedEmailUserProfile.ts} | 3 +- .../js/models/{User.js => User.ts} | 3 +- ...nfigurationData.js => UserConfigurationData.ts} | 8 +- .../{UserPermission.js => UserPermission.ts} | 3 +- .../js/models/{UserProfile.js => UserProfile.ts} | 5 +- .../django_airavata_api/js/models/UserStatus.js | 19 - .../django_airavata_api/js/models/UserStatus.ts | 35 + ...StorageDirectory.js => UserStorageDirectory.ts} | 3 +- .../{UserStorageFile.js => UserStorageFile.ts} | 3 +- .../{UserStoragePath.js => UserStoragePath.ts} | 3 +- ...spacePreferences.js => WorkspacePreferences.ts} | 3 +- ...nEvaluator.js => BooleanExpressionEvaluator.ts} | 28 +- ...MaxLengthValidator.js => MaxLengthValidator.ts} | 22 +- ...MinLengthValidator.js => MinLengthValidator.ts} | 24 +- ...nValidator.js => RegularExpressionValidator.ts} | 22 +- .../js/models/validators/ValidatorFactory.js | 23 - .../js/models/validators/ValidatorFactory.ts | 32 + .../django_airavata/apps/auth/package.json | 5 +- .../js/components/ExtendedUserProfileEditor.vue | 87 +- .../ExtendedUserProfileMultiChoiceValueEditor.vue | 210 +- .../ExtendedUserProfileSingleChoiceValueEditor.vue | 193 +- .../ExtendedUserProfileTextValueEditor.vue | 89 +- ...ExtendedUserProfileUserAgreementValueEditor.vue | 108 +- .../components/ExtendedUserProfileValueEditor.vue | 8 +- .../js/components/UserProfileEditor.vue | 123 +- .../js/containers/UserProfileContainer.vue | 155 +- .../django_airavata_auth/js/entry-user-profile.js | 3 - .../auth/static/django_airavata_auth/js/env.d.ts | 50 + .../static/django_airavata_auth/js/store/index.js | 17 - .../js/store/modules/extendedUserProfile.js | 176 - .../js/store/modules/userProfile.js | 64 - .../django_airavata/apps/auth/tsconfig.json | 7 + .../django_airavata/apps/dataparsers/package.json | 1 + .../js/containers/ParserDetailsContainer.vue | 31 +- .../js/containers/ParserEditContainer.vue | 50 +- .../js/containers/ParsersManageContainer.vue | 37 +- .../static/django_airavata_dataparsers/js/env.d.ts | 50 + .../js/parser-components/ParserEditor.vue | 133 +- .../js/parser-components/ParserList.vue | 25 +- .../js/parser-components/ParserListItem.vue | 23 +- .../django_airavata/apps/dataparsers/tsconfig.json | 7 + .../django_airavata/apps/workspace/package.json | 5 +- .../js/components/PgaLink.vue | 34 +- .../ComputationalResourceSchedulingEditor.vue | 460 +- .../experiment/ExperimentDescriptionEditor.vue | 70 +- .../js/components/experiment/ExperimentEditor.vue | 454 +- .../js/components/experiment/ExperimentSummary.vue | 367 +- .../experiment/GroupResourceProfileSelector.vue | 165 +- .../components/experiment/QueueSettingsEditor.vue | 619 +- .../input-editors/AutocompleteInputEditor.vue | 281 +- .../input-editors/CheckboxInputEditor.vue | 112 +- .../experiment/input-editors/FileInputEditor.vue | 259 +- .../input-editors/InputEditorContainer.vue | 254 +- .../input-editors/InputEditorFormGroup.vue | 42 +- .../experiment/input-editors/InputFileSelector.vue | 98 +- .../input-editors/MultiFileInputEditor.vue | 124 +- .../input-editors/RadioButtonInputEditor.vue | 83 +- .../input-editors/RangeSliderInputEditor.vue | 249 +- .../experiment/input-editors/SelectInputEditor.vue | 70 +- .../experiment/input-editors/SliderInputEditor.vue | 208 +- .../experiment/input-editors/StringInputEditor.vue | 40 +- .../input-editors/TextareaInputEditor.vue | 52 +- .../input-editors/UserFileInputEditor.vue | 64 +- .../output-displays/DefaultOutputDisplay.vue | 273 +- .../output-displays/HtmlOutputDisplay.vue | 76 +- .../output-displays/ImageOutputDisplay.vue | 33 +- .../output-displays/LinkOutputDisplay.vue | 14 +- .../output-displays/NotebookOutputDisplay.vue | 62 +- .../output-displays/OutputDisplayContainer.vue | 376 +- .../output-displays/OutputViewDataLoader.d.ts | 17 + .../InteractiveParameterCheckboxWidget.vue | 18 +- .../InteractiveParameterRangeWidget.vue | 88 +- .../InteractiveParameterSelectWidget.vue | 44 +- .../InteractiveParameterStepperWidget.vue | 112 +- .../InteractiveParameterTextInputWidget.vue | 59 +- .../InteractiveParameterWidgetContainer.vue | 89 +- .../InteractiveParametersPanel.vue | 96 +- .../WorkspaceNoticesManagementContainer.vue | 69 +- .../js/components/project/ProjectButtonNew.vue | 66 +- .../js/components/project/ProjectDeleteModal.vue | 87 +- .../js/components/project/ProjectEditor.vue | 150 +- .../js/components/project/ProjectList.vue | 23 +- .../js/components/project/ProjectListItem.vue | 77 +- .../js/components/project/ProjectMembersCard.vue | 180 +- .../js/components/project/ProjectResourcesCard.vue | 140 +- .../storage/ExperimentStoragePathViewer.vue | 258 +- .../storage/ExperimentStorageViewContainer.vue | 140 +- .../components/storage/StoragePathBreadcrumb.vue | 72 +- .../components/storage/UserStorageCreateView.vue | 82 +- .../storage/UserStorageFileSelectionContainer.vue | 128 +- .../components/storage/UserStoragePathViewer.vue | 395 +- .../storage-edit/UserStorageAudioEditViewer.vue | 30 +- .../storage-edit/UserStorageDefaultEditViewer.vue | 32 +- .../storage-edit/UserStorageDownloadButton.vue | 26 +- .../storage/storage-edit/UserStorageEditViewer.vue | 100 +- .../storage-edit/UserStorageImageEditViewer.vue | 32 +- .../storage/storage-edit/UserStorageLink.vue | 70 +- .../storage-edit/UserStoragePdfEditViewer.vue | 32 +- .../storage-edit/UserStorageTextEditViewer.vue | 164 +- .../storage-edit/UserStorageVideoEditViewer.vue | 32 +- .../js/composables/useInputEditor.ts | 93 + .../js/containers/ApplicationEditorContainer.vue | 836 +- .../js/containers/ComputeContainer.vue | 163 +- .../js/containers/ComputeDetailContainer.vue | 611 +- .../js/containers/CreateExperimentContainer.vue | 128 +- .../js/containers/DashboardContainer.vue | 249 +- .../js/containers/DatasetsContainer.vue | 23 +- .../js/containers/DatasetsListContainer.vue | 22 +- .../js/containers/EditExperimentContainer.vue | 117 +- .../js/containers/EditProjectContainer.vue | 76 +- .../js/containers/ExperimentListContainer.vue | 385 +- .../js/containers/GatewaySettingsContainer.vue | 239 +- .../js/containers/ProjectListContainer.vue | 131 +- .../js/containers/ProjectOverviewContainer.vue | 475 +- .../js/containers/RecentExperimentsContainer.vue | 237 +- .../js/containers/StorageDetailContainer.vue | 228 +- .../js/containers/StorageTreeContainer.vue | 268 +- .../js/containers/UserStorageContainer.vue | 122 +- .../js/containers/WorkspaceDashboardContainer.vue | 578 +- .../js/entry-view-experiment.js | 16 +- .../static/django_airavata_workspace/js/env.d.ts | 61 + .../django_airavata_workspace/js/store/index.js | 15 - .../js/store/modules/view-experiment.js | 253 - .../django_airavata_workspace/js/utils/urls.js | 61 - .../django_airavata_workspace/js/utils/urls.ts | 93 + .../js/web-components/ComputeResourceSelector.vue | 138 +- .../ExperimentComputeResourceSelector.vue | 115 +- .../js/web-components/ExperimentEditor.vue | 470 +- .../GroupResourceProfileSelector.vue | 150 +- .../js/web-components/ProjectSelector.vue | 118 +- .../js/web-components/QueueSettingsEditor.vue | 343 +- .../input-editors/CheckboxInputEditor.vue | 128 +- .../input-editors/FileInputEditor.vue | 69 +- .../input-editors/InlineOptionsMixin.js | 50 - .../input-editors/InlineOptionsMixin.ts | 84 + .../input-editors/MultiFileInputEditor.vue | 67 +- .../input-editors/RadioButtonInputEditor.vue | 128 +- .../input-editors/RangeSliderInputEditor.vue | 99 +- .../input-editors/SelectInputEditor.vue | 128 +- .../input-editors/SliderInputEditor.vue | 96 +- .../input-editors/StringInputEditor.vue | 67 +- .../input-editors/TextareaInputEditor.vue | 72 +- .../input-editors/WebComponentInputEditorMixin.js | 9 +- .../js/web-components/store.js | 806 - .../components/project/ProjectListItem.spec.ts | 2 +- .../django_airavata/apps/workspace/tsconfig.json | 13 + .../common/js/components/ApplicationCard.vue | 44 +- .../common/js/components/ApplicationName.vue | 88 +- .../common/js/components/AutocompleteTextInput.vue | 162 +- .../static/common/js/components/BreadcrumbNav.vue | 19 +- .../common/js/components/ClipboardCopyButton.vue | 69 +- .../common/js/components/ClipboardCopyLink.vue | 59 +- .../static/common/js/components/CodeEditor.vue | 105 +- .../common/js/components/ComputeResourceName.vue | 78 +- .../common/js/components/ConfirmationButton.vue | 48 +- .../common/js/components/ConfirmationDialog.vue | 62 +- .../common/js/components/DataProductViewer.vue | 89 +- .../static/common/js/components/DeleteButton.vue | 42 +- .../static/common/js/components/DeleteLink.vue | 36 +- .../common/js/components/ExperimentStatusBadge.vue | 55 +- .../static/common/js/components/FavoriteToggle.vue | 62 +- .../common/js/components/GatewayGroupsBadge.vue | 72 +- .../js/components/GatewayNoticesContainer.vue | 28 +- .../static/common/js/components/HumanDate.vue | 40 +- .../static/common/js/components/Linkify.vue | 51 +- .../static/common/js/components/MainLayout.vue | 159 +- .../common/js/components/NotificationsDisplay.vue | 205 +- .../common/js/components/NotificationsPanel.vue | 86 +- .../static/common/js/components/Pager.vue | 80 +- .../static/common/js/components/ShareButton.vue | 607 +- .../common/js/components/SharedEntityEditor.vue | 428 +- .../static/common/js/components/Sidebar.vue | 5 +- .../static/common/js/components/SidebarFeed.vue | 30 +- .../common/js/components/SidebarFeedItem.vue | 48 +- .../static/common/js/components/SidebarHeader.vue | 21 +- .../common/js/components/SshPromptNotification.vue | 151 +- .../common/js/components/UnsavedChangesGuard.vue | 69 +- .../static/common/js/components/Uppy.vue | 278 +- .../static/common/js/components/ValidatedForm.vue | 126 +- .../common/js/components/ValidatedFormGroup.vue | 28 +- .../django_airavata/static/common/js/entry.js | 8 +- .../django_airavata/static/common/js/env.d.ts | 34 + .../{ValidationErrors.js => ValidationErrors.ts} | 16 +- .../{vuelidateHelpers.js => vuelidateHelpers.ts} | 20 +- .../static/common/js/layouts/ListLayout.vue | 92 +- .../{ValidationParent.js => ValidationParent.ts} | 19 +- .../{Notification.js => Notification.ts} | 22 +- .../{NotificationList.js => NotificationList.ts} | 12 +- .../static/common/js/stores/experiment.ts | 334 + .../static/common/js/stores/user.ts | 489 + .../static/common/js/stores/webComponents.ts | 857 + .../static/common/js/types/experiment.ts | 38 + .../django_airavata/static/common/js/types/user.ts | 73 + .../django_airavata/static/common/js/utils.js | 23 - .../django_airavata/static/common/js/utils.ts | 35 + .../static/common/js/utils/{dates.js => dates.ts} | 24 +- .../django_airavata/static/common/package.json | 2 + .../django_airavata/static/common/tsconfig.json | 4 + ...-04-22-track-a-vue-composition-ts-pinia-plan.md | 867 + ...4-22-track-a-vue-composition-ts-pinia-design.md | 398 + .../docs/superpowers/track-a-wip-commits.patch | 43119 +++++++++++++++++++ airavata-django-portal/package-lock.json | 269 +- airavata-django-portal/tooling/eslint.config.js | 44 +- airavata-django-portal/tooling/package.json | 1 + 334 files changed, 61407 insertions(+), 15327 deletions(-)
