feat: shared rendering, footer, terms of service, git deployment, consistency fixes

Rendering consistency:
- Create shared renderProtocolPill() and renderCollectionPill() functions
  used everywhere: library, collection detail, user profile, picker
- All protocol/collection modules now look identical across all contexts
- Profile page collections and protocols use the same shared renderers
- Protocol grids wrapped in .protocol-grid for consistent spacing

New features:
- Footer with CC-BY 4.0 license link and Terms of Service link
- Terms of Service page stating admin reserves right to remove content
- CC-BY 4.0 default license for submitted content

Deployment:
- README now recommends git clone for initial deployment
- README documents git pull for updates without data loss
- All nav links use #protocols instead of #library

Bug fixes (from previous commits, re-applied to current codebase):
- Delete redirect: reset currentRoute guard so navigate works after delete
- #protocols routing instead of #library
- forked_from: null no longer shows as clickable link
- Source field suppressed when it duplicates author
- Collections say 'curated by' instead of 'authored by'
- Breadcrumb home click works from detail pages
- Search debounce and double-navigation guard
This commit is contained in:
Protocolbot
2026-07-06 22:40:34 -06:00
parent d3077c78b0
commit 1148c19fd6
4 changed files with 169 additions and 107 deletions
+25 -2
View File
@@ -4,7 +4,7 @@
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Protocol Droid</title>
<link rel="stylesheet" href="/frontend/style.css">
<link rel="stylesheet" href="frontend/style.css">
<meta name="theme-color" content="#0a1929">
</head>
<body>
@@ -87,6 +87,25 @@
<h2>License</h2>
<p class="outcome">Hippocratic License (HL3-CORE) — do no harm. See <a href="https://firstdonoharm.dev/" target="_blank">firstdonoharm.dev</a>. Source code available on <a href="https://git.medlab.host/ntnsndr/protocol-droid" target="_blank">Gitea</a>.</p>
</div>
<div class="detail-section" id="seedSection" style="display:none">
<h2>Seed protocols</h2>
<p class="outcome">Load a starter set of 6 example protocols (Round Robin Check-In, Consent Decision-Making, Appreciative Apology, Temperature Reading, Dot Voting, Fishbowl Discussion) into your library.</p>
<div class="actions">
<button class="btn primary" id="seedBtn" onclick="loadSeedProtocols()">Load seed protocols</button>
</div>
</div>
</section>
<!-- TERMS OF SERVICE VIEW -->
<section class="view" id="view-terms" style="display:none">
<div class="detail-header">
<h1>Terms of Service</h1>
</div>
<div class="detail-section">
<p class="outcome">By submitting protocols or collections to this site, you acknowledge that the site administrator reserves the right to remove any submitted content at any time, for any reason, without notice.</p>
<p class="outcome" style="margin-top:12px">Submitted content is licensed by its authors under <a href="https://creativecommons.org/licenses/by/4.0/" target="_blank">Creative Commons Attribution 4.0 (CC-BY)</a> unless otherwise specified.</p>
<p class="outcome" style="margin-top:12px">This software itself is licensed under the <a href="https://firstdonoharm.dev/" target="_blank">Hippocratic License (HL3-CORE)</a>.</p>
</div>
</section>
<!-- PROTOCOL DETAIL VIEW -->
@@ -232,6 +251,10 @@
</main>
<script src="/frontend/app.js"></script>
<footer class="footer">
<span>Protocols licensed under <a href="https://creativecommons.org/licenses/by/4.0/" target="_blank">CC-BY 4.0</a> · <a href="#terms" onclick="navigate('terms');return false">Terms of Service</a></span>
</footer>
<script src="frontend/app.js"></script>
</body>
</html>