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
req.session.destroy();
return res.render('message', {
'title': 'Success',
'message': 'You have been logged out successfully',

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

@ -26,7 +26,7 @@ module.exports = async (req, res, next, board, checkedPosts) => {
'ip': post.ip,
'reason': req.body.reason || 'No reason specified',
'board': board,
'post': req.body.delete ? null : post,
'post': req.body.preserve_post ? post : null,
'issuer': req.session.user.username,
'date': new Date(),
'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 res.render('message', {
'title': 'Success',
'message': `Welcome, ${username}`,
'redirect': '/'
});
return res.redirect('/login')
}

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

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

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

Loading…
Cancel
Save