Skip to content

ddcore 0.22 ​

0.22.1 — 2026-09-30 ​

Added ​

  • defineListView({ actions }): app buttons over the rows selected in the List or Cards view, shown next to "Delete (n)" as label (n). An optional per-row condition picks the rows an action applies to; onClick(ids, list) receives their ids and loaded values, and the list clears the selection and reloads once it settles. See form-api (#53).

0.22.0 — 2026-09-30 ​

Added ​

  • Desk scripts receive ddcore.publish events: frm.onRealtime(event, handler) for as long as the form is open, and ddcore.realtime.on(event, handler) / off anywhere else. publish honours { doctype, id }: the event reaches only sessions that may read that document (#49).

  • ddcore.files.save stores bytes server code holds or downloads (content, contentBase64 or fromUrl with headers, a size limit and a timeout) as a File, with the rules of an upload. The row is on the current transaction, and a rollback deletes the bytes too. ddcore.files.presign(fileUrl, { ttl }) returns a presigned URL for a third party with no session; it needs the s3 storage backend. See storage (#50).

  • An upload whose transaction rolls back after the File row was inserted no longer leaves its bytes behind in the store (#50).

  • ddcore.http takes responseType: "base64", which returns a binary body (an image, an audio file) base64-encoded instead of corrupted as text, and maxBytes, the largest body accepted (default 10 MiB) (#51).

Changed ​

  • ddcore.publish throws on an event name outside letters, digits and _ . : -: the name is written into the SSE stream as is, and a line break in it could forge events (#49).
  • A ddcore.http response larger than its limit now throws instead of being silently cut at 10 MiB. Pass a larger maxBytes where a bigger body is expected (#51).

Fixed ​

  • ddcore i18n extract collects _() / __() inside a template literal's ${…}, and a template nested in an interpolation no longer ends the outer one and hides every key after it in the file. Both used to pass --check silently. Run ddcore i18n extract again: keys that were missed now show up as missing and need a translation (#52).

MIT Licensed · ddcore (Data Driven Core) · Development documentation (main)