feat(persons): clean filterable paginated directory with crash fix
Rewrite /persons: server-side filter chips (type, family-only, has-documents) that AND within the clean reader default (familyMember OR documentCount > 0), a writer-only show-all/Zu-prüfen toggle, and reused Pagination. Extract PersonCard (fixes the null-lastName render crash and never shows a "?" initial — provisional/UNKNOWN/"?" entries get a neutral placeholder avatar + a text+icon "unbestätigt" badge, WCAG 1.4.1) and PersonFilterBar (44px aria-pressed chips, role=switch toggle with the count in its accessible name). The loader applies the reader restriction unless review=1 and surfaces a cheap needsReviewCount. i18n keys added for de/en/es. Refs #667 Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -130,6 +130,29 @@
|
||||
"persons_search_placeholder": "Namen suchen...",
|
||||
"persons_empty_heading": "Keine Personen gefunden.",
|
||||
"persons_empty_text": "Versuchen Sie einen anderen Suchbegriff.",
|
||||
"persons_empty_filtered": "Keine Personen für diese Filter.",
|
||||
"persons_filter_group_label": "Filter",
|
||||
"persons_filter_type_person": "Person",
|
||||
"persons_filter_type_group": "Gruppe",
|
||||
"persons_filter_type_institution": "Institution",
|
||||
"persons_filter_family_only": "Nur Familie",
|
||||
"persons_filter_has_documents": "Mit Dokumenten",
|
||||
"persons_toggle_show_all": "Alle anzeigen",
|
||||
"persons_toggle_needs_review": "Zu prüfen ({count})",
|
||||
"person_badge_unconfirmed": "unbestätigt",
|
||||
"persons_review_heading": "Personen prüfen",
|
||||
"persons_review_intro": "Vom Import erzeugte, noch nicht bestätigte Personen. Zusammenführen, umbenennen, bestätigen oder löschen.",
|
||||
"persons_review_action_merge": "Zusammenführen",
|
||||
"persons_review_action_rename": "Umbenennen",
|
||||
"persons_review_action_confirm": "Bestätigen",
|
||||
"persons_review_action_delete": "Löschen",
|
||||
"persons_review_action_cancel": "Abbrechen",
|
||||
"persons_review_action_save": "Speichern",
|
||||
"persons_review_empty": "Keine Personen zu prüfen.",
|
||||
"persons_review_delete_confirm_title": "Person löschen",
|
||||
"persons_review_delete_confirm_text": "Diese Person wird endgültig gelöscht. Dokumentverweise bleiben erhalten, verlieren aber diese Person.",
|
||||
"persons_review_delete_confirm_button": "Person löschen",
|
||||
"persons_review_merge_label": "Mit welcher Person zusammenführen?",
|
||||
"persons_new_heading": "Neue Person",
|
||||
"persons_section_details": "Angaben zur Person",
|
||||
"person_edit_heading": "Person bearbeiten",
|
||||
|
||||
@@ -130,6 +130,29 @@
|
||||
"persons_search_placeholder": "Search names...",
|
||||
"persons_empty_heading": "No persons found.",
|
||||
"persons_empty_text": "Try a different search term.",
|
||||
"persons_empty_filtered": "No persons match these filters.",
|
||||
"persons_filter_group_label": "Filter",
|
||||
"persons_filter_type_person": "Person",
|
||||
"persons_filter_type_group": "Group",
|
||||
"persons_filter_type_institution": "Institution",
|
||||
"persons_filter_family_only": "Family only",
|
||||
"persons_filter_has_documents": "With documents",
|
||||
"persons_toggle_show_all": "Show all",
|
||||
"persons_toggle_needs_review": "Needs review ({count})",
|
||||
"person_badge_unconfirmed": "unconfirmed",
|
||||
"persons_review_heading": "Review persons",
|
||||
"persons_review_intro": "Import-generated persons not yet confirmed. Merge, rename, confirm or delete.",
|
||||
"persons_review_action_merge": "Merge",
|
||||
"persons_review_action_rename": "Rename",
|
||||
"persons_review_action_confirm": "Confirm",
|
||||
"persons_review_action_delete": "Delete",
|
||||
"persons_review_action_cancel": "Cancel",
|
||||
"persons_review_action_save": "Save",
|
||||
"persons_review_empty": "No persons to review.",
|
||||
"persons_review_delete_confirm_title": "Delete person",
|
||||
"persons_review_delete_confirm_text": "This person will be permanently deleted. Document references are kept but lose this person.",
|
||||
"persons_review_delete_confirm_button": "Delete person",
|
||||
"persons_review_merge_label": "Merge into which person?",
|
||||
"persons_new_heading": "New person",
|
||||
"persons_section_details": "Person details",
|
||||
"person_edit_heading": "Edit person",
|
||||
|
||||
@@ -130,6 +130,29 @@
|
||||
"persons_search_placeholder": "Buscar nombres...",
|
||||
"persons_empty_heading": "No se encontraron personas.",
|
||||
"persons_empty_text": "Pruebe con otro término de búsqueda.",
|
||||
"persons_empty_filtered": "Ninguna persona coincide con estos filtros.",
|
||||
"persons_filter_group_label": "Filtro",
|
||||
"persons_filter_type_person": "Persona",
|
||||
"persons_filter_type_group": "Grupo",
|
||||
"persons_filter_type_institution": "Institución",
|
||||
"persons_filter_family_only": "Solo familia",
|
||||
"persons_filter_has_documents": "Con documentos",
|
||||
"persons_toggle_show_all": "Mostrar todo",
|
||||
"persons_toggle_needs_review": "Por revisar ({count})",
|
||||
"person_badge_unconfirmed": "sin confirmar",
|
||||
"persons_review_heading": "Revisar personas",
|
||||
"persons_review_intro": "Personas generadas por la importación aún sin confirmar. Fusionar, renombrar, confirmar o eliminar.",
|
||||
"persons_review_action_merge": "Fusionar",
|
||||
"persons_review_action_rename": "Renombrar",
|
||||
"persons_review_action_confirm": "Confirmar",
|
||||
"persons_review_action_delete": "Eliminar",
|
||||
"persons_review_action_cancel": "Cancelar",
|
||||
"persons_review_action_save": "Guardar",
|
||||
"persons_review_empty": "No hay personas por revisar.",
|
||||
"persons_review_delete_confirm_title": "Eliminar persona",
|
||||
"persons_review_delete_confirm_text": "Esta persona se eliminará de forma permanente. Las referencias de documentos se conservan pero pierden a esta persona.",
|
||||
"persons_review_delete_confirm_button": "Eliminar persona",
|
||||
"persons_review_merge_label": "¿Fusionar con qué persona?",
|
||||
"persons_new_heading": "Nueva persona",
|
||||
"persons_section_details": "Datos de la persona",
|
||||
"person_edit_heading": "Editar persona",
|
||||
|
||||
Reference in New Issue
Block a user