search account username or baord URI on globalmanage accounts, and improve appearance

merge-requests/208/head
fatchan 5 years ago
parent a6db9e6ea5
commit d8873b450c
  1. 12
      db/accounts.js
  2. 2
      models/pages/boardlist.js
  3. 26
      models/pages/globalmanage/accounts.js
  4. 79
      views/pages/globalmanageaccounts.pug

@ -16,8 +16,12 @@ module.exports = {
});
},
count: () => {
return db.estimatedDocumentCount();
count: (filter) => {
if (filter) {
return db.countDocuments(filter);
} else {
return db.estimatedDocumentCount();
}
},
findOne: (username) => {
@ -48,8 +52,8 @@ module.exports = {
});
},
find: (skip=0, limit=0) => {
return db.find({}, {
find: (filter, skip=0, limit=0) => {
return db.find(filter, {
'projection': {
'passwordHash': 0
}

@ -11,7 +11,7 @@ module.exports = async (req, res, next) => {
const isGlobalStaff = res.locals.permLevel <= 1;
const { page, offset, queryString } = pageQueryConverter(req.query, limit);
const direction = req.query.direction && req.query.direction === 'asc' ? 1 : -1;
let sort
let sort;
if (req.query.sort && req.query.sort === 'activity') {
sort = {
'lastPostTimestamp': direction

@ -6,13 +6,30 @@ const { Accounts } = require(__dirname+'/../../../db/')
module.exports = async (req, res, next) => {
const { page, offset } = pageQueryConverter(req.query, limit);
const { page, offset, queryString } = pageQueryConverter(req.query, limit);
let filter = {};
const username = req.query.username;
if (username && !Array.isArray(username)) {
filter['_id'] = username;
}
const uri = req.query.uri;
if (uri && !Array.isArray(uri)) {
filter['$or'] = [
{
'ownedBoards': uri
},
{
'modBoards': uri
},
];
}
let accounts, maxPage;
try {
[accounts, maxPage] = await Promise.all([
Accounts.find(offset, limit),
Accounts.count(),
Accounts.find(filter, offset, limit),
Accounts.count(filter),
]);
maxPage = Math.ceil(maxPage/limit);
} catch (err) {
@ -21,6 +38,9 @@ module.exports = async (req, res, next) => {
res.render('globalmanageaccounts', {
csrf: req.csrfToken(),
queryString,
username,
uri,
accounts,
page,
maxPage,

@ -10,44 +10,57 @@ block content
br
+globalmanagenav('accounts')
hr(size=1)
h4.no-m-p Accounts:
.form-wrapper.flexleft
form.form-post(action=`/forms/global/editaccounts` method='POST' enctype='application/x-www-form-urlencoded')
input(type='hidden' name='_csrf' value=csrf)
.table-container.flex-left
table
tr
th
th Username
th Auth Level
th Own Boards
th Mod Boards
for account in accounts
h4.no-m-p Search:
form.form-post.mv-5(action=`/globalmanage/accounts.html` method='GET')
input(type='hidden' value=page)
.row
.label Username
input(type='text' name='username' value=username)
.row
.label Board URI
input(type='text' name='uri' value=uri)
input(type='submit', value='Filter')
h4.no-m-p Accounts:
if accounts && accounts.length > 0
form.form-post(action=`/forms/global/editaccounts` method='POST' enctype='application/x-www-form-urlencoded')
input(type='hidden' name='_csrf' value=csrf)
.table-container.flex-left
table
tr
td: input(type='checkbox', name='checkedaccounts' value=account._id)
td #{account._id}
td #{account.authLevel}
td
if account.ownedBoards.length > 0
for b in account.ownedBoards
a(href=`/${b}/index.html`) /#{b}/
|
else
| -
td
if account.modBoards.length > 0
for b in account.modBoards
a(href=`/${b}/index.html`) /#{b}/
|
else
| -
.pages.mt-5
th
th Username
th Auth Level
th Own Boards
th Mod Boards
for account in accounts
tr
td: input(type='checkbox', name='checkedaccounts' value=account._id)
td #{account._id}
td #{account.authLevel}
td
if account.ownedBoards.length > 0
for b in account.ownedBoards
a(href=`/${b}/index.html`) /#{b}/
|
else
| -
td
if account.modBoards.length > 0
for b in account.modBoards
a(href=`/${b}/index.html`) /#{b}/
|
else
| -
.pages.mv-5
include ../includes/pages.pug
.row
.label Set Auth Level
input(type='number' name='auth_level')
.row
.label Delete Accounts
label.postform-style.ph-5
input(type='checkbox', name='delete_account', value='true')
.row
.label Set Auth Level
input(type='number' name='auth_level')
input(type='submit', value='apply')
else
p No results.

Loading…
Cancel
Save