From 61971ecc3d3477cc7ce8beafb51ee450dd259716 Mon Sep 17 00:00:00 2001 From: nsemets Date: Mon, 22 Jun 2026 14:43:48 +0300 Subject: [PATCH 01/15] feat(home-page): updated translations --- src/assets/i18n/en.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/assets/i18n/en.json b/src/assets/i18n/en.json index 452a5228a..9a514d5cb 100644 --- a/src/assets/i18n/en.json +++ b/src/assets/i18n/en.json @@ -850,19 +850,19 @@ "support": { "sections": { "collect": { - "description": "Store data, code, and other materials in OSF Storage, or connect your Dropbox or other third-party account. Every file gets a unique, persistent URL for citing and sharing", + "description": "Store your datasets, code, and research materials in a trusted generalist repository then link them to your registration to keep them findable, citable, and preserved for the long term.", "title": "Collect and Analyze Data" }, "design": { - "description": "Start a project and add collaborators, giving them access to protocols and other research materials. Built-in version control tracks the evolution of your study", + "description": "Register your study design and invite collaborators to review your protocols and research materials before data collection begins.", "title": "Design Your Study" }, "publish": { - "description": "Share papers in OSF Preprints or a community-based preprint provider, so others can find and cite your work. Track impact with metrics like downloads and view counts", + "description": "Share papers in OSF Preprints or a community-based preprint provider, so others can find and cite your work. Track impact with metrics like downloads and view counts.", "title": "Publish Your Reports" }, "search": { - "description": "Find papers, data, and materials to inspire your next research project. Search public projects to build on the work of others and find new collaborators", + "description": "Find papers, data, and materials to inspire your next research project. Search public registrations and preprints to build on the work of others and find new collaborators.", "title": "Search And Discover" } }, From 12bb6737bea7b66ee2ee80b876dd5bf3c922673b Mon Sep 17 00:00:00 2001 From: nsemets Date: Mon, 29 Jun 2026 16:04:00 +0300 Subject: [PATCH 02/15] feat(icons): changed icons to be reusable --- .../institutions-list.component.html | 2 +- .../meetings-landing.component.html | 2 +- .../my-projects/my-projects.component.html | 2 +- .../my-preprints/my-preprints.component.html | 2 +- .../preprints-landing.component.html | 2 +- .../preprints-landing.component.scss | 2 +- .../my-registrations.component.html | 2 +- .../registries-landing.component.html | 2 +- src/assets/icons/colored/collections-dark.svg | 3 - src/assets/icons/colored/collections.svg | 2 +- .../icons/colored/institutions-dark.svg | 20 ---- src/assets/icons/colored/institutions.svg | 24 ++-- src/assets/icons/colored/meetings-dark.svg | 18 --- src/assets/icons/colored/meetings.svg | 20 ++-- src/assets/icons/colored/preprints-dark.svg | 11 -- src/assets/icons/colored/preprints.svg | 4 +- src/assets/icons/colored/projects-dark.svg | 12 -- src/assets/icons/colored/projects.svg | 8 +- src/assets/icons/colored/registries-dark.svg | 11 -- src/assets/icons/colored/registries.svg | 6 +- src/styles/_icons.scss | 104 ++++-------------- 21 files changed, 59 insertions(+), 200 deletions(-) delete mode 100644 src/assets/icons/colored/collections-dark.svg delete mode 100644 src/assets/icons/colored/institutions-dark.svg delete mode 100644 src/assets/icons/colored/meetings-dark.svg delete mode 100644 src/assets/icons/colored/preprints-dark.svg delete mode 100644 src/assets/icons/colored/projects-dark.svg delete mode 100644 src/assets/icons/colored/registries-dark.svg diff --git a/src/app/features/institutions/pages/institutions-list/institutions-list.component.html b/src/app/features/institutions/pages/institutions-list/institutions-list.component.html index a1d7fd280..edc495ac4 100644 --- a/src/app/features/institutions/pages/institutions-list/institutions-list.component.html +++ b/src/app/features/institutions/pages/institutions-list/institutions-list.component.html @@ -3,7 +3,7 @@ class="pt-6" [description]="'institutions.description' | translate" [title]="'institutions.title' | translate" - [icon]="'custom-icon-institutions-dark'" + [icon]="'custom-icon-institutions'" /> diff --git a/src/app/features/meetings/pages/meetings-landing/meetings-landing.component.html b/src/app/features/meetings/pages/meetings-landing/meetings-landing.component.html index a8c947d57..4066d7384 100644 --- a/src/app/features/meetings/pages/meetings-landing/meetings-landing.component.html +++ b/src/app/features/meetings/pages/meetings-landing/meetings-landing.component.html @@ -1,6 +1,6 @@ diff --git a/src/app/features/my-projects/my-projects.component.html b/src/app/features/my-projects/my-projects.component.html index e3a806661..4feca2d83 100644 --- a/src/app/features/my-projects/my-projects.component.html +++ b/src/app/features/my-projects/my-projects.component.html @@ -3,7 +3,7 @@ [showButton]="true" [buttonLabel]="'myProjects.header.createProject' | translate" [title]="'myProjects.header.title' | translate" - [icon]="'custom-icon-projects-dark'" + [icon]="'custom-icon-projects'" (buttonClick)="createProject()" /> diff --git a/src/app/features/preprints/pages/my-preprints/my-preprints.component.html b/src/app/features/preprints/pages/my-preprints/my-preprints.component.html index b0f7b6659..67234dbe3 100644 --- a/src/app/features/preprints/pages/my-preprints/my-preprints.component.html +++ b/src/app/features/preprints/pages/my-preprints/my-preprints.component.html @@ -1,7 +1,7 @@
- +

{{ 'preprints.title' | translate }}

@if (isProviderLoading()) { diff --git a/src/app/features/preprints/pages/preprints-landing/preprints-landing.component.scss b/src/app/features/preprints/pages/preprints-landing/preprints-landing.component.scss index 885733499..ec000793c 100644 --- a/src/app/features/preprints/pages/preprints-landing/preprints-landing.component.scss +++ b/src/app/features/preprints/pages/preprints-landing/preprints-landing.component.scss @@ -1,7 +1,7 @@ .subheader { color: var(--dark-blue-1); - .custom-icon-preprints-dark { + .custom-icon-preprints { width: 2.25rem; height: 2.25rem; } diff --git a/src/app/features/registries/pages/my-registrations/my-registrations.component.html b/src/app/features/registries/pages/my-registrations/my-registrations.component.html index b389c5af8..28d3d9893 100644 --- a/src/app/features/registries/pages/my-registrations/my-registrations.component.html +++ b/src/app/features/registries/pages/my-registrations/my-registrations.component.html @@ -2,7 +2,7 @@
- - diff --git a/src/assets/icons/colored/collections.svg b/src/assets/icons/colored/collections.svg index fd98f14a2..b7a4f0fb3 100644 --- a/src/assets/icons/colored/collections.svg +++ b/src/assets/icons/colored/collections.svg @@ -1,3 +1,3 @@ - + diff --git a/src/assets/icons/colored/institutions-dark.svg b/src/assets/icons/colored/institutions-dark.svg deleted file mode 100644 index 78e1fb33c..000000000 --- a/src/assets/icons/colored/institutions-dark.svg +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - - - - - - - - - diff --git a/src/assets/icons/colored/institutions.svg b/src/assets/icons/colored/institutions.svg index 6b1288a06..5981e0e62 100644 --- a/src/assets/icons/colored/institutions.svg +++ b/src/assets/icons/colored/institutions.svg @@ -1,20 +1,20 @@ - - - - - - - - - - - + + + + + + + + + + + - + diff --git a/src/assets/icons/colored/meetings-dark.svg b/src/assets/icons/colored/meetings-dark.svg deleted file mode 100644 index a27f4157a..000000000 --- a/src/assets/icons/colored/meetings-dark.svg +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - - - - - - - - - - - - diff --git a/src/assets/icons/colored/meetings.svg b/src/assets/icons/colored/meetings.svg index 08247183b..53e2fe927 100644 --- a/src/assets/icons/colored/meetings.svg +++ b/src/assets/icons/colored/meetings.svg @@ -1,18 +1,18 @@ - - - - - - - - - + + + + + + + + + - + diff --git a/src/assets/icons/colored/preprints-dark.svg b/src/assets/icons/colored/preprints-dark.svg deleted file mode 100644 index fe5908a69..000000000 --- a/src/assets/icons/colored/preprints-dark.svg +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - diff --git a/src/assets/icons/colored/preprints.svg b/src/assets/icons/colored/preprints.svg index 7573b0285..71f5eb180 100644 --- a/src/assets/icons/colored/preprints.svg +++ b/src/assets/icons/colored/preprints.svg @@ -1,7 +1,7 @@ - - + + diff --git a/src/assets/icons/colored/projects-dark.svg b/src/assets/icons/colored/projects-dark.svg deleted file mode 100644 index a821a23e6..000000000 --- a/src/assets/icons/colored/projects-dark.svg +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - - diff --git a/src/assets/icons/colored/projects.svg b/src/assets/icons/colored/projects.svg index 26ef2bc17..6b8485219 100644 --- a/src/assets/icons/colored/projects.svg +++ b/src/assets/icons/colored/projects.svg @@ -1,12 +1,12 @@ - - - + + + - + diff --git a/src/assets/icons/colored/registries-dark.svg b/src/assets/icons/colored/registries-dark.svg deleted file mode 100644 index a2a34f6f6..000000000 --- a/src/assets/icons/colored/registries-dark.svg +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - diff --git a/src/assets/icons/colored/registries.svg b/src/assets/icons/colored/registries.svg index e2a621fac..941d98cb6 100644 --- a/src/assets/icons/colored/registries.svg +++ b/src/assets/icons/colored/registries.svg @@ -1,11 +1,11 @@ - - + + - + diff --git a/src/styles/_icons.scss b/src/styles/_icons.scss index 6689d4ec5..56f00e6dd 100644 --- a/src/styles/_icons.scss +++ b/src/styles/_icons.scss @@ -1,85 +1,34 @@ -.custom-icon-registries { - background: url("/assets/icons/colored/registries.svg") no-repeat center; - background-size: contain; +@mixin custom-icon-mask($url) { + display: inline-block; width: 1rem; height: 1rem; + background-color: currentColor; + mask: url($url) no-repeat center / contain; + -webkit-mask: url($url) no-repeat center / contain; +} + +.custom-icon-registries { + @include custom-icon-mask("/assets/icons/colored/registries.svg"); } .custom-icon-preprints { - background: url("/assets/icons/colored/preprints.svg") no-repeat center; - background-size: contain; - width: 1rem; - height: 1rem; + @include custom-icon-mask("/assets/icons/colored/preprints.svg"); } .custom-icon-collections { - background: url("/assets/icons/colored/collections.svg") no-repeat center; - background-size: contain; - width: 1rem; - height: 1rem; + @include custom-icon-mask("/assets/icons/colored/collections.svg"); } .custom-icon-institutions { - background: url("/assets/icons/colored/institutions.svg") no-repeat center; - background-size: contain; - width: 1rem; - height: 1rem; + @include custom-icon-mask("/assets/icons/colored/institutions.svg"); } .custom-icon-projects { - background: url("/assets/icons/colored/projects.svg") no-repeat center; - background-size: contain; - width: 1rem; - height: 1rem; + @include custom-icon-mask("/assets/icons/colored/projects.svg"); } .custom-icon-meetings { - background: url("/assets/icons/colored/meetings.svg") no-repeat center; - background-size: contain; - width: 1rem; - height: 1rem; -} - -.custom-icon-registries-dark { - background: url("/assets/icons/colored/registries-dark.svg") no-repeat center; - background-size: contain; - width: 1rem; - height: 1rem; -} - -.custom-icon-preprints-dark { - background: url("/assets/icons/colored/preprints-dark.svg") no-repeat center; - background-size: contain; - width: 1rem; - height: 1rem; -} - -.custom-icon-collections-dark { - background: url("/assets/icons/colored/collections-dark.svg") no-repeat center; - background-size: contain; - width: 1rem; - height: 1rem; -} - -.custom-icon-institutions-dark { - background: url("/assets/icons/colored/institutions-dark.svg") no-repeat center; - background-size: contain; - width: 1rem; - height: 1rem; -} - -.custom-icon-projects-dark { - background: url("/assets/icons/colored/projects-dark.svg") no-repeat center; - background-size: contain; - width: 1rem; - height: 1rem; -} - -.custom-icon-meetings-dark { - background: url("/assets/icons/colored/meetings-dark.svg") no-repeat center; - background-size: contain; - width: 1rem; - height: 1rem; + @include custom-icon-mask("/assets/icons/colored/meetings.svg"); } .custom-icon-data { @@ -118,38 +67,23 @@ } .custom-icon-data-dark { - background: url("/assets/icons/colored/data.svg") no-repeat center; - background-size: contain; - width: 1rem; - height: 1rem; + @include custom-icon-mask("/assets/icons/colored/data.svg"); } .custom-icon-code-dark { - background: url("/assets/icons/colored/code.svg") no-repeat center; - background-size: contain; - width: 1rem; - height: 1rem; + @include custom-icon-mask("/assets/icons/colored/code.svg"); } .custom-icon-materials-dark { - background: url("/assets/icons/colored/materials.svg") no-repeat center; - background-size: contain; - width: 1rem; - height: 1rem; + @include custom-icon-mask("/assets/icons/colored/materials.svg"); } .custom-icon-papers-dark { - background: url("/assets/icons/colored/papers.svg") no-repeat center; - background-size: contain; - width: 1rem; - height: 1rem; + @include custom-icon-mask("/assets/icons/colored/papers.svg"); } .custom-icon-supplements-dark { - background: url("/assets/icons/colored/supplements.svg") no-repeat center; - background-size: contain; - width: 1rem; - height: 1rem; + @include custom-icon-mask("/assets/icons/colored/supplements.svg"); } .icon-resource-size { From abe5259051020d06c1544fd2b1d118c3532e7de1 Mon Sep 17 00:00:00 2001 From: nsemets Date: Tue, 30 Jun 2026 10:11:43 +0300 Subject: [PATCH 03/15] feat(dashboard): added workflow launcher --- .../workflow-launcher-card.component.html | 16 ++ .../workflow-launcher-card.component.scss | 51 +++++ .../workflow-launcher-card.component.spec.ts | 60 ++++++ .../workflow-launcher-card.component.ts | 21 ++ .../workflow-launcher-section.component.html | 15 ++ .../workflow-launcher-section.component.scss | 3 + ...orkflow-launcher-section.component.spec.ts | 54 +++++ .../workflow-launcher-section.component.ts | 17 ++ .../constants/dashboard-products.constants.ts | 26 +++ src/app/features/home/constants/index.ts | 1 - .../constants/workflow-launcher.constants.ts | 36 ++++ src/app/features/home/home.component.ts | 2 +- .../models/dashboard-product-link.model.ts | 7 + .../models/workflow-launcher-card.model.ts | 15 ++ .../pages/dashboard/dashboard.component.html | 166 +++++++--------- .../dashboard/dashboard.component.spec.ts | 185 ++++++++++++++++-- .../pages/dashboard/dashboard.component.ts | 24 ++- src/app/features/home/pages/index.ts | 1 - src/assets/i18n/en.json | 27 +++ 19 files changed, 605 insertions(+), 122 deletions(-) create mode 100644 src/app/features/home/components/workflow-launcher-card/workflow-launcher-card.component.html create mode 100644 src/app/features/home/components/workflow-launcher-card/workflow-launcher-card.component.scss create mode 100644 src/app/features/home/components/workflow-launcher-card/workflow-launcher-card.component.spec.ts create mode 100644 src/app/features/home/components/workflow-launcher-card/workflow-launcher-card.component.ts create mode 100644 src/app/features/home/components/workflow-launcher-section/workflow-launcher-section.component.html create mode 100644 src/app/features/home/components/workflow-launcher-section/workflow-launcher-section.component.scss create mode 100644 src/app/features/home/components/workflow-launcher-section/workflow-launcher-section.component.spec.ts create mode 100644 src/app/features/home/components/workflow-launcher-section/workflow-launcher-section.component.ts create mode 100644 src/app/features/home/constants/dashboard-products.constants.ts delete mode 100644 src/app/features/home/constants/index.ts create mode 100644 src/app/features/home/constants/workflow-launcher.constants.ts create mode 100644 src/app/features/home/models/dashboard-product-link.model.ts create mode 100644 src/app/features/home/models/workflow-launcher-card.model.ts delete mode 100644 src/app/features/home/pages/index.ts diff --git a/src/app/features/home/components/workflow-launcher-card/workflow-launcher-card.component.html b/src/app/features/home/components/workflow-launcher-card/workflow-launcher-card.component.html new file mode 100644 index 000000000..120c6a751 --- /dev/null +++ b/src/app/features/home/components/workflow-launcher-card/workflow-launcher-card.component.html @@ -0,0 +1,16 @@ +
+
+ +

{{ card().titleKey | translate }}

+ + +
+

{{ card().descriptionKey | translate }}

+ + +
+ diff --git a/src/app/features/home/components/workflow-launcher-card/workflow-launcher-card.component.scss b/src/app/features/home/components/workflow-launcher-card/workflow-launcher-card.component.scss new file mode 100644 index 000000000..154d456c6 --- /dev/null +++ b/src/app/features/home/components/workflow-launcher-card/workflow-launcher-card.component.scss @@ -0,0 +1,51 @@ +.workflow-launcher-card { + background-color: var(--white); + border: 1px solid var(--grey-2); + border-radius: 0.5rem; + overflow: hidden; +} + +.card-header { + background-color: var(--workflow-launcher-card-header-bg); +} + +.card-icon { + color: var(--workflow-launcher-card-icon-color); +} + +.card-button { + --p-button-primary-background: var(--workflow-launcher-card-button-bg); + --p-button-primary-hover-background: var(--workflow-launcher-card-button-hover-bg); + --p-button-primary-active-background: var(--workflow-launcher-card-button-hover-bg); + --p-button-primary-border-color: var(--workflow-launcher-card-button-bg); + --p-button-primary-hover-border-color: var(--workflow-launcher-card-button-hover-bg); + --p-button-primary-active-border-color: var(--workflow-launcher-card-button-hover-bg); +} + +.workflow-launcher-card--blue { + --workflow-launcher-card-header-bg: var(--bg-blue-2); + --workflow-launcher-card-icon-color: var(--blue-2); + --workflow-launcher-card-button-bg: var(--blue-2); + --workflow-launcher-card-button-hover-bg: var(--pr-blue-3); +} + +.workflow-launcher-card--teal { + --workflow-launcher-card-header-bg: var(--blue-1-bg); + --workflow-launcher-card-icon-color: var(--blue-1); + --workflow-launcher-card-button-bg: var(--blue-1); + --workflow-launcher-card-button-hover-bg: var(--dark-blue-2); +} + +.workflow-launcher-card--teal-green { + --workflow-launcher-card-header-bg: var(--green-2-bg); + --workflow-launcher-card-icon-color: var(--green-2-alt); + --workflow-launcher-card-button-bg: var(--green-2-alt); + --workflow-launcher-card-button-hover-bg: var(--green-1-alt); +} + +.workflow-launcher-card--green { + --workflow-launcher-card-header-bg: var(--green-1-bg); + --workflow-launcher-card-icon-color: var(--green-1-alt); + --workflow-launcher-card-button-bg: var(--green-1-alt); + --workflow-launcher-card-button-hover-bg: var(--green-2-alt); +} diff --git a/src/app/features/home/components/workflow-launcher-card/workflow-launcher-card.component.spec.ts b/src/app/features/home/components/workflow-launcher-card/workflow-launcher-card.component.spec.ts new file mode 100644 index 000000000..8ef45c030 --- /dev/null +++ b/src/app/features/home/components/workflow-launcher-card/workflow-launcher-card.component.spec.ts @@ -0,0 +1,60 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; +import { provideRouter } from '@angular/router'; + +import { provideOSFCore } from '@testing/osf.testing.provider'; + +import { WorkflowLauncherCard, WorkflowLauncherCardTheme } from '../../models/workflow-launcher-card.model'; + +import { WorkflowLauncherCardComponent } from './workflow-launcher-card.component'; + +describe('WorkflowLauncherCardComponent', () => { + let component: WorkflowLauncherCardComponent; + let fixture: ComponentFixture; + + const mockCard: WorkflowLauncherCard = { + iconClass: 'custom-icon-registries', + titleKey: 'home.loggedIn.dashboard.workflowLauncher.cards.studyPlans.title', + descriptionKey: 'home.loggedIn.dashboard.workflowLauncher.cards.studyPlans.description', + buttonLabelKey: 'home.loggedIn.dashboard.workflowLauncher.cards.studyPlans.button', + theme: WorkflowLauncherCardTheme.Blue, + routerLink: '/registries/osf/new', + }; + + beforeEach(() => { + TestBed.configureTestingModule({ + imports: [WorkflowLauncherCardComponent], + providers: [provideOSFCore(), provideRouter([])], + }); + + fixture = TestBed.createComponent(WorkflowLauncherCardComponent); + component = fixture.componentInstance; + }); + + it('should create', () => { + fixture.componentRef.setInput('card', mockCard); + expect(component).toBeTruthy(); + }); + + it('should expose the card input value', () => { + fixture.componentRef.setInput('card', mockCard); + + expect(component.card()).toEqual(mockCard); + }); + + it('should update the card input value', () => { + fixture.componentRef.setInput('card', mockCard); + + const updatedCard: WorkflowLauncherCard = { + iconClass: 'custom-icon-preprints', + titleKey: 'home.loggedIn.dashboard.workflowLauncher.cards.preprints.title', + descriptionKey: 'home.loggedIn.dashboard.workflowLauncher.cards.preprints.description', + buttonLabelKey: 'home.loggedIn.dashboard.workflowLauncher.cards.preprints.button', + theme: WorkflowLauncherCardTheme.TealGreen, + routerLink: '/preprints/select', + }; + + fixture.componentRef.setInput('card', updatedCard); + + expect(component.card()).toEqual(updatedCard); + }); +}); diff --git a/src/app/features/home/components/workflow-launcher-card/workflow-launcher-card.component.ts b/src/app/features/home/components/workflow-launcher-card/workflow-launcher-card.component.ts new file mode 100644 index 000000000..cc245a9d0 --- /dev/null +++ b/src/app/features/home/components/workflow-launcher-card/workflow-launcher-card.component.ts @@ -0,0 +1,21 @@ +import { TranslatePipe } from '@ngx-translate/core'; + +import { Button } from 'primeng/button'; + +import { ChangeDetectionStrategy, Component, input } from '@angular/core'; +import { RouterLink } from '@angular/router'; + +import { IconComponent } from '@osf/shared/components/icon/icon.component'; + +import { WorkflowLauncherCard } from '../../models/workflow-launcher-card.model'; + +@Component({ + selector: 'osf-workflow-launcher-card', + imports: [Button, IconComponent, RouterLink, TranslatePipe], + templateUrl: './workflow-launcher-card.component.html', + styleUrl: './workflow-launcher-card.component.scss', + changeDetection: ChangeDetectionStrategy.OnPush, +}) +export class WorkflowLauncherCardComponent { + card = input.required(); +} diff --git a/src/app/features/home/components/workflow-launcher-section/workflow-launcher-section.component.html b/src/app/features/home/components/workflow-launcher-section/workflow-launcher-section.component.html new file mode 100644 index 000000000..988a529fb --- /dev/null +++ b/src/app/features/home/components/workflow-launcher-section/workflow-launcher-section.component.html @@ -0,0 +1,15 @@ +
+
+

{{ 'home.loggedIn.dashboard.workflowLauncher.title' | translate }}

+

{{ 'home.loggedIn.dashboard.workflowLauncher.description1' | translate }}

+

{{ 'home.loggedIn.dashboard.workflowLauncher.description2' | translate }}

+
+ +
+ @for (card of cards; track card.titleKey) { +
+ +
+ } +
+
diff --git a/src/app/features/home/components/workflow-launcher-section/workflow-launcher-section.component.scss b/src/app/features/home/components/workflow-launcher-section/workflow-launcher-section.component.scss new file mode 100644 index 000000000..eebdccfad --- /dev/null +++ b/src/app/features/home/components/workflow-launcher-section/workflow-launcher-section.component.scss @@ -0,0 +1,3 @@ +.workflow-launcher { + background-color: var(--white); +} diff --git a/src/app/features/home/components/workflow-launcher-section/workflow-launcher-section.component.spec.ts b/src/app/features/home/components/workflow-launcher-section/workflow-launcher-section.component.spec.ts new file mode 100644 index 000000000..594d7aa72 --- /dev/null +++ b/src/app/features/home/components/workflow-launcher-section/workflow-launcher-section.component.spec.ts @@ -0,0 +1,54 @@ +import { MockComponents } from 'ng-mocks'; + +import { ComponentFixture, TestBed } from '@angular/core/testing'; +import { provideRouter } from '@angular/router'; + +import { IconComponent } from '@osf/shared/components/icon/icon.component'; + +import { provideOSFCore } from '@testing/osf.testing.provider'; + +import { WORKFLOW_LAUNCHER_CARDS } from '../../constants/workflow-launcher.constants'; + +import { WorkflowLauncherSectionComponent } from './workflow-launcher-section.component'; + +describe('WorkflowLauncherSectionComponent', () => { + let fixture: ComponentFixture; + + beforeEach(() => { + TestBed.configureTestingModule({ + imports: [WorkflowLauncherSectionComponent, ...MockComponents(IconComponent)], + providers: [provideOSFCore(), provideRouter([])], + }); + + fixture = TestBed.createComponent(WorkflowLauncherSectionComponent); + fixture.detectChanges(); + }); + + it('should create', () => { + expect(fixture.componentInstance).toBeTruthy(); + }); + + it('should expose workflow launcher cards from constants', () => { + expect(fixture.componentInstance.cards).toEqual(WORKFLOW_LAUNCHER_CARDS); + }); + + it('should render the workflow launcher intro copy', async () => { + await fixture.whenStable(); + fixture.detectChanges(); + + const intro = fixture.nativeElement.querySelector('section.workflow-launcher > .flex.flex-column'); + const heading = intro?.querySelector('h1'); + const descriptions = intro?.querySelectorAll('p'); + + expect(heading?.textContent?.trim()).toBe('home.loggedIn.dashboard.workflowLauncher.title'); + expect(descriptions?.length).toBe(2); + expect(descriptions?.[0]?.textContent?.trim()).toBe('home.loggedIn.dashboard.workflowLauncher.description1'); + expect(descriptions?.[1]?.textContent?.trim()).toBe('home.loggedIn.dashboard.workflowLauncher.description2'); + }); + + it('should render a card for each workflow launcher entry', () => { + const cards = fixture.nativeElement.querySelectorAll('osf-workflow-launcher-card'); + + expect(cards.length).toBe(WORKFLOW_LAUNCHER_CARDS.length); + }); +}); diff --git a/src/app/features/home/components/workflow-launcher-section/workflow-launcher-section.component.ts b/src/app/features/home/components/workflow-launcher-section/workflow-launcher-section.component.ts new file mode 100644 index 000000000..8062383af --- /dev/null +++ b/src/app/features/home/components/workflow-launcher-section/workflow-launcher-section.component.ts @@ -0,0 +1,17 @@ +import { TranslatePipe } from '@ngx-translate/core'; + +import { ChangeDetectionStrategy, Component } from '@angular/core'; + +import { WORKFLOW_LAUNCHER_CARDS } from '../../constants/workflow-launcher.constants'; +import { WorkflowLauncherCardComponent } from '../workflow-launcher-card/workflow-launcher-card.component'; + +@Component({ + selector: 'osf-workflow-launcher-section', + imports: [WorkflowLauncherCardComponent, TranslatePipe], + templateUrl: './workflow-launcher-section.component.html', + styleUrl: './workflow-launcher-section.component.scss', + changeDetection: ChangeDetectionStrategy.OnPush, +}) +export class WorkflowLauncherSectionComponent { + readonly cards = WORKFLOW_LAUNCHER_CARDS; +} diff --git a/src/app/features/home/constants/dashboard-products.constants.ts b/src/app/features/home/constants/dashboard-products.constants.ts new file mode 100644 index 000000000..75ddab13e --- /dev/null +++ b/src/app/features/home/constants/dashboard-products.constants.ts @@ -0,0 +1,26 @@ +import { DashboardProductLink } from '../models/dashboard-product-link.model'; + +export const DASHBOARD_PRODUCT_LINKS: DashboardProductLink[] = [ + { + link: 'https://www.cos.io/products/osf-collections', + imageSrc: 'assets/images/dashboard/products/osf-collections.png', + altKey: 'home.loggedIn.dashboard.images.osfCollectionsImageAltText', + external: true, + testId: 'products-collections', + }, + { + link: '/institutions', + imageSrc: 'assets/images/dashboard/products/osf-institutions.png', + altKey: 'home.loggedIn.dashboard.images.osfInstitutionsImageAltText', + }, + { + link: '/registries', + imageSrc: 'assets/images/dashboard/products/osf-registries.png', + altKey: 'home.loggedIn.dashboard.images.osfRegistriesImageAltTest', + }, + { + link: '/preprints', + imageSrc: 'assets/images/dashboard/products/osf-preprints.png', + altKey: 'home.loggedIn.dashboard.images.osfPreprintsImageAltTest', + }, +]; diff --git a/src/app/features/home/constants/index.ts b/src/app/features/home/constants/index.ts deleted file mode 100644 index 370767922..000000000 --- a/src/app/features/home/constants/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './data'; diff --git a/src/app/features/home/constants/workflow-launcher.constants.ts b/src/app/features/home/constants/workflow-launcher.constants.ts new file mode 100644 index 000000000..39bf5310c --- /dev/null +++ b/src/app/features/home/constants/workflow-launcher.constants.ts @@ -0,0 +1,36 @@ +import { WorkflowLauncherCard, WorkflowLauncherCardTheme } from '../models/workflow-launcher-card.model'; + +export const WORKFLOW_LAUNCHER_CARDS: WorkflowLauncherCard[] = [ + { + iconClass: 'custom-icon-registries', + titleKey: 'home.loggedIn.dashboard.workflowLauncher.cards.studyPlans.title', + descriptionKey: 'home.loggedIn.dashboard.workflowLauncher.cards.studyPlans.description', + buttonLabelKey: 'home.loggedIn.dashboard.workflowLauncher.cards.studyPlans.button', + theme: WorkflowLauncherCardTheme.Blue, + routerLink: '/registries/osf/new', + }, + { + iconClass: 'custom-icon-projects', + titleKey: 'home.loggedIn.dashboard.workflowLauncher.cards.researchMaterials.title', + descriptionKey: 'home.loggedIn.dashboard.workflowLauncher.cards.researchMaterials.description', + buttonLabelKey: 'home.loggedIn.dashboard.workflowLauncher.cards.researchMaterials.button', + theme: WorkflowLauncherCardTheme.Teal, + routerLink: '/privacy-policy', + }, + { + iconClass: 'custom-icon-preprints', + titleKey: 'home.loggedIn.dashboard.workflowLauncher.cards.preprints.title', + descriptionKey: 'home.loggedIn.dashboard.workflowLauncher.cards.preprints.description', + buttonLabelKey: 'home.loggedIn.dashboard.workflowLauncher.cards.preprints.button', + theme: WorkflowLauncherCardTheme.TealGreen, + routerLink: '/preprints/select', + }, + { + iconClass: 'fas fa-magnifying-glass', + titleKey: 'home.loggedIn.dashboard.workflowLauncher.cards.search.title', + descriptionKey: 'home.loggedIn.dashboard.workflowLauncher.cards.search.description', + buttonLabelKey: 'home.loggedIn.dashboard.workflowLauncher.cards.search.button', + theme: WorkflowLauncherCardTheme.Green, + routerLink: '/search', + }, +]; diff --git a/src/app/features/home/home.component.ts b/src/app/features/home/home.component.ts index 891e13488..fbd6f7e1b 100644 --- a/src/app/features/home/home.component.ts +++ b/src/app/features/home/home.component.ts @@ -11,7 +11,7 @@ import { Router, RouterLink } from '@angular/router'; import { IconComponent } from '@osf/shared/components/icon/icon.component'; import { SearchInputComponent } from '@osf/shared/components/search-input/search-input.component'; -import { INTEGRATION_ICONS, SLIDES } from './constants'; +import { INTEGRATION_ICONS, SLIDES } from './constants/data'; @Component({ selector: 'osf-home', diff --git a/src/app/features/home/models/dashboard-product-link.model.ts b/src/app/features/home/models/dashboard-product-link.model.ts new file mode 100644 index 000000000..3f40c022c --- /dev/null +++ b/src/app/features/home/models/dashboard-product-link.model.ts @@ -0,0 +1,7 @@ +export interface DashboardProductLink { + imageSrc: string; + altKey: string; + link: string; + external?: boolean; + testId?: string; +} diff --git a/src/app/features/home/models/workflow-launcher-card.model.ts b/src/app/features/home/models/workflow-launcher-card.model.ts new file mode 100644 index 000000000..15232abc5 --- /dev/null +++ b/src/app/features/home/models/workflow-launcher-card.model.ts @@ -0,0 +1,15 @@ +export enum WorkflowLauncherCardTheme { + Blue = 'blue', + Teal = 'teal', + TealGreen = 'teal-green', + Green = 'green', +} + +export interface WorkflowLauncherCard { + iconClass: string; + titleKey: string; + descriptionKey: string; + buttonLabelKey: string; + theme: WorkflowLauncherCardTheme; + routerLink: string; +} diff --git a/src/app/features/home/pages/dashboard/dashboard.component.html b/src/app/features/home/pages/dashboard/dashboard.component.html index 059bf4be3..334200b34 100644 --- a/src/app/features/home/pages/dashboard/dashboard.component.html +++ b/src/app/features/home/pages/dashboard/dashboard.component.html @@ -2,75 +2,70 @@ @if (areProjectsLoading()) { } @else { + + + + @if (existsProjects()) { - -
-
-

- {{ 'home.loggedIn.dashboard.quickSearch.goTo' | translate }} - - {{ 'home.loggedIn.dashboard.quickSearch.myProjects' | translate }} - - {{ 'home.loggedIn.dashboard.quickSearch.toOrganize' | translate }} - - {{ 'home.loggedIn.dashboard.quickSearch.search' | translate }} - - {{ 'home.loggedIn.dashboard.quickSearch.osf' | translate }} -

- +
+

+ {{ 'home.loggedIn.dashboard.quickSearch.goTo' | translate }} + + {{ 'home.loggedIn.dashboard.quickSearch.myProjects' | translate }} + + {{ 'home.loggedIn.dashboard.quickSearch.toOrganize' | translate }} + + {{ 'home.loggedIn.dashboard.quickSearch.search' | translate }} + + {{ 'home.loggedIn.dashboard.quickSearch.osf' | translate }} +

- -
+ -
- -

{{ 'home.loggedIn.publicProjects.title' | translate }}

-
+ +
-
-
-

{{ 'home.loggedIn.latestResearch.title' | translate }}

-

{{ 'home.loggedIn.latestResearch.subtitle' | translate }}

-
+
+ +

{{ 'home.loggedIn.publicProjects.title' | translate }}

+
- +
+
+

{{ 'home.loggedIn.latestResearch.title' | translate }}

+

{{ 'home.loggedIn.latestResearch.subtitle' | translate }}

+ +
} @else { -

{{ 'home.loggedIn.dashboard.noCreatedProject' | translate }}

@@ -99,43 +94,24 @@

{{ 'home.loggedIn.latestResearch.title' | translate }}

} -
- - - - - - - - - - - - - - +
+ @for (product of dashboardProducts; track product.imageSrc) { + @if (product.external) { + + + + } @else { + + + + } + }
} diff --git a/src/app/features/home/pages/dashboard/dashboard.component.spec.ts b/src/app/features/home/pages/dashboard/dashboard.component.spec.ts index f8683790c..0828cd1e8 100644 --- a/src/app/features/home/pages/dashboard/dashboard.component.spec.ts +++ b/src/app/features/home/pages/dashboard/dashboard.component.spec.ts @@ -18,6 +18,7 @@ import { MyProjectsTableComponent } from '@osf/shared/components/my-projects-tab import { SearchInputComponent } from '@osf/shared/components/search-input/search-input.component'; import { SubHeaderComponent } from '@osf/shared/components/sub-header/sub-header.component'; import { SortOrder } from '@osf/shared/enums/sort-order.enum'; +import { MyResourcesItem } from '@osf/shared/models/my-resources/my-resources.model'; import { CustomDialogService } from '@osf/shared/services/custom-dialog.service'; import { ProjectRedirectDialogService } from '@osf/shared/services/project-redirect-dialog.service'; import { ClearMyResources, GetMyProjects, MyResourcesSelectors } from '@osf/shared/stores/my-resources'; @@ -33,6 +34,9 @@ import { SignalOverride, } from '@testing/providers/store-provider.mock'; +import { WorkflowLauncherSectionComponent } from '../../components/workflow-launcher-section/workflow-launcher-section.component'; +import { DASHBOARD_PRODUCT_LINKS } from '../../constants/dashboard-products.constants'; + import { DashboardComponent } from './dashboard.component'; describe('DashboardComponent', () => { @@ -43,6 +47,26 @@ describe('DashboardComponent', () => { let customDialogService: CustomDialogServiceMockType; let projectRedirectDialogService: { showProjectRedirectDialog: Mock }; + const projectItem: MyResourcesItem = { + id: '1', + type: 'nodes', + title: 'Alpha project', + dateCreated: '2024-01-01', + dateModified: '2024-01-02', + isPublic: true, + contributors: [], + }; + + const secondProjectItem: MyResourcesItem = { + id: '2', + type: 'nodes', + title: 'Beta project', + dateCreated: '2024-01-03', + dateModified: '2024-01-04', + isPublic: false, + contributors: [], + }; + const defaultSignals: SignalOverride[] = [ { selector: MyResourcesSelectors.getProjects, value: [] }, { selector: MyResourcesSelectors.getTotalProjects, value: 0 }, @@ -71,7 +95,8 @@ describe('DashboardComponent', () => { SearchInputComponent, IconComponent, LoadingSpinnerComponent, - ScheduledBannerComponent + ScheduledBannerComponent, + WorkflowLauncherSectionComponent ), ], providers: [ @@ -91,9 +116,22 @@ describe('DashboardComponent', () => { fixture.detectChanges(); } - it('should create', () => { + afterEach(() => { + vi.useRealTimers(); + }); + + it('should create and fetch projects with default params on init', () => { setup(); + expect(component).toBeTruthy(); + expect(store.dispatch).toHaveBeenCalledWith( + new GetMyProjects(1, 10, { + searchValue: '', + searchFields: ['title'], + sortColumn: undefined, + sortOrder: SortOrder.Asc, + }) + ); }); it('should read query params and fetch projects on init', () => { @@ -122,6 +160,33 @@ describe('DashboardComponent', () => { ); }); + it('should sync total projects count into table params', () => { + setup({ selectorOverrides: [{ selector: MyResourcesSelectors.getTotalProjects, value: 42 }] }); + + expect(component.tableParams().totalRecords).toBe(42); + }); + + it('should default sort order when query param sort order is invalid', () => { + setup({ + routeQueryParams: { + sortField: 'title', + sortOrder: 'invalid', + }, + }); + + expect(component.sortOrder()).toBe(SortOrder.Asc); + }); + + it('should use dashboard sub header when projects exist', () => { + setup({ + selectorOverrides: [{ selector: MyResourcesSelectors.getProjects, value: [projectItem] }], + }); + + expect(component.existsProjects()).toBeTruthy(); + expect(component.subHeaderTitle()).toBe('home.loggedIn.dashboard.title'); + expect(component.subHeaderIcon()).toBe('fas fa-home'); + }); + it('should update query params on page change', () => { setup(); (routerMock.navigate as Mock).mockClear(); @@ -162,31 +227,101 @@ describe('DashboardComponent', () => { }); }); - it('should create filters from current search and sort state', () => { + it('should not update query params on sort when field is missing', () => { + setup(); + (routerMock.navigate as Mock).mockClear(); + + component.onSort({ field: undefined, order: SortOrder.Desc } as never); + + expect(routerMock.navigate).not.toHaveBeenCalled(); + }); + + it('should dispatch fetch projects with current search and sort state', () => { + setup(); + (store.dispatch as Mock).mockClear(); + + component.searchControl.setValue('alp'); + component.sortColumn.set('title'); + component.sortOrder.set(-1); + + component.fetchProjects(); + + expect(store.dispatch).toHaveBeenCalledWith( + new GetMyProjects(1, 10, { + searchValue: 'alp', + searchFields: ['title'], + sortColumn: 'title', + sortOrder: -1, + }) + ); + }); + + it('should filter projects by search value', () => { setup({ + routeQueryParams: { search: 'alp' }, selectorOverrides: [ { selector: MyResourcesSelectors.getProjects, - value: [ - { id: '1', title: 'Alpha project' }, - { id: '2', title: 'Beta project' }, - ], + value: [projectItem, secondProjectItem], }, ], }); - component.searchControl.setValue('alp'); - component.sortColumn.set('title'); - component.sortOrder.set(-1); + expect(component.filteredProjects()).toEqual([projectItem]); + }); + + it('should treat search value as existing projects when list is empty', () => { + setup({ routeQueryParams: { search: 'query' } }); + + expect(component.existsProjects()).toBeTruthy(); + expect(component.subHeaderTitle()).toBe('home.loggedIn.dashboard.title'); + expect(component.subHeaderIcon()).toBe('fas fa-home'); + }); + + it('should use welcome sub header when no projects and no search', () => { + setup(); + + expect(component.existsProjects()).toBe(false); + expect(component.subHeaderTitle()).toBe('home.loggedIn.dashboard.welcome'); + expect(component.subHeaderIcon()).toBe('home'); + }); - expect(component.createFilters()).toEqual({ - searchValue: 'alp', - searchFields: ['title'], - sortColumn: 'title', - sortOrder: -1, + it('should expose dashboard product links', () => { + setup(); + + expect(component.dashboardProducts).toBe(DASHBOARD_PRODUCT_LINKS); + }); + + it('should update query params after search debounce', () => { + vi.useFakeTimers(); + setup(); + (routerMock.navigate as Mock).mockClear(); + + component.searchControl.setValue('alpha'); + vi.advanceTimersByTime(300); + + expect(routerMock.navigate).toHaveBeenCalledWith([], { + relativeTo: TestBed.inject(ActivatedRoute), + queryParams: { + page: 1, + rows: 10, + search: 'alpha', + sortField: undefined, + sortOrder: 1, + }, + queryParamsHandling: 'merge', }); }); + it('should navigate to project and set active project', () => { + setup(); + + component.navigateToProject(projectItem); + + expect(component.activeProject()).toEqual(projectItem); + expect(routerMock.navigate).toHaveBeenCalledWith([projectItem.id]); + }); + it('should open create project dialog and redirect on close result', () => { setup(); const onClose$ = new Subject<{ project: { id: string } }>(); @@ -202,6 +337,17 @@ describe('DashboardComponent', () => { expect(projectRedirectDialogService.showProjectRedirectDialog).toHaveBeenCalledWith('p1'); }); + it('should not redirect when create project dialog closes without project id', () => { + setup(); + const onClose$ = new Subject(); + customDialogService.open.mockReturnValue(CustomDialogServiceMock.dialogRefWithClose(onClose$.asObservable())); + + component.createProject(); + onClose$.next(null); + + expect(projectRedirectDialogService.showProjectRedirectDialog).not.toHaveBeenCalled(); + }); + it('should open help link in new tab', () => { setup(); const openSpy = vi.spyOn(window, 'open').mockImplementation(() => null); @@ -219,4 +365,13 @@ describe('DashboardComponent', () => { expect(store.dispatch).toHaveBeenCalledWith(new ClearMyResources()); }); + + it('should not clear my resources on destroy on server', () => { + setup({ platformId: 'server' }); + (store.dispatch as Mock).mockClear(); + + fixture.destroy(); + + expect(store.dispatch).not.toHaveBeenCalledWith(new ClearMyResources()); + }); }); diff --git a/src/app/features/home/pages/dashboard/dashboard.component.ts b/src/app/features/home/pages/dashboard/dashboard.component.ts index f9fa9eb5c..587aaa281 100644 --- a/src/app/features/home/pages/dashboard/dashboard.component.ts +++ b/src/app/features/home/pages/dashboard/dashboard.component.ts @@ -14,7 +14,7 @@ import { takeUntilDestroyed } from '@angular/core/rxjs-interop'; import { FormControl } from '@angular/forms'; import { ActivatedRoute, Router, RouterLink } from '@angular/router'; -import { ScheduledBannerComponent } from '@core/components/osf-banners/scheduled-banner/scheduled-banner.component'; +import { ScheduledBannerComponent } from '@osf/core/components/osf-banners/scheduled-banner/scheduled-banner.component'; import { CreateProjectDialogComponent } from '@osf/features/my-projects/components'; import { IconComponent } from '@osf/shared/components/icon/icon.component'; import { LoadingSpinnerComponent } from '@osf/shared/components/loading-spinner/loading-spinner.component'; @@ -25,10 +25,13 @@ import { DEFAULT_TABLE_PARAMS } from '@osf/shared/constants/default-table-params import { SortOrder } from '@osf/shared/enums/sort-order.enum'; import { MyResourcesItem } from '@osf/shared/models/my-resources/my-resources.model'; import { MyResourcesSearchFilters } from '@osf/shared/models/my-resources/my-resources-search-filters.model'; +import { TableParameters } from '@osf/shared/models/table-parameters.model'; import { CustomDialogService } from '@osf/shared/services/custom-dialog.service'; import { ProjectRedirectDialogService } from '@osf/shared/services/project-redirect-dialog.service'; import { ClearMyResources, GetMyProjects, MyResourcesSelectors } from '@osf/shared/stores/my-resources'; -import { TableParameters } from '@shared/models/table-parameters.model'; + +import { WorkflowLauncherSectionComponent } from '../../components/workflow-launcher-section/workflow-launcher-section.component'; +import { DASHBOARD_PRODUCT_LINKS } from '../../constants/dashboard-products.constants'; @Component({ selector: 'osf-dashboard', @@ -42,6 +45,7 @@ import { TableParameters } from '@shared/models/table-parameters.model'; TranslatePipe, LoadingSpinnerComponent, ScheduledBannerComponent, + WorkflowLauncherSectionComponent, ], templateUrl: './dashboard.component.html', styleUrl: './dashboard.component.scss', @@ -73,6 +77,11 @@ export class DashboardComponent implements OnInit { }); readonly existsProjects = computed(() => this.projects().length || !!this.searchControl.value?.length); + readonly dashboardProducts = DASHBOARD_PRODUCT_LINKS; + readonly subHeaderTitle = computed(() => + this.existsProjects() ? 'home.loggedIn.dashboard.title' : 'home.loggedIn.dashboard.welcome' + ); + readonly subHeaderIcon = computed(() => (this.existsProjects() ? 'fas fa-home' : 'home')); constructor() { this.setupSearchSubscription(); @@ -136,18 +145,15 @@ export class DashboardComponent implements OnInit { } fetchProjects(): void { - const filters = this.createFilters(); - const page = Math.floor(this.tableParams().firstRowIndex / this.tableParams().rows) + 1; - this.actions.getMyProjects(page, this.tableParams().rows, filters); - } - - createFilters(): MyResourcesSearchFilters { - return { + const filters: MyResourcesSearchFilters = { searchValue: this.searchControl.value ?? '', searchFields: ['title'], sortColumn: this.sortColumn(), sortOrder: this.sortOrder(), }; + + const page = Math.floor(this.tableParams().firstRowIndex / this.tableParams().rows) + 1; + this.actions.getMyProjects(page, this.tableParams().rows, filters); } updateQueryParams(isPageReset = false): void { diff --git a/src/app/features/home/pages/index.ts b/src/app/features/home/pages/index.ts deleted file mode 100644 index 848f24947..000000000 --- a/src/app/features/home/pages/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { DashboardComponent } from './dashboard/dashboard.component'; diff --git a/src/assets/i18n/en.json b/src/assets/i18n/en.json index 9a514d5cb..847325ff3 100644 --- a/src/assets/i18n/en.json +++ b/src/assets/i18n/en.json @@ -805,6 +805,33 @@ "osfPreprintsImageAltTest": "OSF Preprints", "osfRegistriesImageAltTest": "OSF Registries" }, + "workflowLauncher": { + "title": "Plan and Document the Lifecycle of Your Research Projects", + "description1": "OSF is designed to support your research process — planning your study, registering your methods, and sharing your findings as preprints.", + "description2": "Clarify your plan, connect all of the data and materials that result from the study, and then post your preprint. Open scholarship enables more discoverability, and increased transparency ensures research rigor.", + "cards": { + "studyPlans": { + "title": "Study Plans", + "description": "Document your research questions, methods, and analysis plans before you analyze data.", + "button": "Add Study Plan" + }, + "researchMaterials": { + "title": "Research Materials", + "description": "Store and share datasets, code, materials, and other outputs from your research in a trusted public repository.", + "button": "Store Research Materials" + }, + "preprints": { + "title": "Preprints", + "description": "Publish the outcomes of your research with an open access preprint, and connect the preprint to your study plan.", + "button": "Add Preprint" + }, + "search": { + "title": "Search", + "description": "Search across study plans and preprints with enhanced metadata and filters.", + "button": "Go to Search" + } + } + }, "noCreatedProject": "You haven’t created a project yet. Click the \"Create New Project\" button above to get started.", "quickSearch": { "goTo": "Go to", From 4f7a968832c07f127653f22b2a412aceb018667a Mon Sep 17 00:00:00 2001 From: nsemets Date: Tue, 30 Jun 2026 15:02:24 +0300 Subject: [PATCH 04/15] feat(repositories): added new static page for repositories --- src/app/app.routes.server.ts | 4 ++ src/app/app.routes.ts | 7 +++ .../constants/choose-repository.constants.ts | 52 ++++++++++++++++++ .../constants/workflow-launcher.constants.ts | 2 +- .../home/models/choose-repository.model.ts | 8 +++ .../choose-repository.component.html | 30 ++++++++++ .../choose-repository.component.scss | 26 +++++++++ .../choose-repository.component.spec.ts | 52 ++++++++++++++++++ .../choose-repository.component.ts | 18 ++++++ src/assets/i18n/en.json | 37 +++++++++++++ .../images/repositories/dataverse_logo.png | Bin 0 -> 24601 bytes src/assets/images/repositories/dryad_logo.png | Bin 0 -> 57313 bytes .../images/repositories/figshare_logo.png | Bin 0 -> 12954 bytes .../images/repositories/mendeley_logo.png | Bin 0 -> 136642 bytes src/assets/images/repositories/vivli_logo.png | Bin 0 -> 3866 bytes .../images/repositories/zenodo_logo.png | Bin 0 -> 211557 bytes 16 files changed, 235 insertions(+), 1 deletion(-) create mode 100644 src/app/features/home/constants/choose-repository.constants.ts create mode 100644 src/app/features/home/models/choose-repository.model.ts create mode 100644 src/app/features/home/pages/choose-repository/choose-repository.component.html create mode 100644 src/app/features/home/pages/choose-repository/choose-repository.component.scss create mode 100644 src/app/features/home/pages/choose-repository/choose-repository.component.spec.ts create mode 100644 src/app/features/home/pages/choose-repository/choose-repository.component.ts create mode 100644 src/assets/images/repositories/dataverse_logo.png create mode 100644 src/assets/images/repositories/dryad_logo.png create mode 100644 src/assets/images/repositories/figshare_logo.png create mode 100644 src/assets/images/repositories/mendeley_logo.png create mode 100644 src/assets/images/repositories/vivli_logo.png create mode 100644 src/assets/images/repositories/zenodo_logo.png diff --git a/src/app/app.routes.server.ts b/src/app/app.routes.server.ts index 4756b8699..89fea762c 100644 --- a/src/app/app.routes.server.ts +++ b/src/app/app.routes.server.ts @@ -9,6 +9,10 @@ export const serverRoutes: ServerRoute[] = [ path: 'privacy-policy', renderMode: RenderMode.Prerender, }, + { + path: 'choose-repository', + renderMode: RenderMode.Prerender, + }, { path: 'forbidden', renderMode: RenderMode.Prerender, diff --git a/src/app/app.routes.ts b/src/app/app.routes.ts index a227f8e5a..ace56b109 100644 --- a/src/app/app.routes.ts +++ b/src/app/app.routes.ts @@ -60,6 +60,13 @@ export const routes: Routes = [ ), data: { skipBreadcrumbs: true }, }, + { + path: 'choose-repository', + loadComponent: () => + import('./features/home/pages/choose-repository/choose-repository.component').then( + (mod) => mod.ChooseRepositoryComponent + ), + }, { path: 'search', loadComponent: () => import('./features/search/search.component').then((mod) => mod.SearchComponent), diff --git a/src/app/features/home/constants/choose-repository.constants.ts b/src/app/features/home/constants/choose-repository.constants.ts new file mode 100644 index 000000000..a3bba21cf --- /dev/null +++ b/src/app/features/home/constants/choose-repository.constants.ts @@ -0,0 +1,52 @@ +import { RepositoryOption } from '../models/choose-repository.model'; + +export const REPOSITORY_OPTIONS: RepositoryOption[] = [ + { + id: 'dryad', + titleKey: 'chooseRepository.repositories.dryad.title', + logoUrl: 'assets/images/repositories/dryad_logo.png', + descriptionKey: 'chooseRepository.repositories.dryad.description', + linkTextKey: 'chooseRepository.repositories.dryad.linkText', + linkUrl: 'https://datadryad.org/', + }, + { + id: 'figshare', + titleKey: 'chooseRepository.repositories.figshare.title', + logoUrl: 'assets/images/repositories/figshare_logo.png', + descriptionKey: 'chooseRepository.repositories.figshare.description', + linkTextKey: 'chooseRepository.repositories.figshare.linkText', + linkUrl: 'https://figshare.com/', + }, + { + id: 'harvardDataverse', + titleKey: 'chooseRepository.repositories.harvardDataverse.title', + logoUrl: 'assets/images/repositories/dataverse_logo.png', + descriptionKey: 'chooseRepository.repositories.harvardDataverse.description', + linkTextKey: 'chooseRepository.repositories.harvardDataverse.linkText', + linkUrl: 'https://dataverse.harvard.edu/', + }, + { + id: 'mendeleyData', + titleKey: 'chooseRepository.repositories.mendeleyData.title', + logoUrl: 'assets/images/repositories/mendeley_logo.png', + descriptionKey: 'chooseRepository.repositories.mendeleyData.description', + linkTextKey: 'chooseRepository.repositories.mendeleyData.linkText', + linkUrl: 'https://data.mendeley.com/', + }, + { + id: 'vivli', + titleKey: 'chooseRepository.repositories.vivli.title', + logoUrl: 'assets/images/repositories/vivli_logo.png', + descriptionKey: 'chooseRepository.repositories.vivli.description', + linkTextKey: 'chooseRepository.repositories.vivli.linkText', + linkUrl: 'https://vivli.org/', + }, + { + id: 'zenodo', + titleKey: 'chooseRepository.repositories.zenodo.title', + logoUrl: 'assets/images/repositories/zenodo_logo.png', + descriptionKey: 'chooseRepository.repositories.zenodo.description', + linkTextKey: 'chooseRepository.repositories.zenodo.linkText', + linkUrl: 'https://zenodo.org/', + }, +]; diff --git a/src/app/features/home/constants/workflow-launcher.constants.ts b/src/app/features/home/constants/workflow-launcher.constants.ts index 39bf5310c..c8dde8f19 100644 --- a/src/app/features/home/constants/workflow-launcher.constants.ts +++ b/src/app/features/home/constants/workflow-launcher.constants.ts @@ -15,7 +15,7 @@ export const WORKFLOW_LAUNCHER_CARDS: WorkflowLauncherCard[] = [ descriptionKey: 'home.loggedIn.dashboard.workflowLauncher.cards.researchMaterials.description', buttonLabelKey: 'home.loggedIn.dashboard.workflowLauncher.cards.researchMaterials.button', theme: WorkflowLauncherCardTheme.Teal, - routerLink: '/privacy-policy', + routerLink: '/choose-repository', }, { iconClass: 'custom-icon-preprints', diff --git a/src/app/features/home/models/choose-repository.model.ts b/src/app/features/home/models/choose-repository.model.ts new file mode 100644 index 000000000..fd058ff22 --- /dev/null +++ b/src/app/features/home/models/choose-repository.model.ts @@ -0,0 +1,8 @@ +export interface RepositoryOption { + id: string; + titleKey: string; + logoUrl: string; + descriptionKey: string; + linkTextKey: string; + linkUrl: string; +} diff --git a/src/app/features/home/pages/choose-repository/choose-repository.component.html b/src/app/features/home/pages/choose-repository/choose-repository.component.html new file mode 100644 index 000000000..592ecbd8f --- /dev/null +++ b/src/app/features/home/pages/choose-repository/choose-repository.component.html @@ -0,0 +1,30 @@ +
+ + +
+

{{ 'chooseRepository.intro' | translate }}

+ +
+ @for (repository of repositories; track repository.id) { +
+ +
+ } +
+
+
diff --git a/src/app/features/home/pages/choose-repository/choose-repository.component.scss b/src/app/features/home/pages/choose-repository/choose-repository.component.scss new file mode 100644 index 000000000..9fa9548d8 --- /dev/null +++ b/src/app/features/home/pages/choose-repository/choose-repository.component.scss @@ -0,0 +1,26 @@ +:host { + flex: 1; +} + +.container { + background-color: var(--white); +} + +.repository-card { + background-color: var(--white); + border: 1px solid var(--grey-2); + border-radius: 0.5rem; +} + +.repository-card-logo { + width: 7.5rem; + height: 7.5rem; + object-fit: contain; +} + +.repository-card-link { + --p-button-outlined-primary-color: var(--dark-blue-1); + --p-button-outlined-primary-border-color: var(--grey-2); + --p-button-outlined-primary-hover-background: var(--bg-blue-2); + --p-button-outlined-primary-active-background: var(--bg-blue-2); +} diff --git a/src/app/features/home/pages/choose-repository/choose-repository.component.spec.ts b/src/app/features/home/pages/choose-repository/choose-repository.component.spec.ts new file mode 100644 index 000000000..5e2279383 --- /dev/null +++ b/src/app/features/home/pages/choose-repository/choose-repository.component.spec.ts @@ -0,0 +1,52 @@ +import { TranslateService } from '@ngx-translate/core'; + +import { ComponentFixture, TestBed } from '@angular/core/testing'; +import { By } from '@angular/platform-browser'; + +import { provideOSFCore } from '@testing/osf.testing.provider'; + +import { REPOSITORY_OPTIONS } from '../../constants/choose-repository.constants'; + +import { ChooseRepositoryComponent } from './choose-repository.component'; + +describe('ChooseRepositoryComponent', () => { + let fixture: ComponentFixture; + let translateService: TranslateService; + + beforeEach(() => { + TestBed.configureTestingModule({ + imports: [ChooseRepositoryComponent], + providers: [provideOSFCore()], + }); + + fixture = TestBed.createComponent(ChooseRepositoryComponent); + translateService = TestBed.inject(TranslateService); + fixture.detectChanges(); + }); + + it('should create', () => { + expect(fixture.componentInstance).toBeTruthy(); + }); + + it('should render the page title', () => { + const title = fixture.debugElement.query(By.css('h1')); + expect(title.nativeElement.textContent).toContain(translateService.instant('chooseRepository.title')); + }); + + it('should render a card for each repository', () => { + const cards = fixture.debugElement.queryAll(By.css('.repository-card')); + expect(cards.length).toBe(REPOSITORY_OPTIONS.length); + }); + + it('should link each repository button to its home page', () => { + const links = fixture.debugElement.queryAll(By.css('.repository-card-link')); + + links.forEach((link, index) => { + const repository = REPOSITORY_OPTIONS[index]; + expect(link.nativeElement.href).toBe(repository.linkUrl); + expect(link.nativeElement.textContent.trim()).toBe(translateService.instant(repository.linkTextKey)); + expect(link.nativeElement.target).toBe('_blank'); + expect(link.nativeElement.rel).toBe('noopener noreferrer'); + }); + }); +}); diff --git a/src/app/features/home/pages/choose-repository/choose-repository.component.ts b/src/app/features/home/pages/choose-repository/choose-repository.component.ts new file mode 100644 index 000000000..bf7c1ad58 --- /dev/null +++ b/src/app/features/home/pages/choose-repository/choose-repository.component.ts @@ -0,0 +1,18 @@ +import { TranslatePipe } from '@ngx-translate/core'; + +import { ChangeDetectionStrategy, Component } from '@angular/core'; + +import { SubHeaderComponent } from '@osf/shared/components/sub-header/sub-header.component'; + +import { REPOSITORY_OPTIONS } from '../../constants/choose-repository.constants'; + +@Component({ + selector: 'osf-choose-repository', + imports: [SubHeaderComponent, TranslatePipe], + templateUrl: './choose-repository.component.html', + styleUrl: './choose-repository.component.scss', + changeDetection: ChangeDetectionStrategy.OnPush, +}) +export class ChooseRepositoryComponent { + readonly repositories = REPOSITORY_OPTIONS; +} diff --git a/src/assets/i18n/en.json b/src/assets/i18n/en.json index 847325ff3..2237fc2a1 100644 --- a/src/assets/i18n/en.json +++ b/src/assets/i18n/en.json @@ -391,6 +391,43 @@ "results": "results" } }, + "chooseRepository": { + "title": "Choose a Repository for Your Research Materials", + "intro": "For the data, code, and materials that come out of your work, a dedicated repository is the right home. The repositories below are all free to use, publicly trusted, and built to make your research outputs findable and citable for the long term.", + "learnMore": "Learn more", + "repositories": { + "dryad": { + "title": "Dryad", + "description": "Focused on research data underlying published findings. Best suited for datasets that accompany a journal article. Includes built-in curation support to help meet sharing standards.", + "linkText": "Go to Dryad" + }, + "figshare": { + "title": "Figshare", + "description": "Supports a wide range of output types including datasets, figures, code, and posters. Good for researchers who want to share multiple types of outputs from a single project.", + "linkText": "Go to Figshare" + }, + "harvardDataverse": { + "title": "Harvard Dataverse", + "description": "A robust repository for research data across all disciplines, hosted by Harvard University. Widely recognized by journals and funders.", + "linkText": "Go to Dataverse" + }, + "mendeleyData": { + "title": "Mendeley Data", + "description": "A straightforward platform for uploading and sharing research datasets. A good option for researchers already using Mendeley or working within the Elsevier ecosystem.", + "linkText": "Go to Mendeley" + }, + "vivli": { + "title": "Vivli", + "description": "Specialized for clinical and biomedical research, particularly individual participant-level data from clinical trials. Best suited for health sciences researchers with funder or journal data sharing requirements.", + "linkText": "Go to Vivli" + }, + "zenodo": { + "title": "Zenodo", + "description": "A free, general-purpose repository hosted by CERN. Accepts any file type and assigns a permanent DOI to every object.", + "linkText": "Go to Zenodo" + } + } + }, "common": { "accessibility": { "confirmation": "Confirmation", diff --git a/src/assets/images/repositories/dataverse_logo.png b/src/assets/images/repositories/dataverse_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..8ca654f4bc4f0c599b7bb7d7a744aa6f4dd1677f GIT binary patch literal 24601 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

OX<_}P^Tqw;2@$=fo4n%?=miuQ?woBS@<<( zF)eDwnQ?yr79jRna%)AcC^_r7l7Tv;l3DLXx%u(nR&4;xjFjJySS1}97rrDOy>t-M z3Qq;z7f*K4xth+%<*z!Bv-{ko%AJ9qy?kXs1k`p8v^7LSmn-{>@Kwi=>L75If0pDX zR4{X3WtomLfjqYDe3_Mk%tcb2ZgsV9>hR@G@-8c0^fljR4cBl%4-V`ZFsFI|wn`D( zAt(+#AoglUt}+3gY8RgeKl`6i?)=`FVEi?p0}kr;vTKyO4Z4<)bg5OHeZZfC#19V) zxK2KSO2_iGlS--3zYeQ`vpM!aExy6;wW90#OUX;Fpqd;y(>GSQwY%0*6i99iiupCP z7dX21&IDb`8tJitw%!F&Co>}}O`e8YPTW|+oQ&|J!@6cxU`{HV_DMxiiEFvi9dCUA z?OQci{Hgz)w!sj}FY8#5UlO~_aqhVX6qWzI!mU4C*Lwzd(ms9JabDg1pia8EMKT@~ z24gR17tp!xXI)J6u?eK($NU=RFo=%6v!#VWKdCRE>-kK{p-5I26@BLnXgSGc2ca@m z@{ZodS}H!H!zY?P}cF-SZh*IcY@3a6*L{8eaA{2Lm2*7;qf@L z6tpI4-=PC{M!{3OFn*ql3QHjkavgV2KP?S@D=k(%U;Y8E3z>WP=k5!1*zVRw*)7TBwy>e_2!F9!0ABCb0f$ zXCK==NOj#7kfkWIsT8H9hb9F%^n??MOd_=MFnFX&4W-!@snox*DFKcMpA!%GGh-0m zWE530GZ*B@718ntj>yTUB8L(pCs8ySkuh+32$gF7CGd-? zcAk!)YyggcP0Lbne(hU4DBH;?VMg?B?cKLiM9wTrWa{ipeHL@Kzcf-a)m1c@WhGbW z!{uSH{@g|pOJS;V4|?-sVa@7@i+<`$`h*S$1wp z7S94Nwu_XQ+4O`N78BUu3eQv1u>PMEbkBHvYSQN`nUP#sT0E0eLW3)lNJPs;bLtzh1SVnE4jzvsRY97y4N~;3C>8EHdS9^< zgnS~LlH)(NK2)vPd4PMp-~O=6j!3Ew`EsVHhr(m=wM53W#lEQgTpfp$wWHhq3!Ck4 zS7)VsyZIqDtfDTa{lPWIJlX1QTPYEYW%WCZMvdQ~<{zK>%h?(fux1~M7&u-)7fx>< ze^YVMp}~GwP-Kb~c8r38T0_&w7pK*|Xyd0N7D%V&8=+C1@`Gf%Hjd`}X5sHh8Xxb4 zU60~D0-nt<`Jq9C@+mvlxxn~8K{I8aNTEEn{-hH^jf6J^YyKl#&&$Yfxh{o*9UAf? zLKD-jKo)sgv4GY#44T{U5p+#oQ@d=g~O1lO9huo;jshB%I7+ zEMUy3{8goM0fGCqTTcT7^gcHpWF@2t8IUUs<|}3 z6I&LmNTV--Q|1?Uyq3>%+n8@8XufP^RzkXSe==`H;91^t{be4K5X^g48 zc-DJtsV2Tq;u@I#9Vk=|8NE@y!owk|_`?nqda{1{X>?*YDfxuTpWcSKVN(z^m2NrO zkl(O0f}qAbh38WmEvB_+VNPDs)r<$l!&=qC^XpTxNWTC;4gEfc&b$&%JJ#q1hw7F1 z=4P`&3I6VU9_E|YE(xx5g5?b2(DD4|E!xL(o*YtxP0J)7{gUc|O&^zxC|bDJ4N{Q~uuB0*0M>rqLdoj=L{*=5v=z?}=?!@Ei6! zTgLiFFGPFt)trW{5!UA}VLq>iju#rzAVlX8`#?-SUo98m2FEjXcGs(T6BS2^HXYh~ zImY-E>RywBe8Z>O`h@aXiD|;E3w{Voib64tV-_Q*a)w8Fe~T9)Zz=TnzNPA8MoZ6+ zop4n(W%bG9$tkM;@=5Lt8lwkWi(CVt)`GcMi9$iF%SNGv2X2hr2hWphoAy9hRw%*k z_N`}!Wm9_UwQ4du?&H1TzTYqL2;&8u4D>r`5?rZ%TK7LGlekkXO z!-yPr;R@_dbM;%>%21dkR_Ahvarz5gchEf{tzxK-(bMziN_M-Q*4Rh$BKtcl?W)!8 zm(MkRg-?XfJ15I71==JU9FrA_a=YE%*cUvZGdQyYO;n+!L#%QN`DKN$>)De3s*F=; zOa+R6wcYGvI&%KbSiW%-j$1oEs>`Tre4)1{zgF*vk`PvW{#QtmVM|wBwac^Fy943e zq?>a{EVwy0%W7HlFxhoN?LrZnAEbX1RqR$!<$rTLx5|ZCbR40d;gc!C2jxQ@z1ET% zE%YFATU-C?UcXiZNZY;kjcl4hBPoEr+iJGUL1S_jCz76ftZrE~bz6Dl#bI z`R=Aa#-E1X^D78R@Wdb6INd5_`6ol%@N6Xxw#wEd;1>VXrr^zqcNdF(I_JabvHQLS zFP=W%&B@fm7T)08MvG~*WCYs8jW2wBlV6(wQe<$=+LcF1nh}}bDb3@m6;V`)(u?kC zUv6g}bka2mSk*YLgzfJ%z0UN}#c+|^h_j}pvJ;@`_{o&w`#L<==KYq-7!nAVa$FR0 z%xNgfIgeQ5ik!O)1Z#}tE;V>e8w_dCw{U!P0Tx&Ub(ITJ|5o++tW^hxfkq2F@xy12 z#;aT%U+uhaxjBzJT!TIx=A@(s-qLfN`i#bKMVR8WvP4j2EL@Q71y{NtvT3!$<_D%n zkpy(&hwYr@biR_?qMbq2;Y1WvK>yrks)irhB515xb^2GUhl#y)N^_E5GkOF4EU7KX zcN>m7BX_zj+bs&ml_1^m;V^j#304(cx>GeF)eP6shpk_8*BJQs^P^LXP88|ZD~u6s3`CZCsCMnVj0)&UM;VG) z7bJyf<|PuqQy<|+d%vT%zj@we(a>a65-z-%?_zUK<`Ws*_}iE5B=6-1nHhTZeqd=8 zz=_w=pH<{e!3Ix3dUOjsg?F!HAK6v;Yal?$(-(cy15HYR!G zSadN=k3VIq#!|aqG5|$mz$!kj#t|U?X0nYrOf^2g2bXy^qvD>EbDEPPC@g5$BE3vS zf2gZ^c&^k|sWB?ulRA> z_ShuMWcPZUeF~vYFM2&ZXSTax*C-6$N8UfIT4QxSX)85aXdsK#J}4c&yQycGAUdb2 zG)pArxvXn}LX1kio>^2M+g)#(l^cDoe8RYT;cvqdFn;o3!&7I{9o^=e73 zA4L&(Nqjbo^vL4DeJJJld|T~6vc(c#D``qhX#hs|kK9NXVxj6!w zV(Ml?rvI%wcfMpEv&mJ1>=vJ6g`Q!1a6b%`wDH}8VcRSN>+z~4tmFzh+)%(lN6_73 zkCKV{pn&f21wrc`8+z1&{1K>~c1%Rx&%2>Om@4yHoJMZx#JqC9i;(V140P0~+DRE~ zJR|GmwtXU@|E(UVlv+iE>~j^0h?RHuUk92!Q7>Lme48uDlnOffwF>sFQa3ZduKe9F zc%QnM$<_H^g);Oi|Dn!?r*fWG#@Qkf&`WQOm>E6=BRH3Nax-^kw?kU= zYbChVjzVaAuxAhA>Q%xI^H=3%QF5nx&%O+-%eR15Ih1B~9=gOej}SqDn@R{w7Ppp7J-EL3nAIFa&*|0@H2 z>&2=pIWoV>klb|i+8rr4G-X#Sz3TRn9Ey09I!h{BB(Q%=&AKX%23Z_xi(*Vj zRLTTip3KVp33T!c06meX4na zxn8Pzo|UuiR1FbAV>0r&t`5&u8{@x}hYsAytRwtS8@$3Rc;-J z_Iw_Ml}t3R^*!|pFDxly!MIUnJGdG7%8A+Kl_?`H4DyvLUSkzoR=l%ABphoG1*RBj zZY>94Q|q=8IBU72_wnJ{DIrH}Bw&um$`Thq)A^y1;J(VwlP$+K5v~%k3$By^7Ja}@AF>_8$+-7O_~3DUc>6}s*msGBMXR-QJ3?! zZ)57bQQf-mbxR8Fw!Qo>k9fhqORzfHX{!B8{si9OMP@|K&)}4M*&q}b-GZ}i$yP!4 zi8sH=H+{5yeAb3q?!zF1sGbFdbls)Br*`!K(6*K#?E>Z0b{tIvm zr*odT=g-Wa1Q@%_-+PfMnE*Vu?pBX@)rZ07F~b)z0r|p#70X4GfMk$ulQieWdXUwK3Lh7eEzV(XiEDT=r(*X|wiE84h(aGz)UEqv7kvnvX|f zsP>9E?F=Fy?3|lW!{hjG2swe}<{JGF$*up2i1TN@YOq6ub?`o>USZsnmG_sPAfk2v zwQc(|=1fuOg$N3)OC|BO!^>LY>ovYxnwVMtJ!(p*1NR|ix64Cr>ZgV#?W+#EjO%1j z$8>k@Yl#u*Y=EIFdDzogc?4HVqUDEn&QsmXcP8>&Mt0Kf!OJV&;L zHjG^;&+c=*qt+p3ck}g=i-r)I%u>n!fuQW~$R%*#iAUo+qj66%nbL=d=tP|A3LElV zASEOe<14UN{aO2ir>SMhEaoIMIJ^Bn&ig3N=1wjLLAd~uWjq|nnDxgN@S}6?D<03IAk{YDuLXJS#N6bh` z5Vix6bZD+v&35EPm$E6V24)rHkfC06Or7{s($j-EYIlwQUfn`MaX`eXn&e?`_2CF8 zB?(*!9U2!^Xj{NHa6!JPEd{wn-+*`8<$w-C@yRSn2H? zTO8G13eXvd|JG>UuQR3?%lCGeSd@$JgT0iOf0W43=8gZJrU}%~-n?ewbE^tq0aCGT<*$r$bbhI-WqoHbZ4i*&hdTo9BKketEeOTvBt{U+fdULj-g$pIwS zc|(M^TKLwaYwXC-&%iT2^G1)ehV5Vr4~_rn;qx(m(+pr|!VJhEJqnK*$v(fr`~?Gv zbbL7FNniwQ@4}#tvVY}7THRZ+0f37;u1_o5GCj6I&YzG__ijD@oZfYCg*hf0kYD#| zy>qN_x+)XGa-%ZGR)RgkX4HPhZWVs)ibyxC z8TuF-a{P&fL#szO7F_Bmj;hAaemdb6UTwYxpb_=3_v5-#@axyJ^$)>C`{QV| z5FE;2@R;7VJMwh9|pM|eqht1Or?OQXeRqwu&~kB_&0*fq_TT(uAz z_pqxA$?-nR&6j}jowB6(wDProb4KUrkG3UHn!E{KjYF)LC>nAbp0$sI{{}g%*vN@* z(F6ZyRApX~+aMj0y+9J*z&f3>39HI~cU%ZdGn?7lFZVquQ^EC6-xSxkrZ`JbNr#WI zAyhc&AHL?n zRH>)g&3j0^=%cmcrpmUrs;0Dxr>Pb_yIpOH7+$s>5~)ElNX#?RcN(%Pvm>Y1%z6? zcV43&{7~wxo=>g}Mv;nEPb%p+cJ8~moSvGhEbH&0Sn}rI)2+>KYaVE6yV%3@?lf4( zGv3I6@_+-~ZesgiVysul>Y?*%UO#$olv4PsTvyX#R5pFR4$ zFL9HXT}N?y?Di3KxBqAzcvELu!QKgCD!dBoIIVp};bja`T2W9gOE#njAp&Z% zGD`IFvv<{d`extr{QUa)6>YyMlte9~z{n>?he<=iBv+;oQDf$lckuoJ7~Y1b^&V zEoDa!uQf4Lsw7?B@Iw}iGK$x8A0BSWxYK2ew~vE8?9F1ZhpmC_Is%LT2q=(^SU0`7 zy+x+1eYaT}OD(eH#f)2k^opMfiJ>HdZJh=gDVrVXoq(`enp$bc}|0yRN&Wn zcBOsu<=j3Euu$5YT}a(<@dZpKzZY3UYfs$is5>zgDiCMF?r*GgBfbxQfrQ2PVL%{& zkWM#y1i(h~ij~yLtFs-ODJ!J^ z1k|a4J7SYSWD#glO$nOwB+W@OIh94lyODI#j>6Wt3FYqrbGRwZ*YA(6k)* z%N*}uMQ>8{CH1t==rKs)qokkYON_G!GOqsTBF?D}9CXR#UT)}qyBcexBqt{oFKez4 zmyrTqim~3mzeN3(isI&3)~DaeYS6`UTrc%BX{_Xirnz6zC12M$i)0c20i|A7eEcgp zM>0{B0PmE^*VeB3EPp}PX1FJ8K)&jOdq93Eg|T!Bh@4j0XnZK7&_B=+dOP$^IR)t- z=SakZm4J>a3o$*Z|TIX@U3DZ`E!lo_e~~hKU90X(i|8je@O?oZa@l7n;tIt&dlqjC))j>@E72bAzt;%bL`OlJ>FNG_2u`4O z19+E;qQsyfTfU3(s*zilAj#j=hK8vCYuNKPI4a}+MI<#{^4c$n+FU?=E!bs*+2b)1Ck8$QceB5x`){iV!qPoBAiwJ zSa}PrW2ZQRRi7=y52&wW#L`S*ph=Xl5pib47H6+~-`nBnydfoZ=0&|;fa?*FtRVH? zNe87~IPdUZU5ALs!MpVSBS~a_(9h}P0l=SqYmWQ3Z$#_e5Zx`x{q0hV)_Gus+GgN$ z43xhOxPui!YmNrKv0BNMCQxfp5T#+^2}vqs zWtv^gZg6MgI7*8QxH1_j5B;3S2|hY<8n8S;%k;+11v3GxjK9zSWyCE3WAO;neG>F? z8~3H_SVeeQ?EoYEF7Xe4@Dj(uC9!cIsy4?|gS`)~O8ccEq{)OjqQ54U6HSA&>fx40 zaQ08TPGzGCLKL~*@aJ)!aRHn!(3~}<2K-d^$uAT@f}S%~Uzs`f0~C_qgJF=-&h2k! zjGrNTzaUuXF&g3^jsp>SP&r@{jJ?gF1e%{^!V4KWbXajoLN$qlH5&4T8{k#;;jODPUOd_vzoj5sJee+o%z@Yrw=DQgvuSYxa)XpcQ%;?NlH!>(&4#H=cMBG0fweKa zXS~@1HuLEy^A|44t1z+%9;)U?aLS3m|CahtC+6aacZ?W=$VaLt zs8GRcNlcn?KvzGzWcGg?@qtw|l6ajvkz)$5e!Il$+gEm3u(B~@j{PYcW;kUsAa+LC z8ogZI2i%lCHB0M40lh3((=t)Ix1bZ`?ynO0{ae8gAXj6jDEkLy&O(A+7t9}6hGGQ- zamFZg(JgSH8`;I77({GNN#KHIbD_$1KQ~2T{DTP)(CWahEjv zYYsVS4mmk6ntGo4*m;K=NXf&i|72c~=RskVZ#uxTBE*&)*r?tBoCeEdGW&NqzZduX zb_%TXEWqTtl@rF`e`h4P2noM~8-=$Q?z;AQ6nSf3YLQDBOyG<-R0MX(GxPmHU+kRt z`YsOC!usjudvI3Tq$1a!Zg|By&;xRUneWVI*8amHWi>XyxiwLd?-+jvBlw^)Xrw&H zHgosLcei7ZL!hlA=H(NP%9(`S*O|t8=kVu!$No8lD+>NBTqJEhyjPjBy?@pFQXc8j zs2i+EwF&8+()P-?#AOYgL>5Kkv~7l#uiTI~cI7uqj9ru{Uw95S5VQT_+~4kCpt$lP z&V`R*mP+U%L;Iiuv0FJhn?(uyCj;R>N%Aa?Byx6yv*82vnG})`xGxG1>&d=}9BA92 zhW3qZXahG1(fR3jqoS)=lp0}I3$pJT$Oyf_4dw6F<^$W7#{YW5Dkk=v^QxHMd7tCr zkQei$m?S-eu6pfpfE~49QL3-4R$aVZ?m@`%Iq~P!aJK@aQ;Cu|({Cwr_?;r=g?W@y zCMfV`(kH~sDwdlxB5gD~DH=I_Y~Nv)ZW4K4FUA@tzs{kj9krFVS;2(z7L|EaJYCv_ zu8@4;b*%nqM=wcW6|q~VzsX$@d#|7Y4{?z_Pu`(g2GVuqHZKbffd$YFdD9~z zpWH*WBL`+rNNV;ScoR!h`q*CtyqMH4f^Ni1uk<$Pvf`fxw@&+7qoyZby&jshTIn}y zQ*QeJTr_F8nwEXNTPS2B?YP8^nV3#QW2uqYv+mTTKURrpIR?=@){@NjVlm&|0}9RV z#Wa6~zWb^fnLHS)>Hi8`CR5o42-ax(jR_QfY&hZ1|L z34c@Zigp!cVvml+F7-bZ+D{5KUD5>ss!2u52#)aa1{rX!bF-%$!#7~cv9EbD)MOIr zrf|{FIrkSxE}TYXopt*feFbZ^wHNX)YIA-*{OJK z74E>o%XY>u2hT?KS8oj^@(SZq_Yfa1&)uynkVpNy1xudI8>=&rx^nyc z4`RF&QhepWUPP2-V}b(4SG2g~bXoDE(dDDh?aqHSHl{>GL|M{RrQc2JcZwa4I@snU zpHdMF1Waq;c0A$5500#|!+$7aLUy-%Nqt<~(9^Sr3DM=u>JT{Sv{VPuFIUp{1>h>f zDnDKPxSC7%+;AGqb4nJx;Mw>3<#^>4kmc9OsH8uvwiyasODMZ|lXOd=z$sZxv-%in z_V;a=8+;=UPM#YhK0Xtsg~CLl%VVQs!`_mh{UvgueJ#^Ohs#;x=dG`bZQW0z@~VH8 zRXTA!XfI7X`qvb89RdJY($ti8$VTPq@Ak*1J@%?K^0Zi|-{yX}tw5ZG2AQ6uDFg(! zszQh+BF_>)ISE9WmS(ZA0xwLcg{)9lftp(5p$})OYH#*dNPo>>_5g=$3VU-XB4E`X z$H|hLr=Aqg9sRWhlQMIy#&7&$Yilb;3F#JLyaE#74b{uBWX-W;Vh+`!X!hl^&AfU& zj}CP;$)h^Fm-&l~*BT?b%=3{udIklNy-tDuDq$5>MADUW^Zq;Y1mD0wHmfO|kmNk1 zWOt>@?3v}I=L=@t$Q@|2{#{l;?Hk^{ZiH2On2JT_p1R$nb|S(C=y+jTJy92!2-ZS8 z53i7rgVI42oIbfXie;??ijN2uB3 z-(?hLQWB5-dKv!NORoMb)=27wO~WfK`eo8T#WF&M{9=0r&?q=7tf_;k%E_brQm#zH zL|;0uC+fCeo7O z0@<-Tu9O_@nX5t&_yuO#{lA2b6I7DO5J|rK^cZ`z`Ja0T0h>gQcjDxW|5&<0*Ywgw z+-29p0BZsd8FwXF|3BsSPVuWZ%muR+t__$G13pdLL zaHQt$Js%K~eU^dDofCOt0eX4oHUyyQJhg0GB2h8te>R#liBU`Gie1%WT5gCwkOZ? zL8l|UD<=Gm{Pas-^OUUqg;SULp!w+8H2)Cx-h#ObLK>YF7?r$FS1&Ged2TnP-0HTv zm3}fWDZRtve-wZm@tg)erXcS1uQzTKwPEgzebDzBie z7iNL5|GJ4@=sbilNY`q{yB`}Pez5onKHT1=YN&N)L@E=wvR;UhWaAx2kEcCv2i*P& zE^aUSe0s{FQOA8ROT7cksE;61Hg4?uOc>;B?L!BMM~}Ax=$N^uSN~ZHuG}!z`iEXM zzSrWwYMF=}_^$E5{1LHsbu&mohE0Irm4C!UH2A~WlI$QEB-0fnNeEL zn%{rRXz4Dr!jf8LI93}Cczy!W`s<>VQPlyFhbDSWTDWMq3J+d@L|qrJjJk;yrI|>3 z5hg6+LEe~a$Ov*H{tB~hVAU$N7MV(R3b%4pvu!mqIitlnJ|hDg@NbsU&@Xg<;A#MFXw#iSd06g?rWofABKtV5pDd zYre0lIrV_QebomeK*`Ax!&MUNrEgP#?Rn~6X*b8qd(dWX>GwPL3&wpGl~ouIML!*P zAzoGuR*V2;Sx3%T->}^oQNLEqKnncLTvE#Uu5SbFcZC!Rca9cxtjN%->e__Iafc}zCc)m-QVcOdjR8fg*I0L=xN9E z7kEiDnT!unPT7PeG#i}iSgPfR2RXmyohk>Uu1T#CxtGV+BcQSse2nkZT?9Ecrqerj zffQ*6dz(KA=PyPk3lEL_XeD|0xWHCH+qh%R@3S%tzH04g<_Z%1>IeliPldDD40tSs zRG{5-a8wgr+TvvwO=#*M(QiHrvv~JZ#_)dqTA`mT6a8^OZ103#!yywcUp4{}Ls?1np4Q6KQ~_?}AeqcNW<+YBswiv#(OK9VI1z}ms8%7T#iKWzKA?f?J) literal 0 HcmV?d00001 diff --git a/src/assets/images/repositories/dryad_logo.png b/src/assets/images/repositories/dryad_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..d2a92f27a9e239cfcc4e64dbca23881e61946f48 GIT binary patch literal 57313 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

e^F%sitgl?=HS%+%OA1pEbP~{@2FtD#O>+u;`p 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�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 literal 0 HcmV?d00001 diff --git a/src/assets/images/repositories/vivli_logo.png b/src/assets/images/repositories/vivli_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..f1e5811f603d6650f5f5a387fd1fc89ca0904e4f GIT binary patch literal 3866 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 literal 0 HcmV?d00001 diff --git a/src/assets/images/repositories/zenodo_logo.png b/src/assets/images/repositories/zenodo_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..d84adb8ed7016dfbfc297eb71cc24afbbf174693 GIT binary patch literal 211557 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�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

vLY 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�wZDcu*fNO+eJ@j++S*ivKjpWms~*X8*rXU~z=4 zEiSe%n^+xhl8eSWgN>OalpFFDkRMPmP5nX8SSU`{G`rS`!q(C0C?no}QO z4Ja!*STko*_MJ3dsLLSP%$DjRxkp8Y1Kcg;P?ugd>0%&<#P00OAgUeow8LMQ(#tT5 z_n_>vJW}WkK*n~x)nS00s)FLEn00yH(=e%kfr0ru&Ffj?aoZ8bAo%+<=v*cqcM}5~ z5iuy`Tk`x7)1+^BsLBWt$No0;Spl6K8=l69KJoS1`x)V4Qu0)$Ev!YPu)V9MQ0stg zyU{4{+gI=n%Y3NX8iBt*mZsQxr7a%V&aj4mha!pH=5E}faPCpV&PO;6q~{J(+1L(y z#wY>43JO+>J~g$`x&UVt(9*JhMF|trEq9})j08m*ES79s<4>M`@uFU-witbvQ4RQ5 z3Mf{Mhg#H3Q+(N!H0y;{BSIyP@`2Y$2wjCEkYQ2Vy^jha>hamNWf`P!&w|z^qfLmT zmJm>YqaybcaJrnB)otUArH3d|zUS`4tT=Y5E8Cu};-Bb^Qp1uErnaw{Rooie^nM!c zahb>|EvKZJa=OQLT9HeA4n)wp*RFYGbH0<2a2}ebn^Ez#lbbGO)wDiOpUmTA&=MO~ z2o)REVBnlp1+A=iRBw9Xw7pAU8e_98K=1zEBD4f~onCAKEdN94EREKd` z4Q25Kj0gwsW)nx%duUjUE!j74^A-aBh|DH+rK6W+}Qt<5`7Kx>b2rJ-muB4rY@D1=d)~aC>;NpoKyzarL>%O^SXu zL{p<~F$u5T20n?n*MZ{SuvBd_YobA>)yJ8p&BUXHfOD@p5ejiqzVxaul^+niV9K{S zSvN3@To^G-&eV^I=NCbnVGxXg0=up<|6T^5PV4+x&P7y-hK$-8WPfH$<2)}>l)w}8xUDYpalS~N&NMQt*Rdumf~3^E@Hn@XfeGOZV+-u87~2x zuc-5=nb}2|0KjuvtglVViIN_@h?Iy5uLor0D>#*+C2)7SG&9nr6A5CfGnvNGsgohCKi z!#|4%7@RED+upy@=e!<9VZRIMeFO~|;JosUFuEA7(KZ@AUsZhGq_hyF{#(aHI2*V) zSf@AYORVqLufn*<`c6YVU{wn)^phwtzkD~eYk*;n!;#MK&r5Bjkf4juaNdOC2B4q> zNZ693(V|gL%=s-8N?i>DS2^mBH-#am#^Gf2ISev@ zE`rj{2O^yq$4$St=~!#73M(MepRsi_P2>JzYp`MoAr=LA5XRm^{vxKbm5asd2-AH zuIUWc09Ag5N`N6EU6UH`XHmF^xPU|4#-bXIaBw-G@>mMj5h*Q!pK=;hii%3RguE1?D^;8U20UJ#g0|P@M&y-NMwt7ZBA^_iLf*{H^Hf zWxaBcX`>YuG3tD@O-7&#k@j(9dT_LZs=K@bmZSqgxCCXqYgLO@2b8PNxsL1@s3D5^Y}zg58M6$C zc;=jTdY*clSV!IOrIdGvVD^hwQ&t?SY7cX*^NI$>z8dW7tFVRQ8VvNiO8(z0wyPND z6YZFw_m8+ORj|n(^U*hmf1##+4DHQ2cUve2e=D_erHce3+&WTgVBoxY4`f=4Vukw8U^z|9SNEq_L-G26|+GM zbRR!!_!7d~#M<{E3Um0u{`+X(agcg87_;F7NuXgY9o?jah|}8ArG@6Ht0y=Al-)o) z9b<{~Sb9wi6ek9YOHQy2Pv($&P+S|RJ3|(n8v!QNckpf0zAhl&N#?qe5}qIL-ocv_ zVL?)eom<|`nohNyqb>LP?;}LNzD|B-MQBMONNp5e#vMY#UM2|R_l~MPZqzI9)<0pk z?4lg57?>GKSde-en>Eu0e1)X`Tj>h>lV25RY}jQJ4KyltKj>QmY~=1}(UkLWky~zw zg!1M!FenTSbTjzUNNQ87;1|>h$c@|E_v|r($!rn|YqRCbRBC4svc^T%G@TiEhSbEO1v+@noCK}1@i|Em<^+49 zWMicfu*3plnTC-Uc&r@*^d^e5>ZEL_Y!N1$;4K>+1$PhU$W84Cs<8*PIva%&@tJRQ z2q;CQ?{&Sxan&cDB)U&7-2y zGPTX?GoR@Yv*;6G7RSeCWFZ`{?ko6!p?n*mA3z2jV9dKfKlX7cC9fA{D?r|So~D*0 zh{;8GCYR!VxuyauE4qhlbvLed#psoGT6s5=U`3W_V#g7?k!nrogaW#VR$rYB%xBXy zb!?Xq`Ti6-`Q37jaRjmRu}VF>+!4O=z=PC^)4RGMXT*ltVlFRB%*PCKo=R>2T9iIo z!+3wy@7{Sxj94CH30yS!SJg}1zg?g@7Rl~UhsnS!*J|ocjD|V#zjADn+`Ft(#=1>J zsLy7m=f7C19nFGhQ3oAAP4~F%tq)8vo&|&`tW)l-64$xa1^Wc*4&~pF$(IHA!kJkc zkHd%(7vudv;DnW(Cc-P+O)49-K>F!@Ipxq%u%z11equ^$mMLpUHA8#;e$z_g9=98+ zR?TGxZWD4jdK^S<8PtNZJunge6!J1i$9l+ynMO-9NNE!*L{tqQw1V=$YoyUNeR2Pm z7Oh12O;We@$@f=Akw@AwMGy6~p}>@cpVihtbIrDIWv9NL65a$JfmWUljP!5BN9~r6 z@@{}vfbOmX;eBpDR#kH>D7N}M>Qoa;1MDgm8U}zC8brmac!VozupgD-4vaP+Cgzsz3axkA&STc*i`vA#5s)Bktuqng7Alq1R>h~!nbD)_dxt`w6$XVQ zWo^@Bg6iZd*0VpX-2RhZP-S%(qDY7kS3vGYqGIOsVv^mBBbCdDMTKbk*2z>c17J zsJrW=FO)mD3K!F5gD+7u6zZ3F#>w6Ry&rh=0z$zB#eZkHR#<}IppdEhRiHbdjyZDl z{_X|NsJAD6c%lmq@w90uJir!y=%ULYP0UtUlX+-5IZduj+h}(jh^}J^ybyoG^M8<%w;~@A&zQIJhr#siz&X zC5)&g%7Bma9Op{75q1EU3;yh4kTGP!!0q5kNdQlH7^f_ zdW`AF^?HLxUt$E8H09F5t*T!>=4NW~_eAX)&0FXD zIo*A}3Wx|3^cGLKH4Jrm@lO0H6+x{cyCC51@U728@ErlwrAn4+UyHTh`h>LbCKgO# zEbf@7p`2eWju!G=QROIQh{ir{PqV0>;=6U!$v-LlBDyrs@^F=_{c8G)6Sb$exJ&kff9E| z1DUT$N);d({u0Kxm^K(M@n}_~gkqcu{>?x1pYM6u^W}{yv;#Tz;D9!X#cN;n84a?S zX552eJ7s_cmv~P=Z$9KoTf^wgbi_Q8E>eh7?V>I+?OhPZkaD-WD6Ky5uKvBXml3@3 zY{v`Hba!yoi-5!A)%i~X(H0etl`RCwe2y4^#dk5>8q%W%2q_TDhZz(ur;kWL{2<4Trz$1Kl^gFt{A7kG#oRbK1mATb+8I*noaZm zGC`6CJUC4uoWq?{>X6ireZD5KJD~p!INhCk{^okC_n!~sxv=i)g(gMd!2mW@%F=fV zH|-N;#`QGDQ)M&fM8eEHK$1v+=7Ld?pk>f*$uge$BJa5 z;vGj7+3Xf4S9?R{4^%*n+iHLGL(s6m+6;_hf?jN0O{daX3UwRI28=Bv)?gp+4vU&O z=ephY@B@O%OS)oIXJCQd9mqii|1W096Fs=vtHsgn&F*08BND9z(i`#U)2A90qdGZ#-;aGT^mIK$&r-FWilz9Kt}yw9$+PV zzWO0(^jG>scDic&&~ThxCp!w$K4OnaS^XmLZ3=^8vWYT1La?tq$JhvM6GZMeQOPGD zf>-EkhmE;!fwT@7?xymw4bH&UmwH=&++5#tNwT!D1L(dqg_GBms6jR6s6tTJlY!Uy zhHU4?c~`_|76mU?tqd3B77JNcAt3xfO04;9sQ_GU)D}XJ`-f-A7G)RzrY0qKVN3yX zH>=RofnA*LH|{{iwg`rEj9c#TxJyME#n%N$whjwYGctihM-AUX=9=;{H^$B77_4wHuV`%|g+7%^>QK_)FX*Jf#EBE8+d{#syFump1p ze8eBGjaaN9BmQHlfOQAq8S5CjT(;;)I+&A-UN?H@K&7&*V#eEmf<>WM`GGsl z8%5$NlE%~alyom9tY^} zn0jVqZQx&;h1A^9wVqlJTR7UofGDr=A>+o+2i$XI&T$*UJ7db<-x*I56|gB*HM`B) zGR?to-0G0%skP$>2i8X*t>Y&xIE;X&rC->RylT==FmTI|M}l=MEh^vUh1U_``N4mx z26Yu@MHz@O?h11zBxJPZvWqXF9DbZ65aLePfMZfL#VB78KLz5to5&SShFCYwg^SWw z6u|x!KM^~!aR@l;O3V^8x%x#1WQ^}PIGKUS|CPCJ@wZ;H#3lz$(F3NFxmXylhe6y48=As9XbvmiBRJg&`m@CAJU9jEa&6EledwQWv0v-fyYjZS($r*>G*;wvXGp=C7 z&L%0(Uis!$-47U`UAQ060BxfZepUQ7l=A1wAhIvNmR^wQ2J*}}sO?&v&H_n~)f>@( zF1wC|YuZDut(wJJwZ}qUkt~SeLm~9cIer>3A%dK&CWCQV?5bhqH zd|#_&*dO1zPwuDS$a{lQTZnoRC9lBTsR~wrJ;yG(Kddn!h(Gph%T}w#Z4_)5MzZSq zqoV>5C`5~?>#j=L;KdN|Dp+ zZ0?MhqsB=`+PBq$;F+Yd?m1T$%$94QV+dd;BF^saeOCN&;!}aqI|M98tl}37eE#n_ zKZ_y|r6Qb*<{5Tk?;>wjP%tBAx;QHM9FWRNi2f_Pp46C7ZiHf~v{Y87a>(~o)bY4O z_w3(E!^;S$hFuCygDh-?0Ir*`q`$xyR8bU1rQFWrR^H4dw7C^$G-^NIb(-gRikgvP zR)YX7%Y(;d167ws-lxJ8beGMnuKg#_7slr#$IP4e!>3=ybuOV!2CZ)$#>EoW3kS~V zgqk|g4FF0kg_SiDog4fQyea(|Te@7gRfmkpw_JZoYNQ|TqePpQ&zmAPoK~PAQ|R*V zij)zpefc!50tZY2x*o+D^ScgcFq35#AR(~#F48zvtR=Q~rseAfA|yq0%KV4%&McF2 z3UpNbP;_pW2XimFIHZD{VhO-9W74>)?+|KPr z1_DFj&SYKj?-ITTTKcX0@}Q+P(l8$?LdnrH_YDIV`^?TSngX({1KO!;;6G6zHshpT zj^6}+71e3-j8i&B!cOr_39t5>YlehBg%AZwQ~{=Vt_*0JozThW+$uu4vxkTmCk0@Jy#O4U&4`8j=R^}V&sRS5O< zGVfamUh*ug6!CUG6f@#RC~#0o#X_G-#XH6M;5+p63P&aZ)9#)RQkX>ui{bBRamr33 zX0O(QmIh1#(4q;l04;|QZuLIt8xV(EYoa|g^o299f$9UFRZ}Wj&+?$_JcpImjwRXs z2=IKHPg3Qun^A?bSG&AM$odq5z`Qh3!X6G3il~|$#{j?-X!}%4+6vYX%a>%7k{%GE zq3*kZ`QN@J>@AY^r^&mp2t*~`9PUVoXo$H|lo#RrRORz1UWhIvjE*U8J$JJy9Sne4 z86s{0i?%#mX=j0?0x13{zKnv(I|I_Tnpq~yKLm}Xp^w#ifG_GQ2|Z0-TO}?{xv6j< zD`b(ypsT&yt(cug*z04T(X-aXDwd5=6PHjTvW^R_kVyaThR&nu0neCLd2-3~oM)Uw zn8M}n?i%ExsF$Td<#BjHjMF1()xs#ebZ(dD9R+o-=q5MLe0j?P;gp3@Rm%Q&86yc|s;SG-_fjUJ+wKHKt-VZZ z1*?PWLAf+NJ$b(#WjYmEIY~rs9fKG)!Ns+DEy|$>S8dsKT8i@hiE7VNgT_yx0*v4~ z+}&`?o%=wl6_6;LVP$qA;R4Vk9+86??Yw*;E&uurE37tzgX`G?&Lz7{oXxUXPpmJv zVnSsb3e+syG_2&I=k-(EhY~lH%%uWW3F|@cRuTM2%Z#VFGb~=Q;E#Gsu$NU@76}CW zd?-3QGqb-$4Al$7zyVqtopsJIo)65#%F}f^a^1}=?saWv#jdEo&3IU`STx#uU)fOu zvG2PvXT>>enC&G5xmlhXQ#fuTq3U>$$D0=l1O#5wh7~kO(kSq5dkVRPn;a~A)eIUl zrKgHZezUMHx**|gZ9mmd;apd6(`%N6D`{lz=$HD&X$n*UkC`V5wSo%~ z_n?pbsxcrBkrq-)tDr&Oq;Gw*+b1I9;#wFd`U4+h-SmA1Z!v=Q6M0$saHnL7UYX)Q zFbM`8xeIOwxI{s^>AQ^r7}j&t1~I&F&v9c!(tU*9Og(m9Tgeuj9>!HN`pyFVoMs1R zw*6pd6ak7Fs8KE8yEo+erk{vn5-MV!T4`!%Kw3;T#VlU5_ocaenT3!!SYJZRa-=MEnjXY9; zNhl4%6uzhpUb)1w08$seA#Lx6XDdMRv|#8}`ymbt7~uR&p_3H!igh{`b0Rt8VGl=bZ=yG;*GY01m=Xu0tm1}ttzh47V^>R z4thdzBN$QD!>7XhQJ{Vm%l~Txj7q_V|EI_p3k_?%DBeOD#&arCnvhGK`k4D8=!aSM zlBuacKu5H`RiWzPSkLzfHvo=+@hFeI-`tQKW&1g#q`WRdXN`5V29rAO??uws%3R6~x^Qslav-Z$J+^G-Z$fu%2SWBEQp#8Ud+BJ?$GgSzS z;l?V3rwjP76&)xg`fV)1xlqko<3JK!{Cuv_8n|Xq=q6w!7KuIXZuVEE3|Rc4D|oY< zD2BNE-I-+B$8K_KlEpuj=EbYpXy?SDO)b07f>lSM$t}xvJGKl3W&OKP8-_458HNun zsKsJ!!#`0%ZOLma)LEXBROIPYg=xC15&F$ftU2}_Ln^vr7(&Nyc^%Lp_wX*fX@;0o zPXXM_j9vyooFm2iFyxD|vJ43v|I0$LRM_ct0K=cUaaf=~8wg57D0?ckFBpmXX$>BC z&#YOQX<0>{a?om41Hk|#iZKz##s{;9cWg7flp)nrlSn= zK@Tv+dPHRQaRyT8x{5wDL;BhInN0oyJri9rFL(xEBj0C;0m^K-WZoBdLC^>VON8+M zSX;!t*Ijjds=LhpoG?lwAD1hTInjo0ZIK)A1+U1`-i8R5}&eif_GEj0SRuXcGd9()mp>bZ3V@5 zr6GaCiH5b@1sMQlCGNTWsT*Jj#TOxiDf7!DYAkcR58=hW@D4G&^O;T1Kt?5_CtXB??xh)eQ*0aEv-`_*{NxdP5o(pwJ0>7b3)f7A|RXJUMw<+puJdi4EhUVvR_v1wg?z(x8o9v%0abf={q@ z`6W&QF{B2n&x4-(*4h6?9?U*D|i#1 zb)eY;>HFhs?w@ENqQBrpAo43FD)>fDKjN*gk?W(jXDw*=(uko{p-SCfyWgfwOh_Q< zjNn>Z6AFmL?Aa3W1=O?P|qq4fh z85STv=`=1D+Yz`a0)kdfSw0IoAk{jS7XCy&XHw90@#ziu`ER$C$-5p9DvUh3@y&(e zKl_Xaz5XbHZO^KaHqys^T5=%poP979R=*YRBEz z(}aBIDDId;iWw>8H$@vaL`4;$uoYJZ$?)216xCF$Ma40gbysLFV%jGY%h_TTuh@sh z#ewrDZ`K;${-^GI4cKF^70gTz6AG%oT3TGdk9Wn4#u0W98_xBi(dVSk-rMqKrh|?` zEDlPD0d~pRch|H0X>tTfo#+^mbK#iKnJ zr2tEeg$R*E^_K!4RDcAI@8Qu2xT)2*=}>3ZiT_dMc*kUe#nF?qO{KpM)gPupj%DS- zd>to))u`=Ys!8;&rRqci3yqgsm*GA~p;H>6?^Ej|j2W@l6w9AX6&JK1RG-X-0aesz zfH@}>Q0A7Rb3MC>#4U8#vv%izIO{6Z6%kkiy4YX#Kct}lR+NBOg!jza$c+J%_BAdF zwB=FJ{Vxz_cZc;0@Ov>O#tSUL#9=8+$u5kl37Dmy862&+RyS|$#kS*!3-Id`9qRro zF1Yq*C}j(uE4eRyv@y0@m3TkW?#|WL%k{;V;%@&=$r?qNgxphQlg$b!3V8o8wTUd( zBn>rPK}K$pOEHRq!sH28s|kwkd!VIKAYgr}@)jrmn?M}QRLFm&YDt6`H*lKJQ9}_e z!nQ5jA_W_5j}-Sh!dpb7xnKT6mop&eX3x|s?v6rVyfz_RnM<{rf>b{52?=?v>Zy-7 zKn?|bbUX2?P!+q|@v}784IK~n=MSavsr$hq`5=IVNai@v&?_|q*wou0o;Enb2CUOC zAk=QqrM816>96b&zmdrkbAu}=W6 z4t7~y<`7dtPJu|1V5^N1m0CV`w+jh*ZPM;=Ji~lN$M}V92oLo zJd0x!W9$58?|FhiVo7nESS6I)do5Hq7O5zW{$?d-B-k$%d{L*tST42wsvL!%t1Z!7%v0a1b1vC3ZTYz&b9GPkB<0^1%Z%HU&s4+=0?&&6&gF7yBl&*& z26CxFZ9KU%gpV6r%|MI%_uSAYGkU1Cqe?)N3?Q|5O8cFL#Sj5qibispJdH(ADN$II zs+9xD{2qi-`SDmN0#d>v=)>C~7|@&aOCB!V8dKRH9nY!g45rl690VH1;%&Y(Eej-l`M&fj*-OjB85M5hUnEuwR8ybq1&YCTZI=rc?Z!>_T^(9u8ED z9E3tn z0z;Hz0L7`Qn!G!VLN1Lo_ZD|}uA6g|cS^*4w(!=7`TA4T7R!2PTW7SNj%6()+aaqE z-85Jzkc3-Wduzw{RaKP6oN3r{EAxL-9Jevji;^H8>`J9jeqN`7A?QwN|nYYs+ zHFKZTHD|PwLcjNV9m<3N%@@O5=F=` z@FMFcso&iXstcFCYoW?k1SiCu4~63&vJR^)e8=i2SJU}Sjw?72W_DeNRta`eF69U~ zTnz<8;VX-NIkubjIib<@jc=yvFGlV~Cu%MxU&}elN~4^bFz~VNYN8rT;L^o`K(jvg z7Dlrz7b|$qu_*!P*#7LgZiQayKT!aSqX9OQb+5w(7Hz!kann!4*-D|RH0-h4 z1!dd>g+He;v4D|@_>hn}jVio?<4M`_=#$KU$5N`!I6+-X70N}y9srQD$ zaqGK)@eFLBC_`fo0a|_D4O3syze}B(ZH+K>omKSY!{dB;M>HH;lZR-3EyQz&CY%~Hn_jPy1UZ%5w;cERegaI>P~ikOa;jX(pKnK}inem$nZ8Tt!T zjA)y+c39C1HbNsa(xn>z9xC)^o>dZd2qbiqZ=Ycr;8M={*eaykhDs&Q-db95FBB@^ ze~r-8Ij~d7FOJbWM))Ki;3`O4zy`BlDUQhUsHr4_2Q~O30iMuxQ^+A~pv&~_Ff8}c z_6pHYGR}qRf|^YnVoX*8p~(z5g|W=H2p$|^`w+-Qz}n_3h2b*1k#<_(6{y*do8R-) z`#*I8$f8?){`Y&`R#$L_GQEUTF~XUKJ{($qhoKD2Gdw^l8b)_V$%ZJrsq-P+WC!p4 z1?=y&gJ6^eXF)vdfg&)U z;$vjrLBz1`l+MD%9$i^~`H#wo?)_egPa~7Ow)JirH$>U*l)6r8QJ`m@b8RIQlLJf_ zgQCMt(JT;kiEH_l61m2Fm8FL-Malh^kFS9VK1-QZ~qAoy|9kh9-e=0e;VJ)?fB z(hwg=tGIau1Vz1@dr{6K(05U95zh*r7u*eb7Z(>{O?}KE_qatf0R{sdEYL_#>y^>0 zh`Z7e@nr_^E`KCshT>9`I-$&V0uZe8U67eBsK<@Q3l-R12;0jD9U$+lAsnTxPr{Z}k#0<5?oIh&NH*h68qmN;k4qYY70~3IHhOg^M zUyT()VKP-$G4ArK@r&aPp{w?7pk{gII1?H*faijK&iZ1-ppNHQ{le7XW6&*gU#clo zY0BcT`Xb$XneePFh_NSzG|^`>47ax?y(dp5*DiM|6Gb}NIa*_(Oa~*-hR=Rymw)=D zGd^x=$>D}kp0i`Moh&Bzz{)R`21aH1eUxYlKy2kkDKbZU%S8dM?PVhC0kHU2-!=eg z`O4VP02=sF)0|pV7e*GRYVutSyC1+*=@d|ccX3(^ICRm7llie)e?2G&AJ8leSJR1l zCWN*Fik4oTn?G#LIf=^Ev7d&Dw-9nU&Cp6tz2T8lZCa%Qc0QV1ur zKPmk$XzOCgJE+7arK9#dE87Ow=`K2rL{JUbz^g(h2YPb2u!pa5l~Kf!Vj+hL%xc^$ z^q1{Y&KS;_R%NlWMDpNRXE;`$aw0lWs#%e64H4}C%84|;{3&!hN8}Z3PhXP z4D9o(EHPXT`cXrD3moP9ve{&w%iEA zv1s_>W3y&Q>@m~u*y{Lr(nzws3fbb?T1I7XOs^BE7qf3C7fY9XaB`$ty4OaqsUP?Dv!o%(@j;MDhIYW|{@T|#;87O}t5oV8xYjX@AkR(8Y68>QYLH!w5CzT!< zmIZz|i;s#t*I_;FL}-t%Trxtm!=!p;$YTusJXpBKyA9$K8`(uPVH$EV;y998#9a+H z-wBir)Lg8$(MP%p@kL*$o|&_U0JA_(|l@X($mnGo2iCVyOzaVr8x;gSaGnO$4^v*&tPk&N_7p0N9#WkRM#y!X;* z=dpciMc^`lGm}A)h|lQK-2M4-8{8Pd=}8DibbrrTqclpBU|t8YN>1kwKJDi;>Lmj* z@OQl+ON>B;cY14Mo+MJTE0vz2?1bUlsYysp4C)xYlZET1%3UApp^iSVWTA1gN|aRR z^dAKER71iH>u=1xe@eFnD@6a%qo*_Gw@hT7K(sXkMtPv@uT3x9sJ}2u69GScVVE$9 zNi$@z_T%krQs5Bh^mKQnF95de_0N^U(xg*U{H6`UtbB~S_>%mGh7uY&WYcY+bApg% zxtb;M2X+!Fjs^9rpr3I20@xd);xJ+f0C7h6xn!d#-4)*(Ol&>hI1%1>%MPluQTmPDvHlW(W;*i#F`VuPIzlxk|&Dof!AD>3kniAn3>ji+DamGDkLCLm*R&}OM5=phinKesjtmj2Xe%- zt<*n=c1*-kmhZy$-FqGjqVH{1hAp>WhYZE|Wb)#$=i@ogPA%(x<&5GgF|KQgasVRL z6AewV&J*eb0KT<;mWMtshP4L0W^^)7sFLUM@HeTtg3Q8EYj=>?Gn!-4h)!I*#w2*j z&prR>YLQACWoY@f_^S?t!C+oNzwna~20K|p)DRm20}k;0#x|UilP?4frZ2@^(kg~l zhZ!WmaX!@$s(Emccb|s9U0?m~KwU^x?@!dd?w_Vb1z~zVqM=Whi%cFl@6gW*O_XnH zJgZ8%ZN%I6LSkq@EFR-F%8oLo;Vg+|A2OE|c}(>BYxBkd0uXAZTq#$O^+&`Uk!jVu zy_XIJq+~9l^k@!hZ0hL{fqkXLq7Y~rvQ-}{c*ovc!1;PxyGFjJVgr3WTMwm@ul-vAx?^7d|6RpEu7a-OT8Qo zKXo}l$BaBB()T>(Q8^P$7M4()4b-{uKcO#js{!lUtabQ~xvZyO!8EnY`AS`5n zsan|bH|{C+s0XEdpB%%{(-pfQs09>(2@5dqI{*FAT&Ya4{RHuUTe?GApZl_dsn6Gl z?r;VSVB%Np6`JjF@2jxkyP&EZ^{t_=qhNAJQs4*{qi!q&SvPU$Z-%^x9>o)YpyJHB z0?blR2XBsR@qyzct3K!HUl97+D^b*efC#vz?hJmL0X7NSXj#r_&N5h3L&Ow6Yi*Qw zhqBkr31Xc;7miqH)O+%^7l~6apa(geB5Z@L=T>~dx5#H@gQ%GKq3V7qOH8707agdT z!Y$K}A#38O0x2YTyvYBRy(jImseA|&#a3K1a}d$EQz;?7?qieUix7)ur53PgCx%cB z>fQ6n4IA-!QIjAdY{EhiBsk7CbP+Spk5H7R(<>a6c8sH~te9jlAVm?kIp?ut6zeE*OQG2(jouDbkFeY8Ulg|Roer;V= zvM0pF)gmAHB0;~)4oonNy}Ep$2f5tn;xw={6S#_KRCot@Q-l`)bSSLBxjGYdQ7^<8 zidp8^Hm<2E4FpPsd$l3(Y6d{IniojX@E>Q53&ka5$%A|Ib@{&BeLlf?#1yQj)+4z1 z;ZaeE%g2zZHVBGM+X~1%%^4#quL0H*@@W)9d)3pAH#z!PnfBqr&8}&Gw+sWVhP@5= zU^`vl&M0Xm?AzF*p=7;Am;GI{`opgXi+$FwzBFfM7tc|SkliM7s4=9hLLYcN5F7bw zdaT~(Rg?~Wq>FOfMnEP>uR%E9v zdWh1C@iiPPGm%wz+9vd+S3<0{nR5A`|9edlOYiIrALHTDvou#-gx}v(4nSin`rb=| z0Zc`iZ6vA!3WB)Bx$oa0H!N4pw98?2)cv0UztgF@xxj@${OYE9_qF`tQmn#*pW=*c z=wpgmsHZVI6Ovx&XO6nmuw;1kx#7j@{^cl%W+g`Nv=-6Dlz1TVpIWn{71DT=fKdVu zN8ypnsj(EBje{A zH|pLzx90qcu8izH6oiz>dQxdkMzociV)wwGNq4TE-Zoq5xij(Nm%OUOVE`PE?W`lj zRT{xv40T)D8^I6bys$J4AhE4*e7xhuo^SR!o^hw{p3PKUkZ7z^+A8yu+;PNyK78NN zau|fJe9j58K5(f+>%kaC?_Oc*bA#!lNYol3g+}sCL4R|U!g?>7Q#juthRGtV*&(HE zUObVTDTuKQ1m9I&%r2@ePe#9So^G{vxzBlj@Rq=ipJ|L9qG zqF2A@-HL;&ik6Ss)1*t!EL_12MP}F;L4+HqTkYvxaVQMbQpuGE`YGJIDx#&!&~NqK zG1Q@pgZh7ALP|V{-Wj0osZg1};9OH2^I^F2oQ#yb_wBOn@%`I1rM*h}9WfmYs7b#3 zSl`KR1`8k@H``?WVvUuhNo$2k`6MUUHW5Khp4?SQ>wN}F`Kl0FC1+BKVH7(pY9RQC z`BtWSd)y)sdswC_qAcfzOWXio8&{Jk`@Sgk5iSxjNBbtB;i!wn+Nfd%D?3F@N#bH| zRrv)fkklcvx<8xZHjK1dZj!hb7pQ97&sPXjDu+ij|I}MUx+8Ozhn6(W9x^tmgZ|4H zEdH)0`;_g&o43}a?~Nt4FlC$6@IZvXQevPL4nt?*L^{M4{+k*x4gnxwXU00?-fBD4 z7d%}c31Rs`VtTHkyVOLZnJ8)bJWNxLU*;30x<+aE(v3ydAfIHZ08mphedx;(8d@-P61}J+(S4*rMzg-HS*ig3xgUigJ ztgw$~#S-+N$4U7+FHnhIz2o-(d4tu>rE<|}ZCxCO>l>7k?&;?^bJ+k7-YWTg6 zzz;*gsqiYU1m&}eK*Ud-oUb;Pxj#z1pG&bH#oJAJnZHf872< zi>k-b>O>W%DD9F^DfvUpsYT}^LBUSFq%400nriDya|q}s-N_doCwUw5OUWspOA3PE zCUBj$seuyUv)}kj%|n;~WZvp+Ko!DbuJ(FXxS(?z1<VOm9*zr&%1r>(bK5%}j#h91{v%47hz zE{-d4JgZ!<(sJ1&pR*XRD;492v@on{Nq`es!wwVN<7TP@m%%>cI-rX7?oVLb_+NQ7RdFL zs$hzn?)PM-;0JIcn5?}}I7m!D&@o0+${W(e%2`+MR4RGYwn^hl_&PW2O19?N_N#8s z%p4LLgxvkLbskDwlt1SK+JSZy2el zO9^hgC=7XiaBWunV|dIpPBXo@IedXAYBbChW==ZwnW$Z-S~Pu%8bFl-r9I{G3z_aZ zkGs*;QS{q8j0eM!hiXtudYLlZ4@r;Ea7oN3#w_`T5+kvKKbrPklJgELB z34N7`5!zFpL3A3^_y;MwF1D)FY#336LKfX{_7!rc700dGa>QFcKqmuW z6f#6Y_EWt11$Tr8JW{+0sM@<`cIU#eH)2e{p^7Oq(Ve*PsCK}_9TfVkc@(ac1QF{L zVWzi3x?D^k>o5w z0dC;|xj}(H{yU-t=gE3jyl&EI0@uwSXKDp1!18DDLUL*WTU^BvMqr5lD-*?xo2rO} zx2+6eYGBf#2)Tqpj-XD~aA#$Cx-Yvna2uy3g@Oq=i>TdLRz$q)4G?#)sdfbH^e?)-HT0dLowLp5zrj`jxYoBpP>vk- zl_okgu=j}J4*5N=LU{k$p-k36*zQJEjK~QBMvaoD#Z{66m}YNzw4;mVlbJ~`%j69@ z?6dQp>!>QqoPDbXk(Qogk0T*L-u0ky*TiTd)JLW9?6U0Bbrrk^eV}5r#Mhl@>tu=# zu$U)eDCoGoC+-rUSEg13sOh(HnY7h|?VunY^+M;R1q6p7CT%tQcPRkGYwz>S73b;n z<;JL}Y%bQhU8zQm#*=25;c3pvc)hu=Dq7W|lSFS7`&;>HM~gA|S&*-blX1On2(=1& ze^{02sQQQom_QUFSTj{&cm*~?5NDf)U;Q==R$1oJXt&YRpfKqG&C-fvYw8&ki zmlDoi+Un&tfw-FNHs`?v$RGBjSJ;T|Nx+Num&L z62LS#mA9NW$94;?qlIDD*q3n?XR-0D0(Lj?(7oW#WdC!nU@8`M-~Y|d`055AW-&3* zn}Rs?+lYJ>Qq)wJPD0;WkE)>GrewmR@PN%>s)un|-+P+0kihi{sex+QMPVi* z0rDlGol4~rppGrr7;!wkTUgbYm51zC3HINLK9Z|G3JFXB-vkTWK>=s%6 z9d}V*CkM7XO;tb1;(Y=_HOF<3Nop%0$}d>1oxtVUc^8rmK4oeENuR|rRrZ&KUuudO zA@;l=)%OLOfEERLbs5B^Axo3pUne9O1;JFK-RIX0pt5he z15uqqDL3+sC7zVIL^0ZA0Zv{n1xhIav2xDcF{mm?Zo*_$H1nVUJ0HLT^sE1O7y8`v zQApiUJRy*3rIe7dOFW!$9eMQ%K^VJt^*Lhq7MJsOc7TBjsO2qM{6UVMTaqis2-}$YMH3*9&nQDOVu)Bn4)71KJQz2H;y){ zJ$?5&O*tL@cZ}z`dgOBbM^u30jxVb!!YkNV;=|Rmyij<8$f=M;`5W(H^%(}y670RQ zXlb4o@#J$+n?d!vw<@)xDq%jv&K{IFIm76KKy=9rSyf zx$jEQzb2(m8l#vdD&rIezf!3B4+7jGd)RYmho>w`(KO2nhV9N`+nytKmus)3wv5`f z6QvPboD2OHA$-K*rwE+AXLKHZl(K z398ZnQ{?G=BF^Z#HEvdPM)5ah{@qNIc&`bPaU8WgvY}b4&0XLARnZvXi)JzDiV}rz zd0WKu2<5%YGgm~bAhCS3hItkoJ9?bJ86~g)J#+JPHw8T_{Y6b_T0bvg7`{rLh{Yby zuE12AC={`?VssbpSv~ix^Ya&W=k2aA zBJlbltumZGFS}lRa0oM#@(gIqvRm%q$30}U~ zEFWcl<=%-JU6=gb3$u!9xFJ4M+bi6a&*GrFvlY>geE53g)_K#@1Krh4ITd3+DKGbN zHYC^Tm!)la7mzxwW{6166d9hvt4pywu0Yjt$4(rQs}Gm;XnG|d5nw)g8E7J>F@{5a zT}qg8JQ$YA`2r{ZG1I^Xu%Vb|{!4dAfPE>Lj^!;ky@}d4<2@_KY!a{o#VDt)3ANy? z=U0KSc)ZdA`#0pBwq{I~M~AzO;9^5ulMiAb=hp@5i9xhus&`-h)hA;+%g$Hf_kSwW zF*)7T+R=pgT3hhWb6kV{Pz~by3H~POBb;N`h9_Vp%`gZ96k!2kl+{ePu=&2!*n5qu zV{wv?lZ*lJ%U($0)6$kXPY;IPm(*!-mBSkM&pD+6h8^XzC>qAk3yq)(N}PAJ?g%VOVa3#2i!F+MRW7mL{Y$GBc}a#siVHwssshGNy59q<@e8q-AdRJ zYy(e*odm&TgiWP!WjO<4w3%6LVPgJN6+A&bx8;n5JtpAH^Rw7-vYsFkTsu4|G>p|4W;ZQO*4EMcb9I#UDt`MG* z(}+|P4ws^-5%TA~qY^5-0+@ zg^_lLs7+4QjuYx7d=;TpKhCxG!&$9G?V0AI?yr9LNU3f^4nv`l_-l2MfCc8ynLMp= zX6gd{+4uw`C?M6O@9NZXY#qaK9SQklRl(FA7usOu2sKmIR=0Wf@%{!rrb4v58b4s5&I-H>W|_jX*KZ#X+jE z7HI|TiHqnA&3wyyKf+K@0wv>G@AiHKy68u)x&AaipupP2BG^42o@{x9@-M*oA-HNU zUiThYcXcp_PR2jTyJ1dBR4iSlh(49pIwhVi$kC_hxb-nCh5bE3$ChC?8*kND=w$j9 z;1Hl)B*Q0QARxP0{r6@5!84#krvY!~UXDefFe<%U#C-ltwL1L$Mt9oH3O_&A0M+s+l}j450CBGv_zqAS3Ki z(`OZz7(M8#W(t3>kp0o3claM)Ru+B{sXjIk-82#qS~_JCoHkJ-=6szxtt|!f z%|u4zf2JyfvgHOcX_+ZTV*ucybIOe!k7?PcUw!pFZ{iclf}OwJ^Q)q(ETbV~pSmSv zsk89UjxYkIfCgezivxPduTaaIz1N*yzx5=Fhn&JYnr<*r zL4%|!f6Kv)UIh_8VN2|jvLk|c(o0b(!370L%eDkQ2?`ml&XD!`82CYT%&vIbYG`+`RYSb%DGlNxG%g@ zG%{)+WhAI~^~xc}C3p3vssNJ8F@D)&ORA!`c{s~*^(832c3XEA8^PCb?-Abp-%kQ> zIvhrofu%Yi1T7P`Z%nk)QUqDd&9?NXkBcTo&75g-XsQMqBPpjoa-`eCHTDnc!Y zGR(l_WB+_)6pbE1ZFlx%#TGS|zQniTqo$|2$L?g+FLgfBluk6+tQr~EfJAup(OcR- z%Li-Cr~h%F@a=6vm-^N1i^zEOtB^m$1T#I%LSO)yrk9<8u;x(&sk2QmmI>8O{Aq>Bw-GiBx_#iK z$kFCwp!%t@DGEQ6GkBTL(aiVee2Zz&pQi$8d9IH_CG~5zg0x5+bx}t2=KQC;LA}P3 zH1w-!J&GpWRyKnJ|JGx<9AJu8clV>A5r_Lwp^zyR=)XHuu=2l%J`HDR zkBNGyW*+BsaS4)jR`2r}^V}5)x5uUCPLVh^2T$uN6w`wzuTp!&qs=>*9T8NMMY9%C zKS-9&dRkykJl4%zIRYon;||1X|D>P|C>t+1TWB%rY1%G?R@ie!{(c;6v2OK7#ZmTI z&x0ry@Sng--~C<N-)x+BxJ&bjs=J}9?@^k-cSyeQ#3s(SmSMPt%1)p<$d@g2J zUf1U_ZF_!*O2|D!22ZKI&pWn6;DB{qc#C2Kv{IHvGTu(t$H_f%)TfP2%?q?v6)`PW zqChA`Bu?C-ggWD}eg*bHefz+-RsvQ%XHGEDfW%#Nheg1lOsB63*ErgVIU&n|l{Tx0 zLYM9k1l65(E~>4I;ZYxY*dpb)&kUhn!Na#Gd@mx-0pL3c;k5wSR(S7)D#uQ`nVt&~ z3||2nuJVCJM2DyldLn0mb+`MCVTwy5c53&r`GZQQ1t<(%UmVbSUlh|r1pg5h*w_&~ zD}^(+!*6pw%M4mI>G8dJ>^SY?gJ`HTt@P@Sz)gT~exZ$qi3ow|LxRJU$o)CiPy+u* z!vzf3r%zaMAw*g_g{vLz#Owka<}MZ`tcn!%!%c^<_m7>X`)x!Zl(HEITk~_*Y`_xQ zX@F&tjxoIVhOywQ`W>lW!eN@ofdm>PZana&`{Z;tTGb43XXF(_qnqC5x>Bh_3~OkG z9`Cz59~;zOE*n(>ZTA~u_mxo4eJsGLs~;ERt2TM!HiseFXQU7=@P$xjvq%*k!;HmA z2M>*waxIaLw1|RZn2#_knpoO3LR$2mz&?C{CGrOj7erHzi^>xIAG3{TUWU_LGhXaMsENO;3CfuXR>gs9dgIx8`NlS zEq9bjYo))Q=l2sKp^CjczpfPq%&AFpqpWX{YO2)`C}=1iX7S>Ate*_nIVS8VR2-T? z80)>|L3XwYTB*-~?<=h$6};jtTP?^ckc-xgG9k-|IO+$8kz91Umhs4NQgleO0R)xJsWeWk}l1$+SXRd!3&W; zjFV8n2sRIu*DBZ(lRfc+6;1lpM;0LpDP>5NMdBJI{1@L~^i%LvyY}Xy=Uz?+N8JYh zWdL=8fBm`|X2BI{-4us}e+(^C$cCJ3DmC9yq0$5MO^ggpgcA$CAQj9Hg&6zrYn#%- za+3ACW&zK>_XKW9NGd^Ij8$4Zj5cpT@6RC--M=|C#lxbIMVD1-U+QmEb#M(**|=vXClwgBGtljGu# zV^p7&Wub;!ZvD+Vz#Nf#vE+zyW-f6tzd%xI~9keOfdsR$A%bL!z)``;aaw~VnwhW{I>fcN} zZ{h?v9b8;M5tw^=ynisjkY)$}nP0x`_`uZC^7BwMK)>+v+uy}At*X>5oWqZ@dFWJ| zZtgGi20q(lk^+z#bD_ePqHbw;--wn!PgJ`o`m@be1F;EDTr&)~A-pjgIUyXb5!}y2 z?jyYP2oW9|4MV9g!zwM}OS2)(MsGTfLNpwm7Id+RJF6x~2zqt3f2+S{Cv$tfKIR&z zkRMMGs_)p2iGD~3DHqy#h(?A)$cqlkHGos&!0C08XT+3}DR6wtqbee_-}pPB`dX?$ z0F#GLY26Lf^NEA#nu@Kt=ZE6{lTiNczw{CsIv2L7eD<%GwW?jv zH*&{jXHvO2z{Ec<4%f9I4&sgJGvui)lb14^1>|rhy$M1^>;UV;srbDo-Z?x(vLpaC zTj3HHIW$5L?tNWWMNseMt|(;Rxl|Ul&SKUASBwj!sR5YzjADYxJ+#n)g`4}&9XF@c zgh1Kbx77>3Y$+sk5^qX;<@U%eS6WwD|nT*vHn-fjny=)n^ z4}t-^h*A5G1L5c0Emp(a+x&k(nKJFV&<_x8>nm{WIG8`>ej7u$QHz^$WRJqvYP77pIGOy{`sc_0WGK8D z5fbx?BX&=EFqbge&dHwDkqwO{(c-0vm>pe4oA3)=Lq)DO1?lRf&_A(apLdLh&^x|h z+hLx?lG@JUP)tW^MFeZW(cXI{kh&Hw7||1(iI4yJ#rDHGIX6Y87<}~i^pxFrDdhaC zV6KoGT^u~|Fe?$~n!WkjB5o4NPvoIyrm z&a74Ih39jxNomSP85Rta0U9oh;oG(8EPUuvX#U1B3fW@Ov3_)+qD_Tz^V4(9%>p~T z>xG$=W~<3b^~`&J=~HrBXHL(Zan*=H#2g%yl6~$KvZ1(8?`;T)lI7zv8MznCIR7g~ z2qGn(f6jBuP_0pK)Z5!(1klbxZ%|vNWtfc`>B%(!MEP;rG`G4nVT>ep)-(R<)yOg- zJNV?O_Q`S?LYR%J(Gk~aXmIs+f&zZ@l@yBIHH=>nRZ(ntFB%Bx?hNoaiRwUILcP*> zst`^Fcs414F+jzvIgh`TVSKy0=65prMGe{aKwAhZ08inp95rNcgo?cenYOrod8PS5 zBeK`qi^Y}1vYf~wrY;^xSL zaP}uUFI4vczCMm|AZ(8b0=;d7D$tI*t7u1&Pm{;HJ0csZdD&)x-J8BXEhfBi*KWf~ z{ibmaJhQm`+VQXjn@*5hRyOSiZ7uI%!$Bd&z`MbB3slX|$XPIi*KlKVPWhgfxyG3; zJQrlI{PVn1dG;Mg5&PkSZ1E;M>`$Htlscy?epn4aaX>jXgKP+Z=oVbRSSjV-{h?~R zr_Lz1@i7zz&wB4`RuX4$$=JRMk& zV{8tYH_m;fxV%_!r7B`jX83Rn9&`+Vdnd_58=1V`zjr*pk5d7rn{)1A^?6)QwUk4c zs{%`h=ZaGsnJhBxqy&0W{41bGVFj>U&f)7EdUG4DP7UYyaVUsdi~Y3bWzU%>e}wkR zl(M`yL##j)N+XV>`5Y&-Opj%Xm!HeF|UHXF;Wzt{VqA(j?3|8Hu@`XCb5dY3DPQi?k_MhkZ}eK5rW20$2B}U70aL z6h9Y5x5u##e?b!T)C!<2vNnrNmK4f2IoR)kKBPQxbB#YsQfWUSxS^$nK zO-HjPf~$H*sc%mK7(3CJ9bVk}(GQI2|3IrRXo7XC>WvA!_{Mtxp1vtBl{m9p&V-3O zT+v+Q8Iudw4qwD;cpoQ19+%wVKB^QUUhzbsg_q(T@neX%$FInI;nL=XC?IXqI#1@VT4>B6R&&q9o~Ka=%3o;?G4ZD#StimpE2m+M`cr#2FIU@9ujJt$x>Rsb+KWdG2`Q_)~Adgh}>P>nKy4GPuH~vQLT8+%`|j=T(lM z`@VDOC{R*hE^jNhry>O4#i%C(dM8UFAYp!(wL!GU$ZZt&+lYVetM(?GvUY?Gx^0ql zSka*sH>mC~MbtCjA)ZEe>9bwzdd~#X9yXv;bD0ogVdufVDu%Zzeb^?L>z6R?W|=4w zZq#v&Id(ODiqzw2!JWZ?#gFUslBQ2s1_1_;h`r9MPEZC&Idm5ITwoR>F?i4O_LmaQ z@{T(eC2yD9Q$2D+>QAnf6LhCu|Bk}=CzN}tFA3IR~r9pjUPH66g$_{#~*HTc&);dz` zSpLLC7Woicn8FkkZ3qfS2@fL?hSLB?2PNckh?XTh3PYfP8SERY*bdv$Y~&XKmOYsb z5q)=?Q}b)4Er{EZgdng$#HvHYM%tx9rpMtt$EdJ;44-QCCpm^j6p4i*Da-<4J^Qt* z8x2LjOO@`$yJMjetB|?~wX01BQnI^Ae~PF^6`RvnCSC|z2>Z90Ec1TDW znw4U=F|W#ihLYE%4FYf&Jt+GF_-*;39rC6071UE79~o2JjXt3*D8^Br>B&36k25xz z&hf3VVfE8icerNR)(-AXfeCLn*jR}f6aXX2LU?$#jLq?R}q_) z)a%WCE{9&s3Im*kaGV%-eO&RaF5)^6Lmz+)C`_?G_deQ-5OOP7&$Xk&pdVfjhaTDg zs<{8FbWdOL42ohc8leH1$MZ}%+Fk};i;^L)!{!T*TyLL}VNUY;4#^Mb^h#jG;4 z1)43Tg3yGpno1O1Q|`Q!VkW9uI7Or) zs%Yvy>dOW8MdgvjwnQsT!S%_`5;*CYfHEMuWAZc|qikSdc&t|Evf?{Jp`tW@J%LL- zbdxHCM)SH~!Rf25+yCk3Btpg<-2FSy9_Bu;CVB0QtP)NXb=rD~N#irtFhju9)P z+FrRateHSsrb`E)j9{5uuU!Ro!Z)R#^_zM8MHQy-W4kj%X}5Y+s9-NKVc{SpByd=8 zVJu)vC>T5}0u!1ZU7BY_J-u4{WhzN%KUD>L+>>8O_z<9C0^d#Mk*}c>QK*~KkKJv3I>V=&Rul#lG{>V3Az9+6WbxnyVZ?Y zMj>cZdR_U--KP-UxYHG0zqtMMInF_EbBgdafK0dAqAXZGkBDc@sw;wXO z9OR*DH!vEvdIEKD$P%XtkJw430?k;#w#taEpJ* zGO%XOd~_MzXz=U%joM$_dh$Y4==8p~Zt|y_IQ$mh`va$*g0aC|_-@X`QmjP n3-w*1NJl1ZGRA-Zj{pMz#Uga{lf(b200000NkvXXu0mjfzw03O literal 0 HcmV?d00001 From 266a94f96147bf82e6eb67e9efbe8ad1882b0026 Mon Sep 17 00:00:00 2001 From: nsemets Date: Wed, 8 Jul 2026 09:56:39 +0300 Subject: [PATCH 05/15] fix(dashboard): fixed text and order --- .../workflow-launcher-section.component.html | 2 +- .../constants/choose-repository.constants.ts | 16 ++++++++-------- .../pages/dashboard/dashboard.component.html | 8 +------- src/assets/i18n/en.json | 12 ++++++------ src/styles/_common.scss | 4 ++++ 5 files changed, 20 insertions(+), 22 deletions(-) diff --git a/src/app/features/home/components/workflow-launcher-section/workflow-launcher-section.component.html b/src/app/features/home/components/workflow-launcher-section/workflow-launcher-section.component.html index 988a529fb..16cc95ee6 100644 --- a/src/app/features/home/components/workflow-launcher-section/workflow-launcher-section.component.html +++ b/src/app/features/home/components/workflow-launcher-section/workflow-launcher-section.component.html @@ -2,7 +2,7 @@

{{ 'home.loggedIn.dashboard.workflowLauncher.title' | translate }}

{{ 'home.loggedIn.dashboard.workflowLauncher.description1' | translate }}

-

{{ 'home.loggedIn.dashboard.workflowLauncher.description2' | translate }}

+

-
+
{ { selector: MyResourcesSelectors.getProjects, value: [] }, { selector: MyResourcesSelectors.getTotalProjects, value: 0 }, { selector: MyResourcesSelectors.getProjectsLoading, value: false }, + { selector: UserSelectors.getActiveFlags, value: [] }, ]; interface SetupOverrides extends BaseSetupOverrides { diff --git a/src/app/features/home/pages/dashboard/dashboard.component.ts b/src/app/features/home/pages/dashboard/dashboard.component.ts index 587aaa281..d25d75fe5 100644 --- a/src/app/features/home/pages/dashboard/dashboard.component.ts +++ b/src/app/features/home/pages/dashboard/dashboard.component.ts @@ -15,6 +15,7 @@ import { FormControl } from '@angular/forms'; import { ActivatedRoute, Router, RouterLink } from '@angular/router'; import { ScheduledBannerComponent } from '@osf/core/components/osf-banners/scheduled-banner/scheduled-banner.component'; +import { UserSelectors } from '@osf/core/store/user'; import { CreateProjectDialogComponent } from '@osf/features/my-projects/components'; import { IconComponent } from '@osf/shared/components/icon/icon.component'; import { LoadingSpinnerComponent } from '@osf/shared/components/loading-spinner/loading-spinner.component'; @@ -22,6 +23,7 @@ import { MyProjectsTableComponent } from '@osf/shared/components/my-projects-tab import { SearchInputComponent } from '@osf/shared/components/search-input/search-input.component'; import { SubHeaderComponent } from '@osf/shared/components/sub-header/sub-header.component'; import { DEFAULT_TABLE_PARAMS } from '@osf/shared/constants/default-table-params.constants'; +import { WORKFLOW_LAUNCHER } from '@osf/shared/constants/feature-flags.const'; import { SortOrder } from '@osf/shared/enums/sort-order.enum'; import { MyResourcesItem } from '@osf/shared/models/my-resources/my-resources.model'; import { MyResourcesSearchFilters } from '@osf/shared/models/my-resources/my-resources-search-filters.model'; @@ -68,9 +70,12 @@ export class DashboardComponent implements OnInit { readonly projects = select(MyResourcesSelectors.getProjects); readonly totalProjectsCount = select(MyResourcesSelectors.getTotalProjects); readonly areProjectsLoading = select(MyResourcesSelectors.getProjectsLoading); + readonly activeFlags = select(UserSelectors.getActiveFlags); readonly actions = createDispatchMap({ getMyProjects: GetMyProjects, clearMyResources: ClearMyResources }); + readonly isWorkflowLauncherEnabled = computed(() => this.activeFlags().includes(WORKFLOW_LAUNCHER)); + readonly filteredProjects = computed(() => { const search = this.searchControl.value?.toLowerCase() ?? ''; return this.projects().filter((project) => project.title.toLowerCase().includes(search)); diff --git a/src/app/shared/constants/feature-flags.const.ts b/src/app/shared/constants/feature-flags.const.ts index 6c2bce9db..b5edebf0c 100644 --- a/src/app/shared/constants/feature-flags.const.ts +++ b/src/app/shared/constants/feature-flags.const.ts @@ -1 +1,2 @@ export const COLLECTION_SUBMISSION_WITH_CEDAR = 'collection_submission_with_cedar'; +export const WORKFLOW_LAUNCHER = 'workflow_launcher'; From 7d7096b095acc4b32da0235e3a7aac69a4b64f2c Mon Sep 17 00:00:00 2001 From: nsemets Date: Mon, 13 Jul 2026 11:59:19 +0300 Subject: [PATCH 07/15] fix(feature-flags): updated flags to one object --- .../add-to-collection/add-to-collection.component.ts | 5 +++-- .../collections-discover.component.spec.ts | 3 ++- .../collections-discover/collections-discover.component.ts | 6 ++++-- .../features/home/pages/dashboard/dashboard.component.ts | 4 ++-- src/app/features/metadata/metadata.component.ts | 4 ++-- .../project-overview-metadata.component.ts | 4 ++-- .../project/project-addons/project-addons.component.ts | 3 ++- .../settings/settings-addons/settings-addons.component.ts | 3 ++- src/app/shared/constants/feature-flags.const.ts | 7 +++++-- 9 files changed, 24 insertions(+), 15 deletions(-) diff --git a/src/app/features/collections/components/add-to-collection/add-to-collection.component.ts b/src/app/features/collections/components/add-to-collection/add-to-collection.component.ts index ac2ee4e37..5f1b99e61 100644 --- a/src/app/features/collections/components/add-to-collection/add-to-collection.component.ts +++ b/src/app/features/collections/components/add-to-collection/add-to-collection.component.ts @@ -43,7 +43,7 @@ import { LoaderService } from '@osf/shared/services/loader.service'; import { ToastService } from '@osf/shared/services/toast.service'; import { CollectionsSelectors, GetCollectionProvider } from '@osf/shared/stores/collections'; import { ProjectsSelectors, SetSelectedProject } from '@osf/shared/stores/projects'; -import { COLLECTION_SUBMISSION_WITH_CEDAR } from '@shared/constants/feature-flags.const'; +import { FEATURE_FLAGS } from '@shared/constants/feature-flags.const'; import { AddToCollectionSteps } from '../../enums'; import { RemoveCollectionSubmissionPayload } from '../../models/remove-collection-submission-payload.model'; @@ -126,7 +126,8 @@ export class AddToCollectionComponent implements CanDeactivateComponent { () => !this.selectedProject() || !this.projectMetadataSaved() || !this.projectContributorsSaved() ); isCedarMode = computed( - () => this.activeFlags().includes(COLLECTION_SUBMISSION_WITH_CEDAR) && !!this.requiredMetadataTemplate() + () => + this.activeFlags().includes(FEATURE_FLAGS.COLLECTION_SUBMISSION_WITH_CEDAR) && !!this.requiredMetadataTemplate() ); existingCedarRecord = computed(() => { const records = this.cedarRecords(); diff --git a/src/app/features/collections/components/collections-discover/collections-discover.component.spec.ts b/src/app/features/collections/components/collections-discover/collections-discover.component.spec.ts index 0d590b06f..6dc086841 100644 --- a/src/app/features/collections/components/collections-discover/collections-discover.component.spec.ts +++ b/src/app/features/collections/components/collections-discover/collections-discover.component.spec.ts @@ -14,6 +14,7 @@ import { LoadingSpinnerComponent } from '@osf/shared/components/loading-spinner/ import { SearchInputComponent } from '@osf/shared/components/search-input/search-input.component'; import { CustomDialogService } from '@osf/shared/services/custom-dialog.service'; import { ToastService } from '@osf/shared/services/toast.service'; +import { FEATURE_FLAGS } from '@shared/constants/feature-flags.const'; import { CollectionsSelectors } from '@shared/stores/collections'; import { SetDefaultFilterValue, SetExtraFilters } from '@shared/stores/global-search'; @@ -144,7 +145,7 @@ function setup(options: SetupOptions = {}) { { selector: CollectionsSelectors.getCollectionProviderLoading, value: false }, { selector: UserSelectors.getActiveFlags, - value: collectionSubmissionWithCedar ? ['collection_submission_with_cedar'] : [], + value: collectionSubmissionWithCedar ? [FEATURE_FLAGS.COLLECTION_SUBMISSION_WITH_CEDAR] : [], }, ], }), diff --git a/src/app/features/collections/components/collections-discover/collections-discover.component.ts b/src/app/features/collections/components/collections-discover/collections-discover.component.ts index 62c60061d..29d36680f 100644 --- a/src/app/features/collections/components/collections-discover/collections-discover.component.ts +++ b/src/app/features/collections/components/collections-discover/collections-discover.component.ts @@ -41,7 +41,7 @@ import { SetSearchValue, } from '@osf/shared/stores/collections'; import { ResetSearchState, SetDefaultFilterValue, SetExtraFilters } from '@osf/shared/stores/global-search'; -import { COLLECTION_SUBMISSION_WITH_CEDAR } from '@shared/constants/feature-flags.const'; +import { FEATURE_FLAGS } from '@shared/constants/feature-flags.const'; import { CollectionsQuerySyncService } from '../../services'; import { CollectionsHelpDialogComponent } from '../collections-help-dialog/collections-help-dialog.component'; @@ -79,7 +79,9 @@ export class CollectionsDiscoverComponent { defaultSearchFiltersInitialized = signal(false); activeFlags = select(UserSelectors.getActiveFlags); - readonly useShareTroveSearch = computed(() => this.activeFlags().includes(COLLECTION_SUBMISSION_WITH_CEDAR)); + readonly useShareTroveSearch = computed(() => + this.activeFlags().includes(FEATURE_FLAGS.COLLECTION_SUBMISSION_WITH_CEDAR) + ); collectionProvider = select(CollectionsSelectors.getCollectionProvider); collectionDetails = select(CollectionsSelectors.getCollectionDetails); diff --git a/src/app/features/home/pages/dashboard/dashboard.component.ts b/src/app/features/home/pages/dashboard/dashboard.component.ts index d25d75fe5..a42ed91d8 100644 --- a/src/app/features/home/pages/dashboard/dashboard.component.ts +++ b/src/app/features/home/pages/dashboard/dashboard.component.ts @@ -23,7 +23,7 @@ import { MyProjectsTableComponent } from '@osf/shared/components/my-projects-tab import { SearchInputComponent } from '@osf/shared/components/search-input/search-input.component'; import { SubHeaderComponent } from '@osf/shared/components/sub-header/sub-header.component'; import { DEFAULT_TABLE_PARAMS } from '@osf/shared/constants/default-table-params.constants'; -import { WORKFLOW_LAUNCHER } from '@osf/shared/constants/feature-flags.const'; +import { FEATURE_FLAGS } from '@osf/shared/constants/feature-flags.const'; import { SortOrder } from '@osf/shared/enums/sort-order.enum'; import { MyResourcesItem } from '@osf/shared/models/my-resources/my-resources.model'; import { MyResourcesSearchFilters } from '@osf/shared/models/my-resources/my-resources-search-filters.model'; @@ -74,7 +74,7 @@ export class DashboardComponent implements OnInit { readonly actions = createDispatchMap({ getMyProjects: GetMyProjects, clearMyResources: ClearMyResources }); - readonly isWorkflowLauncherEnabled = computed(() => this.activeFlags().includes(WORKFLOW_LAUNCHER)); + readonly isWorkflowLauncherEnabled = computed(() => this.activeFlags().includes(FEATURE_FLAGS.WORKFLOW_LAUNCHER)); readonly filteredProjects = computed(() => { const search = this.searchControl.value?.toLowerCase() ?? ''; diff --git a/src/app/features/metadata/metadata.component.ts b/src/app/features/metadata/metadata.component.ts index f04a46343..0c38f2b2a 100644 --- a/src/app/features/metadata/metadata.component.ts +++ b/src/app/features/metadata/metadata.component.ts @@ -48,7 +48,7 @@ import { SubjectsSelectors, UpdateResourceSubjects, } from '@osf/shared/stores/subjects'; -import { COLLECTION_SUBMISSION_WITH_CEDAR } from '@shared/constants/feature-flags.const'; +import { FEATURE_FLAGS } from '@shared/constants/feature-flags.const'; import { MetadataTabsModel } from '@shared/models/metadata-tabs.model'; import { SubjectModel } from '@shared/models/subject/subject.model'; @@ -132,7 +132,7 @@ export class MetadataComponent implements OnInit, OnDestroy { private readonly activeFlags = select(UserSelectors.getActiveFlags); readonly collectionSubmissionWithCedar = computed(() => - this.activeFlags().includes(COLLECTION_SUBMISSION_WITH_CEDAR) + this.activeFlags().includes(FEATURE_FLAGS.COLLECTION_SUBMISSION_WITH_CEDAR) ); private resourceId = ''; diff --git a/src/app/features/project/overview/components/project-overview-metadata/project-overview-metadata.component.ts b/src/app/features/project/overview/components/project-overview-metadata/project-overview-metadata.component.ts index 1bda04633..3ed097a86 100644 --- a/src/app/features/project/overview/components/project-overview-metadata/project-overview-metadata.component.ts +++ b/src/app/features/project/overview/components/project-overview-metadata/project-overview-metadata.component.ts @@ -34,7 +34,7 @@ import { LoadMoreBibliographicContributors, } from '@osf/shared/stores/contributors'; import { FetchSelectedSubjects, SubjectsSelectors } from '@osf/shared/stores/subjects'; -import { COLLECTION_SUBMISSION_WITH_CEDAR } from '@shared/constants/feature-flags.const'; +import { FEATURE_FLAGS } from '@shared/constants/feature-flags.const'; import { GetProjectIdentifiers, @@ -99,7 +99,7 @@ export class ProjectOverviewMetadataComponent { readonly cedarRecords = select(MetadataSelectors.getCedarRecords); private readonly cedarTemplatesResponse = select(MetadataSelectors.getCedarTemplates); readonly cedarTemplates = computed(() => this.cedarTemplatesResponse()?.data ?? null); - readonly isCedarMode = computed(() => this.activeFlags().includes(COLLECTION_SUBMISSION_WITH_CEDAR)); + readonly isCedarMode = computed(() => this.activeFlags().includes(FEATURE_FLAGS.COLLECTION_SUBMISSION_WITH_CEDAR)); readonly resourceType = CurrentResourceType.Projects; readonly dateFormat = 'MMM d, y, h:mm a'; diff --git a/src/app/features/project/project-addons/project-addons.component.ts b/src/app/features/project/project-addons/project-addons.component.ts index 100cbfb15..ec39264e3 100644 --- a/src/app/features/project/project-addons/project-addons.component.ts +++ b/src/app/features/project/project-addons/project-addons.component.ts @@ -32,6 +32,7 @@ import { SelectComponent } from '@osf/shared/components/select/select.component' import { SubHeaderComponent } from '@osf/shared/components/sub-header/sub-header.component'; import { ADDON_CATEGORY_OPTIONS } from '@osf/shared/constants/addons-category-options.const'; import { ADDON_TAB_OPTIONS } from '@osf/shared/constants/addons-tab-options.const'; +import { FEATURE_FLAGS } from '@osf/shared/constants/feature-flags.const'; import { AddonTabValue } from '@osf/shared/enums/addon-tab.enum'; import { AddonCategory } from '@osf/shared/enums/addons-category.enum'; import { createAddonCardModel, sortAddonCardsAlphabetically } from '@osf/shared/helpers/addon-card.helper'; @@ -114,7 +115,7 @@ export class ProjectAddonsComponent implements OnInit { activeFlags = select(UserSelectors.getActiveFlags); readonly categoryOptions = computed(() => { - if (this.activeFlags().includes('gravy_redirect')) { + if (this.activeFlags().includes(FEATURE_FLAGS.GRAVY_REDIRECT)) { return [ ...ADDON_CATEGORY_OPTIONS, { diff --git a/src/app/features/settings/settings-addons/settings-addons.component.ts b/src/app/features/settings/settings-addons/settings-addons.component.ts index 29ade7d99..f3acf3882 100644 --- a/src/app/features/settings/settings-addons/settings-addons.component.ts +++ b/src/app/features/settings/settings-addons/settings-addons.component.ts @@ -32,6 +32,7 @@ import { SelectComponent } from '@osf/shared/components/select/select.component' import { SubHeaderComponent } from '@osf/shared/components/sub-header/sub-header.component'; import { ADDON_CATEGORY_OPTIONS } from '@osf/shared/constants/addons-category-options.const'; import { ADDON_TAB_OPTIONS } from '@osf/shared/constants/addons-tab-options.const'; +import { FEATURE_FLAGS } from '@osf/shared/constants/feature-flags.const'; import { AddonTabValue } from '@osf/shared/enums/addon-tab.enum'; import { AddonCategory } from '@osf/shared/enums/addons-category.enum'; import { sortAddonCardsAlphabetically } from '@osf/shared/helpers/addon-card.helper'; @@ -110,7 +111,7 @@ export class SettingsAddonsComponent implements OnInit { activeFlags = select(UserSelectors.getActiveFlags); readonly categoryOptions = computed(() => { - if (this.activeFlags().includes('gravy_redirect')) { + if (this.activeFlags().includes(FEATURE_FLAGS.GRAVY_REDIRECT)) { return [ ...ADDON_CATEGORY_OPTIONS, { diff --git a/src/app/shared/constants/feature-flags.const.ts b/src/app/shared/constants/feature-flags.const.ts index b5edebf0c..122ab8836 100644 --- a/src/app/shared/constants/feature-flags.const.ts +++ b/src/app/shared/constants/feature-flags.const.ts @@ -1,2 +1,5 @@ -export const COLLECTION_SUBMISSION_WITH_CEDAR = 'collection_submission_with_cedar'; -export const WORKFLOW_LAUNCHER = 'workflow_launcher'; +export const FEATURE_FLAGS = { + COLLECTION_SUBMISSION_WITH_CEDAR: 'collection_submission_with_cedar', + WORKFLOW_LAUNCHER: 'workflow_launcher', + GRAVY_REDIRECT: 'gravy_redirect', +} as const; From 908bb73f7e1a335ac1baf50561a306249d2a0938 Mon Sep 17 00:00:00 2001 From: nsemets Date: Mon, 13 Jul 2026 12:44:16 +0300 Subject: [PATCH 08/15] fix(user-service): fixed logic with duplication request --- src/app/core/services/user.service.ts | 21 +++++++++++++++++---- src/app/core/store/user/user.state.ts | 2 ++ 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/src/app/core/services/user.service.ts b/src/app/core/services/user.service.ts index 3506c67cc..92f422116 100644 --- a/src/app/core/services/user.service.ts +++ b/src/app/core/services/user.service.ts @@ -1,4 +1,4 @@ -import { map, Observable } from 'rxjs'; +import { finalize, map, Observable, shareReplay } from 'rxjs'; import { inject, Injectable } from '@angular/core'; @@ -21,6 +21,7 @@ import { export class UserService { private readonly jsonApiService = inject(JsonApiService); private readonly environment = inject(ENVIRONMENT); + private currentUserRequest: Observable | null = null; get apiUrl() { return `${this.environment.apiDomainUrl}/v2`; @@ -33,9 +34,21 @@ export class UserService { } getCurrentUser(): Observable { - return this.jsonApiService - .get(`${this.apiUrl}/`) - .pipe(map((response) => UserMapper.fromUserDataGetResponse(response))); + if (!this.currentUserRequest) { + this.currentUserRequest = this.jsonApiService.get(`${this.apiUrl}/`).pipe( + map((response) => UserMapper.fromUserDataGetResponse(response)), + finalize(() => { + this.currentUserRequest = null; + }), + shareReplay({ bufferSize: 1, refCount: true }) + ); + } + + return this.currentUserRequest; + } + + resetCurrentUserCache(): void { + this.currentUserRequest = null; } updateUserProfile(userId: string, key: string, data: ProfileSettingsUpdate): Observable { diff --git a/src/app/core/store/user/user.state.ts b/src/app/core/store/user/user.state.ts index 8cbc1313a..b08ac3894 100644 --- a/src/app/core/store/user/user.state.ts +++ b/src/app/core/store/user/user.state.ts @@ -163,6 +163,8 @@ export class UserState { @Action(ClearCurrentUser) clearCurrentUser(ctx: StateContext) { + this.userService.resetCurrentUserCache(); + ctx.patchState({ currentUser: this.toUserState(null, false), activeFlags: [], From 1292e28f7e7c5ab7ad4c7c3cd87104dad7f94471 Mon Sep 17 00:00:00 2001 From: nsemets Date: Mon, 13 Jul 2026 13:49:29 +0300 Subject: [PATCH 09/15] test(user): added tests --- src/app/core/services/user.service.spec.ts | 163 ++++++++++ .../core/store/user/user.selectors.spec.ts | 114 +++++++ src/app/core/store/user/user.state.spec.ts | 289 ++++++++++++++++++ .../dashboard/dashboard.component.spec.ts | 106 ++++++- src/testing/data/user/user.data.ts | 111 +++++++ src/testing/providers/storage.service.mock.ts | 56 ++++ 6 files changed, 835 insertions(+), 4 deletions(-) create mode 100644 src/app/core/services/user.service.spec.ts create mode 100644 src/app/core/store/user/user.selectors.spec.ts create mode 100644 src/app/core/store/user/user.state.spec.ts create mode 100644 src/testing/data/user/user.data.ts create mode 100644 src/testing/providers/storage.service.mock.ts diff --git a/src/app/core/services/user.service.spec.ts b/src/app/core/services/user.service.spec.ts new file mode 100644 index 000000000..bb4051a74 --- /dev/null +++ b/src/app/core/services/user.service.spec.ts @@ -0,0 +1,163 @@ +import { MockProvider } from 'ng-mocks'; + +import { firstValueFrom, of, Subject } from 'rxjs'; + +import { TestBed } from '@angular/core/testing'; + +import { FEATURE_FLAGS } from '@osf/shared/constants/feature-flags.const'; +import { ProfileSettingsKey } from '@osf/shared/enums/profile-settings-key.enum'; +import { UserMapper } from '@osf/shared/mappers/user'; +import { UserData } from '@osf/shared/models/user/user.model'; +import { + UserAcceptedTermsOfServiceJsonApi, + UserDataResponseJsonApi, +} from '@osf/shared/models/user/user-json-api.model'; +import { JsonApiService } from '@osf/shared/services/json-api.service'; + +import { getCurrentUserData, getUserDataJsonApi } from '@testing/data/user/user.data'; +import { MOCK_USER } from '@testing/mocks/data.mock'; +import { JsonApiServiceMock, JsonApiServiceMockType } from '@testing/providers/json-api.service.mock'; + +import { ENVIRONMENT } from '../provider/environment.provider'; + +import { UserService } from './user.service'; + +describe('UserService', () => { + let service: UserService; + let jsonApiService: JsonApiServiceMockType; + + const apiResponse = getCurrentUserData(); + + const mappedUserData: UserData = { + activeFlags: [FEATURE_FLAGS.WORKFLOW_LAUNCHER], + currentUser: MOCK_USER, + }; + + beforeEach(() => { + jsonApiService = JsonApiServiceMock.simple(); + + TestBed.configureTestingModule({ + providers: [ + UserService, + MockProvider(JsonApiService, jsonApiService), + MockProvider(ENVIRONMENT, { apiDomainUrl: 'https://api.test' }), + ], + }); + + service = TestBed.inject(UserService); + }); + + it('should expose apiUrl from environment', () => { + expect(service.apiUrl).toBe('https://api.test/v2'); + }); + + it('should fetch and map current user from /v2/', async () => { + jsonApiService.get.mockReturnValue(of(apiResponse)); + const mapperSpy = vi.spyOn(UserMapper, 'fromUserDataGetResponse').mockReturnValue(mappedUserData); + + const result = await firstValueFrom(service.getCurrentUser()); + + expect(jsonApiService.get).toHaveBeenCalledWith('https://api.test/v2/'); + expect(mapperSpy).toHaveBeenCalledWith(apiResponse); + expect(result).toEqual(mappedUserData); + }); + + it('should share in-flight getCurrentUser request across concurrent subscribers', async () => { + const response$ = new Subject(); + jsonApiService.get.mockReturnValue(response$.asObservable()); + vi.spyOn(UserMapper, 'fromUserDataGetResponse').mockReturnValue(mappedUserData); + + const first = firstValueFrom(service.getCurrentUser()); + const second = firstValueFrom(service.getCurrentUser()); + + expect(jsonApiService.get).toHaveBeenCalledTimes(1); + + response$.next(apiResponse); + response$.complete(); + + await expect(first).resolves.toEqual(mappedUserData); + await expect(second).resolves.toEqual(mappedUserData); + }); + + it('should fetch again after previous getCurrentUser completes', async () => { + jsonApiService.get.mockReturnValue(of(apiResponse)); + vi.spyOn(UserMapper, 'fromUserDataGetResponse').mockReturnValue(mappedUserData); + + await firstValueFrom(service.getCurrentUser()); + await firstValueFrom(service.getCurrentUser()); + + expect(jsonApiService.get).toHaveBeenCalledTimes(2); + }); + + it('should fetch again after resetCurrentUserCache', async () => { + const response$ = new Subject(); + jsonApiService.get.mockReturnValue(response$.asObservable()); + vi.spyOn(UserMapper, 'fromUserDataGetResponse').mockReturnValue(mappedUserData); + + const first = firstValueFrom(service.getCurrentUser()); + expect(jsonApiService.get).toHaveBeenCalledTimes(1); + + service.resetCurrentUserCache(); + + const second = firstValueFrom(service.getCurrentUser()); + expect(jsonApiService.get).toHaveBeenCalledTimes(2); + + response$.next(apiResponse); + response$.complete(); + + await expect(first).resolves.toEqual(mappedUserData); + await expect(second).resolves.toEqual(mappedUserData); + }); + + it('should fetch and map user by id', async () => { + const userResponse = { data: getUserDataJsonApi() }; + jsonApiService.get.mockReturnValue(of(userResponse)); + const mapperSpy = vi.spyOn(UserMapper, 'fromUserGetResponse').mockReturnValue(MOCK_USER); + + const result = await firstValueFrom(service.getUserById(MOCK_USER.id)); + + expect(jsonApiService.get).toHaveBeenCalledWith(`https://api.test/v2/users/${MOCK_USER.id}/`); + expect(mapperSpy).toHaveBeenCalledWith(userResponse.data); + expect(result).toEqual(MOCK_USER); + }); + + it('should patch user profile attributes', async () => { + const userResponse = getUserDataJsonApi(); + jsonApiService.patch.mockReturnValue(of(userResponse)); + const mapperSpy = vi.spyOn(UserMapper, 'fromUserGetResponse').mockReturnValue(MOCK_USER); + const employment = MOCK_USER.employment; + + const result = await firstValueFrom( + service.updateUserProfile(MOCK_USER.id, ProfileSettingsKey.Employment, employment) + ); + + expect(jsonApiService.patch).toHaveBeenCalledWith(`https://api.test/v2/users/${MOCK_USER.id}/`, { + data: { + type: 'users', + id: MOCK_USER.id, + attributes: { [ProfileSettingsKey.Employment]: employment }, + }, + }); + expect(mapperSpy).toHaveBeenCalledWith(userResponse); + expect(result).toEqual(MOCK_USER); + }); + + it('should patch accepted terms of service', async () => { + const userResponse = getUserDataJsonApi(); + jsonApiService.patch.mockReturnValue(of(userResponse)); + const mapperSpy = vi.spyOn(UserMapper, 'fromUserGetResponse').mockReturnValue(MOCK_USER); + const payload: UserAcceptedTermsOfServiceJsonApi = { accepted_terms_of_service: true }; + + const result = await firstValueFrom(service.updateUserAcceptedTermsOfService(MOCK_USER.id, payload)); + + expect(jsonApiService.patch).toHaveBeenCalledWith(`https://api.test/v2/users/${MOCK_USER.id}/`, { + data: { + type: 'users', + id: MOCK_USER.id, + attributes: payload, + }, + }); + expect(mapperSpy).toHaveBeenCalledWith(userResponse); + expect(result).toEqual(MOCK_USER); + }); +}); diff --git a/src/app/core/store/user/user.selectors.spec.ts b/src/app/core/store/user/user.selectors.spec.ts new file mode 100644 index 000000000..31ad01d3e --- /dev/null +++ b/src/app/core/store/user/user.selectors.spec.ts @@ -0,0 +1,114 @@ +import { provideStore, Store } from '@ngxs/store'; + +import { TestBed } from '@angular/core/testing'; + +import { FEATURE_FLAGS } from '@osf/shared/constants/feature-flags.const'; + +import { MOCK_USER } from '@testing/mocks/data.mock'; + +import { USER_STATE_INITIAL, UserStateModel } from './user.model'; +import { UserSelectors } from './user.selectors'; +import { UserState } from './user.state'; + +describe('UserSelectors', () => { + let store: Store; + + const setUserState = (userState: UserStateModel) => { + store.reset({ + ...store.snapshot(), + user: userState, + }); + }; + + beforeEach(() => { + TestBed.configureTestingModule({ + providers: [provideStore([UserState])], + }); + + store = TestBed.inject(Store); + }); + + it('should select default logged out state', () => { + setUserState(USER_STATE_INITIAL); + + expect(store.selectSnapshot(UserSelectors.getCurrentUser)).toBeNull(); + expect(store.selectSnapshot(UserSelectors.getCurrentUserLoading)).toBe(false); + expect(store.selectSnapshot(UserSelectors.getShareIndexing)).toBeUndefined(); + expect(store.selectSnapshot(UserSelectors.getUserNames)).toBeNull(); + expect(store.selectSnapshot(UserSelectors.getEmployment)).toEqual([]); + expect(store.selectSnapshot(UserSelectors.getEducation)).toEqual([]); + expect(store.selectSnapshot(UserSelectors.getSocialLinks)).toBeUndefined(); + expect(store.selectSnapshot(UserSelectors.getCanViewReviews)).toBe(false); + expect(store.selectSnapshot(UserSelectors.isAuthenticated)).toBe(false); + expect(store.selectSnapshot(UserSelectors.getActiveFlags)).toEqual([]); + }); + + it('should select current user and authentication state', () => { + setUserState({ + currentUser: { + data: MOCK_USER, + isLoading: false, + error: null, + }, + activeFlags: [FEATURE_FLAGS.WORKFLOW_LAUNCHER], + }); + + expect(store.selectSnapshot(UserSelectors.getCurrentUser)).toEqual(MOCK_USER); + expect(store.selectSnapshot(UserSelectors.isAuthenticated)).toBe(true); + expect(store.selectSnapshot(UserSelectors.getActiveFlags)).toEqual([FEATURE_FLAGS.WORKFLOW_LAUNCHER]); + }); + + it('should select current user loading state', () => { + setUserState({ + currentUser: { + data: null, + isLoading: true, + error: null, + }, + activeFlags: [], + }); + + expect(store.selectSnapshot(UserSelectors.getCurrentUserLoading)).toBe(true); + expect(store.selectSnapshot(UserSelectors.isAuthenticated)).toBe(false); + }); + + it('should select user profile fields', () => { + setUserState({ + currentUser: { + data: MOCK_USER, + isLoading: false, + error: null, + }, + activeFlags: [], + }); + + expect(store.selectSnapshot(UserSelectors.getUserNames)).toEqual(MOCK_USER); + expect(store.selectSnapshot(UserSelectors.getEmployment)).toEqual(MOCK_USER.employment); + expect(store.selectSnapshot(UserSelectors.getEducation)).toEqual(MOCK_USER.education); + expect(store.selectSnapshot(UserSelectors.getSocialLinks)).toEqual(MOCK_USER.social); + expect(store.selectSnapshot(UserSelectors.getShareIndexing)).toBe(true); + expect(store.selectSnapshot(UserSelectors.getCanViewReviews)).toBe(true); + }); + + it('should default can view reviews to false when user flag is missing', () => { + setUserState({ + currentUser: { + data: { ...MOCK_USER, canViewReviews: undefined as unknown as boolean }, + isLoading: false, + error: null, + }, + activeFlags: [], + }); + + expect(store.selectSnapshot(UserSelectors.getCanViewReviews)).toBe(false); + }); + + it('should default active flags to empty array when state value is missing', () => { + setUserState({ + currentUser: USER_STATE_INITIAL.currentUser, + activeFlags: undefined as unknown as string[], + }); + + expect(store.selectSnapshot(UserSelectors.getActiveFlags)).toEqual([]); + }); +}); diff --git a/src/app/core/store/user/user.state.spec.ts b/src/app/core/store/user/user.state.spec.ts new file mode 100644 index 000000000..9516e0f87 --- /dev/null +++ b/src/app/core/store/user/user.state.spec.ts @@ -0,0 +1,289 @@ +import { provideStore, Store } from '@ngxs/store'; + +import { MockProvider } from 'ng-mocks'; + +import { defaultIfEmpty, firstValueFrom } from 'rxjs'; + +import { HttpTestingController } from '@angular/common/http/testing'; +import { TestBed } from '@angular/core/testing'; + +import { StorageService } from '@core/services/storage.service'; +import { UserService } from '@core/services/user.service'; +import { FEATURE_FLAGS } from '@osf/shared/constants/feature-flags.const'; +import { ProfileSettingsKey } from '@osf/shared/enums/profile-settings-key.enum'; +import { removeNullable } from '@osf/shared/helpers/remove-nullable.helper'; +import { UserMapper } from '@osf/shared/mappers/user'; + +import { + getAcceptedTermsUserDataJsonApi, + getCurrentUserData, + getLoggedOutCurrentUserData, + getUserDataJsonApi, +} from '@testing/data/user/user.data'; +import { MOCK_USER } from '@testing/mocks/data.mock'; +import { provideOSFCore, provideOSFHttp } from '@testing/osf.testing.provider'; +import { StorageServiceMock, StorageServiceMockType } from '@testing/providers/storage.service.mock'; + +import { + AcceptTermsOfServiceByUser, + ClearCurrentUser, + GetCurrentUser, + SetCurrentUser, + UpdateProfileSettingsEducation, + UpdateProfileSettingsEmployment, + UpdateProfileSettingsSocialLinks, + UpdateProfileSettingsUser, +} from './user.actions'; +import { UserSelectors } from './user.selectors'; +import { UserState } from './user.state'; + +describe('State: User', () => { + const currentUserApiUrl = 'http://localhost:8000/v2/'; + const userApiUrl = `http://localhost:8000/v2/users/${MOCK_USER.id}/`; + + let store: Store; + let storageService: StorageServiceMockType; + let httpMock: HttpTestingController; + + beforeEach(() => { + storageService = StorageServiceMock.simple(); + + TestBed.configureTestingModule({ + providers: [ + provideOSFCore(), + provideOSFHttp(), + provideStore([UserState]), + UserService, + MockProvider(StorageService, storageService), + ], + }); + + store = TestBed.inject(Store); + httpMock = TestBed.inject(HttpTestingController); + }); + + afterEach(() => { + httpMock.verify(); + }); + + it('getCurrentUser should hydrate cached session, fetch current user, and update selectors', async () => { + storageService.getCachedUser.mockReturnValue(MOCK_USER); + storageService.getCachedActiveFlags.mockReturnValue(['cached_flag']); + + const dispatchPromise = firstValueFrom(store.dispatch(GetCurrentUser)); + + expect(store.selectSnapshot(UserSelectors.getCurrentUser)).toEqual(MOCK_USER); + expect(store.selectSnapshot(UserSelectors.getActiveFlags)).toEqual(['cached_flag']); + expect(store.selectSnapshot(UserSelectors.getCurrentUserLoading)).toBe(false); + + const request = httpMock.expectOne(currentUserApiUrl); + expect(request.request.method).toBe('GET'); + request.flush(getCurrentUserData()); + await dispatchPromise; + + expect(store.selectSnapshot(UserSelectors.getCurrentUser)).toEqual( + UserMapper.fromUserGetResponse(getUserDataJsonApi()) + ); + expect(store.selectSnapshot(UserSelectors.getActiveFlags)).toEqual([FEATURE_FLAGS.WORKFLOW_LAUNCHER]); + expect(store.selectSnapshot(UserSelectors.isAuthenticated)).toBe(true); + expect(store.selectSnapshot(UserSelectors.getCurrentUserLoading)).toBe(false); + expect(storageService.setCachedActiveFlags).toHaveBeenCalledWith([FEATURE_FLAGS.WORKFLOW_LAUNCHER]); + expect(storageService.setCachedUser).toHaveBeenCalledWith(UserMapper.fromUserGetResponse(getUserDataJsonApi())); + }); + + it('getCurrentUser should set loading while fetching when no cached user exists', async () => { + const dispatchPromise = firstValueFrom(store.dispatch(GetCurrentUser)); + + expect(store.selectSnapshot(UserSelectors.getCurrentUserLoading)).toBe(true); + + const request = httpMock.expectOne(currentUserApiUrl); + request.flush(getCurrentUserData()); + await dispatchPromise; + + expect(store.selectSnapshot(UserSelectors.getCurrentUserLoading)).toBe(false); + expect(store.selectSnapshot(UserSelectors.isAuthenticated)).toBe(true); + }); + + it('getCurrentUser should clear current user when api returns no user and no cache exists', async () => { + const dispatchPromise = firstValueFrom(store.dispatch(GetCurrentUser)); + + const request = httpMock.expectOne(currentUserApiUrl); + request.flush(getLoggedOutCurrentUserData()); + await dispatchPromise; + + expect(store.selectSnapshot(UserSelectors.getCurrentUser)).toBeNull(); + expect(store.selectSnapshot(UserSelectors.getActiveFlags)).toEqual([]); + expect(store.selectSnapshot(UserSelectors.isAuthenticated)).toBe(false); + expect(store.selectSnapshot(UserSelectors.getCurrentUserLoading)).toBe(false); + expect(storageService.setCachedActiveFlags).toHaveBeenCalledWith([]); + expect(storageService.setCachedUser).not.toHaveBeenCalled(); + }); + + it('getCurrentUser should keep cached user when api returns no user but cache exists', async () => { + storageService.getCachedUser.mockReturnValue(MOCK_USER); + storageService.getCachedActiveFlags.mockReturnValue(['cached_flag']); + + const dispatchPromise = firstValueFrom(store.dispatch(GetCurrentUser)); + + const request = httpMock.expectOne(currentUserApiUrl); + request.flush(getLoggedOutCurrentUserData()); + await dispatchPromise; + + expect(store.selectSnapshot(UserSelectors.getCurrentUser)).toEqual(MOCK_USER); + expect(store.selectSnapshot(UserSelectors.getActiveFlags)).toEqual([]); + expect(store.selectSnapshot(UserSelectors.isAuthenticated)).toBe(true); + expect(storageService.setCachedActiveFlags).toHaveBeenCalledWith([]); + expect(storageService.setCachedUser).not.toHaveBeenCalled(); + }); + + it('setCurrentUser should set current user in state and cache', async () => { + await firstValueFrom(store.dispatch(new SetCurrentUser(MOCK_USER))); + + expect(store.selectSnapshot(UserSelectors.getCurrentUser)).toEqual(MOCK_USER); + expect(store.selectSnapshot(UserSelectors.getCurrentUserLoading)).toBe(false); + expect(store.selectSnapshot(UserSelectors.isAuthenticated)).toBe(true); + expect(storageService.setCachedUser).toHaveBeenCalledWith(MOCK_USER); + }); + + it('clearCurrentUser should clear current user, active flags, and session cache', async () => { + const userService = TestBed.inject(UserService); + const resetCacheSpy = vi.spyOn(userService, 'resetCurrentUserCache'); + + await firstValueFrom(store.dispatch(new SetCurrentUser(MOCK_USER))); + await firstValueFrom(store.dispatch(ClearCurrentUser)); + + expect(store.selectSnapshot(UserSelectors.getCurrentUser)).toBeNull(); + expect(store.selectSnapshot(UserSelectors.getActiveFlags)).toEqual([]); + expect(store.selectSnapshot(UserSelectors.isAuthenticated)).toBe(false); + expect(storageService.clearSession).toHaveBeenCalled(); + expect(resetCacheSpy).toHaveBeenCalled(); + }); + + it('updateProfileSettingsEmployment should not call api when current user is missing', async () => { + await firstValueFrom( + store.dispatch(new UpdateProfileSettingsEmployment(MOCK_USER.employment)).pipe(defaultIfEmpty(null)) + ); + + httpMock.expectNone(userApiUrl); + expect(storageService.setCachedUser).not.toHaveBeenCalled(); + }); + + it('updateProfileSettingsEmployment should update employment and persist current user', async () => { + await firstValueFrom(store.dispatch(new SetCurrentUser(MOCK_USER))); + const employment = MOCK_USER.employment.map((item) => removeNullable(item)); + + const dispatchPromise = firstValueFrom(store.dispatch(new UpdateProfileSettingsEmployment(MOCK_USER.employment))); + + const request = httpMock.expectOne(userApiUrl); + expect(request.request.method).toBe('PATCH'); + expect(request.request.body).toEqual({ + data: { + type: 'users', + id: MOCK_USER.id, + attributes: { [ProfileSettingsKey.Employment]: employment }, + }, + }); + request.flush({ data: getUserDataJsonApi() }); + await dispatchPromise; + + expect(store.selectSnapshot(UserSelectors.getEmployment)).toEqual(MOCK_USER.employment); + expect(storageService.setCachedUser).toHaveBeenCalledWith(UserMapper.fromUserGetResponse(getUserDataJsonApi())); + }); + + it('updateProfileSettingsEducation should update education and persist current user', async () => { + await firstValueFrom(store.dispatch(new SetCurrentUser(MOCK_USER))); + + const dispatchPromise = firstValueFrom(store.dispatch(new UpdateProfileSettingsEducation(MOCK_USER.education))); + + const request = httpMock.expectOne(userApiUrl); + expect(request.request.method).toBe('PATCH'); + request.flush({ data: getUserDataJsonApi() }); + await dispatchPromise; + + expect(store.selectSnapshot(UserSelectors.getEducation)).toEqual(MOCK_USER.education); + expect(storageService.setCachedUser).toHaveBeenCalledWith(UserMapper.fromUserGetResponse(getUserDataJsonApi())); + }); + + it('updateProfileSettingsUser should update user profile names and persist current user', async () => { + await firstValueFrom(store.dispatch(new SetCurrentUser(MOCK_USER))); + const payload = { + fullName: 'Jane Doe', + givenName: 'Jane', + familyName: 'Doe', + }; + + const dispatchPromise = firstValueFrom(store.dispatch(new UpdateProfileSettingsUser(payload))); + + const request = httpMock.expectOne(userApiUrl); + expect(request.request.method).toBe('PATCH'); + expect(request.request.body).toEqual({ + data: { + type: 'users', + id: MOCK_USER.id, + attributes: UserMapper.toNamesRequest(payload), + }, + }); + request.flush({ data: getUserDataJsonApi() }); + await dispatchPromise; + + expect(store.selectSnapshot(UserSelectors.getUserNames)?.fullName).toBe('John Doe'); + expect(storageService.setCachedUser).toHaveBeenCalledWith(UserMapper.fromUserGetResponse(getUserDataJsonApi())); + }); + + it('updateProfileSettingsSocialLinks should merge social links and persist current user', async () => { + await firstValueFrom(store.dispatch(new SetCurrentUser(MOCK_USER))); + const socialUpdates = [{ github: ['https://github.com/janedoe'] }, { twitter: ['https://twitter.com/janedoe'] }]; + + const dispatchPromise = firstValueFrom(store.dispatch(new UpdateProfileSettingsSocialLinks(socialUpdates))); + + const request = httpMock.expectOne(userApiUrl); + expect(request.request.method).toBe('PATCH'); + expect(request.request.body).toEqual({ + data: { + type: 'users', + id: MOCK_USER.id, + attributes: { + [ProfileSettingsKey.Social]: { + github: ['https://github.com/janedoe'], + twitter: ['https://twitter.com/janedoe'], + }, + }, + }, + }); + request.flush({ data: getUserDataJsonApi() }); + await dispatchPromise; + + expect(store.selectSnapshot(UserSelectors.getSocialLinks)).toEqual(MOCK_USER.social); + expect(storageService.setCachedUser).toHaveBeenCalledWith(UserMapper.fromUserGetResponse(getUserDataJsonApi())); + }); + + it('acceptTermsOfServiceByUser should not call api when current user is missing', async () => { + await firstValueFrom(store.dispatch(AcceptTermsOfServiceByUser).pipe(defaultIfEmpty(null))); + + httpMock.expectNone(userApiUrl); + expect(storageService.setCachedUser).not.toHaveBeenCalled(); + }); + + it('acceptTermsOfServiceByUser should accept terms of service and persist current user', async () => { + await firstValueFrom(store.dispatch(new SetCurrentUser(MOCK_USER))); + + const dispatchPromise = firstValueFrom(store.dispatch(AcceptTermsOfServiceByUser)); + + const request = httpMock.expectOne(userApiUrl); + expect(request.request.method).toBe('PATCH'); + expect(request.request.body).toEqual({ + data: { + type: 'users', + id: MOCK_USER.id, + attributes: { accepted_terms_of_service: true }, + }, + }); + request.flush({ data: getAcceptedTermsUserDataJsonApi() }); + await dispatchPromise; + + expect(store.selectSnapshot(UserSelectors.getCurrentUser)?.acceptedTermsOfService).toBe(true); + expect(storageService.setCachedUser).toHaveBeenCalledWith( + UserMapper.fromUserGetResponse(getAcceptedTermsUserDataJsonApi()) + ); + }); +}); diff --git a/src/app/features/home/pages/dashboard/dashboard.component.spec.ts b/src/app/features/home/pages/dashboard/dashboard.component.spec.ts index ee6c283d6..46182075e 100644 --- a/src/app/features/home/pages/dashboard/dashboard.component.spec.ts +++ b/src/app/features/home/pages/dashboard/dashboard.component.spec.ts @@ -18,6 +18,7 @@ import { LoadingSpinnerComponent } from '@osf/shared/components/loading-spinner/ import { MyProjectsTableComponent } from '@osf/shared/components/my-projects-table/my-projects-table.component'; import { SearchInputComponent } from '@osf/shared/components/search-input/search-input.component'; import { SubHeaderComponent } from '@osf/shared/components/sub-header/sub-header.component'; +import { FEATURE_FLAGS } from '@osf/shared/constants/feature-flags.const'; import { SortOrder } from '@osf/shared/enums/sort-order.enum'; import { MyResourcesItem } from '@osf/shared/models/my-resources/my-resources.model'; import { CustomDialogService } from '@osf/shared/services/custom-dialog.service'; @@ -118,10 +119,6 @@ describe('DashboardComponent', () => { fixture.detectChanges(); } - afterEach(() => { - vi.useRealTimers(); - }); - it('should create and fetch projects with default params on init', () => { setup(); @@ -313,6 +310,7 @@ describe('DashboardComponent', () => { }, queryParamsHandling: 'merge', }); + vi.useRealTimers(); }); it('should navigate to project and set active project', () => { @@ -376,4 +374,104 @@ describe('DashboardComponent', () => { expect(store.dispatch).not.toHaveBeenCalledWith(new ClearMyResources()); }); + + it('should show loading spinner while projects are loading', () => { + setup({ selectorOverrides: [{ selector: MyResourcesSelectors.getProjectsLoading, value: true }] }); + + expect(fixture.nativeElement.querySelector('osf-loading-spinner')).toBeTruthy(); + expect(fixture.nativeElement.querySelector('osf-sub-header')).toBeFalsy(); + }); + + it('should enable workflow launcher when feature flag is active', () => { + setup({ + selectorOverrides: [{ selector: UserSelectors.getActiveFlags, value: [FEATURE_FLAGS.WORKFLOW_LAUNCHER] }], + }); + + expect(component.isWorkflowLauncherEnabled()).toBe(true); + expect(fixture.nativeElement.querySelector('osf-workflow-launcher-section')).toBeTruthy(); + }); + + it('should hide workflow launcher when feature flag is inactive', () => { + setup(); + + expect(component.isWorkflowLauncherEnabled()).toBe(false); + expect(fixture.nativeElement.querySelector('osf-workflow-launcher-section')).toBeFalsy(); + }); + + it('should return all projects when search is empty', () => { + setup({ + selectorOverrides: [{ selector: MyResourcesSelectors.getProjects, value: [projectItem, secondProjectItem] }], + }); + + expect(component.filteredProjects()).toEqual([projectItem, secondProjectItem]); + }); + + it('should filter projects case insensitively', () => { + setup({ + routeQueryParams: { search: 'ALPHA' }, + selectorOverrides: [{ selector: MyResourcesSelectors.getProjects, value: [projectItem, secondProjectItem] }], + }); + + expect(component.filteredProjects()).toEqual([projectItem]); + }); + + it('should omit empty search from query params', () => { + setup(); + (routerMock.navigate as Mock).mockClear(); + + component.searchControl.setValue(''); + component.updateQueryParams(); + + expect(routerMock.navigate).toHaveBeenCalledWith([], { + relativeTo: TestBed.inject(ActivatedRoute), + queryParams: { + page: 1, + rows: 10, + search: undefined, + sortField: undefined, + sortOrder: 1, + }, + queryParamsHandling: 'merge', + }); + }); + + it('should not update query params when debounced search value is unchanged', () => { + vi.useFakeTimers(); + setup(); + component.searchControl.setValue('alpha'); + vi.advanceTimersByTime(300); + (routerMock.navigate as Mock).mockClear(); + + component.searchControl.setValue('alpha'); + vi.advanceTimersByTime(300); + + expect(routerMock.navigate).not.toHaveBeenCalled(); + vi.useRealTimers(); + }); + + it('should render dashboard product links', () => { + setup(); + + expect(fixture.nativeElement.querySelectorAll('img').length).toBe(DASHBOARD_PRODUCT_LINKS.length); + }); + + it('should render external product link with blank target', () => { + setup(); + + const externalLink = fixture.nativeElement.querySelector('[data-test-products-collections]'); + + expect(externalLink?.getAttribute('target')).toBe('_blank'); + expect(externalLink?.getAttribute('rel')).toBe('noopener noreferrer'); + }); + + it('should not redirect when create project dialog closes with missing project id', () => { + setup(); + const onClose$ = new Subject<{ project: { id?: string } }>(); + customDialogService.open.mockReturnValue(CustomDialogServiceMock.dialogRefWithClose(onClose$.asObservable())); + + component.createProject(); + onClose$.next({ project: {} }); + + expect(projectRedirectDialogService.showProjectRedirectDialog).not.toHaveBeenCalled(); + }); }); diff --git a/src/testing/data/user/user.data.ts b/src/testing/data/user/user.data.ts new file mode 100644 index 000000000..5092cacef --- /dev/null +++ b/src/testing/data/user/user.data.ts @@ -0,0 +1,111 @@ +import { FEATURE_FLAGS } from '@osf/shared/constants/feature-flags.const'; +import { UserDataJsonApi, UserDataResponseJsonApi } from '@osf/shared/models/user/user-json-api.model'; + +const userDataJsonApi: UserDataJsonApi = { + id: '1', + type: 'users', + attributes: { + accepted_terms_of_service: false, + active: true, + allow_indexing: true, + can_view_reviews: true, + date_registered: '2024-01-01', + education: [ + { + degree: 'Bachelor of Science', + institution: 'University of Technology', + startYear: 2016, + startMonth: 1, + endYear: 2020, + endMonth: 1, + ongoing: false, + department: 'Computer Science', + }, + ], + employment: [ + { + title: 'Software Engineer', + institution: 'Tech Corp', + startYear: 2020, + startMonth: 1, + endYear: null, + endMonth: null, + ongoing: true, + department: 'Engineering', + }, + ], + family_name: 'Doe', + full_name: 'John Doe', + given_name: 'John', + middle_names: '', + suffix: '', + locale: 'en_US', + social: { + ssrn: '', + orcid: '0000-0000-0000-0000', + github: ['https://github.com/johndoe'], + scholar: '', + twitter: ['https://twitter.com/johndoe'], + linkedIn: ['https://linkedin.com/in/johndoe'], + impactStory: '', + baiduScholar: '', + researchGate: '', + researcherId: '', + profileWebsites: ['https://example.com/profile'], + academiaProfileID: '', + academiaInstitution: '', + }, + external_identity: {}, + timezone: 'Etc/UTC', + }, + relationships: { + default_region: { + data: { + id: 'us', + type: 'regions', + }, + }, + }, + links: { + html: 'https://example.com/profile', + iri: 'https://example.com/profile', + profile_image: 'https://example.com/profile.png', + self: 'https://api.test/v2/users/1/', + }, +}; + +const currentUserResponse: UserDataResponseJsonApi = { + meta: { + active_flags: [FEATURE_FLAGS.WORKFLOW_LAUNCHER], + current_user: { data: userDataJsonApi }, + }, +}; + +const loggedOutUserResponse: UserDataResponseJsonApi = { + meta: { + active_flags: [], + current_user: { data: null }, + }, +}; + +export function getCurrentUserData(): UserDataResponseJsonApi { + return structuredClone(currentUserResponse); +} + +export function getLoggedOutCurrentUserData(): UserDataResponseJsonApi { + return structuredClone(loggedOutUserResponse); +} + +export function getUserDataJsonApi(): UserDataJsonApi { + return structuredClone(userDataJsonApi); +} + +export function getAcceptedTermsUserDataJsonApi(): UserDataJsonApi { + return structuredClone({ + ...userDataJsonApi, + attributes: { + ...userDataJsonApi.attributes, + accepted_terms_of_service: true, + }, + }); +} diff --git a/src/testing/providers/storage.service.mock.ts b/src/testing/providers/storage.service.mock.ts new file mode 100644 index 000000000..b1b6a3d86 --- /dev/null +++ b/src/testing/providers/storage.service.mock.ts @@ -0,0 +1,56 @@ +import { Mock, vi } from 'vitest'; + +import { StorageService } from '@core/services/storage.service'; +import { UserModel } from '@osf/shared/models/user/user.model'; + +export type StorageServiceMockType = Pick< + StorageService, + 'getCachedUser' | 'setCachedUser' | 'getCachedActiveFlags' | 'setCachedActiveFlags' | 'clearSession' +> & { + getCachedUser: Mock; + setCachedUser: Mock; + getCachedActiveFlags: Mock; + setCachedActiveFlags: Mock; + clearSession: Mock; +}; + +export class StorageServiceMockBuilder { + private getCachedUserMock: Mock = vi.fn().mockReturnValue(null); + private setCachedUserMock: Mock = vi.fn(); + private getCachedActiveFlagsMock: Mock = vi.fn().mockReturnValue([]); + private setCachedActiveFlagsMock: Mock = vi.fn(); + private clearSessionMock: Mock = vi.fn(); + + static create(): StorageServiceMockBuilder { + return new StorageServiceMockBuilder(); + } + + withCachedUser(user: UserModel | null): StorageServiceMockBuilder { + this.getCachedUserMock.mockReturnValue(user); + return this; + } + + withCachedActiveFlags(flags: string[]): StorageServiceMockBuilder { + this.getCachedActiveFlagsMock.mockReturnValue(flags); + return this; + } + + build(): StorageServiceMockType { + return { + getCachedUser: this.getCachedUserMock, + setCachedUser: this.setCachedUserMock, + getCachedActiveFlags: this.getCachedActiveFlagsMock, + setCachedActiveFlags: this.setCachedActiveFlagsMock, + clearSession: this.clearSessionMock, + }; + } +} + +export const StorageServiceMock = { + create() { + return StorageServiceMockBuilder.create(); + }, + simple() { + return StorageServiceMockBuilder.create().build(); + }, +}; From f3672bcebcfd66d7031019a276a8abfc951ebd60 Mon Sep 17 00:00:00 2001 From: nsemets Date: Mon, 20 Jul 2026 16:29:37 +0300 Subject: [PATCH 10/15] fix(dashboard): updated create project button show logic --- .../home/pages/dashboard/dashboard.component.html | 9 ++++++++- .../home/pages/dashboard/dashboard.component.spec.ts | 3 --- .../features/home/pages/dashboard/dashboard.component.ts | 4 ++-- 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/src/app/features/home/pages/dashboard/dashboard.component.html b/src/app/features/home/pages/dashboard/dashboard.component.html index 72fc8bc4b..a1c71b4eb 100644 --- a/src/app/features/home/pages/dashboard/dashboard.component.html +++ b/src/app/features/home/pages/dashboard/dashboard.component.html @@ -2,7 +2,14 @@ @if (areProjectsLoading()) { } @else { - + @if (isWorkflowLauncherEnabled()) { diff --git a/src/app/features/home/pages/dashboard/dashboard.component.spec.ts b/src/app/features/home/pages/dashboard/dashboard.component.spec.ts index 46182075e..6ea98e332 100644 --- a/src/app/features/home/pages/dashboard/dashboard.component.spec.ts +++ b/src/app/features/home/pages/dashboard/dashboard.component.spec.ts @@ -183,7 +183,6 @@ describe('DashboardComponent', () => { expect(component.existsProjects()).toBeTruthy(); expect(component.subHeaderTitle()).toBe('home.loggedIn.dashboard.title'); - expect(component.subHeaderIcon()).toBe('fas fa-home'); }); it('should update query params on page change', () => { @@ -274,7 +273,6 @@ describe('DashboardComponent', () => { expect(component.existsProjects()).toBeTruthy(); expect(component.subHeaderTitle()).toBe('home.loggedIn.dashboard.title'); - expect(component.subHeaderIcon()).toBe('fas fa-home'); }); it('should use welcome sub header when no projects and no search', () => { @@ -282,7 +280,6 @@ describe('DashboardComponent', () => { expect(component.existsProjects()).toBe(false); expect(component.subHeaderTitle()).toBe('home.loggedIn.dashboard.welcome'); - expect(component.subHeaderIcon()).toBe('home'); }); it('should expose dashboard product links', () => { diff --git a/src/app/features/home/pages/dashboard/dashboard.component.ts b/src/app/features/home/pages/dashboard/dashboard.component.ts index a42ed91d8..222add6f4 100644 --- a/src/app/features/home/pages/dashboard/dashboard.component.ts +++ b/src/app/features/home/pages/dashboard/dashboard.component.ts @@ -74,6 +74,8 @@ export class DashboardComponent implements OnInit { readonly actions = createDispatchMap({ getMyProjects: GetMyProjects, clearMyResources: ClearMyResources }); + readonly dashboardProducts = DASHBOARD_PRODUCT_LINKS; + readonly isWorkflowLauncherEnabled = computed(() => this.activeFlags().includes(FEATURE_FLAGS.WORKFLOW_LAUNCHER)); readonly filteredProjects = computed(() => { @@ -82,11 +84,9 @@ export class DashboardComponent implements OnInit { }); readonly existsProjects = computed(() => this.projects().length || !!this.searchControl.value?.length); - readonly dashboardProducts = DASHBOARD_PRODUCT_LINKS; readonly subHeaderTitle = computed(() => this.existsProjects() ? 'home.loggedIn.dashboard.title' : 'home.loggedIn.dashboard.welcome' ); - readonly subHeaderIcon = computed(() => (this.existsProjects() ? 'fas fa-home' : 'home')); constructor() { this.setupSearchSubscription(); From 6e4d7f1249ad8627811aec1d79484a6855f89a61 Mon Sep 17 00:00:00 2001 From: nsemets Date: Mon, 20 Jul 2026 18:54:51 +0300 Subject: [PATCH 11/15] fix(feature-flags): removed unused flag --- src/app/shared/constants/feature-flags.const.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/src/app/shared/constants/feature-flags.const.ts b/src/app/shared/constants/feature-flags.const.ts index 122ab8836..6bc5db505 100644 --- a/src/app/shared/constants/feature-flags.const.ts +++ b/src/app/shared/constants/feature-flags.const.ts @@ -1,5 +1,4 @@ export const FEATURE_FLAGS = { - COLLECTION_SUBMISSION_WITH_CEDAR: 'collection_submission_with_cedar', WORKFLOW_LAUNCHER: 'workflow_launcher', GRAVY_REDIRECT: 'gravy_redirect', } as const; From 2856cbaf5d759262332e31350ebc5d0b918532e4 Mon Sep 17 00:00:00 2001 From: nsemets Date: Tue, 21 Jul 2026 16:50:40 +0300 Subject: [PATCH 12/15] fix(workflow-launcher): fixed text and links --- .../workflow-launcher-section.component.html | 2 +- .../choose-repository.component.html | 4 ++-- .../preprint-provider-footer.component.html | 2 +- .../preprints-landing.component.html | 2 +- .../preprints-landing.component.scss | 4 ---- .../registry-provider-hero.component.html | 2 +- .../recent-activity-list.component.html | 2 +- src/assets/i18n/en.json | 16 ++++++++-------- src/styles/_common.scss | 2 +- src/styles/components/nodes.scss | 6 ------ src/styles/components/preprints.scss | 12 ++---------- 11 files changed, 18 insertions(+), 36 deletions(-) diff --git a/src/app/features/home/components/workflow-launcher-section/workflow-launcher-section.component.html b/src/app/features/home/components/workflow-launcher-section/workflow-launcher-section.component.html index 16cc95ee6..a95699533 100644 --- a/src/app/features/home/components/workflow-launcher-section/workflow-launcher-section.component.html +++ b/src/app/features/home/components/workflow-launcher-section/workflow-launcher-section.component.html @@ -2,7 +2,7 @@

{{ 'home.loggedIn.dashboard.workflowLauncher.title' | translate }}

{{ 'home.loggedIn.dashboard.workflowLauncher.description1' | translate }}

-

+

diff --git a/src/app/features/home/pages/choose-repository/choose-repository.component.html b/src/app/features/home/pages/choose-repository/choose-repository.component.html index 592ecbd8f..b5e49d9ad 100644 --- a/src/app/features/home/pages/choose-repository/choose-repository.component.html +++ b/src/app/features/home/pages/choose-repository/choose-repository.component.html @@ -2,7 +2,7 @@ diff --git a/src/app/features/preprints/pages/preprints-landing/preprints-landing.component.scss b/src/app/features/preprints/pages/preprints-landing/preprints-landing.component.scss index ec000793c..7877c3a3e 100644 --- a/src/app/features/preprints/pages/preprints-landing/preprints-landing.component.scss +++ b/src/app/features/preprints/pages/preprints-landing/preprints-landing.component.scss @@ -8,10 +8,6 @@ .provider-description { line-height: 1.5rem; - - a { - font-weight: bold; - } } } diff --git a/src/app/features/registries/components/registry-provider-hero/registry-provider-hero.component.html b/src/app/features/registries/components/registry-provider-hero/registry-provider-hero.component.html index e8f7a46ba..133d7c043 100644 --- a/src/app/features/registries/components/registry-provider-hero/registry-provider-hero.component.html +++ b/src/app/features/registries/components/registry-provider-hero/registry-provider-hero.component.html @@ -31,7 +31,7 @@
} @else { -
+
}
diff --git a/src/app/shared/components/recent-activity/recent-activity-list.component.html b/src/app/shared/components/recent-activity/recent-activity-list.component.html index 8ec859417..555813010 100644 --- a/src/app/shared/components/recent-activity/recent-activity-list.component.html +++ b/src/app/shared/components/recent-activity/recent-activity-list.component.html @@ -2,7 +2,7 @@
@for (activityLog of activityLogs(); track activityLog.id) {
https://www.re3data.org/.", "learnMore": "Learn more", "repositories": { "dryad": { "title": "Dryad", - "description": "Focused on research data underlying published findings. Best suited for datasets that accompany a journal article. Includes built-in curation support to help meet sharing standards.", + "description": "Focused on research data underlying published findings. Best suited for datasets that accompany a journal article. Includes built-in curation support to help meet sharing standards.", "linkText": "Go to Dryad" }, "figshare": { "title": "Figshare", - "description": "Supports a wide range of output types including datasets, figures, code, and posters. Good for researchers who want to share multiple types of outputs from a single project.", + "description": "Supports a wide range of output types including datasets, figures, code, and posters. Good for researchers who want to share multiple types of outputs from a single project.", "linkText": "Go to Figshare" }, "harvardDataverse": { "title": "Harvard Dataverse", - "description": "A robust repository for research data across all disciplines, hosted across multiple institutions globally. Widely recognized by journals and funders.", + "description": "A robust repository for research data across all disciplines, hosted across multiple institutions globally. Widely recognized by journals and funders.", "linkText": "Go to Dataverse" }, "mendeleyData": { "title": "Mendeley Data", - "description": "A straightforward platform for uploading and sharing research datasets. A good option for researchers already using Mendeley or working within the Elsevier ecosystem.", + "description": "A straightforward platform for uploading and sharing research datasets. A good option for researchers already using Mendeley or working within the Elsevier ecosystem.", "linkText": "Go to Mendeley" }, "vivli": { "title": "Vivli", - "description": "Specialized for clinical and biomedical research, particularly individual participant-level data from clinical trials. Best suited for health sciences researchers with funder or journal data sharing requirements.", + "description": "Specialized for clinical and biomedical research, particularly individual participant-level data from clinical trials. Best suited for health sciences researchers with funder or journal data sharing requirements.", "linkText": "Go to Vivli" }, "zenodo": { "title": "Zenodo (recommended)", - "description": "A free, general-purpose repository hosted by CERN. Accepts any file type and assigns a permanent DOI to every object.", + "description": "A free, general-purpose repository hosted by CERN for researchers. Accepts any research output type and assigns a permanent DOI to every object.", "linkText": "Go to Zenodo" } } @@ -795,7 +795,7 @@ "osfRegistriesImageAltTest": "OSF Registries" }, "workflowLauncher": { - "title": "Plan and Document the Lifecycle of Your Research Projects", + "title": "Plan and document the lifecycle of your research", "description1": "OSF is designed to support your research process — planning your study, registering your methods, and sharing your findings as preprints. ", "description2": "Clarify your plan, connect all data and materials that resulted from the study, and then post your preprint. Open scholarship enables more discoverability, increased transparency, and ensures research rigor. (Learn more about the OSF Project transition).", "cards": { diff --git a/src/styles/_common.scss b/src/styles/_common.scss index f7d324bca..e70feab27 100644 --- a/src/styles/_common.scss +++ b/src/styles/_common.scss @@ -155,6 +155,6 @@ } } -.workflow-launcher a { +.rich-text a { font-weight: bold; } diff --git a/src/styles/components/nodes.scss b/src/styles/components/nodes.scss index 87f4d0ccc..15b959ab4 100644 --- a/src/styles/components/nodes.scss +++ b/src/styles/components/nodes.scss @@ -19,9 +19,3 @@ color: var(--dark-blue-1); } } - -.activity-item { - a { - font-weight: bold; - } -} diff --git a/src/styles/components/preprints.scss b/src/styles/components/preprints.scss index 8989bbc15..9144dc920 100644 --- a/src/styles/components/preprints.scss +++ b/src/styles/components/preprints.scss @@ -12,10 +12,6 @@ .provider-description { line-height: 1.5rem; - - a { - font-weight: bold; - } } .search-container { @@ -106,13 +102,9 @@ } .preprints-footer-section { - padding-top: mix.rem(10px); - - a { - font-weight: bold; - } + padding-top: 0.6rem; p { - margin-bottom: mix.rem(10px); + margin-bottom: 0.6rem; } } From e20edc85d596936642f49b2269991d4f725a5dee Mon Sep 17 00:00:00 2001 From: nsemets Date: Thu, 23 Jul 2026 18:15:53 +0300 Subject: [PATCH 13/15] fix(workflow-launcher): changed hover color --- .../workflow-launcher-card.component.scss | 2 +- src/styles/_variables.scss | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/src/app/features/home/components/workflow-launcher-card/workflow-launcher-card.component.scss b/src/app/features/home/components/workflow-launcher-card/workflow-launcher-card.component.scss index 154d456c6..7dada0c8e 100644 --- a/src/app/features/home/components/workflow-launcher-card/workflow-launcher-card.component.scss +++ b/src/app/features/home/components/workflow-launcher-card/workflow-launcher-card.component.scss @@ -33,7 +33,7 @@ --workflow-launcher-card-header-bg: var(--blue-1-bg); --workflow-launcher-card-icon-color: var(--blue-1); --workflow-launcher-card-button-bg: var(--blue-1); - --workflow-launcher-card-button-hover-bg: var(--dark-blue-2); + --workflow-launcher-card-button-hover-bg: var(--blue-3); } .workflow-launcher-card--teal-green { diff --git a/src/styles/_variables.scss b/src/styles/_variables.scss index a1b804d87..2351787f5 100644 --- a/src/styles/_variables.scss +++ b/src/styles/_variables.scss @@ -53,6 +53,7 @@ $base-font-size: 16px; --green-2-alt: #35aea9; --blue-1: #3792b1; --blue-2: #3379b7; + --blue-3: #00beff; // Background Colors --green-1-bg: #ebf7f3; From 04cb525550fad1bc90a674f66b3d404f2eeff42a Mon Sep 17 00:00:00 2001 From: nsemets Date: Fri, 24 Jul 2026 16:02:11 +0300 Subject: [PATCH 14/15] fix(workflow-launcher): updated text --- src/assets/i18n/en.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/assets/i18n/en.json b/src/assets/i18n/en.json index bbcf44a8a..2ac46f069 100644 --- a/src/assets/i18n/en.json +++ b/src/assets/i18n/en.json @@ -354,7 +354,7 @@ }, "figshare": { "title": "Figshare", - "description": "Supports a wide range of output types including datasets, figures, code, and posters. Good for researchers who want to share multiple types of outputs from a single project.", + "description": "Accepts datasets, code, images, presentations, and more from any discipline, and supports sharing multiple output types from a single project.", "linkText": "Go to Figshare" }, "harvardDataverse": { From 3d915aa5bc594cc3b625d4494f7f0aefd5e46125 Mon Sep 17 00:00:00 2001 From: nsemets Date: Mon, 10 Aug 2026 10:22:34 +0300 Subject: [PATCH 15/15] fix(translations): changed description for mendeley data --- src/assets/i18n/en.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/assets/i18n/en.json b/src/assets/i18n/en.json index 2ac46f069..48eb87ad8 100644 --- a/src/assets/i18n/en.json +++ b/src/assets/i18n/en.json @@ -364,7 +364,7 @@ }, "mendeleyData": { "title": "Mendeley Data", - "description": "A straightforward platform for uploading and sharing research datasets. A good option for researchers already using Mendeley or working within the Elsevier ecosystem.", + "description": "Mendeley Data is a free cloud-based collaborative repository for data storage. A good option for researchers already using Mendeley or working within the Elsevier ecosystem.", "linkText": "Go to Mendeley" }, "vivli": {
diff --git a/src/app/features/home/constants/choose-repository.constants.ts b/src/app/features/home/constants/choose-repository.constants.ts index a3bba21cf..0089f9ca5 100644 --- a/src/app/features/home/constants/choose-repository.constants.ts +++ b/src/app/features/home/constants/choose-repository.constants.ts @@ -1,6 +1,14 @@ import { RepositoryOption } from '../models/choose-repository.model'; export const REPOSITORY_OPTIONS: RepositoryOption[] = [ + { + id: 'zenodo', + titleKey: 'chooseRepository.repositories.zenodo.title', + logoUrl: 'assets/images/repositories/zenodo_logo.png', + descriptionKey: 'chooseRepository.repositories.zenodo.description', + linkTextKey: 'chooseRepository.repositories.zenodo.linkText', + linkUrl: 'https://zenodo.org/', + }, { id: 'dryad', titleKey: 'chooseRepository.repositories.dryad.title', @@ -41,12 +49,4 @@ export const REPOSITORY_OPTIONS: RepositoryOption[] = [ linkTextKey: 'chooseRepository.repositories.vivli.linkText', linkUrl: 'https://vivli.org/', }, - { - id: 'zenodo', - titleKey: 'chooseRepository.repositories.zenodo.title', - logoUrl: 'assets/images/repositories/zenodo_logo.png', - descriptionKey: 'chooseRepository.repositories.zenodo.description', - linkTextKey: 'chooseRepository.repositories.zenodo.linkText', - linkUrl: 'https://zenodo.org/', - }, ]; diff --git a/src/app/features/home/pages/dashboard/dashboard.component.html b/src/app/features/home/pages/dashboard/dashboard.component.html index 334200b34..3b7f0ac2f 100644 --- a/src/app/features/home/pages/dashboard/dashboard.component.html +++ b/src/app/features/home/pages/dashboard/dashboard.component.html @@ -2,13 +2,7 @@ @if (areProjectsLoading()) { } @else { - + diff --git a/src/assets/i18n/en.json b/src/assets/i18n/en.json index 04b267e4f..f47bb1316 100644 --- a/src/assets/i18n/en.json +++ b/src/assets/i18n/en.json @@ -397,7 +397,7 @@ }, "chooseRepository": { "title": "Choose a Repository for Your Research Materials", - "intro": "For the data, code, and materials that come out of your work, a dedicated repository is the right home. The repositories below are all free to use, publicly trusted, and built to make your research outputs findable and citable for the long term.", + "intro": "For the data, code, and materials that come out of your work, a dedicated repository is the right home. The repositories below are publicly trusted, and built to make your research outputs findable and citable for the long term. Discover more repository options at https://www.re3data.org/.", "learnMore": "Learn more", "repositories": { "dryad": { @@ -412,7 +412,7 @@ }, "harvardDataverse": { "title": "Harvard Dataverse", - "description": "A robust repository for research data across all disciplines, hosted by Harvard University. Widely recognized by journals and funders.", + "description": "A robust repository for research data across all disciplines, hosted across multiple institutions globally. Widely recognized by journals and funders.", "linkText": "Go to Dataverse" }, "mendeleyData": { @@ -426,7 +426,7 @@ "linkText": "Go to Vivli" }, "zenodo": { - "title": "Zenodo", + "title": "Zenodo (recommended)", "description": "A free, general-purpose repository hosted by CERN. Accepts any file type and assigns a permanent DOI to every object.", "linkText": "Go to Zenodo" } @@ -849,8 +849,8 @@ }, "workflowLauncher": { "title": "Plan and Document the Lifecycle of Your Research Projects", - "description1": "OSF is designed to support your research process — planning your study, registering your methods, and sharing your findings as preprints.", - "description2": "Clarify your plan, connect all of the data and materials that result from the study, and then post your preprint. Open scholarship enables more discoverability, and increased transparency ensures research rigor.", + "description1": "OSF is designed to support your research process — planning your study, registering your methods, and sharing your findings as preprints. ", + "description2": "Clarify your plan, connect all data and materials that resulted from the study, and then post your preprint. Open scholarship enables more discoverability, increased transparency, and ensures research rigor. (Learn more about the OSF Project transition).", "cards": { "studyPlans": { "title": "Study Plans", @@ -919,7 +919,7 @@ "support": { "sections": { "collect": { - "description": "Store your datasets, code, and research materials in a trusted generalist repository then link them to your registration to keep them findable, citable, and preserved for the long term.", + "description": "Store your datasets, code, and research materials in trusted repositories then link them to your registration to keep them findable, citable, and preserved for the long term.", "title": "Collect and Analyze Data" }, "design": { diff --git a/src/styles/_common.scss b/src/styles/_common.scss index c63894938..f7d324bca 100644 --- a/src/styles/_common.scss +++ b/src/styles/_common.scss @@ -154,3 +154,7 @@ color: var(--branding-primary-color); } } + +.workflow-launcher a { + font-weight: bold; +} From 6b1590f293037514fbbce2d1df4aa4d739dc96ae Mon Sep 17 00:00:00 2001 From: nsemets Date: Mon, 13 Jul 2026 11:56:04 +0300 Subject: [PATCH 06/15] feat(workflow-launcher): added flag logic for it --- src/app/core/constants/storage-keys.const.ts | 4 + src/app/core/services/storage.service.ts | 51 +++++- src/app/core/store/user/user.state.ts | 163 +++++++----------- .../pages/dashboard/dashboard.component.html | 6 +- .../dashboard/dashboard.component.spec.ts | 2 + .../pages/dashboard/dashboard.component.ts | 5 + .../shared/constants/feature-flags.const.ts | 1 + 7 files changed, 130 insertions(+), 102 deletions(-) create mode 100644 src/app/core/constants/storage-keys.const.ts diff --git a/src/app/core/constants/storage-keys.const.ts b/src/app/core/constants/storage-keys.const.ts new file mode 100644 index 000000000..fe770d2ea --- /dev/null +++ b/src/app/core/constants/storage-keys.const.ts @@ -0,0 +1,4 @@ +export const STORAGE_KEYS = { + currentUser: 'currentUser', + activeFlags: 'activeFlags', +} as const; diff --git a/src/app/core/services/storage.service.ts b/src/app/core/services/storage.service.ts index f30868b89..9a67f7e86 100644 --- a/src/app/core/services/storage.service.ts +++ b/src/app/core/services/storage.service.ts @@ -1,11 +1,35 @@ import { isPlatformBrowser } from '@angular/common'; import { inject, Injectable, PLATFORM_ID } from '@angular/core'; +import { STORAGE_KEYS } from '@core/constants/storage-keys.const'; +import { UserModel } from '@osf/shared/models/user/user.model'; + @Injectable({ providedIn: 'root' }) export class StorageService { - private platformId = inject(PLATFORM_ID); + private readonly platformId = inject(PLATFORM_ID); + + getCachedUser(): UserModel | null { + return this.getJson(STORAGE_KEYS.currentUser); + } + + setCachedUser(user: UserModel): void { + this.setJson(STORAGE_KEYS.currentUser, user); + } - getItem(key: string): string | null { + getCachedActiveFlags(): string[] { + return this.getJson(STORAGE_KEYS.activeFlags) ?? []; + } + + setCachedActiveFlags(flags: string[]): void { + this.setJson(STORAGE_KEYS.activeFlags, flags); + } + + clearSession(): void { + this.removeItem(STORAGE_KEYS.currentUser); + this.removeItem(STORAGE_KEYS.activeFlags); + } + + private getItem(key: string): string | null { if (isPlatformBrowser(this.platformId)) { return window.localStorage.getItem(key); } @@ -13,15 +37,34 @@ export class StorageService { return null; } - setItem(key: string, value: string): void { + private setItem(key: string, value: string): void { if (isPlatformBrowser(this.platformId)) { window.localStorage.setItem(key, value); } } - removeItem(key: string): void { + private removeItem(key: string): void { if (isPlatformBrowser(this.platformId)) { window.localStorage.removeItem(key); } } + + private getJson(key: string): T | null { + const raw = this.getItem(key); + + if (!raw) { + return null; + } + + try { + return JSON.parse(raw) as T; + } catch { + this.removeItem(key); + return null; + } + } + + private setJson(key: string, value: T): void { + this.setItem(key, JSON.stringify(value)); + } } diff --git a/src/app/core/store/user/user.state.ts b/src/app/core/store/user/user.state.ts index c3b65d803..8cbc1313a 100644 --- a/src/app/core/store/user/user.state.ts +++ b/src/app/core/store/user/user.state.ts @@ -9,7 +9,8 @@ import { UserService } from '@core/services/user.service'; import { ProfileSettingsKey } from '@osf/shared/enums/profile-settings-key.enum'; import { removeNullable } from '@osf/shared/helpers/remove-nullable.helper'; import { UserMapper } from '@osf/shared/mappers/user'; -import { UserModel } from '@osf/shared/models/user/user.model'; +import { AsyncStateModel } from '@osf/shared/models/store/async-state.model'; +import { UserData, UserModel } from '@osf/shared/models/user/user.model'; import { SocialModel } from '@shared/models/user/social.model'; import { @@ -30,74 +31,23 @@ import { USER_STATE_INITIAL, UserStateModel } from './user.model'; }) @Injectable() export class UserState { - private userService = inject(UserService); - private storage = inject(StorageService); + private readonly userService = inject(UserService); + private readonly storageService = inject(StorageService); @Action(GetCurrentUser) getCurrentUser(ctx: StateContext) { - const currentUser = this.storage.getItem('currentUser'); - const activeFlags = this.storage.getItem('activeFlags'); + const hadCachedUser = this.hydrateFromStorage(ctx); - if (activeFlags) { - ctx.patchState({ - activeFlags: JSON.parse(activeFlags), - }); - } - - if (currentUser) { - const parsedUser = JSON.parse(currentUser); - - ctx.patchState({ - currentUser: { - data: parsedUser, - isLoading: false, - error: null, - }, - }); - - return; - } - - ctx.patchState({ - currentUser: { - ...ctx.getState().currentUser, - isLoading: true, - }, - }); - - return this.userService.getCurrentUser().pipe( - tap((data) => { - ctx.patchState({ - currentUser: { - data: data.currentUser, - isLoading: false, - error: null, - }, - activeFlags: data.activeFlags, - }); - - if (data.currentUser) { - this.storage.setItem('currentUser', JSON.stringify(data.currentUser)); - } - - if (data.activeFlags) { - this.storage.setItem('activeFlags', JSON.stringify(data.activeFlags)); - } - }) - ); + return this.userService.getCurrentUser().pipe(tap((data) => this.applySession(ctx, data, hadCachedUser))); } @Action(SetCurrentUser) setCurrentUser(ctx: StateContext, action: SetCurrentUser) { ctx.patchState({ - currentUser: { - data: action.user, - isLoading: false, - error: null, - }, + currentUser: this.toUserState(action.user, false), }); - this.storage.setItem('currentUser', JSON.stringify(action.user)); + this.storageService.setCachedUser(action.user); } @Action(UpdateProfileSettingsEmployment) @@ -113,14 +63,7 @@ export class UserState { return this.userService.updateUserProfile(userId, ProfileSettingsKey.Employment, withoutNulls).pipe( tap((user) => { - ctx.patchState({ - currentUser: { - ...state.currentUser, - data: user, - }, - }); - - this.storage.setItem('currentUser', JSON.stringify(user)); + this.updateCurrentUser(ctx, state, user); }) ); } @@ -138,14 +81,7 @@ export class UserState { return this.userService.updateUserProfile(userId, ProfileSettingsKey.Education, withoutNulls).pipe( tap((user) => { - ctx.patchState({ - currentUser: { - ...state.currentUser, - data: user, - }, - }); - - this.storage.setItem('currentUser', JSON.stringify(user)); + this.updateCurrentUser(ctx, state, user); }) ); } @@ -163,14 +99,7 @@ export class UserState { return this.userService.updateUserProfile(userId, ProfileSettingsKey.User, withoutNulls).pipe( tap((user) => { - ctx.patchState({ - currentUser: { - ...state.currentUser, - data: user, - }, - }); - - this.storage.setItem('currentUser', JSON.stringify(user)); + this.updateCurrentUser(ctx, state, user); }) ); } @@ -195,14 +124,7 @@ export class UserState { return this.userService.updateUserProfile(userId, ProfileSettingsKey.Social, social).pipe( tap((user) => { - ctx.patchState({ - currentUser: { - ...state.currentUser, - data: user, - }, - }); - - this.storage.setItem('currentUser', JSON.stringify(user)); + this.updateCurrentUser(ctx, state, user); }) ); } @@ -233,7 +155,7 @@ export class UserState { }, }, }); - this.storage.setItem('currentUser', JSON.stringify(response)); + this.storageService.setCachedUser(response); } }) ); @@ -241,15 +163,64 @@ export class UserState { @Action(ClearCurrentUser) clearCurrentUser(ctx: StateContext) { + ctx.patchState({ + currentUser: this.toUserState(null, false), + activeFlags: [], + }); + + this.storageService.clearSession(); + } + + private hydrateFromStorage(ctx: StateContext): boolean { + const cachedUser = this.storageService.getCachedUser(); + + ctx.patchState({ + activeFlags: this.storageService.getCachedActiveFlags(), + currentUser: cachedUser + ? this.toUserState(cachedUser, false) + : { ...ctx.getState().currentUser, isLoading: true }, + }); + + return !!cachedUser; + } + + private applySession(ctx: StateContext, data: UserData, hadCachedUser: boolean): void { + const activeFlags = data.activeFlags ?? []; + + this.storageService.setCachedActiveFlags(activeFlags); + + if (data.currentUser) { + this.storageService.setCachedUser(data.currentUser); + ctx.patchState({ + activeFlags, + currentUser: this.toUserState(data.currentUser, false), + }); + return; + } + + if (!hadCachedUser) { + ctx.patchState({ + activeFlags, + currentUser: this.toUserState(null, false), + }); + return; + } + + ctx.patchState({ activeFlags }); + } + + private updateCurrentUser(ctx: StateContext, state: UserStateModel, user: UserModel): void { ctx.patchState({ currentUser: { - data: null, - isLoading: false, - error: null, + ...state.currentUser, + data: user, }, - activeFlags: [], }); - this.storage.removeItem('currentUser'); + this.storageService.setCachedUser(user); + } + + private toUserState(data: UserModel | null, isLoading: boolean): AsyncStateModel { + return { data, isLoading, error: null }; } } diff --git a/src/app/features/home/pages/dashboard/dashboard.component.html b/src/app/features/home/pages/dashboard/dashboard.component.html index 3b7f0ac2f..72fc8bc4b 100644 --- a/src/app/features/home/pages/dashboard/dashboard.component.html +++ b/src/app/features/home/pages/dashboard/dashboard.component.html @@ -4,7 +4,9 @@ } @else { - + @if (isWorkflowLauncherEnabled()) { + + } @if (existsProjects()) { @@ -78,7 +80,7 @@

{{ 'home.loggedIn.latestResearch.title' | translate }}

>