Changeset 1d76e0e in Klonkt for src/assets/js/mod/reply-editor.js
- Timestamp:
- 08/08/2026 09:51:53 PM (4 weeks ago)
- Branches:
- main
- Children:
- bfd9c73
- Parents:
- df70d8e
- git-author:
- Robin <roboburr@…> (08/08/2026 09:51:49 PM)
- git-committer:
- Robin <roboburr@…> (08/08/2026 09:51:53 PM)
- File:
-
- 1 moved
-
src/assets/js/mod/reply-editor.js (moved) (moved from src/assets/js/reply-editor.js ) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/assets/js/mod/reply-editor.js
rdf70d8e r1d76e0e 1 // Rijke reply-editor -- MODULE sinds shaer-nh2. 2 // 3 // Stond als <script src> onderaan partials/reply-editor.ejs. Bij een volledige 4 // laadbeurt ging dat goed (injectCspNonce zet er een nonce op), maar bij een 5 // htmx-navigatie draagt de partial de nonce van DAT verzoek terwijl het 6 // document die van zijn eigen laadbeurt heeft. De CSP is strict-dynamic, dus 7 // alleen die laatste telt -- en het script draaide niet. Gevolg: geen toolbar, 8 // geen .re-full, en op mobiel dus geen fullscreen-compose. 9 // 10 // Als module wordt hij door de bootstrap in de shell geladen, die WEL de juiste 11 // nonce heeft. Dat is bovendien de voorwaarde om straks code te DELEN met de 12 // posteditor: een los script kan niet importeren uit mod/lib.js. 13 1 14 // Rich reply editor — upgrades every form[data-re] (partials/reply-editor.ejs) 2 15 // from a plain textarea to a contenteditable with a small toolbar and, on … … 5 18 // before. On submit: `content` = editor HTML (server sanitizes), `text` = 6 19 // plain-text fallback. 7 (function () {8 'use strict';9 if (window.__replyEditorInit) return;10 window.__replyEditorInit = true;11 20 12 21 var MOBILE = '(max-width: 700px)'; 13 22 14 function init(form) {23 function initForm(form) { 15 24 if (form.__re) return; 16 25 form.__re = true; … … 206 215 } 207 216 208 function initAll() { 209 document.querySelectorAll('form[data-re]').forEach(init); 210 } 211 if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', initAll); 212 else initAll(); 213 })(); 217 /** 218 * De bootstrap roept dit aan bij elke paginawissel waarop deze module actief 219 * is. Opnieuw scannen is veilig: init(form) heeft een eigen `__re`-vlag per 220 * FORMULIER, en na een htmx-wissel zijn de formulieren nieuw -- dus geen vlag, 221 * dus opnieuw opgewaardeerd. Precies wat je wilt. 222 */ 223 export function init() { 224 document.querySelectorAll('form[data-re]').forEach(initForm); 225 }
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)