Display deactivated users at the bottom of the admin users page.

(imported from commit 1a5d5d64fffc9ed7633d468b975dd56c28f85ccf)
This commit is contained in:
Tim Abbott
2013-11-16 11:07:55 -05:00
parent a78ec1d0d3
commit b55e406f93
3 changed files with 41 additions and 8 deletions

View File

@@ -2,36 +2,55 @@ var admin = (function () {
var exports = {}; var exports = {};
function populate_users () { function populate_users (realm_people_data) {
var users_table = $("#admin_users_table"); var users_table = $("#admin_users_table");
var deactivated_users_table = $("#admin_deactivated_users_table");
var bots_table = $("#admin_bots_table"); var bots_table = $("#admin_bots_table");
users_table.empty(); users_table.empty();
deactivated_users_table.empty();
bots_table.empty(); bots_table.empty();
var humans = []; var active_users = [];
var deactivated_users = [];
var bots = []; var bots = [];
_.each(realm_people_data.members, function (user) {
realm_people_dict.each(function (user) {
if (user.is_bot) { if (user.is_bot) {
bots.push(user); bots.push(user);
} else if (user.is_active) {
active_users.push(user);
} else { } else {
humans.push(user); deactivated_users.push(user);
} }
}); });
humans = _.sortBy(humans, 'full_name'); active_users = _.sortBy(active_users, 'full_name');
deactivated_users = _.sortBy(deactivated_users, 'full_name');
bots = _.sortBy(bots, 'full_name'); bots = _.sortBy(bots, 'full_name');
_.each(bots, function (user) { _.each(bots, function (user) {
bots_table.append(templates.render("admin_user_list", {user: user})); bots_table.append(templates.render("admin_user_list", {user: user}));
}); });
_.each(humans, function (user) { _.each(active_users, function (user) {
users_table.append(templates.render("admin_user_list", {user: user})); users_table.append(templates.render("admin_user_list", {user: user}));
}); });
_.each(deactivated_users, function (user) {
deactivated_users_table.append(templates.render("admin_user_list", {user: user}));
});
} }
exports.setup_page = function () { exports.setup_page = function () {
populate_users(); function failed_listing(xhr, error) {
ui.report_error("Error listing streams or subscriptions", xhr, $("#subscriptions-status"));
}
var req = $.ajax({
type: 'GET',
url: '/json/users',
dataType: 'json',
timeout: 10*1000,
success: populate_users,
error: failed_listing
});
$(".admin_user_table").on("click", ".deactivate", function (e) { $(".admin_user_table").on("click", ".deactivate", function (e) {
e.preventDefault(); e.preventDefault();

View File

@@ -7,9 +7,15 @@
<span class="email">{{email}}</span> <span class="email">{{email}}</span>
</td> </td>
<td> <td>
{{#if is_active}}
<button class="btn deactivate btn-danger"> <button class="btn deactivate btn-danger">
Deactivate Deactivate
</button> </button>
{{else}}
<button class="btn reactivate btn-warning">
Reactivate
</button>
{{/if}}
</td> </td>
</tr> </tr>
{{/with}} {{/with}}

View File

@@ -20,6 +20,14 @@
<th>Actions</th> <th>Actions</th>
</tbody> </tbody>
</table> </table>
<h2>Deactivated Users</h2>
<table class="table table-condensed table-striped">
<tbody id="admin_deactivated_users_table" class="admin_user_table">
<th>Name</th>
<th>Email</th>
<th>Actions</th>
</tbody>
</table>
<div id="deactivation_modal" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="deactivation_modal_label" aria-hidden="true"> <div id="deactivation_modal" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="deactivation_modal_label" aria-hidden="true">
<div class="modal-header"> <div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button> <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>