Diff -- /var/www/vhosts/3dshawn.com/site1/TEMPLATES/site.html

O Operator
Diff

/var/www/vhosts/3dshawn.com/site1/TEMPLATES/site.html

added on local at 2026-07-12 00:48:44

Added
+144
lines
Removed
-0
lines
Context
0
unchanged
Blobs
from
to 89bfad940ccd
Restore this content →
Unified diff
Naive LCS-based line diff. Additions in emerald, deletions in rose. Both sides decompressed live from BLOB_STORE.
1<div class="page-head">
2 <span class="page-eyebrow"><span class="dot"></span> Site view</span>
3 <h1 class="page-title">$scan_name</h1>
4 <p class="page-subtitle">
5 <code class="mono dim">$scan_path</code>
6 &nbsp;&middot;&nbsp;on <strong>$server_name</strong> <span class="dim">($server_kind)</span>
7 &nbsp;&middot;&nbsp;retention: <strong>$retention_h</strong>
8 </p>
9</div>
10
11[if:$has_error]
12<div class="module glow-rose"><div class="module-body">$error_msg</div></div>
13[/if]
14
15[if:!$has_error]
16<div class="ds-guide">
17 <div class="dsg-icon">i</div>
18 <div>
19 <span class="dsg-title">Everything for this site, one screen.</span>
20 Filtered KPIs, 90-day rhythm, recent activity, hotspots to consider pinning, and the named releases scoped here. Use the quick-action chips to jump to <a href="$changes_url">full file changes</a>, <a href="$pin_url">bulk-pin hotspots</a>, or <a href="$export_url">CSV export</a> for this site alone.
21 </div>
22</div>
23
24<!-- KPIs -->
25<div class="dash-grid" style="grid-template-columns:repeat(4,1fr);margin-bottom:16px">
26 <div class="module glow-teal">
27 <div class="module-head"><div class="left"><div class="module-title">Last 24h</div></div></div>
28 <div class="module-body kpi kpi-teal"><div class="num">$kpi_24h</div><div class="lbl">changes captured</div></div>
29 </div>
30 <div class="module glow-emerald">
31 <div class="module-head"><div class="left"><div class="module-title">Last 7 days</div></div></div>
32 <div class="module-body kpi kpi-emerald"><div class="num">$kpi_7d</div><div class="lbl">changes captured</div></div>
33 </div>
34 <div class="module glow-sky">
35 <div class="module-head"><div class="left"><div class="module-title">Active files</div></div></div>
36 <div class="module-body kpi kpi-sky"><div class="num">$kpi_active</div><div class="lbl">distinct files, not deleted</div></div>
37 </div>
38 <div class="module glow-amber">
39 <div class="module-head"><div class="left"><div class="module-title">Lifetime</div></div></div>
40 <div class="module-body kpi kpi-amber"><div class="num">$kpi_all</div><div class="lbl">total captures ever</div></div>
41 </div>
42</div>
43
44<!-- 90-day timeline -->
45<div class="module glow-teal" style="margin-bottom:16px">
46 <div class="module-head"><div class="left">
47 <div class="module-title">Activity, last 90 days<span class="ds-help" data-help-title="This site only" data-help-body="Just this monitor's captures &mdash; unlike the main dashboard which stacks the whole portfolio."></span></div>
48 <span class="module-subtitle">Click any day to filter file changes to that date.</span>
49 </div></div>
50 <div class="module-body">
51 $timeline_svg
52 </div>
53</div>
54
55<div class="dash-grid" style="grid-template-columns:2fr 1fr;margin-bottom:16px">
56 <!-- Recent activity -->
57 <div class="module glow-teal">
58 <div class="module-head"><div class="left">
59 <div class="module-icon"><svg viewBox="0 0 24 24" width="14" height="14" fill="none" stroke="currentColor" stroke-width="2"><circle cx="12" cy="12" r="10"/><polyline points="12 6 12 12 16 14"/></svg></div>
60 <div class="module-title">Recent changes<span class="ds-help" data-help-title="Programmer view" data-help-body="Made an edit that got overwritten? Find it here, click <strong>Restore</strong> to write it back &mdash; or open the diff, copy the exact lines you need, and paste them into the current version manually. Every restore backs up the current file first."></span></div>
61 <span class="module-subtitle">Last 40 captures on this monitor. Click a row to open the diff. "Restore" writes the captured version back to disk.</span>
62 </div>
63 <a href="$changes_url" class="tr-chip" style="margin-left:auto">See all &rarr;</a>
64 </div>
65 <div class="module-body tight" style="max-height:640px;overflow:auto">
66 [if:$has_recent]
67 <table class="tbl">
68 <thead><tr>
69 <th style="width:90px">Status</th>
70 <th>File</th>
71 <th style="width:80px">Blob</th>
72 <th style="width:150px">When</th>
73 <th style="width:70px">Restore</th>
74 </tr></thead>
75 <tbody>
76 [loop:@recent]
77 <tr>
78 <td><span class="pill $status_pill">$status</span>[if:$is_ts_only] <span class="pill pill-mute" style="font-size:9px">ts</span>[/if]</td>
79 <td class="mono" style="font-size:11.5px"><a href="$diff_url" style="color:var(--accent-hi);text-decoration:none">$file_short</a></td>
80 <td class="mono dim">$blob_short</td>
81 <td class="mono dim"><span class="ts" data-ts="$ts_epoch" data-fmt="relative">$date_time</span></td>
82 <td>[if:$can_restore]<a href="$restore_url" class="tr-chip" style="padding:2px 8px;font-size:10.5px">Restore</a>[/if]</td>
83 </tr>
84 [/loop]
85 </tbody>
86 </table>
87 [/if]
88 [if:!$has_recent]<div style="padding:36px 14px;text-align:center;color:var(--text-dim)">Nothing captured yet.</div>[/if]
89 </div>
90 </div>
91
92 <!-- Hotspots + releases -->
93 <div>
94 <div class="module glow-amber" style="margin-bottom:16px">
95 <div class="module-head"><div class="left">
96 <div class="module-title">Hotspots (30d)</div>
97 <span class="module-subtitle">Files edited most often on this site. Pin them to freeze current state.</span>
98 </div>
99 <a href="$pin_url" class="tr-chip" style="margin-left:auto">Pin these &rarr;</a>
100 </div>
101 <div class="module-body tight">
102 [if:$has_hotspots]
103 <table class="tbl">
104 <thead><tr><th>File</th><th style="width:60px">Ct</th></tr></thead>
105 <tbody>
106 [loop:@hotspots]
107 <tr>
108 <td class="mono" style="font-size:11.5px"><a href="$diff_url" style="color:var(--accent-hi);text-decoration:none">$file_short</a></td>
109 <td class="mono" style="color:var(--accent-warn);font-weight:700">$ct</td>
110 </tr>
111 [/loop]
112 </tbody>
113 </table>
114 [/if]
115 [if:!$has_hotspots]<div style="padding:24px 14px;text-align:center;color:var(--text-dim);font-size:12.5px">No activity in the last 30 days.</div>[/if]
116 </div>
117 </div>
118
119 <div class="module glow-emerald">
120 <div class="module-head"><div class="left">
121 <div class="module-title">Releases &amp; stable versions<span class="ds-help" data-help-title="Versions for this site" data-help-body="Portfolio-wide releases + releases scoped to this site or its server. Stable-tier releases are highlighted in green. Click <strong>Restore</strong> to roll every pinned file in that release back to the pinned state."></span></div>
122 <span class="module-subtitle">Save a working / stable version below; roll back with one click.</span>
123 </div></div>
124 <div class="module-body tight">
125 [if:$has_releases]
126 <table class="tbl">
127 <thead><tr><th>Version</th><th style="width:70px">Tier</th><th style="width:70px"></th></tr></thead>
128 <tbody>
129 [loop:@releases]
130 <tr>
131 <td><strong>$label</strong><div class="dim" style="font-size:11px">$description</div></td>
132 <td><span class="pill $tier_pill" style="font-size:9.5px">$tier</span></td>
133 <td><a href="$restore_url" class="tr-chip" style="padding:2px 8px;font-size:10.5px">Restore</a></td>
134 </tr>
135 [/loop]
136 </tbody>
137 </table>
138 [/if]
139 [if:!$has_releases]<div style="padding:20px 14px;text-align:center;color:var(--text-dim);font-size:12px">No releases yet. <a href="/named_releases.cgi" style="color:var(--accent-hi)">Save one now</a>.</div>[/if]
140 </div>
141 </div>
142 </div>
143</div>
144[/if]