From b419fe2092be6d4991618a5cadc2d9df0a7a23fe Mon Sep 17 00:00:00 2001 From: Kavalar Date: Fri, 18 Sep 2026 14:20:40 +0300 Subject: [PATCH] =?UTF-8?q?=D0=98=D1=81=D0=BF=D1=80=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D0=B5:=20=D0=BA=D0=BD=D0=BE=D0=BF=D0=BA?= =?UTF-8?q?=D0=B0=20=D0=A1=D0=BA=D0=B0=D0=BD=D0=B8=D1=80=D0=BE=D0=B2=D0=B0?= =?UTF-8?q?=D1=82=D1=8C=20=D0=BD=D0=B5=20=D0=BF=D0=BE=D0=BA=D0=B0=D0=B7?= =?UTF-8?q?=D1=8B=D0=B2=D0=B0=D0=BB=D0=B0=D1=81=D1=8C,=20=D1=82.=D0=BA.=20?= =?UTF-8?q?=D1=80=D0=B0=D0=BD=D0=BD=D0=B8=D0=B9=20return=20=D0=B7=D0=B0?= =?UTF-8?q?=D0=B2=D0=B8=D1=81=D0=B5=D0=BB=20=D0=BE=D1=82=20=D0=B7=D0=B0?= =?UTF-8?q?=D0=BA=D0=BE=D0=BC=D0=BC=D0=B5=D0=BD=D1=82=D0=B8=D1=80=D0=BE?= =?UTF-8?q?=D0=B2=D0=B0=D0=BD=D0=BD=D0=BE=D0=B3=D0=BE=20=D0=B1=D0=BB=D0=BE?= =?UTF-8?q?=D0=BA=D0=B0=20=D0=B7=D0=B0=D0=B3=D1=80=D1=83=D0=B7=D0=BA=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- assets/js/med-diag.js | 84 ++++++++++++++++++++++--------------------- 1 file changed, 44 insertions(+), 40 deletions(-) diff --git a/assets/js/med-diag.js b/assets/js/med-diag.js index 56118b8..439cb06 100644 --- a/assets/js/med-diag.js +++ b/assets/js/med-diag.js @@ -52,43 +52,47 @@ var resultCard = document.getElementById('resultCard'); var resultContent = document.getElementById('resultContent'); - if (!uploadArea || !fileInput || !analyzeBtn) return; // шорткод не выведен + // Блок загрузки может быть закомментирован (осталось только сканирование с камеры), + // поэтому НЕ выходим раньше времени — инициализируем сканирование всегда. + var hasUpload = !!(uploadArea && fileInput && analyzeBtn); var selectedFile = null; - uploadArea.addEventListener('click', function () { fileInput.click(); }); - uploadArea.addEventListener('dragover', function (e) { - e.preventDefault(); - uploadArea.classList.add('dragover'); - }); - uploadArea.addEventListener('dragleave', function () { uploadArea.classList.remove('dragover'); }); - uploadArea.addEventListener('drop', function (e) { - e.preventDefault(); - uploadArea.classList.remove('dragover'); - 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]); - }); + if (hasUpload) { + uploadArea.addEventListener('click', function () { fileInput.click(); }); + uploadArea.addEventListener('dragover', function (e) { + e.preventDefault(); + uploadArea.classList.add('dragover'); + }); + uploadArea.addEventListener('dragleave', function () { uploadArea.classList.remove('dragover'); }); + uploadArea.addEventListener('drop', function (e) { + e.preventDefault(); + uploadArea.classList.remove('dragover'); + 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]); + }); - function handleFile(file) { - selectedFile = file; - uploadArea.querySelector('p strong').textContent = '📁 ' + file.name + ' (' + (file.size / 1024 / 1024).toFixed(1) + ' МБ)'; - uploadArea.querySelector('.med-hint').textContent = 'Готово к анализу'; - analyzeBtn.disabled = false; + function handleFile(file) { + selectedFile = file; + uploadArea.querySelector('p strong').textContent = '📁 ' + file.name + ' (' + (file.size / 1024 / 1024).toFixed(1) + ' МБ)'; + uploadArea.querySelector('.med-hint').textContent = 'Готово к анализу'; + 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) { - analyzeBtn.disabled = true; - progressContainer.style.display = 'block'; - resultCard.style.display = 'none'; + if (analyzeBtn) analyzeBtn.disabled = true; + if (progressContainer) progressContainer.style.display = 'block'; + if (resultCard) resultCard.style.display = 'none'; setProgress(5, 'Загрузка видео...'); var formData = new FormData(); @@ -125,7 +129,7 @@ setProgress(100, 'Готово!'); document.getElementById('scanLoader').classList.remove('open'); setTimeout(function () { - progressContainer.style.display = 'none'; + if (progressContainer) progressContainer.style.display = 'none'; renderResult(data); }, 300); return; @@ -147,27 +151,27 @@ } function setProgress(pct, text) { - progressFill.style.width = pct + '%'; - progressText.textContent = text; + if (progressFill) progressFill.style.width = pct + '%'; + if (progressText) progressText.textContent = text; } function showError(msg, videoUrl) { document.getElementById('scanLoader').classList.remove('open'); - progressContainer.style.display = 'none'; - resultCard.style.display = 'block'; + if (progressContainer) progressContainer.style.display = 'none'; + if (resultCard) resultCard.style.display = 'block'; var html = '
Ошибка: ' + escapeHtml(msg) + '
'; if (videoUrl) { html += '
' + '🎬 Скачать записанное видео' + '
'; } - resultContent.innerHTML = html; - analyzeBtn.disabled = false; + if (resultContent) resultContent.innerHTML = html; + if (analyzeBtn) analyzeBtn.disabled = false; } function renderResult(data) { document.getElementById('scanLoader').classList.remove('open'); - resultCard.style.display = 'block'; + if (resultCard) resultCard.style.display = 'block'; var html = ''; @@ -227,8 +231,8 @@ ''; } - resultContent.innerHTML = html; - resultCard.scrollIntoView({ behavior: 'smooth' }); + if (resultContent) resultContent.innerHTML = html; + if (resultCard) resultCard.scrollIntoView({ behavior: 'smooth' }); } // Поделиться (глобальная функция для inline-onclick)