From 8ea327f4888cab93cf4569c8af83dc25b3b4533b Mon Sep 17 00:00:00 2001 From: npgiano Date: Tue, 27 Jan 2026 16:46:35 -0500 Subject: [PATCH] Allow defining what EN page types TidyContact runs on --- packages/scripts/dist/interfaces/options.d.ts | 1 + packages/scripts/dist/tidycontact.d.ts | 1 + packages/scripts/dist/tidycontact.js | 12 ++++++++++++ packages/scripts/src/interfaces/options.ts | 1 + packages/scripts/src/tidycontact.ts | 14 ++++++++++++++ 5 files changed, 29 insertions(+) diff --git a/packages/scripts/dist/interfaces/options.d.ts b/packages/scripts/dist/interfaces/options.d.ts index 6386d60f..524e4345 100644 --- a/packages/scripts/dist/interfaces/options.d.ts +++ b/packages/scripts/dist/interfaces/options.d.ts @@ -51,6 +51,7 @@ export interface Options { }; TidyContact?: false | { cid?: string; + page_types?: ("DONATION" | "ECARD" | "SURVEY" | "EMAILTOTARGET" | "ADVOCACY" | "SUBSCRIBEFORM" | "EVENT" | "SUPPORTERHUB" | "UNSUBSCRIBE" | "TWEETPAGE" | "UNKNOWN")[]; record_field?: string; date_field?: string; status_field?: string; diff --git a/packages/scripts/dist/tidycontact.d.ts b/packages/scripts/dist/tidycontact.d.ts index 79236d0c..b52f2458 100644 --- a/packages/scripts/dist/tidycontact.d.ts +++ b/packages/scripts/dist/tidycontact.d.ts @@ -11,6 +11,7 @@ export declare class TidyContact { private countries_dropdown; private country_ip; constructor(); + private shouldRun; private loadOptions; private createFields; private createPhoneFields; diff --git a/packages/scripts/dist/tidycontact.js b/packages/scripts/dist/tidycontact.js index 50e60b1b..bfc7c08d 100644 --- a/packages/scripts/dist/tidycontact.js +++ b/packages/scripts/dist/tidycontact.js @@ -268,6 +268,10 @@ export class TidyContact { this.options = ENGrid.getOption("TidyContact"); if (this.options === false || !((_a = this.options) === null || _a === void 0 ? void 0 : _a.cid)) return; + if (!this.shouldRun()) { + this.logger.log("TidyContact is disabled on this page type"); + return; + } this.loadOptions(); if (!this.hasAddressFields() && !this.phoneEnabled()) { this.logger.log("No address fields found"); @@ -298,6 +302,14 @@ export class TidyContact { } } } + shouldRun() { + if (this.options && + this.options.page_types && + this.options.page_types.length > 0) { + return this.options.page_types.includes(ENGrid.getPageType()); + } + return true; + } loadOptions() { var _a, _b, _c, _d; if (this.options) { diff --git a/packages/scripts/src/interfaces/options.ts b/packages/scripts/src/interfaces/options.ts index 4638554d..ce43d648 100644 --- a/packages/scripts/src/interfaces/options.ts +++ b/packages/scripts/src/interfaces/options.ts @@ -57,6 +57,7 @@ export interface Options { | false | { cid?: string; // Client ID + page_types?: ("DONATION" | "ECARD" | "SURVEY" | "EMAILTOTARGET" | "ADVOCACY" | "SUBSCRIBEFORM" | "EVENT" | "SUPPORTERHUB" | "UNSUBSCRIBE" | "TWEETPAGE" | "UNKNOWN")[]; // Page Types to enable TidyContact on, if left blank will run on all page types record_field?: string; // TidyContact Record date_field?: string; // TidyContact Date status_field?: string; // TidyContact Status diff --git a/packages/scripts/src/tidycontact.ts b/packages/scripts/src/tidycontact.ts index 5b6cd01c..6b1b9e7b 100644 --- a/packages/scripts/src/tidycontact.ts +++ b/packages/scripts/src/tidycontact.ts @@ -269,6 +269,10 @@ export class TidyContact { constructor() { this.options = ENGrid.getOption("TidyContact") as Options["TidyContact"]; if (this.options === false || !this.options?.cid) return; + if (!this.shouldRun()) { + this.logger.log("TidyContact is disabled on this page type"); + return; + } this.loadOptions(); if (!this.hasAddressFields() && !this.phoneEnabled()) { this.logger.log("No address fields found"); @@ -309,6 +313,16 @@ export class TidyContact { } } } + private shouldRun(): boolean { + if ( + this.options && + this.options.page_types && + this.options.page_types.length > 0 + ) { + return this.options.page_types.includes(ENGrid.getPageType()); + } + return true; + } private loadOptions() { if (this.options) { if (!this.options.address_fields) {