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 6899a3258a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
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,17 +56,19 @@
{% 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="input-group input-group-sm"> <div class="col col-md-2 offset-md-10 noprint table-controls">
<input type="text" class="form-control object-filter" placeholder="Filter" title="Filter text (regular expressions supported)" /> <div class="input-group input-group-sm">
{% if request.user.is_authenticated and table_config_form %} <input type="text" class="form-control object-filter" placeholder="Filter" title="Filter text (regular expressions supported)" />
<button type="button" class="btn btn-outline-dark btn-sm" data-bs-toggle="modal" data-bs-target="#ObjectTable_config" title="Configure Table"> {% if request.user.is_authenticated and table_config_form %}
<i class="mdi mdi-table-eye"></i> <button type="button" class="btn btn-outline-dark btn-sm" data-bs-toggle="modal" data-bs-target="#ObjectTable_config" title="Configure Table">
</button> <i class="mdi mdi-table-eye"></i>
{% endif %} </button>
{% endif %}
</div>
</div> </div>
</div> </div>
</div> </div>
@ -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"
class="col-md-3 col-lg-2 d-md-block sidebar collapse px-0"
>
<div class="position-sticky pt-3">
<a class="px-2 sidebar-logo" href="{% url 'home' %}">
{% load static %}
{% include 'logo.html' %}
</a>
<ul class="nav flex-column">
{% load nav %} {% nav %}
</ul>
</div>
{% include './bottom.html' %}
</nav>
<main class="col-md-9 ms-sm-auto col-lg-10 px-0"> <main class="col-md-9 ms-sm-auto col-lg-10 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">
<a class="px-2 sidebar-logo d-none d-md-flex" href="{% url 'home' %}">
{% load static %}
{% include 'logo.html' %}
</a>
<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 %}
</ul>
</div>
{% include './bottom.html' %}
</nav>
<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">
<button <div class="d-md-none w-100 d-flex justify-content-between align-items-center my-3">
type="button" <a class="px-2 sidebar-logo d-block d-md-none" href="{% url 'home' %}">
aria-expanded="false" {% include 'logo.html' %}
data-bs-toggle="collapse" </a>
aria-controls="sidebarMenu" <button
data-bs-target="#sidebarMenu" type="button"
aria-label="Toggle navigation" aria-expanded="false"
class="navbar-toggler position-absolute d-md-none collapsed" data-bs-toggle="collapse"
> aria-controls="sidebar-menu"
<span class="navbar-toggler-icon"></span> data-bs-target="#sidebar-menu"
</button> aria-label="Toggle Navigation"
{% search_options %} {% include './profile_button.html' %} class="navbar-toggler position-relative collapsed"
>
<span class="navbar-toggler-icon"></span>
</button>
</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