From e568169167af1d4d007a39eade1b6855a266a3ef Mon Sep 17 00:00:00 2001 From: Daniel Date: Thu, 23 Jan 2025 13:28:09 -0500 Subject: [PATCH 1/2] refactored loop in flags.js --- src/flags.js | 42 ++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 40 insertions(+), 2 deletions(-) diff --git a/src/flags.js b/src/flags.js index 00bce1d9bd..9c4c3abb60 100644 --- a/src/flags.js +++ b/src/flags.js @@ -744,10 +744,43 @@ Flags.update = async function (flagId, uid, changeset) { // Retrieve existing flag data to compare for history-saving/reference purposes const tasks = []; + // for (const prop of Object.keys(changeset)) { + // if (current[prop] === changeset[prop]) { + // delete changeset[prop]; + // } else if (prop === 'state') { + // if (!Flags._states.has(changeset[prop])) { + // delete changeset[prop]; + // } else { + // tasks.push(db.sortedSetAdd(`flags:byState:${changeset[prop]}`, now, flagId)); + // tasks.push(db.sortedSetRemove(`flags:byState:${current[prop]}`, flagId)); + // if (changeset[prop] === 'resolved' && meta.config['flags:actionOnResolve'] === 'rescind') { + // tasks.push(rescindNotifications(`flag:${current.type}:${current.targetId}`)); + // } + // if (changeset[prop] === 'rejected' && meta.config['flags:actionOnReject'] === 'rescind') { + // tasks.push(rescindNotifications(`flag:${current.type}:${current.targetId}`)); + // } + // } + // } else if (prop === 'assignee') { + // if (changeset[prop] === '') { + // tasks.push(db.sortedSetRemove(`flags:byAssignee:${changeset[prop]}`, flagId)); + // /* eslint-disable-next-line */ + // } else if (!await isAssignable(parseInt(changeset[prop], 10))) { + // delete changeset[prop]; + // } else { + // tasks.push(db.sortedSetAdd(`flags:byAssignee:${changeset[prop]}`, now, flagId)); + // tasks.push(notifyAssignee(changeset[prop])); + // } + // } + // } + for (const prop of Object.keys(changeset)) { if (current[prop] === changeset[prop]) { delete changeset[prop]; - } else if (prop === 'state') { + } + } + + for (const prop of Object.keys(changeset)) { + if (prop === 'state') { if (!Flags._states.has(changeset[prop])) { delete changeset[prop]; } else { @@ -760,7 +793,11 @@ Flags.update = async function (flagId, uid, changeset) { tasks.push(rescindNotifications(`flag:${current.type}:${current.targetId}`)); } } - } else if (prop === 'assignee') { + } + } + + for (const prop of Object.keys(changeset)) { + if (prop === 'assignee') { if (changeset[prop] === '') { tasks.push(db.sortedSetRemove(`flags:byAssignee:${changeset[prop]}`, flagId)); /* eslint-disable-next-line */ @@ -772,6 +809,7 @@ Flags.update = async function (flagId, uid, changeset) { } } } + if (!Object.keys(changeset).length) { return; From d558d0e2c918a604bdbb58bc96bcc5af5be9d1e4 Mon Sep 17 00:00:00 2001 From: Daniel Date: Thu, 23 Jan 2025 13:38:23 -0500 Subject: [PATCH 2/2] src/flags.js mods to for loop in flags.update --- src/flags.js | 31 ------------------------------- 1 file changed, 31 deletions(-) diff --git a/src/flags.js b/src/flags.js index 9c4c3abb60..abc6220ef7 100644 --- a/src/flags.js +++ b/src/flags.js @@ -744,41 +744,12 @@ Flags.update = async function (flagId, uid, changeset) { // Retrieve existing flag data to compare for history-saving/reference purposes const tasks = []; - // for (const prop of Object.keys(changeset)) { - // if (current[prop] === changeset[prop]) { - // delete changeset[prop]; - // } else if (prop === 'state') { - // if (!Flags._states.has(changeset[prop])) { - // delete changeset[prop]; - // } else { - // tasks.push(db.sortedSetAdd(`flags:byState:${changeset[prop]}`, now, flagId)); - // tasks.push(db.sortedSetRemove(`flags:byState:${current[prop]}`, flagId)); - // if (changeset[prop] === 'resolved' && meta.config['flags:actionOnResolve'] === 'rescind') { - // tasks.push(rescindNotifications(`flag:${current.type}:${current.targetId}`)); - // } - // if (changeset[prop] === 'rejected' && meta.config['flags:actionOnReject'] === 'rescind') { - // tasks.push(rescindNotifications(`flag:${current.type}:${current.targetId}`)); - // } - // } - // } else if (prop === 'assignee') { - // if (changeset[prop] === '') { - // tasks.push(db.sortedSetRemove(`flags:byAssignee:${changeset[prop]}`, flagId)); - // /* eslint-disable-next-line */ - // } else if (!await isAssignable(parseInt(changeset[prop], 10))) { - // delete changeset[prop]; - // } else { - // tasks.push(db.sortedSetAdd(`flags:byAssignee:${changeset[prop]}`, now, flagId)); - // tasks.push(notifyAssignee(changeset[prop])); - // } - // } - // } for (const prop of Object.keys(changeset)) { if (current[prop] === changeset[prop]) { delete changeset[prop]; } } - for (const prop of Object.keys(changeset)) { if (prop === 'state') { if (!Flags._states.has(changeset[prop])) { @@ -809,8 +780,6 @@ Flags.update = async function (flagId, uid, changeset) { } } } - - if (!Object.keys(changeset).length) { return; }