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'; |
'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
|
//render the page
|
||||||
res.render('manage', { |
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 |
nav.navbar |
||||||
a.nav-item(href='/') Home |
a.nav-item(href='/') Home |
||||||
a.nav-item(href='/login') Login |
a.nav-item(href='/login') Login |
||||||
|
if board |
||||||
|
a.nav-item(href=`/${board._id}/manage`) Manage Board |
||||||
|
@ -1,7 +1,22 @@ |
|||||||
extends ../layout.pug |
extends ../layout.pug |
||||||
|
include ../mixins/post.pug |
||||||
|
|
||||||
block head |
block head |
||||||
title Login |
title Login |
||||||
|
|
||||||
block content |
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