Diff -- /var/www/vhosts/3dshawn.com/site1/TEMPLATES/named_releases.html
Diff
/var/www/vhosts/3dshawn.com/site1/TEMPLATES/named_releases.html
added on local at 2026-07-10 18:57:32
Added
+57
lines
Removed
-0
lines
Context
0
unchanged
Blobs
from
to 6c6cb10fed88
to 6c6cb10fed88
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> Bookmark</span> | |
| 3 | <h1 class="page-title">Named releases</h1> | |
| 4 | <p class="page-subtitle">Retroactively bookmark a moment. "Before the schema refactor." "Customer verified this worked." "Before I fired the intern." Every blob referenced by a named release is protected from auto-purge, so restore-to-moment always works.</p> | |
| 5 | </div> | |
| 6 | ||
| 7 | <div class="module glow-emerald" style="margin-bottom:16px"> | |
| 8 | <div class="module-head"><div class="left"> | |
| 9 | <div class="module-icon"><svg viewBox="0 0 24 24" width="14" height="14" fill="none" stroke="currentColor" stroke-width="2"><path d="M20 13V7a2 2 0 0 0-2-2h-4l-2-3H6a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h5"/><path d="M14 19l2 2 4-4"/></svg></div> | |
| 10 | <div class="module-title">Create a bookmark</div> | |
| 11 | <span class="module-subtitle">Names the current moment. Everything captured up to now becomes restorable from this label forever.</span> | |
| 12 | </div></div> | |
| 13 | <div class="module-body"> | |
| 14 | <form method="post" action="/named_releases.cgi" style="display:grid;grid-template-columns:1fr 2fr 160px auto;gap:12px;align-items:end"> | |
| 15 | <input type="hidden" name="save" value="1"> | |
| 16 | <div><label class="dim" style="display:block;font-size:10.5px;letter-spacing:1.4px;text-transform:uppercase;font-weight:700;margin-bottom:5px">Name</label><input type="text" name="name" required placeholder="e.g. before-schema-refactor"></div> | |
| 17 | <div><label class="dim" style="display:block;font-size:10.5px;letter-spacing:1.4px;text-transform:uppercase;font-weight:700;margin-bottom:5px">Description</label><input type="text" name="description" placeholder="Optional context"></div> | |
| 18 | <div><label class="dim" style="display:block;font-size:10.5px;letter-spacing:1.4px;text-transform:uppercase;font-weight:700;margin-bottom:5px">By</label><input type="text" name="released_by" value="Operator"></div> | |
| 19 | <button type="submit" class="btn">Save bookmark</button> | |
| 20 | </form> | |
| 21 | </div> | |
| 22 | </div> | |
| 23 | ||
| 24 | <div class="module glow-teal"> | |
| 25 | <div class="module-head"><div class="left"> | |
| 26 | <div class="module-icon"><svg viewBox="0 0 24 24" width="14" height="14" fill="none" stroke="currentColor" stroke-width="2"><line x1="4" y1="9" x2="20" y2="9"/><line x1="4" y1="15" x2="20" y2="15"/><line x1="10" y1="3" x2="8" y2="21"/><line x1="16" y1="3" x2="14" y2="21"/></svg></div> | |
| 27 | <div class="module-title">All bookmarks</div> | |
| 28 | <span class="module-subtitle">$total bookmarks. Protected ones (default) survive auto-purge; unlocked ones are eligible for cleanup after the retention window.</span> | |
| 29 | </div></div> | |
| 30 | <div class="module-body tight"> | |
| 31 | [if:$has_rows] | |
| 32 | <table class="tbl"> | |
| 33 | <thead><tr> | |
| 34 | <th>Name</th> | |
| 35 | <th>By</th> | |
| 36 | <th style="width:130px">Protection</th> | |
| 37 | <th style="width:180px">Moment</th> | |
| 38 | </tr></thead> | |
| 39 | <tbody> | |
| 40 | [loop:@rows] | |
| 41 | <tr> | |
| 42 | <td><strong>$name</strong><div class="dim" style="font-size:11.5px;margin-top:2px">$description</div></td> | |
| 43 | <td class="dim">$released_by</td> | |
| 44 | <td><span class="pill $lock_pill">$lock_lbl</span></td> | |
| 45 | <td class="mono dim">$released_h</td> | |
| 46 | </tr> | |
| 47 | [/loop] | |
| 48 | </tbody> | |
| 49 | </table> | |
| 50 | [/if] | |
| 51 | [if:!$has_rows] | |
| 52 | <div style="padding:36px 14px;text-align:center;color:var(--text-dim);font-size:13.5px"> | |
| 53 | No bookmarks yet. Save your first one above. | |
| 54 | </div> | |
| 55 | [/if] | |
| 56 | </div> | |
| 57 | </div> |