implemented admin post filtering

This commit is contained in:
Ro 2019-03-01 17:48:05 -05:00
parent 57684e7a27
commit c2290a2e26
8 changed files with 92 additions and 50 deletions

View file

@ -12,7 +12,7 @@
"no-class-assign": 2, "no-class-assign": 2,
"no-compare-neg-zero": 2, "no-compare-neg-zero": 2,
"no-cond-assign": 2, "no-cond-assign": 2,
"no-console": 2, "no-console": 1,
"no-const-assign": 2, "no-const-assign": 2,
"no-constant-condition": 2, "no-constant-condition": 2,
"no-control-regex": 1, "no-control-regex": 1,

View file

@ -11,9 +11,11 @@ const dateUtils = new DateUtils();
//-------------------------- //--------------------------
// POSTS // POSTS
//-------------------------- //--------------------------
router.get('/:page?', function(req, res) { router.get('/:filter?/:page?', function(req, res) {
var pageNum = req.params.page; var pageNum = req.params.page;
var filter = req.params.filter;
if (pageNum == '' || pageNum == null) pageNum = 1; if (pageNum == '' || pageNum == null) pageNum = 1;
if (filter == '' || filter == null) filter = 'all';
if (req.session.user) { if (req.session.user) {
Models.FreshPost.findAll({ Models.FreshPost.findAll({
order: [['id', 'DESC']] order: [['id', 'DESC']]
@ -35,14 +37,26 @@ router.get('/:page?', function(req, res) {
deleted.push(posts[index]); deleted.push(posts[index]);
} }
} }
var count = Math.round(all.length / 6); var filtered;
switch (filter) {
case 'published':
filtered = published;
break;
case 'deleted':
filtered = deleted;
break;
default:
filtered = all;
break;
}
var count = Math.round(filtered.length / 6);
var pageItems = []; var pageItems = [];
var itemLimit = 6; var itemLimit = 6;
var rangeStart = pageNum * itemLimit - itemLimit; var rangeStart = pageNum * itemLimit - itemLimit;
for (var i = 0; i < itemLimit; i++) { for (var i = 0; i < itemLimit; i++) {
try { try {
if (all[i + rangeStart].id != null) { if (filtered[i + rangeStart].id != null) {
pageItems.push(all[i + rangeStart]); pageItems.push(filtered[i + rangeStart]);
} }
} catch (e) { } catch (e) {
//console.log("NO POST", e) //console.log("NO POST", e)
@ -62,6 +76,7 @@ router.get('/:page?', function(req, res) {
}, },
page_index: pageNum, page_index: pageNum,
page_count: count, page_count: count,
postFilter: filter,
user_status: true user_status: true
}); });
}) })

View file

@ -1614,6 +1614,10 @@ svg.icons {
z-index: 10; z-index: 10;
position: relative; position: relative;
} }
.main-container section header #header-wrapper #header-one #the-logo,
.main-container section header #header-wrapper #header-two #the-logo {
width: 40px;
}
.main-container section header #header-wrapper #header-two { .main-container section header #header-wrapper #header-two {
text-align: right; text-align: right;
color: #f2f1ef; color: #f2f1ef;
@ -1622,12 +1626,12 @@ svg.icons {
text-decoration-color: #fc6399; text-decoration-color: #fc6399;
} }
.main-container section header #header-wrapper #header-two label#the-title { .main-container section header #header-wrapper #header-two label#the-title {
font-family: 'Apercu-Mono';
font-size: 1.2em; font-size: 1.2em;
font-weight: 300; font-weight: 400;
color: #f5ab35; color: #f5ab35;
text-decoration: none; text-decoration: none;
display: block; display: block;
line-height: 0.8;
} }
.main-container section header #header-wrapper #header-two #dash-menu { .main-container section header #header-wrapper #header-two #dash-menu {
text-align: right; text-align: right;
@ -2165,6 +2169,10 @@ select {
margin-bottom: 10px; margin-bottom: 10px;
float: right; float: right;
} }
#post-index #post-index-wrapper #post-index-menu .current-filter {
color: #fc6399;
text-decoration-color: #b2cce5;
}
#post-index #post-index-wrapper #posts-list { #post-index #post-index-wrapper #posts-list {
margin: 20px 0 0 0; margin: 20px 0 0 0;
} }

File diff suppressed because one or more lines are too long

View file

@ -20,7 +20,7 @@ html(xmlns='http://www.w3.org/1999/xhtml', lang='en', xml:lang="en")
#header-wrapper.columns #header-wrapper.columns
#header-one.column #header-one.column
a(href="/@/dashboard") a(href="/@/dashboard")
img(src="/dash/assets/images/the-logo.svg") img#the-logo(src="/dash/assets/images/the-logo.svg")
#header-two.column #header-two.column
label#the-title= welcome label#the-title= welcome
-if(user_status) -if(user_status)

View file

@ -1,16 +1,23 @@
extends frame extends frame
block main-content block main-content
#post-index #post-index
#post-index-wrapper #post-index-wrapper
#post-index-menu #post-index-menu
a(href="#")= "All Posts ("+page_info.all+")" - if(postFilter=='all')
a.current-filter(href="/@/dashboard/posts/all")= "All Posts ("+page_info.all+")"
- else
a(href="/@/dashboard/posts/all")= "All Posts ("+page_info.all+")"
| . | .
a(href="#")= "Published ("+page_info.published+")" - if(postFilter=='published')
a.current-filter(href="/@/dashboard/posts/published")= "Published ("+page_info.published+")"
- else
a(href="/@/dashboard/posts/published")= "Published ("+page_info.published+")"
| . | .
a(href="#")= "Pages ("+page_info.pages+")" - if(postFilter=='deleted')
| . a.current-filter(href="/@/dashboard/posts/deleted")= "Deleted ("+page_info.deleted+")"
a(href="#")= "Deleted ("+page_info.deleted+")" - else
a(href="/@/dashboard/posts/deleted")= "Deleted ("+page_info.deleted+")"
a.add-new-post(href="/@/dashboard/posts/add/new") + Create New Post a.add-new-post(href="/@/dashboard/posts/add/new") + Create New Post
#posts-list #posts-list
- var index = 0; - var index = 0;
@ -20,20 +27,20 @@ block main-content
span= items[index].post.created span= items[index].post.created
div.post-bg(style="background: #fc6399 url("+items[index].post.feature.substr(8)+") no-repeat center center / cover") div.post-bg(style="background: #fc6399 url("+items[index].post.feature.substr(8)+") no-repeat center center / cover")
p= items[index].post.plaintext.substr(0, 200)+"..." p= items[index].post.plaintext.substr(0, 200)+"..."
- var next = parseInt(page_index, 10) + 1 - var next = parseInt(page_index, 10) + 1
- var prev = parseInt(page_index, 10) - 1 - var prev = parseInt(page_index, 10) - 1
- if(next > page_count) next = 1 - if(next > page_count) next = 1
- if(prev <= 0) prev = page_count - if(prev <= 0) prev = page_count
br br
a.page-btns(href="/@/dashboard/posts/"+prev) a.page-btns(href="/@/dashboard/posts/"+postFilter+"/"+prev)
svg(viewBox="0 0 20 20" class="icons") svg(viewBox="0 0 20 20" class="icons")
use(xlink:href='/dash/assets/images/sprite.svg#entypo-chevron-left') use(xlink:href='/dash/assets/images/sprite.svg#entypo-chevron-left')
span.paginate= "PAGE "+page_index+" OF "+page_count span.paginate= "PAGE "+page_index+" OF "+page_count
a.page-btns(href="/@/dashboard/posts/"+next) a.page-btns(href="/@/dashboard/posts/"+postFilter+"/"+next)
svg(viewBox="0 0 20 20" class="icons") svg(viewBox="0 0 20 20" class="icons")
use(xlink:href='/dash/assets/images/sprite.svg#entypo-chevron-right') use(xlink:href='/dash/assets/images/sprite.svg#entypo-chevron-right')

View file

@ -5,10 +5,13 @@
#post-index-wrapper #post-index-wrapper
padding 0.75rem padding 0.75rem
#post-index-menu #post-index-menu
color $white color $white
a a
text-decoration-color: $highlight text-decoration-color $highlight
a.add-new-post a.add-new-post
display inline-block display inline-block
background $highlight background $highlight
@ -19,41 +22,49 @@
margin-bottom 10px margin-bottom 10px
float right float right
.current-filter
color $highlight
text-decoration-color $secondary
#posts-list #posts-list
margin 20px 0 0 0 margin 20px 0 0 0
a.post-link
background $white a.post-link
background $white
display inline-block display inline-block
vertical-align top vertical-align top
width 100% width 100%
text-decoration none text-decoration none
margin 0 0 20px 0 margin 0 0 20px 0
border-radius: 3px border-radius 3px
color $primary - 60% color $primary - 60%
label label
font-size 1.3em font-size 1.3em
font-weight: 500 font-weight 500
padding 10px padding 10px
display inline-block display inline-block
vertical-align: top vertical-align top
width: 45% width 45%
span span
display inline-block display inline-block
vertical-align: top vertical-align top
font-size 0.8em font-size 0.8em
font-family 'Apercu-Mono' font-family 'Apercu-Mono'
width: 50% width 50%
text-align: right text-align right
padding 10px padding 10px
div.post-bg div.post-bg
width: 100% width 100%
height 350px height 350px
background-color: $highlight background-color $highlight
p p
padding 10px padding 10px
font-size 1.2em font-size 1.2em
font-weight: 400 font-weight 400
#post-edit-index #post-edit-index
width 100% width 100%
@ -77,6 +88,7 @@
color $white color $white
padding 5px padding 5px
margin 0 0 5px 0 margin 0 0 5px 0
#post-date #post-date
background $primary - 10% background $primary - 10%
border-radius 0 3px 3px 0 border-radius 0 3px 3px 0
@ -116,24 +128,18 @@
display inline-block display inline-block
vertical-align top vertical-align top
text-align center text-align center
button[data-active='false'] button[data-active='false']
background $secondary background $secondary
svg svg
fill $primary fill $primary
button[data-active='true'] button[data-active='true']
background $tertiary background $tertiary
svg svg
fill $tertiary - 70% fill $tertiary - 70%
//.option-inactive
//.option-active
#post-meta #post-meta
#post_tags #post_tags

View file

@ -53,22 +53,28 @@ svg.icons
#header-one, #header-two #header-one, #header-two
z-index 10 z-index 10
position relative position relative
#the-logo
width 40px
#header-two #header-two
text-align right text-align right
color $white color $white
a a
text-decoration-color: $highlight text-decoration-color $highlight
label#the-title label#the-title
font-family 'Apercu-Mono'
font-size 1.2em font-size 1.2em
font-weight: 300 font-weight 400
color $tertiary color $tertiary
text-decoration none text-decoration none
display block display block
line-height 0.8
// word-break: break-all; // word-break: break-all;
#dash-menu #dash-menu
text-align: right text-align right
/* Mozilla based browsers */ /* Mozilla based browsers */
::-moz-selection ::-moz-selection