Commit Graph
196 Commits
Author SHA1 Message Date
ClaudeandClaude Sonnet 5.5 2ecc0b627a Tickets: Liste als Tabelle mit Reitern, Zaehlern, Zeit-Spalte und URL-Zustand; Suche per Tipp-Pause
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-06 06:02:55 +00:00
ClaudeandClaude Sonnet 5.5 b544b83da0 Tickets: Ticket als eigene Seite mit Route /tickets/:ref/:tab? (Facts, Reiter, Dialoge verdrahtet)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-06 06:02:55 +00:00
ClaudeandClaude Opus 5.5 200d68f20d Tickets: vier Ticket-Dialoge auf Dialog (Esc, Sperre beim Speichern), Unterstuetzung als Feldblock
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-06 06:02:55 +00:00
ClaudeandClaude Opus 5.5 39dfb386ac Dialog: Esc nur fuer den obersten Dialog, Schliessen ohne Ereignis, Fokus zurueck auch nach autoFocus
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-06 06:02:55 +00:00
ClaudeandClaude Opus 5.5 6eb5ab3679 Tickets: Arbeitsblatt-Zeilen (.ws), Kennzahlen, Dringend-Schalter und Weitere Tickets im neuen Look
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-06 06:02:55 +00:00
ClaudeandClaude Opus 5.5 ab42918bbc Tickets: Hooks useWorkorder, Zaehler und Zeitsummen; useWorkorders verwirft veraltete Antworten
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-06 06:02:55 +00:00
ClaudeandClaude Opus 5.5 0b53fc825a Tickets: Zeit-Spalte (Bloecke, 3 parallel, 200 Zeilen), Ticket-Suche per woid oder ID, Anfrage-Zaehler
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-06 06:02:55 +00:00
ClaudeandClaude Opus 5.5 9fec381056 Tickets: Arbeitsblatt-Folgen und Zeilen-Logik als getestete Lib (Akquise-Ergebnis, Summen, Abo-Regel)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-06 06:02:54 +00:00
ClaudeandClaude Opus 5.5 32746727ed Tickets: Anzeige-Helfer fuer Termin, Faellig, Zustaendig und Status-Auswahl (Altdaten sicher)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-06 06:02:54 +00:00
ClaudeandClaude Opus 5.5 54fc44ed11 Tickets: ticketPath, Listenzustand in der URL (Reiter, Art, Dringend, Suche, limit), woid-Umleitung, Zeilenklick-Helfer
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-06 06:02:54 +00:00
ClaudeandClaude Sonnet 5.5 f3b73ca1dd Design: P1-Abschlussfixes - Spaltenversatz, Feldabstand, Admin-Breite, Fokusring, readonly, Kennzahlen
- Abschnittsabstand .page section + section entfaellt bei nebeneinander stehenden Abschnitten (Planboard, Finanzen, Rechtliches, Services, Kunde Uebersicht)
- .field bekommt im Altbestand (.page) wieder 12 px Abstand, neue Container (Dialog, field-row, kv) bleiben ohne
- .page.admin-page statt .admin-page, damit 1480 px Breite gegen .page gewinnt
- Fokusring von .tab und .nav-item innen, damit Scroll-Container ihn nicht abschneiden
- readonly bei .input und .textarea hinterlegt grau
- .kpi-grid (LiquidityHead) wieder nebeneinander bis P7

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-06 06:02:54 +00:00
ClaudeandClaude Sonnet 5.5 8d75f7346e Design: Rest aus P1 - Archivieren als roter Link, Planboard-Tokens und Scroll-Container, !important entfernt, Invalid-Ring im Fokus, Schublade nicht tabbar, Dialog-Fokus, Protokoll ohne Ueberlauf
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-06 06:02:54 +00:00
ClaudeandClaude Sonnet 5.5 f911dbcb03 Design: Pflicht-Fixes gegen helle Schrift und dunkle Flaechen, Diagrammfarben, Chat-Variablen
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-06 06:02:54 +00:00
ClaudeandClaude Sonnet 5.5 47a26fb9b2 Design: neues Login (weiss, Logo, Code-Schritte), Glitch-Hintergrund entfernt
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-06 06:02:54 +00:00
ClaudeandClaude Sonnet 5.5 988934552f Design: Dialog-Baustein (Esc, Sperre waehrend Speichern, Fokus, Bottom-Sheet)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-06 06:02:54 +00:00
ClaudeandClaude Sonnet 5.5 769ec70847 Design: Brotkrume ohne Link beim letzten Eintrag, Eingabefelder in Altcontainern wieder volle Breite
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-06 06:02:54 +00:00
ClaudeandClaude Sonnet 5.5 822387e4f7 Design: UI-Bausteine rendern die neuen Klassen (Button, Badge, Card, Kopf, Reiter, Stat)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-06 06:02:54 +00:00
ClaudeandClaude Sonnet 5.5 5a0307c9d6 Design: Geruest mit Textmenue, Schublade fuers Handy, Logo; Footer und Einklappen entfallen
Weisses Geruest (.shell, feste Seitenleiste, Dokument-Scroll), Menue als Textliste mit Zaehlern und Serverpuls-Punkt, Schublade mit Scrim und Esc auf dem Handy, Logo-Komponente und Favicon. Footer, Einklappen (lib/sidebar.js) und das alte Menue-CSS (.side*, .app-*) sind entfernt.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-06 06:02:54 +00:00
ClaudeandClaude Sonnet 5.5 c19e19968d Design: KOMPAT-Schicht fuer Altklassen, tote Regeln und !important entfernt
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-06 06:02:54 +00:00
ClaudeandClaude Sonnet 5.5 c18a29c748 Design: Bausteine aus dem Prototyp, gleichnamige Altregeln ersetzt
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-06 06:02:54 +00:00
ClaudeandClaude Sonnet 5.5 2e82be3c1a Design: weisse Tokens, Aliase, Basis und Hilfsklassen, Systemschrift
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-06 06:02:54 +00:00
ClaudeandClaude Haiku 4.5 bb110a734e Ticketstatus: statusTone fuer die neuen Badge-Toene
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-10-06 06:02:54 +00:00
ClaudeandClaude Opus 5.5 3179b9cb41 Plan P1: Menue-Icon-Pruefung erst in Task 5, genauere Pruefung auf doppelte Grundregeln
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-06 06:02:54 +00:00
ClaudeandClaude Opus 5.5 74e70c654f Plaene: Werkzeug-Vertrag nach P0-Review (Ausschluss per !, feste Uhr, missing-asset, bad-text)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-06 06:02:54 +00:00
ClaudeandClaude Opus 5.5 18e8f3bda5 LeadsPage und useLeads entfernt (seit Lead-Pause unbenutzt)
Ausgangswerte: 312 Tests, JS 680818 B, CSS 64433 B

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-06 06:02:54 +00:00
ClaudeandClaude Opus 5.5 e28162eabf node_modules nicht mehr im Repo (Deploy installiert ohnehin neu)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-06 06:02:54 +00:00
ClaudeandClaude Opus 5.5 9a60698a87 Plaene: TP2-Pruefung gegen den lokalen Branch (nie gepusht)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-06 06:02:54 +00:00
ClaudeandClaude Opus 5.5 4af78f0bad Plaene fuer das weisse Design (Uebersicht, P0-P10)
Umsetzungsplaene je Paket mit gemeinsamen Regeln (env.sh/check.sh,
Gate-Schema, CSS-Reihenfolge, TP2-Pruefung vor jedem Paket) und den
Schnittstellen aus P1. Gegen Spec und untereinander geprueft (zwei
Pruefer, Korrekturrunde, Nachpruefung).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-06 06:02:54 +00:00
ClaudeandClaude Opus 5.5 9d604aa550 Konzept: weisses Design fuer WOMS (Spec + Umbaukarte)
Steriles Weiss, kaum Rahmen, kaum Icons, Akzent Schwarz, Ticket als
eigene Seite. Pakete P0-P10, jedes einzeln ueber ein Tag live.
Gegen den Code geprueft (4 Pruefer + Gegenpruefung, 66 Befunde
eingearbeitet).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-06 06:02:54 +00:00
ClaudeandClaude Opus 5.5 00fa229235 Shop Review B I-8: Webshop ohne Zahlung nur mit Zustimmung in Textform aktivieren
Das Textform-Formular (Haken, Datum, Weg, Chat-Vorlage) gilt wie beim Terminplaner auch
fuer den Webshop, wenn das Portal im Feld shop textformNoetig meldet. Kaestchentext und
Chat-Vorlage nennen die Unterlagen des Webshops, die Fassung und die Erklaerungen, die das
Portal im Nachweis speichert.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-05 09:45:31 +00:00
ClaudeandClaude Opus 5.5 0a2eab85d5 Webshop: Funktionen-Karte mit Anfrage annehmen/ablehnen, Stripe-Stand, Kennzahlen und Rechtliches-Karten
Webshop als Funktion im Reiter Funktionen (Aktionen wie beim Terminplaner), Panel je Projekt mit Anfrage,
Entscheidung mit Begruendung, Stripe-Status und Zahlen; Karten Leistungsbeschreibung und AVV Webshop.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-05 08:47:19 +00:00
ClaudeandClaude Opus 5.5 4c3f67eadc Merge origin/test in feature/terminplaner-tp2 (Projekte: Anlegen, Archiv, Vorlage)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-05 07:12:04 +00:00
ClaudeandClaude Opus 5.5 878a530bd7 Terminplaner: Warnung im Dialog, wenn K16 mit den Unterlagen nicht rausging
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-05 07:05:44 +00:00
ClaudeandClaude Sonnet 5.5 72eedeb59c Terminplaner: Abschalten-Dialog nennt Löschung nach 30 Tagen
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-05 06:36:12 +00:00
ClaudeandClaude Sonnet 5.5 89f5bd4bc6 Rechtliches: Schlüssel höchstens 36 Zeichen
Der Test der Karten-Schlüssel prüft jetzt die Appwrite-Grenze für eigene
Dokument-IDs (36 Zeichen) statt 64.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-05 05:45:27 +00:00
ClaudeandClaude Sonnet 5.5 225e2f1b74 Rechtliches: Karten für Leistungsbeschreibung, AVV und Widerrufsbelehrung des Terminplaners
Das Setup-Skript legt drei weitere Karten an (sort 7 bis 9, liveUrl = Alias-Seiten
ohne Fassungsdatum). Es legt nur Karten an (idempotent); Ausfuehrung mit API-Key
und Upload der Versionen macht der Inhaber.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-05 05:08:42 +00:00
ClaudeandClaude Sonnet 5.5 45e5dc30dc Terminplaner: Staff-Aktivierung nur mit Zustimmung in Textform (Modus on), WOMS
Im Dialog "Terminplaner ohne Zahlung aktivieren?" erscheinen, wenn das Portal
termine.textformNoetig meldet, der Haken (Leistungsbeschreibung und AVV in
der Fassung, Ausschluss Gesundheitsbereich), das Datum der Zustimmung und der
Weg (Chat | E-Mail) sowie die Textvorlage fuer den Chat mit Kopierknopf
(versionierte Adressen aus dem Portal). "Ja" bleibt gesperrt, bis alles
stimmt (canSubmitTextform mit minDate = Fassung); der Rumpf traegt
textformDate und textformChannel. News und Abschalten bleiben unveraendert.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-05 05:07:37 +00:00
ClaudeandClaude Sonnet 5.5 857e001911 WOMS: Einbauanleitung als Panel mit Kopierknoepfen, Abnahme-Knopf und Ticket nachlegen
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-05 02:08:04 +00:00
ClaudeandClaude Sonnet 5.5 c0015544c4 WOMS: Aktionen und Anleitungs-Logik fuer den Terminplaner
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-05 01:54:24 +00:00
ClaudeandClaude Opus 5.5 603d08c9c2 Projekte: zur Vorlage gemachtes Projekt verschwindet nicht mehr
Vorlagen stehen absichtlich nur in der Ansicht "Vorlagen" (Admins). Nach
dem Speichern als Vorlage fiel das Projekt deshalb kommentarlos aus
"Aktive Projekte" (SHK-vorlage, 04.10.2026).

- nach dem Bearbeiten in die Ansicht wechseln, in der das Projekt jetzt
  steht, mit Hinweis ("steht jetzt unter Vorlagen")
- Suche zeigt Treffer in ausgeblendeten Ansichten (Vorlagen, Archiv) mit
  Klick zum Wechseln
- Hilfen viewShowing / matchesSearch / hiddenMatches in lib/projectList.js

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-04 20:01:38 +00:00
ClaudeandClaude Sonnet 5.5 6f0371283e Funktionen-Reiter: Abschaltgrund und Löschdatum des Terminplaners
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-04 18:44:23 +00:00
ClaudeandClaude Opus 5.5 c262268015 Projekte: neue Gitea-Repos beim Oeffnen der Projekte-Seite abholen; Review-Kleinigkeiten
- Projekte-Seite holt neue/archivierte Repos selbst ab (vorher bis zu 10 Minuten unsichtbar)
- Import-Drossel: nach einem Fehler sofort neuer Versuch
- Zuordnen-Assistent nennt den Status einer vorhandenen Preview
- Ticket "Neues Projekt": ungueltige Subdomain wird abgewiesen

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-04 13:33:40 +00:00
ClaudeandClaude Opus 5.5 f4c8b235b9 Projekte im Ticketsystem: Anlegen, Archiv und Anzeige repariert
- Neues Projekt (Projekte-Seite): Repo-Name blieb nach dem ersten
  Buchstaben der Subdomain stehen ("m" statt "musterfirma")
- Ticket "Projekt waehlen": archivierte Repos nach Flag ausblenden, nicht
  nach status (reaktivierte fehlten, archivierte wurden angeboten)
- Projektliste: "Aktive Projekte" + neue Ansicht "Alle inkl. Archiv";
  Liste wird auch nach einem Anlege-Fehler neu geladen
- Kundenauswahl: "Kein Kunde" entfernt Kunde und Ticket wirklich (mit
  Rueckfrage); beim Kundenwechsel bleibt kein fremdes Ticket haengen
- Zuordnen-Assistent ueberschreibt eine vorhandene Website nicht mehr
- Neues Projekt am Ticket bekommt die Art Website
- Umlaute in Subdomains wie im Portal (mueller statt m-ller)
- Preview-Block nur mit gespeicherter Subdomain; archivierte Projekte
  erst reaktivieren, bevor sie bearbeitet werden
- Repo-Import beim Aufklappen hoechstens einmal pro Minute

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-04 13:23:01 +00:00
ClaudeandClaude Opus 5.5 78bc99a73b Login nur fuer Mitarbeiter (Label), Kunden-Konten werden abgewiesen
Kunden haben Konten im selben Appwrite-Projekt und konnten sich mit ihrem
Portal-Passwort im Ticketsystem anmelden; dabei entstand sogar automatisch ein
employees-Eintrag.

- lib/staffAccess.js: Zugang nur mit Label "mitarbeiter" oder "admin"
- AuthContext: Konto ohne Label -> Sitzung sofort beenden, Hinweis aufs
  Kundenportal (Login, Neuladen, nach dem 2FA-Code); employees-Eintrag nur
  noch fuer Mitarbeiter
- setup-legal.mjs: Rechte nur fuer die Labels (ein erneuter Lauf oeffnet
  nichts mehr fuer "users")

Die eigentliche Sperre sind die Appwrite-Rechte (Kundenportal
scripts/mitarbeiter-zugang.mjs --rechte).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-03 10:54:16 +00:00
ClaudeandClaude Sonnet 5.5 65e9931f2c Terminplaner: Abschluss – Site-Key des Terminplaners im Funktionen-Reiter mit Kopierknopf
Die Zeile Terminplaner zeigt den siteKey aus der Antwort des Portals in kleiner Schrift mit fester
Breite und einem Kopierknopf (copyText aus CopyableCredential, mit Ersatzweg ohne Zwischenablage).
Damit braucht der Einbau (Schritt L4 des Pilots) keinen Datenbankzugriff mehr.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-03 01:49:23 +00:00
ClaudeandClaude Sonnet 5.5 426a5d6654 Funktionen-Reiter: News und Terminplaner je Projekt
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-02 23:57:03 +00:00
ClaudeandClaude Opus 5.5 36eb55b81b Sidebar: Projekt-Admin entfernt (Admin-Panel abgeschaltet)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-02 03:55:04 +00:00
ClaudeandClaude Opus 5.5 feda436936 Listen der Admin-Bereiche stapeln nach verfuegbarer Breite (Tablet quer, halbes Fenster)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-02 03:16:33 +00:00
ClaudeandClaude Opus 5.5 281c49d406 Abo-Angebote im Ticketsystem: Sammelliste, neues Angebot, Kunden-Reiter Abo & Angebote
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-02 03:05:12 +00:00
ClaudeandClaude Opus 5.5 109aef6805 Gutschriften im Ticketsystem: Sammelliste, Pruefung und Entscheidung, Kunden-Reiter
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-02 03:02:24 +00:00