v0.1.28 — Umbenennen beim Import, UI-Fixes, Geraete-Export repariert
Build & Release MSI / build-msi (push) Canceled after 0s
Build & Release MSI / build-msi (push) Canceled after 0s
Neu: - Umbenennen beim Import: Policy-Name vor dem Anlegen anpassbar (Dialog "Policies importieren"), richtiges Namensfeld je Typ Behoben: - Geraete-Export im App Report: entfernter sync-Endpoint getDeviceInstallStatusReport (400) -> async Export-Job DeviceInstallStatusByApp; ZIP/CSV-Logik in Get-IntuneReportRows - Darkmode-Kontrast im Zuweisungs-Dialog (Theme-Variablen statt fester Farben) - Dialog-Breite: lange Policy-Namen brechen um statt H-Scroll Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
+36
-2
@@ -5920,6 +5920,13 @@ function polExtractEnvelopes(parsed, fileName) {
|
||||
return [];
|
||||
}
|
||||
|
||||
let _polImportEnvelopes = [];
|
||||
|
||||
function polEnvName(env) {
|
||||
return env.policyName || (env.policy && (env.policy.name || env.policy.displayName)) || '(ohne Name)';
|
||||
}
|
||||
|
||||
// Dateien einlesen -> Rename-Dialog oeffnen (der eigentliche Import folgt dort).
|
||||
async function polHandleImportFiles(fileList) {
|
||||
const files = [...fileList];
|
||||
if (!files.length) return;
|
||||
@@ -5931,10 +5938,36 @@ async function polHandleImportFiles(fileList) {
|
||||
envelopes = envelopes.concat(polExtractEnvelopes(parsed, f.name));
|
||||
}
|
||||
if (!envelopes.length) return;
|
||||
if (!window.confirm(`${envelopes.length} Policy(s) als NEUE Policies im verbundenen Tenant anlegen?\n\nBestehende Policies werden dabei nicht verändert.`)) return;
|
||||
_polImportEnvelopes = envelopes;
|
||||
renderPolImportList();
|
||||
openModal('modalPolImport');
|
||||
}
|
||||
|
||||
function renderPolImportList() {
|
||||
const list = document.getElementById('polImportList');
|
||||
if (!list) return;
|
||||
list.innerHTML = _polImportEnvelopes.map((env, i) => {
|
||||
const type = env.exportType || env.policyType || '';
|
||||
return `<div class="pol-import-row">
|
||||
<input class="input pol-import-name" data-idx="${i}" value="${escapeHtml(polEnvName(env))}" placeholder="Policy-Name">
|
||||
<span class="pol-type-badge">${escapeHtml(POL_TYPE_LABELS[type] || type || 'Policy')}</span>
|
||||
</div>`;
|
||||
}).join('');
|
||||
const info = document.getElementById('polImportInfo');
|
||||
if (info) info.textContent = `${_polImportEnvelopes.length} Policy(s)`;
|
||||
}
|
||||
|
||||
async function polDoImport() {
|
||||
// Geänderte Namen übernehmen (nur wenn nicht leer und wirklich anders).
|
||||
_polImportEnvelopes.forEach((env, i) => {
|
||||
const input = document.querySelector(`.pol-import-name[data-idx="${i}"]`);
|
||||
const nn = input ? input.value.trim() : '';
|
||||
if (nn && nn !== polEnvName(env)) env.newName = nn; else delete env.newName;
|
||||
});
|
||||
closeModal('modalPolImport');
|
||||
setLoading('Importiere Policies…');
|
||||
try {
|
||||
const res = await api('/api/policies/import', { method: 'POST', body: { policies: envelopes }, timeoutMs: 180000 });
|
||||
const res = await api('/api/policies/import', { method: 'POST', body: { policies: _polImportEnvelopes }, timeoutMs: 180000 });
|
||||
const results = res.results || [];
|
||||
const ok = results.filter(r => r.success);
|
||||
const fail = results.filter(r => !r.success);
|
||||
@@ -5954,6 +5987,7 @@ async function polHandleImportFiles(fileList) {
|
||||
clearLoading();
|
||||
}
|
||||
}
|
||||
document.getElementById('polImportConfirm')?.addEventListener('click', polDoImport);
|
||||
|
||||
// =============================================================
|
||||
// Post-Import: Policies pro Stück Include-/Exclude-Gruppen zuweisen
|
||||
|
||||
Reference in New Issue
Block a user