Commit Graph
223 Commits
Author SHA1 Message Date
ClaudeandClaude Sonnet 5.5 d44b28368d Workers P2: Engine-Sprites (Raster, Figuren mit Posen, Text, Blasen)
Raster je Kontext in einem WeakMap (setGrid/px/tint), Figuren mit den Posen stand, type, coffee und sleep, Graustufe für nicht angeschlossene Worker, Warnzeichen, Text und Sprechblasen mit Klemmung in die Canvas-Breite. Aufzeichnender Test-Kontext in tests/unit/helpers/fakeCtx.mjs.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-18 01:50:40 +00:00
ClaudeandClaude Opus 5.5 f9b0cbc855 Website-Statistik: eigene Seite für die Analyse von webklar.com
Neue Mitarbeiterseite /statistik (für alle Mitarbeiter, Eintrag nach "Rechtliches"):
Kennzahlen mit Vergleich zur Vorperiode, Verlauf pro Tag (uPlot), Ranglisten für
Seiten, Herkunft, Länder, Geräte und Kontakt-Klicks, Banner-Zahlen und Heatmap-Link
(neuer Tab über openInNewTab). Anzeige-Logik als reine Helfer mit Tests.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-17 18:34:17 +00:00
ClaudeandClaude Sonnet 5.5 f11fd0bb25 Funktionen: News im Abo-Modell in Einrichtung ohne "Aktivieren (ohne Zahlung)" (Abschlussprüfung W2)
Das Portal antwortet darauf immer mit 409 bereits_eingeschaltet. Erkannt wird das Abo-Modell am Marker unlockedBy (abo, projekt) der Funktion; bei fehlendem Ticket steht "Ticket nachlegen" an der Stelle.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-16 21:17:35 +00:00
ClaudeandClaude Sonnet 5.5 06166221ec Funktionen: Abrechnung der Einrichtung wählen, Abo-Fehler anzeigen
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-16 13:55:05 +00:00
ClaudeandClaude Sonnet 5.5 dce7c3e53a Stundenkonto und Vorschuss am Einrichtungs-Ticket und beim Kunden
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-16 13:45:39 +00:00
ClaudeandClaude Sonnet 5.5 f0d39f2eee Arbeitsblätter: Abo-Vorgabe bei Einrichtungs-Tickets
Bei Tickets mit einrichtungAbrechnung 'abo' steht "Vom Abo-Stundenkonto abziehen" im Dialog von Anfang an auf an (auch wenn der Abo-Status erst nach dem Öffnen ankommt), beim Nachtragen der Zeit eines Git-Blatts wird countsToPlan beim ersten Eintragen gesetzt. 'projekt', Kommentare und Kunden ohne Wartungs-Abo bekommen keine Vorgabe; ein von Hand abgehakter Haken bleibt aus.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-16 13:36:34 +00:00
ClaudeandClaude Sonnet 5.5 58bb956645 Lead zum festen Kunden nur mit Kundenart
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-16 13:28:20 +00:00
ClaudeandClaude Sonnet 5.5 45b2b145b0 Kundenart: Prüfung, Texte und Segment-Schalter
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-16 13:11:52 +00:00
knsoandClaude Opus 5.5 0112c77afc Funktionen: Zustimmung in Textform auch per WhatsApp
Der Aktivieren-Dialog von Terminplaner, Webshop und Buchungskalender bietet als Weg zusätzlich WhatsApp an (Portal nimmt whatsapp an). Die Website-Analyse bleibt bei Chat oder E-Mail.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 15:03:37 +00:00
Claude dc4df16cab Buchungskalender: origin/test zusammenführen 2026-10-07 15:48:07 +00:00
ClaudeandClaude Sonnet 5.5 d01a804cea Kontrolle: Projektname in der Projektliste behält overflow-wrap anywhere
Mit break-word weitete ein langer Projektname ohne Umbruchstelle die Seite auf (Handy 390 px);
nur Beträge und Nebenzeilen wechseln zu break-word und nowrap.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-07 15:27:06 +00:00
ClaudeandClaude Sonnet 5.5 8faf61e8bb Kontrolle: fehlenden Import useOhneProjektAbs im Rechnungsdialog ergänzt
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-07 15:23:28 +00:00
knsoandClaude Opus 5.5 38020bfdff Buchungskalender: Abschluss – Zustimmung in Textform auch für den Buchungskalender
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-07 15:22:56 +00:00
ClaudeandClaude Sonnet 5.5 514d1c2d4e Kontrolle: Wortbruch in schmalen Spalten nur noch bei Bedarf, Beträge brechen nie um
overflow-wrap: anywhere wird break-word (Projektname 'Fachanwaltsseiten' bricht nicht mehr
mitten im Wort); Beträge und Stunden der Projektliste stehen auf white-space: nowrap,
damit das Eurozeichen nicht allein steht.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-07 15:20:05 +00:00
ClaudeandClaude Sonnet 5.5 4b184f744f Kontrolle: AB ohne Projekt im Rechnungsdialog für Anzahlung und Schluss wählbar
Der Server (rechnungsbau.js, baueAbRechnung) nimmt Anzahlung und Schlussrechnung ohne
Projekt an. Unter 'Ohne Projekt' lädt der Dialog die ABs des Kunden ohne Projekt und
ihre Rechnungen; frei bleibt die Vorgabe.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-07 15:19:35 +00:00
ClaudeandClaude Sonnet 5.5 79f230ea2c Kontrolle: Rechnungsdialog zeigt bei Stripe-Ausfall keine Beträge und keine Vorgabe
Bei stripeOk false steht 'Stripe nicht erreichbar – Beträge unbekannt' statt 'bereits berechnet
0,00 €', und es wird keine Rechnungsart vorgeschlagen.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-07 15:19:17 +00:00
ClaudeandClaude Sonnet 5.5 b556a459bb Kontrolle: Rechnungsdialog weist auf die fehlende Steuernummer hin
Nicht sperrender Hinweis (§ 34a UStDV), solange financeSettings.steuernummer leer ist;
die Einstellungen werden einmal geladen, bei einem Ladefehler erscheint kein Hinweis.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-07 15:17:29 +00:00
ClaudeandClaude Sonnet 5.5 dec7bea7d2 Kontrolle: Rechnungsdialog übernimmt das Zahlungsziel der gewählten AB
Bei Anzahlung, Schlussrechnung und Aufwand wird 'Zahlungsziel in Tagen' mit
auftrag.zahlungszielTage vorbelegt (sonst 14); eine Eingabe des Nutzers bleibt.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-07 15:17:08 +00:00
ClaudeandClaude Sonnet 5.5 b7b3e834f8 Merge auftraege/w2-auftraege: Auftrags-UI (Strang W2)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-07 14:48:55 +00:00
ClaudeandClaude Sonnet 5.5 af43c70288 Rechnungsdialog: alter InvoiceCreateModal entfällt, RechnungDialog ersetzt ihn überall
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-07 14:46:02 +00:00
ClaudeandClaude Sonnet 5.5 f89ecec8ff Arbeitsblätter: Abzeichen „abgerechnet (Rechnungsnummer)“ für alle, Warnung beim Ändern der Zeit
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-07 14:45:56 +00:00
ClaudeandClaude Sonnet 5.5 62b64bb357 Auftragsbestaetigung: Prueffunde behoben (Zeilenraster ohne Tabellenrahmen, Radiotexte umbrechen, Auswahl Projekt zuordnen nicht abgeschnitten)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-07 14:45:37 +00:00
ClaudeandClaude Sonnet 5.5 65526ca9b3 Rechnungstabelle: Spalten Projekt und Art, Knopf Rechnung schreiben öffnet den neuen Dialog
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-07 14:44:40 +00:00
ClaudeandClaude Sonnet 5.5 2aa4abeadb Rechnung schreiben: neuer Dialog mit Projektwahl, Zusammenfassung, Art, Aufwand mit Vorschau, Anzahlung und Schlussrechnung
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-07 14:43:17 +00:00
ClaudeandClaude Sonnet 5.5 746244a4a6 Auftragsbestaetigung: Dialog Schritt 4 (Vorschau, Entwurf speichern, Senden mit Rueckfrage und Sperre)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-07 14:36:59 +00:00
ClaudeandClaude Sonnet 5.5 5060d150ea Auftragsbestaetigung: Dialog-Schritte 1 bis 3 (Projekt, Auftrag, Zahlung und Termine)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-07 14:35:49 +00:00
ClaudeandClaude Sonnet 5.5 8ab78b7b2c Rechnungsdialog: Bausteine für Projektzusammenfassung, Positionen, Vorschauzeilen und Arbeitsblattauswahl
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-07 14:35:04 +00:00
ClaudeandClaude Sonnet 5.5 3650573445 Auftragsbestaetigung: Liste mit Status, Zusatzzeilen, Aktionen und Projekt zuordnen
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-07 14:34:47 +00:00
ClaudeandClaude Sonnet 5.5 cc95018083 Projektkonto: Projektliste mit Vereinbart, Berechnet, Noch offen und Zeit, Knöpfe Rechnung und Auftragsbestätigung
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-07 14:31:35 +00:00
ClaudeandClaude Sonnet 5.5 674cce26f0 Kundenart in der Kunden-Uebersicht und Steuernummer in den Finanz-Einstellungen (Helfer mit Tests)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-07 14:28:49 +00:00
knsoandClaude Opus 5.5 b2a0ff5d53 Buchungskalender: Funktionsanfragen und Rechtliches-Karten
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-07 14:26:18 +00:00
ClaudeandClaude Sonnet 5.5 99ab4bd47b Kundenseite: Reiter „Aufträge und Rechnungen“ zeigt den neuen Container, CustomerInvoices entfällt
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-07 14:25:28 +00:00
ClaudeandClaude Sonnet 5.5 8f90fdc05a Aufträge und Rechnungen: Container des Kundenreiters und vier Platzhalter für W1 und W2
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-07 14:25:22 +00:00
ClaudeandClaude Opus 5.5 d2883018fc Kunden: Reiter "Abgesagt", Absage eintragen und Warnung vor Doppelten
- Kundenliste mit Reiter "Abgesagt" (vorher nur unter "Alle"), rotes Abzeichen,
  Suche auch nach Telefon
- Kundenseite: "Absage eintragen" fuer Leads (Grund freiwillig); Vermerk
  "Abgesagt am TT.MM.JJJJ (Name): Grund" oben in die Notizen, offene
  Akquise-Tickets auf "Abgesagt"; roter Hinweis "nicht erneut anrufen" und
  "Wieder als Lead fuehren"
- Neuer Lead (jetzt mit Telefon) und Neuer Kunde gleichen live mit allen
  Kunden ab (auch archivierte/abgesagte): Name ohne Rechtsform, E-Mail,
  Firmen-Domain (ohne Freemailer), Telefon; Abgesagte rot und zuerst,
  Knopf heisst dann "Trotzdem anlegen"
- Uebersicht wird nach Speichern neu aufgebaut (key), damit kein alter
  Notizstand den Vermerk ueberschreibt

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-06 16:01:21 +00:00
ClaudeandClaude Sonnet 5.5 fa1ce2c4cb Design: Serverpuls-Projekttabelle (Sortierkoepfe und Zeilen als Buttons, Deltas als Farbe)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-06 14:43:53 +00:00
ClaudeandClaude Sonnet 5.5 6adeac1642 Design: Admin mit Tabelle, Mitarbeiter-Formular als Dialog, AdminPage.css neu
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-06 14:42:34 +00:00
ClaudeandClaude Sonnet 5.5 84186d1429 Design: Vertrags- und Versions-Formular als Dialoge, Fehler im Dialog
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-06 14:41:40 +00:00
ClaudeandClaude Sonnet 5.5 a9fa9f58e6 Design: Anbieter-Vertraege als Tabelle, Dringlichkeit nur im Terminfeld
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-06 14:41:40 +00:00
ClaudeandClaude Sonnet 5.5 8f5013aafc Design: Rechtstexte als Abschnitte mit Haarlinien, Aufklappzeile als Button
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-06 14:41:40 +00:00
ClaudeandClaude Sonnet 5.5 625efc7f18 Finanzen: Rechnung schreiben auf Dialog-Baustein (breit, Enter sendet nie, Esc schliesst Liste zuerst)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-06 14:38:00 +00:00
ClaudeandClaude Sonnet 5.5 3b26fcdf0b Finanzen: Buchung zuordnen auf Dialog-Baustein (Esc, Sperre, Vorschlaege als Zeilen)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-06 14:38:00 +00:00
ClaudeandClaude Sonnet 5.5 d1a1046969 Finanzen: Einstellungen, Bankzugang, Fixkosten und Bankrueckkehr ohne Karten
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-06 14:38:00 +00:00
ClaudeandClaude Sonnet 5.5 b5d27d5801 Finanzen: Rechnungen und Buchungen als Tabellen ohne Karten, Textaktionen, Blaetterleiste
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-06 14:38:00 +00:00
ClaudeandClaude Sonnet 5.5 bd1eccb4e3 Finanzen: Vorschau, Steuer und Abos ohne Karten, Container-Query auf Wrapper
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-06 14:38:00 +00:00
ClaudeandClaude Sonnet 5.5 6d015df6fa Finanzen: Seitenkopf, Statuszeile, Kennzahlen und Aufgaben ohne Karten; Kpi entfernt
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-06 14:38:00 +00:00
ClaudeandClaude Sonnet 5.5 a2a6d83b15 Design P6: Aktionszelle der Gutschriften-Liste mit nowrap, Handy bricht Prüfen/Ansehen nicht mehr in Buchstaben
Die letzte Zelle (Prüfen/Ansehen) wurde bei Handybreite auf etwa 19 px gequetscht, weil
.table.table-wrap td overflow-wrap:anywhere hat. Wie im E-Mail-Speicher bekommt die
Aktionszelle nowrap (Aktion 58 px, Kunde 139/124/120 px bei 390/375/360 px, kein Überlauf).

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-06 14:36:45 +00:00
ClaudeandClaude Sonnet 5.5 3e5839bee6 Design P6: Angebotsspalte mit Mindestbreite (col-offer), Statusspalte am Handy schmaler, Kundenspalte 7,5rem
Die Angebotstabelle brach bei 390 px gewoehnliche Woerter mitten im Wort
("Ansprechpartne-r", "Geschaeftsfuehru-ng"): die Spalte "Angebot" hatte keine
Mindestbreite und bekam nur etwa 103 px. Jetzt hat <th>Angebot</th> die Klasse
col-offer (min-width 8rem), col-status faellt bis 600 px auf 6rem, col-name
steigt auf 7,5rem ("Anlagentechnik" brach sonst in der Kundenspalte).
Bis 600 px summieren sich die Mindestbreiten auf 344 px in 358 px.

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