mirror of
https://github.com/MOIS3Y/logs-collector.git
synced 2025-09-13 13:13:01 +02:00
Refactoring: using the apps directory is redundant
This commit is contained in:
30
logs_collector/collector/templates/collector/base.html
Normal file
30
logs_collector/collector/templates/collector/base.html
Normal file
@@ -0,0 +1,30 @@
|
||||
{% extends 'base.html' %}
|
||||
{% load static %}
|
||||
|
||||
{% block collector_head %}
|
||||
<title>{% block title %}{% endblock title %}</title>
|
||||
{% endblock collector_head %}
|
||||
|
||||
{% block collector_content %}
|
||||
<header>
|
||||
<section>
|
||||
{% include 'includes/navigation.html' %}
|
||||
</section>
|
||||
</header>
|
||||
<main>
|
||||
<section>
|
||||
{% block main %}{% endblock main %}
|
||||
</section>
|
||||
</main>
|
||||
<footer>
|
||||
<section>
|
||||
{% block footer %}{% endblock footer %}
|
||||
</section>
|
||||
</footer>
|
||||
{% endblock collector_content %}
|
||||
|
||||
{% block collector_scripts %}
|
||||
<script src="{% static 'collector/js/jquery-3.7.0.min.js' %}"></script>
|
||||
{% block bs %}{% endblock bs %}
|
||||
{% block jquery %}{% endblock jquery %}
|
||||
{% endblock collector_scripts %}
|
@@ -0,0 +1,43 @@
|
||||
<div
|
||||
class="modal fade"
|
||||
id="modal-archive-del-{{ archive.id }}"
|
||||
tabindex="-1"
|
||||
aria-labelledby="LabelArchive-{{ archive.id }}"
|
||||
aria-hidden="true"
|
||||
>
|
||||
<div class="modal-dialog">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h5
|
||||
class="modal-title"
|
||||
id="LabelArchive-{{ archive.id }}">Delete this file?
|
||||
</h5>
|
||||
<button
|
||||
type="button"
|
||||
class="btn-close"
|
||||
data-bs-dismiss="modal"
|
||||
aria-label="Close">
|
||||
</button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<p style="word-wrap: break-word">{{ archive.file }}</p>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button
|
||||
type="button"
|
||||
class="btn btn-secondary"
|
||||
data-bs-dismiss="modal"
|
||||
>Cancel
|
||||
</button>
|
||||
<a
|
||||
href="{% url 'collector_api:archive-detail' archive.id %}"
|
||||
type="button"
|
||||
class="btn btn-danger btn-archive-eraser"
|
||||
data-bs-dismiss="modal"
|
||||
data-jq-archive-target="#li-archive-{{ archive.id }}"
|
||||
>Delete
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
@@ -0,0 +1,40 @@
|
||||
<div
|
||||
class="modal fade"
|
||||
id="modal-ticket-del-{{ ticket.number }}"
|
||||
tabindex="-1"
|
||||
aria-labelledby="LabelTicket"
|
||||
aria-hidden="true"
|
||||
>
|
||||
<div class="modal-dialog">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h5 class="modal-title" id="LabelTicket">
|
||||
Delete ticket #{{ ticket.number }} ?
|
||||
</h5>
|
||||
<button
|
||||
type="button"
|
||||
class="btn-close"
|
||||
data-bs-dismiss="modal"
|
||||
aria-label="Close"
|
||||
></button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<p>Deleting a ticket will also permanently delete all files associated with it.</p>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">
|
||||
Cancel
|
||||
</button>
|
||||
<a
|
||||
type="button"
|
||||
href="{% url 'collector_api:ticket-detail' ticket.number %}"
|
||||
class="btn btn-danger btn-ticket-del"
|
||||
data-bs-dismiss="modal"
|
||||
data-jq-ticket-del-target="#div-ticket-{{ ticket.number }}"
|
||||
data-jq-ticket-del-redirect="{% url 'collector:tickets' %}"
|
||||
>Delete</a
|
||||
>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
@@ -0,0 +1,41 @@
|
||||
{% if page_obj.has_other_pages %}
|
||||
<div class="row">
|
||||
<nav class="d-flex justify-content-center mt-3" aria-label="...">
|
||||
<ul class="pagination">
|
||||
{% if page_obj.has_previous %}
|
||||
<li class="page-item">
|
||||
<a
|
||||
class="page-link"
|
||||
href="?page={{ page_obj.previous_page_number }}"
|
||||
>Back
|
||||
</a>
|
||||
</li>
|
||||
{% else %}
|
||||
<li class="page-item disabled"><a class="page-link">Back</a></li>
|
||||
{% endif %}
|
||||
{% for page in paginator.page_range %}
|
||||
{% if page_obj.number == page %}
|
||||
<li class="page-item active" aria-current="page">
|
||||
<button class="page-link">{{ page }}</button>
|
||||
</li>
|
||||
{% elif page >= page_obj.number|add:-2 and page <= page_obj.number|add:2%}
|
||||
<li class="page-item">
|
||||
<a class="page-link" href="?page={{ page }}">{{ page }}</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
{% if page_obj.has_next %}
|
||||
<li class="page-item">
|
||||
<a
|
||||
class="page-link"
|
||||
href="?page={{ page_obj.next_page_number }}"
|
||||
>Next
|
||||
</a>
|
||||
</li>
|
||||
{% else %}
|
||||
<li class="page-item disabled"><a class="page-link">Next</a></li>
|
||||
{% endif %}
|
||||
</ul>
|
||||
</nav>
|
||||
</div>
|
||||
{% endif %}
|
@@ -0,0 +1,38 @@
|
||||
{% load collector_extras %}
|
||||
<li
|
||||
id="li-archive-{{ archive.id }}"
|
||||
class="list-group-item list-group-item-action">
|
||||
<smal>
|
||||
<b>File:</b>
|
||||
<span style="word-wrap: break-word">{{ archive.file.name|clean_filename }}</span>
|
||||
</small>
|
||||
<small>
|
||||
<br>
|
||||
<b>MD5:</b>
|
||||
<span style="word-wrap: break-word">{{ archive.md5 }}</span>
|
||||
</small>
|
||||
<small>
|
||||
<br>
|
||||
<b>Uploaded:</b>
|
||||
<span style="word-wrap: break-word">{{ archive.time_update|date:"D d.m.y H:i" }}</span>
|
||||
</small>
|
||||
<br>
|
||||
<small>
|
||||
<b>Size:</b>
|
||||
<span style="word-wrap: break-word">{{ archive.file.size|sizify }}</span>
|
||||
</small>
|
||||
<div class="row">
|
||||
<div class="d-flex justify-content-sm-start justify-content-between" >
|
||||
<a
|
||||
class="btn btn-outline-success btn-sm mt-2"
|
||||
href="{{ archive.get_absolute_url }}"
|
||||
><i class="bi bi-download"></i> GET</a>
|
||||
<button
|
||||
button type="button"
|
||||
class="btn btn-outline-danger btn-sm ms-2 mt-2"
|
||||
data-bs-toggle="modal"
|
||||
data-bs-target="#modal-archive-del-{{ archive.id }}"
|
||||
><i class="bi bi-trash"></i> DEL</button>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
@@ -0,0 +1,49 @@
|
||||
<div class="d-sm-flex w-100 justify-content-between mb-2">
|
||||
<h4 class="card-title mb-1">Ticket: {{ ticket.number }}</h4>
|
||||
<small><i class="bi bi-clock-history"></i> {{ ticket.time_create|date:"D d.m.y H:i" }}</small>
|
||||
</div>
|
||||
<div class="form-check form-switch form-check-reverse d-flex w-100 justify-content-left">
|
||||
<label class="form-check-label" for="ticket-state">Resolved:</label>
|
||||
<input
|
||||
class="form-check-input ms-2 mb-2"
|
||||
type="checkbox"
|
||||
role="switch"
|
||||
name="ticket-state"
|
||||
ticket-state-url="{% url 'collector_api:ticket-detail' ticket.number %}"
|
||||
{% if ticket.resolved %} ticket-state-switch="1" {% endif %}
|
||||
{% if ticket.resolved %} checked {% endif %}>
|
||||
</div>
|
||||
<div class="col-xl-6 mb-2">
|
||||
<h6 class="card-title mb-1">Platform: {{ ticket.platform.pretty_name }}</h6>
|
||||
<h6 class="card-title mb-3">Owner: {{ ticket.user.username }}</h6>
|
||||
<!-- Token -->
|
||||
<div class="input-group input-group mb-3">
|
||||
<span class="input-group-text" id="inputGroup-sizing-sm"><i class="bi bi-key"></i></span>
|
||||
<!--Token attempts-->
|
||||
<span class="input-group-text" id="inputGroup-sizing-sm">
|
||||
<span
|
||||
class="badge
|
||||
{% if ticket.attempts <= 0 %}
|
||||
bg-danger
|
||||
{% elif ticket.attempts < 5 %}
|
||||
text-dark bg-warning
|
||||
{% else %}
|
||||
bg-primary
|
||||
{% endif %} rounded-pill">{{ ticket.attempts }}
|
||||
</span>
|
||||
</span>
|
||||
<input
|
||||
name="ticket-token"
|
||||
class="form-control"
|
||||
type="text"
|
||||
value="{{ ticket.token }}"
|
||||
aria-label="Disabled input example"
|
||||
aria-describedby="inputGroup-sizing-sm"
|
||||
disabled
|
||||
readonly>
|
||||
<button
|
||||
class="input-group-text token-clipboard"
|
||||
id="inputGroup-sizing-sm"><i class="bi bi-clipboard"></i>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
60
logs_collector/collector/templates/collector/ticket.html
Normal file
60
logs_collector/collector/templates/collector/ticket.html
Normal file
@@ -0,0 +1,60 @@
|
||||
{% extends 'collector/base.html' %}
|
||||
{% load static %}
|
||||
{% load collector_extras %}
|
||||
{% block title %} {{ title }} {% endblock title %}
|
||||
{% block main %}
|
||||
<div class="container mt-3">
|
||||
<div class="row">
|
||||
{% csrf_token %}
|
||||
<div class="card">
|
||||
<div class="card-body" aria-current="true">
|
||||
{% include 'collector/includes/ticket_info.html' %}
|
||||
<div class="col-xl-6 mt-1 mb-2">
|
||||
{% if ticket.note %}
|
||||
<div class="card">
|
||||
<div class="card-header">
|
||||
Note:
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<div class="card-text">
|
||||
{{ ticket.note | markdown | safe }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
<!-- Logs -->
|
||||
{% if ticket.archive_set.all %}
|
||||
<ul class="list-group col-xl-6 mb-2 mt-2">
|
||||
{% for archive in ticket.archive_set.all %}
|
||||
{% include 'collector/includes/ticket_archives.html' %}
|
||||
{% endfor %}
|
||||
</ul>
|
||||
{% endif %}
|
||||
<!-- Card buttons -->
|
||||
<div class="d-flex w-100 justify-content-between">
|
||||
<a
|
||||
href="{% url 'collector:update' ticket.platform.name ticket.number %}"
|
||||
class="btn btn-outline-warning mb-1 mt-1"
|
||||
><i class="bi bi-pencil-square"></i> Edit</a>
|
||||
<button
|
||||
class="btn btn-outline-danger mb-1 mt-1"
|
||||
data-bs-toggle="modal"
|
||||
data-bs-target="#modal-ticket-del-{{ ticket.number }}"
|
||||
><i class="bi bi-trash"></i> Delete
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- Modal Archive -->
|
||||
{% for archive in ticket.archive_set.all %}
|
||||
{% include 'collector/includes/modal_archive.html' %}
|
||||
{% endfor %}
|
||||
<!-- Modal Ticket -->
|
||||
{% include 'collector/includes/modal_ticket.html' %}
|
||||
</div>
|
||||
{% endblock main %}
|
||||
{% block jquery %}
|
||||
<script src="{% static 'collector/js/jq.ticket.detail.js' %}"></script>
|
||||
{% endblock jquery %}
|
@@ -0,0 +1,16 @@
|
||||
{% extends 'collector/base.html' %}
|
||||
{% load static %}
|
||||
{% load crispy_forms_tags %}
|
||||
{% block title %} {{ title }} {% endblock title %}
|
||||
{% block main %}
|
||||
<div class="container mt-3">
|
||||
<div class="card">
|
||||
<div class="card-header">
|
||||
<h3>Ticket:</h3>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
{% crispy form %}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endblock main %}
|
@@ -0,0 +1,22 @@
|
||||
{% extends 'collector/base.html' %}
|
||||
{% load static %}
|
||||
{% block title %} {{ title }} {% endblock title %}
|
||||
{% block content %}
|
||||
<div class="container mt-3">
|
||||
<div class="row">
|
||||
<form method="post" action="{% url 'collector:delete' ticket.number %}">
|
||||
{% csrf_token %}
|
||||
<button
|
||||
type="button"
|
||||
class="btn btn-secondary"
|
||||
data-bs-dismiss="modal"
|
||||
>Cancel</button>
|
||||
<button
|
||||
type="submit"
|
||||
class="btn btn-danger btn-archive-eraser"
|
||||
data-bs-dismiss="modal"
|
||||
>Delete</button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
94
logs_collector/collector/templates/collector/tickets.html
Normal file
94
logs_collector/collector/templates/collector/tickets.html
Normal file
@@ -0,0 +1,94 @@
|
||||
{% extends 'collector/base.html' %}
|
||||
{% load static %}
|
||||
{% load collector_extras %}
|
||||
{% block title %} {{ title }} {% endblock title %}
|
||||
{% block main %}
|
||||
<div class="container mt-3">
|
||||
{% csrf_token %}
|
||||
<!-- Ticket -->
|
||||
{% for ticket in tickets %}
|
||||
<ul id="div-ticket-{{ ticket.number }}" class="list-group mb-2">
|
||||
<li class="list-group-item list-group-item-action disable" aria-current="true">
|
||||
{% include 'collector/includes/ticket_info.html' %}
|
||||
<div class="col-xl-6 mt-1 mb-2">
|
||||
<div class="accordion" id="#archive_{{ ticket.number }}">
|
||||
{% if ticket.note %}
|
||||
<div class="accordion-item">
|
||||
<h2 class="accordion-header">
|
||||
<button
|
||||
class="accordion-button collapsed"
|
||||
type="button" data-bs-toggle="collapse"
|
||||
data-bs-target="#collapse_{{ ticket.number}}_note"
|
||||
aria-expanded="false"
|
||||
aria-controls="collapse_{{ ticket.number }}"
|
||||
><i class="bi bi-journal-text me-2"></i> Note</button>
|
||||
</h2>
|
||||
<div id="collapse_{{ ticket.number }}_note"
|
||||
class="accordion-collapse collapse"
|
||||
data-bs-parent="#archive_{{ ticket.number }}_note"
|
||||
>
|
||||
<div class="accordion-body">
|
||||
<p class="mb-1">{{ ticket.note |markdown |safe }}</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
{% if ticket.archive_set.all %}
|
||||
<!-- Logs -->
|
||||
<div class="accordion-item">
|
||||
<h3 class="accordion-header">
|
||||
<button
|
||||
class="accordion-button collapsed"
|
||||
type="button"
|
||||
data-bs-toggle="collapse"
|
||||
data-bs-target="#collapse_{{ ticket.number }}"
|
||||
aria-expanded="true" aria-controls="collapse_{{ ticket.number }}"
|
||||
><i class="bi bi-file-zip me-2"></i> Logs</button>
|
||||
</h3>
|
||||
<div
|
||||
id="collapse_{{ ticket.number }}"
|
||||
class="accordion-collapse collapse"
|
||||
data-bs-parent="#archive_{{ ticket.number }}"
|
||||
>
|
||||
<div class="accordion-body">
|
||||
<ul class="list-group col mb-2 mt-2">
|
||||
{% for archive in ticket.archive_set.all %}
|
||||
{% include 'collector/includes/ticket_archives.html' %}
|
||||
{% endfor %}
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
<div class="d-flex w-100 justify-content-between">
|
||||
<a
|
||||
href="{{ ticket.get_absolute_url }}"
|
||||
class="btn btn-outline-primary mb-1 mt-1"
|
||||
><i class="bi bi-arrow-return-right"></i> Open</a>
|
||||
<button
|
||||
class="btn btn-outline-danger mb-1 mt-1"
|
||||
data-bs-toggle="modal"
|
||||
data-bs-target="#modal-ticket-del-{{ ticket.number }}"
|
||||
><i class="bi bi-trash"></i> Delete
|
||||
</button>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
<!-- Modal ticket -->
|
||||
{% include 'collector/includes/modal_ticket.html' %}
|
||||
<!-- Modal archive -->
|
||||
{% for archive in ticket.archive_set.all %}
|
||||
{% include 'collector/includes/modal_archive.html' %}
|
||||
{% endfor %}
|
||||
{% endfor %}
|
||||
{% include 'collector/includes/pagination.html' %}
|
||||
</div>
|
||||
{% endblock main %}
|
||||
{% block bs %}
|
||||
<script src="{% static 'collector/js/bs.tooltip.js' %}"></script>
|
||||
{% endblock bs %}
|
||||
{% block jquery %}
|
||||
<script src="{% static 'collector/js/jq.ticket.detail.js' %}"></script>
|
||||
{% endblock jquery %}
|
Reference in New Issue
Block a user