Parcourir la source

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

Add Basic Support for Smaller Screens in New UI
Jeremy Stretch il y a 4 ans
Parent
commit
6899a3258a
100 fichiers modifiés avec 365 ajouts et 334 suppressions
  1. 0 0
      netbox/project-static/dist/netbox.css
  2. 0 0
      netbox/project-static/dist/netbox.css.map
  3. 27 7
      netbox/project-static/netbox.scss
  4. 4 0
      netbox/project-static/theme-dark.scss
  5. 1 1
      netbox/templates/500.html
  6. 3 3
      netbox/templates/circuits/circuit.html
  7. 3 3
      netbox/templates/circuits/circuittype.html
  8. 6 6
      netbox/templates/circuits/provider.html
  9. 4 4
      netbox/templates/circuits/providernetwork.html
  10. 3 3
      netbox/templates/dcim/cable.html
  11. 5 5
      netbox/templates/dcim/cable_connect.html
  12. 2 2
      netbox/templates/dcim/cable_trace.html
  13. 2 2
      netbox/templates/dcim/connections_list.html
  14. 3 3
      netbox/templates/dcim/consoleport.html
  15. 3 3
      netbox/templates/dcim/consoleserverport.html
  16. 4 4
      netbox/templates/dcim/device.html
  17. 1 1
      netbox/templates/dcim/device/config.html
  18. 2 2
      netbox/templates/dcim/device/status.html
  19. 2 2
      netbox/templates/dcim/device_component_add.html
  20. 3 3
      netbox/templates/dcim/devicebay.html
  21. 2 2
      netbox/templates/dcim/devicebay_populate.html
  22. 3 3
      netbox/templates/dcim/devicerole.html
  23. 4 4
      netbox/templates/dcim/devicetype.html
  24. 2 2
      netbox/templates/dcim/devicetype_component_add.html
  25. 3 3
      netbox/templates/dcim/frontport.html
  26. 6 6
      netbox/templates/dcim/interface.html
  27. 3 3
      netbox/templates/dcim/inventoryitem.html
  28. 3 3
      netbox/templates/dcim/location.html
  29. 3 3
      netbox/templates/dcim/manufacturer.html
  30. 3 3
      netbox/templates/dcim/platform.html
  31. 3 3
      netbox/templates/dcim/powerfeed.html
  32. 3 3
      netbox/templates/dcim/poweroutlet.html
  33. 3 3
      netbox/templates/dcim/powerpanel.html
  34. 3 3
      netbox/templates/dcim/powerport.html
  35. 5 5
      netbox/templates/dcim/rack.html
  36. 4 4
      netbox/templates/dcim/rack_edit.html
  37. 2 2
      netbox/templates/dcim/rack_elevation_list.html
  38. 5 5
      netbox/templates/dcim/rackreservation.html
  39. 3 3
      netbox/templates/dcim/rackrole.html
  40. 3 3
      netbox/templates/dcim/rearport.html
  41. 3 3
      netbox/templates/dcim/region.html
  42. 9 9
      netbox/templates/dcim/site.html
  43. 3 3
      netbox/templates/dcim/sitegroup.html
  44. 3 3
      netbox/templates/dcim/virtualchassis.html
  45. 2 2
      netbox/templates/dcim/virtualchassis_add_member.html
  46. 2 2
      netbox/templates/dcim/virtualchassis_edit.html
  47. 2 2
      netbox/templates/extras/configcontext.html
  48. 2 2
      netbox/templates/extras/journalentry.html
  49. 2 2
      netbox/templates/extras/object_configcontext.html
  50. 3 3
      netbox/templates/extras/object_journal.html
  51. 6 6
      netbox/templates/extras/objectchange.html
  52. 1 1
      netbox/templates/extras/report.html
  53. 2 2
      netbox/templates/extras/report_list.html
  54. 1 1
      netbox/templates/extras/report_result.html
  55. 1 1
      netbox/templates/extras/script.html
  56. 2 2
      netbox/templates/extras/script_list.html
  57. 3 3
      netbox/templates/extras/script_result.html
  58. 3 3
      netbox/templates/extras/tag.html
  59. 3 3
      netbox/templates/generic/object_bulk_add_component.html
  60. 3 3
      netbox/templates/generic/object_bulk_delete.html
  61. 2 2
      netbox/templates/generic/object_bulk_edit.html
  62. 3 3
      netbox/templates/generic/object_bulk_import.html
  63. 3 3
      netbox/templates/generic/object_bulk_remove.html
  64. 3 3
      netbox/templates/generic/object_bulk_rename.html
  65. 2 2
      netbox/templates/generic/object_edit.html
  66. 2 2
      netbox/templates/generic/object_import.html
  67. 12 10
      netbox/templates/generic/object_list.html
  68. 7 13
      netbox/templates/home.html
  69. 4 4
      netbox/templates/ipam/aggregate.html
  70. 4 4
      netbox/templates/ipam/ipaddress.html
  71. 3 3
      netbox/templates/ipam/ipaddress_assign.html
  72. 4 4
      netbox/templates/ipam/prefix.html
  73. 1 1
      netbox/templates/ipam/prefix/ip_addresses.html
  74. 1 1
      netbox/templates/ipam/prefix/prefixes.html
  75. 3 3
      netbox/templates/ipam/rir.html
  76. 3 3
      netbox/templates/ipam/role.html
  77. 5 5
      netbox/templates/ipam/routetarget.html
  78. 3 3
      netbox/templates/ipam/service.html
  79. 3 3
      netbox/templates/ipam/vlan.html
  80. 1 1
      netbox/templates/ipam/vlan/interfaces.html
  81. 1 1
      netbox/templates/ipam/vlan/vminterfaces.html
  82. 3 3
      netbox/templates/ipam/vlangroup.html
  83. 3 3
      netbox/templates/ipam/vrf.html
  84. 40 29
      netbox/templates/layout.html
  85. 3 3
      netbox/templates/profile_button.html
  86. 3 3
      netbox/templates/search.html
  87. 1 1
      netbox/templates/search_form.html
  88. 6 6
      netbox/templates/secrets/secret.html
  89. 1 1
      netbox/templates/secrets/secret_edit.html
  90. 3 3
      netbox/templates/secrets/secretrole.html
  91. 14 14
      netbox/templates/tenancy/tenant.html
  92. 3 3
      netbox/templates/tenancy/tenantgroup.html
  93. 4 4
      netbox/templates/users/api_tokens.html
  94. 1 1
      netbox/templates/utilities/confirmation_form.html
  95. 2 2
      netbox/templates/utilities/render_field.html
  96. 2 2
      netbox/templates/utilities/templatetags/table_config_form.html
  97. 2 2
      netbox/templates/virtualization/cluster.html
  98. 1 1
      netbox/templates/virtualization/cluster/devices.html
  99. 1 1
      netbox/templates/virtualization/cluster/virtual_machines.html
  100. 2 2
      netbox/templates/virtualization/cluster_add_devices.html

Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
netbox/project-static/dist/netbox.css


Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
netbox/project-static/dist/netbox.css.map


+ 27 - 7
netbox/project-static/netbox.scss

@@ -51,6 +51,11 @@
   line-height: $line-height-sm;
 }
 
+// Automatically space out adjacent columns.
+.col:not(:last-child):not(:only-child) {
+  margin-bottom: $spacer;
+}
+
 body {
   background-color: var(--nbx-body-bg);
   color: var(--nbx-body-color);
@@ -225,12 +230,6 @@ li.dropdown-item.dropdown-item-btns {
   align-items: center;
 }
 
-@media (max-width: 767.98px) {
-  .sidebar {
-    top: 5rem;
-  }
-}
-
 .sidebar-sticky {
   position: relative;
   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 {
   position: fixed;
   top: 0;
@@ -266,9 +273,15 @@ nav.nav.nav-pills {
   z-index: 100; /* Behind the navbar */
   box-shadow: inset -1px 0 0 rgba(0, 0, 0, 0.1);
   background-color: var(--nbx-sidebar-bg);
+
+  @media (max-width: map.get($grid-breakpoints, 'md')) {
+    top: 8.125rem;
+  }
+
   .sidebar-nav-link {
     color: var(--nbx-sidebar-link-color);
   }
+
   .accordion-body {
     max-height: calc(100vh - 24rem);
     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 {
-    height: calc(100% - 8rem);
+    height: calc(100vh - 8rem);
   }
   div.sidebar-bottom {
     padding-left: 0.5rem;

+ 4 - 0
netbox/project-static/theme-dark.scss

@@ -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-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
 $dropdown-color: $body-color;
 $dropdown-bg: $gray-900;

+ 1 - 1
netbox/templates/500.html

@@ -11,7 +11,7 @@
 <body>
     <div class="container-fluid">
         <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">
                     <h5 class="card-header">
                         <i class="mdi mdi-alert"></i> Server Error

+ 3 - 3
netbox/templates/circuits/circuit.html

@@ -10,7 +10,7 @@
 
 {% block content %}
 <div class="row">
-	<div class="col-md-6">
+	<div class="col col-md-6">
         <div class="card">
             <h5 class="card-header">
                 Circuit
@@ -81,14 +81,14 @@
         </div>
         {% plugin_left_page object %}
 	</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_z side='Z' %}
         {% plugin_right_page object %}
     </div>
 </div>
 <div class="row">
-    <div class="col-md-12">
+    <div class="col col-md-12">
         {% plugin_full_width_page object %}
     </div>
 </div>

+ 3 - 3
netbox/templates/circuits/circuittype.html

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

+ 6 - 6
netbox/templates/circuits/provider.html

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

+ 4 - 4
netbox/templates/circuits/providernetwork.html

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

+ 3 - 3
netbox/templates/dcim/cable.html

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

+ 5 - 5
netbox/templates/dcim/cable_connect.html

@@ -14,7 +14,7 @@
         {{ field }}
     {% endfor %}
     <div class="row my-3">
-        <div class="col-md-5">
+        <div class="col col-md-5">
             <div class="card h-100">
                 <h5 class="card-header">
                     A Side
@@ -68,10 +68,10 @@
                 </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>
         </div>
-        <div class="col-md-5">
+        <div class="col col-md-5">
             <div class="card h-100">
                 <h5 class="card-header">
                     B Side
@@ -123,12 +123,12 @@
         </div>
     </div>
     <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' %}
         </div>
     </div>
     <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>
             <button type="submit" name="_update" class="btn btn-primary">Connect</button>
         </div>

+ 2 - 2
netbox/templates/dcim/cable_trace.html

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

+ 2 - 2
netbox/templates/dcim/connections_list.html

@@ -7,7 +7,7 @@
 
 {% block content %}
 <div class="row mb-3">
-    <div class="col-md-9">
+    <div class="col col-md-9">
         <div class="card">
             <div class="card-body">
                 {% include 'responsive_table.html' %}
@@ -15,7 +15,7 @@
         </div>
         {% include 'inc/paginator.html' with paginator=table.paginator page=table.page %}
     </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' %}
     </div>
 </div>

+ 3 - 3
netbox/templates/dcim/consoleport.html

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

+ 3 - 3
netbox/templates/dcim/consoleserverport.html

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

+ 4 - 4
netbox/templates/dcim/device.html

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

+ 1 - 1
netbox/templates/dcim/device/config.html

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

+ 2 - 2
netbox/templates/dcim/device/status.html

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

+ 2 - 2
netbox/templates/dcim/device_component_add.html

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

+ 3 - 3
netbox/templates/dcim/devicebay.html

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

+ 2 - 2
netbox/templates/dcim/devicebay_populate.html

@@ -7,7 +7,7 @@
 <form action="." method="post">
     {% csrf_token %}
     <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-header">{% block title %}Populate {{ device_bay }}{% endblock %}</div>
                 <div class="card-body">
@@ -25,7 +25,7 @@
         </div>
     </div>
     <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>
             <button type="submit" name="_update" class="btn btn-primary">Save</button>
         </div>

+ 3 - 3
netbox/templates/dcim/devicerole.html

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

+ 4 - 4
netbox/templates/dcim/devicetype.html

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

+ 2 - 2
netbox/templates/dcim/devicetype_component_add.html

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

+ 3 - 3
netbox/templates/dcim/frontport.html

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

+ 6 - 6
netbox/templates/dcim/interface.html

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

+ 3 - 3
netbox/templates/dcim/inventoryitem.html

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

+ 3 - 3
netbox/templates/dcim/location.html

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

+ 3 - 3
netbox/templates/dcim/manufacturer.html

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

+ 3 - 3
netbox/templates/dcim/platform.html

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

+ 3 - 3
netbox/templates/dcim/powerfeed.html

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

+ 3 - 3
netbox/templates/dcim/poweroutlet.html

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

+ 3 - 3
netbox/templates/dcim/powerpanel.html

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

+ 3 - 3
netbox/templates/dcim/powerport.html

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

+ 5 - 5
netbox/templates/dcim/rack.html

@@ -33,7 +33,7 @@
 
 {% block content %}
 <div class="row">
-	<div class="col-md-6">
+	<div class="col col-md-6">
         <div class="card">
             <h5 class="card-header">
                 Rack
@@ -310,15 +310,15 @@
         </div>
         {% plugin_left_page object %}
 	</div>
-    <div class="col-md-6">
+    <div class="col col-md-6">
         <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">
                 <h4>Front</h4>
                 {% include 'dcim/inc/rack_elevation.html' with face='front' %}
               </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">
                 <h4>Rear</h4>
                 {% include 'dcim/inc/rack_elevation.html' with face='rear' %}
@@ -373,7 +373,7 @@
     </div>
 </div>
 <div class="row">
-    <div class="col-md-12">
+    <div class="col col-md-12">
         {% plugin_full_width_page object %}
     </div>
 </div>

+ 4 - 4
netbox/templates/dcim/rack_edit.html

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

+ 2 - 2
netbox/templates/dcim/rack_elevation_list.html

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

+ 5 - 5
netbox/templates/dcim/rackreservation.html

@@ -12,7 +12,7 @@
 
 {% block content %}
 <div class="row mb-3">
-	<div class="col-md-6">
+	<div class="col col-md-6">
         <div class="card">
             <h5 class="card-header">
                 Rack
@@ -87,15 +87,15 @@
         {% include 'extras/inc/tags_panel.html' with tags=object.tags.all url='dcim:rackreservation_list' %}
         {% plugin_left_page object %}
 	</div>
-    <div class="col-md-6">
+    <div class="col col-md-6">
         <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">
                     <h4>Front</h4>
                     {% include 'dcim/inc/rack_elevation.html' with object=object.rack face='front' %}
                 </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">
                     <h4>Rear</h4>
                     {% include 'dcim/inc/rack_elevation.html' with object=object.rack face='rear' %}
@@ -106,7 +106,7 @@
     </div>
 </div>
 <div class="row">
-    <div class="col-md-12">
+    <div class="col col-md-12">
         {% plugin_full_width_page object %}
     </div>
 </div>

+ 3 - 3
netbox/templates/dcim/rackrole.html

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

+ 3 - 3
netbox/templates/dcim/rearport.html

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

+ 3 - 3
netbox/templates/dcim/region.html

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

+ 9 - 9
netbox/templates/dcim/site.html

@@ -16,7 +16,7 @@
 
 {% block content %}
 <div class="row">
-	<div class="col-md-7">
+	<div class="col col-md-7">
         <div class="card">
             <h5 class="card-header">
                 Site
@@ -164,34 +164,34 @@
         </div>
         {% plugin_left_page object %}
     </div>
-    <div class="col-md-5">
+    <div class="col col-md-5">
         <div class="card">
             <h5 class="card-header">
                 Stats
             </h5>
             <div class="card-body">
                 <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>
                         <p>Racks</p>
                     </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>
                         <p>Devices</p>
                     </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>
                         <p>Prefixes</p>
                     </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>
                         <p>VLANs</p>
                     </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>
                         <p>Circuits</p>
                     </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>
                         <p>Virtual Machines</p>
                     </div>
@@ -246,7 +246,7 @@
 	</div>
 </div>
 <div class="row">
-    <div class="col-md-12">
+    <div class="col col-md-12">
         {% plugin_full_width_page object %}
     </div>
 </div>

+ 3 - 3
netbox/templates/dcim/sitegroup.html

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

+ 3 - 3
netbox/templates/dcim/virtualchassis.html

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

+ 2 - 2
netbox/templates/dcim/virtualchassis_add_member.html

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

+ 2 - 2
netbox/templates/dcim/virtualchassis_edit.html

@@ -10,7 +10,7 @@
         {{ pk_form.pk }}
         {{ formset.management_form }}
         <div class="row">
-            <div class="col-md-8">
+            <div class="col col-md-8">
                 <div class="card">
                     <h5 class="card-header">Virtual Chassis</h5>
                     <div class="card-body">
@@ -91,7 +91,7 @@
             </div>
         </div>
         <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>
                 {% if vc_form.instance.pk %}
                     <button type="submit" name="_update" class="btn btn-primary">Update</button>

+ 2 - 2
netbox/templates/extras/configcontext.html

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

+ 2 - 2
netbox/templates/extras/journalentry.html

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

+ 2 - 2
netbox/templates/extras/object_configcontext.html

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

+ 3 - 3
netbox/templates/extras/object_journal.html

@@ -8,7 +8,7 @@
 {% block content %}
     {% if perms.extras.add_journalentry %}
     <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">
                 <h4>New Journal Entry</h4>
                 {% csrf_token %}
@@ -18,14 +18,14 @@
                 {% render_field form.kind %}
                 {% render_field form.comments %}
             </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>
                 <button type="submit" class="btn btn-primary">Save</button>
             </div>
         </div>
     </form>
     {% endif %}
-    <div class="col-md-9 col-md-offset-3 mb-3">
+    <div class="col col-md-9 mb-3">
         {% include 'panel_table.html' %}
     </div>
     {% include 'inc/paginator.html' with paginator=table.paginator page=table.page %}

+ 6 - 6
netbox/templates/extras/objectchange.html

@@ -21,7 +21,7 @@
 
 {% block header %}
     <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">
                 <div class="input-group">
                     <input type="text" name="q" class="form-control" />
@@ -38,7 +38,7 @@
 
 {% block content %}
 <div class="row mb-3">
-    <div class="col-md-5">
+    <div class="col col-md-5">
         <div class="card">
             <h5 class="card-header">
                 Change
@@ -89,7 +89,7 @@
             </div>
         </div>
     </div>
-    <div class="col-md-7">
+    <div class="col col-md-7">
         <div class="card">
             <div class="card-header">
                 <h5 class="d-inline">Difference</h5>
@@ -122,7 +122,7 @@
     </div>
 </div>
 <div class="row mb-3">
-    <div class="col-md-6">
+    <div class="col col-md-6">
         <div class="card">
             <h5 class="card-header">
                 Pre-Change Data
@@ -139,7 +139,7 @@
             </div>
         </div>
     </div>
-    <div class="col-md-6">
+    <div class="col col-md-6">
         <div class="card">
             <h5 class="card-header">
                 Post-Change Data
@@ -158,7 +158,7 @@
     </div>
 </div>
 <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' %}
         {% if related_changes_count > related_changes_table.rows|length %}
             <div class="float-end">

+ 1 - 1
netbox/templates/extras/report.html

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

+ 2 - 2
netbox/templates/extras/report_list.html

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

+ 1 - 1
netbox/templates/extras/report_result.html

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

+ 1 - 1
netbox/templates/extras/script.html

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

+ 2 - 2
netbox/templates/extras/script_list.html

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

+ 3 - 3
netbox/templates/extras/script_result.html

@@ -13,7 +13,7 @@
 
 {% block content %}
 <div class="row noprint">
-    <div class="col-md-12">
+    <div class="col col-md-12">
         <nav class="breadcrumb-container" aria-label="breadcrumb">
             <ol class="breadcrumb">
                 <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">
         {% if result.completed %}
             <div class="row">
-                <div class="col-md-12">
+                <div class="col col-md-12">
                     <div class="card">
                         <h5 class="card-header">
                             Script Log
@@ -87,7 +87,7 @@
             </div>
         {% else %}
             <div class="row">
-                <div class="col-md-12">
+                <div class="col col-md-12">
                     <div class="well">Pending Results</div>
                 </div>
             </div>

+ 3 - 3
netbox/templates/extras/tag.html

@@ -9,7 +9,7 @@
 
 {% block content %}
 <div class="row">
-  <div class="col-md-6">
+  <div class="col col-md-6">
     <div class="card">
       <h5 class="card-header">
         Tag
@@ -50,13 +50,13 @@
       </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 'inc/paginator.html' with paginator=items_table.paginator page=items_table.page %}
   </div>
 </div>
 <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 %}
   </div>
 </div>

+ 3 - 3
netbox/templates/generic/object_bulk_add_component.html

@@ -14,12 +14,12 @@
         {{ field }}
     {% endfor %}
     <div class="row">
-        <div class="col-md-7">
+        <div class="col col-md-7">
             <div class="card">
                 {% include 'inc/table.html' %}
             </div>
         </div>
-        <div class="col-md-5">
+        <div class="col col-md-5">
             <div class="card">
                 <h5 class="card-header">{{ model_name|title }} to Add</h5>
                 <div class="card-body">
@@ -29,7 +29,7 @@
                 </div>
             </div>
 		    <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>
                     <button type="submit" name="_create" class="btn btn-primary">Create</button>
                 </div>

+ 3 - 3
netbox/templates/generic/object_bulk_delete.html

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

+ 2 - 2
netbox/templates/generic/object_bulk_edit.html

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

+ 3 - 3
netbox/templates/generic/object_bulk_import.html

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

+ 3 - 3
netbox/templates/generic/object_bulk_remove.html

@@ -5,7 +5,7 @@
 
 {% block content %}
 <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">
             <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>
@@ -15,7 +15,7 @@
     </div>
 </div>
 <div class="row mb-3">
-    <div class="col-md-12">
+    <div class="col col-md-12">
         <div class="card">
             <div class="card-body">
                 {% include 'inc/table.html' %}
@@ -24,7 +24,7 @@
     </div>
 </div>
 <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">
             {% csrf_token %}
             {% for field in form.hidden_fields %}

+ 3 - 3
netbox/templates/generic/object_bulk_rename.html

@@ -6,7 +6,7 @@
 
 {% block content %}
 <div class="row mb-3">
-    <div class="col-md-7">
+    <div class="col col-md-7">
         <div class="card">
             <div class="card-body">
                 <table class="table">
@@ -28,7 +28,7 @@
             </div>
         </div>
     </div>
-    <div class="col-md-5">
+    <div class="col col-md-5">
         <form action="" method="post" class="form form-horizontal">
             {% csrf_token %}
             <div class="card">
@@ -37,7 +37,7 @@
                     {% render_form form %}
                 </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>
                 <button type="submit" name="_preview" class="btn btn-primary">Preview</button>
                 {% if '_preview' in request.POST and not form.errors %}

+ 2 - 2
netbox/templates/generic/object_edit.html

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

+ 2 - 2
netbox/templates/generic/object_import.html

@@ -6,12 +6,12 @@
 
 {% block content %}
 <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">
 		    {% csrf_token %}
 		    {% render_form form %}
             <div class="form-group">
-                <div class="col-md-12 text-end">
+                <div class="col col-md-12 text-end">
                     {% if return_url %}
                         <a href="{{ return_url }}" class="btn btn-outline-danger">Cancel</a>
                     {% endif %}

+ 12 - 10
netbox/templates/generic/object_list.html

@@ -56,17 +56,19 @@
 {% endwith %}
 {% endif %}
 <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-header">
-                <div class="float-end col-md-2 noprint table-controls">
-                    <div class="input-group input-group-sm">
-                        <input type="text" class="form-control object-filter" placeholder="Filter" title="Filter text (regular expressions supported)" />
-                        {% if request.user.is_authenticated and table_config_form %}
-                            <button type="button" class="btn btn-outline-dark btn-sm" data-bs-toggle="modal" data-bs-target="#ObjectTable_config" title="Configure Table">
-                                <i class="mdi mdi-table-eye"></i>
-                            </button>
-                        {% endif %}
+                <div class="row">
+                    <div class="col col-md-2 offset-md-10 noprint table-controls">
+                        <div class="input-group input-group-sm">
+                            <input type="text" class="form-control object-filter" placeholder="Filter" title="Filter text (regular expressions supported)" />
+                            {% if request.user.is_authenticated and table_config_form %}
+                                <button type="button" class="btn btn-outline-dark btn-sm" data-bs-toggle="modal" data-bs-target="#ObjectTable_config" title="Configure Table">
+                                    <i class="mdi mdi-table-eye"></i>
+                                </button>
+                            {% endif %}
+                        </div>
                     </div>
                 </div>
             </div>
@@ -102,7 +104,7 @@
         </div>
     </div>
     {% if filter_form %}
-    <div class="col-3 noprint">
+    <div class="col col-md-3 noprint">
         {% block sidebar %}{% endblock %}
         {% include 'inc/search_panel.html' %}
     </div>

+ 7 - 13
netbox/templates/home.html

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

+ 4 - 4
netbox/templates/ipam/aggregate.html

@@ -15,7 +15,7 @@
 
 {% block content %}
 <div class="row">
-	<div class="col-md-6">
+	<div class="col col-md-6">
         <div class="card">
             <h5 class="card-header">
                 Aggregate
@@ -64,19 +64,19 @@
         </div>
         {% plugin_left_page object %}
     </div>
-    <div class="col-md-6">
+    <div class="col col-md-6">
         {% include 'inc/custom_fields_panel.html' %}
         {% include 'extras/inc/tags_panel.html' with tags=object.tags.all url='ipam:aggregate_list' %}
         {% plugin_right_page object %}
     </div>
 </div>
 <div class="row mb-3">
-    <div class="col-md-12">
+    <div class="col col-md-12">
         {% plugin_full_width_page object %}
     </div>
 </div>
 <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' %}
 	</div>
 </div>

+ 4 - 4
netbox/templates/ipam/ipaddress.html

@@ -13,7 +13,7 @@
 
 {% block content %}
 <div class="row">
-	<div class="col-md-4">
+	<div class="col col-md-4">
         <div class="card">
             <h5 class="card-header">
                 IP Address
@@ -113,7 +113,7 @@
         {% plugin_left_page object %}
 	</div>
     
-	<div class="col-md-8">
+	<div class="col col-md-8">
         {% include 'panel_table.html' with table=parent_prefixes_table heading='Parent Prefixes' %}
         {% if duplicate_ips_table.rows %}
             {# Custom version of panel_table.html #}
@@ -145,14 +145,14 @@
 </div>
 
 <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' %}
     </div>
     
 </div>
 
 <div class="row">
-    <div class="col-md-12">
+    <div class="col col-md-12">
         {% plugin_full_width_page object %}
     </div>
 </div>

+ 3 - 3
netbox/templates/ipam/ipaddress_assign.html

@@ -12,7 +12,7 @@
             {{ field }}
         {% endfor %}
         <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' %}
                 <div class="card">
                     <h5 class="card-header">Select IP Address</h5>
@@ -24,7 +24,7 @@
             </div>
         </div>
         <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>
                 <button type="submit" class="btn btn-primary">Search</button>
             </div>
@@ -32,7 +32,7 @@
     </form>
     {% if table %}
         <div class="row mb-3">
-            <div class="col-md-12">
+            <div class="col col-md-12">
                 <h3>Search Results</h3>
                 {% include 'utilities/obj_table.html' with table_template='panel_table.html' %}
             </div>

+ 4 - 4
netbox/templates/ipam/prefix.html

@@ -4,7 +4,7 @@
 
 {% block content %}
 <div class="row">
-    <div class="col-md-5">
+    <div class="col col-md-5">
         <div class="card">
             <h5 class="card-header">
                 Prefix
@@ -109,7 +109,7 @@
         {% include 'inc/custom_fields_panel.html' %}
         {% plugin_left_page object %}
     </div>
-    <div class="col-md-7">
+    <div class="col col-md-7">
         {% if duplicate_prefix_table.rows %}
             {% include 'panel_table.html' with table=duplicate_prefix_table heading='Duplicate Prefixes' %}
         {% endif %}
@@ -118,12 +118,12 @@
     </div>
 </div>
 <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' %}
     </div>
 </div>
 <div class="row">
-    <div class="col-md-12">
+    <div class="col col-md-12">
         {% plugin_full_width_page object %}
     </div>
 </div>

+ 1 - 1
netbox/templates/ipam/prefix/ip_addresses.html

@@ -11,7 +11,7 @@
 
 {% block content %}
   <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' %}
     </div>
   </div>

+ 1 - 1
netbox/templates/ipam/prefix/prefixes.html

@@ -18,7 +18,7 @@
 
 {% block content %}
   <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 %}
     </div>
   </div>

+ 3 - 3
netbox/templates/ipam/rir.html

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

+ 3 - 3
netbox/templates/ipam/role.html

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

+ 5 - 5
netbox/templates/ipam/routetarget.html

@@ -9,7 +9,7 @@
 
 {% block content %}
 <div class="row">
-	<div class="col-md-6">
+	<div class="col col-md-6">
         <div class="card">
             <h5 class="card-header">
                 Route Target
@@ -40,7 +40,7 @@
         
         {% plugin_left_page object %}
 	</div>
-	<div class="col-md-6">
+	<div class="col col-md-6">
         <div class="mb-4">
         {% include 'panel_table.html' with table=importing_vrfs_table heading="Importing VRFs" %}
         </div>
@@ -49,15 +49,15 @@
     </div>
 </div>
 <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' %}
     </div>
-    <div class="col-md-6">
+    <div class="col col-md-6">
     {% include 'inc/custom_fields_panel.html' %}
     </div>
 </div>
 <div class="row">
-    <div class="col-md-12">
+    <div class="col col-md-12">
         {% plugin_full_width_page object %}
     </div>
 </div>

+ 3 - 3
netbox/templates/ipam/service.html

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

+ 3 - 3
netbox/templates/ipam/vlan.html

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

+ 1 - 1
netbox/templates/ipam/vlan/interfaces.html

@@ -2,7 +2,7 @@
 
 {% block content %}
   <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 %}
     </div>
   </div>

+ 1 - 1
netbox/templates/ipam/vlan/vminterfaces.html

@@ -2,7 +2,7 @@
 
 {% block content %}
   <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 %}
     </div>
   </div>

+ 3 - 3
netbox/templates/ipam/vlangroup.html

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

+ 3 - 3
netbox/templates/ipam/vrf.html

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

+ 40 - 29
netbox/templates/layout.html

@@ -2,43 +2,54 @@
 {% load search_options %}
 
 {% block head %}{% endblock %}
+
 {% block layout %}
 <div class="container-fluid">
   <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">
+      <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">
-          <button
-            type="button"
-            aria-expanded="false"
-            data-bs-toggle="collapse"
-            aria-controls="sidebarMenu"
-            data-bs-target="#sidebarMenu"
-            aria-label="Toggle navigation"
-            class="navbar-toggler position-absolute d-md-none collapsed"
-          >
-            <span class="navbar-toggler-icon"></span>
-          </button>
-          {% search_options %} {% include './profile_button.html' %}
-        
+        <div class="d-md-none w-100 d-flex justify-content-between align-items-center my-3">
+            <a class="px-2 sidebar-logo d-block d-md-none" href="{% url 'home' %}">
+              {% include 'logo.html' %}
+            </a>
+            <button
+              type="button"
+              aria-expanded="false"
+              data-bs-toggle="collapse"
+              aria-controls="sidebar-menu"
+              data-bs-target="#sidebar-menu"
+              aria-label="Toggle Navigation"
+              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>
       
-      <div class="px-4">
+      <div class="px-4 content-container">
         {% block title_container %}
         <div class="title-container">
           <div id="content-title">

+ 3 - 3
netbox/templates/profile_button.html

@@ -1,10 +1,10 @@
 {% if request.user.is_authenticated %}
-<div class="dropdown">
+<span class="dropdown ms-0 ms-md-3">
   <button
     type="button"
     aria-expanded="false"
     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>
     <span id="navbar_user">{{ request.user|truncatechars:"30" }}</span>
@@ -35,7 +35,7 @@
       </a>
     </li>
   </ul>
-</div>
+</span>
 {% else %}
 <div>
   <a

+ 3 - 3
netbox/templates/search.html

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

+ 1 - 1
netbox/templates/search_form.html

@@ -1,5 +1,5 @@
 <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">
             <input type="text" name="q" value="{{ request.GET.q }}" placeholder="Search" id="id_q" class="form-control" style="width: 350px" />
             {{ search_form.obj_type }}

+ 6 - 6
netbox/templates/secrets/secret.html

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

+ 1 - 1
netbox/templates/secrets/secret_edit.html

@@ -61,7 +61,7 @@
             <input class="form-control" value="********" id="secret_{{ obj.pk }}" />
             <label class="required">Current Plain Text</label>
         </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 }}">
                 <i class="mdi mdi-lock"></i> Unlock
             </button>

+ 3 - 3
netbox/templates/secrets/secretrole.html

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

+ 14 - 14
netbox/templates/tenancy/tenant.html

@@ -12,7 +12,7 @@
 
 {% block content %}
 <div class="row">
-	<div class="col-md-7">
+	<div class="col col-md-7">
         <div class="card">
             <h5 class="card-header">
                 Tenant
@@ -52,53 +52,53 @@
         </div>
         {% plugin_left_page object %}
 	</div>
-	<div class="col-md-5">
+	<div class="col col-md-5">
         <div class="card">
             <h5 class="card-header">
                 Stats
             </h5>
             <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>
                     <p>Sites</p>
                 </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>
                     <p>Racks</p>
                 </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>
                     <p>Rack reservations</p>
                 </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>
                     <p>Devices</p>
                 </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>
                     <p>VRFs</p>
                 </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>
                     <p>Prefixes</p>
                 </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>
                     <p>IP addresses</p>
                 </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>
                     <p>VLANs</p>
                 </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>
                     <p>Circuits</p>
                 </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>
                     <p>Virtual machines</p>
                 </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>
                     <p>Clusters</p>
                 </div>
@@ -108,7 +108,7 @@
     </div>
 </div>
 <div class="row">
-    <div class="col-md-12">
+    <div class="col col-md-12">
         {% plugin_full_width_page object %}
     </div>
 </div>

+ 3 - 3
netbox/templates/tenancy/tenantgroup.html

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

+ 4 - 4
netbox/templates/users/api_tokens.html

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

+ 1 - 1
netbox/templates/utilities/confirmation_form.html

@@ -3,7 +3,7 @@
 
 {% block content %}
 <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">
             {% csrf_token %}
             {% for field in form.hidden_fields %}

+ 2 - 2
netbox/templates/utilities/render_field.html

@@ -84,10 +84,10 @@
 </div>
 {% elif field|widget_type == 'selectmultiple' %}
 <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 }}
     </label>
-    <div class="col-md-9">
+    <div class="col col-md-9">
         {{ field }}
     </div>
 </div>

+ 2 - 2
netbox/templates/utilities/templatetags/table_config_form.html

@@ -10,14 +10,14 @@
                 <div class="modal-body">
                     {% render_field table_config_form.available_columns %}
                     <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-danger btn-sm" id="remove_columns"><i class="mdi mdi-arrow-up-bold"></i> Remove Columns</a>
                         </div>
                     </div>
                     {% render_field table_config_form.columns %}
                     <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">
                                 <i class="mdi mdi-arrow-up-bold"></i> Move Up
                             </a>

+ 2 - 2
netbox/templates/virtualization/cluster.html

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

+ 1 - 1
netbox/templates/virtualization/cluster/devices.html

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

+ 1 - 1
netbox/templates/virtualization/cluster/virtual_machines.html

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

+ 2 - 2
netbox/templates/virtualization/cluster_add_devices.html

@@ -13,7 +13,7 @@
             {{ field }}
         {% endfor %}
         <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">
                     <h4>Device Selection</h4>
                     {% render_form form %}
@@ -21,7 +21,7 @@
             </div>
         </div>
         <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>
                 <button type="submit" name="_add" class="btn btn-primary">Add Devices</button>
             </div>

Certains fichiers n'ont pas été affichés car il y a eu trop de fichiers modifiés dans ce diff