mirror of
https://github.com/netbox-community/netbox.git
synced 2024-05-10 07:54:54 +00:00
* Remove dark mode styling * Condense & rename light mode stylesheet * Upgrade to Bootstrap 5.3.2 * Swap out Bootstrap for Tabler; remove custom styling * Update base page layout for Tabler * Update login page * Bump node to v18 * Update button styles * Update object list view * Tweak navbar size * Clean up dashboard widgets * Ditch separate stylesheet for print media * Remove simplebar * Remove obsolete sidebar styling * Clean up object view template * Clean up object edit template * Standardize primary button sizing * Clean up object list styling * Add buttons for add & import to navigation menu * Fix global search bar * Fix slim-select form widget styling * Fix toast styling * Set base fonts * Clean up paginator styling * Clean up navigation menu group headings * Clean up footer links * Clean up card styles * Move SVG styles to a designated directory * Restructure SCSS files * Remove obsolete/redundant dependencies * Fix icon spacing * Update background color classes * Tweak banner & footer styling and spacing * Fix badge background colors in table content * Bump @types/bootstrap to 5.2.10 * Clean up form layouts * Fix object selector button style * Fix icon padding inside small buttons * Fix icon & badge spacing inside buttons and tabs * Hide paginator for empty pages * Fix hover color for list items (Tabler bug #1694) * Fix width of checkbox column in empty tables * Clean up bulk edit template * Fix border color of reslug button * Package & serve Google fonts locally * Fix tab styling * Reduce vetical space at top of dashboard * Remove obsolete content-wrapper template block * Fix icon spacing in dropdown menu items * Fix color label sizing * Separate bulk delete form & object list into tabs * Fix styling of filter group headings * Fix styling for object changelog & journal views * Standardize ordering & styling of action buttons * Fix designation of active menu item * Automatically expand menu section containing the active link * Clean up nav menu styling * Remove button colors; hide buttons except on hover/active * Highlight menu group containing the active item * Update & standardize alert styling * Refactor base templates to ensure consistent display of header content * Tweak styling for links inside badges * Clean up top menu * Fix JSON/YAML toggles for config context data * Fix object template header * Constrain tabs to container-xl; tweak header margins * Fix object identifier styling * Fix positioning of card header buttons * Remove padding from HTMX tables inside cards * Ensure consistent use of row headings in attribute tables * Remove padding surrounding tables inside cards * Remove obsolete CSS classes * Misc cleanup of old styling * Refactor 'controls' template block; ditch old classes * Fix login button sizing * Limit object edit form width * Append asterisk to required form field labels * Remove obsolete styling * Remove obsolete styling * Fix position of progress bar outside label * Fix alignment of delete button in report/script lists * Fix <pre> styling * Clean up page headers * Replace SVG icons with Material Design icons * Restore dark mode togle functionality * Fix top navbar background color under dark mode * Rebuild static assets
This commit is contained in:
@@ -10,28 +10,20 @@
|
||||
{% block breadcrumbs %}
|
||||
{% endblock %}
|
||||
|
||||
{% block controls %}
|
||||
<div class="controls">
|
||||
<div class="control-group">
|
||||
{% plugin_buttons object %}
|
||||
{% if not object.pk or object.is_active and perms.core.add_configrevision %}
|
||||
{% url 'core:configrevision_add' as edit_url %}
|
||||
{% include "buttons/edit.html" with url=edit_url %}
|
||||
{% endif %}
|
||||
{% if object.pk and not object.is_active and perms.core.delete_configrevision %}
|
||||
{% delete_button object %}
|
||||
{% endif %}
|
||||
</div>
|
||||
<div class="control-group">
|
||||
{% custom_links object %}
|
||||
</div>
|
||||
</div>
|
||||
{% endblock controls %}
|
||||
{% block control-buttons %}
|
||||
{% if not object.pk or object.is_active and perms.core.add_configrevision %}
|
||||
{% url 'core:configrevision_add' as edit_url %}
|
||||
{% include "buttons/edit.html" with url=edit_url %}
|
||||
{% endif %}
|
||||
{% if object.pk and not object.is_active and perms.core.delete_configrevision %}
|
||||
{% delete_button object %}
|
||||
{% endif %}
|
||||
{% endblock control-buttons %}
|
||||
|
||||
{% block subtitle %}
|
||||
{% if object.created %}
|
||||
<div class="object-subtitle">
|
||||
<span>{% trans "Created" %} {{ object.created|annotated_date }}</span>
|
||||
<div class="text-secondary fs-5">
|
||||
{% trans "Created" %} {{ object.created|annotated_date }}
|
||||
</div>
|
||||
{% endif %}
|
||||
{% endblock subtitle %}
|
||||
@@ -41,180 +33,162 @@
|
||||
<div class="col col-md-12">
|
||||
<div class="card">
|
||||
<h5 class="card-header">{% trans "Rack Elevations" %}</h5>
|
||||
<div class="card-body">
|
||||
<table class="table table-hover attr-table">
|
||||
<tr>
|
||||
<th scope="row">{% trans "Default unit height" %}</th>
|
||||
<td>{{ object.data.RACK_ELEVATION_DEFAULT_UNIT_HEIGHT }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">{% trans "Default unit width" %}</th>
|
||||
<td>{{ object.data.RACK_ELEVATION_DEFAULT_UNIT_WIDTH }}</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<table class="table table-hover attr-table">
|
||||
<tr>
|
||||
<th scope="row">{% trans "Default unit height" %}</th>
|
||||
<td>{{ object.data.RACK_ELEVATION_DEFAULT_UNIT_HEIGHT }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">{% trans "Default unit width" %}</th>
|
||||
<td>{{ object.data.RACK_ELEVATION_DEFAULT_UNIT_WIDTH }}</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<div class="card">
|
||||
<h5 class="card-header">{% trans "Power Feeds" %}</h5>
|
||||
<div class="card-body">
|
||||
<table class="table table-hover attr-table">
|
||||
<tr>
|
||||
<th scope="row">{% trans "Default voltage" %}</th>
|
||||
<td>{{ object.data.POWERFEED_DEFAULT_VOLTAGE }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">{% trans "Default amperage" %}</th>
|
||||
<td>{{ object.data.POWERFEED_DEFAULT_AMPERAGE }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">{% trans "Default max utilization" %}</th>
|
||||
<td>{{ object.data.POWERFEED_DEFAULT_MAX_UTILIZATION }}</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<table class="table table-hover attr-table">
|
||||
<tr>
|
||||
<th scope="row">{% trans "Default voltage" %}</th>
|
||||
<td>{{ object.data.POWERFEED_DEFAULT_VOLTAGE }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">{% trans "Default amperage" %}</th>
|
||||
<td>{{ object.data.POWERFEED_DEFAULT_AMPERAGE }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">{% trans "Default max utilization" %}</th>
|
||||
<td>{{ object.data.POWERFEED_DEFAULT_MAX_UTILIZATION }}</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<div class="card">
|
||||
<h5 class="card-header">{% trans "IPAM" %}</h5>
|
||||
<div class="card-body">
|
||||
<table class="table table-hover attr-table">
|
||||
<tr>
|
||||
<th scope="row">{% trans "Enforce global unique" %}</th>
|
||||
<td>{{ object.data.ENFORCE_GLOBAL_UNIQUE }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">{% trans "Prefer IPv4" %}</th>
|
||||
<td>{{ object.data.PREFER_IPV4 }}</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<table class="table table-hover attr-table">
|
||||
<tr>
|
||||
<th scope="row">{% trans "Enforce global unique" %}</th>
|
||||
<td>{{ object.data.ENFORCE_GLOBAL_UNIQUE }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">{% trans "Prefer IPv4" %}</th>
|
||||
<td>{{ object.data.PREFER_IPV4 }}</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<div class="card">
|
||||
<h5 class="card-header">{% trans "Security" %}</h5>
|
||||
<div class="card-body">
|
||||
<table class="table table-hover attr-table">
|
||||
<tr>
|
||||
<th scope="row">{% trans "Allowed URL schemes" %}</th>
|
||||
<td>{{ object.data.ALLOWED_URL_SCHEMES|join:", "|placeholder }}</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<table class="table table-hover attr-table">
|
||||
<tr>
|
||||
<th scope="row">{% trans "Allowed URL schemes" %}</th>
|
||||
<td>{{ object.data.ALLOWED_URL_SCHEMES|join:", "|placeholder }}</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<div class="card">
|
||||
<h5 class="card-header">{% trans "Banners" %}</h5>
|
||||
<div class="card-body">
|
||||
<table class="table table-hover attr-table">
|
||||
<tr>
|
||||
<th scope="row">{% trans "Login banner" %}</th>
|
||||
<td>{{ object.data.BANNER_LOGIN }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">{% trans "Maintenance banner" %}</th>
|
||||
<td>{{ object.data.BANNER_MAINTENANCE }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">{% trans "Top banner" %}</th>
|
||||
<td>{{ object.data.BANNER_TOP }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">{% trans "Bottom banner" %}</th>
|
||||
<td>{{ object.data.BANNER_BOTTOM }}</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<table class="table table-hover attr-table">
|
||||
<tr>
|
||||
<th scope="row">{% trans "Login banner" %}</th>
|
||||
<td>{{ object.data.BANNER_LOGIN }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">{% trans "Maintenance banner" %}</th>
|
||||
<td>{{ object.data.BANNER_MAINTENANCE }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">{% trans "Top banner" %}</th>
|
||||
<td>{{ object.data.BANNER_TOP }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">{% trans "Bottom banner" %}</th>
|
||||
<td>{{ object.data.BANNER_BOTTOM }}</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<div class="card">
|
||||
<h5 class="card-header">{% trans "Pagination" %}</h5>
|
||||
<div class="card-body">
|
||||
<table class="table table-hover attr-table">
|
||||
<tr>
|
||||
<th scope="row">{% trans "Paginate count" %}</th>
|
||||
<td>{{ object.data.PAGINATE_COUNT }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">{% trans "Max page size" %}</th>
|
||||
<td>{{ object.data.MAX_PAGE_SIZE }}</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<table class="table table-hover attr-table">
|
||||
<tr>
|
||||
<th scope="row">{% trans "Paginate count" %}</th>
|
||||
<td>{{ object.data.PAGINATE_COUNT }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">{% trans "Max page size" %}</th>
|
||||
<td>{{ object.data.MAX_PAGE_SIZE }}</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<div class="card">
|
||||
<h5 class="card-header">{% trans "Validation" %}</h5>
|
||||
<div class="card-body">
|
||||
<table class="table table-hover attr-table">
|
||||
<tr>
|
||||
<th scope="row">{% trans "Custom validators" %}</th>
|
||||
{% if object.data.CUSTOM_VALIDATORS %}
|
||||
<td class="font-monospace">
|
||||
<pre>{{ object.data.CUSTOM_VALIDATORS|json }}</pre>
|
||||
</td>
|
||||
{% else %}
|
||||
<td>{{ ''|placeholder }}</td>
|
||||
{% endif %}
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">{% trans "Protection rules" %}</th>
|
||||
{% if object.data.PROTECTION_RULES %}
|
||||
<td>
|
||||
<pre>{{ object.data.PROTECTION_RULES|json }}</pre>
|
||||
</td>
|
||||
{% else %}
|
||||
<td>{{ ''|placeholder }}</td>
|
||||
{% endif %}
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<table class="table table-hover attr-table">
|
||||
<tr>
|
||||
<th scope="row">{% trans "Custom validators" %}</th>
|
||||
{% if object.data.CUSTOM_VALIDATORS %}
|
||||
<td class="font-monospace">
|
||||
<pre>{{ object.data.CUSTOM_VALIDATORS|json }}</pre>
|
||||
</td>
|
||||
{% else %}
|
||||
<td>{{ ''|placeholder }}</td>
|
||||
{% endif %}
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">{% trans "Protection rules" %}</th>
|
||||
{% if object.data.PROTECTION_RULES %}
|
||||
<td>
|
||||
<pre>{{ object.data.PROTECTION_RULES|json }}</pre>
|
||||
</td>
|
||||
{% else %}
|
||||
<td>{{ ''|placeholder }}</td>
|
||||
{% endif %}
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<div class="card">
|
||||
<h5 class="card-header">{% trans "User Preferences" %}</h5>
|
||||
<div class="card-body">
|
||||
<table class="table table-hover attr-table">
|
||||
<tr>
|
||||
<th scope="row">{% trans "Default user preferences" %}</th>
|
||||
{% if object.data.DEFAULT_USER_PREFERENCES %}
|
||||
<td>
|
||||
<pre>{{ object.data.DEFAULT_USER_PREFERENCES|json }}</pre>
|
||||
</td>
|
||||
{% else %}
|
||||
<td>{{ ''|placeholder }}</td>
|
||||
{% endif %}
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<table class="table table-hover attr-table">
|
||||
<tr>
|
||||
<th scope="row">{% trans "Default user preferences" %}</th>
|
||||
{% if object.data.DEFAULT_USER_PREFERENCES %}
|
||||
<td>
|
||||
<pre>{{ object.data.DEFAULT_USER_PREFERENCES|json }}</pre>
|
||||
</td>
|
||||
{% else %}
|
||||
<td>{{ ''|placeholder }}</td>
|
||||
{% endif %}
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<div class="card">
|
||||
<h5 class="card-header">{% trans "Miscellaneous" %}</h5>
|
||||
<div class="card-body">
|
||||
<table class="table table-hover attr-table">
|
||||
<tr>
|
||||
<th scope="row">{% trans "Maintenance mode" %}</th>
|
||||
<td>{{ object.data.MAINTENANCE_MODE }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">{% trans "GraphQL enabled" %}</th>
|
||||
<td>{{ object.data.GRAPHQL_ENABLED }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">{% trans "Changelog retention" %}</th>
|
||||
<td>{{ object.data.CHANGELOG_RETENTION }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">{% trans "Job retention" %}</th>
|
||||
<td>{{ object.data.JOB_RETENTION }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">{% trans "Maps URL" %}</th>
|
||||
<td>{{ object.data.MAPS_URL }}</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<table class="table table-hover attr-table">
|
||||
<tr>
|
||||
<th scope="row">{% trans "Maintenance mode" %}</th>
|
||||
<td>{{ object.data.MAINTENANCE_MODE }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">{% trans "GraphQL enabled" %}</th>
|
||||
<td>{{ object.data.GRAPHQL_ENABLED }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">{% trans "Changelog retention" %}</th>
|
||||
<td>{{ object.data.CHANGELOG_RETENTION }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">{% trans "Job retention" %}</th>
|
||||
<td>{{ object.data.JOB_RETENTION }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">{% trans "Maps URL" %}</th>
|
||||
<td>{{ object.data.MAPS_URL }}</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<div class="card">
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
{% extends 'base/layout.html' %}
|
||||
{% extends 'generic/object.html' %}
|
||||
{% load helpers %}
|
||||
{% load buttons %}
|
||||
{% load perms %}
|
||||
@@ -8,37 +8,19 @@
|
||||
{% block title %}{% trans "Restore" %}: {{ object }}{% endblock %}
|
||||
|
||||
{% block subtitle %}
|
||||
<div class="object-subtitle">
|
||||
<span>{% trans "Created" %} {{ object.created|annotated_date }}</span>
|
||||
<div class="text-secondary fs-5">
|
||||
{% trans "Created" %} {{ object.created|annotated_date }}
|
||||
</div>
|
||||
{% endblock %}
|
||||
|
||||
{% block header %}
|
||||
<div class="row noprint">
|
||||
<div class="col col-md-12">
|
||||
<nav class="breadcrumb-container px-3" aria-label="breadcrumb">
|
||||
<ol class="breadcrumb">
|
||||
<li class="breadcrumb-item"><a href="{% url 'core:configrevision_list' %}">{% trans "Config revisions" %}</a></li>
|
||||
<li class="breadcrumb-item"><a href="{% url 'core:configrevision' pk=object.pk %}">{{ object }}</a></li>
|
||||
</ol>
|
||||
</nav>
|
||||
</div>
|
||||
</div>
|
||||
{{ block.super }}
|
||||
{% endblock header %}
|
||||
|
||||
{% block controls %}
|
||||
<div class="controls">
|
||||
<div class="control-group">
|
||||
{% if request.user|can_delete:job %}
|
||||
{% delete_button job %}
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
{% endblock controls %}
|
||||
{% block control-buttons %}
|
||||
{% if request.user|can_delete:job %}
|
||||
{% delete_button job %}
|
||||
{% endif %}
|
||||
{% endblock control-buttons %}
|
||||
|
||||
{% block tabs %}
|
||||
<ul class="nav nav-tabs px-3" role="tablist">
|
||||
<ul class="nav nav-tabs" role="tablist">
|
||||
<li class="nav-item" role="presentation">
|
||||
<a href="#log" role="tab" data-bs-toggle="tab" class="nav-link active">{% trans "Restore" %}</a>
|
||||
</li>
|
||||
@@ -73,13 +55,9 @@
|
||||
|
||||
<form method="post">
|
||||
{% csrf_token %}
|
||||
<div class="submit-row" style="margin-top: 20px">
|
||||
<div class="controls">
|
||||
<div class="control-group">
|
||||
<button type="submit" name="restore" class="btn btn-primary">{% trans "Restore" %}</button>
|
||||
<a href="{% url 'core:configrevision_list' %}" id="cancel" name="cancel" class="btn btn-outline-danger">{% trans "Cancel" %}</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="text-end my-3">
|
||||
<a href="{% url 'core:configrevision_list' %}" id="cancel" name="cancel" class="btn btn-outline-secondary">{% trans "Cancel" %}</a>
|
||||
<button type="submit" name="restore" class="btn btn-primary">{% trans "Restore" %}</button>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
|
||||
@@ -11,55 +11,45 @@
|
||||
<li class="breadcrumb-item"><a href="{% url 'core:datafile_list' %}?source_id={{ object.source.pk }}">{{ object.source }}</a></li>
|
||||
{% endblock %}
|
||||
|
||||
{% block controls %}
|
||||
<div class="controls">
|
||||
<div class="control-group">
|
||||
{% plugin_buttons object %}
|
||||
</div>
|
||||
{% if request.user|can_delete:object %}
|
||||
{% delete_button object %}
|
||||
{% endif %}
|
||||
<div class="control-group">
|
||||
{% custom_links object %}
|
||||
</div>
|
||||
</div>
|
||||
{% endblock controls %}
|
||||
{% block control-buttons %}
|
||||
{% if request.user|can_delete:object %}
|
||||
{% delete_button object %}
|
||||
{% endif %}
|
||||
{% endblock control-buttons %}
|
||||
|
||||
{% block content %}
|
||||
<div class="row mb-3">
|
||||
<div class="col">
|
||||
<div class="card">
|
||||
<h5 class="card-header">{% trans "Data File" %}</h5>
|
||||
<div class="card-body">
|
||||
<table class="table table-hover attr-table">
|
||||
<tr>
|
||||
<th scope="row">{% trans "Source" %}</th>
|
||||
<td>{{ object.source|linkify }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">{% trans "Path" %}</th>
|
||||
<td>
|
||||
<span class="font-monospace" id="datafile_path">{{ object.path }}</span>
|
||||
{% copy_content "datafile_path" %}
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">{% trans "Last Updated" %}</th>
|
||||
<td>{{ object.last_updated }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">{% trans "Size" %}</th>
|
||||
<td>{{ object.size }} {% trans "bytes" %}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">{% trans "SHA256 Hash" %}</th>
|
||||
<td>
|
||||
<span class="font-monospace" id="datafile_hash">{{ object.hash }}</span>
|
||||
{% copy_content "datafile_hash" %}
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<table class="table table-hover attr-table">
|
||||
<tr>
|
||||
<th scope="row">{% trans "Source" %}</th>
|
||||
<td>{{ object.source|linkify }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">{% trans "Path" %}</th>
|
||||
<td>
|
||||
<span class="font-monospace" id="datafile_path">{{ object.path }}</span>
|
||||
{% copy_content "datafile_path" %}
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">{% trans "Last Updated" %}</th>
|
||||
<td>{{ object.last_updated }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">{% trans "Size" %}</th>
|
||||
<td>{{ object.size }} {% trans "bytes" %}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">{% trans "SHA256 Hash" %}</th>
|
||||
<td>
|
||||
<span class="font-monospace" id="datafile_hash">{{ object.hash }}</span>
|
||||
{% copy_content "datafile_hash" %}
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="card">
|
||||
<h5 class="card-header">{% trans "Content" %}</h5>
|
||||
|
||||
@@ -10,13 +10,13 @@
|
||||
{% if object.ready_for_sync %}
|
||||
<form action="{% url 'core:datasource_sync' pk=object.pk %}" method="post">
|
||||
{% csrf_token %}
|
||||
<button type="submit" class="btn btn-sm btn-primary">
|
||||
<button type="submit" class="btn btn-primary">
|
||||
<i class="mdi mdi-sync" aria-hidden="true"></i> {% trans "Sync" %}
|
||||
</button>
|
||||
</form>
|
||||
{% else %}
|
||||
<span class="inline-block" tabindex="0" data-bs-toggle="tooltip" data-bs-delay="100" data-bs-placement="bottom">
|
||||
<button class="btn btn-sm btn-primary" disabled>
|
||||
<button class="btn btn-primary" disabled>
|
||||
<i class="mdi mdi-sync" aria-hidden="true"></i> {% trans "Sync" %}
|
||||
</button>
|
||||
</span>
|
||||
@@ -29,53 +29,51 @@
|
||||
<div class="col col-md-6">
|
||||
<div class="card">
|
||||
<h5 class="card-header">{% trans "Data Source" %}</h5>
|
||||
<div class="card-body">
|
||||
<table class="table table-hover attr-table">
|
||||
<tr>
|
||||
<th scope="row">{% trans "Name" %}</th>
|
||||
<td>{{ object.name }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">{% trans "Type" %}</th>
|
||||
<td>{{ object.get_type_display }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">{% trans "Enabled" %}</th>
|
||||
<td>{% checkmark object.enabled %}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">{% trans "Status" %}</th>
|
||||
<td>{% badge object.get_status_display bg_color=object.get_status_color %}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">{% trans "Last synced" %}</th>
|
||||
<td>{{ object.last_synced|placeholder }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">{% trans "Description" %}</th>
|
||||
<td>{{ object.description|placeholder }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">{% trans "URL" %}</th>
|
||||
<td>
|
||||
{% if not object.type.is_local %}
|
||||
<a href="{{ object.source_url }}">{{ object.source_url }}</a>
|
||||
{% else %}
|
||||
{{ object.source_url }}
|
||||
{% endif %}
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">{% trans "Ignore rules" %}</th>
|
||||
<td>
|
||||
{% if object.ignore_rules %}
|
||||
<pre>{{ object.ignore_rules }}</pre>
|
||||
{% else %}
|
||||
{{ ''|placeholder }}
|
||||
{% endif %}</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<table class="table table-hover attr-table">
|
||||
<tr>
|
||||
<th scope="row">{% trans "Name" %}</th>
|
||||
<td>{{ object.name }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">{% trans "Type" %}</th>
|
||||
<td>{{ object.get_type_display }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">{% trans "Enabled" %}</th>
|
||||
<td>{% checkmark object.enabled %}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">{% trans "Status" %}</th>
|
||||
<td>{% badge object.get_status_display bg_color=object.get_status_color %}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">{% trans "Last synced" %}</th>
|
||||
<td>{{ object.last_synced|placeholder }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">{% trans "Description" %}</th>
|
||||
<td>{{ object.description|placeholder }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">{% trans "URL" %}</th>
|
||||
<td>
|
||||
{% if not object.type.is_local %}
|
||||
<a href="{{ object.source_url }}">{{ object.source_url }}</a>
|
||||
{% else %}
|
||||
{{ object.source_url }}
|
||||
{% endif %}
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">{% trans "Ignore rules" %}</th>
|
||||
<td>
|
||||
{% if object.ignore_rules %}
|
||||
<pre>{{ object.ignore_rules }}</pre>
|
||||
{% else %}
|
||||
{{ ''|placeholder }}
|
||||
{% endif %}</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
{% include 'inc/panels/tags.html' %}
|
||||
{% include 'inc/panels/comments.html' %}
|
||||
@@ -84,7 +82,6 @@
|
||||
<div class="col col-md-6">
|
||||
<div class="card">
|
||||
<h5 class="card-header">{% trans "Backend" %}</h5>
|
||||
<div class="card-body">
|
||||
{% with backend=object.backend_class %}
|
||||
<table class="table table-hover attr-table">
|
||||
{% for name, field in backend.parameters.items %}
|
||||
@@ -104,8 +101,7 @@
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</table>
|
||||
{% endwith %}
|
||||
</div>
|
||||
{% endwith %}
|
||||
</div>
|
||||
{% include 'inc/panels/related_objects.html' %}
|
||||
{% include 'inc/panels/custom_fields.html' %}
|
||||
@@ -116,7 +112,7 @@
|
||||
<div class="col col-md-12">
|
||||
<div class="card">
|
||||
<h5 class="card-header">{% trans "Files" %}</h5>
|
||||
<div class="card-body htmx-container table-responsive"
|
||||
<div class="card-body htmx-container table-responsive p-0"
|
||||
hx-get="{% url 'core:datafile_list' %}?source_id={{ object.pk }}"
|
||||
hx-trigger="load"
|
||||
></div>
|
||||
|
||||
@@ -4,79 +4,71 @@
|
||||
{% load perms %}
|
||||
{% load i18n %}
|
||||
|
||||
{% block controls %}
|
||||
<div class="controls">
|
||||
<div class="control-group">
|
||||
{% if request.user|can_delete:object %}
|
||||
{% delete_button object %}
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
{% endblock controls %}
|
||||
{% block control-buttons %}
|
||||
{% if request.user|can_delete:object %}
|
||||
{% delete_button object %}
|
||||
{% endif %}
|
||||
{% endblock control-buttons %}
|
||||
|
||||
{% block content %}
|
||||
<div class="row mb-3">
|
||||
<div class="col col-md-6">
|
||||
<div class="card">
|
||||
<h5 class="card-header">{% trans "Job" %}</h5>
|
||||
<div class="card-body">
|
||||
<table class="table table-hover attr-table">
|
||||
<table class="table table-hover attr-table">
|
||||
<tr>
|
||||
<th scope="row">{% trans "Object Type" %}</th>
|
||||
<td>
|
||||
<a href="{% url 'core:job_list' %}?object_type={{ object.object_type_id }}">{{ object.object_type }}</a>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">{% trans "Name" %}</th>
|
||||
<td>{{ object.name|placeholder }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">{% trans "Status" %}</th>
|
||||
<td>{% badge object.get_status_display object.get_status_color %}</td>
|
||||
</tr>
|
||||
{% if object.error %}
|
||||
<tr>
|
||||
<th scope="row">{% trans "Object Type" %}</th>
|
||||
<td>
|
||||
<a href="{% url 'core:job_list' %}?object_type={{ object.object_type_id }}">{{ object.object_type }}</a>
|
||||
</td>
|
||||
<th scope="row">{% trans "Error" %}</th>
|
||||
<td>{{ object.error }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">{% trans "Name" %}</th>
|
||||
<td>{{ object.name|placeholder }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">{% trans "Status" %}</th>
|
||||
<td>{% badge object.get_status_display object.get_status_color %}</td>
|
||||
</tr>
|
||||
{% if object.error %}
|
||||
<tr>
|
||||
<th scope="row">{% trans "Error" %}</th>
|
||||
<td>{{ object.error }}</td>
|
||||
</tr>
|
||||
{% endif %}
|
||||
<tr>
|
||||
<th scope="row">{% trans "Created By" %}</th>
|
||||
<td>{{ object.user|placeholder }}</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
{% endif %}
|
||||
<tr>
|
||||
<th scope="row">{% trans "Created By" %}</th>
|
||||
<td>{{ object.user|placeholder }}</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col col-md-6">
|
||||
<div class="card">
|
||||
<h5 class="card-header">{% trans "Scheduling" %}</h5>
|
||||
<div class="card-body">
|
||||
<table class="table table-hover attr-table">
|
||||
<tr>
|
||||
<th scope="row">{% trans "Created" %}</th>
|
||||
<td>{{ object.created|annotated_date }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">{% trans "Scheduled" %}</th>
|
||||
<td>
|
||||
{{ object.scheduled|annotated_date|placeholder }}
|
||||
{% if object.interval %}
|
||||
({% blocktrans with interval=object.interval %}every {{ interval }} seconds{% endblocktrans %})
|
||||
{% endif %}
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">{% trans "Started" %}</th>
|
||||
<td>{{ object.started|annotated_date|placeholder }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">{% trans "Completed" %}</th>
|
||||
<td>{{ object.completed|annotated_date|placeholder }}</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<table class="table table-hover attr-table">
|
||||
<tr>
|
||||
<th scope="row">{% trans "Created" %}</th>
|
||||
<td>{{ object.created|annotated_date }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">{% trans "Scheduled" %}</th>
|
||||
<td>
|
||||
{{ object.scheduled|annotated_date|placeholder }}
|
||||
{% if object.interval %}
|
||||
({% blocktrans with interval=object.interval %}every {{ interval }} seconds{% endblocktrans %})
|
||||
{% endif %}
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">{% trans "Started" %}</th>
|
||||
<td>{{ object.started|annotated_date|placeholder }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">{% trans "Completed" %}</th>
|
||||
<td>{{ object.completed|annotated_date|placeholder }}</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user