Changeset 952baf3 in Klonkt for src/views/partials/profile-header.ejs
- Timestamp:
- 08/07/2026 05:15:52 PM (5 weeks ago)
- Branches:
- main
- Children:
- ba76bf5
- Parents:
- f85b2c3 (diff), 0d5bd2c (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the(diff)links above to see all the changes relative to each parent. - File:
-
- 1 edited
-
src/views/partials/profile-header.ejs (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
src/views/partials/profile-header.ejs
rf85b2c3 r952baf3 160 160 </div> 161 161 <% } %> 162 <script> 163 (function () { 164 if (window.__pcmsFediFollowWired) return; 165 window.__pcmsFediFollowWired = true; 166 function modal() { return document.querySelector('.pf-follow'); } 167 function closeM() { var m = modal(); if (m) m.classList.remove('is-open'); } 168 function go() { 169 var m = modal(); if (!m) return; 170 var inp = m.querySelector('.pf-follow-input'), raw = inp ? inp.value : ''; 171 // Strip a full @user@host handle (and any scheme/path) down to the server host. 172 var server = String(raw || '').trim().replace(/^@?[^@\s]*@/, '').replace(/^https?:\/\//i, '').replace(/\/.*$/, '').trim(); 173 if (!server) { if (inp) inp.focus(); return; } 174 try { localStorage.setItem('pcmsFediServer', server); } catch (e) {} 175 var actor = location.origin + '/ap/users/' + encodeURIComponent(m.getAttribute('data-actor-slug') || ''); 176 location.href = 'https://' + server + '/authorize_interaction?uri=' + encodeURIComponent(actor); 177 } 178 document.addEventListener('click', function (e) { 179 var b = e.target.closest && e.target.closest('.profile-fedi-link'); 180 if (b) { e.preventDefault(); 181 var m = modal(); if (!m) return; 182 m.setAttribute('data-actor-slug', b.getAttribute('data-fedi-actor-slug') || ''); 183 var inp = m.querySelector('.pf-follow-input'); 184 try { if (inp && !inp.value) inp.value = localStorage.getItem('pcmsFediServer') || ''; } catch (e2) {} 185 m.classList.add('is-open'); 186 setTimeout(function () { if (inp) inp.focus(); }, 30); 187 return; 188 } 189 if (e.target.closest && e.target.closest('.pf-follow-go')) { e.preventDefault(); go(); return; } 190 if (e.target.closest && e.target.closest('.pf-follow-cancel')) { e.preventDefault(); closeM(); return; } 191 var open = document.querySelector('.pf-follow.is-open'); 192 if (open && e.target === open) closeM(); /* click on backdrop */ 193 }); 194 document.addEventListener('keydown', function (e) { 195 var m = document.querySelector('.pf-follow.is-open'); if (!m) return; 196 if (e.key === 'Escape') { closeM(); } 197 else if (e.key === 'Enter' && e.target.closest && e.target.closest('.pf-follow')) { e.preventDefault(); go(); } 198 }); 199 })(); 200 201 /* Profile summary: click the avatar to open a modal with photo + details. */ 202 (function () { 203 if (window.__pcmsLightboxWired) return; window.__pcmsLightboxWired = true; 204 function close() { var m = document.querySelector('.pf-summary.is-open'); if (m) m.classList.remove('is-open'); } 205 document.addEventListener('click', function (e) { 206 if (e.target.closest && e.target.closest('.pf-summary-close')) { e.preventDefault(); close(); return; } 207 var open = document.querySelector('.pf-summary.is-open'); 208 if (open && e.target === open) { close(); return; } /* click on backdrop */ 209 var t = e.target.closest && e.target.closest('.profile-photo[data-pf-summary]'); 210 if (!t) return; 211 e.preventDefault(); 212 var root = (t.closest && t.closest('#pcms-chrome')) || document; 213 var modal = root.querySelector('.pf-summary') || document.querySelector('.pf-summary'); 214 if (modal) modal.classList.add('is-open'); 215 }); 216 document.addEventListener('keydown', function (e) { if (e.key === 'Escape') close(); }); 217 })(); 218 </script> 162 <%# Het script van de profielkop staat in assets/js/mod/chrome.js: deze partial 163 zit in de OOB-chrome en wordt bij elke htmx-navigatie opnieuw ingevoegd 164 (shaer-bqr). %> 219 165 <% } %> 220 166
Note:
See TracChangeset
for help on using the changeset viewer.
![(please configure the [header_logo] section in trac.ini)](/chrome/site/your_project_logo.png)