{% load i18n static %} <!doctype html> <html lang="en"> <head> {% block head %} {% block meta %} <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta name="robots" content="NONE,NOARCHIVE" /> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="description" content=""> <meta name="author" content="Pangea"> {% endblock %} <title>{% block title %}{% if title %}{{ title }} – {% endif %}DeviceHub{% endblock %}</title> <!-- Bootstrap core CSS --> {% block style %} <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.11.1/font/bootstrap-icons.css"> <link rel="stylesheet" href= "https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css"> <link href="{% static "/css/bootstrap.min.css" %}" rel="stylesheet"> <style> .bd-placeholder-img { font-size: 1.125rem; text-anchor: middle; -webkit-user-select: none; -moz-user-select: none; user-select: none; } @media (min-width: 768px) { .bd-placeholder-img-lg { font-size: 3.5rem; } } html, body { height: 100%; } body { display: flex; flex-direction: column; } .main-content { flex-grow: 1; } footer { width: 100%; } </style> <!-- Custom styles for this template --> <link href="{% static "/css/dashboard.css" %}" rel="stylesheet"> {% endblock %} {% endblock %} </head> <body> <header class="navbar navbar-dark sticky-top admin bg-green flex-md-nowrap p-0 shadow"> <a class="navbar-brand col-md-3 col-lg-2 me-0 px-3" href="#">DEVICEHUB</a> <div class="navbar-nav navbar-sub-brand"> {{ user.institution.name|upper }} </div> <div class="navbar-nav"> <div class="nav-item text-nowrap"> <i id="user-avatar" class="bi bi-person-circle"></i> <a class="navbar-sub-brand px-3" href="{% url 'user:panel' %}">{{ user.email }}</a> <a class="logout" href="{% url 'login:logout' %}"> <i class="fa-solid fa-arrow-right-from-bracket"></i> </a> </div> </div> </header> <div class="container-fluid"> <div class="row"> <nav id="sidebarMenu" class="col-md-3 col-lg-2 d-md-block bg-light sidebar collapse"> <div class="position-sticky pt-5"> <ul class="nav flex-column"> {% if user.is_admin %} <li class="nav-item"> <a class="admin {% if path in 'panel users' %}active {% endif %}nav-link fw-bold" data-bs-toggle="collapse" data-bs-target="#ul_admin" aria-expanded="false" aria-controls="ul_admin" href="javascript:void()"> <i class="bi bi-person-fill-gear icon_sidebar"></i> {% trans 'Admin' %} </a> <ul class="flex-column mb-2 ul_sidebar accordion-collapse {% if path in 'panel users' %}expanded{% else %}collapse{% endif %}" id="ul_admin" data-bs-parent="#sidebarMenu"> <li class="nav-item"> <a class="nav-link{% if path == 'panel' %} active2{% endif %}" href="{% url 'admin:panel' %}"> {% trans 'Panel' %} </a> </li> <li class="nav-item"> <a class="nav-link{% if path == 'users' %} active2{% endif %}" href="{% url 'admin:users' %}"> {% trans 'Users' %} </a> </li> </ul> </li> {% endif %} <li class="nav-item"> <a class="admin {% if path == 'unassigned_devices' %}active {% endif %}nav-link fw-bold" data-bs-toggle="collapse" data-bs-target="#ul_devices" aria-expanded="false" aria-controls="ul_devices" href="javascript:void()"> <i class="bi bi-laptop icon_sidebar"></i> {% trans 'Devices' %} </a> <ul class="flex-column mb-2 ul_sidebar accordion-collapse {% if path == 'unassigned_devices' %}expanded{% else %}collapse{% endif %}" id="ul_devices" data-bs-parent="#sidebarMenu"> <li class="nav-item"> <a class="nav-link{% if path == 'unassigned_devices' %} active2{% endif %}" href="{% url 'dashboard:unassigned_devices' %}"> {% trans 'Unassigned devices' %} </a> </li> </ul> </li> <li class="nav-item"> <a class="admin {% if path == 'tag' %}active {% endif %}nav-link fw-bold" data-bs-toggle="collapse" data-bs-target="#ul_lots" aria-expanded="false" aria-controls="ul_lots" href="javascript:void()"> <i class="bi bi-database icon_sidebar"></i> {% trans 'Lots' %} </a> <ul class="flex-column mb-2 ul_sidebar accordion-collapse {% if path == 'tag' %}expanded{% else %}collapse{% endif %}" id="ul_lots" data-bs-parent="#sidebarMenu"> {% for tag in lot_tags %} <li class="nav-items"> <a class="nav-link{% if path == 'tag' %} active2{% endif %}" href="{% url 'lot:tag' tag.id %}"> {{ tag.name }} </a> </li> {% endfor %} </ul> </li> <li class="nav-item"> <a class="admin {% if path in 'upload list' %}active {% endif %}nav-link fw-bold" data-bs-toggle="collapse" data-bs-target="#ul_evidences" aria-expanded="false" aria-controls="ul_evidences" href="javascript:void()"> <i class="bi bi-usb-drive icon_sidebar"></i> {% trans 'Evidences' %} </a> <ul class="flex-column mb-2 ul_sidebar accordion-collapse {% if path in 'upload list' %}expanded{% else %}collapse{% endif %}" id="ul_evidences" data-bs-parent="#sidebarMenu"> <li class="nav-item"> <a class="nav-link{% if path == 'upload' %} active2{% endif %}" href="{% url 'evidence:upload' %}"> {% trans 'Upload one' %} </a> </li> <li class="nav-item"> <a class="nav-link{% if path == 'list' %} active2{% endif %}" href="{% url 'evidence:list' %}"> {% trans 'Old evidences' %} </a> </li> </ul> </li> <li class="nav-item"> <a class="admin {% if path in 'import add' %}active {% endif %}nav-link fw-bold" data-bs-toggle="collapse" data-bs-target="#ul_placeholders" aria-expanded="false" aria-controls="ul_placeholders" href="javascript:void()"> <i class="bi-menu-button-wide icon_sidebar"></i> {% trans 'Placeholders' %} </a> <ul class="flex-column mb-2 ul_sidebar accordion-collapse {% if path in 'import add' %}expanded{% else %}collapse{% endif %}" id="ul_placeholders" data-bs-parent="#sidebarMenu"> <li class="nav-item"> <a class="nav-link{% if path == 'import' %} active2{% endif %}" href="{% url 'evidence:import' %}"> {% trans 'Upload Spreadsheet' %} </a> </li> <li class="nav-item"> <a class="nav-link{% if path == 'add' %} active2{% endif %}" href="{% url 'device:add' %}"> {% trans 'Create one' %} </a> </li> </ul> </li> </ul> </div> </nav> <main class="col-md-9 ms-sm-auto col-lg-10 px-md-4"> {% block messages %} {% for message in messages %} <div class="alert {{ message.tags|default:'info' }} alert-dismissible fade show mt-3" role="alert"> {{ message }} <button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"> </button> </div> {% endfor %} {% endblock messages %} <div class="d-flex justify-content-between flex-wrap flex-md-nowrap align-items-center pt-3 pb-2"> <h1 class="h2">{{ title }}</h1> <form method="post" action="{% url 'dashboard:search' %}"> {% csrf_token %} <div class="input-group rounded"> <input type="search" name="search" class="form-control rounded" placeholder="Search your device..." aria-label="Search" aria-describedby="search-addon" /> <span class="input-group-text border-0" id="search-addon"> <i class="fas fa-search"></i> </span> </div> </form> </div> <div class="row border-bottom mb-3"> <div class="col"> <small style="color:#899bbd"><i>{{ breadcrumb }}</i></small> </div> <div class="btn-toolbar mb-2 mb-md-0"> </div> </div> {% block content %} {% endblock content %} </main> </div> </div> <!-- Footer --> <footer class="footer text-center mt-auto py-3"> <div class="container"> <span class="text-muted">{{ commit_id }}</span> </div> </footer> {% block script %} <script src="{% static "js/jquery-3.3.1.slim.min.js" %}"></script> <script src="{% static "js/popper.min.js" %}"></script> <script src="{% static "js/bootstrap.min.js" %}"></script> {% block extrascript %}{% endblock %} {% endblock %} </body> </html>