Skip to content

Commit

Permalink
feat: more fixes
Browse files Browse the repository at this point in the history
  • Loading branch information
barisusakli committed Oct 13, 2020
1 parent 40a05b7 commit 700e1e4
Show file tree
Hide file tree
Showing 4 changed files with 57 additions and 47 deletions.
2 changes: 1 addition & 1 deletion public/src/admin/manage/users.js
Expand Up @@ -347,7 +347,7 @@ define('admin/manage/users', [
});

function handleUserCreate() {
$('#createUser').on('click', function () {
$('[data-action="create"]').on('click', function () {
Benchpress.parse('admin/partials/create_user_modal', {}, function (html) {
var modal = bootbox.dialog({
message: html,
Expand Down
15 changes: 11 additions & 4 deletions src/controllers/admin/users.js
Expand Up @@ -22,11 +22,11 @@ usersController.index = async function (req, res) {
if (req.query.query) {
await usersController.search(req, res);
} else {
await newGet(req, res);
await getUsers(req, res);
}
};

async function newGet(req, res) {
async function getUsers(req, res) {
const sortDirection = req.query.sortDirection || 'desc';
const reverse = sortDirection === 'desc';

Expand All @@ -35,7 +35,7 @@ async function newGet(req, res) {
if (![50, 100, 250, 500].includes(resultsPerPage)) {
resultsPerPage = 50;
}
const sortBy = validator.escape(req.query.sortBy || 'joindate');
let sortBy = validator.escape(req.query.sortBy || '');
const filterBy = Array.isArray(req.query.filter) ? req.query.filter : [req.query.filter];
const start = Math.max(0, page - 1) * resultsPerPage;
const stop = start + resultsPerPage - 1;
Expand All @@ -49,13 +49,20 @@ async function newGet(req, res) {
flags: 'users:flags',
};

const set = [sortToSet[sortBy] || 'users:joindate'];
const set = [];
if (sortBy) {
set.push(sortToSet[sortBy]);
}
if (filterBy.includes('notvalidated')) {
set.push('users:notvalidated');
}
if (filterBy.includes('banned')) {
set.push('users:banned');
}
if (!set.length) {
set.push('users:online');
sortBy = 'online';
}
return set.length > 1 ? set : set[0];
}

Expand Down
85 changes: 44 additions & 41 deletions src/views/admin/manage/users.tpl
Expand Up @@ -2,31 +2,24 @@
<div class="col-lg-12">
<div class="clearfix">
<form class="form-inline pull-right">
<button id="createUser" class="btn btn-primary">[[admin/manage/users:new]]</button>
<!-- IF inviteOnly -->
<button component="user/invite" class="btn btn-success"><i class="fa fa-users"></i> [[admin/manage/users:invite]]</button>
<!-- ENDIF inviteOnly -->
<a target="_blank" href="{config.relative_path}/api/admin/users/csv" class="btn btn-primary">[[admin/manage/users:download-csv]]</a>
<div class="btn-group">
<button class="btn btn-default dropdown-toggle" data-toggle="dropdown" type="button">[[admin/manage/users:edit]] <span class="caret"></span></button>
<ul class="dropdown-menu dropdown-menu-right">
<li><a href="#" class="validate-email"><i class="fa fa-fw fa-check"></i> [[admin/manage/users:validate-email]]</a></li>
<li><a href="#" class="send-validation-email"><i class="fa fa-fw fa-mail-forward"></i> [[admin/manage/users:send-validation-email]]</a></li>
<li><a href="#" class="password-reset-email"><i class="fa fa-fw fa-key"></i> [[admin/manage/users:password-reset-email]]</a></li>
<li><a href="#" class="force-password-reset"><i class="fa fa-fw fa-unlock-alt"></i> [[admin/manage/users:force-password-reset]]</a></li>
<li><a href="#" class="manage-groups"><i class="fa fa-fw fa-users"></i> [[admin/manage/users:manage-groups]]</a></li>
<li class="divider"></li>
<li><a href="#" class="ban-user"><i class="fa fa-fw fa-gavel"></i> [[admin/manage/users:ban]]</a></li>
<li><a href="#" class="ban-user-temporary"><i class="fa fa-fw fa-clock-o"></i> [[admin/manage/users:temp-ban]]</a></li>
<li><a href="#" class="unban-user"><i class="fa fa-fw fa-comment-o"></i> [[admin/manage/users:unban]]</a></li>
<li><a href="#" class="reset-lockout"><i class="fa fa-fw fa-unlock"></i> [[admin/manage/users:reset-lockout]]</a></li>
<li class="divider"></li>
<li><a href="#" class="delete-user"><i class="fa fa-fw fa-trash-o"></i> [[admin/manage/users:delete]]</a></li>
<li><a href="#" class="delete-user-content"><i class="fa fa-fw fa-trash-o"></i> [[admin/manage/users:delete-content]]</a></li>
<li><a href="#" class="delete-user-and-content"><i class="fa fa-fw fa-trash-o"></i> [[admin/manage/users:purge]]</a></li>
</ul>
<div class="input-group">
<input type="text" class="form-control" placeholder="[[global:search]]" id="user-search" value="{query}">
<span class="input-group-addon search-button"><i class="fa fa-search"></i></span>
</div>
<select id="user-search-by" class="form-control">
<option value="username" {{{if searchBy_username}}}selected{{{end}}}>[[admin/manage/users:search.username]]</option>
<option value="email" {{{if searchBy_email}}}selected{{{end}}}>[[admin/manage/users:search.email]]</option>
<option value="uid" {{{if searchBy_uid}}}selected{{{end}}}>[[admin/manage/users:search.uid]]</option>
<option value="ip" {{{if searchBy_ip}}}selected{{{end}}}>[[admin/manage/users:search.ip]]</option>
</select>
<select id="results-per-page" class="form-control">
<option value="50">[[admin/manage/users:50-per-page]]</option>
<option value="100">[[admin/manage/users:100-per-page]]</option>
<option value="250">[[admin/manage/users:250-per-page]]</option>
<option value="500">[[admin/manage/users:500-per-page]]</option>
</select>
</form>

</div>
<hr/>
<ul class="nav nav-pills">
Expand All @@ -36,22 +29,29 @@

<li class="pull-right">
<form class="form-inline">
<div class="input-group">
<input type="text" class="form-control" placeholder="[[global:search]]" id="user-search" value="{query}">
<span class="input-group-addon search-button"><i class="fa fa-search"></i></span>
<!-- IF inviteOnly -->
<button component="user/invite" class="btn btn-success"><i class="fa fa-users"></i> [[admin/manage/users:invite]]</button>
<!-- ENDIF inviteOnly -->
<a target="_blank" href="{config.relative_path}/api/admin/users/csv" class="btn btn-primary">[[admin/manage/users:download-csv]]</a>
<div class="btn-group">
<button class="btn btn-default dropdown-toggle" data-toggle="dropdown" type="button">[[admin/manage/users:edit]] <span class="caret"></span></button>
<ul class="dropdown-menu dropdown-menu-right">
<li><a href="#" class="validate-email"><i class="fa fa-fw fa-check"></i> [[admin/manage/users:validate-email]]</a></li>
<li><a href="#" class="send-validation-email"><i class="fa fa-fw fa-mail-forward"></i> [[admin/manage/users:send-validation-email]]</a></li>
<li><a href="#" class="password-reset-email"><i class="fa fa-fw fa-key"></i> [[admin/manage/users:password-reset-email]]</a></li>
<li><a href="#" class="force-password-reset"><i class="fa fa-fw fa-unlock-alt"></i> [[admin/manage/users:force-password-reset]]</a></li>
<li><a href="#" class="manage-groups"><i class="fa fa-fw fa-users"></i> [[admin/manage/users:manage-groups]]</a></li>
<li class="divider"></li>
<li><a href="#" class="ban-user"><i class="fa fa-fw fa-gavel"></i> [[admin/manage/users:ban]]</a></li>
<li><a href="#" class="ban-user-temporary"><i class="fa fa-fw fa-clock-o"></i> [[admin/manage/users:temp-ban]]</a></li>
<li><a href="#" class="unban-user"><i class="fa fa-fw fa-comment-o"></i> [[admin/manage/users:unban]]</a></li>
<li><a href="#" class="reset-lockout"><i class="fa fa-fw fa-unlock"></i> [[admin/manage/users:reset-lockout]]</a></li>
<li class="divider"></li>
<li><a href="#" class="delete-user"><i class="fa fa-fw fa-trash-o"></i> [[admin/manage/users:delete]]</a></li>
<li><a href="#" class="delete-user-content"><i class="fa fa-fw fa-trash-o"></i> [[admin/manage/users:delete-content]]</a></li>
<li><a href="#" class="delete-user-and-content"><i class="fa fa-fw fa-trash-o"></i> [[admin/manage/users:purge]]</a></li>
</ul>
</div>
<select id="user-search-by" class="form-control">
<option value="username" {{{if searchBy_username}}}selected{{{end}}}>[[admin/manage/users:search.username]]</option>
<option value="email" {{{if searchBy_email}}}selected{{{end}}}>[[admin/manage/users:search.email]]</option>
<option value="uid" {{{if searchBy_uid}}}selected{{{end}}}>[[admin/manage/users:search.uid]]</option>
<option value="ip" {{{if searchBy_ip}}}selected{{{end}}}>[[admin/manage/users:search.ip]]</option>
</select>
<select id="results-per-page" class="form-control">
<option value="50">[[admin/manage/users:50-per-page]]</option>
<option value="100">[[admin/manage/users:100-per-page]]</option>
<option value="250">[[admin/manage/users:250-per-page]]</option>
<option value="500">[[admin/manage/users:500-per-page]]</option>
</select>
</form>
</li>
</ul>
Expand Down Expand Up @@ -95,10 +95,9 @@
<td><i title="[[admin/manage/users:users.banned]]" class="ban fa fa-gavel text-danger<!-- IF !users.banned --> hidden<!-- ENDIF !users.banned -->"></i><i class="administrator fa fa-shield text-success<!-- IF !users.administrator --> hidden<!-- ENDIF !users.administrator -->"></i><a href="{config.relative_path}/user/{users.userslug}"> {users.username}</a></td>

<td>
<!-- IF config.requireEmailConfirmation -->
<i class="validated fa fa-check text-success<!-- IF !users.email:confirmed --> hidden<!-- ENDIF !users.email:confirmed -->" title="validated"></i>
<i class="notvalidated fa fa-times text-danger<!-- IF users.email:confirmed --> hidden<!-- ENDIF users.email:confirmed -->" title="not validated"></i>
<!-- ENDIF config.requireEmailConfirmation --> {users.email}</td>
<i class="notvalidated fa fa-check text-muted<!-- IF users.email:confirmed --> hidden<!-- ENDIF users.email:confirmed -->" title="not validated"></i>
{users.email}</td>
<td class="text-right">{users.postcount}</td>
<td class="text-right">{users.reputation}</td>
<td class="text-right"><!-- IF users.flags -->{users.flags}<!-- ELSE -->0<!-- ENDIF users.flags --></td>
Expand All @@ -114,3 +113,7 @@

</div>
</div>

<button data-action="create" class="floating-button mdl-button mdl-js-button mdl-button--fab mdl-js-ripple-effect mdl-button--colored">
<i class="material-icons">add</i>
</button>
2 changes: 1 addition & 1 deletion src/views/admin/partials/create_user_modal.tpl
@@ -1,4 +1,4 @@
<div class="alert alert-danger d-none" id="create-modal-error"></div>
<div class="alert alert-danger hidden" id="create-modal-error"></div>
<form>
<div class="form-group">
<label for="group-name">[[admin/manage/users:create.username]]</label>
Expand Down

0 comments on commit 700e1e4

Please sign in to comment.