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", 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 aa79c9911..e79ea6c30 100644 --- a/src/app/shared/mappers/wiki/wiki.mapper.ts +++ b/src/app/shared/mappers/wiki/wiki.mapper.ts @@ -1,3 +1,6 @@ +import { TranslateService } from '@ngx-translate/core'; + +import { UserMapper } from '@osf/shared/mappers/user/user.mapper'; import { ComponentsWikiGetResponse, HomeWiki, @@ -10,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, @@ -47,7 +56,9 @@ export class WikiMapper { return { id: response.id, createdAt: response.attributes.date_created, - createdBy: response.embeds.user.data.attributes.full_name, + createdBy: + UserMapper.getUserInfo(response.embeds.user)?.fullName || + WikiMapper.translate.instant('project.wiki.version.unknownAuthor'), }; } 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; }; } 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",