Changeset 952baf3 in Klonkt for src/views/pages/post.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/pages/post.ejs (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
src/views/pages/post.ejs
rf85b2c3 r952baf3 147 147 </section> 148 148 <% } %> 149 <script> 150 (function(){ 151 if (window.__fediRemoteWired) return; window.__fediRemoteWired = true; 152 var current = null, currentBtn = null; 153 function close(){ if (current) { current.remove(); current = null; currentBtn = null; } } 154 function go(raw, uri){ 155 var d = (raw||'').trim().replace(/^@?[^@\s]*@/, '').replace(/^https?:\/\//i, '').replace(/\/.*$/, '').trim(); 156 if (d) { try { localStorage.setItem('pcmsFediServer', d); } catch(e){} location.href = 'https://' + d + '/authorize_interaction?uri=' + encodeURIComponent(uri||''); } 157 } 158 function place(f, b){ 159 var r = b.getBoundingClientRect(); 160 f.style.top = (r.bottom + window.scrollY + 6) + 'px'; 161 f.style.left = Math.max(8, Math.min(r.left + window.scrollX, window.scrollX + window.innerWidth - 340)) + 'px'; 162 } 163 document.addEventListener('click', function(e){ 164 if (e.target.closest && e.target.closest('.fedi-remote-cancel')) { close(); return; } 165 if (current && e.target.closest && e.target.closest('.fedi-remote-form')) return; // click inside → keep 166 var b = e.target.closest && e.target.closest('.fedi-remote-reply-btn'); 167 if (b) { 168 e.preventDefault(); 169 if (currentBtn === b) { close(); return; } // toggle off 170 close(); 171 var f = document.createElement('form'); 172 f.className = 'fedi-remote-form'; 173 f.dataset.uri = b.getAttribute('data-fedi-uri') || ''; 174 f.innerHTML = '<input type="text" autocomplete="off" spellcheck="false">' 175 + '<button type="submit" class="btn btn-primary fedi-remote-go" aria-label="ok">→</button>' 176 + '<button type="button" class="fedi-remote-cancel" aria-label="x">×</button>'; 177 var _inp = f.querySelector('input'); 178 _inp.placeholder = b.getAttribute('data-fedi-ph') || 'mastodon.social'; 179 try { var _sv = localStorage.getItem('pcmsFediServer'); if (_sv) _inp.value = _sv; } catch(e){} 180 document.body.appendChild(f); // floating popover → no layout reflow 181 place(f, b); current = f; currentBtn = b; 182 _inp.focus(); _inp.select(); 183 return; 184 } 185 if (current) close(); // click anywhere else closes it 186 }); 187 document.addEventListener('submit', function(e){ 188 var f = e.target.closest && e.target.closest('.fedi-remote-form'); 189 if (!f) return; e.preventDefault(); 190 go(f.querySelector('input').value, f.dataset.uri); 191 }); 192 document.addEventListener('keydown', function(e){ if (e.key === 'Escape') close(); }); 193 window.addEventListener('scroll', close, true); 194 })(); 195 </script> 149 <%# Het remote-reply-veld zit in assets/js/mod/post.js. Inline script hier wordt 150 door de CSP geweigerd zodra je deze pagina via een link binnen de site opent 151 -- zie shaer-0i6. %> 196 152 197 153
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)