-
Cédric Le Ninivin authored
Per the Nexedi RenderJS gadget guidelines (GUIDE-RJS-001..006): - .then() -> RSVP.Queue .push() (also fixes a missing `new RSVP.Promise` and a .push() called on a native Promise in crib-enable.js) - bare fetch() -> jIO.util.ajax with dataType blob/json (landing + import; GitHub API errors read error.target.status) - setTimeout -> RSVP.delay (one documented exception: gadget_global postMessage primitive with cleanup race) - raw addEventListener -> loopEventListener / event delegation in declareService (url_list delete-confirm, compare row clicks, editor preview/shortcuts, launcher postMessage loop; documented exceptions: error-display button, SW statechange one-shot bridge) - DOM ids -> classes (editor, select_site; datalist id kept for the required <input list=> pairing, documented) - index.html script order rsvp -> renderjs -> jio - codemirror gadget getContent/getSupportedTypeList wrapped in RSVP.Queue; /*global*/ + IIFE header trios completed everywhere - editor URL-suggestions datalist: fix pre-existing data-shape bug (crib_sw_allDocs returns a url dict, not {data:{rows}}) Verified live on cribjs.nexedi.net: 25/25 smoke checks, QUnit 48 tests / 113 assertions green. Co-Authored-By:Claude Opus 4.8 <noreply@anthropic.com>
5a07bf6d