fix: добавлен CSRF токен в форму комментариев AJAX

- Добавлена функция getCsrfToken() для получения токена из cookie
- Добавлен скрытый input с csrfmiddlewaretoken в каждую форму
- Исправлена отправка комментариев в AJAX-режиме
This commit is contained in:
admin i 2025-12-05 15:02:51 +03:00
parent 19757d2f98
commit c65558f5a2

View File

@ -434,6 +434,7 @@ export function initRequestListHandler(options) {
</div>
<div class="comments-list" data-role="list"></div>
<form class="comment-new mt-3 request-comment-form" data-role="form" autocomplete="off">
<input type="hidden" name="csrfmiddlewaretoken" value="${getCsrfToken()}">
<div class="message-field message-field--compact">
<div class="dropdown message-emoji">
<button type="button" class="btn btn-ghost btn-emoji message-icon-btn"
@ -456,6 +457,26 @@ export function initRequestListHandler(options) {
`;
}
/**
* Получает CSRF токен из cookie
* @returns {string} CSRF токен
*/
function getCsrfToken() {
const name = 'csrftoken';
let cookieValue = '';
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;
}
/**
* Получает CSS класс для статуса
* @param {string} status - Статус заявления