diff --git a/gulp/res/js/forms.js b/gulp/res/js/forms.js index 573aebe0..1801df1d 100644 --- a/gulp/res/js/forms.js +++ b/gulp/res/js/forms.js @@ -123,7 +123,7 @@ class formHandler { } } this.form.reset(); - this.messageBox.dispatchEvent(new Event('input')); + this.updateMessageBox(); this.files = []; this.updateFilesText(); const captcha = this.form.querySelector('img'); @@ -163,6 +163,10 @@ class formHandler { xhr.send(postData); } + updateMessageBox() { + this.messageBox && this.messageBox.dispatchEvent(new Event('input')); + } + //remove a single file, unused atm removeFile(index) { const childNode = this.fileLabel.childNodes[index+1]; //+1 because first one is fileLabelText diff --git a/models/forms/uploadbanners.js b/models/forms/uploadbanners.js index c309fc96..391ea996 100644 --- a/models/forms/uploadbanners.js +++ b/models/forms/uploadbanners.js @@ -71,10 +71,19 @@ module.exports = async (req, res, next) => { deleteTempFiles(req).catch(e => console.error); + // no new banners + if (filenames.length === 0) { + return dynamicResponse(req, res, 400, 'message', { + 'title': 'Bad request', + 'message': `Banner${res.locals.numFiles > 1 ? 's' : ''} already exist${res.locals.numFiles > 1 ? '' : 's'}`, + 'redirect': redirect + }); + } + // add banners to the db await Boards.addBanners(req.params.board, filenames); - //add banners to board in memory + // add banners to board in memory res.locals.board.banners = res.locals.board.banners.concat(filenames); if (filenames.length > 0) { @@ -87,7 +96,7 @@ module.exports = async (req, res, next) => { }); } - return res.render('message', { + return dynamicResponse(req, res, 200, 'message', { 'title': 'Success', 'message': `Uploaded ${filenames.length} new banners.`, 'redirect': redirect