From 184d389c714649dae9b6eb08caa65d144573561a Mon Sep 17 00:00:00 2001 From: Yuhuai Liu Date: Thu, 6 Nov 2025 15:54:11 -0500 Subject: [PATCH 1/4] feat(release): bump version number --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index eef0b9b4e..30c9c6215 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "osf", - "version": "25.2.0", + "version": "25.3.0", "scripts": { "ng": "ng", "analyze-bundle": "ng build --configuration=analyze-bundle && source-map-explorer dist/**/*.js --no-border-checks", From c0e5be4d9cf19df5f9f327af198ff16847e0860c Mon Sep 17 00:00:00 2001 From: Andriy Sheredko Date: Wed, 12 Nov 2025 14:32:29 +0200 Subject: [PATCH 2/4] fix(fix_some_wiki_pages_never_load): fix WikiMapper to handle missing user embeds in WikiVersion response --- src/app/shared/mappers/wiki/wiki.mapper.ts | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/app/shared/mappers/wiki/wiki.mapper.ts b/src/app/shared/mappers/wiki/wiki.mapper.ts index aa79c9911..3134923d8 100644 --- a/src/app/shared/mappers/wiki/wiki.mapper.ts +++ b/src/app/shared/mappers/wiki/wiki.mapper.ts @@ -44,10 +44,13 @@ export class WikiMapper { } static fromGetWikiVersionResponse(response: WikiVersionJsonApi): WikiVersion { + const createdBy = + response.embeds?.user?.data?.attributes?.full_name || response.embeds?.user?.data?.id || 'Unknown author'; + return { id: response.id, - createdAt: response.attributes.date_created, - createdBy: response.embeds.user.data.attributes.full_name, + createdAt: response.attributes?.date_created ?? '', + createdBy, }; } From 07fa94ef348ad461d34c347416b069facaf4dcde Mon Sep 17 00:00:00 2001 From: Andriy Sheredko Date: Wed, 12 Nov 2025 15:17:30 +0200 Subject: [PATCH 3/4] fix(fix_some_wiki_pages_never_load): fix WikiMapper to handle missing user embeds in WikiVersion response --- src/app/shared/mappers/wiki/wiki.mapper.ts | 8 +++----- src/app/shared/models/wiki/wiki.model.ts | 11 +++-------- 2 files changed, 6 insertions(+), 13 deletions(-) diff --git a/src/app/shared/mappers/wiki/wiki.mapper.ts b/src/app/shared/mappers/wiki/wiki.mapper.ts index 3134923d8..fb80b518b 100644 --- a/src/app/shared/mappers/wiki/wiki.mapper.ts +++ b/src/app/shared/mappers/wiki/wiki.mapper.ts @@ -1,3 +1,4 @@ +import { UserMapper } from '@osf/shared/mappers/user/user.mapper'; import { ComponentsWikiGetResponse, HomeWiki, @@ -44,13 +45,10 @@ export class WikiMapper { } static fromGetWikiVersionResponse(response: WikiVersionJsonApi): WikiVersion { - const createdBy = - response.embeds?.user?.data?.attributes?.full_name || response.embeds?.user?.data?.id || 'Unknown author'; - return { id: response.id, - createdAt: response.attributes?.date_created ?? '', - createdBy, + createdAt: response.attributes.date_created, + createdBy: UserMapper.getUserInfo(response.embeds.user)?.fullName || 'Unknown author', }; } diff --git a/src/app/shared/models/wiki/wiki.model.ts b/src/app/shared/models/wiki/wiki.model.ts index 6223fde49..d868fc993 100644 --- a/src/app/shared/models/wiki/wiki.model.ts +++ b/src/app/shared/models/wiki/wiki.model.ts @@ -1,3 +1,5 @@ +import { UserDataErrorResponseJsonApi } from '@shared/models/user/user-json-api.model'; + import { JsonApiResponse, JsonApiResponseWithMeta, MetaAnonymousJsonApi } from '../common/json-api.model'; export enum WikiModes { @@ -78,14 +80,7 @@ export interface WikiVersionJsonApi { date_created: string; }; embeds: { - user: { - data: { - id: string; - attributes: { - full_name: string; - }; - }; - }; + user: UserDataErrorResponseJsonApi; }; } From 6cea655d1af1e98eacf68ae83a0121d014e9d2e1 Mon Sep 17 00:00:00 2001 From: Andriy Sheredko Date: Thu, 13 Nov 2025 14:50:23 +0200 Subject: [PATCH 4/4] fix(fix_some_wiki_pages_never_load): fix WikiMapper to handle missing user embeds in WikiVersion response --- src/app/features/project/wiki/wiki.component.ts | 3 ++- src/app/shared/mappers/wiki/wiki.mapper.ts | 12 +++++++++++- src/assets/i18n/en.json | 3 ++- 3 files changed, 15 insertions(+), 3 deletions(-) diff --git a/src/app/features/project/wiki/wiki.component.ts b/src/app/features/project/wiki/wiki.component.ts index b51a5138f..d57a8cd9f 100644 --- a/src/app/features/project/wiki/wiki.component.ts +++ b/src/app/features/project/wiki/wiki.component.ts @@ -1,6 +1,6 @@ import { createDispatchMap, select } from '@ngxs/store'; -import { TranslatePipe } from '@ngx-translate/core'; +import { TranslatePipe, TranslateService } from '@ngx-translate/core'; import { Button } from 'primeng/button'; import { ButtonGroupModule } from 'primeng/buttongroup'; @@ -62,6 +62,7 @@ export class WikiComponent { private readonly router = inject(Router); private readonly destroyRef = inject(DestroyRef); private toastService = inject(ToastService); + private readonly translateService = inject(TranslateService); WikiModes = WikiModes; homeWikiName = 'Home'; diff --git a/src/app/shared/mappers/wiki/wiki.mapper.ts b/src/app/shared/mappers/wiki/wiki.mapper.ts index fb80b518b..e79ea6c30 100644 --- a/src/app/shared/mappers/wiki/wiki.mapper.ts +++ b/src/app/shared/mappers/wiki/wiki.mapper.ts @@ -1,3 +1,5 @@ +import { TranslateService } from '@ngx-translate/core'; + import { UserMapper } from '@osf/shared/mappers/user/user.mapper'; import { ComponentsWikiGetResponse, @@ -11,6 +13,12 @@ import { import { ComponentWiki } from '@osf/shared/stores/wiki'; export class WikiMapper { + private static translate: TranslateService; + + static init(translate: TranslateService): void { + WikiMapper.translate = translate; + } + static fromCreateWikiResponse(response: WikiGetResponse): WikiModel { return { id: response.id, @@ -48,7 +56,9 @@ export class WikiMapper { return { id: response.id, createdAt: response.attributes.date_created, - createdBy: UserMapper.getUserInfo(response.embeds.user)?.fullName || 'Unknown author', + createdBy: + UserMapper.getUserInfo(response.embeds.user)?.fullName || + WikiMapper.translate.instant('project.wiki.version.unknownAuthor'), }; } diff --git a/src/assets/i18n/en.json b/src/assets/i18n/en.json index 740df40fa..5e7b617d2 100644 --- a/src/assets/i18n/en.json +++ b/src/assets/i18n/en.json @@ -926,7 +926,8 @@ "preview": "Preview", "current": "Current", "successSaved": "Wiki version has been saved successfully", - "noContent": "Add important information, links, or images here to describe your project." + "noContent": "Add important information, links, or images here to describe your project.", + "unknownAuthor": "Unknown author" }, "list": { "header": "Project Wiki Pages",