From e1ad68a149bcc19d888d552be87de9b43a3170ac Mon Sep 17 00:00:00 2001 From: Nazar Semets Date: Wed, 1 Oct 2025 21:19:44 +0300 Subject: [PATCH] fix(wiki): fixed wiki bugs --- .../edit-file-metadata-dialog.component.ts | 6 +++--- .../project/overview/project-overview.component.html | 2 +- .../project/overview/project-overview.component.ts | 1 + .../project/overview/store/project-overview.selectors.ts | 5 +++++ src/app/shared/stores/wiki/wiki.state.ts | 8 +++++++- 5 files changed, 17 insertions(+), 5 deletions(-) diff --git a/src/app/features/files/components/edit-file-metadata-dialog/edit-file-metadata-dialog.component.ts b/src/app/features/files/components/edit-file-metadata-dialog/edit-file-metadata-dialog.component.ts index 0cc473623..8be786d57 100644 --- a/src/app/features/files/components/edit-file-metadata-dialog/edit-file-metadata-dialog.component.ts +++ b/src/app/features/files/components/edit-file-metadata-dialog/edit-file-metadata-dialog.component.ts @@ -6,7 +6,7 @@ import { InputText } from 'primeng/inputtext'; import { Select } from 'primeng/select'; import { ChangeDetectionStrategy, Component, inject } from '@angular/core'; -import { FormControl, FormGroup, ReactiveFormsModule } from '@angular/forms'; +import { FormControl, FormGroup, ReactiveFormsModule, Validators } from '@angular/forms'; import { languageCodes, resourceTypes } from '@osf/shared/constants'; @@ -29,8 +29,8 @@ export class EditFileMetadataDialogComponent { fileMetadataForm = new FormGroup({ title: new FormControl(null), description: new FormControl(null), - resourceType: new FormControl(null), - resourceLanguage: new FormControl(null), + resourceType: new FormControl(null, Validators.required), + resourceLanguage: new FormControl(null, Validators.required), }); constructor() { diff --git a/src/app/features/project/overview/project-overview.component.html b/src/app/features/project/overview/project-overview.component.html index 0800aad51..ad6e548e1 100644 --- a/src/app/features/project/overview/project-overview.component.html +++ b/src/app/features/project/overview/project-overview.component.html @@ -47,7 +47,7 @@ }
- @if (hasWriteAccess()) { + @if (isWikiEnabled()) { } diff --git a/src/app/features/project/overview/project-overview.component.ts b/src/app/features/project/overview/project-overview.component.ts index 671d6555b..1cd3050e3 100644 --- a/src/app/features/project/overview/project-overview.component.ts +++ b/src/app/features/project/overview/project-overview.component.ts @@ -129,6 +129,7 @@ export class ProjectOverviewComponent implements OnInit { isAnonymous = select(ProjectOverviewSelectors.isProjectAnonymous); hasWriteAccess = select(ProjectOverviewSelectors.hasWriteAccess); hasAdminAccess = select(ProjectOverviewSelectors.hasAdminAccess); + isWikiEnabled = select(ProjectOverviewSelectors.isWikiEnabled); private readonly actions = createDispatchMap({ getProject: GetProjectById, diff --git a/src/app/features/project/overview/store/project-overview.selectors.ts b/src/app/features/project/overview/store/project-overview.selectors.ts index 7b85f5c94..babe51c21 100644 --- a/src/app/features/project/overview/store/project-overview.selectors.ts +++ b/src/app/features/project/overview/store/project-overview.selectors.ts @@ -70,4 +70,9 @@ export class ProjectOverviewSelectors { static hasNoPermissions(state: ProjectOverviewStateModel): boolean { return !state.project.data?.currentUserPermissions.length; } + + @Selector([ProjectOverviewState]) + static isWikiEnabled(state: ProjectOverviewStateModel): boolean { + return !!state.project.data?.wikiEnabled; + } } diff --git a/src/app/shared/stores/wiki/wiki.state.ts b/src/app/shared/stores/wiki/wiki.state.ts index c8ac48f07..651c38f5f 100644 --- a/src/app/shared/stores/wiki/wiki.state.ts +++ b/src/app/shared/stores/wiki/wiki.state.ts @@ -139,9 +139,15 @@ export class WikiState { return this.wikiService.getWikiList(action.resourceType, action.resourceId).pipe( tap((response) => { + const wiki = response.wikis.sort((a, b) => { + if (a.name === 'Home') return -1; + if (b.name === 'Home') return 1; + return a.name.localeCompare(b.name); + }); + ctx.patchState({ wikiList: { - data: [...response.wikis], + data: [...wiki], isLoading: false, error: null, },