diff --git a/src/app/core/constants/nav-items.constant.ts b/src/app/core/constants/nav-items.constant.ts index 32d862a4d..82f73c569 100644 --- a/src/app/core/constants/nav-items.constant.ts +++ b/src/app/core/constants/nav-items.constant.ts @@ -6,7 +6,6 @@ export const AUTHENTICATED_MENU_ITEMS: string[] = [ 'my-registrations', 'my-projects', 'my-preprints', - 'registries-overview', 'settings', ]; diff --git a/src/app/core/guards/auth.guard.ts b/src/app/core/guards/auth.guard.ts index 91962328e..9e233a5d6 100644 --- a/src/app/core/guards/auth.guard.ts +++ b/src/app/core/guards/auth.guard.ts @@ -5,12 +5,14 @@ import { map, switchMap, take } from 'rxjs'; import { inject } from '@angular/core'; import { CanActivateFn, Router } from '@angular/router'; +import { AuthService } from '@core/services'; import { GetCurrentUser, UserSelectors } from '@osf/core/store/user'; import { hasViewOnlyParam } from '@osf/shared/helpers'; export const authGuard: CanActivateFn = () => { const store = inject(Store); const router = inject(Router); + const authService = inject(AuthService); const isAuthenticated = store.selectSnapshot(UserSelectors.isAuthenticated); @@ -28,7 +30,7 @@ export const authGuard: CanActivateFn = () => { take(1), map((isAuthenticated) => { if (!isAuthenticated) { - router.navigate(['/']); + authService.navigateToSignIn(); return false; } diff --git a/src/app/features/analytics/analytics.component.html b/src/app/features/analytics/analytics.component.html index 7ead2f371..4efeecbb4 100644 --- a/src/app/features/analytics/analytics.component.html +++ b/src/app/features/analytics/analytics.component.html @@ -96,7 +96,7 @@ [isLoading]="isRelatedCountsLoading()" [title]="'project.analytics.kpi.linksToThisProject'" [value]="relatedCounts()?.linksToCount" - [showButton]="true" + [showButton]="false" [buttonLabel]="'project.analytics.kpi.viewLinks'" > diff --git a/src/app/features/settings/account-settings/components/connected-emails/connected-emails.component.html b/src/app/features/settings/account-settings/components/connected-emails/connected-emails.component.html index 594e45501..21a90f4a9 100644 --- a/src/app/features/settings/account-settings/components/connected-emails/connected-emails.component.html +++ b/src/app/features/settings/account-settings/components/connected-emails/connected-emails.component.html @@ -86,6 +86,7 @@

{{ 'settings.accountSettings.connectedEmails.title' | translate }}

diff --git a/src/app/features/settings/account-settings/components/connected-emails/connected-emails.component.ts b/src/app/features/settings/account-settings/components/connected-emails/connected-emails.component.ts index 9b7114f40..7f6b93474 100644 --- a/src/app/features/settings/account-settings/components/connected-emails/connected-emails.component.ts +++ b/src/app/features/settings/account-settings/components/connected-emails/connected-emails.component.ts @@ -12,7 +12,7 @@ import { filter, finalize, throttleTime } from 'rxjs'; import { ChangeDetectionStrategy, Component, computed, DestroyRef, inject } from '@angular/core'; import { takeUntilDestroyed, toSignal } from '@angular/core/rxjs-interop'; -import { DeleteEmail, MakePrimary, ResendConfirmation, UserEmailsSelectors } from '@core/store/user-emails'; +import { DeleteEmail, GetEmails, MakePrimary, ResendConfirmation, UserEmailsSelectors } from '@core/store/user-emails'; import { UserSelectors } from '@osf/core/store/user'; import { ReadonlyInputComponent } from '@osf/shared/components'; import { IS_SMALL } from '@osf/shared/helpers'; @@ -45,6 +45,7 @@ export class ConnectedEmailsComponent { readonly isEmailsSubmitting = select(UserEmailsSelectors.isEmailsSubmitting); private readonly actions = createDispatchMap({ + getEmails: GetEmails, resendConfirmation: ResendConfirmation, deleteEmail: DeleteEmail, makePrimary: MakePrimary, @@ -103,7 +104,10 @@ export class ConnectedEmailsComponent { finalize(() => this.loaderService.hide()), takeUntilDestroyed(this.destroyRef) ) - .subscribe(() => this.toastService.showSuccess('settings.accountSettings.connectedEmails.successResend')); + .subscribe(() => { + this.toastService.showSuccess('settings.accountSettings.connectedEmails.successResend'); + this.actions.getEmails(); + }); } }, }); diff --git a/src/app/shared/components/generic-filter/generic-filter.component.ts b/src/app/shared/components/generic-filter/generic-filter.component.ts index 6245fd910..62dd9eeba 100644 --- a/src/app/shared/components/generic-filter/generic-filter.component.ts +++ b/src/app/shared/components/generic-filter/generic-filter.component.ts @@ -16,9 +16,10 @@ import { import { takeUntilDestroyed } from '@angular/core/rxjs-interop'; import { FormsModule } from '@angular/forms'; -import { LoadingSpinnerComponent } from '@shared/components'; import { SelectOption } from '@shared/models'; +import { LoadingSpinnerComponent } from '../loading-spinner/loading-spinner.component'; + @Component({ selector: 'osf-generic-filter', imports: [Select, FormsModule, LoadingSpinnerComponent], diff --git a/src/app/shared/components/index.ts b/src/app/shared/components/index.ts index d1b13ed3f..ccf32b615 100644 --- a/src/app/shared/components/index.ts +++ b/src/app/shared/components/index.ts @@ -18,6 +18,7 @@ export { FilterChipsComponent } from './filter-chips/filter-chips.component'; export { FormSelectComponent } from './form-select/form-select.component'; export { FullScreenLoaderComponent } from './full-screen-loader/full-screen-loader.component'; export { GenericFilterComponent } from './generic-filter/generic-filter.component'; +export { GlobalSearchComponent } from './global-search/global-search.component'; export { IconComponent } from './icon/icon.component'; export { InfoIconComponent } from './info-icon/info-icon.component'; export { LicenseComponent } from './license/license.component'; @@ -51,4 +52,3 @@ export { ToastComponent } from './toast/toast.component'; export { TruncatedTextComponent } from './truncated-text/truncated-text.component'; export { ViewOnlyLinkMessageComponent } from './view-only-link-message/view-only-link-message.component'; export { ViewOnlyTableComponent } from './view-only-table/view-only-table.component'; -export { GlobalSearchComponent } from '@shared/components/global-search/global-search.component'; diff --git a/src/app/shared/components/reusable-filter/reusable-filter.component.ts b/src/app/shared/components/reusable-filter/reusable-filter.component.ts index 896698b02..80510a3c0 100644 --- a/src/app/shared/components/reusable-filter/reusable-filter.component.ts +++ b/src/app/shared/components/reusable-filter/reusable-filter.component.ts @@ -8,12 +8,12 @@ import { NgClass } from '@angular/common'; import { ChangeDetectionStrategy, Component, computed, input, output, signal } from '@angular/core'; import { ReactiveFormsModule } from '@angular/forms'; -import { LoadingSpinnerComponent } from '@shared/components'; -import { FILTER_PLACEHOLDERS } from '@shared/constants/filter-placeholders'; -import { StringOrNull } from '@shared/helpers'; -import { DiscoverableFilter, SelectOption } from '@shared/models'; +import { FILTER_PLACEHOLDERS } from '@osf/shared/constants'; +import { StringOrNull } from '@osf/shared/helpers'; +import { DiscoverableFilter, SelectOption } from '@osf/shared/models'; import { GenericFilterComponent } from '../generic-filter/generic-filter.component'; +import { LoadingSpinnerComponent } from '../loading-spinner/loading-spinner.component'; @Component({ selector: 'osf-reusable-filters', diff --git a/src/app/shared/components/search-input/search-input.component.ts b/src/app/shared/components/search-input/search-input.component.ts index 78e95ed48..a04614836 100644 --- a/src/app/shared/components/search-input/search-input.component.ts +++ b/src/app/shared/components/search-input/search-input.component.ts @@ -4,7 +4,7 @@ import { InputText } from 'primeng/inputtext'; import { ChangeDetectionStrategy, Component, input, output } from '@angular/core'; import { FormControl, ReactiveFormsModule } from '@angular/forms'; -import { IconComponent } from '@shared/components'; +import { IconComponent } from '../icon/icon.component'; @Component({ selector: 'osf-search-input',