Fix image update in edit, QR code generation and translations

This commit is contained in:
Edwin Noorlander 2025-11-11 18:21:40 +01:00
parent c1957baab9
commit bfea1f4dfe
6 changed files with 16 additions and 7 deletions

View File

@ -64,5 +64,8 @@
"Are you sure you want to delete this category?": "Are you sure you want to delete this category?", "Are you sure you want to delete this category?": "Are you sure you want to delete this category?",
"Image": "Image", "Image": "Image",
"Location": "Location", "Location": "Location",
"Print QR": "Print QR" "Print QR": "Print QR",
"Close": "Close",
"QR Code": "QR Code",
"ID Code": "ID Code"
} }

View File

@ -64,5 +64,8 @@
"Are you sure you want to delete this category?": "Weet je zeker dat je deze categorie wilt verwijderen?", "Are you sure you want to delete this category?": "Weet je zeker dat je deze categorie wilt verwijderen?",
"Image": "Afbeelding", "Image": "Afbeelding",
"Location": "Locatie", "Location": "Locatie",
"Print QR": "Print QR" "Print QR": "Print QR",
"Close": "Sluit",
"QR Code": "QR Code",
"ID Code": "ID Code"
} }

View File

@ -48,7 +48,7 @@ $router->addRoute('GET', '/api/parts', [ItemController::class, 'renderAddForm'])
// --- API CRUD Routes --- // --- API CRUD Routes ---
// Items // Items
$router->addRoute('POST', '/api/items', [ItemController::class, 'create']); $router->addRoute('POST', '/api/items', [ItemController::class, 'create']);
$router->addRoute('PUT', '/api/items/{id:\d+}', [ItemController::class, 'update']); $router->addRoute('POST', '/api/items/{id:\d+}', [ItemController::class, 'update']);
$router->addRoute('DELETE', '/api/items/{id:\d+}', [ItemController::class, 'delete']); $router->addRoute('DELETE', '/api/items/{id:\d+}', [ItemController::class, 'delete']);
// Categories // Categories

View File

@ -323,7 +323,7 @@ document.addEventListener('DOMContentLoaded', function() {
} }
fetch('/api/items/' + id, { fetch('/api/items/' + id, {
method: 'PUT', method: 'POST',
body: formData body: formData
}) })
.then(response => response.json()) .then(response => response.json())

View File

@ -182,6 +182,9 @@ class ItemController
]); ]);
$qrCode = new QRCode($options); $qrCode = new QRCode($options);
$svg = $qrCode->render($idCode); $svg = $qrCode->render($idCode);
if (strpos($svg, 'data:image/svg+xml;base64,') === 0) {
$svg = base64_decode(substr($svg, 26)); // 26 is length of 'data:image/svg+xml;base64,'
}
file_put_contents($qrDir . $idCode . '.svg', $svg); file_put_contents($qrDir . $idCode . '.svg', $svg);
} }

View File

@ -4,7 +4,7 @@
<head> <head>
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>QR Code for {{ item.name }}</title> <title>{{ trans('QR Code') }} for {{ item.name }}</title>
<style> <style>
body { font-family: Arial, sans-serif; text-align: center; margin: 20px; } body { font-family: Arial, sans-serif; text-align: center; margin: 20px; }
.qr-container { border: 1px solid #000; padding: 20px; display: inline-block; } .qr-container { border: 1px solid #000; padding: 20px; display: inline-block; }
@ -16,7 +16,7 @@
<body> <body>
<div class="qr-container"> <div class="qr-container">
<h2>{{ item.name }}</h2> <h2>{{ item.name }}</h2>
<p>ID Code: {{ item.id_code }}</p> <p>{{ trans('ID Code') }}: {{ item.id_code }}</p>
<img src="/uploads/qr/{{ item.id_code }}.svg" alt="QR Code" class="qr-code"> <img src="/uploads/qr/{{ item.id_code }}.svg" alt="QR Code" class="qr-code">
<div class="details"> <div class="details">
<p><strong>Description:</strong> {{ item.description }}</p> <p><strong>Description:</strong> {{ item.description }}</p>
@ -27,7 +27,7 @@
</div> </div>
</div> </div>
<div style="text-align: center; margin-top: 20px;"> <div style="text-align: center; margin-top: 20px;">
<button onclick="window.close()">Sluit</button> <button onclick="window.close()">{{ trans('Close') }}</button>
</div> </div>
<script> <script>
window.print(); window.print();