login.html 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. {# User login page. Extends base.html directly to override normal UI layout. #}
  2. {% extends 'base/base.html' %}
  3. {% load form_helpers %}
  4. {% load static %}
  5. {% block layout %}
  6. <main class="login-container text-center">
  7. {# Login banner #}
  8. {% if settings.BANNER_LOGIN %}
  9. <div class="alert alert-secondary mw-90 mw-md-75 mw-lg-80 mw-xl-75 mw-xxl-50" role="alert">
  10. {{ settings.BANNER_LOGIN|safe }}
  11. </div>
  12. {% endif %}
  13. {# Login form #}
  14. <div class="form-login">
  15. <form action="{% url 'login' %}" method="post">
  16. {% csrf_token %}
  17. {# Logo #}
  18. <div class="mb-4">
  19. <img src="{% static 'netbox_logo.svg' %}" height="80" alt="NetBox logo" />
  20. </div>
  21. {# Set post-login URL #}
  22. {% if 'next' in request.GET %}
  23. <input type="hidden" name="next" value="{{ request.GET.next }}" />
  24. {% endif %} {% if 'next' in request.POST %}
  25. <input type="hidden" name="next" value="{{ request.POST.next }}" />
  26. {% endif %}
  27. {{ form.username }}
  28. {{ form.password }}
  29. <button type="submit" class="btn btn-primary btn-lg w-100 mt-4">
  30. Sign In
  31. </button>
  32. </form>
  33. </div>
  34. {# Login form errors #}
  35. {% if form.non_field_errors %}
  36. <div class="alert alert-danger" role="alert">
  37. <h4 class="alert-heading">Errors</h4>
  38. <p>
  39. {{ form.non_field_errors }}
  40. </p>
  41. </div>
  42. {% endif %}
  43. </main>
  44. {# Page footer #}
  45. <footer class="footer container-fluid login-footer p-3">
  46. <div class="row align-items-center w-100">
  47. <div class="col-2 col-md-1 mb-0">
  48. <button type="button" class="btn btn-sm color-mode-toggle" title="Toggle Color Mode">
  49. <i class="color-mode-icon mdi mdi-lightbulb"></i>&nbsp;
  50. </button>
  51. </div>
  52. <div class="col-1 col-md-auto mb-0"></div>
  53. <div class="col text-end mb-0">
  54. <small class="text-muted">
  55. {{ settings.HOSTNAME }} (v{{ settings.VERSION }})
  56. </small>
  57. </div>
  58. </div>
  59. </footer>
  60. {% endblock layout %}