Skip to main content

Deface usage

Deface injects window.DecidimToggle into participant and admin layouts without forking decidim-core. Overrides live in app/overrides/ and are ignored by Zeitwerk — Deface loads them at boot.

Public site

FileVirtual pathInserts
add_toggle_javascript_public.rblayouts/decidim/_decidim_javascriptlayouts/decidim/toggle/javascript_config after js_configuration

Admin

FileVirtual pathInserts
add_toggle_javascript_admin.rblayouts/decidim/admin/_headersame partial after admin stylesheet pack tag

Partial

app/views/layouts/decidim/toggle/_javascript_config.html.erb — sets window.DecidimToggle from Decidim::Toggle.javascript_config_for(current_organization).

Forms opt in with Decidim::Toggle::ExposeAttributesToJs and expose_to_javascript — see JavaScript.

Drift check

When upgrading decidim-core, diff upstream layout templates against the original: strings in override files. System specs in spec/system/decidim_toggle/javascript_config_spec.rb assert injection end-to-end.

See also