feat(settings): tidy Cleanup tab into sectioned compact tiles (pass 1)
The Cleanup + Maintenance sections had ~17 full-width stacked cards with long descriptions — a hunt to scan. Operator wants compact, sectioned, scannable tiles (2026-06-18: keep both tabs, group inside, compact tiles in a grid). New common/MaintenanceTile.vue: a compact expandable tile (icon + short title + one-line blurb collapsed; click the header to expand the full controls/preview/ result inline; keyboard-accessible button + focus ring; tints the icon, keeps a running task expanded). Cleanup tab (this pass) restructured into 3 sections — Import-filter audits (Min dimensions, Transparency, Single-color) / Duplicates & posts (Bare posts, Duplicate posts, Deduplicate videos, Gated-post previews) / Tags (Unused, Legacy, Reset content tagging, Standardize casing) — each a responsive grid of tiles. PostMaintenanceCard split into 2 tiles, TagMaintenanceCard into 4. Moved VideoDedupCard + GatedPurgeCard from the Maintenance tab here (both are destructive content cleanup). All card logic unchanged — only the chrome. Maintenance tab tiling is pass 2 (TODO noted in MaintenancePanel). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -1,16 +1,44 @@
|
||||
<template>
|
||||
<div class="fc-cleanup">
|
||||
<p class="fc-muted text-body-2 mb-4">
|
||||
Retroactive enforcement of import-filter rules. Each card scans the
|
||||
existing library for content that the current import filters would
|
||||
now exclude. Destructive — typed-token confirmation required.
|
||||
<p class="fc-muted text-body-2 mb-5">
|
||||
Retroactive enforcement and cleanup on the existing library — each tool
|
||||
previews before it acts, and destructive ones need a typed-token confirm.
|
||||
Click a tile to open its controls.
|
||||
</p>
|
||||
|
||||
<MinDimensionCard class="mb-4" />
|
||||
<TransparencyAuditCard class="mb-4" />
|
||||
<SingleColorAuditCard class="mb-4" />
|
||||
<PostMaintenanceCard class="mb-4" />
|
||||
<TagMaintenanceCard />
|
||||
<section class="fc-section">
|
||||
<h3 class="fc-section__title">Import-filter audits</h3>
|
||||
<p class="fc-section__hint">
|
||||
Scan for content the current import filters would now exclude.
|
||||
</p>
|
||||
<div class="fc-tile-grid">
|
||||
<MinDimensionCard />
|
||||
<TransparencyAuditCard />
|
||||
<SingleColorAuditCard />
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="fc-section">
|
||||
<h3 class="fc-section__title">Duplicates & posts</h3>
|
||||
<p class="fc-section__hint">
|
||||
Tidy post records, duplicates and locked-preview leftovers.
|
||||
</p>
|
||||
<div class="fc-tile-grid">
|
||||
<PostMaintenanceCard />
|
||||
<VideoDedupCard />
|
||||
<GatedPurgeCard />
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="fc-section">
|
||||
<h3 class="fc-section__title">Tags</h3>
|
||||
<p class="fc-section__hint">
|
||||
Remove unused / legacy tags and standardize the existing set.
|
||||
</p>
|
||||
<div class="fc-tile-grid">
|
||||
<TagMaintenanceCard />
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@@ -19,14 +47,31 @@ import MinDimensionCard from '../components/cleanup/MinDimensionCard.vue'
|
||||
import TransparencyAuditCard from '../components/cleanup/TransparencyAuditCard.vue'
|
||||
import SingleColorAuditCard from '../components/cleanup/SingleColorAuditCard.vue'
|
||||
import PostMaintenanceCard from '../components/settings/PostMaintenanceCard.vue'
|
||||
// Reuse existing TagMaintenanceCard (FC-3k) as-is — it already handles
|
||||
// preview + commit of prune-unused-tags via the admin store. Operator
|
||||
// confirmed 2026-05-26: don't duplicate into a new UnusedTagsCard.
|
||||
// MaintenancePanel drops its TagMaintenanceCard reference in the
|
||||
// SettingsView edit (Task 16) so this is now the sole rendering site.
|
||||
import VideoDedupCard from '../components/settings/VideoDedupCard.vue'
|
||||
import GatedPurgeCard from '../components/settings/GatedPurgeCard.vue'
|
||||
import TagMaintenanceCard from '../components/settings/TagMaintenanceCard.vue'
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
.fc-cleanup { max-width: 900px; }
|
||||
.fc-cleanup { max-width: 1100px; }
|
||||
.fc-section { margin-bottom: 28px; }
|
||||
.fc-section__title {
|
||||
font-size: 0.78rem;
|
||||
font-weight: 700;
|
||||
letter-spacing: 0.06em;
|
||||
text-transform: uppercase;
|
||||
color: rgb(var(--v-theme-accent));
|
||||
margin-bottom: 2px;
|
||||
}
|
||||
.fc-section__hint {
|
||||
font-size: 0.8rem;
|
||||
color: rgb(var(--v-theme-on-surface-variant));
|
||||
margin-bottom: 12px;
|
||||
}
|
||||
.fc-tile-grid {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
|
||||
gap: 14px;
|
||||
align-items: start;
|
||||
}
|
||||
</style>
|
||||
|
||||
Reference in New Issue
Block a user