mirror of
https://github.com/netbox-community/netbox.git
synced 2025-07-21 03:27:21 -06:00
migrate templates to bootstrap 5
This commit is contained in:
parent
4b0d5815c0
commit
f7c1bc71d9
BIN
netbox/project-static/dist/netbox.css
vendored
BIN
netbox/project-static/dist/netbox.css
vendored
Binary file not shown.
2
netbox/project-static/dist/netbox.css.map
vendored
2
netbox/project-static/dist/netbox.css.map
vendored
File diff suppressed because one or more lines are too long
@ -410,3 +410,29 @@ table th {
|
|||||||
margin-top: 2rem;
|
margin-top: 2rem;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pre.change-data {
|
||||||
|
padding-left: 0;
|
||||||
|
padding-right: 0;
|
||||||
|
& > span {
|
||||||
|
display: block;
|
||||||
|
padding-left: $spacer;
|
||||||
|
padding-right: $spacer;
|
||||||
|
&.added {
|
||||||
|
background-color: rgba($green, 0.4);
|
||||||
|
}
|
||||||
|
&.removed {
|
||||||
|
background-color: rgba($red, 0.4);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
pre.change-diff {
|
||||||
|
border-color: transparent;
|
||||||
|
&.change-removed {
|
||||||
|
background-color: rgba($red, 0.4);
|
||||||
|
}
|
||||||
|
&.change-added {
|
||||||
|
background-color: rgba($green, 0.4);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@ -4,23 +4,19 @@
|
|||||||
|
|
||||||
<head>
|
<head>
|
||||||
<title>Server Error</title>
|
<title>Server Error</title>
|
||||||
<link rel="stylesheet" href="{% static 'bootstrap-3.4.1-dist/css/bootstrap.min.css' %}">
|
<link rel="stylesheet" href="{% static 'netbox.css'%}" />
|
||||||
<link rel="stylesheet" href="{% static 'materialdesignicons-5.4.55/css/materialdesignicons.min.css' %}">
|
|
||||||
<meta charset="UTF-8">
|
<meta charset="UTF-8">
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body>
|
<body>
|
||||||
<div class="container-fluid">
|
<div class="container-fluid">
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-md-6 col-md-offset-3">
|
<div class="col-md-6 offset-md-3">
|
||||||
<div class="panel panel-danger" style="margin-top: 200px">
|
<div class="card bg-danger mt-5">
|
||||||
<div class="panel-heading">
|
<h5 class="card-header">
|
||||||
<strong>
|
<i class="mdi mdi-alert"></i> Server Error
|
||||||
<i class="mdi mdi-alert"></i>
|
</h5>
|
||||||
Server Error
|
<div class="card-body">
|
||||||
</strong>
|
|
||||||
</div>
|
|
||||||
<div class="panel-body">
|
|
||||||
{% block message %}
|
{% block message %}
|
||||||
<p>
|
<p>
|
||||||
There was a problem with your request. Please contact an administrator.
|
There was a problem with your request. Please contact an administrator.
|
||||||
@ -38,7 +34,7 @@ NetBox version: {{ netbox_version }}</pre>
|
|||||||
<p>
|
<p>
|
||||||
If further assistance is required, please post to the <a href="https://groups.google.com/g/netbox-discuss">NetBox mailing list</a>.
|
If further assistance is required, please post to the <a href="https://groups.google.com/g/netbox-discuss">NetBox mailing list</a>.
|
||||||
</p>
|
</p>
|
||||||
<div class="text-right">
|
<div class="text-end">
|
||||||
<a href="{% url 'home' %}" class="btn btn-primary">Home Page</a>
|
<a href="{% url 'home' %}" class="btn btn-primary">Home Page</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -3,9 +3,8 @@
|
|||||||
{% load plugins %}
|
{% load plugins %}
|
||||||
|
|
||||||
{% block breadcrumbs %}
|
{% block breadcrumbs %}
|
||||||
{{ block.super }}
|
<li class="breadcrumb-item"><a href="{% url 'dcim:device_consoleports' pk=object.device.pk %}">Console Ports</a></li>
|
||||||
<li><a href="{% url 'dcim:device_consoleports' pk=object.device.pk %}">Console Ports</a></li>
|
<li class="breadcrumb-item">{{ object }}</li>
|
||||||
<li>{{ object }}</li>
|
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
{% block content %}
|
{% block content %}
|
||||||
@ -64,7 +63,7 @@
|
|||||||
<th scope="row">Cable</th>
|
<th scope="row">Cable</th>
|
||||||
<td>
|
<td>
|
||||||
<a href="{{ object.cable.get_absolute_url }}">{{ object.cable }}</a>
|
<a href="{{ object.cable.get_absolute_url }}">{{ object.cable }}</a>
|
||||||
<a href="{% url 'dcim:consoleport_trace' pk=object.pk %}" class="btn btn-primary btn-xs" title="Trace">
|
<a href="{% url 'dcim:consoleport_trace' pk=object.pk %}" class="btn btn-primary btn-sm lh-1" title="Trace">
|
||||||
<i class="mdi mdi-transit-connection-variant" aria-hidden="true"></i>
|
<i class="mdi mdi-transit-connection-variant" aria-hidden="true"></i>
|
||||||
</a>
|
</a>
|
||||||
</td>
|
</td>
|
||||||
@ -94,9 +93,9 @@
|
|||||||
<th scope="row">Path Status</th>
|
<th scope="row">Path Status</th>
|
||||||
<td>
|
<td>
|
||||||
{% if object.path.is_active %}
|
{% if object.path.is_active %}
|
||||||
<span class="label label-success">Reachable</span>
|
<span class="badge bg-success">Reachable</span>
|
||||||
{% else %}
|
{% else %}
|
||||||
<span class="label label-danger">Not Reachable</span>
|
<span class="badge bg-danger">Not Reachable</span>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
@ -106,11 +105,11 @@
|
|||||||
<div class="text-muted">
|
<div class="text-muted">
|
||||||
Not Connected
|
Not Connected
|
||||||
{% if perms.dcim.add_cable %}
|
{% if perms.dcim.add_cable %}
|
||||||
<div class="dropdown">
|
<div class="dropdown float-end">
|
||||||
<button type="button" class="btn btn-primary btn-sm dropdown-toggle" data-bs-toggle="dropdown" aria-expanded="false">
|
<button type="button" class="btn btn-primary btn-sm dropdown-toggle" data-bs-toggle="dropdown" aria-expanded="false">
|
||||||
<span class="mdi mdi-ethernet-cable" aria-hidden="true"></span> Connect
|
<span class="mdi mdi-ethernet-cable" aria-hidden="true"></span> Connect
|
||||||
</button>
|
</button>
|
||||||
<ul class="dropdown-menu dropdown-menu-right">
|
<ul class="dropdown-menu dropdown-menu-end">
|
||||||
<li>
|
<li>
|
||||||
<a
|
<a
|
||||||
class="dropdown-item"
|
class="dropdown-item"
|
||||||
|
@ -3,9 +3,8 @@
|
|||||||
{% load plugins %}
|
{% load plugins %}
|
||||||
|
|
||||||
{% block breadcrumbs %}
|
{% block breadcrumbs %}
|
||||||
{{ block.super }}
|
<li class="breadcrumb-item"><a href="{% url 'dcim:device_consoleserverports' pk=object.device.pk %}">Console Server Ports</a></li>
|
||||||
<li><a href="{% url 'dcim:device_consoleserverports' pk=object.device.pk %}">Console Server Ports</a></li>
|
<li class="breadcrumb-item">{{ object }}</li>
|
||||||
<li>{{ object }}</li>
|
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
{% block content %}
|
{% block content %}
|
||||||
@ -64,7 +63,7 @@
|
|||||||
<th scope="row">Cable</th>
|
<th scope="row">Cable</th>
|
||||||
<td>
|
<td>
|
||||||
<a href="{{ object.cable.get_absolute_url }}">{{ object.cable }}</a>
|
<a href="{{ object.cable.get_absolute_url }}">{{ object.cable }}</a>
|
||||||
<a href="{% url 'dcim:consoleserverport_trace' pk=object.pk %}" class="btn btn-primary btn-xs" title="Trace">
|
<a href="{% url 'dcim:consoleserverport_trace' pk=object.pk %}" class="btn btn-primary btn-sm lh-1" title="Trace">
|
||||||
<i class="mdi mdi-transit-connection-variant" aria-hidden="true"></i>
|
<i class="mdi mdi-transit-connection-variant" aria-hidden="true"></i>
|
||||||
</a>
|
</a>
|
||||||
</td>
|
</td>
|
||||||
|
@ -8,10 +8,10 @@
|
|||||||
{% csrf_token %}
|
{% csrf_token %}
|
||||||
<div class="card">
|
<div class="card">
|
||||||
<div class="card-header">
|
<div class="card-header">
|
||||||
<h5>Console Ports</h5>
|
<h5 class="d-inline">Console Ports</h5>
|
||||||
<div class="float-end noprint">
|
<div class="float-end noprint">
|
||||||
{% if request.user.is_authenticated %}
|
{% if request.user.is_authenticated %}
|
||||||
<button type="button" class="btn btn-default btn-sm" data-toggle="modal" data-target="#DeviceConsolePortTable_config" title="Configure table"><i class="mdi mdi-cog"></i> Configure</button>
|
<button type="button" class="btn btn-outline-dark btn-sm" data-bs-toggle="modal" data-bs-target="#DeviceConsolePortTable_config" title="Configure table"><i class="mdi mdi-cog"></i> Configure</button>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -8,10 +8,10 @@
|
|||||||
{% csrf_token %}
|
{% csrf_token %}
|
||||||
<div class="card">
|
<div class="card">
|
||||||
<div class="card-header">
|
<div class="card-header">
|
||||||
<h5>Console Server Ports</h5>
|
<h5 class="d-inline">Console Server Ports</h5>
|
||||||
<div class="float-end noprint">
|
<div class="float-end noprint">
|
||||||
{% if request.user.is_authenticated %}
|
{% if request.user.is_authenticated %}
|
||||||
<button type="button" class="btn btn-default btn-sm" data-toggle="modal" data-target="#DeviceConsoleServerPortTable_config" title="Configure table"><i class="mdi mdi-cog"></i> Configure</button>
|
<button type="button" class="btn btn-outline-dark btn-sm" data-bs-toggle="modal" data-bs-target="#DeviceConsoleServerPortTable_config" title="Configure table"><i class="mdi mdi-cog"></i> Configure</button>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -8,10 +8,10 @@
|
|||||||
{% csrf_token %}
|
{% csrf_token %}
|
||||||
<div class="card">
|
<div class="card">
|
||||||
<div class="card-header">
|
<div class="card-header">
|
||||||
<h5>Device Bays</h5>
|
<h5 class="d-inline">Device Bays</h5>
|
||||||
<div class="float-end noprint">
|
<div class="float-end noprint">
|
||||||
{% if request.user.is_authenticated %}
|
{% if request.user.is_authenticated %}
|
||||||
<button type="button" class="btn btn-default btn-sm" data-toggle="modal" data-target="#DeviceDeviceBayTable_config" title="Configure table"><i class="mdi mdi-cog"></i> Configure</button>
|
<button type="button" class="btn btn-outline-dark btn-sm" data-bs-toggle="modal" data-bs-target="#DeviceDeviceBayTable_config" title="Configure table"><i class="mdi mdi-cog"></i> Configure</button>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -8,10 +8,10 @@
|
|||||||
{% csrf_token %}
|
{% csrf_token %}
|
||||||
<div class="card">
|
<div class="card">
|
||||||
<div class="card-header">
|
<div class="card-header">
|
||||||
<h5>Inventory Items</h5>
|
<h5 class="d-inline">Inventory Items</h5>
|
||||||
<div class="float-end noprint">
|
<div class="float-end noprint">
|
||||||
{% if request.user.is_authenticated %}
|
{% if request.user.is_authenticated %}
|
||||||
<button type="button" class="btn btn-default btn-sm" data-toggle="modal" data-target="#DeviceInventoryItemTable_config" title="Configure table"><i class="mdi mdi-cog"></i> Configure</button>
|
<button type="button" class="btn btn-outline-dark btn-sm" data-bs-toggle="modal" data-bs-target="#DeviceInventoryItemTable_config" title="Configure table"><i class="mdi mdi-cog"></i> Configure</button>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -8,10 +8,10 @@
|
|||||||
{% csrf_token %}
|
{% csrf_token %}
|
||||||
<div class="card">
|
<div class="card">
|
||||||
<div class="card-header">
|
<div class="card-header">
|
||||||
<h5>Power Outlets</h5>
|
<h5 class="d-inline">Power Outlets</h5>
|
||||||
<div class="float-right noprint">
|
<div class="float-end noprint">
|
||||||
{% if request.user.is_authenticated %}
|
{% if request.user.is_authenticated %}
|
||||||
<button type="button" class="btn btn-default btn-sm" data-toggle="modal" data-target="#DevicePowerOutletTable_config" title="Configure table"><i class="mdi mdi-cog"></i> Configure</button>
|
<button type="button" class="btn btn-outline-dark btn-sm" data-bs-toggle="modal" data-bs-target="#DevicePowerOutletTable_config" title="Configure table"><i class="mdi mdi-cog"></i> Configure</button>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -38,7 +38,7 @@
|
|||||||
{% if perms.dcim.add_poweroutlet %}
|
{% if perms.dcim.add_poweroutlet %}
|
||||||
<div class="float-end">
|
<div class="float-end">
|
||||||
<a href="{% url 'dcim:poweroutlet_add' %}?device={{ object.pk }}&return_url={% url 'dcim:device_poweroutlets' pk=object.pk %}" class="btn btn-primary btn-sm">
|
<a href="{% url 'dcim:poweroutlet_add' %}?device={{ object.pk }}&return_url={% url 'dcim:device_poweroutlets' pk=object.pk %}" class="btn btn-primary btn-sm">
|
||||||
<i class="bi bi-plus" aria-hidden="true"></i> Add power outlets
|
<i class="bi bi-plus" aria-hidden="true"></i> Add Power Outlets
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
@ -8,10 +8,10 @@
|
|||||||
{% csrf_token %}
|
{% csrf_token %}
|
||||||
<div class="card">
|
<div class="card">
|
||||||
<div class="card-header">
|
<div class="card-header">
|
||||||
<h5>Power Ports</h5>
|
<h5 class="d-inline">Power Ports</h5>
|
||||||
<div class="float-end noprint">
|
<div class="float-end noprint">
|
||||||
{% if request.user.is_authenticated %}
|
{% if request.user.is_authenticated %}
|
||||||
<button type="button" class="btn btn-default btn-sm" data-toggle="modal" data-target="#DevicePowerPortTable_config" title="Configure table"><i class="mdi mdi-cog"></i> Configure</button>
|
<button type="button" class="btn btn-outline-dark btn-sm" data-bs-toggle="modal" data-bs-target="#DevicePowerPortTable_config" title="Configure table"><i class="mdi mdi-cog"></i> Configure</button>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -26,7 +26,7 @@
|
|||||||
{% render_field form.rack %}
|
{% render_field form.rack %}
|
||||||
{% if obj.device_type.is_child_device and obj.parent_bay %}
|
{% if obj.device_type.is_child_device and obj.parent_bay %}
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label class="col-md-3 control-label">Parent device</label>
|
<label class="col-md-3 control-label">Parent Device</label>
|
||||||
<div class="col-md-9">
|
<div class="col-md-9">
|
||||||
<p class="form-control-static">
|
<p class="form-control-static">
|
||||||
<a href="{% url 'dcim:device' pk=obj.parent_bay.device.pk %}">{{ obj.parent_bay.device }}</a>
|
<a href="{% url 'dcim:device' pk=obj.parent_bay.device.pk %}">{{ obj.parent_bay.device }}</a>
|
||||||
@ -34,12 +34,12 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label class="col-md-3 control-label">Parent bay</label>
|
<label class="col-md-3 control-label">Parent Bay</label>
|
||||||
<div class="col-md-9">
|
<div class="col-md-9">
|
||||||
<p class="form-control-static">
|
<p class="form-control-static">
|
||||||
{{ obj.parent_bay.name }}
|
{{ obj.parent_bay.name }}
|
||||||
{% if perms.dcim.change_devicebay %}
|
{% if perms.dcim.change_devicebay %}
|
||||||
<a href="{% url 'dcim:devicebay_depopulate' pk=obj.parent_bay.pk %}" class="btn btn-danger btn-xs">
|
<a href="{% url 'dcim:devicebay_depopulate' pk=obj.parent_bay.pk %}" class="btn btn-danger btn-sm">
|
||||||
<i class="mdi mdi-close-thick" aria-hidden="true" title="Remove device"></i> Remove
|
<i class="mdi mdi-close-thick" aria-hidden="true" title="Remove device"></i> Remove
|
||||||
</a>
|
</a>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
@ -37,17 +37,17 @@
|
|||||||
{% if not obj.untagged_vlan and not tagged_vlans %}
|
{% if not obj.untagged_vlan and not tagged_vlans %}
|
||||||
<tr>
|
<tr>
|
||||||
<td colspan="4" class="text-muted text-center">
|
<td colspan="4" class="text-muted text-center">
|
||||||
No VLANs assigned
|
No VLANs Assigned
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
{% else %}
|
{% else %}
|
||||||
<tr>
|
<tr>
|
||||||
<td colspan="2"></td>
|
<td colspan="2"></td>
|
||||||
<td>
|
<td>
|
||||||
<a href="#" id="clear_untagged_vlan" class="btn btn-warning btn-xs">Clear</a>
|
<a href="#" id="clear_untagged_vlan" class="btn btn-outline-warning btn-sm">Clear</a>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<a href="#" id="clear_tagged_vlans" class="btn btn-warning btn-xs">Clear All</a>
|
<a href="#" id="clear_tagged_vlans" class="btn btn-warning btn-sm">Clear All</a>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
@ -129,7 +129,7 @@
|
|||||||
<th scope="row">Cable</th>
|
<th scope="row">Cable</th>
|
||||||
<td>
|
<td>
|
||||||
<a href="{{ object.cable.get_absolute_url }}">{{ object.cable }}</a>
|
<a href="{{ object.cable.get_absolute_url }}">{{ object.cable }}</a>
|
||||||
<a href="{% url 'dcim:powerfeed_trace' pk=object.pk %}" class="btn btn-primary btn-xs" title="Trace">
|
<a href="{% url 'dcim:powerfeed_trace' pk=object.pk %}" class="btn btn-primary btn-sm lh-1" title="Trace">
|
||||||
<i class="mdi mdi-transit-connection-variant" aria-hidden="true"></i>
|
<i class="mdi mdi-transit-connection-variant" aria-hidden="true"></i>
|
||||||
</a>
|
</a>
|
||||||
</td>
|
</td>
|
||||||
|
@ -281,12 +281,12 @@
|
|||||||
</td>
|
</td>
|
||||||
<td class="text-end noprint">
|
<td class="text-end noprint">
|
||||||
{% if perms.dcim.change_rackreservation %}
|
{% if perms.dcim.change_rackreservation %}
|
||||||
<a href="{% url 'dcim:rackreservation_edit' pk=resv.pk %}?return_url={{ object.get_absolute_url }}" class="btn btn-warning btn-xs" title="Edit reservation">
|
<a href="{% url 'dcim:rackreservation_edit' pk=resv.pk %}?return_url={{ object.get_absolute_url }}" class="btn btn-warning btn-sm" title="Edit Reservation">
|
||||||
<i class="mdi mdi-pencil" aria-hidden="true"></i>
|
<i class="mdi mdi-pencil" aria-hidden="true"></i>
|
||||||
</a>
|
</a>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if perms.dcim.delete_rackreservation %}
|
{% if perms.dcim.delete_rackreservation %}
|
||||||
<a href="{% url 'dcim:rackreservation_delete' pk=resv.pk %}?return_url={{ object.get_absolute_url }}" class="btn btn-danger btn-sm" title="Delete reservation">
|
<a href="{% url 'dcim:rackreservation_delete' pk=resv.pk %}?return_url={{ object.get_absolute_url }}" class="btn btn-danger btn-sm" title="Delete Reservation">
|
||||||
<i class="mdi mdi-trash-can-outline" aria-hidden="true"></i>
|
<i class="mdi mdi-trash-can-outline" aria-hidden="true"></i>
|
||||||
</a>
|
</a>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
@ -1,25 +1,31 @@
|
|||||||
{% extends 'base.html' %}
|
{% extends 'layout.html' %}
|
||||||
{% load helpers %}
|
{% load helpers %}
|
||||||
{% load static %}
|
{% load static %}
|
||||||
|
|
||||||
{% block content %}
|
{% block title %}Rack Elevations{% endblock %}
|
||||||
<div class="btn-toolbar pull-right noprint" role="toolbar">
|
|
||||||
<button class="btn btn-default toggle-images" selected="selected">
|
{% block controls %}
|
||||||
|
<div class="container mb-2 mx-0">
|
||||||
|
<div class="d-flex flex-wrap justify-content-end">
|
||||||
|
<button class="btn btn-sm btn-outline-dark toggle-images m-1" selected="selected">
|
||||||
<span class="mdi mdi mdi-checkbox-marked-circle-outline" aria-hidden="true"></span> Show Images
|
<span class="mdi mdi mdi-checkbox-marked-circle-outline" aria-hidden="true"></span> Show Images
|
||||||
</button>
|
</button>
|
||||||
<div class="btn-group" role="group">
|
<div class="btn-group btn-group-sm m-1" role="group">
|
||||||
<a href="{% url 'dcim:rack_elevation_list' %}{% querystring request face='front' %}" class="btn btn-default{% if rack_face == 'front' %} active{% endif %}">Front</a>
|
<a href="{% url 'dcim:rack_elevation_list' %}{% querystring request face='front' %}" class="btn btn-outline-secondary{% if rack_face == 'front' %} active{% endif %}">Front</a>
|
||||||
<a href="{% url 'dcim:rack_elevation_list' %}{% querystring request face='rear' %}" class="btn btn-default{% if rack_face == 'rear' %} active{% endif %}">Rear</a>
|
<a href="{% url 'dcim:rack_elevation_list' %}{% querystring request face='rear' %}" class="btn btn-outline-secondary{% if rack_face == 'rear' %} active{% endif %}">Rear</a>
|
||||||
</div>
|
</div>
|
||||||
<div class="btn-group" role="group">
|
<div class="btn-group btn-group-sm m-1" role="group">
|
||||||
<a href="{% url 'dcim:rack_elevation_list' %}{% querystring request reverse=None %}" class="btn btn-default{% if not reverse %} active{% endif %}">Normal</a>
|
<a href="{% url 'dcim:rack_elevation_list' %}{% querystring request reverse=None %}" class="btn btn-outline-secondary{% if not reverse %} active{% endif %}">Normal</a>
|
||||||
<a href="{% url 'dcim:rack_elevation_list' %}{% querystring request reverse='true' %}" class="btn btn-default{% if reverse %} active{% endif %}">Reversed</a>
|
<a href="{% url 'dcim:rack_elevation_list' %}{% querystring request reverse='true' %}" class="btn btn-outline-secondary{% if reverse %} active{% endif %}">Reversed</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<h1>{% block title %}Rack Elevations{% endblock %}</h1>
|
</div>
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
|
{% block content %}
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-md-12">
|
<div class="col-md-12">
|
||||||
<div class="col-md-3 pull-right right-side-panel noprint">
|
<div class="col-md-3 float-end right-side-panel noprint">
|
||||||
{% include 'inc/search_panel.html' %}
|
{% include 'inc/search_panel.html' %}
|
||||||
</div>
|
</div>
|
||||||
{% if page %}
|
{% if page %}
|
||||||
@ -30,7 +36,7 @@
|
|||||||
<div class="text-center">
|
<div class="text-center">
|
||||||
<strong><a href="{% url 'dcim:rack' pk=rack.pk %}">{{ rack.name }}</a></strong>
|
<strong><a href="{% url 'dcim:rack' pk=rack.pk %}">{{ rack.name }}</a></strong>
|
||||||
{% if rack.role %}
|
{% if rack.role %}
|
||||||
<br /><small class="label" style="color: {{ rack.role.color|fgcolor }}; background-color: #{{ rack.role.color }}">{{ rack.role }}</small>
|
<br /><span class="badge my-3" style="color: {{ rack.role.color|fgcolor }}; background-color: #{{ rack.role.color }}">{{ rack.role }}</span>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if rack.facility_id %}
|
{% if rack.facility_id %}
|
||||||
<br /><small class="text-muted">{{ rack.facility_id }}</small>
|
<br /><small class="text-muted">{{ rack.facility_id }}</small>
|
||||||
@ -51,12 +57,8 @@
|
|||||||
<br />
|
<br />
|
||||||
{% include 'inc/paginator.html' %}
|
{% include 'inc/paginator.html' %}
|
||||||
{% else %}
|
{% else %}
|
||||||
<p>No racks found</p>
|
<p>No Racks Found</p>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
{% block javascript %}
|
|
||||||
<script src="{% static 'js/rack_elevations.js' %}?v{{ settings.VERSION }}"></script>
|
|
||||||
{% endblock %}
|
|
||||||
|
@ -91,7 +91,7 @@
|
|||||||
<th scope="row">Physical Address</th>
|
<th scope="row">Physical Address</th>
|
||||||
<td>
|
<td>
|
||||||
{% if object.physical_address %}
|
{% if object.physical_address %}
|
||||||
<div class="pull-right noprint">
|
<div class="float-end noprint">
|
||||||
<a href="{{ settings.MAPS_URL }}{{ object.latitude }},{{ object.longitude }}" target="_blank" class="btn btn-primary btn-sm">
|
<a href="{{ settings.MAPS_URL }}{{ object.latitude }},{{ object.longitude }}" target="_blank" class="btn btn-primary btn-sm">
|
||||||
<i class="mdi mdi-map-marker"></i> Map it
|
<i class="mdi mdi-map-marker"></i> Map it
|
||||||
</a>
|
</a>
|
||||||
@ -110,7 +110,7 @@
|
|||||||
<th scope="row">GPS Coordinates</th>
|
<th scope="row">GPS Coordinates</th>
|
||||||
<td>
|
<td>
|
||||||
{% if object.latitude and object.longitude %}
|
{% if object.latitude and object.longitude %}
|
||||||
<div class="pull-right noprint">
|
<div class="float-end noprint">
|
||||||
<a href="{{ settings.MAPS_URL }}{{ object.latitude }},{{ object.longitude }}" target="_blank" class="btn btn-primary btn-sm">
|
<a href="{{ settings.MAPS_URL }}{{ object.latitude }},{{ object.longitude }}" target="_blank" class="btn btn-primary btn-sm">
|
||||||
<i class="mdi mdi-map-marker"></i> Map it
|
<i class="mdi mdi-map-marker"></i> Map it
|
||||||
</a>
|
</a>
|
||||||
|
@ -42,7 +42,7 @@
|
|||||||
</h5>
|
</h5>
|
||||||
{% for context in source_contexts %}
|
{% for context in source_contexts %}
|
||||||
<div class="card-body">
|
<div class="card-body">
|
||||||
<div class="pull-right">
|
<div class="float-end">
|
||||||
<span class="text-muted">{{ context.weight }}</span>
|
<span class="text-muted">{{ context.weight }}</span>
|
||||||
</div>
|
</div>
|
||||||
<a href="{{ context.get_absolute_url }}"><strong>{{ context.name }}</strong></a>
|
<a href="{{ context.get_absolute_url }}"><strong>{{ context.name }}</strong></a>
|
||||||
|
@ -3,21 +3,24 @@
|
|||||||
|
|
||||||
{% block title %}{{ object }}{% endblock %}
|
{% block title %}{{ object }}{% endblock %}
|
||||||
|
|
||||||
|
{% block breadcrumb_main %}
|
||||||
|
<nav class="breadcrumb-container" aria-label="breadcrumb">
|
||||||
|
<ol class="breadcrumb">
|
||||||
|
<li class="breadcrumb-item"><a href="{% url 'extras:objectchange_list' %}">Change Log</a></li>
|
||||||
|
{% if object.related_object.get_absolute_url %}
|
||||||
|
<li class="breadcrumb-item"><a href="{{ object.related_object.get_absolute_url }}changelog/">{{ object.related_object }}</a></li>
|
||||||
|
{% elif object.changed_object.get_absolute_url %}
|
||||||
|
<li class="breadcrumb-item"><a href="{{ object.changed_object.get_absolute_url }}changelog/">{{ object.changed_object }}</a></li>
|
||||||
|
{% elif object.changed_object %}
|
||||||
|
<li class="breadcrumb-item">{{ object.changed_object }}</li>
|
||||||
|
{% endif %}
|
||||||
|
<li class="breadcrumb-item">{{ object }}</li>
|
||||||
|
</ol>
|
||||||
|
</nav>
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
{% block header %}
|
{% block header %}
|
||||||
<div class="row noprint">
|
<div class="row noprint">
|
||||||
<div class="col-sm-8 col-md-9">
|
|
||||||
<ol class="breadcrumb">
|
|
||||||
<li><a href="{% url 'extras:objectchange_list' %}">Change Log</a></li>
|
|
||||||
{% if object.related_object.get_absolute_url %}
|
|
||||||
<li><a href="{{ object.related_object.get_absolute_url }}changelog/">{{ object.related_object }}</a></li>
|
|
||||||
{% elif object.changed_object.get_absolute_url %}
|
|
||||||
<li><a href="{{ object.changed_object.get_absolute_url }}changelog/">{{ object.changed_object }}</a></li>
|
|
||||||
{% elif object.changed_object %}
|
|
||||||
<li>{{ object.changed_object }}</li>
|
|
||||||
{% endif %}
|
|
||||||
<li>{{ object }}</li>
|
|
||||||
</ol>
|
|
||||||
</div>
|
|
||||||
<div class="col-sm-4 col-md-3">
|
<div class="col-sm-4 col-md-3">
|
||||||
<form action="{% url 'extras:objectchange_list' %}" method="get">
|
<form action="{% url 'extras:objectchange_list' %}" method="get">
|
||||||
<div class="input-group">
|
<div class="input-group">
|
||||||
@ -34,7 +37,7 @@
|
|||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
{% block content %}
|
{% block content %}
|
||||||
<div class="row">
|
<div class="row mb-3">
|
||||||
<div class="col-md-5">
|
<div class="col-md-5">
|
||||||
<div class="card">
|
<div class="card">
|
||||||
<h5 class="card-header">
|
<h5 class="card-header">
|
||||||
@ -43,31 +46,31 @@
|
|||||||
<div class="card-body">
|
<div class="card-body">
|
||||||
<table class="table table-hover attr-table">
|
<table class="table table-hover attr-table">
|
||||||
<tr>
|
<tr>
|
||||||
<td>Time</td>
|
<th scope="row">Time</th>
|
||||||
<td>
|
<td>
|
||||||
{{ object.time }}
|
{{ object.time }}
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>User</td>
|
<th scope="row">User</th>
|
||||||
<td>
|
<td>
|
||||||
{{ object.user|default:object.user_name }}
|
{{ object.user|default:object.user_name }}
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>Action</td>
|
<th scope="row">Action</th>
|
||||||
<td>
|
<td>
|
||||||
{{ object.get_action_display }}
|
{{ object.get_action_display }}
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>Object Type</td>
|
<th scope="row">Object Type</th>
|
||||||
<td>
|
<td>
|
||||||
{{ object.changed_object_type }}
|
{{ object.changed_object_type }}
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>Object</td>
|
<th scope="row">Object</th>
|
||||||
<td>
|
<td>
|
||||||
{% if object.changed_object.get_absolute_url %}
|
{% if object.changed_object.get_absolute_url %}
|
||||||
<a href="{{ object.changed_object.get_absolute_url }}">{{ object.changed_object }}</a>
|
<a href="{{ object.changed_object.get_absolute_url }}">{{ object.changed_object }}</a>
|
||||||
@ -77,7 +80,7 @@
|
|||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>Request ID</td>
|
<th scope="row">Request ID</th>
|
||||||
<td>
|
<td>
|
||||||
{{ object.request_id }}
|
{{ object.request_id }}
|
||||||
</td>
|
</td>
|
||||||
@ -85,15 +88,17 @@
|
|||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col-md-7">
|
||||||
<div class="card">
|
<div class="card">
|
||||||
<div class="card-header">
|
<div class="card-header">
|
||||||
<h5>Difference</h5>
|
<h5 class="d-inline">Difference</h5>
|
||||||
<div class="btn-group btn-group-xs pull-right noprint">
|
<div class="btn-group btn-group-sm float-end noprint">
|
||||||
<a {% if prev_change %}href="{% url 'extras:objectchange' pk=prev_change.pk %}"{% else %}disabled{% endif %} class="btn btn-default">
|
<a {% if prev_change %}href="{% url 'extras:objectchange' pk=prev_change.pk %}"{% else %}disabled{% endif %} class="btn btn-outline-secondary">
|
||||||
<span class="mdi mdi-chevron-left" aria-hidden="true"></span> Previous
|
<i class="mdi mdi-chevron-left" aria-hidden="true"></i> Previous
|
||||||
</a>
|
</a>
|
||||||
<a {% if next_change %}href="{% url 'extras:objectchange' pk=next_change.pk %}"{% else %}disabled{% endif %} class="btn btn-default">
|
<a {% if next_change %}href="{% url 'extras:objectchange' pk=next_change.pk %}"{% else %}disabled{% endif %} class="btn btn-outline-secondary">
|
||||||
Next <span class="mdi mdi-chevron-right" aria-hidden="true"></span>
|
Next <i class="mdi mdi-chevron-right" aria-hidden="true"></i>
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -101,20 +106,22 @@
|
|||||||
{% if diff_added == diff_removed %}
|
{% if diff_added == diff_removed %}
|
||||||
<span class="text-muted" style="margin-left: 10px;">
|
<span class="text-muted" style="margin-left: 10px;">
|
||||||
{% if object.action == 'create' %}
|
{% if object.action == 'create' %}
|
||||||
Object created
|
Object Created
|
||||||
{% elif object.action == 'delete' %}
|
{% elif object.action == 'delete' %}
|
||||||
Object deleted
|
Object Deleted
|
||||||
{% else %}
|
{% else %}
|
||||||
No changes
|
No Changes
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</span>
|
</span>
|
||||||
{% else %}
|
{% else %}
|
||||||
<pre style="background-color: #ffdce0;">{{ diff_removed|render_json }}</pre>
|
<pre class="change-diff change-removed">{{ diff_removed|render_json }}</pre>
|
||||||
<pre style="background-color: #cdffd8;">{{ diff_added|render_json }}</pre>
|
<pre class="change-diff change-added">{{ diff_added|render_json }}</pre>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="row mb-3">
|
||||||
<div class="col-md-6">
|
<div class="col-md-6">
|
||||||
<div class="card">
|
<div class="card">
|
||||||
<h5 class="card-header">
|
<h5 class="card-header">
|
||||||
@ -122,8 +129,8 @@
|
|||||||
</h5>
|
</h5>
|
||||||
<div class="card-body">
|
<div class="card-body">
|
||||||
{% if object.prechange_data %}
|
{% if object.prechange_data %}
|
||||||
<pre>{% for k, v in object.prechange_data.items %}{% spaceless %}
|
<pre class="change-data">{% for k, v in object.prechange_data.items %}{% spaceless %}
|
||||||
<span{% if k in diff_removed %} style="background-color: #ffdce0"{% endif %}>{{ k }}: {{ v|render_json }}</span>
|
<span{% if k in diff_removed %} class="removed"{% endif %}>{{ k }}: {{ v|render_json }}</span>
|
||||||
{% endspaceless %}{% endfor %}
|
{% endspaceless %}{% endfor %}
|
||||||
</pre>
|
</pre>
|
||||||
{% else %}
|
{% else %}
|
||||||
@ -132,7 +139,6 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
|
||||||
<div class="col-md-6">
|
<div class="col-md-6">
|
||||||
<div class="card">
|
<div class="card">
|
||||||
<h5 class="card-header">
|
<h5 class="card-header">
|
||||||
@ -140,8 +146,8 @@
|
|||||||
</h5>
|
</h5>
|
||||||
<div class="card-body">
|
<div class="card-body">
|
||||||
{% if object.postchange_data %}
|
{% if object.postchange_data %}
|
||||||
<pre>{% for k, v in object.postchange_data.items %}{% spaceless %}
|
<pre class="change-data">{% for k, v in object.postchange_data.items %}{% spaceless %}
|
||||||
<span{% if k in diff_added %} style="background-color: #cdffd8"{% endif %}>{{ k }}: {{ v|render_json }}</span>
|
<span{% if k in diff_added %} class="added"{% endif %}>{{ k }}: {{ v|render_json }}</span>
|
||||||
{% endspaceless %}{% endfor %}
|
{% endspaceless %}{% endfor %}
|
||||||
</pre>
|
</pre>
|
||||||
{% else %}
|
{% else %}
|
||||||
@ -150,12 +156,13 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="row">
|
</div>
|
||||||
|
<div class="row mb-3">
|
||||||
<div class="col-md-12">
|
<div class="col-md-12">
|
||||||
{% include 'panel_table.html' with table=related_changes_table heading='Related Changes' panel_class='default' %}
|
{% include 'panel_table.html' with table=related_changes_table heading='Related Changes' panel_class='default' %}
|
||||||
{% if related_changes_count > related_changes_table.rows|length %}
|
{% if related_changes_count > related_changes_table.rows|length %}
|
||||||
<div class="pull-right">
|
<div class="float-end">
|
||||||
<a href="{% url 'extras:objectchange_list' %}?request_id={{ object.request_id }}" class="btn btn-primary">See all {{ related_changes_count|add:"1" }} changes</a>
|
<a href="{% url 'extras:objectchange_list' %}?request_id={{ object.request_id }}" class="btn btn-primary">See All {{ related_changes_count|add:"1" }} Changes</a>
|
||||||
</div>
|
</div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</div>
|
</div>
|
||||||
|
@ -1,20 +1,24 @@
|
|||||||
{% extends 'base.html' %}
|
{% extends 'layout.html' %}
|
||||||
{% load helpers %}
|
{% load helpers %}
|
||||||
|
|
||||||
{% block title %}{{ report.name }}{% endblock %}
|
{% block title %}{{ report.name }}{% endblock %}
|
||||||
|
|
||||||
{% block header %}
|
{% block breadcrumb_main %}
|
||||||
<div class="row noprint">
|
<nav class="breadcrumb-container" aria-label="breadcrumb">
|
||||||
<div class="col-md-12">
|
|
||||||
<ol class="breadcrumb">
|
<ol class="breadcrumb">
|
||||||
<li><a href="{% url 'extras:report_list' %}">Reports</a></li>
|
<li class="breadcrumb-item"><a href="{% url 'extras:report_list' %}">Reports</a></li>
|
||||||
<li><a href="{% url 'extras:report_list' %}#module.{{ report.module }}">{{ report.module|bettertitle }}</a></li>
|
<li class="breadcrumb-item"><a href="{% url 'extras:report_list' %}#module.{{ report.module }}">{{ report.module|bettertitle }}</a></li>
|
||||||
<li>{{ report.name }}</li>
|
<li class="breadcrumb-item">{{ report.name }}</li>
|
||||||
</ol>
|
</ol>
|
||||||
</div>
|
</nav>
|
||||||
</div>
|
{% endblock %}
|
||||||
|
|
||||||
|
{% block content %}
|
||||||
|
{% if report.description %}
|
||||||
|
<p class="text-muted">{{ report.description }}</p>
|
||||||
|
{% endif %}
|
||||||
{% if perms.extras.run_report %}
|
{% if perms.extras.run_report %}
|
||||||
<div class="pull-right noprint">
|
<div class="float-end noprint">
|
||||||
<form action="{% url 'extras:report' module=report.module name=report.class_name %}" method="post">
|
<form action="{% url 'extras:report' module=report.module name=report.class_name %}" method="post">
|
||||||
{% csrf_token %}
|
{% csrf_token %}
|
||||||
<button type="submit" name="_run" class="btn btn-primary">
|
<button type="submit" name="_run" class="btn btn-primary">
|
||||||
@ -27,13 +31,6 @@
|
|||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
<h1 class="title">{{ report.name }}</h1>
|
|
||||||
{% if report.description %}
|
|
||||||
<p class="lead">{{ report.description }}</p>
|
|
||||||
{% endif %}
|
|
||||||
{% endblock %}
|
|
||||||
|
|
||||||
{% block content %}
|
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-md-12">
|
<div class="col-md-12">
|
||||||
{% if report.result %}
|
{% if report.result %}
|
||||||
|
@ -5,10 +5,12 @@
|
|||||||
|
|
||||||
{% block content %}
|
{% block content %}
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-md-8">
|
<div class="col-md-9">
|
||||||
{% if reports %}
|
{% if reports %}
|
||||||
{% for module, module_reports in reports %}
|
{% for module, module_reports in reports %}
|
||||||
<h3><a name="module.{{ module }}"></a>{{ module|bettertitle }}</h3>
|
<div class="card">
|
||||||
|
<h5 class="card-header"><a name="module.{{ module }}"></a>{{ module|bettertitle }}</h3>
|
||||||
|
<div class="card-body">
|
||||||
<table class="table table-hover table-headings reports">
|
<table class="table table-hover table-headings reports">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
@ -71,6 +73,8 @@
|
|||||||
{% endfor %}
|
{% endfor %}
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% else %}
|
{% else %}
|
||||||
<div class="alert alert-info" role="alert">
|
<div class="alert alert-info" role="alert">
|
||||||
@ -81,7 +85,7 @@
|
|||||||
</div>
|
</div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md-4">
|
<div class="col-md-3">
|
||||||
{% if reports %}
|
{% if reports %}
|
||||||
<div class="card">
|
<div class="card">
|
||||||
<div class="card-body">
|
<div class="card-body">
|
||||||
|
@ -5,6 +5,8 @@
|
|||||||
{% block title %}{{ report.name }} - {{ result.get_status_display }}{% endblock %}
|
{% block title %}{{ report.name }} - {{ result.get_status_display }}{% endblock %}
|
||||||
|
|
||||||
{% block content %}
|
{% block content %}
|
||||||
|
<span id="jobId" data-value="{{ result.pk }}" style="display: none;"></span>
|
||||||
|
<span id="jobComplete" data-value="{{ result.completed }}" style="display: none;"></span>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-md-12">
|
<div class="col-md-12">
|
||||||
<p>
|
<p>
|
||||||
@ -12,7 +14,9 @@
|
|||||||
{% if result.completed %}
|
{% if result.completed %}
|
||||||
Duration: <strong>{{ result.duration }}</strong>
|
Duration: <strong>{{ result.duration }}</strong>
|
||||||
{% else %}
|
{% else %}
|
||||||
<img id="pending-result-loader" src="{% static 'img/ajax-loader.gif' %}" />
|
<div class="spinner-border" role="status">
|
||||||
|
<span class="visually-hidden">Loading...</span>
|
||||||
|
</div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
<span id="pending-result-label">{% include 'extras/inc/job_label.html' with result=result %}</span>
|
<span id="pending-result-label">{% include 'extras/inc/job_label.html' with result=result %}</span>
|
||||||
</p>
|
</p>
|
||||||
@ -26,11 +30,11 @@
|
|||||||
{% for method, data in result.data.items %}
|
{% for method, data in result.data.items %}
|
||||||
<tr>
|
<tr>
|
||||||
<td><code><a href="#{{ method }}">{{ method }}</a></code></td>
|
<td><code><a href="#{{ method }}">{{ method }}</a></code></td>
|
||||||
<td class="text-right report-stats">
|
<td class="text-end report-stats">
|
||||||
<label class="badge bg-success">{{ data.success }}</label>
|
<span class="badge bg-success">{{ data.success }}</span>
|
||||||
<label class="badge bg-info">{{ data.info }}</label>
|
<span class="badge bg-info">{{ data.info }}</span>
|
||||||
<label class="badge bg-warning">{{ data.warning }}</label>
|
<span class="badge bg-warning">{{ data.warning }}</span>
|
||||||
<label class="badge bg-danger">{{ data.failure }}</label>
|
<span class="badge bg-danger">{{ data.failure }}</span>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
@ -87,18 +91,6 @@
|
|||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
{% block javascript %}
|
{% block javascript %}
|
||||||
<script type="text/javascript">
|
<script src="{% static 'jobs.js' %}?v{{ settings.VERSION }}"
|
||||||
{% if not result.completed %}
|
onerror="window.location='{% url 'media_failure' %}?filename=jobs.js'"></script>
|
||||||
var pending_result_id = {{ result.pk }};
|
|
||||||
{% else %}
|
|
||||||
var pending_result_id = null;
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
function jobTerminatedAction(){
|
|
||||||
refreshWindow();
|
|
||||||
}
|
|
||||||
|
|
||||||
</script>
|
|
||||||
<script src="{% static 'js/job_result.js' %}?v{{ settings.VERSION }}"
|
|
||||||
onerror="window.location='{% url 'media_failure' %}?filename=js/job_result.js'"></script>
|
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
@ -20,14 +20,6 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md-5">
|
<div class="col-md-5">
|
||||||
{% if form.non_field_errors %}
|
|
||||||
<div class="panel bg-danger">
|
|
||||||
<h5 class="card-header">Errors</h5>
|
|
||||||
<div class="card-body">
|
|
||||||
{{ form.non_field_errors }}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
{% endif %}
|
|
||||||
<div class="card">
|
<div class="card">
|
||||||
<h5 class="card-header">{{ model_name|title }} to Add</h5>
|
<h5 class="card-header">{{ model_name|title }} to Add</h5>
|
||||||
<div class="card-body">
|
<div class="card-body">
|
||||||
@ -36,10 +28,10 @@
|
|||||||
{% endfor %}
|
{% endfor %}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group text-right">
|
<div class="form-group text-end">
|
||||||
<div class="col-md-12">
|
<div class="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>
|
<button type="submit" name="_create" class="btn btn-primary">Create</button>
|
||||||
<a href="{{ return_url }}" class="btn btn-default">Cancel</a>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -2,16 +2,9 @@
|
|||||||
{% load helpers %}
|
{% load helpers %}
|
||||||
{% load form_helpers %}
|
{% load form_helpers %}
|
||||||
|
|
||||||
|
{% block title %}Editing {{ table.rows|length }} {{ obj_type_plural|bettertitle }}{% endblock %}
|
||||||
|
|
||||||
{% block content %}
|
{% block content %}
|
||||||
<h1>{% block title %}Editing {{ table.rows|length }} {{ obj_type_plural|bettertitle }}{% endblock %}</h1>
|
|
||||||
{% if form.errors %}
|
|
||||||
<div class="card bg-danger">
|
|
||||||
<h5 class="card-header">Errors</h5>
|
|
||||||
<div class="card-body">
|
|
||||||
{{ form.errors }}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
{% endif %}
|
|
||||||
<form action="" method="post" class="form form-horizontal">
|
<form action="" method="post" class="form form-horizontal">
|
||||||
{% csrf_token %}
|
{% csrf_token %}
|
||||||
{% if request.POST.return_url %}
|
{% if request.POST.return_url %}
|
||||||
@ -27,14 +20,6 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md-4">
|
<div class="col-md-4">
|
||||||
{% if form.non_field_errors %}
|
|
||||||
<div class="card bg-danger">
|
|
||||||
<h5 class="card-header">Errors</h5>
|
|
||||||
<div class="card-body">
|
|
||||||
{{ form.non_field_errors }}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
{% endif %}
|
|
||||||
<div class="card">
|
<div class="card">
|
||||||
<h5 class="card-header">{% block form_title %}Attributes{% endblock %}</h5>
|
<h5 class="card-header">{% block form_title %}Attributes{% endblock %}</h5>
|
||||||
<div class="card-body">
|
<div class="card-body">
|
||||||
@ -47,10 +32,10 @@
|
|||||||
{% endfor %}
|
{% endfor %}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group text-right">
|
<div class="form-group text-end">
|
||||||
<div class="col-md-12">
|
<div class="col-md-12">
|
||||||
|
<a href="{{ return_url }}" class="btn btn-outline-danger">Cancel</a>
|
||||||
<button type="submit" name="_apply" class="btn btn-primary">Apply</button>
|
<button type="submit" name="_apply" class="btn btn-primary">Apply</button>
|
||||||
<a href="{{ return_url }}" class="btn btn-default">Cancel</a>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -1,30 +1,22 @@
|
|||||||
{% extends 'base.html' %}
|
{% extends 'layout.html' %}
|
||||||
{% load helpers %}
|
{% load helpers %}
|
||||||
{% load form_helpers %}
|
{% load form_helpers %}
|
||||||
|
|
||||||
|
{% block title %}{{ obj_type|bettertitle }} Import{% endblock %}
|
||||||
|
|
||||||
{% block content %}
|
{% block content %}
|
||||||
<h1>{% block title %}{{ obj_type|bettertitle }} Import{% endblock %}</h1>
|
<div class="row mb-3">
|
||||||
{% block tabs %}{% endblock %}
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-md-8 col-md-offset-2">
|
<div class="col-md-8 col-md-offset-2">
|
||||||
{% if form.non_field_errors %}
|
|
||||||
<div class="panel panel-danger">
|
|
||||||
<div class="panel-heading"><strong>Errors</strong></div>
|
|
||||||
<div class="panel-body">
|
|
||||||
{{ form.non_field_errors }}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
{% endif %}
|
|
||||||
<form action="" method="post" class="form form-horizontal">
|
<form action="" method="post" class="form form-horizontal">
|
||||||
{% csrf_token %}
|
{% csrf_token %}
|
||||||
{% render_form form %}
|
{% render_form form %}
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<div class="col-md-12 text-right">
|
<div class="col-md-12 text-end">
|
||||||
<button type="submit" name="_create" class="btn btn-primary">Submit</button>
|
|
||||||
<button type="submit" name="_addanother" class="btn btn-primary">Submit and Import Another</button>
|
|
||||||
{% if return_url %}
|
{% if return_url %}
|
||||||
<a href="{{ return_url }}" class="btn btn-default">Cancel</a>
|
<a href="{{ return_url }}" class="btn btn-outline-danger">Cancel</a>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
<button type="submit" name="_addanother" class="btn btn-outline-primary">Submit & Import Another</button>
|
||||||
|
<button type="submit" name="_create" class="btn btn-primary">Submit</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
|
@ -9,6 +9,7 @@
|
|||||||
{% block controls %}
|
{% block controls %}
|
||||||
<div class="container mb-2 mx-0">
|
<div class="container mb-2 mx-0">
|
||||||
<div class="d-flex flex-wrap justify-content-end">
|
<div class="d-flex flex-wrap justify-content-end">
|
||||||
|
{% block extra_controls %}{% endblock %}
|
||||||
{% if permissions.add and 'add' in action_buttons %}
|
{% if permissions.add and 'add' in action_buttons %}
|
||||||
{% add_button content_type.model_class|validated_viewname:"add" %}
|
{% add_button content_type.model_class|validated_viewname:"add" %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
@ -21,7 +22,6 @@
|
|||||||
|
|
||||||
<div class="d-flex flex-shrink-1">
|
<div class="d-flex flex-shrink-1">
|
||||||
{% if request.user.is_authenticated and table_config_form %}
|
{% if request.user.is_authenticated and table_config_form %}
|
||||||
|
|
||||||
<button
|
<button
|
||||||
type="button"
|
type="button"
|
||||||
class="btn btn-sm btn-outline-secondary m-1"
|
class="btn btn-sm btn-outline-secondary m-1"
|
||||||
|
@ -1,13 +1,14 @@
|
|||||||
{% extends 'base.html' %}
|
{% extends 'layout.html' %}
|
||||||
|
|
||||||
|
{% block title %}Import Completed{% endblock %}
|
||||||
|
|
||||||
{% block content %}
|
{% block content %}
|
||||||
<h1>{% block title %}Import Completed{% endblock %}</h1>
|
|
||||||
{% include 'responsive_table.html' %}
|
{% include 'responsive_table.html' %}
|
||||||
|
{% if return_url %}
|
||||||
|
<a href="{{ return_url }}" class="btn btn-outline-dark">View All</a>
|
||||||
|
{% endif %}
|
||||||
<a href="{{ request.path }}" class="btn btn-primary">
|
<a href="{{ request.path }}" class="btn btn-primary">
|
||||||
<span class="mdi mdi-database-import-outline" aria-hidden="true"></span>
|
<span class="mdi mdi-database-import-outline" aria-hidden="true"></span>
|
||||||
Import more
|
Import More
|
||||||
</a>
|
</a>
|
||||||
{% if return_url %}
|
|
||||||
<a href="{{ return_url }}" class="btn btn-default">View All</a>
|
|
||||||
{% endif %}
|
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
@ -15,14 +15,14 @@
|
|||||||
</td>
|
</td>
|
||||||
<td>{{ attachment.size|filesizeformat }}</td>
|
<td>{{ attachment.size|filesizeformat }}</td>
|
||||||
<td>{{ attachment.created }}</td>
|
<td>{{ attachment.created }}</td>
|
||||||
<td class="text-right noprint">
|
<td class="text-end noprint">
|
||||||
{% if perms.extras.change_imageattachment %}
|
{% if perms.extras.change_imageattachment %}
|
||||||
<a href="{% url 'extras:imageattachment_edit' pk=attachment.pk %}" class="btn btn-warning btn-sm" title="Edit image">
|
<a href="{% url 'extras:imageattachment_edit' pk=attachment.pk %}" class="btn btn-warning btn-sm" title="Edit Image">
|
||||||
<i class="bi bi-pencil-fill" aria-hidden="true"></i>
|
<i class="bi bi-pencil-fill" aria-hidden="true"></i>
|
||||||
</a>
|
</a>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if perms.extras.delete_imageattachment %}
|
{% if perms.extras.delete_imageattachment %}
|
||||||
<a href="{% url 'extras:imageattachment_delete' pk=attachment.pk %}" class="btn btn-danger btn-sm" title="Delete image">
|
<a href="{% url 'extras:imageattachment_delete' pk=attachment.pk %}" class="btn btn-danger btn-sm" title="Delete Image">
|
||||||
<i class="bi bi-trash-fill" aria-hidden="true"></i>
|
<i class="bi bi-trash-fill" aria-hidden="true"></i>
|
||||||
</a>
|
</a>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
@ -8,10 +8,10 @@
|
|||||||
{% if not menu_item.permissions or request.user|has_perms:menu_item.permissions %}
|
{% if not menu_item.permissions or request.user|has_perms:menu_item.permissions %}
|
||||||
<li>
|
<li>
|
||||||
{% if menu_item.buttons %}
|
{% if menu_item.buttons %}
|
||||||
<div class="buttons pull-right">
|
<div class="buttons float-end">
|
||||||
{% for button in menu_item.buttons %}
|
{% for button in menu_item.buttons %}
|
||||||
{% if not button.permissions or request.user|has_perms:button.permissions %}
|
{% if not button.permissions or request.user|has_perms:button.permissions %}
|
||||||
<a href="{% url button.link %}" class="btn btn-xs btn-{{ button.color }}" title="{{ button.title }}"><i class="{{ button.icon_class }}"></i></a>
|
<a href="{% url button.link %}" class="btn btn-sm btn-{{ button.color }}" title="{{ button.title }}"><i class="{{ button.icon_class }}"></i></a>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</div>
|
</div>
|
||||||
|
@ -10,18 +10,18 @@
|
|||||||
{% endfor %}
|
{% endfor %}
|
||||||
</td>
|
</td>
|
||||||
<td>{{ service.description }}</td>
|
<td>{{ service.description }}</td>
|
||||||
<td class="text-right noprint">
|
<td class="text-end noprint">
|
||||||
<a href="{% url 'ipam:service_changelog' pk=service.pk %}" class="btn btn-default btn-sm" title="Change log">
|
<a href="{% url 'ipam:service_changelog' pk=service.pk %}" class="btn btn-sm btn-outline-secondary" title="Change Log">
|
||||||
<i class="bi bi-clock-history"></i>
|
<i class="bi bi-clock-history"></i>
|
||||||
</a>
|
</a>
|
||||||
{% if perms.ipam.change_service %}
|
{% if perms.ipam.change_service %}
|
||||||
<a href="{% url 'ipam:service_edit' pk=service.pk %}?return_url={{ service.parent.get_absolute_url }}" class="btn btn-info btn-sm" title="Edit service">
|
<a href="{% url 'ipam:service_edit' pk=service.pk %}?return_url={{ service.parent.get_absolute_url }}" class="btn btn-warning btn-sm" title="Edit Service">
|
||||||
<i class="bi bi-pencil-fill"></i>
|
<i class="bi bi-pencil-fill"></i>
|
||||||
</a>
|
</a>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if perms.ipam.delete_service %}
|
{% if perms.ipam.delete_service %}
|
||||||
<a href="{% url 'ipam:service_delete' pk=service.pk %}?return_url={{ service.parent.get_absolute_url }}" class="btn btn-danger btn-sm">
|
<a href="{% url 'ipam:service_delete' pk=service.pk %}?return_url={{ service.parent.get_absolute_url }}" class="btn btn-danger btn-sm">
|
||||||
<i class="bi bi-trash-fill" title="Delete service"></i>
|
<i class="bi bi-trash-fill" title="Delete Service"></i>
|
||||||
</a>
|
</a>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</td>
|
</td>
|
||||||
|
@ -122,7 +122,7 @@
|
|||||||
Duplicate IP Addresses
|
Duplicate IP Addresses
|
||||||
{% if more_duplicate_ips %}
|
{% if more_duplicate_ips %}
|
||||||
<div class="float-end">
|
<div class="float-end">
|
||||||
<a type="button" class="btn btn-primary btn-xs"
|
<a type="button" class="btn btn-primary btn-sm"
|
||||||
{% if object.vrf %}
|
{% if object.vrf %}
|
||||||
href="{% url 'ipam:ipaddress_list' %}?address={{ object.address.ip }}&vrf_id={{ object.vrf.pk }}"
|
href="{% url 'ipam:ipaddress_list' %}?address={{ object.address.ip }}&vrf_id={{ object.vrf.pk }}"
|
||||||
{% else %}
|
{% else %}
|
||||||
|
@ -1,20 +1,17 @@
|
|||||||
{% extends 'generic/object_list.html' %}
|
{% extends 'generic/object_list.html' %}
|
||||||
{% load helpers %}
|
{% load helpers %}
|
||||||
|
|
||||||
{% block buttons %}
|
{% block extra_controls %}
|
||||||
<div class="btn-group" role="group">
|
<div class="dropdown m-1">
|
||||||
<div class="dropdown">
|
<button class="btn btn-sm btn-outline-secondary dropdown-toggle" type="button" id="max_length" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="true">
|
||||||
<button class="btn btn-default dropdown-toggle" type="button" id="max_length" data-toggle="dropdown" aria-haspopup="true" aria-expanded="true">
|
|
||||||
Max Length{% if "mask_length__lte" in request.GET %}: {{ request.GET.mask_length__lte }}{% endif %}
|
Max Length{% if "mask_length__lte" in request.GET %}: {{ request.GET.mask_length__lte }}{% endif %}
|
||||||
<span class="caret"></span>
|
|
||||||
</button>
|
</button>
|
||||||
<ul class="dropdown-menu" aria-labelledby="max_length">
|
<ul class="dropdown-menu" aria-labelledby="max_length">
|
||||||
{% for i in "4,8,12,16,20,24,28,32,40,48,56,64"|split %}
|
{% for i in "4,8,12,16,20,24,28,32,40,48,56,64"|split %}
|
||||||
<li><a href="{% url 'ipam:prefix_list' %}{% querystring request mask_length__lte=i page=1 %}">
|
<li><a class="dropdown-item" href="{% url 'ipam:prefix_list' %}{% querystring request mask_length__lte=i page=1 %}">
|
||||||
{{ i }} {% if request.GET.mask_length__lte == i %}<i class="mdi mdi-check-bold"></i>{% endif %}
|
{{ i }} {% if request.GET.mask_length__lte == i %}<i class="mdi mdi-check-bold"></i>{% endif %}
|
||||||
</a></li>
|
</a></li>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
@ -1,13 +1,13 @@
|
|||||||
{% extends 'generic/object_list.html' %}
|
{% extends 'generic/object_list.html' %}
|
||||||
|
|
||||||
{% block buttons %}
|
{% block extra_controls %}
|
||||||
{% if request.GET.family == '6' %}
|
{% if request.GET.family == '6' %}
|
||||||
<a href="{% url 'ipam:rir_list' %}" class="btn btn-default">
|
<a href="{% url 'ipam:rir_list' %}" class="btn btn-sm btn-outline-secondary m-1">
|
||||||
<span class="mdi mdi-table" aria-hidden="true"></span>
|
<span class="mdi mdi-table" aria-hidden="true"></span>
|
||||||
IPv4 Stats
|
IPv4 Stats
|
||||||
</a>
|
</a>
|
||||||
{% else %}
|
{% else %}
|
||||||
<a href="{% url 'ipam:rir_list' %}?family=6{% if request.GET %}&{{ request.GET.urlencode }}{% endif %}" class="btn btn-default">
|
<a href="{% url 'ipam:rir_list' %}?family=6{% if request.GET %}&{{ request.GET.urlencode }}{% endif %}" class="btn btn-sm btn-outline-secondary m-1">
|
||||||
<span class="mdi mdi-table" aria-hidden="true"></span>
|
<span class="mdi mdi-table" aria-hidden="true"></span>
|
||||||
IPv6 Stats
|
IPv6 Stats
|
||||||
</a>
|
</a>
|
||||||
@ -16,8 +16,8 @@
|
|||||||
|
|
||||||
{% block sidebar %}
|
{% block sidebar %}
|
||||||
{% if request.GET.family == '6' %}
|
{% if request.GET.family == '6' %}
|
||||||
<div class="alert alert-info">
|
<div class="alert alert-info small">
|
||||||
<i class="bi bi-info-circle"></i> Numbers shown indicate /64 prefixes.
|
<i class="mdi mdi-information-outline"></i> Numbers shown indicate /64 prefixes.
|
||||||
</div>
|
</div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
@ -2,20 +2,20 @@
|
|||||||
<form id="secret_form">
|
<form id="secret_form">
|
||||||
{% csrf_token %}
|
{% csrf_token %}
|
||||||
</form>
|
</form>
|
||||||
<table class="table table-hover panel-body">
|
<table class="table table-hover">
|
||||||
{% for secret in secrets %}
|
{% for secret in secrets %}
|
||||||
<tr>
|
<tr>
|
||||||
<td><a href="{% url 'secrets:secret' pk=secret.pk %}">{{ secret.role }}</a></td>
|
<td><a href="{% url 'secrets:secret' pk=secret.pk %}">{{ secret.role }}</a></td>
|
||||||
<td>{{ secret.name }}</td>
|
<td>{{ secret.name }}</td>
|
||||||
<td id="secret_{{ secret.pk }}">********</td>
|
<td id="secret_{{ secret.pk }}">********</td>
|
||||||
<td class="text-right noprint">
|
<td class="text-end noprint">
|
||||||
<button class="btn btn-xs btn-success unlock-secret" secret-id="{{ secret.pk }}">
|
<button class="btn btn-sm btn-success unlock-secret" secret-id="{{ secret.pk }}">
|
||||||
<i class="mdi mdi-lock"></i> Unlock
|
<i class="mdi mdi-lock"></i> Unlock
|
||||||
</button>
|
</button>
|
||||||
<button class="btn btn-xs btn-default copy-secret collapse" secret-id="{{ secret.pk }}" data-clipboard-target="#secret_{{ secret.pk }}">
|
<button class="btn btn-sm btn-outline-dark copy-secret collapse" secret-id="{{ secret.pk }}" data-clipboard-target="#secret_{{ secret.pk }}">
|
||||||
<i class="mdi mdi-content-copy"></i> Copy
|
<i class="mdi mdi-content-copy"></i> Copy
|
||||||
</button>
|
</button>
|
||||||
<button class="btn btn-xs btn-danger lock-secret collapse" secret-id="{{ secret.pk }}">
|
<button class="btn btn-sm btn-danger lock-secret collapse" secret-id="{{ secret.pk }}">
|
||||||
<i class="mdi mdi-lock-open"></i> Lock
|
<i class="mdi mdi-lock-open"></i> Lock
|
||||||
</button>
|
</button>
|
||||||
</td>
|
</td>
|
||||||
@ -23,7 +23,7 @@
|
|||||||
{% endfor %}
|
{% endfor %}
|
||||||
</table>
|
</table>
|
||||||
{% else %}
|
{% else %}
|
||||||
<div class="panel-body text-muted">
|
<div class="text-muted">
|
||||||
None found
|
None found
|
||||||
</div>
|
</div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
@ -54,7 +54,7 @@
|
|||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-md-2">Secret</div>
|
<div class="col-md-2">Secret</div>
|
||||||
<div class="col-md-6"><code id="secret_{{ object.pk }}">********</code></div>
|
<div class="col-md-6"><code id="secret_{{ object.pk }}">********</code></div>
|
||||||
<div class="col-md-4 text-right noprint">
|
<div class="col-md-4 text-end noprint">
|
||||||
<button class="btn btn-sm btn-success unlock-secret" secret-id="{{ object.pk }}">
|
<button class="btn btn-sm btn-success unlock-secret" secret-id="{{ object.pk }}">
|
||||||
<i class="mdi mdi-lock"></i> Unlock
|
<i class="mdi mdi-lock"></i> Unlock
|
||||||
</button>
|
</button>
|
||||||
|
@ -17,7 +17,7 @@
|
|||||||
<i class="mdi mdi-key"></i>
|
<i class="mdi mdi-key"></i>
|
||||||
<samp><span id="token_{{ token.pk }}">{{ token.key }}</span></samp>
|
<samp><span id="token_{{ token.pk }}">{{ token.key }}</span></samp>
|
||||||
{% if token.is_expired %}
|
{% if token.is_expired %}
|
||||||
<span class="label label-danger">Expired</span>
|
<span class="badge bg-danger">Expired</span>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</div>
|
</div>
|
||||||
<div class="card-body">
|
<div class="card-body">
|
||||||
@ -35,11 +35,11 @@
|
|||||||
{% endif %}
|
{% endif %}
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md-4">
|
<div class="col-md-4">
|
||||||
<small class="text-muted">Create/edit/delete operations</small><br />
|
<small class="text-muted">Create/Edit/Delete Operations</small><br />
|
||||||
{% if token.write_enabled %}
|
{% if token.write_enabled %}
|
||||||
<span class="label label-success">Enabled</span>
|
<span class="badge bg-success">Enabled</span>
|
||||||
{% else %}
|
{% else %}
|
||||||
<span class="label label-danger">Disabled</span>
|
<span class="badge bg-danger">Disabled</span>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -30,7 +30,7 @@
|
|||||||
<pre class="copyable">{{ object.public_key }}</pre>
|
<pre class="copyable">{{ object.public_key }}</pre>
|
||||||
<hr />
|
<hr />
|
||||||
{% if object.session_key %}
|
{% if object.session_key %}
|
||||||
<div class="pull-right noprint">
|
<div class="float-end noprint">
|
||||||
<a href="{% url 'user:sessionkey_delete' %}" class="btn btn-danger">
|
<a href="{% url 'user:sessionkey_delete' %}" class="btn btn-danger">
|
||||||
<span class="mdi mdi-trash-can-outline" aria-hidden="true"></span>
|
<span class="mdi mdi-trash-can-outline" aria-hidden="true"></span>
|
||||||
Delete Session Key
|
Delete Session Key
|
||||||
|
@ -1,21 +1,21 @@
|
|||||||
{% extends 'base.html' %}
|
{% extends 'layout.html' %}
|
||||||
{% load form_helpers %}
|
{% load form_helpers %}
|
||||||
|
|
||||||
{% block content %}
|
{% block content %}
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-md-6 col-md-offset-3">
|
<div class="col-md-6 offset-md-3">
|
||||||
<form action="" method="post" class="form">
|
<form action="" method="post" class="form">
|
||||||
{% csrf_token %}
|
{% csrf_token %}
|
||||||
{% for field in form.hidden_fields %}
|
{% for field in form.hidden_fields %}
|
||||||
{{ field }}
|
{{ field }}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
<div class="panel panel-{{ panel_class|default:"danger" }}">
|
<div class="card bg-{{ panel_class|default:"danger" }}">
|
||||||
<div class="panel-heading">{% block title %}{% endblock %}</div>
|
<h5 class="card-header">{% block title %}{% endblock %}</h5>
|
||||||
<div class="panel-body">
|
<div class="card-body">
|
||||||
{% block message %}<p>Are you sure?</p>{% endblock %}
|
{% block message %}<p>Are you sure?</p>{% endblock %}
|
||||||
<div class="text-right">
|
<div class="text-end">
|
||||||
|
<a href="{{ return_url }}" class="btn btn-outline-dark">Cancel</a>
|
||||||
<button type="submit" name="_confirm" class="btn btn-{{ button_class|default:"danger" }}">Confirm</button>
|
<button type="submit" name="_confirm" class="btn btn-{{ button_class|default:"danger" }}">Confirm</button>
|
||||||
<a href="{{ return_url }}" class="btn btn-default">Cancel</a>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
Loading…
Reference in New Issue
Block a user