Files
dbstorage/dbapp/mainapp/templates/mainapp/transponder_bulk_delete_confirm.html

144 lines
6.8 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{% extends 'mainapp/base.html' %}
{% block title %}Подтверждение удаления транспондеров{% endblock %}
{% block content %}
<div class="container mt-4">
<div class="row justify-content-center">
<div class="col-md-10">
<div class="card border-danger">
<div class="card-header bg-danger text-white">
<h4 class="mb-0">
<i class="bi bi-exclamation-triangle"></i> Подтверждение удаления транспондеров
</h4>
</div>
<div class="card-body">
<div class="alert alert-warning" role="alert">
<h5 class="alert-heading">
<i class="bi bi-exclamation-circle"></i> Внимание!
</h5>
<p class="mb-0">
Вы собираетесь удалить <strong>{{ total_transponders }}</strong> транспондер(ов).
Это действие также удалит <strong>{{ total_objitems }}</strong> связанных точек.
</p>
<hr>
<p class="mb-0">
<strong>Это действие необратимо!</strong> Все данные будут безвозвратно удалены.
</p>
</div>
<h5 class="mt-4 mb-3">Детали удаления:</h5>
<div class="table-responsive" style="max-height: 400px; overflow-y: auto;">
<table class="table table-striped table-hover table-sm table-bordered">
<thead class="table-dark sticky-top">
<tr>
<th class="text-center" style="width: 10%;">ID</th>
<th style="width: 20%;">Название</th>
<th style="width: 20%;">Спутник</th>
<th class="text-center" style="width: 15%;">Downlink, МГц</th>
<th class="text-center" style="width: 15%;">Полоса, МГц</th>
<th class="text-center" style="width: 20%;">Кол-во точек</th>
</tr>
</thead>
<tbody>
{% for transponder in transponders_info %}
<tr>
<td class="text-center">{{ transponder.id }}</td>
<td>{{ transponder.name }}</td>
<td>{{ transponder.satellite }}</td>
<td class="text-center">{{ transponder.downlink }}</td>
<td class="text-center">{{ transponder.frequency_range }}</td>
<td class="text-center">
<span class="badge bg-primary">{{ transponder.objitem_count }}</span>
</td>
</tr>
{% endfor %}
</tbody>
</table>
</div>
<div class="alert alert-info mt-4" role="alert">
<h6 class="alert-heading">Что будет удалено:</h6>
<ul class="mb-0">
<li><strong>{{ total_transponders }}</strong> транспондер(ов)</li>
<li><strong>{{ total_objitems }}</strong> точек ГЛ</li>
<li>Все связанные геолокационные данные</li>
<li>Все связанные параметры</li>
</ul>
</div>
<form method="post" id="deleteForm">
{% csrf_token %}
<input type="hidden" name="ids" value="{{ ids }}">
<div class="d-flex justify-content-between mt-4">
<a href="{% url 'mainapp:transponder_list' %}" class="btn btn-secondary">
<i class="bi bi-arrow-left"></i> Отмена
</a>
<button type="submit" class="btn btn-danger" id="confirmDeleteBtn">
<i class="bi bi-trash"></i> Подтвердить удаление
</button>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
<script>
document.getElementById('deleteForm').addEventListener('submit', function(e) {
e.preventDefault();
const btn = document.getElementById('confirmDeleteBtn');
btn.disabled = true;
btn.innerHTML = '<span class="spinner-border spinner-border-sm" role="status" aria-hidden="true"></span> Удаление...';
const formData = new FormData(this);
function getCookie(name) {
let cookieValue = null;
if (document.cookie && document.cookie !== '') {
const cookies = document.cookie.split(';');
for (let i = 0; i < cookies.length; i++) {
const cookie = cookies[i].trim();
if (cookie.substring(0, name.length + 1) === (name + '=')) {
cookieValue = decodeURIComponent(cookie.substring(name.length + 1));
break;
}
}
}
return cookieValue;
}
const csrftoken = getCookie('csrftoken');
fetch('{% url "mainapp:delete_selected_transponders" %}', {
method: 'POST',
headers: {
'X-CSRFToken': csrftoken,
},
body: formData
})
.then(response => response.json())
.then(data => {
if (data.success) {
alert(data.message);
window.location.href = '{% url "mainapp:transponder_list" %}';
} else {
alert('Ошибка: ' + (data.error || 'Неизвестная ошибка'));
btn.disabled = false;
btn.innerHTML = '<i class="bi bi-trash"></i> Подтвердить удаление';
}
})
.catch(error => {
console.error('Error:', error);
alert('Произошла ошибка при удалении транспондеров');
btn.disabled = false;
btn.innerHTML = '<i class="bi bi-trash"></i> Подтвердить удаление';
});
});
</script>
{% endblock %}