Adds website theme serialization system

This commit is contained in:
Your Name committed 2026-07-06 06:52:18 +00:00
1 parent b932d65658
commit 8cd54459ec
29 files changed
+418 -4

No files matched your search

+28 -1
View File
@@ -22,7 +22,7 @@
<button class="tab-btn" [class.active]="activeTab() === 'underwriters'"
(click)="activeTab.set('underwriters')">Underwriters</button>
<button class="tab-btn" [class.active]="activeTab() === 'mobile-builds'"
(click)="activeTab.set('mobile-builds')">Mobile Builds</button>
(click)="activeTab.set('mobile-builds'); loadThemeJsonStatus()">Mobile Builds</button>
<button class="tab-btn" [class.active]="activeTab() === 'stats'" (click)="activeTab.set('stats')">Stats</button>
</div>
@@ -437,6 +437,33 @@
}
</section>
<section class="build-card">
<h3>Theme Export</h3>
@if (themeJsonStatus$ | async; as status) {
@if (status.exists) {
<div class="theme-status-ok">
<div><strong>theme.json</strong> — ready</div>
<div>Path: {{ status.path }}</div>
<div>Generated: {{ status.generated_at }}</div>
<div>Size: {{ status.size }} bytes</div>
</div>
} @else {
<div class="theme-status-missing">
<p><strong>theme.json</strong> not found at {{ status.path }}</p>
<p>Regenerate to create it from the current station config.</p>
</div>
}
<button class="btn btn-outline" (click)="regenerateThemeJson()"
[disabled]="themeJsonLoading$ | async">
{{ (themeJsonLoading$ | async) ? 'Regenerating...' : 'Regenerate' }}
</button>
} @else {
@if (themeJsonLoading$ | async) {
<p class="empty-row">Loading...</p>
}
}
</section>
<section class="build-card">
<h3>Create Build Request</h3>