From d17670c857966be25125db532b8ffb78841b91d0 Mon Sep 17 00:00:00 2001 From: fatchan Date: Thu, 23 Apr 2020 19:05:38 +1000 Subject: [PATCH] potential fix for dumb palememe --- gulp/res/js/forms.js | 57 ++++++++++++++++++++++------------------ models/forms/makepost.js | 3 ++- package.json | 2 +- 3 files changed, 35 insertions(+), 27 deletions(-) diff --git a/gulp/res/js/forms.js b/gulp/res/js/forms.js index 08d545d1..e6bf8d56 100644 --- a/gulp/res/js/forms.js +++ b/gulp/res/js/forms.js @@ -4,32 +4,39 @@ function removeModal() { } function doModal(data, postcallback) { - const modalHtml = modal({ modal: data }); - let checkInterval; - document.body.insertAdjacentHTML('afterbegin', modalHtml); - document.getElementById('modalclose').onclick = () => { - removeModal(); - clearInterval(checkInterval); - }; - document.getElementsByClassName('modal-bg')[0].onclick = () => { - removeModal(); - clearInterval(checkInterval); - }; - const modalframe = document.getElementById('modalframe'); - modalframe.onload = () => { - if (localStorage.getItem('theme') === 'default') { - const currentTheme = document.head.querySelector('#theme').href; - modalframe.contentDocument.styleSheets[1].ownerNode.href = currentTheme; - } - } - if (modalframe && postcallback) { - checkInterval = setInterval(() => { - if (modalframe && modalframe.contentDocument.title == 'Success') { - clearInterval(checkInterval); - removeModal(); - postcallback(); + try { + const modalHtml = modal({ modal: data }); + let checkInterval; + document.body.insertAdjacentHTML('afterbegin', modalHtml); + document.getElementById('modalclose').onclick = () => { + removeModal(); + clearInterval(checkInterval); + }; + document.getElementsByClassName('modal-bg')[0].onclick = () => { + removeModal(); + clearInterval(checkInterval); + }; + const modalframe = document.getElementById('modalframe'); + if (modalframe) { + //if theres a modal frame and user has default theme, style it + if (localStorage.getItem('theme') === 'default') { + modalframe.onload = () => { + const currentTheme = document.head.querySelector('#theme').href; + modalframe.contentDocument.styleSheets[1].ownerNode.href = currentTheme; + } } - }, 100); + if (postcallback) { + checkInterval = setInterval(() => { + if (modalframe && modalframe.contentDocument.title == 'Success') { + clearInterval(checkInterval); + removeModal(); + postcallback(); + } + }, 100); + } + } + } catch(e) { + console.error(e) } } diff --git a/models/forms/makepost.js b/models/forms/makepost.js index 0c7df534..a6e84d09 100644 --- a/models/forms/makepost.js +++ b/models/forms/makepost.js @@ -48,7 +48,8 @@ module.exports = async (req, res, next) => { maxFiles, forceAnon, replyLimit, disableReplySubject, threadLimit, ids, userPostSpoiler, pphTrigger, tphTrigger, triggerAction, captchaMode, lockMode, allowedFileTypes, flags } = res.locals.board.settings; - if ((lockMode === 0 || (lockMode === 1 && !req.body.thread)) && res.locals.permLevel >= 4) { + if ((lockMode === 2 || (lockMode === 1 && !req.body.thread)) //if board lock, or thread lock and its a new thread + && res.locals.permLevel >= 4) { //and not staff await deleteTempFiles(req).catch(e => console.error); return dynamicResponse(req, res, 400, 'message', { 'title': 'Bad request', diff --git a/package.json b/package.json index ec226bf5..3f401c6b 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "jschan", "version": "0.0.1", - "migrateVersion": "0.0.3", + "migrateVersion": "0.0.4", "description": "", "main": "server.js", "dependencies": {