Merge pull request #6327 from netbox-community/feature-ui

Add Basic Support for Smaller Screens in New UI
This commit is contained in:
Jeremy Stretch 2021-05-03 09:07:29 -04:00 committed by GitHub
commit 501a9a72fe
105 changed files with 383 additions and 352 deletions

Binary file not shown.

File diff suppressed because one or more lines are too long

View File

@ -51,6 +51,11 @@
line-height: $line-height-sm; line-height: $line-height-sm;
} }
// Automatically space out adjacent columns.
.col:not(:last-child):not(:only-child) {
margin-bottom: $spacer;
}
body { body {
background-color: var(--nbx-body-bg); background-color: var(--nbx-body-bg);
color: var(--nbx-body-color); color: var(--nbx-body-color);
@ -225,12 +230,6 @@ li.dropdown-item.dropdown-item-btns {
align-items: center; align-items: center;
} }
@media (max-width: 767.98px) {
.sidebar {
top: 5rem;
}
}
.sidebar-sticky { .sidebar-sticky {
position: relative; position: relative;
top: 0; top: 0;
@ -258,6 +257,14 @@ nav.nav.nav-pills {
} }
} }
// Prevent scrolling of body content when nav menu is open on mobile.
.sidebar.collapse.show ~ .content-container {
@media (max-width: map.get($grid-breakpoints, 'md')) {
position: fixed;
overflow-y: hidden;
}
}
.sidebar { .sidebar {
position: fixed; position: fixed;
top: 0; top: 0;
@ -266,9 +273,15 @@ nav.nav.nav-pills {
z-index: 100; /* Behind the navbar */ z-index: 100; /* Behind the navbar */
box-shadow: inset -1px 0 0 rgba(0, 0, 0, 0.1); box-shadow: inset -1px 0 0 rgba(0, 0, 0, 0.1);
background-color: var(--nbx-sidebar-bg); background-color: var(--nbx-sidebar-bg);
@media (max-width: map.get($grid-breakpoints, 'md')) {
top: 8.125rem;
}
.sidebar-nav-link { .sidebar-nav-link {
color: var(--nbx-sidebar-link-color); color: var(--nbx-sidebar-link-color);
} }
.accordion-body { .accordion-body {
max-height: calc(100vh - 24rem); max-height: calc(100vh - 24rem);
overflow-y: auto; overflow-y: auto;
@ -284,8 +297,15 @@ nav.nav.nav-pills {
} }
} }
} }
// Ensure navigation accounts for the height of the header on mobile when nav is expanded.
&.collapse.show div.position-sticky {
@media (max-width: map.get($grid-breakpoints, 'md')) {
height: calc(100vh - 16.125rem);
overflow-y: auto;
}
}
div.position-sticky { div.position-sticky {
height: calc(100% - 8rem); height: calc(100vh - 8rem);
} }
div.sidebar-bottom { div.sidebar-bottom {
padding-left: 0.5rem; padding-left: 0.5rem;

View File

@ -129,6 +129,10 @@ $nav-tabs-link-active-border-color: $gray-800 $gray-800 $nav-tabs-link-active-bg
$nav-pills-link-active-color: $component-active-color; $nav-pills-link-active-color: $component-active-color;
$nav-pills-link-active-bg: $component-active-bg; $nav-pills-link-active-bg: $component-active-bg;
$navbar-light-color: $gray-500;
$navbar-light-toggler-icon-bg: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'><path stroke='#{$navbar-light-color}' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/></svg>");
$navbar-light-toggler-border-color: $gray-700;
// Dropdowns // Dropdowns
$dropdown-color: $body-color; $dropdown-color: $body-color;
$dropdown-bg: $gray-900; $dropdown-bg: $gray-900;

View File

@ -11,7 +11,7 @@
<body> <body>
<div class="container-fluid"> <div class="container-fluid">
<div class="row"> <div class="row">
<div class="col-md-6 offset-md-3"> <div class="col col-md-6 offset-md-3">
<div class="card bg-danger mt-5"> <div class="card bg-danger mt-5">
<h5 class="card-header"> <h5 class="card-header">
<i class="mdi mdi-alert"></i> Server Error <i class="mdi mdi-alert"></i> Server Error

View File

@ -10,7 +10,7 @@
{% block content %} {% block content %}
<div class="row"> <div class="row">
<div class="col-md-6"> <div class="col col-md-6">
<div class="card"> <div class="card">
<h5 class="card-header"> <h5 class="card-header">
Circuit Circuit
@ -81,14 +81,14 @@
</div> </div>
{% plugin_left_page object %} {% plugin_left_page object %}
</div> </div>
<div class="col-md-6"> <div class="col col-md-6">
{% include 'circuits/inc/circuit_termination.html' with termination=termination_a side='A' %} {% include 'circuits/inc/circuit_termination.html' with termination=termination_a side='A' %}
{% include 'circuits/inc/circuit_termination.html' with termination=termination_z side='Z' %} {% include 'circuits/inc/circuit_termination.html' with termination=termination_z side='Z' %}
{% plugin_right_page object %} {% plugin_right_page object %}
</div> </div>
</div> </div>
<div class="row"> <div class="row">
<div class="col-md-12"> <div class="col col-md-12">
{% plugin_full_width_page object %} {% plugin_full_width_page object %}
</div> </div>
</div> </div>

View File

@ -9,7 +9,7 @@
{% block content %} {% block content %}
<div class="row mb-3"> <div class="row mb-3">
<div class="col-md-6"> <div class="col col-md-6">
<div class="card"> <div class="card">
<h5 class="card-header"> <h5 class="card-header">
Circuit Type Circuit Type
@ -35,13 +35,13 @@
</div> </div>
{% plugin_left_page object %} {% plugin_left_page object %}
</div> </div>
<div class="col-md-6"> <div class="col col-md-6">
{% include 'inc/custom_fields_panel.html' %} {% include 'inc/custom_fields_panel.html' %}
{% plugin_right_page object %} {% plugin_right_page object %}
</div> </div>
</div> </div>
<div class="row mb-3"> <div class="row mb-3">
<div class="col-md-12"> <div class="col col-md-12">
<div class="card"> <div class="card">
<h5 class="card-header"> <h5 class="card-header">
Circuits Circuits

View File

@ -4,13 +4,13 @@
{% load plugins %} {% load plugins %}
{% block breadcrumbs %} {% block breadcrumbs %}
<li><a href="{% url 'circuits:provider_list' %}">Providers</a></li> <li class="breadcrumb-item"><a href="{% url 'circuits:provider_list' %}">Providers</a></li>
<li>{{ object }}</li> <li class="breadcrumb-item">{{ object }}</li>
{% endblock %} {% endblock %}
{% block content %} {% block content %}
<div class="row"> <div class="row">
<div class="col-md-4"> <div class="col col-md-4">
<div class="card"> <div class="card">
<h5 class="card-header"> <h5 class="card-header">
Provider Provider
@ -54,7 +54,7 @@
</div> </div>
{% plugin_left_page object %} {% plugin_left_page object %}
</div> </div>
<div class="col-md-6"> <div class="col col-md-6">
{% include 'inc/custom_fields_panel.html' %} {% include 'inc/custom_fields_panel.html' %}
{% include 'extras/inc/tags_panel.html' with tags=object.tags.all url='circuits:provider_list' %} {% include 'extras/inc/tags_panel.html' with tags=object.tags.all url='circuits:provider_list' %}
<div class="card"> <div class="card">
@ -71,7 +71,7 @@
</div> </div>
{% plugin_right_page object %} {% plugin_right_page object %}
</div> </div>
<div class="col-md-8"> <div class="col col-md-8">
<div class="card"> <div class="card">
<h5 class="card-header"> <h5 class="card-header">
Circuits Circuits
@ -91,7 +91,7 @@
</div> </div>
</div> </div>
<div class="row"> <div class="row">
<div class="col-md-12"> <div class="col col-md-12">
{% plugin_full_width_page object %} {% plugin_full_width_page object %}
</div> </div>
</div> </div>

View File

@ -11,7 +11,7 @@
{% block content %} {% block content %}
<div class="row"> <div class="row">
<div class="col-md-6"> <div class="col col-md-6">
<div class="card"> <div class="card">
<h5 class="card-header"> <h5 class="card-header">
Provider Network Provider Network
@ -37,7 +37,7 @@
</div> </div>
{% plugin_left_page object %} {% plugin_left_page object %}
</div> </div>
<div class="col-md-6"> <div class="col col-md-6">
<div class="card"> <div class="card">
<h5 class="card-header"> <h5 class="card-header">
Comments Comments
@ -56,7 +56,7 @@
</div> </div>
</div> </div>
<div class="row"> <div class="row">
<div class="col-md-12"> <div class="col col-md-12">
<div class="card"> <div class="card">
<h5 class="card-header"> <h5 class="card-header">
Circuits Circuits
@ -69,7 +69,7 @@
</div> </div>
</div> </div>
<div class="row"> <div class="row">
<div class="col-md-12"> <div class="col col-md-12">
{% plugin_full_width_page object %} {% plugin_full_width_page object %}
</div> </div>
</div> </div>

View File

@ -25,7 +25,7 @@
{% block content %} {% block content %}
<div class="row"> <div class="row">
<div class="col-md-6"> <div class="col col-md-6">
<div class="card"> <div class="card">
<h5 class="card-header"> <h5 class="card-header">
Cable Cable
@ -73,7 +73,7 @@
{% include 'extras/inc/tags_panel.html' with tags=object.tags.all url='dcim:cable_list' %} {% include 'extras/inc/tags_panel.html' with tags=object.tags.all url='dcim:cable_list' %}
{% plugin_left_page object %} {% plugin_left_page object %}
</div> </div>
<div class="col-md-6"> <div class="col col-md-6">
<div class="card"> <div class="card">
<h5 class="card-header"> <h5 class="card-header">
Termination A Termination A
@ -94,7 +94,7 @@
</div> </div>
</div> </div>
<div class="row"> <div class="row">
<div class="col-md-12"> <div class="col col-md-12">
{% plugin_full_width_page object %} {% plugin_full_width_page object %}
</div> </div>
</div> </div>

View File

@ -14,7 +14,7 @@
{{ field }} {{ field }}
{% endfor %} {% endfor %}
<div class="row my-3"> <div class="row my-3">
<div class="col-md-5"> <div class="col col-md-5">
<div class="card h-100"> <div class="card h-100">
<h5 class="card-header"> <h5 class="card-header">
A Side A Side
@ -68,10 +68,10 @@
</div> </div>
</div> </div>
</div> </div>
<div class="col-md-2 d-flex flex-column justify-content-center align-items-center"> <div class="col col-md-2 d-flex flex-column justify-content-center align-items-center">
<i class="mdi mdi-swap-horizontal-bold mdi-48px"></i> <i class="mdi mdi-swap-horizontal-bold mdi-48px"></i>
</div> </div>
<div class="col-md-5"> <div class="col col-md-5">
<div class="card h-100"> <div class="card h-100">
<h5 class="card-header"> <h5 class="card-header">
B Side B Side
@ -123,12 +123,12 @@
</div> </div>
</div> </div>
<div class="row my-3 justify-content-center"> <div class="row my-3 justify-content-center">
<div class="col-md-8"> <div class="col col-md-8">
{% include 'dcim/inc/cable_form.html' %} {% include 'dcim/inc/cable_form.html' %}
</div> </div>
</div> </div>
<div class="row my-3"> <div class="row my-3">
<div class="col-md-12 text-center"> <div class="col col-md-12 text-center">
<a href="{{ return_url }}" class="btn btn-outline-danger">Cancel</a> <a href="{{ return_url }}" class="btn btn-outline-danger">Cancel</a>
<button type="submit" name="_update" class="btn btn-primary">Connect</button> <button type="submit" name="_update" class="btn btn-primary">Connect</button>
</div> </div>

View File

@ -7,7 +7,7 @@
{% block content %} {% block content %}
<div class="row"> <div class="row">
<div class="col-md-5 col-sm-12"> <div class="col col-md-5">
<div class="cable-trace"> <div class="cable-trace">
{% with traced_path=path.origin.trace %} {% with traced_path=path.origin.trace %}
{% for near_end, cable, far_end in traced_path %} {% for near_end, cable, far_end in traced_path %}
@ -87,7 +87,7 @@
{% endwith %} {% endwith %}
</div> </div>
</div> </div>
<div class="col-md-7 col-sm-12"> <div class="col col-md-7">
<div class="card"> <div class="card">
<h5 class="card-header"> <h5 class="card-header">

View File

@ -7,7 +7,7 @@
{% block content %} {% block content %}
<div class="row mb-3"> <div class="row mb-3">
<div class="col-md-9"> <div class="col col-md-9">
<div class="card"> <div class="card">
<div class="card-body"> <div class="card-body">
{% include 'responsive_table.html' %} {% include 'responsive_table.html' %}
@ -15,7 +15,7 @@
</div> </div>
{% include 'inc/paginator.html' with paginator=table.paginator page=table.page %} {% include 'inc/paginator.html' with paginator=table.paginator page=table.page %}
</div> </div>
<div class="col-md-3 float-end right-side-panel noprint"> <div class="col col-md-3 float-end right-side-panel noprint">
{% include 'inc/search_panel.html' %} {% include 'inc/search_panel.html' %}
</div> </div>
</div> </div>

View File

@ -9,7 +9,7 @@
{% block content %} {% block content %}
<div class="row"> <div class="row">
<div class="col-md-6"> <div class="col col-md-6">
<div class="card"> <div class="card">
<h5 class="card-header"> <h5 class="card-header">
Console Port Console Port
@ -49,7 +49,7 @@
{% include 'extras/inc/tags_panel.html' with tags=object.tags.all %} {% include 'extras/inc/tags_panel.html' with tags=object.tags.all %}
{% plugin_left_page object %} {% plugin_left_page object %}
</div> </div>
<div class="col-md-6"> <div class="col col-md-6">
<div class="card"> <div class="card">
<h5 class="card-header"> <h5 class="card-header">
Connection Connection
@ -145,7 +145,7 @@
</div> </div>
</div> </div>
<div class="row"> <div class="row">
<div class="col-md-12"> <div class="col col-md-12">
{% plugin_full_width_page object %} {% plugin_full_width_page object %}
</div> </div>
</div> </div>

View File

@ -9,7 +9,7 @@
{% block content %} {% block content %}
<div class="row"> <div class="row">
<div class="col-md-6"> <div class="col col-md-6">
<div class="card"> <div class="card">
<h5 class="card-header"> <h5 class="card-header">
Console Server Port Console Server Port
@ -49,7 +49,7 @@
{% include 'extras/inc/tags_panel.html' with tags=object.tags.all %} {% include 'extras/inc/tags_panel.html' with tags=object.tags.all %}
{% plugin_left_page object %} {% plugin_left_page object %}
</div> </div>
<div class="col-md-6"> <div class="col col-md-6">
<div class="card"> <div class="card">
<h5 class="card-header"> <h5 class="card-header">
Connection Connection
@ -145,7 +145,7 @@
</div> </div>
</div> </div>
<div class="row"> <div class="row">
<div class="col-md-12"> <div class="col col-md-12">
{% plugin_full_width_page object %} {% plugin_full_width_page object %}
</div> </div>
</div> </div>

View File

@ -7,11 +7,11 @@
{% block content %} {% block content %}
<div class="row"> <div class="row">
<div class="col-md-12"> <div class="col col-md-12">
<div class="tab-content"> <div class="tab-content">
<div role="tabpanel" class="tab-pane active" id="details"> <div role="tabpanel" class="tab-pane active" id="details">
<div class="row"> <div class="row">
<div class="col-md-6"> <div class="col col-md-6">
<div class="card"> <div class="card">
<h5 class="card-header"> <h5 class="card-header">
Device Device
@ -228,7 +228,7 @@
</div> </div>
{% plugin_left_page object %} {% plugin_left_page object %}
</div> </div>
<div class="col-md-6"> <div class="col col-md-6">
{% if object.powerports.exists and object.poweroutlets.exists %} {% if object.powerports.exists and object.poweroutlets.exists %}
<div class="card"> <div class="card">
<h5 class="card-header"> <h5 class="card-header">
@ -369,7 +369,7 @@
</div> </div>
</div> </div>
<div class="row"> <div class="row">
<div class="col-md-12"> <div class="col col-md-12">
{% plugin_full_width_page object %} {% plugin_full_width_page object %}
</div> </div>
</div> </div>

View File

@ -9,7 +9,7 @@
{% block content %} {% block content %}
<div class="row"> <div class="row">
<div class="col-md-10 col-md-offset-1"> <div class="col col-md-10">
<div class="card"> <div class="card">
<div class="card-overlay"> <div class="card-overlay">
<div class="spinner-border" role="status"> <div class="spinner-border" role="status">

View File

@ -9,7 +9,7 @@
{% block content %} {% block content %}
<div class="row"> <div class="row">
<div class="col-md-6"> <div class="col col-md-6">
<div class="card"> <div class="card">
<div class="card-overlay d-none"> <div class="card-overlay d-none">
<div class="spinner-border" role="status"> <div class="spinner-border" role="status">
@ -56,7 +56,7 @@
</div> </div>
</div> </div>
</div> </div>
<div class="col-md-6"> <div class="col col-md-6">
<div class="card"> <div class="card">
<div class="card-overlay d-none"> <div class="card-overlay d-none">
<div class="spinner-border" role="status"> <div class="spinner-border" role="status">

View File

@ -9,7 +9,7 @@
<form action="" method="post" enctype="multipart/form-data"> <form action="" method="post" enctype="multipart/form-data">
{% csrf_token %} {% csrf_token %}
<div class="row"> <div class="row">
<div class="col-md-8"> <div class="col col-md-8">
<div class="field-group"> <div class="field-group">
<h4>{{ component_type|title }}</h4> <h4>{{ component_type|title }}</h4>
{% render_form form %} {% render_form form %}
@ -17,7 +17,7 @@
</div> </div>
</div> </div>
<div class="row my-3"> <div class="row my-3">
<div class="col-md-8 text-end"> <div class="col col-md-8 text-end">
{% block buttons %} {% block buttons %}
<a class="btn btn-outline-danger" href="{{ return_url }}">Cancel</a> <a class="btn btn-outline-danger" href="{{ return_url }}">Cancel</a>
<button type="submit" name="_addanother" class="btn btn-outline-primary"> <button type="submit" name="_addanother" class="btn btn-outline-primary">

View File

@ -9,7 +9,7 @@
{% block content %} {% block content %}
<div class="row"> <div class="row">
<div class="col-md-6"> <div class="col col-md-6">
<div class="card"> <div class="card">
<h5 class="card-header"> <h5 class="card-header">
Device Bay Device Bay
@ -41,7 +41,7 @@
{% include 'extras/inc/tags_panel.html' with tags=object.tags.all %} {% include 'extras/inc/tags_panel.html' with tags=object.tags.all %}
{% plugin_left_page object %} {% plugin_left_page object %}
</div> </div>
<div class="col-md-6"> <div class="col col-md-6">
<div class="card"> <div class="card">
<h5 class="card-header"> <h5 class="card-header">
Installed Device Installed Device
@ -73,7 +73,7 @@
</div> </div>
</div> </div>
<div class="row"> <div class="row">
<div class="col-md-12"> <div class="col col-md-12">
{% plugin_full_width_page object %} {% plugin_full_width_page object %}
</div> </div>
</div> </div>

View File

@ -7,7 +7,7 @@
<form action="." method="post"> <form action="." method="post">
{% csrf_token %} {% csrf_token %}
<div class="row mb-3"> <div class="row mb-3">
<div class="col-md-6 col-md-offset-3"> <div class="col col-md-6 offset-md-3">
<div class="card"> <div class="card">
<div class="card-header">{% block title %}Populate {{ device_bay }}{% endblock %}</div> <div class="card-header">{% block title %}Populate {{ device_bay }}{% endblock %}</div>
<div class="card-body"> <div class="card-body">
@ -25,7 +25,7 @@
</div> </div>
</div> </div>
<div class="row"> <div class="row">
<div class="col-md-6 text-end"> <div class="col col-md-6 text-end">
<a href="{{ return_url }}" class="btn btn-outline-danger">Cancel</a> <a href="{{ return_url }}" class="btn btn-outline-danger">Cancel</a>
<button type="submit" name="_update" class="btn btn-primary">Save</button> <button type="submit" name="_update" class="btn btn-primary">Save</button>
</div> </div>

View File

@ -9,7 +9,7 @@
{% block content %} {% block content %}
<div class="row mb-3"> <div class="row mb-3">
<div class="col-md-6"> <div class="col col-md-6">
<div class="card"> <div class="card">
<h5 class="card-header"> <h5 class="card-header">
Device Role Device Role
@ -51,13 +51,13 @@
</div> </div>
{% plugin_left_page object %} {% plugin_left_page object %}
</div> </div>
<div class="col-md-6"> <div class="col col-md-6">
{% include 'inc/custom_fields_panel.html' %} {% include 'inc/custom_fields_panel.html' %}
{% plugin_right_page object %} {% plugin_right_page object %}
</div> </div>
</div> </div>
<div class="row mb-3"> <div class="row mb-3">
<div class="col-md-12"> <div class="col col-md-12">
<div class="card"> <div class="card">
<h5 class="card-header"> <h5 class="card-header">
Devices Devices

View File

@ -58,7 +58,7 @@
{% block content %} {% block content %}
<div class="row"> <div class="row">
<div class="col-md-6"> <div class="col col-md-6">
<div class="card"> <div class="card">
<h5 class="card-header"> <h5 class="card-header">
Chassis Chassis
@ -133,7 +133,7 @@
</div> </div>
{% plugin_left_page object %} {% plugin_left_page object %}
</div> </div>
<div class="col-md-6"> <div class="col col-md-6">
{% include 'inc/custom_fields_panel.html' %} {% include 'inc/custom_fields_panel.html' %}
{% include 'extras/inc/tags_panel.html' with tags=object.tags.all url='dcim:devicetype_list' %} {% include 'extras/inc/tags_panel.html' with tags=object.tags.all url='dcim:devicetype_list' %}
<div class="card"> <div class="card">
@ -152,12 +152,12 @@
</div> </div>
</div> </div>
<div class="row"> <div class="row">
<div class="col-md-12"> <div class="col col-md-12">
{% plugin_full_width_page object %} {% plugin_full_width_page object %}
</div> </div>
</div> </div>
<div class="row my-3"> <div class="row my-3">
<div class="col-md-12"> <div class="col col-md-12">
<ul class="nav nav-tabs" role="tablist"> <ul class="nav nav-tabs" role="tablist">
<li class="nav-item" role="presentation"> <li class="nav-item" role="presentation">
<button class="nav-link active" data-bs-target="#interfaces" role="tab" data-bs-toggle="tab"> <button class="nav-link active" data-bs-target="#interfaces" role="tab" data-bs-toggle="tab">

View File

@ -9,7 +9,7 @@
<form action="." method="post"> <form action="." method="post">
{% csrf_token %} {% csrf_token %}
<div class="row"> <div class="row">
<div class="col-md-6 col-md-offset-3"> <div class="col col-md-6">
<div class="field-group mb-3"> <div class="field-group mb-3">
<h4>New {{ component_type }}</h4> <h4>New {{ component_type }}</h4>
<div class="form-floating mb-3"> <div class="form-floating mb-3">
@ -19,7 +19,7 @@
{% render_form form %} {% render_form form %}
</div> </div>
</div> </div>
<div class="col-md-9 col-md-offset-3"> <div class="col col-md-9">
<a href="{{ return_url }}" class="btn btn-outline-danger">Cancel</a> <a href="{{ return_url }}" class="btn btn-outline-danger">Cancel</a>
<button type="submit" name="_update" class="btn btn-primary">Save</button> <button type="submit" name="_update" class="btn btn-primary">Save</button>
</div> </div>

View File

@ -10,7 +10,7 @@
{% block content %} {% block content %}
<div class="row"> <div class="row">
<div class="col-md-6"> <div class="col col-md-6">
<div class="card"> <div class="card">
<h5 class="card-header"> <h5 class="card-header">
Front Port Front Port
@ -56,7 +56,7 @@
{% include 'extras/inc/tags_panel.html' with tags=object.tags.all %} {% include 'extras/inc/tags_panel.html' with tags=object.tags.all %}
{% plugin_left_page object %} {% plugin_left_page object %}
</div> </div>
<div class="col-md-6"> <div class="col col-md-6">
<div class="card"> <div class="card">
<h5 class="card-header"> <h5 class="card-header">
Connection Connection
@ -126,7 +126,7 @@
</div> </div>
</div> </div>
<div class="row"> <div class="row">
<div class="col-md-12"> <div class="col col-md-12">
{% plugin_full_width_page object %} {% plugin_full_width_page object %}
</div> </div>
</div> </div>

View File

@ -19,7 +19,7 @@
{% block content %} {% block content %}
<div class="row mb-3"> <div class="row mb-3">
<div class="col-md-6"> <div class="col col-md-6">
<div class="card"> <div class="card">
<h5 class="card-header"> <h5 class="card-header">
Interface Interface
@ -86,7 +86,7 @@
{% include 'extras/inc/tags_panel.html' with tags=object.tags.all %} {% include 'extras/inc/tags_panel.html' with tags=object.tags.all %}
{% plugin_left_page object %} {% plugin_left_page object %}
</div> </div>
<div class="col-md-6"> <div class="col col-md-6">
{% if object.is_connectable %} {% if object.is_connectable %}
<div class="card"> <div class="card">
<h5 class="card-header"> <h5 class="card-header">
@ -267,7 +267,7 @@
</div> </div>
</div> </div>
<div class="row mb-3"> <div class="row mb-3">
<div class="col-md-12"> <div class="col col-md-12">
<div class="card"> <div class="card">
<h5 class="card-header"> <h5 class="card-header">
IP Addresses IP Addresses
@ -290,17 +290,17 @@
</div> </div>
</div> </div>
<div class="row mb-3"> <div class="row mb-3">
<div class="col-md-12"> <div class="col col-md-12">
{% include 'panel_table.html' with table=vlan_table heading="VLANs" %} {% include 'panel_table.html' with table=vlan_table heading="VLANs" %}
</div> </div>
</div> </div>
<div class="row mb-3"> <div class="row mb-3">
<div class="col-md-12"> <div class="col col-md-12">
{% include 'panel_table.html' with table=child_interfaces_table heading="Child Interfaces" %} {% include 'panel_table.html' with table=child_interfaces_table heading="Child Interfaces" %}
</div> </div>
</div> </div>
<div class="row mb-3"> <div class="row mb-3">
<div class="col-md-12"> <div class="col col-md-12">
{% plugin_full_width_page object %} {% plugin_full_width_page object %}
</div> </div>
</div> </div>

View File

@ -9,7 +9,7 @@
{% block content %} {% block content %}
<div class="row mb-3"> <div class="row mb-3">
<div class="col-md-6"> <div class="col col-md-6">
<div class="card"> <div class="card">
<h5 class="card-header"> <h5 class="card-header">
Inventory Item Inventory Item
@ -73,12 +73,12 @@
{% include 'extras/inc/tags_panel.html' with tags=object.tags.all %} {% include 'extras/inc/tags_panel.html' with tags=object.tags.all %}
{% plugin_left_page object %} {% plugin_left_page object %}
</div> </div>
<div class="col-md-6"> <div class="col col-md-6">
{% plugin_right_page object %} {% plugin_right_page object %}
</div> </div>
</div> </div>
<div class="row mb-3"> <div class="row mb-3">
<div class="col-md-12"> <div class="col col-md-12">
{% plugin_full_width_page object %} {% plugin_full_width_page object %}
</div> </div>
</div> </div>

View File

@ -12,7 +12,7 @@
{% block content %} {% block content %}
<div class="row mb-3"> <div class="row mb-3">
<div class="col-md-6"> <div class="col col-md-6">
<div class="card"> <div class="card">
<h5 class="card-header"> <h5 class="card-header">
Location Location
@ -58,7 +58,7 @@
</div> </div>
{% plugin_left_page object %} {% plugin_left_page object %}
</div> </div>
<div class="col-md-6"> <div class="col col-md-6">
{% include 'inc/custom_fields_panel.html' %} {% include 'inc/custom_fields_panel.html' %}
<div class="card"> <div class="card">
<h5 class="card-header"> <h5 class="card-header">
@ -80,7 +80,7 @@
</div> </div>
</div> </div>
<div class="row mb-3"> <div class="row mb-3">
<div class="col-md-12"> <div class="col col-md-12">
<div class="card"> <div class="card">
<h5 class="card-header"> <h5 class="card-header">
Locations Locations

View File

@ -9,7 +9,7 @@
{% block content %} {% block content %}
<div class="row mb-3"> <div class="row mb-3">
<div class="col-md-6"> <div class="col col-md-6">
<div class="card"> <div class="card">
<h5 class="card-header"> <h5 class="card-header">
Manufacturer Manufacturer
@ -35,13 +35,13 @@
</div> </div>
{% plugin_left_page object %} {% plugin_left_page object %}
</div> </div>
<div class="col-md-6"> <div class="col col-md-6">
{% include 'inc/custom_fields_panel.html' %} {% include 'inc/custom_fields_panel.html' %}
{% plugin_right_page object %} {% plugin_right_page object %}
</div> </div>
</div> </div>
<div class="row mb-3"> <div class="row mb-3">
<div class="col-md-12"> <div class="col col-md-12">
<div class="card"> <div class="card">
<h5 class="card-header"> <h5 class="card-header">
Device Types Device Types

View File

@ -9,7 +9,7 @@
{% block content %} {% block content %}
<div class="row mb-3"> <div class="row mb-3">
<div class="col-md-6"> <div class="col col-md-6">
<div class="card"> <div class="card">
<h5 class="card-header"> <h5 class="card-header">
Platform Platform
@ -53,13 +53,13 @@
</div> </div>
{% plugin_left_page object %} {% plugin_left_page object %}
</div> </div>
<div class="col-md-6"> <div class="col col-md-6">
{% include 'inc/custom_fields_panel.html' %} {% include 'inc/custom_fields_panel.html' %}
{% plugin_right_page object %} {% plugin_right_page object %}
</div> </div>
</div> </div>
<div class="row mb-3"> <div class="row mb-3">
<div class="col-md-12"> <div class="col col-md-12">
<div class="card"> <div class="card">
<h5 class="card-header"> <h5 class="card-header">
Devices Devices

View File

@ -16,7 +16,7 @@
{% block content %} {% block content %}
<div class="row"> <div class="row">
<div class="col-md-6"> <div class="col col-md-6">
<div class="card"> <div class="card">
<h5 class="card-header"> <h5 class="card-header">
Power Feed Power Feed
@ -112,7 +112,7 @@
{% include 'extras/inc/tags_panel.html' with tags=object.tags.all url='dcim:powerfeed_list' %} {% include 'extras/inc/tags_panel.html' with tags=object.tags.all url='dcim:powerfeed_list' %}
{% plugin_left_page object %} {% plugin_left_page object %}
</div> </div>
<div class="col-md-6"> <div class="col col-md-6">
<div class="card"> <div class="card">
<h5 class="card-header"> <h5 class="card-header">
Connection Connection
@ -199,7 +199,7 @@
</div> </div>
</div> </div>
<div class="row"> <div class="row">
<div class="col-md-12"> <div class="col col-md-12">
{% plugin_full_width_page object %} {% plugin_full_width_page object %}
</div> </div>
</div> </div>

View File

@ -9,7 +9,7 @@
{% block content %} {% block content %}
<div class="row mb-3"> <div class="row mb-3">
<div class="col-md-6"> <div class="col col-md-6">
<div class="card"> <div class="card">
<h5 class="card-header"> <h5 class="card-header">
Power Outlet Power Outlet
@ -53,7 +53,7 @@
{% include 'extras/inc/tags_panel.html' with tags=object.tags.all %} {% include 'extras/inc/tags_panel.html' with tags=object.tags.all %}
{% plugin_left_page object %} {% plugin_left_page object %}
</div> </div>
<div class="col-md-6"> <div class="col col-md-6">
<div class="card"> <div class="card">
<h5 class="card-header"> <h5 class="card-header">
Connection Connection
@ -123,7 +123,7 @@
</div> </div>
</div> </div>
<div class="row mb-3"> <div class="row mb-3">
<div class="col-md-12"> <div class="col col-md-12">
{% plugin_full_width_page object %} {% plugin_full_width_page object %}
</div> </div>
</div> </div>

View File

@ -14,7 +14,7 @@
{% block content %} {% block content %}
<div class="row"> <div class="row">
<div class="col-md-6"> <div class="col col-md-6">
<div class="card"> <div class="card">
<h5 class="card-header"> <h5 class="card-header">
Power Panel Power Panel
@ -42,14 +42,14 @@
</div> </div>
{% plugin_left_page object %} {% plugin_left_page object %}
</div> </div>
<div class="col-md-6"> <div class="col col-md-6">
{% include 'inc/custom_fields_panel.html' %} {% include 'inc/custom_fields_panel.html' %}
{% include 'extras/inc/tags_panel.html' with tags=object.tags.all url='dcim:powerpanel_list' %} {% include 'extras/inc/tags_panel.html' with tags=object.tags.all url='dcim:powerpanel_list' %}
{% plugin_right_page object %} {% plugin_right_page object %}
</div> </div>
</div> </div>
<div class="row my-3"> <div class="row my-3">
<div class="col-md-12"> <div class="col col-md-12">
<form method="post"> <form method="post">
{% csrf_token %} {% csrf_token %}
<div class="card"> <div class="card">

View File

@ -9,7 +9,7 @@
{% block content %} {% block content %}
<div class="row mb-3"> <div class="row mb-3">
<div class="col-md-6"> <div class="col col-md-6">
<div class="card"> <div class="card">
<h5 class="card-header"> <h5 class="card-header">
Power Port Power Port
@ -53,7 +53,7 @@
{% include 'extras/inc/tags_panel.html' with tags=object.tags.all %} {% include 'extras/inc/tags_panel.html' with tags=object.tags.all %}
{% plugin_left_page object %} {% plugin_left_page object %}
</div> </div>
<div class="col-md-6"> <div class="col col-md-6">
<div class="card"> <div class="card">
<h5 class="card-header"> <h5 class="card-header">
Connection Connection
@ -133,7 +133,7 @@
</div> </div>
</div> </div>
<div class="row"> <div class="row">
<div class="col-md-12"> <div class="col col-md-12">
{% plugin_full_width_page object %} {% plugin_full_width_page object %}
</div> </div>
</div> </div>

View File

@ -33,7 +33,7 @@
{% block content %} {% block content %}
<div class="row"> <div class="row">
<div class="col-md-6"> <div class="col col-md-6">
<div class="card"> <div class="card">
<h5 class="card-header"> <h5 class="card-header">
Rack Rack
@ -310,15 +310,15 @@
</div> </div>
{% plugin_left_page object %} {% plugin_left_page object %}
</div> </div>
<div class="col-md-6"> <div class="col col-md-6">
<div class="row" style="margin-bottom: 20px"> <div class="row" style="margin-bottom: 20px">
<div class="col-md-6 col-sm-6 col-xs-12 text-center"> <div class="col col-md-6 col-sm-6 col-xs-12 text-center">
<div style="margin-left: 30px"> <div style="margin-left: 30px">
<h4>Front</h4> <h4>Front</h4>
{% include 'dcim/inc/rack_elevation.html' with face='front' %} {% include 'dcim/inc/rack_elevation.html' with face='front' %}
</div> </div>
</div> </div>
<div class="col-md-6 col-sm-6 col-xs-12 text-center"> <div class="col col-md-6 col-sm-6 col-xs-12 text-center">
<div style="margin-left: 30px"> <div style="margin-left: 30px">
<h4>Rear</h4> <h4>Rear</h4>
{% include 'dcim/inc/rack_elevation.html' with face='rear' %} {% include 'dcim/inc/rack_elevation.html' with face='rear' %}
@ -373,7 +373,7 @@
</div> </div>
</div> </div>
<div class="row"> <div class="row">
<div class="col-md-12"> <div class="col col-md-12">
{% plugin_full_width_page object %} {% plugin_full_width_page object %}
</div> </div>
</div> </div>

View File

@ -30,16 +30,16 @@
{% render_field form.width %} {% render_field form.width %}
{% render_field form.u_height %} {% render_field form.u_height %}
<div class="row mb-3"> <div class="row mb-3">
<label class="col-md-3 col-form-label">Outer Dimensions</label> <label class="col col-md-3 col-form-label">Outer Dimensions</label>
<div class="col-md-3"> <div class="col col-md-3">
{{ form.outer_width }} {{ form.outer_width }}
<div class="form-text">Width</div> <div class="form-text">Width</div>
</div> </div>
<div class="col-md-3"> <div class="col col-md-3">
{{ form.outer_depth }} {{ form.outer_depth }}
<div class="form-text">Depth</div> <div class="form-text">Depth</div>
</div> </div>
<div class="col-md-3"> <div class="col col-md-3">
{{ form.outer_unit }} {{ form.outer_unit }}
<div class="form-text">Unit</div> <div class="form-text">Unit</div>
</div> </div>

View File

@ -24,8 +24,8 @@
{% block content %} {% block content %}
<div class="row"> <div class="row">
<div class="col-md-12"> <div class="col col-md-12">
<div class="col-md-3 float-end right-side-panel noprint"> <div class="col col-md-3 float-end right-side-panel noprint">
{% include 'inc/search_panel.html' %} {% include 'inc/search_panel.html' %}
</div> </div>
{% if page %} {% if page %}

View File

@ -12,7 +12,7 @@
{% block content %} {% block content %}
<div class="row mb-3"> <div class="row mb-3">
<div class="col-md-6"> <div class="col col-md-6">
<div class="card"> <div class="card">
<h5 class="card-header"> <h5 class="card-header">
Rack Rack
@ -87,15 +87,15 @@
{% include 'extras/inc/tags_panel.html' with tags=object.tags.all url='dcim:rackreservation_list' %} {% include 'extras/inc/tags_panel.html' with tags=object.tags.all url='dcim:rackreservation_list' %}
{% plugin_left_page object %} {% plugin_left_page object %}
</div> </div>
<div class="col-md-6"> <div class="col col-md-6">
<div class="row" style="margin-bottom: 20px"> <div class="row" style="margin-bottom: 20px">
<div class="col-md-6 col-sm-6 col-xs-12 text-center"> <div class="col col-md-6 col-sm-6 col-xs-12 text-center">
<div style="margin-left: 30px"> <div style="margin-left: 30px">
<h4>Front</h4> <h4>Front</h4>
{% include 'dcim/inc/rack_elevation.html' with object=object.rack face='front' %} {% include 'dcim/inc/rack_elevation.html' with object=object.rack face='front' %}
</div> </div>
</div> </div>
<div class="col-md-6 col-sm-6 col-xs-12 text-center"> <div class="col col-md-6 col-sm-6 col-xs-12 text-center">
<div style="margin-left: -30px"> <div style="margin-left: -30px">
<h4>Rear</h4> <h4>Rear</h4>
{% include 'dcim/inc/rack_elevation.html' with object=object.rack face='rear' %} {% include 'dcim/inc/rack_elevation.html' with object=object.rack face='rear' %}
@ -106,7 +106,7 @@
</div> </div>
</div> </div>
<div class="row"> <div class="row">
<div class="col-md-12"> <div class="col col-md-12">
{% plugin_full_width_page object %} {% plugin_full_width_page object %}
</div> </div>
</div> </div>

View File

@ -9,7 +9,7 @@
{% block content %} {% block content %}
<div class="row mb-3"> <div class="row mb-3">
<div class="col-md-6"> <div class="col col-md-6">
<div class="card"> <div class="card">
<h5 class="card-header"> <h5 class="card-header">
Rack Role Rack Role
@ -41,13 +41,13 @@
</div> </div>
{% plugin_left_page object %} {% plugin_left_page object %}
</div> </div>
<div class="col-md-6"> <div class="col col-md-6">
{% include 'inc/custom_fields_panel.html' %} {% include 'inc/custom_fields_panel.html' %}
{% plugin_right_page object %} {% plugin_right_page object %}
</div> </div>
</div> </div>
<div class="row mb-3"> <div class="row mb-3">
<div class="col-md-12"> <div class="col col-md-12">
<div class="card"> <div class="card">
<h5 class="card-header"> <h5 class="card-header">
Racks Racks

View File

@ -9,7 +9,7 @@
{% block content %} {% block content %}
<div class="row"> <div class="row">
<div class="col-md-6"> <div class="col col-md-6">
<div class="card"> <div class="card">
<h5 class="card-header"> <h5 class="card-header">
Rear Port Rear Port
@ -49,7 +49,7 @@
{% include 'extras/inc/tags_panel.html' with tags=object.tags.all %} {% include 'extras/inc/tags_panel.html' with tags=object.tags.all %}
{% plugin_left_page object %} {% plugin_left_page object %}
</div> </div>
<div class="col-md-6"> <div class="col col-md-6">
<div class="card"> <div class="card">
<h5 class="card-header"> <h5 class="card-header">
Connection Connection
@ -113,7 +113,7 @@
</div> </div>
</div> </div>
<div class="row"> <div class="row">
<div class="col-md-12"> <div class="col col-md-12">
{% plugin_full_width_page object %} {% plugin_full_width_page object %}
</div> </div>
</div> </div>

View File

@ -12,7 +12,7 @@
{% block content %} {% block content %}
<div class="row mb-3"> <div class="row mb-3">
<div class="col-md-6"> <div class="col col-md-6">
<div class="card"> <div class="card">
<h5 class="card-header"> <h5 class="card-header">
Region Region
@ -49,7 +49,7 @@
{% include 'inc/custom_fields_panel.html' %} {% include 'inc/custom_fields_panel.html' %}
{% plugin_left_page object %} {% plugin_left_page object %}
</div> </div>
<div class="col-md-6"> <div class="col col-md-6">
<div class="card"> <div class="card">
<h5 class="card-header"> <h5 class="card-header">
Child Regions Child Regions
@ -69,7 +69,7 @@
</div> </div>
</div> </div>
<div class="row"> <div class="row">
<div class="col-md-12"> <div class="col col-md-12">
<div class="card"> <div class="card">
<h5 class="card-header"> <h5 class="card-header">
Sites Sites

View File

@ -16,7 +16,7 @@
{% block content %} {% block content %}
<div class="row"> <div class="row">
<div class="col-md-7"> <div class="col col-md-7">
<div class="card"> <div class="card">
<h5 class="card-header"> <h5 class="card-header">
Site Site
@ -164,34 +164,34 @@
</div> </div>
{% plugin_left_page object %} {% plugin_left_page object %}
</div> </div>
<div class="col-md-5"> <div class="col col-md-5">
<div class="card"> <div class="card">
<h5 class="card-header"> <h5 class="card-header">
Stats Stats
</h5> </h5>
<div class="card-body"> <div class="card-body">
<div class="row"> <div class="row">
<div class="col-md-4 text-center"> <div class="col col-md-4 text-center">
<h2><a href="{% url 'dcim:rack_list' %}?site_id={{ object.pk }}" class="btn {% if stats.rack_count %}btn-primary{% else %}btn-outline-dark{% endif %} btn-lg">{{ stats.rack_count }}</a></h2> <h2><a href="{% url 'dcim:rack_list' %}?site_id={{ object.pk }}" class="btn {% if stats.rack_count %}btn-primary{% else %}btn-outline-dark{% endif %} btn-lg">{{ stats.rack_count }}</a></h2>
<p>Racks</p> <p>Racks</p>
</div> </div>
<div class="col-md-4 text-center"> <div class="col col-md-4 text-center">
<h2><a href="{% url 'dcim:device_list' %}?site_id={{ object.pk }}" class="btn {% if stats.device_count %}btn-primary{% else %}btn-outline-dark{% endif %} btn-lg">{{ stats.device_count }}</a></h2> <h2><a href="{% url 'dcim:device_list' %}?site_id={{ object.pk }}" class="btn {% if stats.device_count %}btn-primary{% else %}btn-outline-dark{% endif %} btn-lg">{{ stats.device_count }}</a></h2>
<p>Devices</p> <p>Devices</p>
</div> </div>
<div class="col-md-4 text-center"> <div class="col col-md-4 text-center">
<h2><a href="{% url 'ipam:prefix_list' %}?site_id={{ object.pk }}" class="btn {% if stats.prefix_count %}btn-primary{% else %}btn-outline-dark{% endif %} btn-lg">{{ stats.prefix_count }}</a></h2> <h2><a href="{% url 'ipam:prefix_list' %}?site_id={{ object.pk }}" class="btn {% if stats.prefix_count %}btn-primary{% else %}btn-outline-dark{% endif %} btn-lg">{{ stats.prefix_count }}</a></h2>
<p>Prefixes</p> <p>Prefixes</p>
</div> </div>
<div class="col-md-4 text-center"> <div class="col col-md-4 text-center">
<h2><a href="{% url 'ipam:vlan_list' %}?site_id={{ object.pk }}" class="btn {% if stats.vlan_count %}btn-primary{% else %}btn-outline-dark{% endif %} btn-lg">{{ stats.vlan_count }}</a></h2> <h2><a href="{% url 'ipam:vlan_list' %}?site_id={{ object.pk }}" class="btn {% if stats.vlan_count %}btn-primary{% else %}btn-outline-dark{% endif %} btn-lg">{{ stats.vlan_count }}</a></h2>
<p>VLANs</p> <p>VLANs</p>
</div> </div>
<div class="col-md-4 text-center"> <div class="col col-md-4 text-center">
<h2><a href="{% url 'circuits:circuit_list' %}?site_id={{ object.pk }}" class="btn {% if stats.circuit_count %}btn-primary{% else %}btn-outline-dark{% endif %} btn-lg">{{ stats.circuit_count }}</a></h2> <h2><a href="{% url 'circuits:circuit_list' %}?site_id={{ object.pk }}" class="btn {% if stats.circuit_count %}btn-primary{% else %}btn-outline-dark{% endif %} btn-lg">{{ stats.circuit_count }}</a></h2>
<p>Circuits</p> <p>Circuits</p>
</div> </div>
<div class="col-md-4 text-center"> <div class="col col-md-4 text-center">
<h2><a href="{% url 'virtualization:virtualmachine_list' %}?site_id={{ object.pk }}" class="btn {% if stats.vm_count %}btn-primary{% else %}btn-outline-dark{% endif %} btn-lg">{{ stats.vm_count }}</a></h2> <h2><a href="{% url 'virtualization:virtualmachine_list' %}?site_id={{ object.pk }}" class="btn {% if stats.vm_count %}btn-primary{% else %}btn-outline-dark{% endif %} btn-lg">{{ stats.vm_count }}</a></h2>
<p>Virtual Machines</p> <p>Virtual Machines</p>
</div> </div>
@ -246,7 +246,7 @@
</div> </div>
</div> </div>
<div class="row"> <div class="row">
<div class="col-md-12"> <div class="col col-md-12">
{% plugin_full_width_page object %} {% plugin_full_width_page object %}
</div> </div>
</div> </div>

View File

@ -12,7 +12,7 @@
{% block content %} {% block content %}
<div class="row mb-3"> <div class="row mb-3">
<div class="col-md-6"> <div class="col col-md-6">
<div class="card"> <div class="card">
<h5 class="card-header"> <h5 class="card-header">
Site Group Site Group
@ -49,7 +49,7 @@
{% include 'inc/custom_fields_panel.html' %} {% include 'inc/custom_fields_panel.html' %}
{% plugin_left_page object %} {% plugin_left_page object %}
</div> </div>
<div class="col-md-6"> <div class="col col-md-6">
<div class="card"> <div class="card">
<h5 class="card-header"> <h5 class="card-header">
Child Groups Child Groups
@ -69,7 +69,7 @@
</div> </div>
</div> </div>
<div class="row mb-3"> <div class="row mb-3">
<div class="col-md-12"> <div class="col col-md-12">
<div class="card"> <div class="card">
<h5 class="card-header"> <h5 class="card-header">
Sites Sites

View File

@ -22,7 +22,7 @@
{% block content %} {% block content %}
<div class="row"> <div class="row">
<div class="col-md-4"> <div class="col col-md-4">
<div class="card"> <div class="card">
<h5 class="card-header"> <h5 class="card-header">
Virtual Chassis Virtual Chassis
@ -50,7 +50,7 @@
{% include 'extras/inc/tags_panel.html' with tags=object.tags.all url='dcim:virtualchassis_list' %} {% include 'extras/inc/tags_panel.html' with tags=object.tags.all url='dcim:virtualchassis_list' %}
{% plugin_left_page object %} {% plugin_left_page object %}
</div> </div>
<div class="col-md-8"> <div class="col col-md-8">
<div class="card"> <div class="card">
<h5 class="card-header"> <h5 class="card-header">
Members Members
@ -87,7 +87,7 @@
</div> </div>
</div> </div>
<div class="row"> <div class="row">
<div class="col-md-12"> <div class="col col-md-12">
{% plugin_full_width_page object %} {% plugin_full_width_page object %}
</div> </div>
</div> </div>

View File

@ -7,7 +7,7 @@
<form action="" method="post" enctype="multipart/form-data" class="form form-horizontal"> <form action="" method="post" enctype="multipart/form-data" class="form form-horizontal">
{% csrf_token %} {% csrf_token %}
<div class="row mb-3"> <div class="row mb-3">
<div class="col-md-6"> <div class="col col-md-6">
<div class="card"> <div class="card">
<h5 class="card-header">Add New Member</h5> <h5 class="card-header">Add New Member</h5>
<div class="card-body"> <div class="card-body">
@ -18,7 +18,7 @@
</div> </div>
</div> </div>
<div class="row mb-3"> <div class="row mb-3">
<div class="col-md-6 text-end"> <div class="col col-md-6 text-end">
<a href="{{ return_url }}" class="btn btn-outline-danger">Cancel</a> <a href="{{ return_url }}" class="btn btn-outline-danger">Cancel</a>
<button type="submit" name="_addanother" class="btn btn-outline-primary">Add Another</button> <button type="submit" name="_addanother" class="btn btn-outline-primary">Add Another</button>
<button type="submit" name="_save" class="btn btn-primary">Save</button> <button type="submit" name="_save" class="btn btn-primary">Save</button>

View File

@ -10,7 +10,7 @@
{{ pk_form.pk }} {{ pk_form.pk }}
{{ formset.management_form }} {{ formset.management_form }}
<div class="row"> <div class="row">
<div class="col-md-8"> <div class="col col-md-8">
<div class="card"> <div class="card">
<h5 class="card-header">Virtual Chassis</h5> <h5 class="card-header">Virtual Chassis</h5>
<div class="card-body"> <div class="card-body">
@ -91,7 +91,7 @@
</div> </div>
</div> </div>
<div class="row my-3"> <div class="row my-3">
<div class="col-md-8 col-md-offset-2 text-end"> <div class="col col-md-8 col col-md-offset-2 text-end">
<a href="{{ return_url }}" class="btn btn-outline-danger">Cancel</a> <a href="{{ return_url }}" class="btn btn-outline-danger">Cancel</a>
{% if vc_form.instance.pk %} {% if vc_form.instance.pk %}
<button type="submit" name="_update" class="btn btn-primary">Update</button> <button type="submit" name="_update" class="btn btn-primary">Update</button>

View File

@ -9,7 +9,7 @@
{% block content %} {% block content %}
<div class="row"> <div class="row">
<div class="col-md-5"> <div class="col col-md-5">
<div class="card"> <div class="card">
<h5 class="card-header"> <h5 class="card-header">
Config Context Config Context
@ -185,7 +185,7 @@
</div> </div>
</div> </div>
</div> </div>
<div class="col-md-7"> <div class="col col-md-7">
<div class="card"> <div class="card">
<div class="card-header"> <div class="card-header">
<h5>Data</h5> <h5>Data</h5>

View File

@ -10,7 +10,7 @@
{% block content %} {% block content %}
<div class="row mb-3"> <div class="row mb-3">
<div class="col-md-4"> <div class="col col-md-4">
<div class="card"> <div class="card">
<h5 class="card-header"> <h5 class="card-header">
Journal Entry Journal Entry
@ -45,7 +45,7 @@
</div> </div>
</div> </div>
</div> </div>
<div class="col-md-8"> <div class="col col-md-8">
<div class="card"> <div class="card">
<h5 class="card-header"> <h5 class="card-header">
Comments Comments

View File

@ -6,7 +6,7 @@
{% block content %} {% block content %}
<div class="row"> <div class="row">
<div class="col-md-6"> <div class="col col-md-6">
<div class="card"> <div class="card">
<h5 class="card-header"> <h5 class="card-header">
Rendered Context Rendered Context
@ -17,7 +17,7 @@
</div> </div>
</div> </div>
</div> </div>
<div class="col-md-6"> <div class="col col-md-6">
<div class="card"> <div class="card">
<h5 class="card-header"> <h5 class="card-header">
Local Context Local Context

View File

@ -8,7 +8,7 @@
{% block content %} {% block content %}
{% if perms.extras.add_journalentry %} {% if perms.extras.add_journalentry %}
<form action="{% url 'extras:journalentry_add' %}" method="post" enctype="multipart/form-data"> <form action="{% url 'extras:journalentry_add' %}" method="post" enctype="multipart/form-data">
<div class="col-md-9 col-md-offset-3"> <div class="col col-md-9">
<div class="field-group"> <div class="field-group">
<h4>New Journal Entry</h4> <h4>New Journal Entry</h4>
{% csrf_token %} {% csrf_token %}
@ -18,14 +18,14 @@
{% render_field form.kind %} {% render_field form.kind %}
{% render_field form.comments %} {% render_field form.comments %}
</div> </div>
<div class="col-md-12 col-md-offset-3 text-end my-3"> <div class="col col-md-12 text-end my-3">
<a href="{{ object.get_absolute_url }}" class="btn btn-outline-danger">Cancel</a> <a href="{{ object.get_absolute_url }}" class="btn btn-outline-danger">Cancel</a>
<button type="submit" class="btn btn-primary">Save</button> <button type="submit" class="btn btn-primary">Save</button>
</div> </div>
</div> </div>
</form> </form>
{% endif %} {% endif %}
<div class="col-md-9 col-md-offset-3 mb-3"> <div class="col col-md-9 mb-3">
{% include 'panel_table.html' %} {% include 'panel_table.html' %}
</div> </div>
{% include 'inc/paginator.html' with paginator=table.paginator page=table.page %} {% include 'inc/paginator.html' with paginator=table.paginator page=table.page %}

View File

@ -21,7 +21,7 @@
{% block header %} {% block header %}
<div class="row noprint"> <div class="row noprint">
<div class="col-sm-4 col-md-3"> <div class="col col-sm-4 col-md-3">
<form action="{% url 'extras:objectchange_list' %}" method="get"> <form action="{% url 'extras:objectchange_list' %}" method="get">
<div class="input-group"> <div class="input-group">
<input type="text" name="q" class="form-control" /> <input type="text" name="q" class="form-control" />
@ -38,7 +38,7 @@
{% block content %} {% block content %}
<div class="row mb-3"> <div class="row mb-3">
<div class="col-md-5"> <div class="col col-md-5">
<div class="card"> <div class="card">
<h5 class="card-header"> <h5 class="card-header">
Change Change
@ -89,7 +89,7 @@
</div> </div>
</div> </div>
</div> </div>
<div class="col-md-7"> <div class="col col-md-7">
<div class="card"> <div class="card">
<div class="card-header"> <div class="card-header">
<h5 class="d-inline">Difference</h5> <h5 class="d-inline">Difference</h5>
@ -122,7 +122,7 @@
</div> </div>
</div> </div>
<div class="row mb-3"> <div class="row mb-3">
<div class="col-md-6"> <div class="col col-md-6">
<div class="card"> <div class="card">
<h5 class="card-header"> <h5 class="card-header">
Pre-Change Data Pre-Change Data
@ -139,7 +139,7 @@
</div> </div>
</div> </div>
</div> </div>
<div class="col-md-6"> <div class="col col-md-6">
<div class="card"> <div class="card">
<h5 class="card-header"> <h5 class="card-header">
Post-Change Data Post-Change Data
@ -158,7 +158,7 @@
</div> </div>
</div> </div>
<div class="row mb-3"> <div class="row mb-3">
<div class="col-md-12"> <div class="col col-md-12">
{% include 'panel_table.html' with table=related_changes_table heading='Related Changes' panel_class='default' %} {% include 'panel_table.html' with table=related_changes_table heading='Related Changes' panel_class='default' %}
{% if related_changes_count > related_changes_table.rows|length %} {% if related_changes_count > related_changes_table.rows|length %}
<div class="float-end"> <div class="float-end">

View File

@ -32,7 +32,7 @@
</div> </div>
{% endif %} {% endif %}
<div class="row"> <div class="row">
<div class="col-md-12"> <div class="col col-md-12">
{% if report.result %} {% if report.result %}
Last run: <a href="{% url 'extras:report_result' job_result_pk=report.result.pk %}"> Last run: <a href="{% url 'extras:report_result' job_result_pk=report.result.pk %}">
<strong>{{ report.result.created }}</strong> <strong>{{ report.result.created }}</strong>

View File

@ -5,7 +5,7 @@
{% block content %} {% block content %}
<div class="row"> <div class="row">
<div class="col-md-9"> <div class="col col-md-9">
{% if reports %} {% if reports %}
{% for module, module_reports in reports %} {% for module, module_reports in reports %}
<div class="card"> <div class="card">
@ -85,7 +85,7 @@
</div> </div>
{% endif %} {% endif %}
</div> </div>
<div class="col-md-3"> <div class="col col-md-3">
{% if reports %} {% if reports %}
<div class="card"> <div class="card">
<div class="card-body"> <div class="card-body">

View File

@ -11,7 +11,7 @@
{% block content %} {% block content %}
<div class="row"> <div class="row">
<div class="col-md-12"> <div class="col col-md-12">
<p> <p>
Run: <strong>{{ result.created }}</strong> Run: <strong>{{ result.created }}</strong>
{% if result.completed %} {% if result.completed %}

View File

@ -29,7 +29,7 @@
<div class="tab-content py-3"> <div class="tab-content py-3">
<div role="tabpanel" class="tab-pane active" id="run"> <div role="tabpanel" class="tab-pane active" id="run">
<div class="row"> <div class="row">
<div class="col-md-6"> <div class="col col-md-6">
{% if not perms.extras.run_script %} {% if not perms.extras.run_script %}
<div class="alert alert-warning"> <div class="alert alert-warning">
<i class="mdi mdi-alert"></i> <i class="mdi mdi-alert"></i>

View File

@ -5,7 +5,7 @@
{% block content %} {% block content %}
<div class="row"> <div class="row">
<div class="col-md-9"> <div class="col col-md-9">
{% if scripts %} {% if scripts %}
{% for module, module_scripts in scripts.items %} {% for module, module_scripts in scripts.items %}
<h3><a name="module.{{ module }}"></a>{{ module|bettertitle }}</h3> <h3><a name="module.{{ module }}"></a>{{ module|bettertitle }}</h3>
@ -49,7 +49,7 @@
</div> </div>
{% endif %} {% endif %}
</div> </div>
<div class="col-md-3"> <div class="col col-md-3">
{% if scripts %} {% if scripts %}
<div class="card"> <div class="card">
<div class="card-body"> <div class="card-body">

View File

@ -13,7 +13,7 @@
{% block content %} {% block content %}
<div class="row noprint"> <div class="row noprint">
<div class="col-md-12"> <div class="col col-md-12">
<nav class="breadcrumb-container" aria-label="breadcrumb"> <nav class="breadcrumb-container" aria-label="breadcrumb">
<ol class="breadcrumb"> <ol class="breadcrumb">
<li class="breadcrumb-item"><a href="{% url 'extras:script_list' %}">Scripts</a></li> <li class="breadcrumb-item"><a href="{% url 'extras:script_list' %}">Scripts</a></li>
@ -50,7 +50,7 @@
<div role="tabpanel" class="tab-pane active" id="log"> <div role="tabpanel" class="tab-pane active" id="log">
{% if result.completed %} {% if result.completed %}
<div class="row"> <div class="row">
<div class="col-md-12"> <div class="col col-md-12">
<div class="card"> <div class="card">
<h5 class="card-header"> <h5 class="card-header">
Script Log Script Log
@ -87,7 +87,7 @@
</div> </div>
{% else %} {% else %}
<div class="row"> <div class="row">
<div class="col-md-12"> <div class="col col-md-12">
<div class="well">Pending Results</div> <div class="well">Pending Results</div>
</div> </div>
</div> </div>

View File

@ -9,7 +9,7 @@
{% block content %} {% block content %}
<div class="row"> <div class="row">
<div class="col-md-6"> <div class="col col-md-6">
<div class="card"> <div class="card">
<h5 class="card-header"> <h5 class="card-header">
Tag Tag
@ -50,13 +50,13 @@
</div> </div>
</div> </div>
</div> </div>
<div class="col-md-6"> <div class="col col-md-6">
{% include 'panel_table.html' with table=items_table heading='Tagged Objects' %} {% include 'panel_table.html' with table=items_table heading='Tagged Objects' %}
{% include 'inc/paginator.html' with paginator=items_table.paginator page=items_table.page %} {% include 'inc/paginator.html' with paginator=items_table.paginator page=items_table.page %}
</div> </div>
</div> </div>
<div class="row"> <div class="row">
<div class="col-md-12"> <div class="col col-md-12">
{% include 'inc/paginator.html' with paginator=taggeditem_table.paginator page=taggeditem_table.page %} {% include 'inc/paginator.html' with paginator=taggeditem_table.paginator page=taggeditem_table.page %}
</div> </div>
</div> </div>

View File

@ -14,12 +14,12 @@
{{ field }} {{ field }}
{% endfor %} {% endfor %}
<div class="row"> <div class="row">
<div class="col-md-7"> <div class="col col-md-7">
<div class="card"> <div class="card">
{% include 'inc/table.html' %} {% include 'inc/table.html' %}
</div> </div>
</div> </div>
<div class="col-md-5"> <div class="col col-md-5">
<div class="card"> <div class="card">
<h5 class="card-header">{{ model_name|title }} to Add</h5> <h5 class="card-header">{{ model_name|title }} to Add</h5>
<div class="card-body"> <div class="card-body">
@ -29,7 +29,7 @@
</div> </div>
</div> </div>
<div class="form-group text-end"> <div class="form-group text-end">
<div class="col-md-12"> <div class="col col-md-12">
<a href="{{ return_url }}" class="btn btn-outline-danger">Cancel</a> <a href="{{ return_url }}" class="btn btn-outline-danger">Cancel</a>
<button type="submit" name="_create" class="btn btn-primary">Create</button> <button type="submit" name="_create" class="btn btn-primary">Create</button>
</div> </div>

View File

@ -5,7 +5,7 @@
{% block content %} {% block content %}
<div class="row"> <div class="row">
<div class="col-md-8"> <div class="col col-md-8">
<div class="alert alert-danger mb-3" role="alert"> <div class="alert alert-danger mb-3" role="alert">
<h4 class="alert-heading">Confirm Bulk Deletion</h4> <h4 class="alert-heading">Confirm Bulk Deletion</h4>
<hr /> <hr />
@ -17,7 +17,7 @@
</div> </div>
</div> </div>
<div class="row"> <div class="row">
<div class="col-md-8"> <div class="col col-md-8">
<div class="card"> <div class="card">
<div class="card-body"> <div class="card-body">
{% include 'inc/table.html' %} {% include 'inc/table.html' %}
@ -26,7 +26,7 @@
</div> </div>
</div> </div>
<div class="row mt-3"> <div class="row mt-3">
<div class="col-md-8"> <div class="col col-md-8">
<form action="" method="post"> <form action="" method="post">
{% csrf_token %} {% csrf_token %}
{% for field in form.hidden_fields %} {% for field in form.hidden_fields %}

View File

@ -14,14 +14,14 @@
{{ field }} {{ field }}
{% endfor %} {% endfor %}
<div class="row mb-3"> <div class="row mb-3">
<div class="col-md-8"> <div class="col col-md-8">
<div class="card"> <div class="card">
<div class="card-body"> <div class="card-body">
{% include 'inc/table.html' %} {% include 'inc/table.html' %}
</div> </div>
</div> </div>
</div> </div>
<div class="col-md-4"> <div class="col col-md-4">
<div class="card"> <div class="card">
<h5 class="card-header">{% block form_title %}Attributes{% endblock %}</h5> <h5 class="card-header">{% block form_title %}Attributes{% endblock %}</h5>
<div class="card-body"> <div class="card-body">

View File

@ -6,7 +6,7 @@
{% block content %} {% block content %}
<div class="row"> <div class="row">
<div class="col-md-8 col-md-offset-2"> <div class="col col-md-8 offset-md-2">
<ul class="nav nav-tabs mb-3" role="tablist"> <ul class="nav nav-tabs mb-3" role="tablist">
<li class="nav-item" role="presentation"> <li class="nav-item" role="presentation">
<a href="#csv" class="nav-link active" role="tab" data-bs-toggle="tab">CSV</a> <a href="#csv" class="nav-link active" role="tab" data-bs-toggle="tab">CSV</a>
@ -18,7 +18,7 @@
{% csrf_token %} {% csrf_token %}
{% render_form form %} {% render_form form %}
<div class="form-group"> <div class="form-group">
<div class="col-md-12 text-end"> <div class="col col-md-12 text-end">
{% if return_url %} {% if return_url %}
<a href="{{ return_url }}" class="btn btn-outline-danger">Cancel</a> <a href="{{ return_url }}" class="btn btn-outline-danger">Cancel</a>
{% endif %} {% endif %}
@ -28,7 +28,7 @@
</form> </form>
{% if fields %} {% if fields %}
<div class="row my-3"> <div class="row my-3">
<div class="col-md-12"> <div class="col col-md-12">
<div class="card"> <div class="card">
<h5 class="card-header"> <h5 class="card-header">
CSV Field Options CSV Field Options

View File

@ -5,7 +5,7 @@
{% block content %} {% block content %}
<div class="row mb-3"> <div class="row mb-3">
<div class="col-md-6 offset-md-3"> <div class="col col-md-6 offset-md-3">
<div class="alert alert-danger" role="alert"> <div class="alert alert-danger" role="alert">
<h4 class="alert-heading">Confirm Bulk Removal</h4> <h4 class="alert-heading">Confirm Bulk Removal</h4>
<p><strong>Warning:</strong> The following operation will remove {{ table.rows|length }} {{ obj_type_plural }} from {{ parent_obj }}.</p> <p><strong>Warning:</strong> The following operation will remove {{ table.rows|length }} {{ obj_type_plural }} from {{ parent_obj }}.</p>
@ -15,7 +15,7 @@
</div> </div>
</div> </div>
<div class="row mb-3"> <div class="row mb-3">
<div class="col-md-12"> <div class="col col-md-12">
<div class="card"> <div class="card">
<div class="card-body"> <div class="card-body">
{% include 'inc/table.html' %} {% include 'inc/table.html' %}
@ -24,7 +24,7 @@
</div> </div>
</div> </div>
<div class="row mb-3"> <div class="row mb-3">
<div class="col-md-6 offset-md-3"> <div class="col col-md-6 offset-md-3">
<form action="." method="post" class="form"> <form action="." method="post" class="form">
{% csrf_token %} {% csrf_token %}
{% for field in form.hidden_fields %} {% for field in form.hidden_fields %}

View File

@ -6,7 +6,7 @@
{% block content %} {% block content %}
<div class="row mb-3"> <div class="row mb-3">
<div class="col-md-7"> <div class="col col-md-7">
<div class="card"> <div class="card">
<div class="card-body"> <div class="card-body">
<table class="table"> <table class="table">
@ -28,7 +28,7 @@
</div> </div>
</div> </div>
</div> </div>
<div class="col-md-5"> <div class="col col-md-5">
<form action="" method="post" class="form form-horizontal"> <form action="" method="post" class="form form-horizontal">
{% csrf_token %} {% csrf_token %}
<div class="card"> <div class="card">
@ -37,7 +37,7 @@
{% render_form form %} {% render_form form %}
</div> </div>
</div> </div>
<div class="col-md-12 my-3 text-end"> <div class="col col-md-12 my-3 text-end">
<a href="{{ return_url }}" class="btn btn-outline-danger">Cancel</a> <a href="{{ return_url }}" class="btn btn-outline-danger">Cancel</a>
<button type="submit" name="_preview" class="btn btn-primary">Preview</button> <button type="submit" name="_preview" class="btn btn-primary">Preview</button>
{% if '_preview' in request.POST and not form.errors %} {% if '_preview' in request.POST and not form.errors %}

View File

@ -15,7 +15,7 @@
{% csrf_token %} {% csrf_token %}
{% for field in form.hidden_fields %}{{ field }}{% endfor %} {% for field in form.hidden_fields %}{{ field }}{% endfor %}
<div class="row"> <div class="row">
<div class="col-md-8 col-md-offset-3"> <div class="col col-md-8">
{% block tabs %}{% endblock %} {% block tabs %}{% endblock %}
{% block form %} {% block form %}
{% if form.Meta.fieldsets %} {% if form.Meta.fieldsets %}
@ -51,7 +51,7 @@
</div> </div>
</div> </div>
<div class="row my-3"> <div class="row my-3">
<div class="col-md-8 col-md-offset-3 text-end"> <div class="col col-md-8 text-end">
{% block buttons %} {% block buttons %}
<a class="btn btn-outline-danger" href="{{ return_url }}">Cancel</a> <a class="btn btn-outline-danger" href="{{ return_url }}">Cancel</a>
{% if obj.pk %} {% if obj.pk %}

View File

@ -6,12 +6,12 @@
{% block content %} {% block content %}
<div class="row mb-3"> <div class="row mb-3">
<div class="col-md-8 col-md-offset-2"> <div class="col col-md-8">
<form action="" method="post" class="form form-horizontal"> <form action="" method="post" class="form form-horizontal">
{% csrf_token %} {% csrf_token %}
{% render_form form %} {% render_form form %}
<div class="form-group"> <div class="form-group">
<div class="col-md-12 text-end"> <div class="col col-md-12 text-end">
{% if return_url %} {% if return_url %}
<a href="{{ return_url }}" class="btn btn-outline-danger">Cancel</a> <a href="{{ return_url }}" class="btn btn-outline-danger">Cancel</a>
{% endif %} {% endif %}

View File

@ -56,10 +56,11 @@
{% endwith %} {% endwith %}
{% endif %} {% endif %}
<div class="row mb-3"> <div class="row mb-3">
<div class="{% if filter_form %}col-9{% else %}col-12{% endif %}"> <div class="col{% if filter_form %} col-md-9{% else %} col-md-12{% endif %}">
<div class="card"> <div class="card">
<div class="card-header"> <div class="card-header">
<div class="float-end col-md-2 noprint table-controls"> <div class="row">
<div class="col col-md-2 offset-md-10 noprint table-controls">
<div class="input-group input-group-sm"> <div class="input-group input-group-sm">
<input type="text" class="form-control object-filter" placeholder="Filter" title="Filter text (regular expressions supported)" /> <input type="text" class="form-control object-filter" placeholder="Filter" title="Filter text (regular expressions supported)" />
{% if request.user.is_authenticated and table_config_form %} {% if request.user.is_authenticated and table_config_form %}
@ -70,6 +71,7 @@
</div> </div>
</div> </div>
</div> </div>
</div>
<div class="card-body"> <div class="card-body">
{% with bulk_edit_url=content_type.model_class|validated_viewname:"bulk_edit" bulk_delete_url=content_type.model_class|validated_viewname:"bulk_delete" %} {% with bulk_edit_url=content_type.model_class|validated_viewname:"bulk_edit" bulk_delete_url=content_type.model_class|validated_viewname:"bulk_delete" %}
{% if permissions.change or permissions.delete %} {% if permissions.change or permissions.delete %}
@ -102,7 +104,7 @@
</div> </div>
</div> </div>
{% if filter_form %} {% if filter_form %}
<div class="col-3 noprint"> <div class="col col-md-3 noprint">
{% block sidebar %}{% endblock %} {% block sidebar %}{% endblock %}
{% include 'inc/search_panel.html' %} {% include 'inc/search_panel.html' %}
</div> </div>

View File

@ -1,33 +1,27 @@
{% extends 'layout.html' %} {% extends 'layout.html' %}
{% load helpers %} {% load helpers %}
{% block title_container %}{% endblock %} {% block title_container %}{% endblock %}
{% block content %} {% block content %}
<div class="stats-container"> <div class="stats-container">
<div class="row row-cols-auto masonry"> <div class="row masonry">
{% for section in stats %} {% for section in stats %}
<div class="col col-4 my-2 masonry-item"> <div class="col col-sm-12 col-md-4 my-2 masonry-item">
<div class="card"> <div class="card">
<h5 class="card-header text-primary">{{ section.label }}</h5> <h5 class="card-header text-primary">{{ section.label }}</h5>
<div class="card-body"> <div class="card-body">
<div class="list-group list-group-flush"> <div class="list-group list-group-flush">
{% for item in section.items %} {% for item in section.items %}
<a <a href="{% url item.url %}" class="list-group-item list-group-item-action">
href="{% url item.url %}" <div class="d-flex w-100 justify-content-between align-items-center">
class="list-group-item list-group-item-action"
>
<div
class="d-flex w-100 justify-content-between align-items-center"
>
<div class="d-flex flex-column align-items-start"> <div class="d-flex flex-column align-items-start">
<h6 class="mb-1">{{ item.label }}</h6> <h6 class="mb-1">{{ item.label }}</h6>
{% if item.description %} {% if item.description %}
<small class="mb-1 text-muted">{{ item.description }}</small> <small class="mb-1 text-muted">{{ item.description }}</small>
{% endif %} {% endif %}
</div> </div>
<span class="badge bg-secondary rounded-pill">{{ item.count }}</span>
<span class="badge bg-secondary rounded-pill"
>{{ item.count }}</span
>
</div> </div>
</a> </a>
{% endfor %} {% endfor %}

View File

@ -15,7 +15,7 @@
{% block content %} {% block content %}
<div class="row"> <div class="row">
<div class="col-md-6"> <div class="col col-md-6">
<div class="card"> <div class="card">
<h5 class="card-header"> <h5 class="card-header">
Aggregate Aggregate
@ -64,19 +64,19 @@
</div> </div>
{% plugin_left_page object %} {% plugin_left_page object %}
</div> </div>
<div class="col-md-6"> <div class="col col-md-6">
{% include 'inc/custom_fields_panel.html' %} {% include 'inc/custom_fields_panel.html' %}
{% include 'extras/inc/tags_panel.html' with tags=object.tags.all url='ipam:aggregate_list' %} {% include 'extras/inc/tags_panel.html' with tags=object.tags.all url='ipam:aggregate_list' %}
{% plugin_right_page object %} {% plugin_right_page object %}
</div> </div>
</div> </div>
<div class="row mb-3"> <div class="row mb-3">
<div class="col-md-12"> <div class="col col-md-12">
{% plugin_full_width_page object %} {% plugin_full_width_page object %}
</div> </div>
</div> </div>
<div class="row mb-3"> <div class="row mb-3">
<div class="col-md-12"> <div class="col col-md-12">
{% include 'utilities/obj_table.html' with table=prefix_table table_template='panel_table.html' heading='Child Prefixes' bulk_edit_url='ipam:prefix_bulk_edit' bulk_delete_url='ipam:prefix_bulk_delete' %} {% include 'utilities/obj_table.html' with table=prefix_table table_template='panel_table.html' heading='Child Prefixes' bulk_edit_url='ipam:prefix_bulk_edit' bulk_delete_url='ipam:prefix_bulk_delete' %}
</div> </div>
</div> </div>

View File

@ -13,7 +13,7 @@
{% block content %} {% block content %}
<div class="row"> <div class="row">
<div class="col-md-4"> <div class="col col-md-4">
<div class="card"> <div class="card">
<h5 class="card-header"> <h5 class="card-header">
IP Address IP Address
@ -113,7 +113,7 @@
{% plugin_left_page object %} {% plugin_left_page object %}
</div> </div>
<div class="col-md-8"> <div class="col col-md-8">
{% include 'panel_table.html' with table=parent_prefixes_table heading='Parent Prefixes' %} {% include 'panel_table.html' with table=parent_prefixes_table heading='Parent Prefixes' %}
{% if duplicate_ips_table.rows %} {% if duplicate_ips_table.rows %}
{# Custom version of panel_table.html #} {# Custom version of panel_table.html #}
@ -145,14 +145,14 @@
</div> </div>
<div class="row my-3"> <div class="row my-3">
<div class="col-md-4"> <div class="col col-md-4">
{% include 'extras/inc/tags_panel.html' with tags=object.tags.all url='ipam:ipaddress_list' %} {% include 'extras/inc/tags_panel.html' with tags=object.tags.all url='ipam:ipaddress_list' %}
</div> </div>
</div> </div>
<div class="row"> <div class="row">
<div class="col-md-12"> <div class="col col-md-12">
{% plugin_full_width_page object %} {% plugin_full_width_page object %}
</div> </div>
</div> </div>

View File

@ -12,7 +12,7 @@
{{ field }} {{ field }}
{% endfor %} {% endfor %}
<div class="row mb-3"> <div class="row mb-3">
<div class="col-md-6"> <div class="col col-md-6">
{% include 'ipam/inc/ipadress_edit_header.html' with active_tab='assign' %} {% include 'ipam/inc/ipadress_edit_header.html' with active_tab='assign' %}
<div class="card"> <div class="card">
<h5 class="card-header">Select IP Address</h5> <h5 class="card-header">Select IP Address</h5>
@ -24,7 +24,7 @@
</div> </div>
</div> </div>
<div class="row mb-3"> <div class="row mb-3">
<div class="col-md-6 text-end"> <div class="col col-md-6 text-end">
<a href="{{ return_url }}" class="btn btn-outline-danger">Cancel</a> <a href="{{ return_url }}" class="btn btn-outline-danger">Cancel</a>
<button type="submit" class="btn btn-primary">Search</button> <button type="submit" class="btn btn-primary">Search</button>
</div> </div>
@ -32,7 +32,7 @@
</form> </form>
{% if table %} {% if table %}
<div class="row mb-3"> <div class="row mb-3">
<div class="col-md-12"> <div class="col col-md-12">
<h3>Search Results</h3> <h3>Search Results</h3>
{% include 'utilities/obj_table.html' with table_template='panel_table.html' %} {% include 'utilities/obj_table.html' with table_template='panel_table.html' %}
</div> </div>

View File

@ -4,7 +4,7 @@
{% block content %} {% block content %}
<div class="row"> <div class="row">
<div class="col-md-5"> <div class="col col-md-5">
<div class="card"> <div class="card">
<h5 class="card-header"> <h5 class="card-header">
Prefix Prefix
@ -109,7 +109,7 @@
{% include 'inc/custom_fields_panel.html' %} {% include 'inc/custom_fields_panel.html' %}
{% plugin_left_page object %} {% plugin_left_page object %}
</div> </div>
<div class="col-md-7"> <div class="col col-md-7">
{% if duplicate_prefix_table.rows %} {% if duplicate_prefix_table.rows %}
{% include 'panel_table.html' with table=duplicate_prefix_table heading='Duplicate Prefixes' %} {% include 'panel_table.html' with table=duplicate_prefix_table heading='Duplicate Prefixes' %}
{% endif %} {% endif %}
@ -118,12 +118,12 @@
</div> </div>
</div> </div>
<div class="row my-3"> <div class="row my-3">
<div class="col-md-5"> <div class="col col-md-5">
{% include 'extras/inc/tags_panel.html' with tags=object.tags.all url='ipam:prefix_list' %} {% include 'extras/inc/tags_panel.html' with tags=object.tags.all url='ipam:prefix_list' %}
</div> </div>
</div> </div>
<div class="row"> <div class="row">
<div class="col-md-12"> <div class="col col-md-12">
{% plugin_full_width_page object %} {% plugin_full_width_page object %}
</div> </div>
</div> </div>

View File

@ -11,7 +11,7 @@
{% block content %} {% block content %}
<div class="row"> <div class="row">
<div class="col-md-12"> <div class="col col-md-12">
{% include 'utilities/obj_table.html' with table=ip_table table_template='panel_table.html' heading='IP Addresses' bulk_edit_url='ipam:ipaddress_bulk_edit' bulk_delete_url='ipam:ipaddress_bulk_delete' %} {% include 'utilities/obj_table.html' with table=ip_table table_template='panel_table.html' heading='IP Addresses' bulk_edit_url='ipam:ipaddress_bulk_edit' bulk_delete_url='ipam:ipaddress_bulk_delete' %}
</div> </div>
</div> </div>

View File

@ -18,7 +18,7 @@
{% block content %} {% block content %}
<div class="row"> <div class="row">
<div class="col-md-12"> <div class="col col-md-12">
{% include 'utilities/obj_table.html' with table=prefix_table table_template='panel_table.html' heading='Child Prefixes' bulk_edit_url='ipam:prefix_bulk_edit' bulk_delete_url='ipam:prefix_bulk_delete' parent=prefix %} {% include 'utilities/obj_table.html' with table=prefix_table table_template='panel_table.html' heading='Child Prefixes' bulk_edit_url='ipam:prefix_bulk_edit' bulk_delete_url='ipam:prefix_bulk_delete' parent=prefix %}
</div> </div>
</div> </div>

View File

@ -9,7 +9,7 @@
{% block content %} {% block content %}
<div class="row mb-3"> <div class="row mb-3">
<div class="col-md-6"> <div class="col col-md-6">
<div class="card"> <div class="card">
<h5 class="card-header"> <h5 class="card-header">
RIR RIR
@ -45,13 +45,13 @@
</div> </div>
{% plugin_left_page object %} {% plugin_left_page object %}
</div> </div>
<div class="col-md-6"> <div class="col col-md-6">
{% include 'inc/custom_fields_panel.html' %} {% include 'inc/custom_fields_panel.html' %}
{% plugin_right_page object %} {% plugin_right_page object %}
</div> </div>
</div> </div>
<div class="row mb-3"> <div class="row mb-3">
<div class="col-md-12"> <div class="col col-md-12">
<div class="card"> <div class="card">
<h5 class="card-header"> <h5 class="card-header">
Aggregates Aggregates

View File

@ -9,7 +9,7 @@
{% block content %} {% block content %}
<div class="row mb-3"> <div class="row mb-3">
<div class="col-md-6"> <div class="col col-md-6">
<div class="card"> <div class="card">
<h5 class="card-header"> <h5 class="card-header">
Role Role
@ -39,13 +39,13 @@
</div> </div>
{% plugin_left_page object %} {% plugin_left_page object %}
</div> </div>
<div class="col-md-6"> <div class="col col-md-6">
{% include 'inc/custom_fields_panel.html' %} {% include 'inc/custom_fields_panel.html' %}
{% plugin_right_page object %} {% plugin_right_page object %}
</div> </div>
</div> </div>
<div class="row mb-3"> <div class="row mb-3">
<div class="col-md-12"> <div class="col col-md-12">
<div class="card"> <div class="card">
<h5 class="card-header"> <h5 class="card-header">
Prefixes Prefixes

View File

@ -9,7 +9,7 @@
{% block content %} {% block content %}
<div class="row"> <div class="row">
<div class="col-md-6"> <div class="col col-md-6">
<div class="card"> <div class="card">
<h5 class="card-header"> <h5 class="card-header">
Route Target Route Target
@ -40,7 +40,7 @@
{% plugin_left_page object %} {% plugin_left_page object %}
</div> </div>
<div class="col-md-6"> <div class="col col-md-6">
<div class="mb-4"> <div class="mb-4">
{% include 'panel_table.html' with table=importing_vrfs_table heading="Importing VRFs" %} {% include 'panel_table.html' with table=importing_vrfs_table heading="Importing VRFs" %}
</div> </div>
@ -49,15 +49,15 @@
</div> </div>
</div> </div>
<div class="row my-3"> <div class="row my-3">
<div class="col-md-6"> <div class="col col-md-6">
{% include 'extras/inc/tags_panel.html' with tags=object.tags.all url='ipam:routetarget_list' %} {% include 'extras/inc/tags_panel.html' with tags=object.tags.all url='ipam:routetarget_list' %}
</div> </div>
<div class="col-md-6"> <div class="col col-md-6">
{% include 'inc/custom_fields_panel.html' %} {% include 'inc/custom_fields_panel.html' %}
</div> </div>
</div> </div>
<div class="row"> <div class="row">
<div class="col-md-12"> <div class="col col-md-12">
{% plugin_full_width_page object %} {% plugin_full_width_page object %}
</div> </div>
</div> </div>

View File

@ -27,7 +27,7 @@
{% block content %} {% block content %}
<div class="row mb-3"> <div class="row mb-3">
<div class="col-md-6"> <div class="col col-md-6">
<div class="card"> <div class="card">
<h5 class="card-header"> <h5 class="card-header">
Service Service
@ -73,12 +73,12 @@
{% include 'extras/inc/tags_panel.html' with tags=object.tags.all url='ipam:service_list' %} {% include 'extras/inc/tags_panel.html' with tags=object.tags.all url='ipam:service_list' %}
{% plugin_left_page object %} {% plugin_left_page object %}
</div> </div>
<div class="col-md-6"> <div class="col col-md-6">
{% plugin_right_page object %} {% plugin_right_page object %}
</div> </div>
</div> </div>
<div class="row mb-3"> <div class="row mb-3">
<div class="col-md-12"> <div class="col col-md-12">
{% plugin_full_width_page object %} {% plugin_full_width_page object %}
</div> </div>
</div> </div>

View File

@ -4,7 +4,7 @@
{% block content %} {% block content %}
<div class="row"> <div class="row">
<div class="col-md-4"> <div class="col col-md-4">
<div class="card"> <div class="card">
<h5 class="card-header"> <h5 class="card-header">
VLAN VLAN
@ -81,7 +81,7 @@
{% include 'extras/inc/tags_panel.html' with tags=object.tags.all url='ipam:vlan_list' %} {% include 'extras/inc/tags_panel.html' with tags=object.tags.all url='ipam:vlan_list' %}
{% plugin_left_page object %} {% plugin_left_page object %}
</div> </div>
<div class="col-md-8"> <div class="col col-md-8">
<div class="card"> <div class="card">
<h5 class="card-header"> <h5 class="card-header">
Prefixes Prefixes
@ -102,7 +102,7 @@
</div> </div>
</div> </div>
<div class="row"> <div class="row">
<div class="col-md-12"> <div class="col col-md-12">
{% plugin_full_width_page object %} {% plugin_full_width_page object %}
</div> </div>
</div> </div>

View File

@ -2,7 +2,7 @@
{% block content %} {% block content %}
<div class="row"> <div class="row">
<div class="col-md-12"> <div class="col col-md-12">
{% include 'utilities/obj_table.html' with table=members_table table_template='panel_table.html' heading='Device Interfaces' parent=vlan %} {% include 'utilities/obj_table.html' with table=members_table table_template='panel_table.html' heading='Device Interfaces' parent=vlan %}
</div> </div>
</div> </div>

View File

@ -2,7 +2,7 @@
{% block content %} {% block content %}
<div class="row"> <div class="row">
<div class="col-md-12"> <div class="col col-md-12">
{% include 'utilities/obj_table.html' with table=members_table table_template='panel_table.html' heading='Virtual Machine Interfaces' parent=vlan %} {% include 'utilities/obj_table.html' with table=members_table table_template='panel_table.html' heading='Virtual Machine Interfaces' parent=vlan %}
</div> </div>
</div> </div>

View File

@ -12,7 +12,7 @@
{% block content %} {% block content %}
<div class="row mb-3"> <div class="row mb-3">
<div class="col-md-6"> <div class="col col-md-6">
<div class="card"> <div class="card">
<h5 class="card-header"> <h5 class="card-header">
VLAN Group VLAN Group
@ -47,13 +47,13 @@
</div> </div>
{% plugin_left_page object %} {% plugin_left_page object %}
</div> </div>
<div class="col-md-6"> <div class="col col-md-6">
{% include 'inc/custom_fields_panel.html' %} {% include 'inc/custom_fields_panel.html' %}
{% plugin_right_page object %} {% plugin_right_page object %}
</div> </div>
</div> </div>
<div class="row mb-3"> <div class="row mb-3">
<div class="col-md-12"> <div class="col col-md-12">
<div class="card"> <div class="card">
<h5 class="card-header"> <h5 class="card-header">
VLANs VLANs

View File

@ -12,7 +12,7 @@
{% block content %} {% block content %}
<div class="row"> <div class="row">
<div class="col-md-6"> <div class="col col-md-6">
<div class="card"> <div class="card">
<h5 class="card-header"> <h5 class="card-header">
VRF VRF
@ -65,14 +65,14 @@
{% include 'inc/custom_fields_panel.html' %} {% include 'inc/custom_fields_panel.html' %}
{% plugin_left_page object %} {% plugin_left_page object %}
</div> </div>
<div class="col-md-6"> <div class="col col-md-6">
{% include 'panel_table.html' with table=import_targets_table heading="Import Route Targets" %} {% include 'panel_table.html' with table=import_targets_table heading="Import Route Targets" %}
{% include 'panel_table.html' with table=export_targets_table heading="Export Route Targets" %} {% include 'panel_table.html' with table=export_targets_table heading="Export Route Targets" %}
{% plugin_right_page object %} {% plugin_right_page object %}
</div> </div>
</div> </div>
<div class="row"> <div class="row">
<div class="col-md-12"> <div class="col col-md-12">
{% plugin_full_width_page object %} {% plugin_full_width_page object %}
</div> </div>
</div> </div>

View File

@ -2,43 +2,54 @@
{% load search_options %} {% load search_options %}
{% block head %}{% endblock %} {% block head %}{% endblock %}
{% block layout %} {% block layout %}
<div class="container-fluid"> <div class="container-fluid">
<div class="row"> <div class="row">
<nav
id="sidebar-menu" <main class="col-md-9 ms-sm-auto col-lg-10 px-0">
class="col-md-3 col-lg-2 d-md-block sidebar collapse px-0" <nav id="sidebar-menu" class="col-md-3 col-lg-2 d-md-block sidebar collapse px-0">
>
<div class="position-sticky pt-3"> <div class="position-sticky pt-3">
<a class="px-2 sidebar-logo" href="{% url 'home' %}"> <a class="px-2 sidebar-logo d-none d-md-flex" href="{% url 'home' %}">
{% load static %} {% load static %}
{% include 'logo.html' %} {% include 'logo.html' %}
</a> </a>
<ul class="nav flex-column"> <ul class="nav flex-column">
<div class="d-block d-md-none mx-1 my-3">
{% search_options %}
</div>
<div class="d-flex d-md-none mx-1 my-3 justify-content-end">
{% include './profile_button.html' %}
</div>
{% load nav %} {% nav %} {% load nav %} {% nav %}
</ul> </ul>
</div> </div>
{% include './bottom.html' %} {% include './bottom.html' %}
</nav> </nav>
<main class="col-md-9 ms-sm-auto col-lg-10 px-0">
<nav class="navbar navbar-light sticky-top flex-md-nowrap py-4 search container-fluid"> <nav class="navbar navbar-light sticky-top flex-md-nowrap py-4 search container-fluid">
<div class="d-md-none w-100 d-flex justify-content-between align-items-center my-3">
<a class="px-2 sidebar-logo d-block d-md-none" href="{% url 'home' %}">
{% include 'logo.html' %}
</a>
<button <button
type="button" type="button"
aria-expanded="false" aria-expanded="false"
data-bs-toggle="collapse" data-bs-toggle="collapse"
aria-controls="sidebarMenu" aria-controls="sidebar-menu"
data-bs-target="#sidebarMenu" data-bs-target="#sidebar-menu"
aria-label="Toggle navigation" aria-label="Toggle Navigation"
class="navbar-toggler position-absolute d-md-none collapsed" class="navbar-toggler position-relative collapsed"
> >
<span class="navbar-toggler-icon"></span> <span class="navbar-toggler-icon"></span>
</button> </button>
{% search_options %} {% include './profile_button.html' %} </div>
<div class="d-none d-md-flex w-100">
{% search_options %}
{% include './profile_button.html' %}
</div>
</nav> </nav>
<div class="px-4"> <div class="px-4 content-container">
{% block title_container %} {% block title_container %}
<div class="title-container"> <div class="title-container">
<div id="content-title"> <div id="content-title">

View File

@ -1,10 +1,10 @@
{% if request.user.is_authenticated %} {% if request.user.is_authenticated %}
<div class="dropdown"> <span class="dropdown ms-0 ms-md-3">
<button <button
type="button" type="button"
aria-expanded="false" aria-expanded="false"
data-bs-toggle="dropdown" data-bs-toggle="dropdown"
class="btn btn-outline-secondary dropdown-toggle ms-4" class="btn btn-outline-secondary dropdown-toggle"
> >
<i class="mdi mdi-account"></i> <i class="mdi mdi-account"></i>
<span id="navbar_user">{{ request.user|truncatechars:"30" }}</span> <span id="navbar_user">{{ request.user|truncatechars:"30" }}</span>
@ -35,7 +35,7 @@
</a> </a>
</li> </li>
</ul> </ul>
</div> </span>
{% else %} {% else %}
<div> <div>
<a <a

View File

@ -8,7 +8,7 @@
{% if request.GET.q %} {% if request.GET.q %}
{% if results %} {% if results %}
<div class="row"> <div class="row">
<div class="col-md-9"> <div class="col col-md-9">
{% for obj_type in results %} {% for obj_type in results %}
<h3 id="{{ obj_type.name|lower }}">{{ obj_type.name|bettertitle }}</h3> <h3 id="{{ obj_type.name|lower }}">{{ obj_type.name|bettertitle }}</h3>
{% include 'panel_table.html' with table=obj_type.table %} {% include 'panel_table.html' with table=obj_type.table %}
@ -22,7 +22,7 @@
</a> </a>
{% endfor %} {% endfor %}
</div> </div>
<div class="col-md-3"> <div class="col col-md-3">
<h3 class="invisible">&nbsp;</h3> <h3 class="invisible">&nbsp;</h3>
<div class="card"> <div class="card">
<h5 class="card-header"> <h5 class="card-header">
@ -46,7 +46,7 @@
{% endif %} {% endif %}
{% else %} {% else %}
<div class="row"> <div class="row">
<div class="col-sm-4 col-sm-offset-4"> <div class="col-4 offset-4">
<form action="{% url 'search' %}" method="get" class="form form-horizontal"> <form action="{% url 'search' %}" method="get" class="form form-horizontal">
<div class="card"> <div class="card">
<h5 class="card-header"> <h5 class="card-header">

View File

@ -1,5 +1,5 @@
<div class="row" style="padding-bottom: 20px"> <div class="row" style="padding-bottom: 20px">
<div class="col-md-12 text-center"> <div class="col col-md-12 text-center">
<form action="{% url 'search' %}" method="get" class="form-inline"> <form action="{% url 'search' %}" method="get" class="form-inline">
<input type="text" name="q" value="{{ request.GET.q }}" placeholder="Search" id="id_q" class="form-control" style="width: 350px" /> <input type="text" name="q" value="{{ request.GET.q }}" placeholder="Search" id="id_q" class="form-control" style="width: 350px" />
{{ search_form.obj_type }} {{ search_form.obj_type }}

View File

@ -13,7 +13,7 @@
{% block content %} {% block content %}
<div class="row"> <div class="row">
<div class="col-md-6"> <div class="col col-md-6">
<div class="card"> <div class="card">
<h5 class="card-header"> <h5 class="card-header">
Secret Attributes Secret Attributes
@ -42,7 +42,7 @@
{% include 'inc/custom_fields_panel.html' %} {% include 'inc/custom_fields_panel.html' %}
{% plugin_left_page object %} {% plugin_left_page object %}
</div> </div>
<div class="col-md-6"> <div class="col col-md-6">
<div class="card"> <div class="card">
<h5 class="card-header"> <h5 class="card-header">
Secret Data Secret Data
@ -52,9 +52,9 @@
{% csrf_token %} {% csrf_token %}
</form> </form>
<div class="row"> <div class="row">
<div class="col-md-2">Secret</div> <div class="col col-md-2">Secret</div>
<div class="col-md-6"><code id="secret_{{ object.pk }}">********</code></div> <div class="col col-md-6"><code id="secret_{{ object.pk }}">********</code></div>
<div class="col-md-4 text-end noprint"> <div class="col col-md-4 text-end noprint">
<button class="btn btn-sm btn-success unlock-secret" secret-id="{{ object.pk }}"> <button class="btn btn-sm btn-success unlock-secret" secret-id="{{ object.pk }}">
<i class="mdi mdi-lock"></i> Unlock <i class="mdi mdi-lock"></i> Unlock
</button> </button>
@ -73,7 +73,7 @@
</div> </div>
</div> </div>
<div class="row"> <div class="row">
<div class="col-md-12"> <div class="col col-md-12">
{% plugin_full_width_page object %} {% plugin_full_width_page object %}
</div> </div>
</div> </div>

View File

@ -61,7 +61,7 @@
<input class="form-control" value="********" id="secret_{{ obj.pk }}" /> <input class="form-control" value="********" id="secret_{{ obj.pk }}" />
<label class="required">Current Plain Text</label> <label class="required">Current Plain Text</label>
</div> </div>
<div class="col-md-2 text-end"> <div class="col col-md-2 text-end">
<button class="btn btn-sm btn-success unlock-secret" data-secret-id="{{ obj.pk }}"> <button class="btn btn-sm btn-success unlock-secret" data-secret-id="{{ obj.pk }}">
<i class="mdi mdi-lock"></i> Unlock <i class="mdi mdi-lock"></i> Unlock
</button> </button>

View File

@ -9,7 +9,7 @@
{% block content %} {% block content %}
<div class="row mb-3"> <div class="row mb-3">
<div class="col-md-6"> <div class="col col-md-6">
<div class="card"> <div class="card">
<h5 class="card-header"> <h5 class="card-header">
Secret Role Secret Role
@ -35,13 +35,13 @@
</div> </div>
{% plugin_left_page object %} {% plugin_left_page object %}
</div> </div>
<div class="col-md-6"> <div class="col col-md-6">
{% include 'inc/custom_fields_panel.html' %} {% include 'inc/custom_fields_panel.html' %}
{% plugin_right_page object %} {% plugin_right_page object %}
</div> </div>
</div> </div>
<div class="row"> <div class="row">
<div class="col-md-12"> <div class="col col-md-12">
<div class="card"> <div class="card">
<h5 class="card-header"> <h5 class="card-header">
Secrets Secrets

View File

@ -12,7 +12,7 @@
{% block content %} {% block content %}
<div class="row"> <div class="row">
<div class="col-md-7"> <div class="col col-md-7">
<div class="card"> <div class="card">
<h5 class="card-header"> <h5 class="card-header">
Tenant Tenant
@ -52,53 +52,53 @@
</div> </div>
{% plugin_left_page object %} {% plugin_left_page object %}
</div> </div>
<div class="col-md-5"> <div class="col col-md-5">
<div class="card"> <div class="card">
<h5 class="card-header"> <h5 class="card-header">
Stats Stats
</h5> </h5>
<div class="row card-body"> <div class="row card-body">
<div class="col-md-4 text-center"> <div class="col col-md-4 text-center">
<h2><a href="{% url 'dcim:site_list' %}?tenant_id={{ object.pk }}" class="stat-btn btn {% if stats.site_count %}btn-primary{% else %}btn-outline-dark{% endif %} btn-lg">{{ stats.site_count }}</a></h2> <h2><a href="{% url 'dcim:site_list' %}?tenant_id={{ object.pk }}" class="stat-btn btn {% if stats.site_count %}btn-primary{% else %}btn-outline-dark{% endif %} btn-lg">{{ stats.site_count }}</a></h2>
<p>Sites</p> <p>Sites</p>
</div> </div>
<div class="col-md-4 text-center"> <div class="col col-md-4 text-center">
<h2><a href="{% url 'dcim:rack_list' %}?tenant_id={{ object.pk }}" class="stat-btn btn {% if stats.rack_count %}btn-primary{% else %}btn-outline-dark{% endif %} btn-lg">{{ stats.rack_count }}</a></h2> <h2><a href="{% url 'dcim:rack_list' %}?tenant_id={{ object.pk }}" class="stat-btn btn {% if stats.rack_count %}btn-primary{% else %}btn-outline-dark{% endif %} btn-lg">{{ stats.rack_count }}</a></h2>
<p>Racks</p> <p>Racks</p>
</div> </div>
<div class="col-md-4 text-center"> <div class="col col-md-4 text-center">
<h2><a href="{% url 'dcim:rackreservation_list' %}?tenant_id={{ object.pk }}" class="stat-btn btn {% if stats.rackreservation_count %}btn-primary{% else %}btn-outline-dark{% endif %} btn-lg">{{ stats.rackreservation_count }}</a></h2> <h2><a href="{% url 'dcim:rackreservation_list' %}?tenant_id={{ object.pk }}" class="stat-btn btn {% if stats.rackreservation_count %}btn-primary{% else %}btn-outline-dark{% endif %} btn-lg">{{ stats.rackreservation_count }}</a></h2>
<p>Rack reservations</p> <p>Rack reservations</p>
</div> </div>
<div class="col-md-4 text-center"> <div class="col col-md-4 text-center">
<h2><a href="{% url 'dcim:device_list' %}?tenant_id={{ object.pk }}" class="stat-btn btn {% if stats.device_count %}btn-primary{% else %}btn-outline-dark{% endif %} btn-lg">{{ stats.device_count }}</a></h2> <h2><a href="{% url 'dcim:device_list' %}?tenant_id={{ object.pk }}" class="stat-btn btn {% if stats.device_count %}btn-primary{% else %}btn-outline-dark{% endif %} btn-lg">{{ stats.device_count }}</a></h2>
<p>Devices</p> <p>Devices</p>
</div> </div>
<div class="col-md-4 text-center"> <div class="col col-md-4 text-center">
<h2><a href="{% url 'ipam:vrf_list' %}?tenant_id={{ object.pk }}" class="stat-btn btn {% if stats.vrf_count %}btn-primary{% else %}btn-outline-dark{% endif %} btn-lg">{{ stats.vrf_count }}</a></h2> <h2><a href="{% url 'ipam:vrf_list' %}?tenant_id={{ object.pk }}" class="stat-btn btn {% if stats.vrf_count %}btn-primary{% else %}btn-outline-dark{% endif %} btn-lg">{{ stats.vrf_count }}</a></h2>
<p>VRFs</p> <p>VRFs</p>
</div> </div>
<div class="col-md-4 text-center"> <div class="col col-md-4 text-center">
<h2><a href="{% url 'ipam:prefix_list' %}?tenant_id={{ object.pk }}" class="stat-btn btn {% if stats.prefix_count %}btn-primary{% else %}btn-outline-dark{% endif %} btn-lg">{{ stats.prefix_count }}</a></h2> <h2><a href="{% url 'ipam:prefix_list' %}?tenant_id={{ object.pk }}" class="stat-btn btn {% if stats.prefix_count %}btn-primary{% else %}btn-outline-dark{% endif %} btn-lg">{{ stats.prefix_count }}</a></h2>
<p>Prefixes</p> <p>Prefixes</p>
</div> </div>
<div class="col-md-4 text-center"> <div class="col col-md-4 text-center">
<h2><a href="{% url 'ipam:ipaddress_list' %}?tenant_id={{ object.pk }}" class="stat-btn btn {% if stats.ipaddress_count %}btn-primary{% else %}btn-outline-dark{% endif %} btn-lg">{{ stats.ipaddress_count }}</a></h2> <h2><a href="{% url 'ipam:ipaddress_list' %}?tenant_id={{ object.pk }}" class="stat-btn btn {% if stats.ipaddress_count %}btn-primary{% else %}btn-outline-dark{% endif %} btn-lg">{{ stats.ipaddress_count }}</a></h2>
<p>IP addresses</p> <p>IP addresses</p>
</div> </div>
<div class="col-md-4 text-center"> <div class="col col-md-4 text-center">
<h2><a href="{% url 'ipam:vlan_list' %}?tenant_id={{ object.pk }}" class="stat-btn btn {% if stats.vlan_count %}btn-primary{% else %}btn-outline-dark{% endif %} btn-lg">{{ stats.vlan_count }}</a></h2> <h2><a href="{% url 'ipam:vlan_list' %}?tenant_id={{ object.pk }}" class="stat-btn btn {% if stats.vlan_count %}btn-primary{% else %}btn-outline-dark{% endif %} btn-lg">{{ stats.vlan_count }}</a></h2>
<p>VLANs</p> <p>VLANs</p>
</div> </div>
<div class="col-md-4 text-center"> <div class="col col-md-4 text-center">
<h2><a href="{% url 'circuits:circuit_list' %}?tenant_id={{ object.pk }}" class="stat-btn btn {% if stats.circuit_count %}btn-primary{% else %}btn-outline-dark{% endif %} btn-lg">{{ stats.circuit_count }}</a></h2> <h2><a href="{% url 'circuits:circuit_list' %}?tenant_id={{ object.pk }}" class="stat-btn btn {% if stats.circuit_count %}btn-primary{% else %}btn-outline-dark{% endif %} btn-lg">{{ stats.circuit_count }}</a></h2>
<p>Circuits</p> <p>Circuits</p>
</div> </div>
<div class="col-md-4 text-center"> <div class="col col-md-4 text-center">
<h2><a href="{% url 'virtualization:virtualmachine_list' %}?tenant_id={{ object.pk }}" class="stat-btn btn {% if stats.virtualmachine_count %}btn-primary{% else %}btn-outline-dark{% endif %} btn-lg">{{ stats.virtualmachine_count }}</a></h2> <h2><a href="{% url 'virtualization:virtualmachine_list' %}?tenant_id={{ object.pk }}" class="stat-btn btn {% if stats.virtualmachine_count %}btn-primary{% else %}btn-outline-dark{% endif %} btn-lg">{{ stats.virtualmachine_count }}</a></h2>
<p>Virtual machines</p> <p>Virtual machines</p>
</div> </div>
<div class="col-md-4 text-center"> <div class="col col-md-4 text-center">
<h2><a href="{% url 'virtualization:cluster_list' %}?tenant_id={{ object.pk }}" class="stat-btn btn {% if stats.cluster_count %}btn-primary{% else %}btn-outline-dark{% endif %} btn-lg">{{ stats.cluster_count }}</a></h2> <h2><a href="{% url 'virtualization:cluster_list' %}?tenant_id={{ object.pk }}" class="stat-btn btn {% if stats.cluster_count %}btn-primary{% else %}btn-outline-dark{% endif %} btn-lg">{{ stats.cluster_count }}</a></h2>
<p>Clusters</p> <p>Clusters</p>
</div> </div>
@ -108,7 +108,7 @@
</div> </div>
</div> </div>
<div class="row"> <div class="row">
<div class="col-md-12"> <div class="col col-md-12">
{% plugin_full_width_page object %} {% plugin_full_width_page object %}
</div> </div>
</div> </div>

View File

@ -12,7 +12,7 @@
{% block content %} {% block content %}
<div class="row mb-3"> <div class="row mb-3">
<div class="col-md-6"> <div class="col col-md-6">
<div class="card"> <div class="card">
<h5 class="card-header"> <h5 class="card-header">
Tenant Group Tenant Group
@ -48,13 +48,13 @@
</div> </div>
{% plugin_left_page object %} {% plugin_left_page object %}
</div> </div>
<div class="col-md-6"> <div class="col col-md-6">
{% include 'inc/custom_fields_panel.html' %} {% include 'inc/custom_fields_panel.html' %}
{% plugin_right_page object %} {% plugin_right_page object %}
</div> </div>
</div> </div>
<div class="row mb-3"> <div class="row mb-3">
<div class="col-md-12"> <div class="col col-md-12">
<div class="card"> <div class="card">
<div class="card-header"> <div class="card-header">
Tenants Tenants

View File

@ -5,7 +5,7 @@
{% block usercontent %} {% block usercontent %}
<div class="row"> <div class="row">
<div class="col-md-12"> <div class="col col-md-12">
{% for token in tokens %} {% for token in tokens %}
<div class="card{% if token.is_expired %} bg-danger{% endif %}"> <div class="card{% if token.is_expired %} bg-danger{% endif %}">
<div class="card-header"> <div class="card-header">
@ -22,11 +22,11 @@
</div> </div>
<div class="card-body"> <div class="card-body">
<div class="row"> <div class="row">
<div class="col-md-4"> <div class="col col-md-4">
<small class="text-muted">Created</small><br /> <small class="text-muted">Created</small><br />
<span title="{{ token.created }}">{{ token.created|date }}</span> <span title="{{ token.created }}">{{ token.created|date }}</span>
</div> </div>
<div class="col-md-4"> <div class="col col-md-4">
<small class="text-muted">Expires</small><br /> <small class="text-muted">Expires</small><br />
{% if token.expires %} {% if token.expires %}
<span title="{{ token.expires }}">{{ token.expires|date }}</span> <span title="{{ token.expires }}">{{ token.expires|date }}</span>
@ -34,7 +34,7 @@
<span>Never</span> <span>Never</span>
{% endif %} {% endif %}
</div> </div>
<div class="col-md-4"> <div class="col col-md-4">
<small class="text-muted">Create/Edit/Delete Operations</small><br /> <small class="text-muted">Create/Edit/Delete Operations</small><br />
{% if token.write_enabled %} {% if token.write_enabled %}
<span class="badge bg-success">Enabled</span> <span class="badge bg-success">Enabled</span>

View File

@ -3,7 +3,7 @@
{% block content %} {% block content %}
<div class="row mt-5"> <div class="row mt-5">
<div class="col-md-6 offset-md-3"> <div class="col col-md-6 offset-md-3">
<form action="" method="post" class="form"> <form action="" method="post" class="form">
{% csrf_token %} {% csrf_token %}
{% for field in form.hidden_fields %} {% for field in form.hidden_fields %}

View File

@ -84,10 +84,10 @@
</div> </div>
{% elif field|widget_type == 'selectmultiple' %} {% elif field|widget_type == 'selectmultiple' %}
<div class="row"> <div class="row">
<label for="{{ field.id_for_label }}" class="form-label col-md-3{% if field.field.required %} required{% endif %}"> <label for="{{ field.id_for_label }}" class="form-label col col-md-3{% if field.field.required %} required{% endif %}">
{{ field.label }} {{ field.label }}
</label> </label>
<div class="col-md-9"> <div class="col col-md-9">
{{ field }} {{ field }}
</div> </div>
</div> </div>

View File

@ -10,14 +10,14 @@
<div class="modal-body"> <div class="modal-body">
{% render_field table_config_form.available_columns %} {% render_field table_config_form.available_columns %}
<div class="row my-3"> <div class="row my-3">
<div class="col-md-9 offset-md-3"> <div class="col col-md-9 offset-md-3">
<a class="btn btn-success btn-sm" id="add_columns"><i class="mdi mdi-arrow-down-bold"></i> Add Columns</a> <a class="btn btn-success btn-sm" id="add_columns"><i class="mdi mdi-arrow-down-bold"></i> Add Columns</a>
<a class="btn btn-danger btn-sm" id="remove_columns"><i class="mdi mdi-arrow-up-bold"></i> Remove Columns</a> <a class="btn btn-danger btn-sm" id="remove_columns"><i class="mdi mdi-arrow-up-bold"></i> Remove Columns</a>
</div> </div>
</div> </div>
{% render_field table_config_form.columns %} {% render_field table_config_form.columns %}
<div class="row my-3"> <div class="row my-3">
<div class="col-md-9 offset-md-3"> <div class="col col-md-9 offset-md-3">
<a class="btn btn-primary btn-sm" id="move-option-up" data-target="id_columns"> <a class="btn btn-primary btn-sm" id="move-option-up" data-target="id_columns">
<i class="mdi mdi-arrow-up-bold"></i> Move Up <i class="mdi mdi-arrow-up-bold"></i> Move Up
</a> </a>

View File

@ -4,7 +4,7 @@
{% block content %} {% block content %}
<div class="row"> <div class="row">
<div class="col-md-5"> <div class="col col-md-5">
<div class="card"> <div class="card">
<h5 class="card-header"> <h5 class="card-header">
Cluster Cluster
@ -74,7 +74,7 @@
</div> </div>
</div> </div>
<div class="row"> <div class="row">
<div class="col-md-12"> <div class="col col-md-12">
{% plugin_full_width_page object %} {% plugin_full_width_page object %}
</div> </div>
</div> </div>

View File

@ -3,7 +3,7 @@
{% block content %} {% block content %}
<div class="row"> <div class="row">
<div class="col-md-12"> <div class="col col-md-12">
<div class="card"> <div class="card">
<h5 class="card-header"> <h5 class="card-header">
Host Devices Host Devices

View File

@ -3,7 +3,7 @@
{% block content %} {% block content %}
<div class="row"> <div class="row">
<div class="col-md-12"> <div class="col col-md-12">
<div class="card"> <div class="card">
<h5 class="card-header"> <h5 class="card-header">
Virtual Machines Virtual Machines

View File

@ -13,7 +13,7 @@
{{ field }} {{ field }}
{% endfor %} {% endfor %}
<div class="row"> <div class="row">
<div class="col-md-6 col-md-offset-3"> <div class="col col-md-6 offset-md-3">
<div class="field-group"> <div class="field-group">
<h4>Device Selection</h4> <h4>Device Selection</h4>
{% render_form form %} {% render_form form %}
@ -21,7 +21,7 @@
</div> </div>
</div> </div>
<div class="row"> <div class="row">
<div class="col-md-6 col-md-offset-3 text-end noprint"> <div class="col col-md-6 offset-md-3 text-end noprint">
<a href="{{ return_url }}" class="btn btn-outline-danger">Cancel</a> <a href="{{ return_url }}" class="btn btn-outline-danger">Cancel</a>
<button type="submit" name="_add" class="btn btn-primary">Add Devices</button> <button type="submit" name="_add" class="btn btn-primary">Add Devices</button>
</div> </div>

Some files were not shown because too many files have changed in this diff Show More