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-12 21:18:24 +00:00
< h3 > {{ object.shortid }}
< / h3 >
2024-12-05 21:31:30 +00:00
< / div >
< div class = "col text-end" >
2024-12-06 00:30:06 +00:00
{% if state_definitions %}
< div class = "dropdown" >
2024-12-12 21:18:24 +00:00
< button class = "btn btn-green-admin dropdown-toggle" type = "button" id = "addStateDropdown" data-bs-toggle = "dropdown" aria-expanded = "false" >
2024-12-06 00:30:06 +00:00
{% trans "Action" %}
2024-12-12 21:18:24 +00:00
< / button >
< ul class = "dropdown-menu" aria-labelledby = "addStateDropdown" >
{% for state in state_definitions %}
< li >
< a class = "dropdown-item d-flex justify-content-between align-items-center" href = "#" data-bs-toggle = "modal" data-bs-target = "#addStateModal{{ state.id }}" >
< span class = "badge bg-secondary rounded-pill-sm" > {{ forloop.counter }}
< / span >
< span > {{ state.state }}
< / span >
< / a >
< / li >
{% endfor %}
< / ul >
< / div >
2024-12-06 00:30:06 +00:00
{% else %}
< button class = "btn btn-green-admin" type = "button" disabled >
{% trans "Action" %}
2024-12-05 21:31:30 +00:00
< / button >
2024-12-06 00:30:06 +00:00
{% endif %}
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-10-29 07:29:13 +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 >
2024-10-29 07:29:13 +00:00
< / 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" >
2024-11-14 15:00:03 +00:00
< a href = "#user_properties" class = "nav-link" data-bs-toggle = "tab" data-bs-target = "#user_properties" > {% trans 'User properties' %}< / a >
2024-10-29 07:29:13 +00:00
< / 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 >
2024-10-29 07:29:13 +00:00
< / 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 >
2024-10-29 07:29:13 +00:00
< / 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 >
2024-10-29 07:29:13 +00:00
< / 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 >
2024-10-29 07:29:13 +00:00
< / 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 >
2024-10-29 07:29:13 +00:00
< / 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
2024-12-12 19:46:39 +00:00
{% include 'tabs/general_details.html' %}
2024-11-15 21:16:45 +00:00
2024-12-12 19:46:39 +00:00
{% include 'tabs/log.html' %}
2024-11-15 21:16:45 +00:00
2024-12-12 19:46:39 +00:00
{% include 'tabs/user_properties.html' %}
2024-07-30 11:37:08 +00:00
2024-12-12 19:46:39 +00:00
{% include 'tabs/documents.html' %}
2024-07-05 13:32:07 +00:00
2024-12-12 19:46:39 +00:00
{% include 'tabs/lots.html' %}
2024-10-29 07:29:13 +00:00
2024-12-12 19:46:39 +00:00
{% include 'tabs/evidences.html' %}
2024-07-18 15:21:22 +00:00
2024-12-05 21:31:30 +00:00
2024-12-06 00:30:06 +00:00
<!-- add state to device - popup modal -->
{% if state_definitions %}
2024-12-05 21:31:30 +00:00
{% for state in state_definitions %}
< div class = "modal fade" id = "addStateModal{{ state.id }}" tabindex = "-1" aria-labelledby = "addStateModalLabel{{ state.id }}" aria-hidden = "true" >
< div class = "modal-dialog" >
2024-12-06 00:30:06 +00:00
< form method = "post" action = "{% url 'action:new_action'%}" >
2024-12-05 21:31:30 +00:00
{% csrf_token %}
< div class = "modal-content" >
< div class = "modal-header" >
< h5 class = "modal-title" id = "addStateModalLabel{{ state.id }}" > {% trans "Summary of changes" %}< / h5 >
< button type = "button" class = "btn-close" data-bs-dismiss = "modal" aria-label = "Close" > < / button >
< / div >
2024-12-12 21:18:24 +00:00
< div class = "modal-body m-1" >
{% if device_states and device_states.0.state == state.state %}
< div class = "alert alert-warning d-flex align-items-center" >
< i class = "bi bi-exclamation-triangle-fill me-2" > < / i >
< span > {% trans "The device is already in the selected state." %}< / span >
< / div >
{% endif %}
2024-12-05 21:31:30 +00:00
< div class = "mb-3" >
< div class = "d-flex align-items-center" >
< i class = "bi bi-arrow-right-circle text-danger me-2" > < / i >
< span class = "text-danger fw-bold me-2" > {% trans "From:" %}< / span >
2024-12-12 21:18:24 +00:00
< span class = "text-danger fw-italic" >
{% if device_states %}
{{device_states.0.state}}
{% else %}
{% trans 'None' %}
{% endif %}
< / span >
2024-12-05 21:31:30 +00:00
< / div >
< div class = "d-flex align-items-center mt-2" >
< i class = "bi bi-arrow-right-circle text-success me-2" > < / i >
< span class = "text-success fw-bold me-2" > {% trans "To:" %}< / span >
< span class = "text-success fw-italic" > {{ state.state }}< / span >
2024-12-06 00:30:06 +00:00
< / div >
< / div >
2024-12-05 21:31:30 +00:00
< div class = "form-check form-switch mt-3 d-flex justify-content-end" >
< label class = "form-check-label font-monospace" for = "addNoteCheckbox{{ state.id }}" >
{% trans "Add a note" %}
< / label >
< input class = "form-check-input ms-2" type = "checkbox" id = "addNoteCheckbox{{ state.id }}" data-bs-toggle = "collapse" data-bs-target = "#collapseInput{{ state.id }}" name = "add_note" >
< / div >
< div class = "mb-3 mt-2 collapse" id = "collapseInput{{ state.id }}" >
< textarea type = "text" class = "form-control" id = "stateNote{{ state.id }}" name = "note" rows = "4" maxlength = "200" placeholder = "{% trans " Max 200 characters " % } " > < / textarea >
< / div >
< input type = "hidden" name = "state_id" value = "{{ state.id }}" >
2024-12-06 20:48:06 +00:00
< input type = "hidden" name = "snapshot_uuid" value = "{{ object.last_uuid }}" >
2024-12-05 21:31:30 +00:00
< / div >
< div class = "modal-footer" >
< button type = "button" class = "btn btn-secondary" data-bs-dismiss = "modal" > {% trans "Cancel" %}< / button >
< button type = "submit" class = "btn btn-primary" > {% trans "Add State" %}< / button >
< / div >
< / div >
< / form >
< / div >
< / div >
{% endfor %}
2024-12-06 00:30:06 +00:00
{% endif %}
2024-12-05 21:31:30 +00:00
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 %}