mirror of https://gitgud.io/fatchan/jschan.git
parent
b42a7eafdf
commit
f4f5d2c34f
15 changed files with 199 additions and 40 deletions
@ -0,0 +1,34 @@ |
||||
'use strict'; |
||||
|
||||
const uuidv4 = require('uuid/v4') |
||||
, path = require('path') |
||||
, Posts = require(__dirname+'/../../db-models/posts.js') |
||||
|
||||
module.exports = async (req, res, numFiles) => { |
||||
|
||||
// get the post that we are trying to edit
|
||||
let post; |
||||
try { |
||||
post = await Posts.getPost(req.params.board, req.body.id, true); |
||||
} catch (err) { |
||||
console.error(err); |
||||
return res.status(500).render('error'); |
||||
} |
||||
if (!thread || thread.thread != null) { |
||||
return res.status(400).render('message', { |
||||
'title': 'Bad request', |
||||
'message': 'Post does not exist.', |
||||
'redirect': redirect |
||||
}); |
||||
} |
||||
|
||||
// sticky, lock, sage, spoiler, etc
|
||||
for (let i = 0; i < req.body.actions.length; i++) { |
||||
|
||||
} |
||||
|
||||
const post = await Posts.updateOne(req.params.board, data) |
||||
const successRedirect = `/${req.params.board}/thread/${req.body.thread || post.insertedId}`; |
||||
|
||||
return res.redirect(successRedirect); |
||||
} |
@ -0,0 +1,22 @@ |
||||
'use strict'; |
||||
|
||||
const Posts = require(__dirname+'/../../db-models/posts.js'); |
||||
|
||||
module.exports = async (req, res) => { |
||||
|
||||
try { |
||||
//push the report to all checked posts
|
||||
await Posts.reportMany(req.params.board, req.body.checked, req.body.report); |
||||
} catch (err) { |
||||
console.error(err); |
||||
return res.status(500).render('error'); |
||||
} |
||||
|
||||
//hooray!
|
||||
return res.render('message', { |
||||
'title': 'Success', |
||||
'message': `Reported post(s) successfully`, |
||||
'redirect': `/${req.params.board}` |
||||
}); |
||||
|
||||
} |
@ -1,10 +1,21 @@ |
||||
'use strict'; |
||||
|
||||
module.exports = (req, res) => { |
||||
const Posts = require(__dirname+'/../../db-models/posts.js'); |
||||
|
||||
module.exports = async (req, res) => { |
||||
|
||||
let posts; |
||||
try { |
||||
posts = await Posts.getReports(req.params.board); |
||||
} catch (err) { |
||||
console.error(err); |
||||
return res.status(500).render('error'); |
||||
} |
||||
|
||||
//render the page
|
||||
res.render('manage', { |
||||
csrf: req.csrfToken() |
||||
csrf: req.csrfToken(), |
||||
posts: posts |
||||
}); |
||||
|
||||
} |
||||
|
@ -0,0 +1,5 @@ |
||||
section.delete-wrapper |
||||
p Report OR delete selected posts |
||||
input#report(type='report', name='report', placeholder='report reason' autocomplete='off') |
||||
input#password(type='password', name='password', placeholder='password (for deletion)' autocomplete='off') |
||||
input(type='submit', value='submit') |
@ -1,3 +1,5 @@ |
||||
nav.navbar |
||||
a.nav-item(href='/') Home |
||||
a.nav-item(href='/login') Login |
||||
if board |
||||
a.nav-item(href=`/${board._id}/manage`) Manage Board |
||||
|
@ -1,7 +1,22 @@ |
||||
extends ../layout.pug |
||||
include ../mixins/post.pug |
||||
|
||||
block head |
||||
title Login |
||||
|
||||
block content |
||||
p dummy manage page |
||||
h1.board-title /#{board._id}/ - #{board.name} |
||||
h4.board-description Management Panel |
||||
hr(size=1) |
||||
form(action='/forms/board/'+board._id+'/posts' method='POST' enctype='application/x-www-form-urlencoded') |
||||
input(type='hidden' name='_csrf' value=csrf) |
||||
if posts.length === 0 |
||||
p No posts. |
||||
hr(size=1) |
||||
for post in posts |
||||
section.thread |
||||
+post(board, post) |
||||
hr(size=1) |
||||
section.delete-wrapper |
||||
input(type='submit', value='delete') |
||||
|
||||
|
Loading…
Reference in new issue