fix(quick-260909-ab3): Matrix-Suche filtert nur noch die getroffene Achse

- Gemeinsamer useMemo ermittelt moduleHits/groupHits getrennt; trifft der
  Suchbegriff nur eine Achse, bleibt die andere vollstaendig sichtbar
  (WINDOWS #14) statt leerzulaufen
- Regressionsschutz fuer WINDOWS #6c erhalten: Spaltensuche findet eine
  importierte Gruppe weiterhin unter internem UND AD-Namen
- Neue Meldung adminModules.grants.noSearchResults, wenn ein Begriff weder
  Modul noch Gruppe trifft — Tabelle wird dann nicht gerendert
- Vier neue Testfaelle in grants-matrix.test.tsx vorab gegen den
  unveraenderten Bestand rot gelaufen (erwartete Ursachen bestaetigt)

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FYZcd3SSmo14QTqWx2KKzU
This commit is contained in:
2026-09-09 07:43:21 +02:00
parent dbeab8c38a
commit e8c2411e60
4 changed files with 131 additions and 11 deletions
+2 -1
View File
@@ -457,7 +457,8 @@
"emptyModules": "Es sind noch keine Module für diesen Mandanten aktiviert. Aktiviere zuerst ein Modul unter Module.",
"emptyModulesLink": "Zu Module",
"adminNote": "ADMIN und SUPER_ADMIN haben immer Zugriff auf alle aktiven Module — diese Matrix betrifft nur die Rolle USER.",
"saveError": "Freigabe konnte nicht gespeichert werden. Bitte erneut versuchen."
"saveError": "Freigabe konnte nicht gespeichert werden. Bitte erneut versuchen.",
"noSearchResults": "Kein Treffer für „{search}\" — weder bei den Modulen noch bei den Gruppen."
},
"activationDialog": {
"title": "Modul aktivieren: {module}",
+2 -1
View File
@@ -457,7 +457,8 @@
"emptyModules": "No modules are activated for this tenant yet. Activate a module under Modules first.",
"emptyModulesLink": "Go to Modules",
"adminNote": "ADMIN and SUPER_ADMIN always have access to all active modules — this matrix only applies to the USER role.",
"saveError": "Could not save grant. Please try again."
"saveError": "Could not save grant. Please try again.",
"noSearchResults": "No match for \"{search}\" — neither in the modules nor in the groups."
},
"activationDialog": {
"title": "Activate Module: {module}",