mirror of
https://github.com/MOIS3Y/logs-collector.git
synced 2025-09-13 13:13:01 +02:00
Create: views and templates
This commit is contained in:
26
logs_collector/collector/templates/collector/base.html
Normal file
26
logs_collector/collector/templates/collector/base.html
Normal file
@@ -0,0 +1,26 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<link
|
||||
href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css"
|
||||
rel="stylesheet"
|
||||
integrity="sha384-9ndCyUaIbzAi2FUVXJi0CjmCapSmO7SnpJef0486qhLnuZ2cdeRhO02iuK6FUUVM"
|
||||
crossorigin="anonymous"
|
||||
/>
|
||||
<title>Document</title>
|
||||
</head>
|
||||
<body>
|
||||
{% block content %}{% endblock content %}
|
||||
<script
|
||||
src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"
|
||||
integrity="sha384-geWF76RCwLtnZ8qwWowPQNguL3RmwHVBC9FhGdlKrxdiJJigb/j/68SIy3Te4Bkz"
|
||||
crossorigin="anonymous"
|
||||
></script>
|
||||
<script>
|
||||
const tooltipTriggerList = document.querySelectorAll('[data-bs-toggle="tooltip"]')
|
||||
const tooltipList = [...tooltipTriggerList].map(tooltipTriggerEl => new bootstrap.Tooltip(tooltipTriggerEl))
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
58
logs_collector/collector/templates/collector/navigation.html
Normal file
58
logs_collector/collector/templates/collector/navigation.html
Normal file
@@ -0,0 +1,58 @@
|
||||
<header>
|
||||
<nav class="navbar navbar-expand-lg bg-body-tertiary">
|
||||
<div class="container">
|
||||
<a class="navbar-brand" href="{% url 'index' %}">Logs Collector</a>
|
||||
<button
|
||||
class="navbar-toggler"
|
||||
type="button"
|
||||
data-bs-toggle="collapse"
|
||||
data-bs-target="#navbarSupportedContent"
|
||||
aria-controls="navbarSupportedContent"
|
||||
aria-expanded="false"
|
||||
aria-label="Переключатель навигации"
|
||||
>
|
||||
<span class="navbar-toggler-icon"></span>
|
||||
</button>
|
||||
<div class="collapse navbar-collapse" id="navbarSupportedContent">
|
||||
<ul class="navbar-nav ml-auto mb-2 mb-lg-0">
|
||||
<li class="nav-item dropdown">
|
||||
<a
|
||||
class="nav-link dropdown-toggle"
|
||||
href="#"
|
||||
role="button"
|
||||
data-bs-toggle="dropdown"
|
||||
aria-expanded="false"
|
||||
>Tickets</a>
|
||||
<ul class="dropdown-menu">
|
||||
<li>
|
||||
<a class="dropdown-item" href="{% url 'index' %}">All</a>
|
||||
</li>
|
||||
{% for platform in platforms %}
|
||||
<li>
|
||||
<a
|
||||
class="dropdown-item"
|
||||
href="{{ platform.get_absolute_url }}"
|
||||
>{{ platform.pretty_name}}</a>
|
||||
</li>
|
||||
{% endfor %}
|
||||
<li><hr class="dropdown-divider" /></li>
|
||||
<li><a class="dropdown-item" href="#">Create ticket</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link disabled">Отключенная</a>
|
||||
</li>
|
||||
</ul>
|
||||
<form class="d-flex" role="search">
|
||||
<input
|
||||
class="form-control me-2"
|
||||
type="search"
|
||||
placeholder="Поиск"
|
||||
aria-label="Поиск"
|
||||
/>
|
||||
<button class="btn btn-outline-success" type="submit">Поиск</button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
</header>
|
95
logs_collector/collector/templates/collector/ticket.html
Normal file
95
logs_collector/collector/templates/collector/ticket.html
Normal file
@@ -0,0 +1,95 @@
|
||||
{% extends 'collector/base.html' %}
|
||||
{% block content %}
|
||||
{% include 'collector/navigation.html' %}
|
||||
<main>
|
||||
<section>
|
||||
<div class="container mt-3">
|
||||
<div class="row">
|
||||
<div class="list-group mb-2">
|
||||
<div class="list-group-item list-group-item-action disable" aria-current="true">
|
||||
<div class="d-flex w-100 justify-content-between mb-2">
|
||||
<h5 class="mb-1">Ticket: {{ ticket.number }}</h5>
|
||||
<small>{{ ticket.time_create }}</small>
|
||||
</div>
|
||||
<div class="col-xl-6 mb-2">
|
||||
<h6 class="mb-1">Platform: {{ ticket.platform.pretty_name }}</h6>
|
||||
<h6 class="mb-1">Owner: {{ ticket.user.username }}</h6>
|
||||
</div>
|
||||
<div class="col-xl-6 mt-1 mb-2">
|
||||
{% if ticket.note %}
|
||||
<small><b>Note:</b></small>
|
||||
<hr>
|
||||
<p>{{ ticket.note }}</p>
|
||||
<hr>
|
||||
{% endif %}
|
||||
</div>
|
||||
<!-- Logs -->
|
||||
{% if ticket.archive_set.all %}
|
||||
<small><b>Logs:</b></small>
|
||||
<ul class="list-group mb-2 mt-2">
|
||||
{% for archive in ticket.archive_set.all %}
|
||||
<li class="list-group-item list-group-item-action">
|
||||
<p style="word-wrap: break-word" ><b>File:</b> {{ archive.file }}</p>
|
||||
<small>
|
||||
<b>SHA1:</b>
|
||||
<span style="word-wrap: break-word">{{ archive.sha1 }}</span>
|
||||
</small>
|
||||
<br>
|
||||
<small>
|
||||
<b>Size:</b>
|
||||
<span style="word-wrap: break-word">{{ archive.size }}</span>
|
||||
</small>
|
||||
<div class="row">
|
||||
<div class="col" >
|
||||
<a
|
||||
class="btn btn-outline-success btn-sm mt-2"
|
||||
href="{{ archive.get_absolute_url }}"
|
||||
>GET</a>
|
||||
<button
|
||||
class="btn btn-outline-danger btn-sm ms-2 mt-2"
|
||||
button type="button" data-bs-toggle="modal" data-bs-target="#{{ archive.id }}"
|
||||
>DEL</button>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
{% endif %}
|
||||
<!-- Card buttons -->
|
||||
<div class="d-flex w-100 justify-content-between">
|
||||
<a
|
||||
href="{{ ticket.get_absolute_url }}"
|
||||
class="btn btn-outline-warning mb-1 mt-1"
|
||||
>Edit</a>
|
||||
<a
|
||||
href="{{ ticket.get_absolute_url }}"
|
||||
class="btn btn-outline-danger mb-1 mt-1"
|
||||
>Delete</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- Modal -->
|
||||
{% for archive in ticket.archive_set.all %}
|
||||
<div class="modal fade" id="{{ archive.id }}" tabindex="-1" aria-labelledby="{{ archive.id }}_Label" aria-hidden="true">
|
||||
<div class="modal-dialog">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h5 class="modal-title" id="{{ archive.id }}_Label">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>
|
||||
<button type="button" class="btn btn-danger">Delete</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endfor %}
|
||||
</div>
|
||||
</section>
|
||||
</main>
|
||||
{% endblock content %}
|
97
logs_collector/collector/templates/collector/tickets.html
Normal file
97
logs_collector/collector/templates/collector/tickets.html
Normal file
@@ -0,0 +1,97 @@
|
||||
{% extends 'collector/base.html' %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
{% include 'collector/navigation.html' %}
|
||||
<!-- Modal -->
|
||||
<main>
|
||||
<section>
|
||||
<div class="container mt-3">
|
||||
{% for ticket in tickets %}
|
||||
<div class="row">
|
||||
<!-- Ticket -->
|
||||
<div class="list-group mb-2">
|
||||
<div class="list-group-item list-group-item-action disable" aria-current="true">
|
||||
<div class="d-flex w-100 justify-content-between mb-2">
|
||||
<h5 class="mb-1">Ticket: {{ ticket.number }}</h5>
|
||||
<small>{{ ticket.time_create }}</small>
|
||||
</div>
|
||||
<div class="col-xl-6 mb-2">
|
||||
<!-- Info -->
|
||||
<h6 class="mb-1">Platform: {{ ticket.platform.pretty_name }}</h6>
|
||||
<h6 class="mb-1">Owner: {{ ticket.user.username }}</h6>
|
||||
</div>
|
||||
<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 }}"
|
||||
>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 }}</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 }}"
|
||||
>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 mb-2">
|
||||
{% for archive in ticket.archive_set.all %}
|
||||
<li class="list-group-item list-group-item-action">
|
||||
<a
|
||||
href="{{ archive.get_absolute_url }}"
|
||||
data-bs-toggle="tooltip"
|
||||
data-bs-placement="top"
|
||||
data-bs-title="Size: {{ archive.size }}"
|
||||
style="word-wrap: break-word"
|
||||
>{{ archive.file }}</a>
|
||||
</li>
|
||||
{% 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"
|
||||
>Open</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endfor %}
|
||||
</div>
|
||||
</section>
|
||||
</main>
|
||||
{% endblock content %}
|
Reference in New Issue
Block a user