From ed9f0d058cd7df0961b6deb6888953c017146392 Mon Sep 17 00:00:00 2001 From: orfelorfel23 Date: Sun, 5 Jul 2026 10:51:13 +0200 Subject: [PATCH] Auto-Commit: 2026-07-05 10:51:13 --- app.js | 233 ++++++++++++++++++++++++++++--------------- datenschutz.html | 1 - faq.html | 81 ++++++++++++++- features.html | 1 - feedback.html | 3 +- feedback_backend.php | 176 ++++++++++++++++++++++++++++++++ impressum.html | 1 - index.html | 1 - upload.html | 1 - 9 files changed, 410 insertions(+), 88 deletions(-) create mode 100644 feedback_backend.php diff --git a/app.js b/app.js index 8d47a85..3823e48 100644 --- a/app.js +++ b/app.js @@ -93,55 +93,32 @@ document.addEventListener('DOMContentLoaded', () => { const feedbackList = document.getElementById('feedback-list'); const filterButtons = document.querySelectorAll('.filter-btn'); - // Default Seed Data - const defaultFeedback = [ - { - id: 'fb-1', - author: 'Markus T.', - type: 'feature', - title: 'QR-Code Download für Gäste', - text: 'Es wäre super cool, wenn nach der Aufnahme ein QR-Code angezeigt wird, über den sich die Gäste das Foto direkt auf das Handy laden können.', - upvotes: 42, - voted: false - }, - { - id: 'fb-2', - author: 'Sabrina', - type: 'love', - title: 'Sticker-Editor ist genial!', - text: 'Unsere Hochzeitsgäste haben stundenlang Emojis und Eventtexte verschoben. Die Bedienung ist wirklich super intuitiv und einfach.', - upvotes: 28, - voted: false - }, - { - id: 'fb-3', - author: 'EventTech GmbH', - type: 'bug', - title: 'Drucker-Timeout bei schlechtem WLAN', - text: 'Manchmal meldet die App einen Fehler, wenn der Drucker im lokalen Netzwerk kurz die Verbindung verliert. Ein automatischer Retry wäre hilfreich.', - upvotes: 15, - voted: false - } - ]; - - // Load from LocalStorage or seed defaults - let feedbackData = JSON.parse(localStorage.getItem('schnappix_feedback')); - if (!feedbackData) { - feedbackData = defaultFeedback; - localStorage.setItem('schnappix_feedback', JSON.stringify(feedbackData)); - } + let feedbackData = []; // Upvote storage track (local to session/device) let upvotedIds = JSON.parse(localStorage.getItem('schnappix_upvoted_ids')) || []; - const saveToLocalStorage = () => { - localStorage.setItem('schnappix_feedback', JSON.stringify(feedbackData)); + const saveUpvotesToLocal = () => { localStorage.setItem('schnappix_upvoted_ids', JSON.stringify(upvotedIds)); }; // Admin State let isAdmin = sessionStorage.getItem('schnappix_is_admin') === 'true'; + const loadFeedback = async () => { + if (!feedbackList) return; + try { + const response = await fetch('feedback_backend.php?action=get'); + const result = await response.json(); + if (result.success) { + feedbackData = result.data; + renderFeedback(getActiveFilter()); + } + } catch (error) { + console.error('Error loading feedback:', error); + } + }; + const renderFeedback = (filter = 'all') => { if (!feedbackList) return; feedbackList.innerHTML = ''; @@ -166,20 +143,37 @@ document.addEventListener('DOMContentLoaded', () => { categoryLabel = 'Lob'; } - // Show delete button if user is admin - const deleteBtnHtml = isAdmin - ? `` - : ''; + // Show admin actions if user is admin + let adminActionsHtml = ''; + if (isAdmin) { + adminActionsHtml = ` +
+ + +
+ `; + } + + let answerHtml = ''; + if (item.answer) { + answerHtml = ` +
+
Offizielle Antwort
+

${escapeHtml(item.answer)}

+
+ `; + } card.innerHTML = `
${badgeIcon} ${categoryLabel} von ${escapeHtml(item.author)} - ${deleteBtnHtml}
+ ${adminActionsHtml}

${escapeHtml(item.title)}

${escapeHtml(item.text)}

+ ${answerHtml}
+ +
+ +
+

Nein, für das Aufnehmen von Fotos, die Speicherung auf dem Gerät und den lokalen Druck (z.B. über ein lokales WLAN) wird keine aktive Internetverbindung benötigt.

+
+
+ +
+ +
+

Schnappix benötigt mindestens Android 10 (API Level 29), um die volle Unterstützung für die moderne CameraX-API und das aktuelle Dateisystem (Scoped Storage) zu gewährleisten.

+
+
+ +
+ +
+

Ja, Schnappix unterstützt neben der eingebauten Tablet-Frontkamera auch externe USB-Kameras (UVC). Schließe einfach eine USB-Webcam an dein Tablet an, um für eine noch bessere Bildqualität zu sorgen.

+
+
+ +
+ +
+

Schnappix bietet einen integrierten Editor, mit dem die Gäste ihre Collagen vor dem Speichern oder Drucken verzieren können. Emojis, Datumsanzeigen und der Eventname können dabei wie auf Social Media frei auf dem Bildschirm verschoben, gedreht und skaliert werden.

+
+
+ +
+ +
+

Die App ist für Serienbilder ausgelegt und nimmt automatisch 1 bis 5 Fotos hintereinander auf. Aus dieser Serie wird im Anschluss direkt eine fertige Collage zum Drucken oder Speichern generiert.

+
+
+ +
+ +
+

Da Schnappix für den sicheren Betrieb auf Events entwickelt wurde, sperrt der Kiosk-Modus das Tablet zuverlässig ab. Gäste können die App nicht beenden. Das Verlassen ist nur durch die Eingabe deines sicheren Passworts im versteckten Admin-Bereich möglich.

+
+
+ +
+ +
+

Ja, alle aufgenommenen Originalfotos und die fertigen Collagen werden automatisch und lokal in der Standard-Galerie-App deines Tablets (unter dem jeweiligen Event-Namen) abgespeichert und können jederzeit eingesehen oder exportiert werden.

+
+
+ +
+ +
+

Die Benutzeroberfläche von Schnappix ist primär für die Nutzung auf Tablets optimiert. Tablets bieten den Gästen auf Events einen größeren Bildschirm als Vorschau-Spiegel und eine angenehmere Bedienung für den Sticker-Editor.

+
+
diff --git a/features.html b/features.html index dad9a18..7ee6355 100644 --- a/features.html +++ b/features.html @@ -26,7 +26,6 @@ FAQ Feedback Hub Admin - Impressum

Admin Panel