Commit Graph
243 Commits
Author SHA1 Message Date
ClaudeandClaude Sonnet 5.5 5e5093b7f2 Design P6: Kundenspalte in Angebote und Gutschriften mit Mindestbreite (col-name)
Die Kopfzelle "Kunde" bekommt in OfferList und CreditList die Klasse col-name
(min-width 7rem, die Regel gab es schon fuer den E-Mail-Speicher). Ohne sie
gab die Tabelle der Kundenspalte am Handy fast nichts ab (td bricht ueberall),
und Namen brachen mitten im Wort ("Fahrschul/e Roth", 79 px bei 390 px).
Kommentar der Regel nennt jetzt alle drei Tabellen.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-06 14:36:45 +00:00
ClaudeandClaude Sonnet 5.5 a505d38c96 Design P6: admin-areas.css geloescht, KOMPAT-Reste entfernt
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-06 14:36:45 +00:00
ClaudeandClaude Sonnet 5.5 6eae3c4aae Design P6: E-Mail-Speicher als Tabelle, Erledigt als Textlink mit data-storage-done
Kundenspalte mit Mindestbreite (col-name) und Erledigt/Bestellt ohne Umbruch, damit am Handy und bei 1440 px keine Woerter mitten im Wort brechen.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-06 14:36:45 +00:00
ClaudeandClaude Sonnet 5.5 568911967d Design P6: Angebots-Formular als Dialog (Esc, Sperre beim Speichern, Vorschlagsliste geprueft)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-06 14:36:45 +00:00
ClaudeandClaude Sonnet 5.5 2f6437ee42 Design P6: Angebote-Liste als Tabelle mit Reitern, Aktionen als Textlinks
Reiter statt Filterknoepfe, Statusspalte mit Badge, Stripe-Links, Mail-Zeile und Aktionen (E-Mail senden als Textlink, Zurueckziehen als danger), Spalten Angelegt und Gueltig bis nach Breite ausgeblendet. Mindestbreite der Statusspalte, damit Woerter nicht mitten im Wort brechen. Neues Angebot ohne Icon in der Werkzeugleiste, Hinweis als table-foot.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-06 14:36:45 +00:00
ClaudeandClaude Sonnet 5.5 b369a0edf9 Design P6: Gutschrift-Detail zweispaltig mit Abschnitten und kv-Listen, Verhalten unveraendert
Neuer Zustand busyAction (Speichert … / Sendet …) neben busy; Formularbloecke der Berechnung stehen in .form-stack (16 px) statt auf dem Altabstand .page .field.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-06 14:36:45 +00:00
ClaudeandClaude Sonnet 5.5 c96aa870a9 Design P6: Gutschriften-Liste als Tabelle mit Reitern und Spaltenprioritaet
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-06 14:36:45 +00:00
ClaudeandClaude Sonnet 5.5 cb7ac6edf6 Design P6: Chat-Liste als Haarlinien-Zeilen, Zaehler und Zurueck-Pfeil als Text, side-count entfaellt
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-06 14:36:45 +00:00
ClaudeandClaude Sonnet 5.5 ea528486aa Design P6: chat.css neu (Praefix .woms-chat, Umschaltung bei 860 px), Fehlerzeile ohne Icon
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-06 14:36:45 +00:00
ClaudeandClaude Sonnet 5.5 308bf545da Design P6: kleine Tabellen-, Dialog- und Autocomplete-Ergaenzungen
Block 'Kunden-Unterseiten (P6)' direkt vor KOMPAT: table-wrap bricht lange Woerter, aria-current-Zeile auf --bg-subtle, .cell-actions fuer Zeilenaktionen, Dialogfuss mit flex-wrap und umbrechenden Knoepfen, .autocomplete .input mit voller Breite.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-06 14:36:45 +00:00
ClaudeandClaude Sonnet 5.5 b81e53eef5 Design P6: reine Helfer fuer Gutschrift-, Angebots- und Speicherzeilen mit Tests
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-06 14:36:10 +00:00
ClaudeandClaude Sonnet 5.5 910fa0ff30 Projekte: Zugangsdaten-Block "Login wurde angelegt" mit Abstand zwischen den Textlinks
`.admin-credential-result span { display: block }` (0,1,1) schlug `.credential` (display: flex,
gap 8 px): "Anzeigen" und "Kopieren" standen ohne Abstand nebeneinander (gemessen 0 px bei 1440
und 390 px). Die Regel gilt jetzt nur noch fuer den Hinweistext im ersten Feld
(`.admin-credential-result > div > span`); die Textlinks stehen 8 px auseinander, der Wert
hat wieder die Textfarbe.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-06 14:34:43 +00:00
ClaudeandClaude Sonnet 5.5 f703c88c90 Projekte: Textlinks der Zugangswerte stehen in der Admin-Tabelle unter dem Wert
Die Tabelle "Mitarbeiterkonten" war bei 1440 px rund 80 px breiter als die Karte, der
Loeschen-Knopf lag hinter dem inneren Rollbalken. Kopieren/Anzeigen stehen jetzt unter
dem Wert (Spalte statt Zeile), nur in .admin-table.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-06 14:34:43 +00:00
ClaudeandClaude Sonnet 5.5 816d4552fa Projekte: Services als untereinander stehende Abschnitte mit Zeilen, Preview-Zustand als Badge
Das Kachelraster entfaellt, jede Art ist ein Abschnitt mit Beschreibung, Funktions-Badges und Zeilen. Der Preview-Punkt wird zum Badge "Preview: <Zustand>", Ticket und Zuordnen sind Textlinks. Zwei CSS-Zeilen (.services-stack) im Block Projekte (P5).

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-06 14:34:43 +00:00
ClaudeandClaude Sonnet 5.5 8b688f9df9 Projekte: Zuordnen-Assistent mit Abschnitten, Brotkrumen und im Text markierter Auswahl
Der Assistent bekommt Brotkrume und Untertitel im Seitenkopf, je Schritt einen Abschnitt, Auswahlzeilen als Knoepfe mit aria-pressed und dem Badge Ausgewaehlt, Felder mit Label-Verknuepfung und keine Icons oder Inline-Stile mehr. Logik, Zustaende und Texte bleiben unveraendert. Vier CSS-Zeilen im Block Projekte (P5) fuer Abstand der Schrittspalte und Kontrast der Kundennummer.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-06 14:34:43 +00:00
ClaudeandClaude Sonnet 5.5 860079f51d Projekte: Liste als Tabelle mit Reitern, Neu- und Bearbeiten-Dialog, Laden nur beim ersten Mal
- Seite mit PageHeader, Reitern (Zaehler aus projectTabs), Filterzeile und Tabelle (Rollen table/row/cell/columnheader, Zeilenklick ueber isRowActivation)
- Neues Projekt und Projekt bearbeiten als Dialog mit Field/htmlFor; Speichern im Fuss ueber das Attribut form
- Ladetext "Wird geladen …" nur beim ersten Laden (loadedOnce), danach bleibt die Tabelle beim Nachladen stehen
- global.css: Ticket-Zelle bricht lange IDs um, .faint in archivierten Zeilen ohne Kontrastverlust (Block Projekte (P5))

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-06 14:34:29 +00:00
ClaudeandClaude Sonnet 5.5 f1aac2ada9 Projekte: Projektabschnitt am Ticket als Abschnitt, Art-Frage als Dialog
Der Abschnitt nutzt Card, Button und Dialog statt Altklassen und Icons. TicketProjects laedt nur noch bei einer anderen Ticket-ID neu (load haengt an ticket.$id, der neueste Ticketstand kommt ueber ein ref), damit "Suche neue Repos ..." bei Status-, Zustaendig- oder Dringend-Aenderung nicht erneut blinkt.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-06 14:34:29 +00:00
ClaudeandClaude Sonnet 5.5 47cf82eb91 Projekte: Projektzeile am Ticket und beim Kunden ohne Kasten, Aktionen als Textlinks
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-06 14:34:29 +00:00
ClaudeandClaude Sonnet 5.5 8807af3f42 Projekte: Website-Analyse-Zeile ohne Farbliterale, Zustimmung als Dialog (Wortlaut unveraendert)
Zeile mit Statusbadge und Textlinks, Zustimmungsablauf im Dialog mit Fuss (Abbrechen, Einschalten), Ausschalten-Rueckfrage bleibt inline. Drei Zeilen CSS fuer die Textvorlage (details) im Dialog.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-06 14:34:29 +00:00
ClaudeandClaude Sonnet 5.5 154aea44a8 Projekte: Preview-Block ohne Kleinknoepfe, Statuspunkt als Badge, Log auf hellem Grund
Markup auf Bausteine (Button, Badge) und die Klassen pv-*, input, select, msg, link umgestellt; keine Inline-Stile, kein btn-sm, kein Farbliteral. Fehlertexte des Runners behalten ihren Zeilenumbruch ueber .pv-block .msg.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-06 14:34:29 +00:00
ClaudeandClaude Sonnet 5.5 92fef9d4a5 Projekte: Vorschau-, Gitea- und Zugangsknoepfe als Textlinks
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-06 14:34:29 +00:00
ClaudeandClaude Sonnet 5.5 fa2a66a58f Projekte: CSS-Block fuer Tabelle, Dialog-Inhalte, Preview-Block und Zuordnen
Neuer Block Projekte (P5) direkt vor KOMPAT: Projekttabelle (unter 860 px zweispaltiges Raster), Aktionszeile, Dialog-Formular, Preview-Block, Projektzeile am Ticket, Zuordnen-Assistent. Die alten Regeln .ticket-projects und .ticket-projects-assign .form-control entfallen.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-06 14:34:29 +00:00
ClaudeandClaude Sonnet 5.5 9da42d52c3 Projekte: Tonabbildung fuer Preview-, Analyse- und Projektstatus
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-06 14:34:20 +00:00
ClaudeandClaude Sonnet 5.5 5647412e34 Projekte: Reiter-Liste der sechs Ansichten als getestete Funktion
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-06 14:34:20 +00:00
ClaudeandClaude Sonnet 5.5 d2d4ad9cfb Projekte: Typ-, Hosting- und Aktionslogik als getestete Lib-Funktionen
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-06 14:34:20 +00:00
ClaudeandClaude Sonnet 5.5 bea91d9beb Reiterleiste scrollt den aktiven Reiter in den sichtbaren Bereich (Deep-Links am Handy)
Tabs fuehrt die Leiste nach dem Laden und bei jedem Reiterwechsel waagerecht nach, wenn der aktive Reiter nicht ganz sichtbar ist (zentriert, nur die
Leiste scrollt, nicht die Seite). Betrifft alle Seiten mit Tabs; bei 390 px sah man auf der Kundenseite mit ?tab=protokoll, abo oder gutschriften
keinen aktiven Reiter.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-06 14:33:02 +00:00
ClaudeandClaude Sonnet 5.5 b24121e34f Abo-Status und Protokoll ohne Karten und Icons, neuer Grundstil fuer admin-areas.css
Protokoll als Tabelle (Zeit, Mitarbeiter, Aktion) statt Liste mit festen Mindestbreiten, damit bei 390 px nichts mitten im Wort bricht. Abo-Status als dl.kv, Fehler als .msg.err. admin-areas.css: Haarlinien statt Kaesten, Kopfzeilen ohne Grossbuchstaben, Links ohne eigene Regel, Responsive-Bloecke am Dateiende.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-06 14:33:02 +00:00
ClaudeandClaude Sonnet 5.5 8c34e932c1 Kunden-Reiter Funktionen als Tabelle mit Textaktionen, Bestaetigung als eigene Zeile
Alle Funktionen als eine Tabelle: Projektzeile, Funktionszeilen mit Status, Ticket (ticketPath) und Textaktionen, Bestaetigung, Einbauanleitung und Zustimmung in Textform als Zeilen darunter, Webshop-Anfrage als Block unter der Tabelle. Alle .funktionen-*-Regeln aus admin-areas.css in den Block Kunden (P4), Handy mit Zweispalten-Zeilen.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-06 14:33:02 +00:00
ClaudeandClaude Sonnet 5.5 8ef47713b5 Kundenseite: Brotkrumen, Eyebrow, Uebersicht in zwei Spalten, Tickets-Reiter mit Links
Kopf mit Brotkrume, Eyebrow (Nummer, Stufe) und Abzeichen unter dem Namen, kein schwarzer Knopf. Uebersicht mit .kv-Zeilen in zwei Spalten, Rueckmeldungen als .msg, Tickets-Reiter als Tabelle mit echten Links (ticketPath) und Zeilenklick ueber isRowActivation. KundenansichtButton ohne Icon, Standard ist jetzt default. Block Kunden (P4) in global.css.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-06 14:31:42 +00:00
ClaudeandClaude Sonnet 5.5 7d4676121e Kundenliste als Tabelle mit Reitern und Zaehlern, Neuer Kunde und Neuer Lead als Dialoge
Zeilenklick nur ueber isRowActivation, Link.row-link in der ersten Zelle. CreateCustomerForm bleibt exportiert (Zuordnen-Assistent), dort entfaellt der Umschlag um den Dialog. KOMPAT-Regel .side-logo gestrichen.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-06 14:31:42 +00:00
ClaudeandClaude Sonnet 5.5 4b6ab7505a Kunden: Filter, Zaehler und Abzeichen als reine Funktionen (lib/customerList.js, Tests)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-06 14:31:42 +00:00
ClaudeandClaude Opus 5.5 35e2761e68 Merge origin/test (WOMS-Überarbeitung Planboard/Tickets) in feature/oeffnungszeiten
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-06 08:56:02 +00:00
ClaudeandClaude Sonnet 5.5 7a3bc2887e Planboard: Jahr im Zeitraum, Tagesköpfe einheitlich zweizeilig, Keine Termine lesbarer
- planboardSubtitle: das Ende des Zeitraums trägt das Jahr, der Anfang nur bei abweichendem Jahr; count ohne Wert zählt als 0
- dayLabels.full (aria-label der Spalte) mit Jahr
- ab 861 px steht der Wochentag in jedem Tageskopf über dem Datum (gleich hohe Köpfe, alle Termine beginnen auf einer Höhe)
- "Keine Termine" überall in --text-2, die Sonderregeln für Wochenende und Handy entfallen

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-06 06:36:46 +00:00
ClaudeandClaude Opus 5.5 f67192db52 Funktionen: K16-Warnung nennt bei den Öffnungszeiten keinen AVV
Die Warnung "K16 ging nicht raus" sprach von Leistungsbeschreibung und AVV. Öffnungszeiten live hat keinen AVV und
schickt keine Anhänge mit, die Warnung behauptet es dort jetzt nicht mehr: speicherStatus(antwort, key) liefert für
zeiten den Text K16_WARNUNG_OHNE_UNTERLAGEN, für alle anderen Funktionen unverändert K16_WARNUNG. Test für beide Wege.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-06 06:19:55 +00:00
ClaudeandClaude Opus 5.5 8319084930 Merge remote-tracking branch 'origin/test' into feature/oeffnungszeiten
Zusammenführung von TP2 und Webshop im Ticketsystem (origin/test 00fa229) mit Öffnungszeiten live. Die Funktionen
stehen in der Reihenfolge news, termine, shop, zeiten.

Konfliktdateien (6, erwartet war nur CustomerFunktionen.jsx; origin/test enthält seit der Vorbereitung auch die
beiden Webshop-Commits 0a2eab8 und 00fa229): scripts/setup-legal.mjs, src/components/customer/CustomerFunktionen.jsx,
src/lib/funktionenView.js, src/lib/teamApi.js, tests/setup-legal.test.mjs, tests/unit/funktionenView.test.mjs.

Entscheidungen: ersatzTicket-Behandlung der Zeiten und speicherStatus/K16_WARNUNG von TP2 bleiben beide in save()
(Abschalten der Zeiten zeigt abschaltMeldung, jede andere Aktion speicherStatus); Rechtliches-Karten Webshop (sort 10, 11)
vor der Karte der Öffnungszeiten (sort 12, DOCUMENTS hat 12 Einträge); siteKeyOf kennt termine, shop und zeiten; aktionen
behandelt shop und zeiten wie den Terminplaner (ticketbasiert, Abnahme der Zeiten mit hindernis); teamApi trägt Webshop-
und Zeiten-Aufrufe nebeneinander.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-06 06:19:42 +00:00
ClaudeandClaude Sonnet 5.5 416c79b3a6 Planboard: Mindestbreite der Tagesspalten mit eigenem Scrollen, Kontrast von Keine Termine am Wochenende
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-06 06:03:14 +00:00
ClaudeandClaude Sonnet 5.5 e54a30b006 Planboard: Wochenansicht ohne Karten (Tagesspalten, heute als Pille, Termine als Links)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-06 06:03:14 +00:00
ClaudeandClaude Sonnet 5.5 a0149137ea Planboard: Anzeigelogik fuer Kopfzeile, Tageskopf und Terminzeile mit Tests
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-06 06:03:14 +00:00
ClaudeandClaude Sonnet 5.5 dd0bef52e8 Planboard: Tests halten Datums- und Terminlogik fest (Altwerte, Stornierte, ohne Uhrzeit)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-06 06:03:14 +00:00
ClaudeandClaude Opus 5.5 f6b329b208 Tickets: nur eine gelesene Uhrzeitspanne bleibt im Termin zusammen, Rohtext bricht weiter frei um
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-06 06:03:14 +00:00
ClaudeandClaude Sonnet 5.5 ed8bdba015 Tickets: Abschlussfixes P2 - Termin ohne Umbruch in der Zeitspanne, Art in der Liste, Laden statt Leerzustand, Unterstuetzung entsperrt bei Fehler, Aufraeumen
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-06 06:03:14 +00:00
ClaudeandClaude Sonnet 5.5 504571c0ce Tickets: Ticketnummer bricht nicht um, Kontrast in der markierten Zeile, Suchfeld breiter
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-06 06:03:14 +00:00
ClaudeandClaude Sonnet 5.5 ff999ae1b3 Tickets: TicketCard, Dropdowns, statusClass und Altklassen (.tcard, .dropdown, .ticket-tab, .chevron) geloescht
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-06 06:03:09 +00:00
ClaudeandClaude Sonnet 5.5 30b3caee34 Tickets: Links auf Tickets nutzen ticketPath (Planboard, Zuordnen, Services, Funktionen)
Auch drei Kommentare mit dem Altlink-Muster umformuliert (useWorkorders, ticketListUrl, TicketsPage), sonst bleibt die Pruefung auf den Altlink nicht leer.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-06 06:03:09 +00:00
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