Commit graph

150 commits

Author SHA1 Message Date
Bot
96687f3a53 Most Played: Top 10 statt Top 3 anzeigen
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-03 16:09:10 +01:00
Bot
52c86240af Feat: Drag & Drop MP3/WAV Upload mit Progress-Tracking
Backend:
- multer reaktiviert (war auskommentiert) mit diskStorage + Collision-Handling
- /api/upload (POST, admin-protected): bis zu 20 Dateien gleichzeitig
- MP3/WAV-Filter (50MB Limit), sofortige Hintergrund-Normalisierung nach Upload

Frontend:
- Globale window dragenter/dragleave/drop Listener mit Counter gegen false-positives
- Drag-Overlay: Vollbild-Blur + animierter Drop-Zone (pulsierender Accent-Border, bouncing Icon)
- Upload-Queue: floating Card bottom-right mit Per-Datei Progressbar + Status-Icons
  (sync-Animation beim Hochladen, check_circle grün, error rot)
- Auto-Refresh der Soundliste + Analytics nach Upload
- Auto-Dismiss der Queue nach 3.5s

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-01 22:15:07 +01:00
Bot
9130a205f0 Refactor: Backend-Optimierungen + Volume-Debounce
- /api/play delegiert an playFilePath() statt ~120 Zeilen Duplikat-Code (inkl. fehlende Loudnorm)
- safeSoundsPath() Helfer gegen Path-Traversal bei Admin delete/rename
- writePersistedStateDebounced() reduziert Disk-I/O bei Play-Countern (2s Debounce)
- /api/sounds nutzt listAllSounds() statt duplizierte Dateisystem-Scans
- /api/play-url vor catch-all Route verschoben (war unreachable in Produktion)
- Frontend Volume-Slider mit 120ms Debounce (weniger API-Calls beim Ziehen)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-01 21:08:38 +01:00
Bot
5a41b6a622 Add MP3 URL import and analytics widgets 2026-03-01 18:56:37 +01:00
Bot
e200087a73 Restore admin sound management UI in web app 2026-03-01 16:14:46 +01:00
Bot
f90401a009 Feat: Now-Playing serverseitig syncen + in Topbar verschieben
Backend:
- nowPlaying Map trackt aktuell gespielten Sound pro Guild
- SSE broadcast { type: 'nowplaying' } bei play und stop
- nowplaying im SSE-Snapshot für neue Clients
- playFilePath Helper broadcastet ebenfalls (Party Mode)

Frontend:
- SSE-Handler für nowplaying Events (sync über alle Clients)
- Now-Playing als Pill-Badge in der Topbar (rechts, neben Channel)
- Bottombar komplett entfernt
- Fade-in Animation und accent-farbige Pill
- --accent-rgb CSS Variable für alle Themes

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-01 16:00:22 +01:00
Bot
4661c366fb UI: Volume-Regler in Toolbar verschoben, Spielt-Anzeige persistent
- Volume-Control von Bottom-Bar in Toolbar verschoben (links von Random)
- Pill-förmiges Design passend zu Size-Slider
- "Spielt" Anzeige bleibt bis Stop oder neuer Sound sichtbar
- Anfangsbuchstaben nur beim ersten Sound jeder Gruppe

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-01 15:37:40 +01:00
Bot
5f0b06550e feat(web): show initial letter only on first sound of each group
Instead of displaying the letter (A, B, C...) on every sound card,
only show it on the first card that starts with that letter. Makes
the grid much cleaner and easier to scan.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-01 15:28:53 +01:00
Bot
da0ae2b9a6 feat(web): redesign frontend to Discord-style Soundboard UI
Complete rewrite of App.tsx and styles.css to match the Discord-style
soundboard mockup design:

- Topbar: logo, custom channel dropdown, centered live clock, connection status
- Toolbar: category tabs (Alle/Neu/Favoriten), search, Random/Party/Stop
  buttons, card size slider, theme color dots (5 themes)
- Main: responsive square card grid with initial letter avatars, ripple
  effects, playing animations, favorite stars, NEW badges
- Bottom bar: now-playing wave indicator, volume slider
- Context menu on right-click (play, favorite, admin delete)
- Party mode overlay, toast notifications, admin panel
- All API integration preserved (SSE, channels, volume, play, party)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-01 15:20:33 +01:00
Bot
e0bbe03851 feat(web): add button size toggle (S/M/L) in header
Adds a size selector in the header bar that allows users to choose
between Small, Medium, and Large sound buttons. Choice persists
via localStorage. Responsive breakpoints also respect the setting.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-01 02:03:04 +01:00
Bot
ba8c07f347 feat(web): complete frontend redesign — DECK theme system
Redesigned the entire frontend with a new "DECK" aesthetic:

- 5 distinctive themes: Midnight, Daylight, Neon, Vapor, Matrix
- Compact pill-shaped sound buttons with category color bars
- Tab navigation: All Sounds / Favorites / Recently Added
- Horizontal category filter chips with color coding
- Fixed bottom control bar: Stop, Random, Party, Volume
- Responsive layout optimized for 800+ sounds
- Syne + Outfit typography pairing
- Party mode with animated gradient effects
- Search with clear button, "Now Playing" indicator
- Admin panel as modal overlay
- Subtle dot grid background pattern on dark themes

Replaces the previous Apple Music-style card layout with a dense,
efficient grid that scales properly for large sound libraries.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-01 01:39:52 +01:00
Bot
187905d22b feat: complete apple ui redesign on stable 2026-02-26 13:47:54 +01:00
vibe-bot
c5ea914279 feat(ui-420): Mehr Brokkoli – von 6 auf 20, zufällige Position/Delay/Dauer 2025-08-10 22:43:54 +02:00
vibe-bot
d810c30f73 feat(ui): Rainbow-Theme mit animiertem Farbverlauf für Seitentitel; 420-Theme Titel in #22C55E; Klasse .site-title hinzugefügt 2025-08-10 21:38:07 +02:00
vibe-bot
1fb80209f3 chore(ui): Footer-Version entfernt; zukünftige Builds zeigen keine Version im UI 2025-08-10 21:32:34 +02:00
vibe-bot
914693df1b docs(changelog): add CHANGELOG 1.1.1; chore(version): bump to 1.1.1 and update badges/env; docs(feature): FEATURE_BRANCH.md Hinweise ergänzt 2025-08-10 21:23:13 +02:00
vibe-bot
032c269798 feat(volume): Live-Sync der Lautstärke über SSE (Broadcast bei Änderung + Snapshot); Frontend reagiert auf Updates 2025-08-10 21:15:39 +02:00
vibe-bot
ef67c712fe fix(ui): Lautstärke-Slider zentriert in Chrome/Edge/Brave (WebKit-Thumb margin-top, Track-Höhe vereinheitlicht) 2025-08-10 21:09:37 +02:00
vibe-bot
ef682e1827 fix(merge): Entfernt Konfliktmarker und Versionsanzeige im Nightly-Header 2025-08-10 20:18:26 +02:00
vibe-bot
dda30d48fa chore(version): Entfernt serverseitige Versions-/Build-Logik; Nightly-Badge bleibt im Header 2025-08-10 19:49:35 +02:00
vibe-bot
7a067aa95f feat(version): API /api/health liefert build/version; UI zeigt Server-Version im Nightly-Badge 2025-08-10 19:43:09 +02:00
vibe-bot
c86f4f5875 fix(sse): Live-Update der Channel-Auswahl in allen Tabs (Ref gegen stale closure) 2025-08-10 18:54:48 +02:00
vibe-bot
e83954624c feat(channel): Serverweite Channel-Auswahl mit Persistenz und SSE-Broadcast; Frontend passt Auswahl global an 2025-08-10 18:47:33 +02:00
vibe-bot
fdf0dea3e6 feat(ui): Fuzzy-Button neben Suche verschoben; Icon-only (blur_on) mit Tooltip und ARIA-Label 2025-08-10 18:39:43 +02:00
vibe-bot
4f14b0fded UX: Titel/Labels für Channel- und Theme-Auswahl hinzugefügt 2025-08-10 17:52:33 +02:00
vibe-bot
62890e0e85 Feat: Toggle für Fuzzy-Suche (default OFF), Server respektiert ?fuzzy=1/0 2025-08-10 17:51:07 +02:00
vibe-bot
d975114768 Feat: Serverseitige Fuzzy-Suche für /api/sounds und Client-Filter vereinfacht 2025-08-10 02:59:25 +02:00
vibe-bot
6f51c493ed Nightly: Revert Drag & Drop Upload (server endpoint + header handlers removed) 2025-08-10 02:16:09 +02:00
vibe-bot
9e7b572feb Nightly: Drag & Drop Upload im Header (Admin) + Server-Upload-Endpoint (/api/upload, MP3/WAV) 2025-08-10 01:47:17 +02:00
vibe-bot
124b7bf3e3 Release v1.1.0: Nightly -> main gemergt, Version erhöht; Admin-Kategorien/Badges, Partymode serverseitig mit SSE 2025-08-10 00:58:56 +02:00
vibe-bot
c1f4d0f3a0 Nightly: SSE-Client-Handling verbessert (separater Hook, Snapshot/Party-Set + Ping); UI synchronisiert State pro Guild 2025-08-10 00:11:38 +02:00
vibe-bot
21b4e9bd0c Nightly: Partymode-Status global per SSE /api/events Broadcast; Panic/Stop/Start senden Status an alle Clients 2025-08-09 23:20:13 +02:00
vibe-bot
23b90b5923 Nightly: Custom-Emoji-Feature entfernt (UI + Styles), nur 'Badges entfernen' bleibt 2025-08-09 22:55:11 +02:00
vibe-bot
9bb402edd3 Nightly: Partymode serverseitig Start/Stop Endpunkte + Panic stoppt global; Frontend triggert Party-Start/Stop 2025-08-09 22:43:13 +02:00
vibe-bot
442c42ef23 Nightly: Rainbow-Flash entfernt Soundbutton-Animation deaktiviert 2025-08-09 22:02:51 +02:00
vibe-bot
9cf1b6d26c Nightly: Emoji-Picker auf Twemoji umgestellt (SVG via CDN) zuverlässige Darstellung statt fehlender System-Emoji 2025-08-09 22:00:57 +02:00
vibe-bot
64ae191d96 Nightly: Emoji-Fonts fix Emoji-Picker nutzt Color-Emoji-Font-Stack; Noto Color Emoji vorab geladen 2025-08-09 21:44:52 +02:00
vibe-bot
191cf43ec8 Nightly: Rainbow-Flash stabil State-basierte Klasse statt direct classList (verhindert fehlendes Repaint) 2025-08-09 21:41:24 +02:00
vibe-bot
60a0ac3a82 Nightly: Emoji-Picker als Portal (document.body) mit sehr hohem z-index keine Überdeckung durch Sounds, korrekte Position 2025-08-09 21:36:06 +02:00
vibe-bot
9789a5e931 Nightly: Rainbow-Flash verlängert auf 2s (Animation + Timeout angepasst) 2025-08-09 21:34:16 +02:00
vibe-bot
3d9e03da57 Nightly: Emoji-Picker fix als fixed Overlay neben Button (hoher z-index) statt überlagertem Inline-Panel 2025-08-09 21:29:11 +02:00
vibe-bot
9cedc3ce96 Nightly: Rainbow-Flash fix React-Event verwenden (e.currentTarget) statt globalem event 2025-08-09 21:27:02 +02:00
vibe-bot
f50c354ab2 Nightly: Rainbow-Theme Soundbutton erhält 1s Regenbogen-Flash beim Klick (analog Partymode) 2025-08-09 21:18:01 +02:00
vibe-bot
49a4407bba Nightly: Partymode-Intervall verkürzt auf 3090 Sekunden (sofort + Folgeintervalle) 2025-08-09 21:14:44 +02:00
vibe-bot
85a148d45f Nightly: Badge-Entfernen ohne Modal neuer Endpoint /badges/clear und UI-Button 'Badges entfernen' 2025-08-09 21:12:02 +02:00
vibe-bot
fae25d7578 Nightly: CHAOS-Button in 'Partymode' umbenannt (Animation beibehalten) 2025-08-09 20:01:52 +02:00
vibe-bot
48a45515db Nightly: Kategorien-Buttons toggeln erneuter Klick deselektiert Kategorie 2025-08-09 19:58:58 +02:00
vibe-bot
9cac96d644 Nightly: Kategorien-Filter in zweite Zeile unter Favoriten/Alle/Neu/Most Played verschoben 2025-08-09 19:52:45 +02:00
vibe-bot
c417a76a84 Nightly: 'Alle Kategorien' Filter entfernt es gibt bereits 'Alle' 2025-08-09 19:50:23 +02:00
vibe-bot
4b661c4434 Nightly: Admin kann Custom-Badges auch entfernen (Emoji-Picker für Remove) 2025-08-09 17:32:38 +02:00