mirror of
https://github.com/NodeBB/NodeBB.git
synced 2026-02-27 17:11:14 +01:00
feat: wip, better digest handling (+ eventual digest resend logic) (#7995)
* feat: wip, better digest handling (+ eventual digest resend logic)
- await emailer.send call in digest.send method
- save send success to a new sorted set digest:{interval}:byUid
* feat: continuing work on digest tools
- Added ACP page to view digest settings and delivery times per user
* feat: added paginator and stub buttons for resending digest
* feat: wrapping up digest revamp
- New language strings in ACP digest page
- Client-side ACP script for digest ACP page
- Websocket call for ACP page to execute digests
- Broke out logic to retrieve user digest settings to getUsersInterval
* fix: minor cleanup
* fix: #8010 and some style suggestions from baris
* fix: resolve confusing comment
This commit is contained in:
@@ -42,6 +42,7 @@ SocketAdmin.analytics = {};
|
||||
SocketAdmin.logs = {};
|
||||
SocketAdmin.errors = {};
|
||||
SocketAdmin.uploads = {};
|
||||
SocketAdmin.digest = {};
|
||||
|
||||
SocketAdmin.before = async function (socket, method) {
|
||||
const isAdmin = await user.isAdministrator(socket.uid);
|
||||
@@ -352,4 +353,22 @@ SocketAdmin.uploads.delete = function (socket, pathToFile, callback) {
|
||||
fs.unlink(pathToFile, callback);
|
||||
};
|
||||
|
||||
SocketAdmin.digest.resend = async (socket, data) => {
|
||||
const uid = data.uid;
|
||||
const interval = data.action.startsWith('resend-') ? data.action.slice(7) : await userDigest.getUsersInterval(uid);
|
||||
|
||||
if (!interval && meta.config.dailyDigestFreq === 'off') {
|
||||
throw new Error('[[error:digest-not-enabled]]');
|
||||
}
|
||||
|
||||
if (uid) {
|
||||
await userDigest.execute({
|
||||
interval: interval || meta.config.dailyDigestFreq,
|
||||
subscribers: [uid],
|
||||
});
|
||||
} else {
|
||||
await userDigest.execute({ interval: interval });
|
||||
}
|
||||
};
|
||||
|
||||
require('../promisify')(SocketAdmin);
|
||||
|
||||
Reference in New Issue
Block a user