{% extends "base.html" %} {% block title %}
<title>DNS Control Panel - User Management</title>
{% endblock %} {% block dashboard_stat %}
<section class="content-header">
	<h1>
		User <small>Manage user privileges</small>
	</h1>
	<ol class="breadcrumb">
		<li><a href="{{ url_for('dashboard') }}"><i
				class="fa fa-dashboard"></i> Home</a></li>
		<li class="active">User</li>
	</ol>
</section>
{% endblock %} {% block content %}
<section class="content">
	<div class="row">
		<div class="col-xs-12">
			<div class="box">
				<div class="box-header">
					<h3 class="box-title">User Management</h3>
				</div>
				<div class="box-body">
					<a href="{{ url_for('admin_createuser') }}">
						<button type="button" class="btn btn-flat btn-primary pull-left button_add_user">
							Add User&nbsp;<i class="fa fa-plus"></i>
						</button>
					</a>
				</div>
				<div class="box-body">
					<table id="tbl_users" class="table table-bordered table-striped">
						<thead>
							<tr>
								<th>Username</th>
								<th>First Name</th>
								<th>Last Name</th>
								<th>Admin</th>
								<th>Privileges</th>
								<th>Deletion</th>
							</tr>
						</thead>
						<tbody>
							{% for user in users %}
							<tr class="odd gradeX">
								<td>{{ user.username }}</td>
								<td>{{ user.firstname }}</td>
								<td>{{ user.lastname }}</td>
								<td>
									<input type="checkbox" id="{{ user.username }}" class="admin_toggle" {% if user.role.name=='Administrator' %}checked{% endif %}>
								</td>
								<td width="6%">
									<button type="button" class="btn btn-flat btn-warning button_revoke" id="{{ user.username }}">
										Revoke&nbsp;<i class="fa fa-lock"></i>
									</button>
								</td>
								<td width="6%">
									<button type="button" class="btn btn-flat btn-danger button_delete" id="{{ user.username }}">
										Delete&nbsp;<i class="fa fa-trash"></i>
									</button>
								</td>
							</tr>
							{% endfor %}
						</tbody>
					</table>
				</div>
				<!-- /.box-body -->
			</div>
			<!-- /.box -->
		</div>
		<!-- /.col -->
	</div>
	<!-- /.row -->
</section>
{% endblock %} 
{% block extrascripts %}
<script>
	// set up user data table
	$("#tbl_users").DataTable({
		"paging" : true,
		"lengthChange" : false,
		"searching" : true,
		"ordering" : true,
		"info" : true,
		"autoWidth" : false
	});
	
	// handle revocation of privileges
	$('.button_revoke').click(function() {
		var modal = $("#modal_revoke");
		var username = $(this).prop('id');
		var info = "Are you sure you want to revoke all privileges for " + username + ". They will not able to access any domain."; 
		modal.find('.modal-body p').text(info);
		modal.find('#button_revoke_confirm').click(function() {
			var postdata = {'action': 'revoke_user_privielges', 'data': username}
            applyChanges(postdata, '/admin/manageuser');
			modal.modal('hide');
		})
		modal.modal('show');
	});
	// handle deletion of user
	$('.button_delete').click(function() {
		var modal = $("#modal_delete");
		var username = $(this).prop('id');
		var info = "Are you sure you want to delete " + username + "?"; 
		modal.find('.modal-body p').text(info);
		modal.find('#button_delete_confirm').click(function() {
			var postdata = {'action': 'delete_user', 'data': username}
            applyChanges(postdata, '/admin/manageuser', false, true);
			modal.modal('hide');
		})
		modal.modal('show');
		
	});

	// initialize pretty checkboxes
	$('.admin_toggle').iCheck({
		checkboxClass : 'icheckbox_square-blue',
		increaseArea : '20%' // optional
	});
	
	// handle checkbox toggling
	$('.admin_toggle').on('ifToggled', function(event) {
		var is_admin = $(this).prop('checked');
		var username = $(this).prop('id');
		postdata = {
			'action' : 'set_admin',
			'data' : {
				'username' : username,
				'is_admin' : is_admin
			}
		};
		applyChanges(postdata, '/admin/manageuser');
	});
</script>
{% endblock %}
{% block modals %}
<div class="modal fade modal-warning" id="modal_revoke">
	<div class="modal-dialog">
		<div class="modal-content">
			<div class="modal-header">
				<button type="button" class="close" data-dismiss="modal"
					aria-label="Close">
					<span aria-hidden="true">&times;</span>
				</button>
				<h4 class="modal-title">Confirmation</h4>
			</div>
			<div class="modal-body">
				<p></p>
			</div>
			<div class="modal-footer">
				<button type="button" class="btn btn-flat btn-default pull-left"
					data-dismiss="modal">Close</button>
				<button type="button" class="btn btn-flat btn-danger" id="button_revoke_confirm">Revoke</button>
			</div>
		</div>
		<!-- /.modal-content -->
	</div>
	<!-- /.modal-dialog -->
</div>
<div class="modal fade modal-warning" id="modal_delete">
	<div class="modal-dialog">
		<div class="modal-content">
			<div class="modal-header">
				<button type="button" class="close" data-dismiss="modal"
					aria-label="Close">
					<span aria-hidden="true">&times;</span>
				</button>
				<h4 class="modal-title">Confirmation</h4>
			</div>
			<div class="modal-body">
				<p></p>
			</div>
			<div class="modal-footer">
				<button type="button" class="btn btn-flat btn-default pull-left"
					data-dismiss="modal">Close</button>
				<button type="button" class="btn btn-flat btn-danger" id="button_delete_confirm">Delete</button>
			</div>
		</div>
		<!-- /.modal-content -->
	</div>
	<!-- /.modal-dialog -->
</div>
{% endblock %}