fix: TTS test ask user if heard + PHP 8 end() ref bug + DB migration guard for fresh volumes
- app.js: TTS kiosk timeout 4s → 10s; fires interactive 'Hai sentito?' YES/NO prompt instead of showing error (TTS can take 6-8s; UtteranceProgressListener may not fire on all firmware); YES → success, NO → troubleshooting steps - translations: add heard_question/heard_yes/heard_no/test_ok_kiosk/test_fail_steps to all 5 languages (it/en/de/fr/es) under settings.tts - api/index.php: fix end() PHP 8.0+ reference error in _offFetchProduct() (categories_hierarchy stored in temp var before calling end()) (fixes #130) - api/database.php: migrateDB() now checks sqlite_master for 'products' table; if missing, calls initializeDB() and returns — no ALTER on nonexistent table (fixes #133, covers #131) - api/index.php: health_check db_row_count query guarded against missing inventory table (fixes #131)
This commit is contained in:
+9
-4
@@ -477,9 +477,13 @@ if (($_GET['action'] ?? '') === 'health_check') {
|
||||
'hint' => $wal !== 'wal' ? 'Journal mode not optimal — will be corrected automatically on next startup' : null];
|
||||
|
||||
// Size & rows
|
||||
$checks['db_size'] = ['ok' => true, 'value' => round(filesize($dbPath)/1024).' KB', 'optional' => true];
|
||||
$cnt = $pdo->query("SELECT COUNT(*) FROM inventory WHERE quantity > 0")->fetchColumn();
|
||||
$checks['db_row_count'] = ['ok' => true, 'value' => $cnt.' prodotti in inventario', 'optional' => true];
|
||||
$checks['db_size'] = ['ok' => true, 'value' => round(filesize($dbPath)/1024).' KB', 'optional' => true];
|
||||
if (empty($missing) || !in_array('inventory', $missing)) {
|
||||
$cnt = $pdo->query("SELECT COUNT(*) FROM inventory WHERE quantity > 0")->fetchColumn();
|
||||
$checks['db_row_count'] = ['ok' => true, 'value' => $cnt.' prodotti in inventario', 'optional' => true];
|
||||
} else {
|
||||
$checks['db_row_count'] = ['ok' => true, 'value' => '0 prodotti in inventario', 'optional' => true];
|
||||
}
|
||||
} else {
|
||||
foreach (['db_tables', 'db_integrity'] as $k)
|
||||
$checks[$k] = ['ok' => false, 'hint' => 'Cannot verify — DB connection failed'];
|
||||
@@ -2185,7 +2189,8 @@ function _offFetchProduct(string $barcode): ?array {
|
||||
}
|
||||
|
||||
$ingredients = $p['ingredients_text_it'] ?? $p['ingredients_text'] ?? '';
|
||||
$category = $p['categories_tags'][0] ?? end($p['categories_hierarchy'] ?? []) ?? $p['categories'] ?? '';
|
||||
$catHierarchy = $p['categories_hierarchy'] ?? [];
|
||||
$category = $p['categories_tags'][0] ?? (empty($catHierarchy) ? null : end($catHierarchy)) ?? $p['categories'] ?? '';
|
||||
$allergens = '';
|
||||
if (!empty($p['allergens_tags'])) {
|
||||
$allergens = implode(', ', array_map(fn($a) => str_replace('en:', '', $a), $p['allergens_tags']));
|
||||
|
||||
Reference in New Issue
Block a user