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

O Operator
Diff

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

added on local at 2026-07-10 22:19:12

Added
+59
lines
Removed
-0
lines
Context
0
unchanged
Blobs
from
to 7bd551cce4d0
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> Monitor</span>
3 <h1 class="page-title">File changes</h1>
4 <p class="page-subtitle">Every file change captured on every watched path. Click a row to view the full diff and restore point.</p>
5</div>
6
7<form method="get" action="/file_changes.cgi" style="display:flex;gap:10px;align-items:center;padding:12px 14px;background:var(--bg-2);border:1px solid var(--border);border-radius:12px;margin-bottom:16px">
8 <span class="dim mono" style="font-size:11px;letter-spacing:1.4px;text-transform:uppercase">Range</span>
9 <select name="days" onchange="this.form.submit()">
10 <option value="1">Last 24h</option>
11 <option value="7" selected>Last 7 days</option>
12 <option value="30">Last 30 days</option>
13 <option value="90">Last 90 days</option>
14 <option value="365">Last year</option>
15 </select>
16 <span class="dim mono" style="font-size:11px;letter-spacing:1.4px;text-transform:uppercase;margin-left:12px">Path</span>
17 <input type="text" name="q" value="$q" placeholder="e.g. /etc/nginx" style="flex:1">
18 <button type="submit" class="btn">Filter</button>
19 <span style="margin-left:auto" class="dim">$total results</span>
20</form>
21
22<div class="module glow-teal">
23 <div class="module-head"><div class="left">
24 <div class="module-icon"><svg viewBox="0 0 24 24" width="14" height="14" fill="none" stroke="currentColor" stroke-width="2"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"/><polyline points="14 2 14 8 20 8"/></svg></div>
25 <div class="module-title">Changes captured</div>
26 <span class="module-subtitle">Content dedup via SHA-256 in BLOB_STORE. Timestamp-only changes marked so you can filter noise.</span>
27 </div></div>
28 <div class="module-body tight">
29 [if:$has_rows]
30 <table class="tbl">
31 <thead><tr>
32 <th style="width:100px">Status</th>
33 <th>File</th>
34 <th style="width:110px">30-day rhythm</th>
35 <th style="width:110px">Server</th>
36 <th style="width:90px">Blob</th>
37 <th style="width:170px">When</th>
38 </tr></thead>
39 <tbody>
40 [loop:@rows]
41 <tr>
42 <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>
43 <td class="mono" style="font-size:12px"><a href="$diff_url" style="color:var(--accent-hi);text-decoration:none">$file_name_h</a></td>
44 <td>$sparkline_svg</td>
45 <td class="dim">$server_name</td>
46 <td class="mono dim"><a href="$diff_url" style="color:var(--accent-hi);text-decoration:none">$blob_short</a></td>
47 <td class="mono dim">$date_time</td>
48 </tr>
49 [/loop]
50 </tbody>
51 </table>
52 [/if]
53 [if:!$has_rows]
54 <div style="padding:36px 14px;text-align:center;color:var(--text-dim);font-size:13.5px">
55 No file changes captured in this window. Configure a file monitor in <a href="[url:file_monitors]" style="color:var(--accent-hi)">File monitors</a> to begin capture.
56 </div>
57 [/if]
58 </div>
59</div>