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 } { 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) return db.find(addedFilter)
.sort(sort) .sort(addedSort)
.skip(skip) .skip(skip)
.limit(limit) .limit(limit)
.toArray(); .toArray();

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

@ -17,6 +17,11 @@ block content
select(name='sort') select(name='sort')
option(value='default') Users, PPH, Posts option(value='default') Users, PPH, Posts
option(value='activity' selected=query.sort === 'activity') Activity 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') input(type='submit', value='Filter')
if localBoards && localBoards.length > 0 if localBoards && localBoards.length > 0
h4.board-description Local Boards h4.board-description Local Boards

Loading…
Cancel
Save