mirror of
				https://github.com/netbox-community/netbox.git
				synced 2024-05-10 07:54:54 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			181 lines
		
	
	
		
			6.9 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			181 lines
		
	
	
		
			6.9 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
{# Base layout for the core NetBox UI w/navbar and page content #}
 | 
						|
{% extends 'base/base.html' %}
 | 
						|
{% load helpers %}
 | 
						|
{% load static %}
 | 
						|
{% load i18n %}
 | 
						|
 | 
						|
{% comment %}
 | 
						|
Blocks:
 | 
						|
  header: Page header
 | 
						|
  tabs: Horizontal navigation tabs
 | 
						|
  content: Page content
 | 
						|
  modals: Bootstrap 5 modal components
 | 
						|
{% endcomment %}
 | 
						|
 | 
						|
{% block layout %}
 | 
						|
 | 
						|
  <div class="container-fluid px-0">
 | 
						|
    <main class="layout">
 | 
						|
    {# Sidebar #}
 | 
						|
    {% include 'base/sidenav.html' %}
 | 
						|
 | 
						|
      {# Body #}
 | 
						|
      <div class="content-container" tabindex="-2">
 | 
						|
 | 
						|
        {# NetBox Logo, only visible when printing #}
 | 
						|
        <div class="p-2 printonly">
 | 
						|
          <img src="{% static 'netbox_logo.svg' %}" alt="{% trans "NetBox logo" %}" width="200px" />
 | 
						|
        </div>
 | 
						|
 | 
						|
        {# Top bar #}
 | 
						|
        <nav class="navbar navbar-light sticky-top flex-md-nowrap p-1 mb-3 search container-fluid noprint">
 | 
						|
 | 
						|
            {# Mobile Navigation #}
 | 
						|
            <div class="nav-mobile">
 | 
						|
              <div class="nav-mobile-top">
 | 
						|
                <a class="sidebar-logo p-2 d-block" href="{% url 'home' %}">
 | 
						|
                  <img src="{% static 'netbox_logo.svg' %}" alt="{% trans "NetBox logo" %}" height="40" />
 | 
						|
                </a>
 | 
						|
                <button type="button" aria-label="Toggle Navigation" class="navbar-toggler sidenav-toggle-mobile">
 | 
						|
                  <span class="navbar-toggler-icon"></span>
 | 
						|
                </button>
 | 
						|
              </div>
 | 
						|
              <div class="d-flex my-1 flex-grow-1 justify-content-center w-100">
 | 
						|
                {% include 'inc/searchbar.html' %}
 | 
						|
              </div>
 | 
						|
            </div>
 | 
						|
 | 
						|
            {# Desktop Navigation #}
 | 
						|
            <div class="row search-container">
 | 
						|
 | 
						|
              {# Empty spacer column to ensure search is centered. #}
 | 
						|
              <div class="col-3 d-flex flex-grow-1 ps-0"></div>
 | 
						|
 | 
						|
              {# Search bar #}
 | 
						|
              <div class="col-6 d-flex flex-grow-1 justify-content-center">
 | 
						|
                {% include 'inc/searchbar.html' %}
 | 
						|
              </div>
 | 
						|
 | 
						|
              {# Proflie/login button #}
 | 
						|
              <div class="col-3 d-flex flex-grow-1 pe-0 justify-content-end">
 | 
						|
                {% include 'inc/profile_button.html' %}
 | 
						|
              </div>
 | 
						|
 | 
						|
            </div>
 | 
						|
 | 
						|
        </nav>
 | 
						|
 | 
						|
        {% if config.BANNER_TOP %}
 | 
						|
          <div class="text-center mx-3">
 | 
						|
            {{ config.BANNER_TOP|safe }}
 | 
						|
          </div>
 | 
						|
        {% endif %}
 | 
						|
 | 
						|
        {% if settings.DEBUG and not settings.DEVELOPER %}
 | 
						|
          <div class="alert alert-warning text-center mx-3" role="alert">
 | 
						|
            <strong><i class="mdi mdi-alert"></i> {% trans "Debug mode is enabled" %}.</strong>
 | 
						|
            {% trans "Performance may be limited. Debugging should never be enabled on a production system" %}.
 | 
						|
          </div>
 | 
						|
        {% endif %}
 | 
						|
 | 
						|
        {% if config.MAINTENANCE_MODE and config.BANNER_MAINTENANCE %}
 | 
						|
          <div class="alert alert-warning text-center mx-3" role="alert">
 | 
						|
            <h5><i class="mdi mdi-alert"></i> {% trans "Maintenance Mode" %}</h5>
 | 
						|
            {{ config.BANNER_MAINTENANCE|escape }}
 | 
						|
          </div>
 | 
						|
        {% endif %}
 | 
						|
 | 
						|
        {# Page header #}
 | 
						|
        {% block header %}
 | 
						|
          <div class="title-container px-3 pb-3">
 | 
						|
 | 
						|
            {# Title #}
 | 
						|
            <div id="content-title">
 | 
						|
              {# Center-align title in object-edit views #}
 | 
						|
              <h1 class="h2 w-100">{% block title %}{% endblock title %}</h1>
 | 
						|
              {% block subtitle %}{% endblock %}
 | 
						|
            </div>
 | 
						|
 | 
						|
            {# Controls #}
 | 
						|
            {% block controls %}{% endblock controls %}
 | 
						|
 | 
						|
          </div>
 | 
						|
        {% endblock header %}
 | 
						|
 | 
						|
        {# Page content #}
 | 
						|
        <div id="content" class="container-fluid content px-0 m-0">
 | 
						|
          {% block tabs %}{% endblock %}
 | 
						|
          {% block content-wrapper %}
 | 
						|
            <div class="px-3">
 | 
						|
              {% block content %}{% endblock %}
 | 
						|
            </div>
 | 
						|
          {% endblock %}
 | 
						|
          {# Bottom banner #}
 | 
						|
          {% if config.BANNER_BOTTOM %}
 | 
						|
            <div class="text-center mx-3">
 | 
						|
              {{ config.BANNER_BOTTOM|safe }}
 | 
						|
            </div>
 | 
						|
          {% endif %}
 | 
						|
        </div>
 | 
						|
 | 
						|
        {# BS5 pop-up modals #}
 | 
						|
        {% block modals %}{% endblock %}
 | 
						|
 | 
						|
        {# Page footer #}
 | 
						|
        <footer class="footer container-fluid">
 | 
						|
          {% block footer %}
 | 
						|
            <div class="row align-items-center justify-content-between mx-0">
 | 
						|
 | 
						|
              <div class="col-sm-12 col-md-auto fs-4 noprint">
 | 
						|
                <nav class="nav justify-content-center justify-content-lg-start">
 | 
						|
                  {% block footer_links %}
 | 
						|
                    {# Documentation #}
 | 
						|
                    <a type="button" class="nav-link" href="{% static 'docs/' %}" target="_blank">
 | 
						|
                      <i title="{% trans "Docs" %}" class="mdi mdi-book-open-variant text-primary" data-bs-placement="top" data-bs-toggle="tooltip"></i>
 | 
						|
                    </a>
 | 
						|
 | 
						|
                    {# REST API #}
 | 
						|
                    <a type="button" class="nav-link" href="{% url 'api-root' %}" target="_blank">
 | 
						|
                      <i title="{% trans "REST API" %}" class="mdi mdi-cloud-braces text-primary" data-bs-placement="top" data-bs-toggle="tooltip"></i>
 | 
						|
                    </a>
 | 
						|
 | 
						|
                    {# API docs #}
 | 
						|
                    <a type="button" class="nav-link" href="{% url 'api_docs' %}" target="_blank">
 | 
						|
                      <i title="{% trans "REST API documentation" %}" class="mdi mdi-book text-primary" data-bs-placement="top" data-bs-toggle="tooltip"></i>
 | 
						|
                    </a>
 | 
						|
 | 
						|
                    {# GraphQL API #}
 | 
						|
                    {% if config.GRAPHQL_ENABLED %}
 | 
						|
                    <a type="button" class="nav-link" href="{% url 'graphql' %}" target="_blank">
 | 
						|
                      <i title="{% trans "GraphQL API" %}" class="mdi mdi-graphql text-primary" data-bs-placement="top" data-bs-toggle="tooltip"></i>
 | 
						|
                    </a>
 | 
						|
                    {% endif %}
 | 
						|
 | 
						|
                    {# GitHub #}
 | 
						|
                    <a type="button" class="nav-link" href="https://github.com/netbox-community/netbox" target="_blank">
 | 
						|
                      <i title="{% trans "Source Code" %}" class="mdi mdi-github text-primary" data-bs-placement="top" data-bs-toggle="tooltip"></i>
 | 
						|
                    </a>
 | 
						|
 | 
						|
                    {# NetDev Slack #}
 | 
						|
                    <a type="button" class="nav-link" href="https://netdev.chat/" target="_blank">
 | 
						|
                      <i title="{% trans "Community" %}" class="mdi mdi-slack text-primary" data-bs-placement="top" data-bs-toggle="tooltip"></i>
 | 
						|
                    </a>
 | 
						|
                  {% endblock footer_links %}
 | 
						|
                </nav>
 | 
						|
              </div>
 | 
						|
 | 
						|
              <div class="col-sm-12 col-md-auto text-center text-lg-end text-muted">
 | 
						|
                <span class="d-block d-md-inline">{% annotated_now %} {% now 'T' %}</span>
 | 
						|
                <span class="ms-md-3 d-block d-md-inline">{{ settings.HOSTNAME }} (v{{ settings.VERSION }})</span>
 | 
						|
              </div>
 | 
						|
 | 
						|
            </div>
 | 
						|
          {% endblock footer %}
 | 
						|
        </footer>
 | 
						|
 | 
						|
      </div>
 | 
						|
 | 
						|
    </main>
 | 
						|
  </div>
 | 
						|
{% endblock layout %}
 |