{% extends "base.html" %} {% load i18n %} {% load staticfiles %} {% block title %}{% trans "Users" %}{% endblock %} {% block content %} <!-- Page Heading --> <div class="row"> <div class="col-lg-12"> {% include 'create_user_block.html' %} <div class="float-right search"> <input id="filter" class="form-control" type="text" placeholder="{% trans 'Search' %}"> </div> <h2 class="page-header">{% trans "Users" %}</h1> </div> </div> <!-- /.row --> {% include 'errors_block.html' %} <div class="row"> {% if not users %} <div class="col-lg-12"> <div class="alert alert-warning alert-dismissable"> <button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button> <i class="fa fa-exclamation-triangle"></i> <strong>{% trans "Warning" %}:</strong> {% trans "You don't have any user" %} </div> </div> {% else %} <div class="col-lg-12"> <table class="table table-striped table-hover"> <thead> <tr> <th scope="col">{% trans "Username" %}</th> <th scope="col">{% trans "Status" %}</th> <th scope="col">{% trans "Staff" %}</th> <th scope="col">{% trans "Superuser" %}</th> <th scope="col">{% trans "Clone" %}</th> </tr> </thead> <tbody class="searchable"> {% for user in users %} <tr class="{% if not user.is_active %}danger{% endif %}"> <td> <a href="{% url 'account' user.id %}"><strong>{{ user.username }}</strong></a> <a data-toggle="modal" href="#editUser{{ user.id }}" class="float-right" title="{% trans "Edit" %}"> <span class="fa fa-cog"></span> </a> </td> <td> {% if user.is_active %} {% trans "Active" %} {% else %} {% trans "Blocked" %} {% endif %} </td> <td>{% if user.is_staff %}<span class="fa fa-check"></span>{% endif %}</td> <td>{% if user.is_superuser %}<span class="fa fa-check"></span>{% endif %}</td> <td>{% if perms.instances.clone_instances %}<span class="fa fa-check"></span>{% endif %}</td> </tr> {% endfor %} </tbody> </table> {% for user in users %} <!-- Modal Edit --> <div class="modal fade" id="editUser{{ user.id }}" tabindex="-1" role="dialog" aria-labelledby="editUserLabel" aria-hidden="true"> <div class="modal-dialog"> <div class="modal-content"> <form method="post" role="form" aria-label="Edit user form">{% csrf_token %} <div class="modal-header"> <h5 class="modal-title">{% trans "Edit user info" %}</h5> <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button> </div> <div class="modal-body"> <div class="form-group row"> <label class="col-sm-4 col-form-label">{% trans "Name" %}</label> <div class="col-sm-6"> <input type="hidden" name="user_id" value="{{ user.id }}"> <input type="text" name="name" class="form-control" value="{{ user.username }}" disabled> </div> </div> <div class="form-group row"> <label class="col-sm-4 col-form-label">{% trans "Password" %}</label> <div class="col-sm-6"> <input type="password" name="user_pass" class="form-control" value=""> </div> </div> <div class="form-group row"> <label class="col-sm-4 col-form-label">{% trans "Is staff" %}</label> <div class="col-sm-2"> <input type="checkbox" name="user_is_staff" {% if user.is_staff %}checked{% endif %}> </div> </div> <div class="form-group row"> <label class="col-sm-4 col-form-label">{% trans "Is superuser" %}</label> <div class="col-sm-2"> <input type="checkbox" name="user_is_superuser" {% if user.is_superuser %}checked{% endif %}> </div> </div> <div class="form-group row"> <label class="col-sm-4 col-form-label">{% trans "Can clone instances" %}</label> <div class="col-sm-2"> <input type="checkbox" name="userattributes_can_clone_instances" {% if user.userattributes.can_clone_instances %}checked{% endif %}> </div> </div> <div class="form-group row"> <label class="col-sm-4 col-form-label">{% trans "Max instances" %}</label> <div class="col-sm-6"> <input type="text" name="userattributes_max_instances" class="form-control" value="{{ user.userattributes.max_instances }}"> </div> </div> <div class="form-group row"> <label class="col-sm-4 col-form-label">{% trans "Max cpus" %}</label> <div class="col-sm-6"> <input type="text" name="userattributes_max_cpus" class="form-control" value="{{ user.userattributes.max_cpus }}"> </div> </div> <div class="form-group row"> <label class="col-sm-4 col-form-label">{% trans "Max memory (MB)" %}</label> <div class="col-sm-6"> <input type="text" name="userattributes_max_memory" class="form-control" value="{{ user.userattributes.max_memory }}"> </div> </div> <div class="form-group row"> <label class="col-sm-4 col-form-label">{% trans "Max disk size (GB)" %}</label> <div class="col-sm-6"> <input type="text" name="userattributes_max_disk_size" class="form-control" value="{{ user.userattributes.max_disk_size }}"> </div> </div> </div> <div class="modal-footer"> <button type="submit" class="float-left btn btn-danger" name="delete"> {% trans "Delete" %} </button> {% if user.is_active %} <button type="submit" class="btn btn-warning mr-auto" name="block"> {% trans "Block" %} </button> {% else %} <button type="submit" class="btn btn-success mr-auto" name="unblock"> {% trans "Unblock" %} </button> {% endif %} <button type="button" class="btn btn-secondary" data-dismiss="modal"> {% trans "Close" %} </button> <button type="submit" class="btn btn-primary" name="edit"> {% trans "Edit" %} </button> </div> </form> </div><!-- /.modal-content --> </div><!-- /.modal-dialog --> </div><!-- /.modal --> {% endfor %} </div> {% endif %} </div> {% endblock %} {% block script %} <script> function filter_table() { var rex = new RegExp($(this).val(), 'i'); $('.searchable tr').hide(); $('.searchable tr').filter(function () { return rex.test($(this).text()); }).show(); } $(document).ready(function () { (function ($) { $('#filter').keyup(filter_table) }(jQuery)); }); </script> {% endblock %}