devicehub-django/device/templates/details.html

149 lines
5.8 KiB
HTML
Raw Normal View History

2024-10-08 05:26:48 +00:00
{% extends 'base.html' %}
2024-07-05 13:32:07 +00:00
{% load i18n %}
{% block content %}
2024-12-05 21:31:30 +00:00
<div class="row">
<div class="col">
2024-12-19 21:17:09 +00:00
<h3>{{ object.shortid }}</h3>
2024-12-05 21:31:30 +00:00
</div>
<div class="col text-end">
2024-12-19 21:17:09 +00:00
<div class="btn-group" role="group" aria-label="Actions">
<!-- change state button -->
{% if state_definitions %}
<div class="dropdown ms-2">
<a class="btn btn-green-admin dropdown-toggle" id="addStateDropdown" data-bs-toggle="dropdown" aria-expanded="false">
{% trans "Change state" %}
{% if device_states %}
({{ device_states.0.state }})
{% endif %}
</a>
<ul class="dropdown-menu" aria-labelledby="addStateDropdown" style="width: 100%;">
{% for state in state_definitions %}
<li style="width: 100%;">
<form id="changeStateForm{{ state.id }}" method="post" action="{% url 'action:change_state' %}">
{% csrf_token %}
2024-12-20 17:38:58 +00:00
<input type="hidden" name="previous_state" value="{{ device_states.0.state|default:"nil" }}">
2024-12-19 21:17:09 +00:00
<input type="hidden" name="snapshot_uuid" value="{{ object.last_uuid }}">
<input type="hidden" name="new_state" value="{{ state.state }}">
<a class="dropdown-item d-flex justify-content-between align-items-center" href="#" onclick="document.getElementById('changeStateForm{{ state.id }}').submit(); return false;">
2024-12-20 17:41:17 +00:00
<span class="font-monospace">{{ state.state }}</span>
2024-12-19 21:17:09 +00:00
<span class="badge bg-secondary rounded-pill-sm">{{ forloop.counter }}</span>
</a>
2024-12-19 21:17:09 +00:00
</form>
</li>
{% endfor %}
</ul>
</div>
2024-12-19 21:17:09 +00:00
{% else %}
<button class="btn btn-green-admin" type="button" disabled>
<i class="bi bi-plus"></i> {% trans "Change state" %}
{% if device_states %}
({{ device_states.0.state }})
2024-12-19 21:17:09 +00:00
{% endif %}
</button>
{% endif %}
<!-- Add note button -->
<button class="btn btn-warning ms-2" type="button" data-bs-toggle="modal" data-bs-target="#addNoteModal">
<i class="bi bi-sticky"></i> {% trans "Add a note" %}
2024-12-05 21:31:30 +00:00
</button>
2024-12-19 21:17:09 +00:00
</div>
2024-07-05 13:32:07 +00:00
</div>
2024-12-05 21:31:30 +00:00
</div>
2024-07-05 13:32:07 +00:00
2024-12-19 21:17:09 +00:00
<div class="row">
<div class="col">
<ul class="nav nav-tabs nav-tabs-bordered">
2024-10-29 07:25:01 +00:00
<li class="nav-item">
<a href="#details" class="nav-link active" data-bs-toggle="tab" data-bs-target="#details">{% trans 'General details' %}</a>
</li>
2024-12-06 22:19:49 +00:00
<li class="nav-item">
2024-12-06 22:48:31 +00:00
<a href="#log" class="nav-link" data-bs-toggle="tab" data-bs-target="#log">{% trans 'Log' %}</a>
2024-12-06 22:19:49 +00:00
</li>
2024-10-29 07:25:01 +00:00
<li class="nav-item">
<a href="#user_properties" class="nav-link" data-bs-toggle="tab" data-bs-target="#user_properties">{% trans 'User properties' %}</a>
</li>
2024-10-29 07:25:01 +00:00
<li class="nav-item">
<a href="#documents" class="nav-link" data-bs-toggle="tab" data-bs-target="#documents">{% trans 'Documents' %}</a>
</li>
2024-10-29 07:25:01 +00:00
<li class="nav-item">
<a href="#lots" class="nav-link" data-bs-toggle="tab" data-bs-target="#lots">{% trans 'Lots' %}</a>
</li>
2024-10-29 07:25:01 +00:00
<li class="nav-item">
<a href="#components" class="nav-link" data-bs-toggle="tab" data-bs-target="#components">{% trans 'Components' %}</a>
</li>
2024-10-29 07:25:01 +00:00
<li class="nav-item">
<a href="#evidences" class="nav-link" data-bs-toggle="tab" data-bs-target="#evidences">{% trans 'Evidences' %}</a>
</li>
2024-10-29 07:25:01 +00:00
<li class="nav-item">
2024-10-30 15:00:23 +00:00
<a class="nav-link" href="{% url 'device:device_web' object.id %}" target="_blank">Web</a>
</li>
</ul>
2024-07-05 13:32:07 +00:00
</div>
</div>
2024-12-06 20:48:06 +00:00
<div class="tab-content pt-4">
2024-12-06 21:21:46 +00:00
{% include 'tabs/general_details.html' %}
2024-11-15 21:16:45 +00:00
{% include 'tabs/log.html' %}
2024-11-15 21:16:45 +00:00
{% include 'tabs/user_properties.html' %}
2024-07-30 11:37:08 +00:00
{% include 'tabs/documents.html' %}
2024-07-05 13:32:07 +00:00
{% include 'tabs/lots.html' %}
{% include 'tabs/evidences.html' %}
2024-07-18 15:21:22 +00:00
2024-12-19 21:17:09 +00:00
<div class="modal fade" id="addNoteModal" tabindex="-1" aria-labelledby="addNoteModalLabel" aria-hidden="true">
<div class="modal-dialog">
2024-12-05 21:31:30 +00:00
<div class="modal-content">
<div class="modal-header">
2024-12-19 21:17:09 +00:00
<h5 class="modal-title" id="addNoteModalLabel">{% trans "Add a Note" %}</h5>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="{% trans 'Close' %}"></button>
2024-12-05 21:31:30 +00:00
</div>
2024-12-19 21:17:09 +00:00
<div class="modal-body">
<form method="post" action="{% url 'action:add_note' %}">
{% csrf_token %}
<div class="mb-3">
<input type="hidden" name="snapshot_uuid" value="{{ object.last_uuid }}">
<label for="noteDescription" class="form-label">{% trans "Note" %}</label>
<textarea class="form-control" id="noteDescription" name="note" placeholder="Max 250 characters" name="note" rows="3" required></textarea>
2024-12-05 21:31:30 +00:00
</div>
2024-12-19 21:17:09 +00:00
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">{% trans "Cancel" %}</button>
<button type="submit" class="btn btn-green-admin">{% trans "Save Note" %}</button>
</div>
</form>
2024-12-05 21:31:30 +00:00
</div>
</div>
2024-12-19 21:17:09 +00:00
</div>
2024-12-05 21:31:30 +00:00
</div>
2024-07-05 13:32:07 +00:00
{% endblock %}
2024-10-22 05:24:42 +00:00
{% block extrascript %}
<script>
document.addEventListener('DOMContentLoaded', function () {
// Obtener el hash de la URL (ejemplo: #components)
const hash = window.location.hash
// Verificar si hay un hash en la URL
if (hash) {
// Buscar el botón o enlace que corresponde al hash y activarlo
const tabTrigger = document.querySelector(`[data-bs-target="${hash}"]`)
if (tabTrigger) {
// Crear una instancia de tab de Bootstrap para activar el tab
const tab = new bootstrap.Tab(tabTrigger)
tab.show()
}
}
})
</script>
{% endblock %}