diff --git a/module.json b/module.json index ec6ca33..383b0f4 100644 --- a/module.json +++ b/module.json @@ -2,7 +2,7 @@ "id": "kosmos-storage-audit", "title": "Kosmos Storage Audit", "description": "Analyzes media references and risky storage locations across Foundry data and public roots.", - "version": "0.0.9", + "version": "0.0.10", "compatibility": { "minimum": "13", "verified": "13" diff --git a/scripts/adapters/foundry-runtime.js b/scripts/adapters/foundry-runtime.js index 726d686..b22fa60 100644 --- a/scripts/adapters/foundry-runtime.js +++ b/scripts/adapters/foundry-runtime.js @@ -2,7 +2,11 @@ import { analyzeStorage } from "../core/analyzer.js"; import { isMediaPath, normalizePath } from "../core/path-utils.js"; async function* walkFilePicker(storage, target = "", onProgress = null) { - onProgress?.({ phase: "files", label: format("KSA.Progress.BrowseStorage", { storage, path: target || "/" }) }); + onProgress?.({ + phase: "files", + label: format("KSA.Progress.ScanFiles"), + currentSource: format("KSA.Progress.BrowseStorage", { storage, path: target || "/" }) + }); const result = await FilePicker.browse(storage, target); for (const file of result.files ?? []) { const path = normalizePath(file); @@ -83,7 +87,11 @@ async function* packagePackEntries(onProgress = null) { const ownerType = pack.metadata.packageType; const ownerId = pack.metadata.packageName; if (!["module", "system"].includes(ownerType) || !ownerId) continue; - onProgress?.({ phase: "sources", label: format("KSA.Progress.ReadPack", { pack: pack.collection }), currentSource: pack.collection }); + onProgress?.({ + phase: "sources", + label: format("KSA.Progress.ReadReferences"), + currentSource: format("KSA.Progress.ReadPack", { pack: pack.collection }) + }); const documents = await pack.getDocuments(); for (const document of documents) { yield { diff --git a/scripts/apps/audit-report-app.js b/scripts/apps/audit-report-app.js index 1c40caf..b6891ff 100644 --- a/scripts/apps/audit-report-app.js +++ b/scripts/apps/audit-report-app.js @@ -120,8 +120,6 @@ export class StorageAuditReportApp extends foundry.applications.api.ApplicationV ui.notifications.error(format("KSA.Notify.Failed", { message: error.message })); } finally { this.#loading = false; - const currentWidth = this.position?.width ?? 0; - if (currentWidth < 980) this.setPosition({ width: 980 }); await this.render({ force: true }); } } diff --git a/styles/audit.css b/styles/audit.css index 173b98c..08321d9 100644 --- a/styles/audit.css +++ b/styles/audit.css @@ -61,12 +61,14 @@ gap: 1rem; flex-wrap: wrap; font-size: 0.92rem; + align-items: center; } .storage-audit__progress-source { margin-top: 0.5rem; opacity: 0.8; word-break: break-word; + display: block; } .storage-audit__group-header { @@ -83,9 +85,9 @@ } .storage-audit__hero { - display: flex; - justify-content: space-between; - gap: 1rem; + display: grid; + grid-template-columns: minmax(0, 1fr) minmax(14rem, 16rem); + gap: 1rem 1.25rem; align-items: start; } @@ -121,7 +123,7 @@ flex-direction: column; gap: 0.75rem; align-items: stretch; - min-width: 12rem; + min-width: 0; } .storage-audit__actions .button { @@ -280,13 +282,12 @@ margin: 0 0.25rem; } -@media (max-width: 900px) { +@media (max-width: 1100px) { .storage-audit__hero { - flex-direction: column; + grid-template-columns: minmax(0, 1fr); } .storage-audit__actions { - min-width: 0; width: 100%; } }