Add frontend for subscriber engagement filters

MAILPOET-4989
This commit is contained in:
John Oleksowicz
2023-07-12 11:26:19 -05:00
committed by Aschepikov
parent 7b461d904b
commit ef7d19e49d
4 changed files with 54 additions and 0 deletions

View File

@ -65,6 +65,18 @@ export function validateSubscriber(formItems: WordpressRoleFormItem): boolean {
) {
return validateTextField(formItems);
}
if (
[
SubscriberActionTypes.SUBSCRIBER_LAST_ENGAGEMENT_DATE,
SubscriberActionTypes.SUBSCRIBER_LAST_PURCHASE_DATE,
SubscriberActionTypes.SUBSCRIBER_LAST_OPEN_DATE,
SubscriberActionTypes.SUBSCRIBER_LAST_CLICK_DATE,
SubscriberActionTypes.SUBSCRIBER_LAST_PAGE_VIEW_DATE,
].includes(formItems.action as SubscriberActionTypes)
) {
return validateDateField(formItems);
}
if (formItems.action === SubscriberActionTypes.SUBSCRIBED_VIA_FORM) {
return validateSubscribedViaForm(formItems);
}
@ -90,6 +102,11 @@ const componentsMap = {
[SubscriberActionTypes.SUBSCRIBER_LAST_NAME]: TextField,
[SubscriberActionTypes.SUBSCRIBER_EMAIL]: TextField,
[SubscriberActionTypes.SUBSCRIBED_VIA_FORM]: SubscribedViaForm,
[SubscriberActionTypes.SUBSCRIBER_LAST_ENGAGEMENT_DATE]: DateFields,
[SubscriberActionTypes.SUBSCRIBER_LAST_PURCHASE_DATE]: DateFields,
[SubscriberActionTypes.SUBSCRIBER_LAST_OPEN_DATE]: DateFields,
[SubscriberActionTypes.SUBSCRIBER_LAST_CLICK_DATE]: DateFields,
[SubscriberActionTypes.SUBSCRIBER_LAST_PAGE_VIEW_DATE]: DateFields,
};
export function SubscriberFields({ filterIndex }: FilterProps): JSX.Element {

View File

@ -22,6 +22,31 @@ export const SubscriberSegmentOptions = [
label: MailPoet.I18n.t('lastName').toLowerCase(),
group: SegmentTypes.WordPressRole,
},
{
value: SubscriberActionTypes.SUBSCRIBER_LAST_CLICK_DATE,
label: MailPoet.I18n.t('lastClickDate').toLowerCase(),
group: SegmentTypes.WordPressRole,
},
{
value: SubscriberActionTypes.SUBSCRIBER_LAST_ENGAGEMENT_DATE,
label: MailPoet.I18n.t('lastEngagementDate').toLowerCase(),
group: SegmentTypes.WordPressRole,
},
{
value: SubscriberActionTypes.SUBSCRIBER_LAST_OPEN_DATE,
label: MailPoet.I18n.t('lastOpenDate').toLowerCase(),
group: SegmentTypes.WordPressRole,
},
{
value: SubscriberActionTypes.SUBSCRIBER_LAST_PAGE_VIEW_DATE,
label: MailPoet.I18n.t('lastPageViewDate').toLowerCase(),
group: SegmentTypes.WordPressRole,
},
{
value: SubscriberActionTypes.SUBSCRIBER_LAST_PURCHASE_DATE,
label: MailPoet.I18n.t('lastPurchaseDate').toLowerCase(),
group: SegmentTypes.WordPressRole,
},
{
value: SubscriberActionTypes.MAILPOET_CUSTOM_FIELD,
label: MailPoet.I18n.t('mailpoetCustomField'),

View File

@ -27,6 +27,11 @@ export enum SubscriberActionTypes {
SUBSCRIBER_FIRST_NAME = 'subscriberFirstName',
SUBSCRIBER_LAST_NAME = 'subscriberLastName',
SUBSCRIBER_EMAIL = 'subscriberEmail',
SUBSCRIBER_LAST_CLICK_DATE = 'lastClickDate',
SUBSCRIBER_LAST_ENGAGEMENT_DATE = 'lastEngagementDate',
SUBSCRIBER_LAST_PURCHASE_DATE = 'lastPurchaseDate',
SUBSCRIBER_LAST_OPEN_DATE = 'lastOpenDate',
SUBSCRIBER_LAST_PAGE_VIEW_DATE = 'lastPageViewDate',
SUBSCRIBER_TAG = 'subscriberTag',
SUBSCRIBED_VIA_FORM = 'subscribedViaForm',
}

View File

@ -132,6 +132,13 @@
'lastName': __('Last name'),
'email': __('Email'),
'lastClickDate': __('Last click date'),
'lastEngagementDate': __('Last engagement date'),
'lastOpenDate': __('Last open date'),
'lastPageViewDate': __('Last page view date'),
'lastPurchaseDate': __('Last purchase date'),
'lastSendingDate': __('Last sending date'),
'before': _x('before', 'Meaning: "Subscriber subscribed before April"'),
'after': _x('after', 'Meaning: "Subscriber subscribed after April'),
'onOrBefore': __('on or before'),