fix delete chapter in chapter list
This commit is contained in:
parent
3af0f18d55
commit
18a338c2ce
|
|
@ -90,19 +90,18 @@ include 'views/layouts/header.php';
|
||||||
<small><?= date('d.m.Y H:i', strtotime($chapter['updated_at'])) ?></small>
|
<small><?= date('d.m.Y H:i', strtotime($chapter['updated_at'])) ?></small>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<div class="btn-group btn-group-sm">
|
<div class="btn-group btn-group-sm">
|
||||||
<a href="<?= SITE_URL ?>/chapters/<?= $chapter['id'] ?>/edit" class="btn btn-outline-primary" title="Редактировать">
|
<a href="<?= SITE_URL ?>/chapters/<?= $chapter['id'] ?>/edit" class="btn btn-outline-primary" title="Редактировать">
|
||||||
<i class="bi bi-pencil"></i>
|
<i class="bi bi-pencil"></i>
|
||||||
</a>
|
</a>
|
||||||
<form method="post" action="<?= SITE_URL ?>/chapters/<?= $chapter['id'] ?>/delete"
|
<button type="button" class="btn btn-outline-danger delete-chapter-btn"
|
||||||
onsubmit="return confirm('Вы уверены, что хотите удалить эту главу? Это действие нельзя отменить.');">
|
data-chapter-id="<?= $chapter['id'] ?>"
|
||||||
<input type="hidden" name="csrf_token" value="<?= generate_csrf_token() ?>">
|
data-csrf="<?= generate_csrf_token() ?>"
|
||||||
<button type="submit" class="btn btn-outline-danger" title="Удалить">
|
title="Удалить">
|
||||||
<i class="bi bi-trash"></i>
|
<i class="bi bi-trash"></i>
|
||||||
</button>
|
</button>
|
||||||
</form>
|
</div>
|
||||||
</div>
|
</td>
|
||||||
</td>
|
|
||||||
<input type="hidden" name="order[]" value="<?= $chapter['id'] ?>">
|
<input type="hidden" name="order[]" value="<?= $chapter['id'] ?>">
|
||||||
</tr>
|
</tr>
|
||||||
<?php endforeach; ?>
|
<?php endforeach; ?>
|
||||||
|
|
@ -192,6 +191,66 @@ document.addEventListener('DOMContentLoaded', function() {
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
document.addEventListener('DOMContentLoaded', function() {
|
||||||
|
// Обработчик удаления глав
|
||||||
|
document.querySelectorAll('.delete-chapter-btn').forEach(button => {
|
||||||
|
button.addEventListener('click', function(e) {
|
||||||
|
e.preventDefault();
|
||||||
|
|
||||||
|
const chapterId = this.getAttribute('data-chapter-id');
|
||||||
|
const csrfToken = this.getAttribute('data-csrf');
|
||||||
|
|
||||||
|
if (confirm('Вы уверены, что хотите удалить эту главу? Это действие нельзя отменить.')) {
|
||||||
|
const formData = new FormData();
|
||||||
|
formData.append('csrf_token', csrfToken);
|
||||||
|
|
||||||
|
fetch(`/chapters/${chapterId}/delete`, {
|
||||||
|
method: 'POST',
|
||||||
|
body: formData
|
||||||
|
})
|
||||||
|
.then(response => {
|
||||||
|
if (response.redirected) {
|
||||||
|
window.location.href = response.url;
|
||||||
|
} else {
|
||||||
|
return response.json();
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.then(data => {
|
||||||
|
if (data && data.success) {
|
||||||
|
// Удаляем строку таблицы
|
||||||
|
const row = document.querySelector(`tr[data-chapter-id="${chapterId}"]`);
|
||||||
|
if (row) {
|
||||||
|
row.remove();
|
||||||
|
// Обновляем номера глав
|
||||||
|
updateChapterNumbers();
|
||||||
|
showNotification('Глава успешно удалена', 'success');
|
||||||
|
}
|
||||||
|
} else if (data && data.error) {
|
||||||
|
alert('Ошибка: ' + data.error);
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.catch(error => {
|
||||||
|
console.error('Error:', error);
|
||||||
|
alert('Произошла ошибка при удалении главы');
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
// Функция для обновления номеров глав
|
||||||
|
function updateChapterNumbers() {
|
||||||
|
const orderNumbers = document.querySelectorAll('.chapter-order');
|
||||||
|
orderNumbers.forEach((element, index) => {
|
||||||
|
element.textContent = index + 1;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// Функция для показа уведомлений
|
||||||
|
function showNotification(message, type = 'success') {
|
||||||
|
// Можно использовать библиотеку для уведомлений или простой alert
|
||||||
|
alert(message);
|
||||||
|
}
|
||||||
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style>
|
<style>
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue