feat(domains): Kunden, Kontakte aus AutoDNS mit Zuordnung und Domainliste

- Kunden mit Markierung eigene Firma, Kontakte live aus AutoDNS (seitenweise, 60 s Zwischenspeicher), Zuordnung je System
- Kontakt anlegen (Person/Organisation) und einem oder mehreren Kunden zuordnen, nur mit Verwalten
- Domainliste mit Kunde (ueber den Inhaber-Kontakt), Inhaber, Ablaufdatum, Status; Filter und Gruppierung nach Kunde
- Mandantenschutz-Inventar um die beiden neuen Zugriffspaare ergaenzt

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-10-08 10:50:06 +02:00
parent 1f1c984184
commit 450218fe77
26 changed files with 3943 additions and 36 deletions
+102
View File
@@ -2058,6 +2058,9 @@
"notConfigured": "AutoDNS nicht eingerichtet"
},
"tabs": {
"domains": "Domains",
"contacts": "Kontakte",
"customers": "Kunden",
"settings": "Einstellungen"
},
"notConfigured": {
@@ -2104,6 +2107,105 @@
"remove": "Entfernen"
}
},
"common": {
"customerFilter": "Kunde",
"allCustomers": "Alle Kunden",
"unassigned": "Nicht zugeordnet",
"groupByCustomer": "Nach Kunde gruppieren",
"loading": "Wird geladen …",
"truncated": "Es werden die ersten 2000 Einträge angezeigt.",
"requestFailed": "Die Anfrage ist fehlgeschlagen. Bitte versuchen Sie es erneut."
},
"domainList": {
"search": "Domain suchen",
"refresh": "Aus AutoDNS neu laden",
"empty": "Bei AutoDNS wurden keine Domains gefunden.",
"emptyFiltered": "Keine Domain entspricht Ihrer Auswahl.",
"unassigned": "Nicht zugeordnet",
"cancelPending": "Kündigung vorgemerkt",
"groupCount": "{count, plural, one {# Domain} other {# Domains}}",
"columns": {
"domain": "Domain",
"customer": "Kunde",
"owner": "Inhaber",
"expires": "Ablaufdatum",
"status": "Status"
},
"status": {
"ACTIVE": "Aktiv",
"PENDING": "In Bearbeitung",
"HOLD": "Gesperrt (Registry)",
"LOCK": "Gesperrt"
}
},
"contactList": {
"intro": "Hier erscheinen alle Kontakte, die bei AutoDNS im gewählten System vorhanden sind. Ordnen Sie sie einem Kunden zu, damit Domains beim richtigen Kunden auftauchen.",
"search": "Kontakt suchen",
"refresh": "Aus AutoDNS neu einlesen",
"newContact": "Neuer Kontakt",
"empty": "Bei AutoDNS wurden keine Kontakte gefunden.",
"emptyFiltered": "Kein Kontakt entspricht Ihrer Auswahl.",
"groupCount": "{count, plural, one {# Kontakt} other {# Kontakte}}",
"columns": {
"name": "Name",
"organization": "Organisation",
"city": "Ort",
"email": "E-Mail",
"customer": "Kunde"
},
"selectContact": "Kontakt {name} auswählen",
"selectAllVisible": "Alle angezeigten auswählen",
"selectedCount": "{count, plural, =0 {Nichts ausgewählt} one {# ausgewählt} other {# ausgewählt}}",
"assignLabel": "Ausgewählte zuordnen",
"assignPlaceholder": "Kunde wählen …",
"removeAssignment": "Zuordnung entfernen",
"assign": "Zuordnen",
"assigned": "Die Zuordnung wurde gespeichert.",
"created": "Der Kontakt wurde bei AutoDNS angelegt."
},
"contactForm": {
"title": "Neuer Kontakt",
"type": "Typ",
"person": "Person",
"org": "Firma oder Organisation",
"organization": "Organisation",
"fname": "Vorname",
"lname": "Nachname",
"street": "Straße und Hausnummer",
"street2": "Zweite Adresszeile (optional)",
"pcode": "PLZ",
"city": "Ort",
"country": "Land",
"phone": "Telefon",
"phoneHint": "Internationale Schreibweise, z. B. +49 30 123456",
"email": "E-Mail",
"customer": "Kunde (optional)",
"noCustomer": "Kein Kunde",
"save": "Speichern",
"saving": "Speichern …",
"cancel": "Abbrechen",
"errors": {
"required": "Bitte füllen Sie dieses Feld aus.",
"email": "Bitte geben Sie eine gültige E-Mail-Adresse an.",
"phone": "Bitte verwenden Sie die internationale Schreibweise, z. B. +49 30 123456."
}
},
"customers": {
"intro": "Kunden fassen AutoDNS-Kontakte zusammen. Eine Domain erscheint beim Kunden ihres Inhabers. Ihre eigene Firma legen Sie ebenfalls als Kunden an und markieren sie.",
"addTitle": "Kunde anlegen",
"name": "Name",
"ownCompanyLabel": "Das ist unsere eigene Firma",
"ownCompany": "Eigene Firma",
"add": "Kunde anlegen",
"empty": "Es sind noch keine Kunden angelegt.",
"contactCount": "{count, plural, =0 {Keine Kontakte} one {# Kontakt} other {# Kontakte}}",
"edit": "Bearbeiten",
"save": "Speichern",
"cancel": "Abbrechen",
"delete": "Löschen",
"confirmDelete": "Kunde „{name}“ wirklich löschen?",
"confirmDeleteYes": "Endgültig löschen"
},
"errors": {
"request": "Die Anfrage ist fehlgeschlagen. Bitte versuchen Sie es erneut.",
"loadStatus": "Der Zustand der AutoDNS-Anbindung konnte nicht geladen werden."