diff --git a/backend/static/js/app.js b/backend/static/js/app.js
index 6a8ad75..2e32f8f 100644
--- a/backend/static/js/app.js
+++ b/backend/static/js/app.js
@@ -3,7 +3,7 @@
Router, State-Management, Navigation, Initialisierung.
============================================================ */
-const APP_VER = '227'; // ← bei jedem Deploy mit Frontend-Änderungen erhöhen
+const APP_VER = '228'; // ← bei jedem Deploy mit Frontend-Änderungen erhöhen
const App = (() => {
diff --git a/backend/static/js/pages/routes.js b/backend/static/js/pages/routes.js
index e3901cb..4b25cd8 100644
--- a/backend/static/js/pages/routes.js
+++ b/backend/static/js/pages/routes.js
@@ -705,12 +705,12 @@ window.Page_routes = (() => {
${photos.map(u => `
`).join('')}
${isOwn ? `` : ''}
` :
isOwn ? `` : '';
const body = `
@@ -853,13 +853,14 @@ window.Page_routes = (() => {
// Foto-Upload
document.getElementById('rk-photo-input')?.addEventListener('change', async e => {
- const file = e.target.files?.[0];
- if (!file) return;
+ const files = Array.from(e.target.files || []);
+ if (!files.length) return;
try {
- const res = await API.routes.addPhoto(route.id, file);
- route.foto_urls = res.foto_urls;
- UI.toast.success('Foto gespeichert!');
- // Reload detail
+ for (const file of files) {
+ const res = await API.routes.addPhoto(route.id, file);
+ route.foto_urls = res.foto_urls;
+ }
+ UI.toast.success(files.length > 1 ? `${files.length} Fotos gespeichert!` : 'Foto gespeichert!');
UI.modal.close();
setTimeout(() => _openDetail(route.id), 200);
} catch (err) { UI.toast.error(err.message); }