Commit Graph

57 Commits

Author SHA1 Message Date
Kroonk
d9334dae00 Fix admin dashboard panel visibility
All checks were successful
Build & Push Docker Image to Gitea Registry / build-and-push (push) Successful in 19s
2026-05-20 19:18:18 +02:00
Kroonk
3ad76e841d Rework Photography admin dashboard
All checks were successful
Build & Push Docker Image to Gitea Registry / build-and-push (push) Successful in 30s
2026-05-20 19:13:51 +02:00
Kroonk
64fe667240 Fix Photography deploy metadata and SQLite migration
All checks were successful
Build & Push Docker Image to Gitea Registry / build-and-push (push) Successful in 33s
2026-05-20 18:54:10 +02:00
Kroonk
e6a11f2eed Improve folder access admin dashboard
All checks were successful
Build & Push Docker Image to Gitea Registry / build-and-push (push) Successful in 20s
2026-05-20 18:44:47 +02:00
Kroonk
c211d2bf9d Merge branch 'master' of github.com/Kroonk/Photography into master (Resolved docker-build.yml)
All checks were successful
Build & Push Docker Image to Gitea Registry / build-and-push (push) Successful in 2m6s
2026-05-20 16:40:05 +02:00
Kroonk
beb123b144 Optimize: Add robust Docker CLI install and native docker build to workflow 2026-05-20 16:39:41 +02:00
Tom Misch
a588bd36d6 Add admin dashboard card layout
All checks were successful
Build & Push Docker Image / build-and-push (push) Successful in 1m50s
2026-05-11 16:09:31 +02:00
Tom Misch
caf56b4117 Skip image build on GitHub mirror
All checks were successful
Build & Push Docker Image / build-and-push (push) Successful in 1m50s
2026-05-11 15:55:10 +02:00
Tom Misch
5266f36820 Merge GitHub updates into Gitea master
All checks were successful
Build & Push Docker Image / build-and-push (push) Successful in 1m53s
2026-05-11 13:03:58 +02:00
Tom Misch
0efe3066fc Reduce Docker image layer size
All checks were successful
Build & Push Docker Image / build-and-push (push) Successful in 1m52s
2026-05-11 11:17:24 +02:00
Tom Misch
6f879f4d48 Use existing registry user secret
Some checks failed
Build & Push Docker Image / build-and-push (push) Failing after 6m45s
2026-05-11 11:08:36 +02:00
Tom Misch
9512650a83 Use registry token for image push
Some checks failed
Build & Push Docker Image / build-and-push (push) Failing after 13s
2026-05-11 11:05:09 +02:00
Tom Misch
9a2a8dca9f Use sh shell for Gitea workflow
Some checks failed
Build & Push Docker Image / build-and-push (push) Failing after 16s
2026-05-11 11:02:32 +02:00
Tom Misch
cb5c0f2581 Install Docker CLI in build workflow
Some checks failed
Build & Push Docker Image / build-and-push (push) Failing after 27s
2026-05-11 11:00:00 +02:00
Tom Misch
e2c83f5fe4 Use Mischlabs container registry
Some checks failed
Build & Push Docker Image / build-and-push (push) Failing after 13s
2026-05-11 10:43:49 +02:00
Tom Misch
55f201da40 Add admin deployment sync
Some checks failed
Build & Push Docker Image / build-and-push (push) Failing after 14s
2026-05-11 10:39:02 +02:00
Tom Misch
a59457a8bb Secure image access and bootstrap admin
Some checks failed
Build & Push Docker Image / build-and-push (push) Failing after 1m50s
2026-05-11 10:35:05 +02:00
Kroonk
95f2847155 Fix Download: Saubere Trennung JSON (1-3) vs ZIP (4+) Response
- 1-3 Bilder: normales AJAX ohne blob, JSON-Response direkt parsen
- 4+ Bilder: nativer XMLHttpRequest mit blob fuer ZIP-Download
- Fehler-Handler zeigt jetzt den echten Server-Fehler an
  (vorher war xhr.responseJSON immer undefined wegen blob)
- ZIP-Fehler: Blob wird als Text gelesen und JSON geparst
- Download-Dateiname aus URL extrahiert statt leer

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-16 23:52:47 +02:00
Kroonk
b65ade8381 Selection-Mode: Gesamtes Bild klickbar, Checkbox nach unten-rechts
- Capture-Listener auf document statt #main (aggressivster Ansatz)
- stopImmediatePropagation blockt Poptrox komplett
- Checkbox von oben-links nach unten-rechts verschoben
  (wird nicht mehr von Toolbar ueberlagert)
- Nicht-ausgewaehlte Bilder leicht abgedunkelt (opacity 0.85)
- Ausgewaehlte Bilder volle Helligkeit + gruener Rahmen
- Mobile: Checkbox 2em gross fuer bessere Sichtbarkeit

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-16 23:43:33 +02:00
Kroonk
096d766358 Fix Bilder-Auswahl (Capture-Listener) + Mobile UX verbessern
- Selection-Click nutzt jetzt addEventListener mit capture:true
  auf #main, feuert garantiert VOR Poptrox und kann nicht entfernt werden
- Bild-Name/Ordner als data-Attribute auf .thumb gespeichert
- Mobile: Nav-Icons 1rem -> 1.3rem, bessere Touch-Targets
- Mobile: Selection-Checkboxen groesser (1.8em statt 1.4em)
- Mobile: Toolbar-Buttons mit mehr Padding

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-16 23:35:39 +02:00
Kroonk
75a5a596c5 Fix Selection-Toolbar: Position oben statt ueber Header, direktes Button-Binding
Toolbar wird jetzt am oberen Bildschirmrand angezeigt (Desktop),
damit sie nicht mehr den Header/Nav ueberlagert. Auf Mobile
bleibt sie unterhalb des Headers. Cancel/Download-Buttons nutzen
direktes Binding auf $toolbar statt Delegation auf document.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-16 23:29:28 +02:00
Kroonk
f4c106bd19 Fix Selection-Mode: Blockiere Lightbox wenn Auswahl aktiv
initSelectionMode wird jetzt VOR initPoptrox aufgerufen und nutzt
einen direkten Click-Handler auf a.image mit stopImmediatePropagation,
damit Poptrox im Selection-Mode nicht mehr die Lightbox oeffnet.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-16 23:17:03 +02:00
Kroonk
74f1da13a3 Mobile-Optimierung: 2-Spalten-Grid, Icon-only Nav, kompakte Toolbar
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-16 23:00:56 +02:00
Kroonk
159071a814 Bilder-Download: Mehrfach-Auswahl + Ordner-ZIP
- Selection-Mode: Bilder in Galerie per Klick auswaehlen
- 1-3 Bilder: einzeln herunterladen, 4+: als ZIP
- Ordner-Download: ganzen zugewiesenen Ordner als ZIP
- Sicherheit: Zugriffspruefung + Path-Traversal-Schutz
- archiver Package fuer Streaming-ZIP-Erstellung

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-16 22:47:58 +02:00
Kroonk
43539fa1a3 Ordner-Tabelle: Fehlerbehandlung und Nachladen wenn leer
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-16 22:17:52 +02:00
Kroonk
2c040b651d Ordner-Zuweisung als klickbare Tabelle statt Checkboxen
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-16 22:06:43 +02:00
Kroonk
2dcd559501 Fix leere Nutzertabelle: Fehler-Handler + DB-Fallback fuer loadUsers
- admin.js: .fail() Handler zeigt Fehlermeldung in der Tabelle statt stille Leere
- server.js: Fallback-Query (SELECT *) wenn role/created_at Spalten fehlen
- Server loggt DB-Fehler statt sie zu verschlucken

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-16 21:48:19 +02:00
Kroonk
c37aa3261c Verbessere Nutzer-Erstellung: JSON statt URL-encoded, Erfolgs-Feedback
- Sende Nutzer-Daten als JSON (konsistent mit anderen Admin-Endpoints)
- Zeige Erfolgs-Alert nach Erstellung
- Bessere Fehlermeldungen mit HTTP-Status
- Client-side Validierung vor dem Absenden

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-16 21:40:56 +02:00
Kroonk
e5e313924d Installiere JPEG/PNG/WebP Delegates fuer ImageMagick in Alpine
Alpine packt Format-Dekoder separat - ohne libjpeg-turbo, libpng, libwebp
kann magick keine JPG/PNG/WebP Dateien lesen ("no decode delegate").

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-16 21:35:08 +02:00
Kroonk
83058f80c6 Entferne Galerie-Menuepunkt (Watchtower-Deployment-Test)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-16 20:27:31 +02:00
Kroonk
ea15be0368 Fix Thumbnail-Generierung (magick statt convert) und DB-Migration fuer role-Spalte
- entrypoint.sh: ImageMagick 7 nutzt 'magick' statt 'convert', Auto-Detection
- database.js: Migration fuer role-Spalte bei bestehender DB (ALTER TABLE)
- main.js: Fallback auf Vollbild wenn Thumbnail fehlt (error handler)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-16 19:40:18 +02:00
Kroonk
d393630357 Update README to reflect Mischkomposition features and remove original creator info
Some checks failed
Build & Push Docker Image / build-and-push (push) Failing after 1m52s
2026-04-12 21:41:31 +02:00
Kroonk
5c81e93455 Isolate client workspaces from root portfolio and restrict Admin view to root images
Some checks failed
Build & Push Docker Image / build-and-push (push) Has been cancelled
2026-04-12 20:47:24 +02:00
Kroonk
eaa5945611 Wrap background-image url string in quotes to support poorly encoded original filenames 2026-04-12 20:18:22 +02:00
Kroonk
33db10f32d Change lightbox caption background to beige with grey text for readability 2026-04-12 19:19:59 +02:00
Kroonk
ab06284beb Implement Light Mode (Beige) via alternate SASS compilation and runtime switching 2026-04-12 19:11:23 +02:00
Kroonk
67044add84 Commit multi-replace docker-compose.yml 2026-04-12 19:08:16 +02:00
Kroonk
61bd512cd8 Deploy user requested features and fixes, add Galerie menu link. 2026-04-12 18:53:59 +02:00
Kroonk
941d041b5d Nutzerverwaltung-Upgrade: 3 Rollen, Ordner-Zuweisung, Passwort-Aenderung
- 3 Rollen: admin (voll), user (permanent), client (30 Tage Ablauf)
- Ordner-basierte Bildzuweisung statt Einzelbilder (user_folders Tabelle)
- Root-Bilder oeffentlich, Unterordner nur fuer zugewiesene Nutzer
- Passwort-Aenderung fuer alle Nutzer (Self-Service + Admin)
- Admin kann beliebige Admins erstellen/loeschen
- Thumbnail-Generierung fuer Unterordner
- Admin-Dashboard komplett ueberarbeitet

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-12 17:53:46 +02:00
Kroonk
a4f3cf738c Fix: Backend-Bugs, fehlende Galerie, Watchtower statt Docker-Socket
- express.urlencoded() hinzugefuegt (Login war komplett kaputt)
- Oeffentliche Galerie zeigt jetzt alle Bilder (statt leere Galerie)
- loadGallery() Aufruf in main.js eingefuegt (fehlte komplett)
- main.min.js neu gebaut mit gulp (Galerie-Code fehlte in minified Version)
- Watchtower Container in docker-compose.yml (auto-updates alle 5 Min)
- Docker-Socket und docker-cli aus Photography-Container entfernt
- runs.json Muell-Datei geloescht
- Brain.md und Feature-Request.md aktualisiert

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-12 17:22:49 +02:00
Kroonk
15e74f42c2 Align all internal, exposed, and mapped ports to 8090 universally per user request. 2026-04-12 16:47:54 +02:00
Kroonk
7509253ee7 Revert server port to 80 to match untouched user docker-compose.yml mappings indefinitely 2026-04-12 16:41:05 +02:00
Kroonk
567cb67763 Fix CRLF line endings on entrypoint script causing sh\r runtime crash on Alpine 2026-04-12 16:24:02 +02:00
Kroonk
21ae8c1599 Add Alpine build dependencies for sqlite3 native fallback 2026-04-12 16:02:31 +02:00
Kroonk
ad41d57f91 Convert admin.js to ES5 syntax to support legacy gulp uglify 2026-04-12 15:44:17 +02:00
Kroonk
5747813d2d Implement Node.js backend rewrite with SQLite authentication, admin dashboard and One-Click docker update 2026-04-12 15:40:46 +02:00
Kroonk
1c233db10e Add debug UI trace for empty parsed images array 2026-04-12 15:30:37 +02:00
Kroonk
98c39f4b83 Fix Nginx cache and force cache buster on JavaScript 2026-04-12 15:26:37 +02:00
Kroonk
4fc9f28a27 Rebuild JS to bundle cache fixes into main.min.js 2026-04-12 15:08:59 +02:00
Kroonk
41bfb91ce3 Fix Nginx file permissions and bypass browser cache 2026-04-12 14:58:25 +02:00