Suspects: Spalte Mail und Löschen direkt in der Tabelle

- email als Symbol mit Adresse im Tooltip, Klick öffnet mailto:
  (Spalte per migrateColumns nachgezogen)
- Löschen-Knopf am Zeilenende; Server erlaubt Löschen jetzt auch
  ohne vorheriges Archivieren

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
schakal00783
2026-09-29 12:33:32 +02:00
co-authored by Claude Opus 5.5
parent 6a452f1510
commit 78d6bef52c
7 changed files with 62 additions and 42 deletions
+4 -3
View File
@@ -36,14 +36,15 @@ siehe [13 Suspects](13-suspects.md).
1. **Erfassen:** in die leere Zeile unten schreiben (Name ist Pflicht). Die Zeile
speichert, sobald du sie verlässt oder Enter drückst. Vorhandene Zellen
einfach anklicken und ändern.
2. **Links:** LinkedIn und Website werden nach dem Speichern zum Symbol. Die
Adresse steht im Tooltip, ein Klick öffnet sie. Zum Ändern auf den kleinen
Stift daneben.
2. **Links:** Mail, LinkedIn und Website werden nach dem Speichern zum Symbol.
Die Adresse steht im Tooltip, ein Klick öffnet sie (Mail: das Mailprogramm).
Zum Ändern auf den kleinen Stift daneben.
3. **Nächster Impuls:** Wecker anklicken, Anzahl Tage eingeben, *Speichern*. Ist
der Tag erreicht, erinnert das CRM daran, die Person erneut anzusprechen.
*Kontakt aufgenommen* trägt heute als letzten Kontakt ein.
4. **Archivieren** (Kasten-Symbol am Zeilenende): die Zeile wandert nach
*Suspects → Archiv*. Dort *Zurückholen* oder *Endgültig löschen*.
**Löschen** (rotes Symbol) entfernt die Zeile sofort endgültig – nach Rückfrage.
5. **Lead erstellen** (Symbol daneben): die Lead-Karte öffnet sich mit allen
bekannten Daten. Titel eintragen, *Speichern* – der Lead steht dann unter
*Neuer Lead*, der Suspect im Archiv.
+10 -6
View File
@@ -21,6 +21,7 @@ flowchart LR
| Name | `name` | Pflicht – ohne Namen wird eine neue Zeile nicht gespeichert |
| Funktion | `role` | Freitext |
| Unternehmen | `company` | Freitext, **kein** Verweis auf `icon_companies` |
| Mail | `email` | nach dem Speichern nur ein Briefsymbol, Adresse im Tooltip, Klick öffnet das Mailprogramm |
| LinkedIn | `linkedin` | nach dem Speichern nur ein Symbol, URL im Tooltip |
| Website | `website` | ebenso; fehlt `https://`, ergänzt es der Server |
| Notiz | `notes` | einzeilig, volle Länge im Tooltip |
@@ -56,19 +57,21 @@ Das Lead-Symbol am Zeilenende öffnet die **Lead-Karte vorbelegt**
- Phase **Neuer Lead**, zuständig der angemeldete Benutzer
- **Unternehmen** und **Ansprechpartner** nur, wenn es im CRM einen mit gleichem
Namen gibt (Groß/klein, Rechtsform und Satzzeichen egal)
- **Notiz** mit allem aus der Zeile: Name, Funktion, Unternehmen, LinkedIn,
- **Notiz** mit allem aus der Zeile: Name, Funktion, Unternehmen, Mail, LinkedIn,
Website, letzter Kontakt, Notiz
- **Titel bleibt leer** – der ist Pflicht und muss eingetragen werden
Erst beim Speichern entsteht der Lead; danach wandert der Suspect ins Archiv
und trägt `lead_id` (im Archiv als **Lead** markiert). Abbrechen ändert nichts.
## Archiv
## Archiv und Löschen
Archivierte und in Leads übernommene Suspects, neueste zuerst. **Zurückholen**
stellt die Zeile wieder in die Tabelle, **Endgültig löschen** entfernt sie
(mit Rückfrage). Löschen geht nur aus dem Archiv – der Server antwortet sonst
mit `409`.
stellt die Zeile wieder in die Tabelle, **Endgültig löschen** entfernt sie.
Löschen geht auch direkt in der Tabelle (rotes Symbol am Zeilenende) – beide
Wege fragen vorher nach. Anfangs war Löschen nur aus dem Archiv möglich; auf
Wunsch vom 29.09.2026 gibt es den Knopf jetzt auch in der Tabelle.
## Tabelle `icon_suspects`
@@ -76,6 +79,7 @@ mit `409`.
| --- | --- | --- |
| `id` | INT | |
| `name`, `role`, `company` | VARCHAR(190) | |
| `email` | VARCHAR(190) | ohne `mailto:`; nachträglich per `migrateColumns` ergänzt |
| `linkedin`, `website` | VARCHAR(500) | immer mit Protokoll gespeichert |
| `notes` | TEXT | |
| `last_contact_on` | DATE | |
@@ -99,7 +103,7 @@ Alle unter `/api/suspects`, alle hinter `requireAuth`.
| POST | `/` | anlegen, `name` Pflicht |
| PATCH | `/:id` | beliebige Felder; `remind_in_days` (Zahl oder `null`), `archived`, `lead_id` |
| POST | `/:id/acknowledge` | `{ snooze_days }` verschiebt, sonst Kontakt heute + Impuls weg |
| DELETE | `/:id` | nur archivierte (`409` sonst) |
| DELETE | `/:id` | endgültig löschen (aus Tabelle oder Archiv) |
Die Zähler im Menü kommen aus `GET /api/dashboard`
(`counts.suspects_open`, `counts.suspects_archived`).