Skip to content

Commit

Permalink
Merge pull request #692 from wmde/separate-campaignparams
Browse files Browse the repository at this point in the history
Separate "campaign parameters" and "thankyou campaign parameters"
  • Loading branch information
moiikana authored Feb 6, 2025
2 parents 321495b + becf2ab commit d39bc5e
Show file tree
Hide file tree
Showing 23 changed files with 76 additions and 57 deletions.
2 changes: 1 addition & 1 deletion banners/thank_you/banner_ctrl.de.ts
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ const app = createVueApp( BannerConductor, {
},
bannerCategory: 'fundraisingThankyou',
bannerProps: {
settings: createThankYouSettings( new IntegerDe(), page.getCampaignParameters().thankYouCampaign ),
settings: createThankYouSettings( new IntegerDe(), page.getThankYouCampaignParameters() ),
subscribeURL: createTrackedURL( SUBSCRIBE_URL, page.getTracking(), impressionCount, Locales.DE ),
useOfFundsURL: createTrackedURL( USE_OF_FUNDS_URL, page.getTracking(), impressionCount, Locales.DE )
},
Expand Down
2 changes: 1 addition & 1 deletion banners/thank_you/banner_ctrl.en.ts
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ const app = createVueApp( BannerConductor, {
},
bannerCategory: 'fundraisingThankyou',
bannerProps: {
settings: createThankYouSettings( new IntegerEn(), page.getCampaignParameters().thankYouCampaign ),
settings: createThankYouSettings( new IntegerEn(), page.getThankYouCampaignParameters() ),
subscribeURL: createTrackedURL( SUBSCRIBE_URL, page.getTracking(), impressionCount, Locales.EN ),
useOfFundsURL: createTrackedURL( USE_OF_FUNDS_URL, page.getTracking(), impressionCount, Locales.EN )
},
Expand Down
2 changes: 1 addition & 1 deletion banners/thank_you/banner_ctrl.wpde.ts
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ const app = createVueApp( BannerConductor, {
},
bannerCategory: 'fundraisingThankyou',
bannerProps: {
settings: createThankYouSettings( new IntegerDe(), page.getCampaignParameters().thankYouCampaign ),
settings: createThankYouSettings( new IntegerDe(), page.getThankYouCampaignParameters() ),
subscribeURL: createTrackedURL( SUBSCRIBE_URL, page.getTracking(), impressionCount, Locales.DE ),
useOfFundsURL: createTrackedURL( USE_OF_FUNDS_URL, page.getTracking(), impressionCount, Locales.DE )
},
Expand Down
2 changes: 1 addition & 1 deletion banners/thank_you/banner_var.de.ts
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ const app = createVueApp( BannerConductor, {
},
bannerCategory: 'fundraisingThankyou',
bannerProps: {
settings: createThankYouSettings( new IntegerDe(), page.getCampaignParameters().thankYouCampaign ),
settings: createThankYouSettings( new IntegerDe(), page.getThankYouCampaignParameters() ),
subscribeURL: createTrackedURL( SUBSCRIBE_URL, page.getTracking(), impressionCount, Locales.DE ),
useOfFundsURL: createTrackedURL( USE_OF_FUNDS_URL, page.getTracking(), impressionCount, Locales.DE )
},
Expand Down
2 changes: 1 addition & 1 deletion banners/thank_you/banner_var.en.ts
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ const app = createVueApp( BannerConductor, {
},
bannerCategory: 'fundraisingThankyou',
bannerProps: {
settings: createThankYouSettings( new IntegerEn(), page.getCampaignParameters().thankYouCampaign ),
settings: createThankYouSettings( new IntegerEn(), page.getThankYouCampaignParameters() ),
subscribeURL: createTrackedURL( SUBSCRIBE_URL, page.getTracking(), impressionCount, Locales.EN ),
useOfFundsURL: createTrackedURL( USE_OF_FUNDS_URL, page.getTracking(), impressionCount, Locales.EN )
},
Expand Down
2 changes: 1 addition & 1 deletion banners/thank_you/banner_var.wpde.ts
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ const app = createVueApp( BannerConductor, {
},
bannerCategory: 'fundraisingThankyou',
bannerProps: {
settings: createThankYouSettings( new IntegerDe(), page.getCampaignParameters().thankYouCampaign ),
settings: createThankYouSettings( new IntegerDe(), page.getThankYouCampaignParameters() ),
subscribeURL: createTrackedURL( SUBSCRIBE_URL, page.getTracking(), impressionCount, Locales.DE ),
useOfFundsURL: createTrackedURL( USE_OF_FUNDS_URL, page.getTracking(), impressionCount, Locales.DE )
},
Expand Down
2 changes: 1 addition & 1 deletion banners/thank_you/settings.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { Integer } from '@src/utils/DynamicContent/formatters/Integer';
import { ThankYouCampaignParameters } from '@src/domain/CampaignParameters';
import { ThankYouCampaignParameters } from '@src/domain/ThankYouCampaignParameters';

export interface ThankYouSettings {
numberOfDonors: string;
Expand Down
2 changes: 1 addition & 1 deletion banners/thank_you_2024/banner_ctrl.de.ts
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ const app = createVueApp( BannerConductor, {
},
bannerCategory: 'fundraisingThankyou',
bannerProps: {
settings: createThankYouSettings( new IntegerDe(), page.getCampaignParameters().thankYouCampaign ),
settings: createThankYouSettings( new IntegerDe(), page.getThankYouCampaignParameters() ),
subscribeURL: createTrackedURL( SUBSCRIBE_URL, page.getTracking(), impressionCount, { locale: Locales.DE } ),
useOfFundsURL: createTrackedURL( USE_OF_FUNDS_URL, page.getTracking(), impressionCount, { locale: Locales.DE } ),
membershipWithAmountURL: createTrackedURL( MEMBERSHIP_FORM_URL, page.getTracking(), impressionCount, {
Expand Down
2 changes: 1 addition & 1 deletion banners/thank_you_2024/banner_ctrl.en.ts
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ const app = createVueApp( BannerConductor, {
},
bannerCategory: 'fundraisingThankyou',
bannerProps: {
settings: createThankYouSettings( new IntegerEn(), page.getCampaignParameters().thankYouCampaign ),
settings: createThankYouSettings( new IntegerEn(), page.getThankYouCampaignParameters() ),
subscribeURL: createTrackedURL( SUBSCRIBE_URL, page.getTracking(), impressionCount, { locale: Locales.EN } ),
useOfFundsURL: createTrackedURL( USE_OF_FUNDS_URL, page.getTracking(), impressionCount, { locale: Locales.EN } ),
membershipWithAmountURL: createTrackedURL( MEMBERSHIP_FORM_URL, page.getTracking(), impressionCount, {
Expand Down
2 changes: 1 addition & 1 deletion banners/thank_you_2024/banner_ctrl.wpde.ts
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ const app = createVueApp( BannerConductor, {
},
bannerCategory: 'fundraisingThankyou',
bannerProps: {
settings: createThankYouSettings( new IntegerDe(), page.getCampaignParameters().thankYouCampaign ),
settings: createThankYouSettings( new IntegerDe(), page.getThankYouCampaignParameters() ),
subscribeURL: createTrackedURL( SUBSCRIBE_URL, page.getTracking(), impressionCount, { locale: Locales.DE } ),
useOfFundsURL: createTrackedURL( USE_OF_FUNDS_URL, page.getTracking(), impressionCount, { locale: Locales.DE } ),
membershipWithAmountURL: createTrackedURL( MEMBERSHIP_FORM_URL, page.getTracking(), impressionCount, {
Expand Down
2 changes: 1 addition & 1 deletion banners/thank_you_2024/banner_var.de.ts
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ const app = createVueApp( BannerConductor, {
},
bannerCategory: 'fundraisingThankyou',
bannerProps: {
settings: createThankYouSettings( new IntegerDe(), page.getCampaignParameters().thankYouCampaign ),
settings: createThankYouSettings( new IntegerDe(), page.getThankYouCampaignParameters() ),
subscribeURL: createTrackedURL( SUBSCRIBE_URL, page.getTracking(), impressionCount, { locale: Locales.DE } ),
useOfFundsURL: createTrackedURL( USE_OF_FUNDS_URL, page.getTracking(), impressionCount, { locale: Locales.DE } ),
membershipWithAmountURL: createTrackedURL( MEMBERSHIP_FORM_URL, page.getTracking(), impressionCount, {
Expand Down
2 changes: 1 addition & 1 deletion banners/thank_you_2024/banner_var.en.ts
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ const app = createVueApp( BannerConductor, {
},
bannerCategory: 'fundraisingThankyou',
bannerProps: {
settings: createThankYouSettings( new IntegerEn(), page.getCampaignParameters().thankYouCampaign ),
settings: createThankYouSettings( new IntegerEn(), page.getThankYouCampaignParameters() ),
subscribeURL: createTrackedURL( SUBSCRIBE_URL, page.getTracking(), impressionCount, { locale: Locales.EN } ),
useOfFundsURL: createTrackedURL( USE_OF_FUNDS_URL, page.getTracking(), impressionCount, { locale: Locales.EN } ),
membershipWithAmountURL: createTrackedURL( MEMBERSHIP_FORM_URL, page.getTracking(), impressionCount, {
Expand Down
2 changes: 1 addition & 1 deletion banners/thank_you_2024/banner_var.wpde.ts
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ const app = createVueApp( BannerConductor, {
},
bannerCategory: 'fundraisingThankyou',
bannerProps: {
settings: createThankYouSettings( new IntegerDe(), page.getCampaignParameters().thankYouCampaign ),
settings: createThankYouSettings( new IntegerDe(), page.getThankYouCampaignParameters() ),
subscribeURL: createTrackedURL( SUBSCRIBE_URL, page.getTracking(), impressionCount, { locale: Locales.DE } ),
useOfFundsURL: createTrackedURL( USE_OF_FUNDS_URL, page.getTracking(), impressionCount, { locale: Locales.DE } ),
membershipWithAmountURL: createTrackedURL( MEMBERSHIP_FORM_URL, page.getTracking(), impressionCount, {
Expand Down
2 changes: 1 addition & 1 deletion banners/thank_you_2024/settings.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { Integer } from '@src/utils/DynamicContent/formatters/Integer';
import { ThankYouCampaignParameters } from '@src/domain/CampaignParameters';
import { ThankYouCampaignParameters } from '@src/domain/ThankYouCampaignParameters';

export interface ThankYouSettings {
numberOfDonors: string;
Expand Down
12 changes: 7 additions & 5 deletions dashboard/wpde-offline/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -80,11 +80,13 @@ <h2>Wikimedia Deutschland e. V.</h2>
endDate: '2024-12-31',
numberOfMembers: 73832,
isLateProgress: true,
dramaTextIsVisible: false,
thankYouCampaign: {
numberOfDonors: 350000,
progressBarPercentage: 100
}
dramaTextIsVisible: false
};

window.thankYouCampaignParameters = {
numberOfDonors: 350000,
numberOfMembers: 73832,
progressBarPercentage: 100
};

// drop-in replacement for dev-mode-wpde.js "banner" from bruce, without jQuery
Expand Down
8 changes: 0 additions & 8 deletions src/domain/CampaignParameters.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,12 +14,6 @@ export interface CampaignProjectionParameters {
averageAmountPerDonation: number
}

export interface ThankYouCampaignParameters {
numberOfDonors: number;
numberOfMembers: number;
progressBarPercentage: number;
}

/**
* Campaign parameters is a value object with string and number primitives used to pass values from
* the "environment" of the banner (i.e. wikipedia.org or wikipedia.de) to the dynamic text rendering.
Expand All @@ -41,6 +35,4 @@ export interface CampaignParameters {
isLateProgress: boolean,
dramaTextIsVisible: boolean,
urgencyMessageDaysLeft: number,

thankYouCampaign: ThankYouCampaignParameters
}
5 changes: 5 additions & 0 deletions src/domain/ThankYouCampaignParameters.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
export interface ThankYouCampaignParameters {
numberOfDonors: number;
numberOfMembers: number;
progressBarPercentage: number;
}
10 changes: 10 additions & 0 deletions src/page/PageWPDE.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import { Page } from '@src/page/Page';
import { BannerNotShownReasons } from './BannerNotShownReasons';
import { CampaignParameters } from '@src/domain/CampaignParameters';
import { ThankYouCampaignParameters } from '@src/domain/ThankYouCampaignParameters';
import { TrackingParameters } from '@src/domain/TrackingParameters';
import { getCampaignParameterOverride } from '@environment/CampaignParameterOverride';

Expand All @@ -9,6 +10,7 @@ export const showBannerClass = 'wmde-show-banner';

export interface WpdeWindow extends Window {
campaignParameters: CampaignParameters;
thankYouCampaignParameters: ThankYouCampaignParameters;
}

declare let window: WpdeWindow;
Expand Down Expand Up @@ -81,6 +83,14 @@ class PageWPDE implements Page {
return getCampaignParameterOverride( window.campaignParameters );
}

public getThankYouCampaignParameters(): ThankYouCampaignParameters {
if ( !window.thankYouCampaignParameters ) {
throw new Error( 'Campaign parameters are not set globally' );
}

return window.thankYouCampaignParameters;
}

public getTracking(): TrackingParameters {
return this.trackingParams;
}
Expand Down
20 changes: 14 additions & 6 deletions src/page/PageWPORG.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import { BannerNotShownReasons } from '@src/page/BannerNotShownReasons';
import { SizeIssueChecker } from '@src/utils/SizeIssueChecker/SizeIssueChecker';
import { Vector2 } from '@src/utils/Vector2';
import { CampaignParameters } from '@src/domain/CampaignParameters';
import { ThankYouCampaignParameters } from '@src/domain/ThankYouCampaignParameters';
import { getCampaignParameterOverride } from '@environment/CampaignParameterOverride';
import { TrackingParameters } from '@src/domain/TrackingParameters';
import { CloseChoices } from '@src/domain/CloseChoices';
Expand Down Expand Up @@ -172,17 +173,24 @@ class PageWPORG implements Page {
numberOfMembers: Number( data.numberOfMembers ),
isLateProgress: data.isLateProgress === 'true',
dramaTextIsVisible: data.dramaTextIsVisible === 'true',
urgencyMessageDaysLeft: Number( data.urgencyMessageDaysLeft ),
thankYouCampaign: {
numberOfDonors: Number( data.tyNumberOfDonors ),
numberOfMembers: Number( data.tyNumberOfMembers ),
progressBarPercentage: Number( data.tyProgressBarPercentage )
}
urgencyMessageDaysLeft: Number( data.urgencyMessageDaysLeft )
};

return getCampaignParameterOverride( campaignParameters );
}

public getThankYouCampaignParameters(): ThankYouCampaignParameters {
const data = this.getCampaignData();

const thankYouCampaignParameters = {
numberOfDonors: Number( data.tyNumberOfDonors ),
numberOfMembers: Number( data.tyNumberOfMembers ),
progressBarPercentage: Number( data.tyProgressBarPercentage )
};

return thankYouCampaignParameters;
}

public getTracking(): TrackingParameters {
if ( !this._trackingParameters ) {
const element = document.getElementById( centralNoticeBannerContainerId );
Expand Down
16 changes: 10 additions & 6 deletions test/fixtures/PageStub.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import { Page } from '@src/page/Page';
import { BannerNotShownReasons } from '@src/page/BannerNotShownReasons';
import { CampaignParameters } from '@src/domain/CampaignParameters';
import { ThankYouCampaignParameters } from '@src/domain/ThankYouCampaignParameters';
import { TrackingParameters } from '@src/domain/TrackingParameters';

export class PageStub implements Page {
Expand Down Expand Up @@ -70,12 +71,15 @@ export class PageStub implements Page {
startDate: '',
isLateProgress: false,
dramaTextIsVisible: false,
urgencyMessageDaysLeft: 0,
thankYouCampaign: {
progressBarPercentage: 0,
numberOfDonors: 0,
numberOfMembers: 0
}
urgencyMessageDaysLeft: 0
};
}

public getThankYouCampaignParameters(): ThankYouCampaignParameters {
return {
progressBarPercentage: 0,
numberOfDonors: 0,
numberOfMembers: 0
};
}

Expand Down
20 changes: 14 additions & 6 deletions test/integration/page/PageWPDE.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -22,12 +22,7 @@ describe( 'PageWPDE', function () {
startDate: '2023-11-01',
isLateProgress: false,
dramaTextIsVisible: false,
urgencyMessageDaysLeft: 10,
thankYouCampaign: {
progressBarPercentage: 80,
numberOfDonors: 42,
numberOfMembers: 23
}
urgencyMessageDaysLeft: 10
};
const page = new PageWPDE( tracking );

Expand All @@ -36,6 +31,19 @@ describe( 'PageWPDE', function () {
expect( retrievedCampaignParameters.startDate ).toBe( '2023-11-01' );
} );

it( 'returns campaign parameters for thankyou banners', () => {
window.thankYouCampaignParameters = {
progressBarPercentage: 80,
numberOfDonors: 42,
numberOfMembers: 23
};
const page = new PageWPDE( tracking );

const retrievedCampaignParameters = page.getThankYouCampaignParameters();

expect( retrievedCampaignParameters ).toEqual( window.thankYouCampaignParameters );
} );

it( 'throws error if campaign parameters are not set in global namespace', () => {
delete window.campaignParameters;
const page = new PageWPDE( tracking );
Expand Down
7 changes: 1 addition & 6 deletions test/unit/environment/prod/CampaignOverride.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -20,12 +20,7 @@ describe( 'getCampaignParameterOverride (prod version)', () => {
startDate: '',
isLateProgress: false,
dramaTextIsVisible: false,
urgencyMessageDaysLeft: 0,
thankYouCampaign: {
progressBarPercentage: 0,
numberOfDonors: 0,
numberOfMembers: 0
}
urgencyMessageDaysLeft: 0
};

const modifiedParams = getCampaignParameterOverride( params );
Expand Down
7 changes: 1 addition & 6 deletions test/unit/utils/DynamicContent/DynamicCampaignText.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -41,12 +41,7 @@ const campaignParameters: CampaignParameters = {
startDate: '2023-11-03',
urgencyMessageDaysLeft: 10,
isLateProgress: false,
dramaTextIsVisible: false,
thankYouCampaign: {
progressBarPercentage: 80,
numberOfDonors: 42,
numberOfMembers: 23
}
dramaTextIsVisible: false
};
const impressionCount: ImpressionCount = {
bannerCount: 42,
Expand Down

0 comments on commit d39bc5e

Please sign in to comment.