option to preserve post in ban + show bans on manage page

merge-requests/208/head
fatchan 5 years ago
parent e8be5ea7b7
commit 529bc5e91d
  1. 1
      controllers/pages.js
  2. 6
      db-models/bans.js
  3. 2
      models/forms/ban-poster.js
  4. 6
      models/forms/register.js
  5. 8
      models/pages/manage.js
  6. 2
      server.js
  7. 19
      static/css/style.css

@ -30,7 +30,6 @@ router.get('/logout', isLoggedIn, (req, res, next) => {
//remove session //remove session
req.session.destroy(); req.session.destroy();
return res.render('message', { return res.render('message', {
'title': 'Success', 'title': 'Success',
'message': 'You have been logged out successfully', 'message': 'You have been logged out successfully',

@ -16,6 +16,12 @@ module.exports = {
}).toArray(); }).toArray();
}, },
getBoardBans: (board) => {
return db.find({
'board': board,
}).toArray();
},
insertOne: (ban) => { insertOne: (ban) => {
return db.insertOne(ban); return db.insertOne(ban);
}, },

@ -26,7 +26,7 @@ module.exports = async (req, res, next, board, checkedPosts) => {
'ip': post.ip, 'ip': post.ip,
'reason': req.body.reason || 'No reason specified', 'reason': req.body.reason || 'No reason specified',
'board': board, 'board': board,
'post': req.body.delete ? null : post, 'post': req.body.preserve_post ? post : null,
'issuer': req.session.user.username, 'issuer': req.session.user.username,
'date': new Date(), 'date': new Date(),
'expireAt': new Date((new Date).getTime() + (72*1000*60*60)) // 72h ban 'expireAt': new Date((new Date).getTime() + (72*1000*60*60)) // 72h ban

@ -31,10 +31,6 @@ module.exports = async (req, res, next) => {
return next(err); return next(err);
} }
return res.render('message', { return res.redirect('/login')
'title': 'Success',
'message': `Welcome, ${username}`,
'redirect': '/'
});
} }

@ -1,12 +1,15 @@
'use strict'; 'use strict';
const Posts = require(__dirname+'/../../db-models/posts.js'); const Posts = require(__dirname+'/../../db-models/posts.js')
, Bans = require(__dirname+'/../../db-models/bans.js');
module.exports = async (req, res, next) => { module.exports = async (req, res, next) => {
let posts; let posts;
let bans;
try { try {
posts = await Posts.getReports(req.params.board); posts = await Posts.getReports(req.params.board);
bans = await Bans.getBoardBans(req.params.board);
} catch (err) { } catch (err) {
return next(err) return next(err)
} }
@ -14,7 +17,8 @@ module.exports = async (req, res, next) => {
//render the page //render the page
res.render('manage', { res.render('manage', {
csrf: req.csrfToken(), csrf: req.csrfToken(),
posts: posts posts: posts,
bans: bans || [],
}); });
} }

@ -53,7 +53,7 @@ const express = require('express')
// use pug view engine // use pug view engine
app.set('view engine', 'pug'); app.set('view engine', 'pug');
app.set('views', path.join(__dirname, 'views/pages')); app.set('views', path.join(__dirname, 'views/pages'));
// app.enable('view cache'); app.enable('view cache');
// static files // static files
app.use('/css', express.static(__dirname + '/static/css')); app.use('/css', express.static(__dirname + '/static/css'));

@ -13,6 +13,12 @@ object {
object-fit: scale-down; object-fit: scale-down;
} }
.board-header {
display: flex;
flex-direction: column;
align-items: center;
}
.catalog-tile-button { .catalog-tile-button {
width: 100%; width: 100%;
line-height: 30px; line-height: 30px;
@ -116,7 +122,7 @@ input, textarea {
} }
.action-wrapper { .action-wrapper {
align-items: center; /*align-items: center;*/
/*flex-direction: row;*/ /*flex-direction: row;*/
} }
@ -177,7 +183,7 @@ input textarea {
.board-title { .board-title {
color: #af0a0f; color: #af0a0f;
font: bolder; font: bolder 28px Tahoma;
letter-spacing: -2px; letter-spacing: -2px;
text-align: center; text-align: center;
margin: 0; margin: 0;
@ -256,6 +262,10 @@ input textarea {
border-right: 1px solid lightgray; border-right: 1px solid lightgray;
} }
.right {
float: right;
}
.nav-item:hover { .nav-item:hover {
box-shadow: inset 0 0 100px 100px rgba(255,255,255,.1); box-shadow: inset 0 0 100px 100px rgba(255,255,255,.1);
} }
@ -274,7 +284,6 @@ table, th, td {
} }
.boards-table { .boards-table {
font-size: 16pt;
margin: 0 auto; margin: 0 auto;
} }
@ -321,4 +330,8 @@ hr {
justify-content: space-evenly; justify-content: space-evenly;
} }
.boards-table {
width: 100%;
}
} }

Loading…
Cancel
Save