boardlist and webring sorting improvements and index changes

merge-requests/208/head
fatchan 5 years ago
parent adb64a9ee7
commit fcab493422
  1. 15
      db/webring.js
  2. 11
      models/pages/boardlist.js
  3. 5
      views/pages/boardlist.pug

@ -15,8 +15,21 @@ module.exports = {
{ tags: filter.search }
]
}
const addedSort = {};
if (sort.ips) {
addedSort['uniqueUsers'] = sort.ips
}
if (sort.pph) {
addedSort['postsPerHour'] = sort.pph
}
if (sort.sequence_value) {
addedSort['totalPosts'] = sort.sequence_value
}
if (sort.lastPostTimestamp) {
addedSort['lastPostTimestamp'] = sort.lastPostTimestamp
}
return db.find(addedFilter)
.sort(sort)
.sort(addedSort)
.skip(skip)
.limit(limit)
.toArray();

@ -21,11 +21,18 @@ module.exports = async (req, res, next) => {
}
const offset = (page-1) * limit;
let sort;
const direction = req.query.direction && req.query.direction === '1' ? 1 : -1;
let sort
if (req.query.sort && req.query.sort === 'activity') {
sort = {
'lastPostTimestamp': -1
'lastPostTimestamp': direction
}
} else {
sort = {
'ips': direction,
'pph': direction,
'sequence_value': direction
};
}
let filter = {};

@ -17,6 +17,11 @@ block content
select(name='sort')
option(value='default') Users, PPH, Posts
option(value='activity' selected=query.sort === 'activity') Activity
.row
.label Order
select(name='direction')
option(value='-1') Descending
option(value='1' selected=query.direction === '1') Ascending
input(type='submit', value='Filter')
if localBoards && localBoards.length > 0
h4.board-description Local Boards

Loading…
Cancel
Save