gallery upload: better OCR error messages
- Catches 'unknown error' from Tesseract.js (unsupported
image formats like RAW/DNG) and shows helpful guidance:
'Use the 📸 live camera instead'
- Falls through to actual error message for other failures
- Better null-safety on error object
This commit is contained in:
+10
-2
@@ -2649,7 +2649,14 @@
|
|||||||
if (ocrEl) ocrEl.innerHTML = '❌ No machine ID detected. <button class="btn btn-outline btn-sm" onclick="document.getElementById(\'scanMachineId\').value=prompt(\'Enter machine ID:\');handleBarcode(document.getElementById(\'scanMachineId\').value)">Enter manually</button>';
|
if (ocrEl) ocrEl.innerHTML = '❌ No machine ID detected. <button class="btn btn-outline btn-sm" onclick="document.getElementById(\'scanMachineId\').value=prompt(\'Enter machine ID:\');handleBarcode(document.getElementById(\'scanMachineId\').value)">Enter manually</button>';
|
||||||
}
|
}
|
||||||
} catch (ocrErr) {
|
} catch (ocrErr) {
|
||||||
if (ocrEl) ocrEl.textContent = '❌ OCR failed: ' + ocrErr.message;
|
if (ocrEl) {
|
||||||
|
const msg = ocrErr.message || '';
|
||||||
|
if (msg.includes('unknown error') || msg === 'Client OCR failed: ') {
|
||||||
|
ocrEl.innerHTML = '❌ Photo format not supported by browser OCR. Use the 📸 live camera instead.';
|
||||||
|
} else {
|
||||||
|
ocrEl.textContent = '❌ OCR failed: ' + msg;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Extract GPS from EXIF
|
// Extract GPS from EXIF
|
||||||
@@ -3445,7 +3452,8 @@
|
|||||||
result = await Promise.race([ocrPromise, timeoutPromise]);
|
result = await Promise.race([ocrPromise, timeoutPromise]);
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
updateOcrProgress({ status: 'error' });
|
updateOcrProgress({ status: 'error' });
|
||||||
throw new Error('Client OCR failed: ' + (e.message || 'unknown error'));
|
const reason = (e && e.message) ? e.message : (e ? String(e) : 'image format not supported by browser');
|
||||||
|
throw new Error('Client OCR failed: ' + reason);
|
||||||
}
|
}
|
||||||
|
|
||||||
updateOcrProgress({ status: 'done' });
|
updateOcrProgress({ status: 'done' });
|
||||||
|
|||||||
Reference in New Issue
Block a user