Commit Graph

13 Commits

Author SHA1 Message Date
4fd9c3c4e4 fix: Review-Modal pro answer_type korrekt anzeigen
- word: 'Positiv-Wörter' / 'Negativ-Wörter' (statt irreführendem Satz-Feld)
- yes_no: Ja/Nein-Antwort als Einzelwert statt leerem Satz
- text/question: Sätze wie bisher

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-05 21:01:36 +02:00
ae94721466 feat: Pro-Pair Übersetzen-&-Prüfen mit Review-Modal
- PairReviewModal: zeigt Frage/Positiv/Negativ in de/en/sv (Wörter bei
  word-Typ) zum Gegenprüfen, mit Reviewed/Blocked-Buttons; bei 409 wird
  die missing-Liste inline angezeigt.
- ContentCreation: pro Pair-Karte '🪄 Übersetzen & prüfen' (ruft
  /pairs/:id/translate, öffnet Modal); nach Review werden Pairs, Objekte
  und Bilder neu geladen.
- api.js: Fehler-Payload (z.B. { missing }) wird am Error durchgereicht.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-05 14:28:10 +02:00
7680f4f9e3 feat: TranslationHub, Pair-Review-Button (Action-Bar), reviewed für Bilder
- TranslationHub (/translations): Coverage-Matrix, Batch-Übersetzen pro Tabelle×Sprache
- Pair Status: StatusSelect ersetzt durch Action-Bar ✓Reviewed/↩Draft/🚫Block,
  Reviewed kaskadiert via /pairs/:id/review (Backend prüft 3-Sprachen-Vollständigkeit)
- Top-Nav: 'Übersetzungen' zwischen Inhalte und Audio
- Dashboard: Übersetzungen-Kachel
- tables.js: pictures-Status um 'reviewed' erweitert

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-03 07:36:20 +02:00
9eecee9ace feat: Veröffentlichen-Seite, Einstellungen (TTS-Stimmen), klarere Navigation
- Navigation: Dashboard/Inhalte/Audio/Veröffentlichen/Datenbank/Einstellungen mit Active-State
- Veröffentlichen (/publish): Pairs sortiert nach 'am wenigsten fehlt', 1-Klick-Publish je Sprache
- Einstellungen (/settings): TTS-Stimme + Parameter pro Sprache bearbeiten
- tts-settings in DB-Admin; Dashboard-Kacheln ergänzt

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-02 22:02:18 +02:00
29786c531b feat: complete tables config — all tables, all fields, boolean type
- Add missing tables: languages, users, blocklist, user-names, users-public
- Fix categories field names (name_de → titel_de/en/sv)
- Add missing fields: objects_created, sentence_sv, answer, negative_statement_id, etc.
- Fix pairs answer_type options (yes_no/text/question/word)
- Add boolean field type support in RecordModal

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-25 18:19:58 +02:00
e1d5390386 feat: Content Verwaltung — ContentHub + Object Creation
Adds a full Content Management section:
- Nav link "Content" in header (all pages)
- ContentHub at /content with 3 tiles (Object/Statement/Content Creation)
- ObjectCreation at /content/objects:
  - Top bar: ← → pagination through all "uploaded" pictures
  - Left panel (1/5): existing objects per picture with their words, + button to start draw mode
  - Center: image on dark bg with canvas overlay for polygon drawing
  - Right words panel (1/5): picture words + new object words (each with search/create)
  - Right toolbar (1/5): draw instructions, "Auswahl hinzufügen", numbered selections list, "Objekt speichern" (requires ≥1 selection + ≥1 object word)
- Canvas drawing: click=add point, dblclick=close polygon, live preview line to mouse cursor
- Selections stored as [{points:[{x,y},...]}] (relative 0-1 coords) in objects.selections JSONB
- Object saved with status "draft", linked picture + words

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-23 21:53:23 +02:00
211bd464d2 feat: picture modal hero panel with image preview
Adds a split-layout hero section at the top of the RecordModal
for pictures: left side shows the image preview (~40%), right side
shows status, design (both editable) and the linked words relation
manager inline. Remaining fields (blurhash, picture_link, metadata)
continue to appear in the sections below.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-22 08:54:03 +02:00
3c59713c25 Use server-side ?search= API instead of client-side filtering
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-21 22:50:53 +02:00
bdf3bd590e Fix relation search: fetch limit=500 instead of 20 for client-side filtering
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-21 22:48:52 +02:00
a02705734d Add relation manager: link/unlink records directly in modal
- RelationManager component: shows linked items as removable tags,
  live search to find and add new links (×-button to unlink)
- tables.js: full fetchRelated config with linkEndpoint + searchEndpoint
  for words↔pictures, words↔categories, objects↔words, objects↔pictures
- api.js: add apiLink, apiUnlink, apiDelete helpers

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-21 22:43:48 +02:00
a8ff541117 Add create modal for words and pictures tables
- + Button in TableView for tables with a create form (words, pictures)
- Words: form with titel_de/en/sv + difficulty_level → POST /words
- Pictures: design field + image uploader → POST /pictures then POST /pictures/:id/upload
- Image drag-drop area with preview before upload, sends multipart to Hetzner via API
- New record prepended to table on success
- apiPost + apiUpload helpers added to api.js

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-21 22:17:55 +02:00
e6c86a97fc Add RecordModal: row-click detail popup with inline editing
- Click any table row to open a full-detail popup
- Editable fields (text, textarea, select, number) with PATCH save
- Read-only display for IDs, timestamps, arrays
- Pictures table fetches words via /pictures/:id/words in modal
- Stop propagation on linked-field chips so they don't trigger modal
- apiPatch + apiFetchOne helpers in api.js
- editableFields + fetchRelated config in tables.js

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-21 21:53:45 +02:00
74082cd333 Initial commit: snakkimo CMT
React + Vite + Tailwind dashboard with:
- Login (JWT via snakkimo auth)
- Dashboard with Datenbankverwaltung + Contentverwaltung tiles
- Table overview with record counts (total, published, blocked)
- Table record viewer with text/status filters and linked field navigation

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-21 21:29:12 +02:00