diff --git a/js/comment.js b/js/comment.js index 31b2906..02449d3 100644 --- a/js/comment.js +++ b/js/comment.js @@ -469,32 +469,38 @@ $doc.off('click', '.mod_comment_edit').on('click', '.mod_comment_edit', function var cleanText = $textBlock.html().replace(//mg, "\n").trim(); - // --- СБОР ТЕКУЩИХ КАРТИНОК (ТОТ САМЫЙ РАБОЧИЙ КОД) --- - var existingImagesHtml = ''; - var $foundImgs = $wrapper.find('img').filter(function() { - return !$(this).hasClass('star-choice') && !$(this).hasClass('avatar') && !$(this).closest('.stars').length; - }); +// --- СБОР ТЕКУЩИХ КАРТИНОК (ТОЧНЫЙ ПОИСК ПО КОНТЕЙНЕРУ) --- +var existingImagesHtml = ''; - if ($foundImgs.length > 0) { - existingImagesHtml = '
'; - $foundImgs.each(function(index) { - var imgSrc = $(this).attr('src'); - var fileName = imgSrc.split('/').pop(); - - existingImagesHtml += ` -
- - -
`; - }); - existingImagesHtml += '
'; - } +// Ищем картинки строго внутри контейнера вложений конкретного комментария +var $imageContainer = $('#image_container_' + cid); +var $foundImgs = $imageContainer.find('img'); + +if ($foundImgs.length > 0) { + existingImagesHtml = '
'; + + $foundImgs.each(function(index) { + var imgSrc = $(this).attr('src'); + if (!imgSrc) return; + + // Извлекаем имя файла из пути для передачи на сервер + var fileName = imgSrc.split('/').pop(); + + existingImagesHtml += ` +
+ + +
`; + }); + existingImagesHtml += '
'; +} // --- РЕЙТИНГ (ВОЗВРАЩЕНА ПОЛНАЯ ОРИГИНАЛЬНАЯ ЛОГИКА) --- var starsEditBlock = ''; @@ -550,6 +556,34 @@ $doc.off('click', '.mod_comment_edit').on('click', '.mod_comment_edit', function $foundImgs.hide(); $textBlock.after(editHtml); + + // --- ПРЕВЬЮ НОВЫХ ФАЙЛОВ ПРИ РЕДАКТИРОВАНИИ --- + $('#new_file_' + cid).on('change', function() { + var files = this.files; + var $previewContainer = $('#new_files_preview_' + cid); + + if ($previewContainer.length === 0) { + $(this).after(`
`); + $previewContainer = $('#new_files_preview_' + cid); + } + + $previewContainer.empty(); + if (files) { + $.each(files, function(i, file) { + if (!file.type.match('image.*')) return; + var reader = new FileReader(); + reader.onload = function(e) { + $previewContainer.append(` +
+ + NEW +
`); + }; + reader.readAsDataURL(file); + }); + } + }); + // --- КОНЕЦ ВСТАВКИ --- // Добавил поддержку лимита символов if ($.fn.limit) { @@ -622,11 +656,25 @@ $doc.on('change', 'input[id^="new_file_"]', function() { $('#edit_preview_wrapper_' + cid).addClass('d-none'); }); - $doc.on('click', '.cancelButton', function() { - var $container = $(this).closest('.edit-form-container'); - $container.prev('.mod_comment_text').show(); - $container.remove(); - }); +// Обработка кнопки "Отмена" при редактировании +$doc.on('click', '.cancelButton', function() { + var $container = $(this).closest('.edit-form-container'); + // Находим главную обертку этого конкретного комментария + var $wrapper = $container.closest('[id^="comment_wrapper_"]'); + + // 1. Возвращаем текст + $wrapper.find('.mod_comment_text').show(); + + // 2. Возвращаем оригинальный блок с картинками + // Ищем все возможные варианты названий блоков, которые мы скрывали + $wrapper.find('.mod_comment_attached_image, .comment-files, .attached-images').show(); + + // 3. Если мы скрывали изображения напрямую через $foundImgs.hide(), показываем их + $wrapper.find('img').show(); + + // 4. Удаляем форму редактирования + $container.remove(); +}); $doc.on('click', '.saveButton', function() { var $btn = $(this);