Make deleted post message count translated & pluralised

Fix marked posts having undefined marks if not OP
Update migration and fix editposts setting actions to non-array vs actions making it an array to fix modlog page array mapping/translation for actions
This commit is contained in:
Thomas Lynch
2023-02-08 21:54:26 +11:00
parent 7370ad834d
commit 2a9d48ac3b
11 changed files with 70 additions and 10 deletions
+2 -2
View File
@@ -34,8 +34,6 @@ window.addEventListener('settingsReady', function() { //after domcontentloaded
console.log('got mark post message', data);
const anchor = document.getElementById(data.postId);
const postContainer = anchor.nextSibling;
postContainer.classList.add('marked');
postContainer.setAttribute('data-mark', data.mark);
let dataMark = '';
switch (data.type) {
case 'delete':
@@ -47,6 +45,8 @@ window.addEventListener('settingsReady', function() { //after domcontentloaded
default:
return;
}
postContainer.classList.add('marked');
postContainer.setAttribute('data-mark', dataMark);
if (postContainer.classList.contains('op')) {
//moved or delete OPs then apply to whole thread
const postContainers = document.getElementsByClassName('post-container');
+12
View File
@@ -428,6 +428,18 @@
"one": "Deleted %s file from server",
"other": "Deleted %s files from server"
},
"Deleted %s posts": {
"one": "Deleted post",
"other": "Deleted %s posts"
},
"Deleted %s thread and %s post": "Deleted %s thread and %s post",
"Deleted %s thread and %s posts": "Deleted %s thread and %s posts",
"Deleted %s threads": {
"one": "Deleted thread",
"other": "Deleted %s threads"
},
"Deleted %s threads and %s post": "Deleted %s threads and %s post",
"Deleted %s threads and %s posts": "Deleted %s threads and %s posts",
"Deleted flags": "Deleted flags",
"Deleted news": "Deleted news",
"Denied %s appeals": "Denied %s appeals",
+12
View File
@@ -428,6 +428,18 @@
"one": "Deleted %s file from server",
"other": "Deleted %s files from server"
},
"Deleted %s posts": {
"one": "Deleted post",
"other": "Deleted %s posts"
},
"Deleted %s thread and %s post": "Deleted %s thread and %s post",
"Deleted %s thread and %s posts": "Deleted %s thread and %s posts",
"Deleted %s threads": {
"one": "Deleted thread",
"other": "Deleted %s threads"
},
"Deleted %s threads and %s post": "Deleted %s threads and %s post",
"Deleted %s threads and %s posts": "Deleted %s threads and %s posts",
"Deleted flags": "Deleted flags",
"Deleted news": "Deleted news",
"Denied %s appeals": "Denied %s appeals",
+12
View File
@@ -428,6 +428,18 @@
"one": "Deleted %s file from server",
"other": "Deleted %s files from server"
},
"Deleted %s posts": {
"one": "Deleted post",
"other": "Deleted %s posts"
},
"Deleted %s thread and %s post": "Deleted %s thread and %s post",
"Deleted %s thread and %s posts": "Deleted %s thread and %s posts",
"Deleted %s threads": {
"one": "Deleted thread",
"other": "Deleted %s threads"
},
"Deleted %s threads and %s post": "Deleted %s threads and %s post",
"Deleted %s threads and %s posts": "Deleted %s threads and %s posts",
"Deleted flags": "Deleted flags",
"Deleted news": "Deleted news",
"Denied %s appeals": "Denied %s appeals",
+7
View File
@@ -20,6 +20,13 @@ module.exports = async(db, redis) => {
'settings.language': 'en-GB',
},
});
await db.collection('modlog').updateMany({
'actions': 'Edit',
}, {
'$set': {
'actions': ['Edit'],
},
});
console.log('Clearing globalsettings cache');
await redis.deletePattern('globalsettings');
console.log('Clearing boards cache');
+1 -1
View File
@@ -172,7 +172,7 @@ module.exports = async (req, res, next) => {
const { message } = await deletePostsFiles(res.locals, false); //delete files, not just unlink
messages.push(message);
}
const { action, message } = await deletePosts(res.locals.posts, req.body.delete_ip_global ? null : req.params.board);
const { action, message } = await deletePosts(res.locals.posts, req.body.delete_ip_global ? null : req.params.board, res.locals);
messages.push(message);
if (action) {
if (req.body.delete) {
+1 -1
View File
@@ -166,7 +166,7 @@ module.exports = async (req, res) => {
//prune old threads
const prunedThreads = await Posts.pruneThreads(res.locals.board);
if (prunedThreads.length > 0) {
await deletePosts(prunedThreads, req.params.board);
await deletePosts(prunedThreads, req.params.board, res.locals);
//remove board page html/json for pages > newMaxPage
for (let i = newMaxPage+1; i <= oldMaxPage; i++) {
promises.push(remove(`${uploadDirectory}/html/${req.params.board}/${i}.html`));
+8 -1
View File
@@ -3,17 +3,24 @@
const { CustomPages, Accounts, Boards, Stats, Posts, Bans, Modlogs } = require(__dirname+'/../../db/')
, deletePosts = require(__dirname+'/deletepost.js')
, uploadDirectory = require(__dirname+'/../../lib/file/uploaddirectory.js')
, i18n = require(__dirname+'/../../lib/locale/locale.js')
, { remove } = require('fs-extra');
module.exports = async (uri, board) => {
//i18n mumbo jumbo
const deleteLocals = {};
i18n.init(deleteLocals);
const boardLanguage = board.settings.language;
deleteLocals.setLocale(deleteLocals, boardLanguage);
//delete board
await Boards.deleteOne(uri);
//get all posts (should probably project to get files for deletin and anything else necessary)
const allPosts = await Posts.allBoardPosts(uri);
if (allPosts.length > 0) {
//delete posts and decrement images
await deletePosts(allPosts, uri, true);
await deletePosts(allPosts, uri, deleteLocals, true);
}
await Promise.all([
Accounts.removeOwnedBoard(board.owner, uri), //remove board from owner account
+12 -2
View File
@@ -8,7 +8,7 @@ const uploadDirectory = require(__dirname+'/../../lib/file/uploaddirectory.js')
, deleteQuotes = require(__dirname+'/../../lib/post/deletequotes.js')
, { func: pruneFiles } = require(__dirname+'/../../schedules/tasks/prune.js');
module.exports = async (posts, board, all=false) => {
module.exports = async (posts, board, locals, all=false) => {
const { pruneImmediately } = config.get;
@@ -137,7 +137,17 @@ module.exports = async (posts, board, all=false) => {
}));
}
const { __n, __ } = locals;
//hooray!
return { action: deletedPosts > 0, message:`Deleted ${threads.length > 0 ? (threads.length + ' thread' + (threads.length > 1 ? 's' : '')) : ''} ${threads.length > 0 && deletedPosts-threads.length > 0 ? 'and' : ''} ${deletedPosts-threads.length > 0 ? (deletedPosts-threads.length + ' post' + (deletedPosts-threads.length > 1 ? 's' : '')) : ''}` };
return {
action: deletedPosts > 0,
//How in the fuck do I use __n with multiple arguments?
message: (threads.length > 0 && deletedPosts-threads.length > 0)
? __(`Deleted %s thread${threads.length>1?'s':''} and %s post${(deletedPosts-threads.length)>1?'s':''}`, threads.length, deletedPosts-threads.length)
: ((threads.length > 0)
? __n('Deleted %s threads', threads.length)
: __n('Deleted %s posts', deletedPosts))
};
};
+1 -1
View File
@@ -131,7 +131,7 @@ todo: handle some more situations
postId: post.postId,
thread: post.thread,
}],
actions: ModlogActions.EDIT,
actions: [ModlogActions.EDIT],
date: new Date(),
showUser: req.body.hide_name ? false : true,
message: req.body.log_message || null,
+2 -2
View File
@@ -524,7 +524,7 @@ module.exports = async (req, res) => {
'postId': -1,
}).skip(replyLimit).toArray();
if (cyclicOverflowPosts.length > 0) {
await deletePosts(cyclicOverflowPosts, req.params.board);
await deletePosts(cyclicOverflowPosts, req.params.board, res.locals);
const fileCount = cyclicOverflowPosts.reduce((acc, post) => {
return acc + (post.files ? post.files.length : 0);
}, 0);
@@ -659,7 +659,7 @@ module.exports = async (req, res) => {
//new thread, prunes any old threads before rebuilds
const prunedThreads = await Posts.pruneThreads(res.locals.board);
if (prunedThreads.length > 0) {
await deletePosts(prunedThreads, req.params.board);
await deletePosts(prunedThreads, req.params.board, res.locals);
}
if (!enableCaptcha) {
const endPage = Math.ceil(threadLimit/10);