Skip to content
  • Cédric Le Ninivin's avatar
    RenderJS guidelines: fix mechanical violations across all gadgets · 5a07bf6d
    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: default avatarClaude Opus 4.8 <noreply@anthropic.com>
    5a07bf6d