v0.1.30 — Policy-Bulk-Import gehaertet, macOS-Apps, Gruppen-Suche & Direkt-Zuweisung
Build & Release MSI / build-msi (push) Canceled after 0s

- Bulk-Import von Policies (Batches + Fortschritt, Fehler-Isolierung)
- Export/Import-Treue via Raw-JSON (-OutputType Json), null-Collections-Strip,
  Settings-Catalog-Reparatur + Korruptions-Erkennung, Git-Resolver
- macOS-Apps in Liste/Suche + Plattform-Filter
- "Gruppe"-Tab durchsucht alle Gruppen (Live-Suche) statt nur Praefix-Gruppen
- Bestehende Gruppe(n) direkt an Apps zuweisen inkl. Mehrfachauswahl
- Fix: Add-GraphAppAssignment merged bestehende Zuweisungen (/assign ersetzt sonst
  die komplette Liste) -> kein Ueberschreiben mehr, ein Request fuer alle Ziele

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-09-03 09:03:22 +02:00
co-authored by Claude Opus 4.8
parent 5c60eacc12
commit 446c53f409
9 changed files with 642 additions and 100 deletions
+61
View File
@@ -4020,6 +4020,67 @@ body.members-page {
color: var(--muted);
}
/* "Bestehende Gruppe" — Suchergebnis-Liste im Zuweisungs-Dialog */
.cg-existing-results {
margin-top: 8px;
max-height: 220px;
overflow-y: auto;
border: 1px solid var(--hairline-soft);
border-radius: var(--r-xs);
}
.cg-existing-results:empty { display: none; }
.cg-existing-item {
display: flex;
flex-direction: column;
gap: 2px;
width: 100%;
text-align: left;
padding: 8px 12px;
background: transparent;
border: none;
border-bottom: 1px solid var(--hairline-soft);
cursor: pointer;
color: inherit;
}
.cg-existing-item:last-child { border-bottom: none; }
.cg-existing-item:hover { background: var(--hover, rgba(127,127,127,0.08)); }
.cg-existing-item.is-selected { background: var(--accent-soft); }
.cg-existing-name { font-size: 13px; font-weight: 600; }
.cg-existing-desc { font-size: 11px; color: var(--muted); }
.cg-existing-empty { padding: 10px 12px; font-size: 12px; color: var(--muted); }
/* Ausgewaehlte Gruppen als Chips (Mehrfachauswahl) */
.cg-existing-chips {
display: flex;
flex-wrap: wrap;
gap: 6px;
margin-top: 8px;
}
.cg-chip {
display: inline-flex;
align-items: center;
gap: 6px;
padding: 3px 6px 3px 10px;
background: var(--accent-soft);
color: var(--brand-accent);
border-radius: 999px;
font-size: 12px;
font-weight: 600;
max-width: 100%;
}
.cg-chip-name { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 220px; }
.cg-chip-x {
border: none;
background: transparent;
color: inherit;
cursor: pointer;
font-size: 15px;
line-height: 1;
padding: 0 2px;
opacity: 0.75;
}
.cg-chip-x:hover { opacity: 1; }
.cg-mode {
display: flex;
align-items: flex-start;