Tickets - как полностью удалять загруженные файлы?
Есть форма добавления тикета с встроенной возможностью добавления изображений.
Сейчас действует схема: "Удалить/Восстановить", при которой легко можно восстановить помеченный на удаление файл.
Как реализовать возможность немедленного полного удаления (уничтожения) загруженного файла?
То есть не нужны никакие восстановления, нужно сразу же удалить файл.
Вариант с display:none для .deleted (помеченных для удаления) не подходит, т.к. при повторной загрузке уже удалённого изображения выдаётся ошибка о том, что такой файл уже существует.
Нужно же сразу после нажатия на «Удалить» чтобы файл уничтожался на сервере и в базе, без возможности восстановления.
Мои мысли:
Насколько я понимаю, в файле assets/components/tickets/js/web/files.js отправляется ajax-запрос к процессору ticket/file/delete:
Что мне нужно сделать, чтобы заработало полное уничтожение загруженного файла? Помогите набросать план действий (только без редактирования оригинальных файлов, чтобы исключить затирание при обновлении)!
Сейчас действует схема: "Удалить/Восстановить", при которой легко можно восстановить помеченный на удаление файл.
Как реализовать возможность немедленного полного удаления (уничтожения) загруженного файла?
То есть не нужны никакие восстановления, нужно сразу же удалить файл.
Вариант с display:none для .deleted (помеченных для удаления) не подходит, т.к. при повторной загрузке уже удалённого изображения выдаётся ошибка о том, что такой файл уже существует.
Нужно же сразу после нажатия на «Удалить» чтобы файл уничтожался на сервере и в базе, без возможности восстановления.
Мои мысли:
Насколько я понимаю, в файле assets/components/tickets/js/web/files.js отправляется ajax-запрос к процессору ticket/file/delete:
$.post(TicketsConfig.actionUrl, {action: 'ticket/file/delete', id: id, form_key: form_key}, function(response) {
if (response.success) {
if ($parent.hasClass(deleted)) {
$parent.removeClass(deleted)
}
else {
$parent.addClass(deleted)
}
}
else {
Tickets.Message.error(response.message);
}
}, 'json');Сам процессор похоже находится тут: core/components/tickets/processors/web/file/delete.class.phpЧто мне нужно сделать, чтобы заработало полное уничтожение загруженного файла? Помогите набросать план действий (только без редактирования оригинальных файлов, чтобы исключить затирание при обновлении)!
Техническая поддержка MODX
Сайт лежит, тормозит или остался без разработчика?
Переезд с MODX 2 на 3, PHP 7 на 8, скорость и безопасность. Поддержка со сроками и ответственностью, а не совет в чате.
Подробнее
Реклама
Комментарии: 4
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
Похоже можно просто отправить свой ajax-запрос при нажатии на «Удалить» и воспользоваться
Спасибо! Буду пробовать!
То есть вся логика с проверками проходит на php, он фильтрует поступившие данные.