Исправление: кнопка Сканировать не показывалась, т.к. ранний return зависел от закомментированного блока загрузки

This commit is contained in:
apuc committed 2026-09-18 14:20:40 +03:00
1 parent 91c63fd652
commit b419fe2092
1 file changed
+44 -40
+44 -40
View File
@@ -52,43 +52,47 @@
var resultCard = document.getElementById('resultCard'); var resultCard = document.getElementById('resultCard');
var resultContent = document.getElementById('resultContent'); var resultContent = document.getElementById('resultContent');
if (!uploadArea || !fileInput || !analyzeBtn) return; // шорткод не выведен // Блок загрузки может быть закомментирован (осталось только сканирование с камеры),
// поэтому НЕ выходим раньше времени — инициализируем сканирование всегда.
var hasUpload = !!(uploadArea && fileInput && analyzeBtn);
var selectedFile = null; var selectedFile = null;
uploadArea.addEventListener('click', function () { fileInput.click(); }); if (hasUpload) {
uploadArea.addEventListener('dragover', function (e) { uploadArea.addEventListener('click', function () { fileInput.click(); });
e.preventDefault(); uploadArea.addEventListener('dragover', function (e) {
uploadArea.classList.add('dragover'); e.preventDefault();
}); uploadArea.classList.add('dragover');
uploadArea.addEventListener('dragleave', function () { uploadArea.classList.remove('dragover'); }); });
uploadArea.addEventListener('drop', function (e) { uploadArea.addEventListener('dragleave', function () { uploadArea.classList.remove('dragover'); });
e.preventDefault(); uploadArea.addEventListener('drop', function (e) {
uploadArea.classList.remove('dragover'); e.preventDefault();
if (e.dataTransfer.files.length > 0) { uploadArea.classList.remove('dragover');
handleFile(e.dataTransfer.files[0]); if (e.dataTransfer.files.length > 0) {
} handleFile(e.dataTransfer.files[0]);
}); }
fileInput.addEventListener('change', function (e) { });
if (e.target.files.length > 0) handleFile(e.target.files[0]); fileInput.addEventListener('change', function (e) {
}); if (e.target.files.length > 0) handleFile(e.target.files[0]);
});
function handleFile(file) { function handleFile(file) {
selectedFile = file; selectedFile = file;
uploadArea.querySelector('p strong').textContent = '📁 ' + file.name + ' (' + (file.size / 1024 / 1024).toFixed(1) + ' МБ)'; uploadArea.querySelector('p strong').textContent = '📁 ' + file.name + ' (' + (file.size / 1024 / 1024).toFixed(1) + ' МБ)';
uploadArea.querySelector('.med-hint').textContent = 'Готово к анализу'; uploadArea.querySelector('.med-hint').textContent = 'Готово к анализу';
analyzeBtn.disabled = false; analyzeBtn.disabled = false;
}
analyzeBtn.addEventListener('click', function () {
if (!selectedFile) return;
sendVideo(selectedFile, selectedFile.name);
});
} }
analyzeBtn.addEventListener('click', function () {
if (!selectedFile) return;
sendVideo(selectedFile, selectedFile.name);
});
async function sendVideo(blob, filename) { async function sendVideo(blob, filename) {
analyzeBtn.disabled = true; if (analyzeBtn) analyzeBtn.disabled = true;
progressContainer.style.display = 'block'; if (progressContainer) progressContainer.style.display = 'block';
resultCard.style.display = 'none'; if (resultCard) resultCard.style.display = 'none';
setProgress(5, 'Загрузка видео...'); setProgress(5, 'Загрузка видео...');
var formData = new FormData(); var formData = new FormData();
@@ -125,7 +129,7 @@
setProgress(100, 'Готово!'); setProgress(100, 'Готово!');
document.getElementById('scanLoader').classList.remove('open'); document.getElementById('scanLoader').classList.remove('open');
setTimeout(function () { setTimeout(function () {
progressContainer.style.display = 'none'; if (progressContainer) progressContainer.style.display = 'none';
renderResult(data); renderResult(data);
}, 300); }, 300);
return; return;
@@ -147,27 +151,27 @@
} }
function setProgress(pct, text) { function setProgress(pct, text) {
progressFill.style.width = pct + '%'; if (progressFill) progressFill.style.width = pct + '%';
progressText.textContent = text; if (progressText) progressText.textContent = text;
} }
function showError(msg, videoUrl) { function showError(msg, videoUrl) {
document.getElementById('scanLoader').classList.remove('open'); document.getElementById('scanLoader').classList.remove('open');
progressContainer.style.display = 'none'; if (progressContainer) progressContainer.style.display = 'none';
resultCard.style.display = 'block'; if (resultCard) resultCard.style.display = 'block';
var html = '<div class="med-error-box"><strong>Ошибка:</strong> ' + escapeHtml(msg) + '</div>'; var html = '<div class="med-error-box"><strong>Ошибка:</strong> ' + escapeHtml(msg) + '</div>';
if (videoUrl) { if (videoUrl) {
html += '<div style="text-align:center; margin-top:15px">' + html += '<div style="text-align:center; margin-top:15px">' +
'<a class="med-btn-download" href="' + downloadUrl(videoUrl) + '">🎬 Скачать записанное видео</a>' + '<a class="med-btn-download" href="' + downloadUrl(videoUrl) + '">🎬 Скачать записанное видео</a>' +
'</div>'; '</div>';
} }
resultContent.innerHTML = html; if (resultContent) resultContent.innerHTML = html;
analyzeBtn.disabled = false; if (analyzeBtn) analyzeBtn.disabled = false;
} }
function renderResult(data) { function renderResult(data) {
document.getElementById('scanLoader').classList.remove('open'); document.getElementById('scanLoader').classList.remove('open');
resultCard.style.display = 'block'; if (resultCard) resultCard.style.display = 'block';
var html = ''; var html = '';
@@ -227,8 +231,8 @@
'</div>'; '</div>';
} }
resultContent.innerHTML = html; if (resultContent) resultContent.innerHTML = html;
resultCard.scrollIntoView({ behavior: 'smooth' }); if (resultCard) resultCard.scrollIntoView({ behavior: 'smooth' });
} }
// Поделиться (глобальная функция для inline-onclick) // Поделиться (глобальная функция для inline-onclick)