0
Fork 0
mirror of https://github.com/TryGhost/Ghost.git synced 2025-02-17 23:44:39 -05:00

🐛 Fixed member filtering on newsletter subscription status (#17583)

fixes https://github.com/TryGhost/Product/issues/3684

The `nql` used for filtering newsletter members needed tweaking to make
sure the provided query was parsed as a single `AND` query. This commit
also fixes an issue where on page reload the filters were not being
applied correctly
This commit is contained in:
Michael Barrett 2023-08-03 13:26:19 +01:00 committed by GitHub
parent 81ef2ade39
commit 262c6be70f
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -31,14 +31,21 @@ export const NEWSLETTERS_FILTER = (newsletterList) => {
const value = flt.value;
return (relation === 'is' && value === 'true') || (relation === 'is-not' && value === 'false')
? `newsletters.slug:${newsletter.slug}+email_disabled:0`
: `newsletters.slug:-${newsletter.slug},email_disabled:1`;
? `(newsletters.slug:${newsletter.slug}+email_disabled:0)`
: `(newsletters.slug:-${newsletter.slug},email_disabled:1)`;
},
parseNqlFilter: (flt) => {
if (!flt['newsletters.slug']) {
const comparator = flt.$and || flt.$or;
if (!comparator || comparator.length !== 2) {
return;
}
let value = flt['newsletters.slug'];
if (!comparator[0]['newsletters.slug'] || comparator[1].email_disabled === undefined) {
return;
}
let value = comparator[0]['newsletters.slug'];
let invert = false;
if (typeof value === 'object') {
if (!value.$ne) {