From 85414d2f072109d1a53aa22d2a59e1b420f0b2eb Mon Sep 17 00:00:00 2001 From: Brian Pilati Date: Mon, 14 Jul 2025 14:46:50 -0500 Subject: [PATCH 1/2] Added a new banner for all OSF preprints --- app/config/environment.d.ts | 1 + .../preprint-status-banner/component.ts | 16 ++++++++++++++-- .../preprint-status-banner/template.hbs | 8 ++++++-- app/preprints/detail/controller.ts | 4 ++++ app/preprints/detail/route.ts | 15 +++++++++------ app/preprints/detail/template.hbs | 7 +++++++ config/environment.js | 2 ++ translations/en-us.yml | 1 + 8 files changed, 44 insertions(+), 10 deletions(-) diff --git a/app/config/environment.d.ts b/app/config/environment.d.ts index 863cd9add0..b7fc6c5b7a 100644 --- a/app/config/environment.d.ts +++ b/app/config/environment.d.ts @@ -19,6 +19,7 @@ export interface KeenConfig { declare const config: { WATER_BUTLER_ENABLED: boolean; + PREPRINT_ADAPTER_OPTIONS_ENABLED: boolean; plauditWidgetUrl: string, environment: any; cedarConfig: any; diff --git a/app/preprints/-components/preprint-status-banner/component.ts b/app/preprints/-components/preprint-status-banner/component.ts index 83368aa271..e14a3485f1 100644 --- a/app/preprints/-components/preprint-status-banner/component.ts +++ b/app/preprints/-components/preprint-status-banner/component.ts @@ -22,6 +22,8 @@ const WITHDRAWN = 'withdrawn'; const PRE_MODERATION = 'pre-moderation'; const POST_MODERATION = 'post-moderation'; +const PROVIDER_OSF = 'provider-osf'; + const STATUS = Object({}); STATUS[PENDING]= 'preprints.detail.status_banner.pending'; STATUS[ACCEPTED]= 'preprints.detail.status_banner.accepted'; @@ -30,6 +32,7 @@ STATUS[PENDING_WITHDRAWAL]= 'preprints.detail.status_banner.pending_withdrawal'; STATUS[WITHDRAWAL_REJECTED]= 'preprints.detail.status_banner.withdrawal_rejected'; const MESSAGE = Object({}); +MESSAGE[PROVIDER_OSF] = 'preprints.detail.status_banner.message.provider_osf'; MESSAGE[PRE_MODERATION] = 'preprints.detail.status_banner.message.pending_pre'; MESSAGE[POST_MODERATION] = 'preprints.detail.status_banner.message.pending_post'; MESSAGE[ACCEPTED] = 'preprints.detail.status_banner.message.accepted'; @@ -45,6 +48,7 @@ WORKFLOW[POST_MODERATION] = 'preprints.detail.status_banner.post_moderation'; WORKFLOW[UNKNOWN] = 'preprints.detail.status_banner.post_moderation'; const CLASS_NAMES = Object({}); +CLASS_NAMES[PROVIDER_OSF] = 'preprint-status-pending-pre'; CLASS_NAMES[PRE_MODERATION] = 'preprint-status-pending-pre'; CLASS_NAMES[POST_MODERATION] = 'preprint-status-pending-post'; CLASS_NAMES[ACCEPTED] = 'preprint-status-accepted'; @@ -68,6 +72,7 @@ interface InputArgs { provider: PreprintProviderModel; latestWithdrawalRequest: PreprintRequestModel | null; latestAction: PreprintRequestActionModel | ReviewActionModel | null; + isOSFBanner: boolean | null; } export default class PreprintStatusBanner extends Component{ @@ -104,7 +109,9 @@ export default class PreprintStatusBanner extends Component{ } public get getClassName(): string { - if (this.isPendingWithdrawal) { + if (this.args.isOSFBanner) { + return CLASS_NAMES[PROVIDER_OSF]; + } else if (this.isPendingWithdrawal) { return CLASS_NAMES[PENDING_WITHDRAWAL]; } else if (this.isWithdrawn) { return CLASS_NAMES[WITHDRAWN]; @@ -119,7 +126,12 @@ export default class PreprintStatusBanner extends Component{ public get bannerContent(): string { const { provider } = this.args; - if (this.isPendingWithdrawal) { + if (this.args.isOSFBanner) { + return this.intl.t(MESSAGE[PROVIDER_OSF], { + name: 'OSF', + documentType: provider.documentType.plural, + }); + } else if (this.isPendingWithdrawal) { return this.intl.t(this.statusExplanation, { documentType: provider.documentType.singular }); } else if (this.isWithdrawn) { return this.intl.t(MESSAGE[WITHDRAWN], { documentType: provider.documentType.singular }); diff --git a/app/preprints/-components/preprint-status-banner/template.hbs b/app/preprints/-components/preprint-status-banner/template.hbs index b634ca2003..cb9965be22 100644 --- a/app/preprints/-components/preprint-status-banner/template.hbs +++ b/app/preprints/-components/preprint-status-banner/template.hbs @@ -4,10 +4,14 @@ {{else}}
- {{#if this.isWithdrawn}} + {{#if @isOSFBanner}} +
+ {{this.bannerContent}} +
+ {{else if this.isWithdrawn}}
{{else}}
diff --git a/app/preprints/detail/controller.ts b/app/preprints/detail/controller.ts index edb46714c2..da61e126aa 100644 --- a/app/preprints/detail/controller.ts +++ b/app/preprints/detail/controller.ts @@ -152,6 +152,10 @@ export default class PrePrintsDetailController extends Controller { return false; } + get showOSFBanner(): boolean { + return this.model.provider.id === 'osf'; + } + get showStatusBanner(): boolean { return ( this.model.provider.reviewsWorkflow diff --git a/app/preprints/detail/route.ts b/app/preprints/detail/route.ts index fc93b4f817..99e7e0691d 100644 --- a/app/preprints/detail/route.ts +++ b/app/preprints/detail/route.ts @@ -60,15 +60,18 @@ export default class PreprintsDetail extends Route { 'contributors', 'identifiers', ]; + const adapterOptions = config.PREPRINT_ADAPTER_OPTIONS_ENABLED ? Object({ + query: { + 'metrics[views]': 'total', + 'metrics[downloads]': 'total', + }, + }) : undefined; + + const preprint = await this.store.findRecord('preprint', guid, { reload: true, include: embeddableFields, - adapterOptions: { - query: { - 'metrics[views]': 'total', - 'metrics[downloads]': 'total', - }, - }, + adapterOptions, }); const provider = await preprint?.get('provider'); diff --git a/app/preprints/detail/template.hbs b/app/preprints/detail/template.hbs index 95cef805cd..4b87cdf56b 100644 --- a/app/preprints/detail/template.hbs +++ b/app/preprints/detail/template.hbs @@ -109,6 +109,13 @@ @latestAction={{this.model.latestAction}} /> {{/if}} + {{#if this.showOSFBanner}} + + {{/if}}
{{#if this.model.preprint.isWithdrawn}} Date: Tue, 15 Jul 2025 11:55:27 -0500 Subject: [PATCH 2/2] Updates for the PR --- app/preprints/detail/controller.ts | 2 +- app/preprints/detail/template.hbs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/preprints/detail/controller.ts b/app/preprints/detail/controller.ts index da61e126aa..22d184bce3 100644 --- a/app/preprints/detail/controller.ts +++ b/app/preprints/detail/controller.ts @@ -153,7 +153,7 @@ export default class PrePrintsDetailController extends Controller { } get showOSFBanner(): boolean { - return this.model.provider.id === 'osf'; + return this.model.provider.id === config.defaultProvider; } get showStatusBanner(): boolean { diff --git a/app/preprints/detail/template.hbs b/app/preprints/detail/template.hbs index 4b87cdf56b..c7952a6e00 100644 --- a/app/preprints/detail/template.hbs +++ b/app/preprints/detail/template.hbs @@ -113,7 +113,7 @@ {{/if}}