import DateUtils from '../../tools/utilities/DateUtils'; var express = require('express'); var router = express.Router(); var Models = require('../../models'); var hljs = require('highlight.js/lib/highlight'); var hljs_md = require('highlight.js/lib/languages/markdown'); hljs.registerLanguage('markdown', hljs_md); var Sequelize = require('sequelize'); const Op = Sequelize.Op; const dateUtils = new DateUtils(); //-------------------------- // POSTS //-------------------------- router.get('/:page?', function(req, res) { var pageNum = req.params.page; if (pageNum == "" || pageNum == null) pageNum = 1; var offset = ((pageNum * 5) - 5); if (req.session.user) { Models.FreshPost.findAll( { order: [ ['id', 'DESC'] ] }).then(function(posts) { let filtered = []; for (let index = 0; index < posts.length; index++) { let item = posts[index].post; if (typeof item.deleted == 'undefined' || item.deleted == false) { filtered.push(posts[index]) } else { continue } } var count = Math.round(filtered.length / 6); var pageItems = []; var itemLimit = 6; var rangeStart = (pageNum * itemLimit) - itemLimit; for (var i = 0; i < itemLimit; i++) { try { if (filtered[i + rangeStart].id != null) { pageItems.push(filtered[i + rangeStart]); } } catch (e) { //console.log("NO POST", e) } } res.render('dash/posts-index', { title: 'Dashbord | Posts', mode: 'admin', welcome: "Your Posts", items: pageItems, page_index: pageNum, page_count: count, user_status: true }); }).then(function(value) { //console.log(value); }).catch(function(err) { //next(err); }) } else { res.redirect('/@/dashboard'); } }); //-------------------------- // BLOG POST ADD DISPLAY //-------------------------- router.get('/add/new', function(req, res) { if (req.session.user) { res.render('dash/post-edit', { title: 'Make New Post', mode: 'admin', date: dateUtils.getDate('year', new Date()) + "-" + dateUtils.getDate('month', new Date()) + "-" + dateUtils.getDate('day', new Date()), status: ['false', 'false', 'false'], edit: false }); } else { res.redirect('/@/dashboard'); } }); //-------------------------- // BLOG POST EDIT DISPLAY //-------------------------- router.get('/edit/:id', function(req, res) { if (req.session.user) { Models.FreshPost.findOne( { where: { "post": { [Op.contains]: { uuid: req.params.id } } } }).then(item => { let featured = 'null'; if (item.post.feature != null || item.post.feature != '') featured = item.post.feature.substr(8, item.post.feature.length); let pretty = hljs.highlight('markdown', item.post.plaintext).value; let sexydate = dateUtils.getDate('year', item.post.created) + "-" + dateUtils.getDate('month', item.post.created) + "-" + dateUtils.getDate('day', item.post.created) res.render('dash/post-edit', { id: item.id, title: 'Edit Post', mode: 'admin', post: item.post, date: sexydate, colored: pretty, html: item.post.plaintext, feature: featured, status: [String(item.post.page), String(item.post.featured), String(item.post.published)], edit: true }); }).then(function(value) { //console.log("VALUE: " + value); }).catch(function(err) { //console.log(err); }) } else { res.redirect('/@/dashboard'); } }); module.exports = router;