{"id":"69e88c831ffe81f1664ec37c","title":"2026 04 22 Issue 226","path":"how-to/committee/release-notes/2026-04-22-issue-226","contentMarkdown":"# 22-Apr-2026 —  Per-store app download visibility toggles and reflow  [#226](https://github.com/nbarrett/ngx-ramblers/issues/226)\n\n## [build 619](https://github.com/nbarrett/ngx-ramblers/actions/runs/24768904941) — [commit 2bd5b18](https://github.com/nbarrett/ngx-ramblers/commit/2bd5b181d379060c9469958f701692cd11a18475)\n\n_____\n\nAdds optional Show in footer checkboxes next to the Apple and Google\nURL fields in [Admin > System Settings > Footer](https://ngx-ramblers.org.uk/admin/system-settings?tab=footer), matching the style of\nother footer link options. Each store can now be independently hidden\nwithout having to clear its URL.\n\n### Footer rendering changes:\n- a store link is shown only when its URL is set and its show-in-footer\nflag is not explicitly false\n- the whole Download the app column is removed when neither store is\nvisible, rather than rendering as an empty column\n- the remaining columns (Quick links, Legals, and optionally Download\nthe app) reflow to use the available space via Bootstrap col-lg with\ncol-sm-6 when only two extras are visible, instead of the previous\nhardcoded four-equal-column grid leaving a gap where the app\ndownload column used to sit\n\n- Backwards compatibility: config-service migration seeds the new flags\nfrom the existing URLs on first load, so existing sites continue to\nshow whatever app download links they currently have until the admin\nchooses to hide them.\n- See screenshot below for default App Store download images & visibility:\n\n![](https://ngx-ramblers.org.uk/api/aws/s3/site-content/83e66c97-eb30-4c1f-9b41-dc905628bad0.jpeg)\n\n- See screenshot below for App Store download images hidden causing footer columns to reflow from 3 to 2:\n\n![](https://ngx-ramblers.org.uk/api/aws/s3/site-content/1ad454ce-af38-492f-a816-06ebbf1dca99.jpeg)\n\n### integration-worker: detect changes against last-deployed ref\n\nReplace the previous-push-based diff with a diff against the last\ncommit that actually deployed the integration worker, tracked via a\n`refs/heads/worker-deployed` branch that advances only after a\nsuccessful worker deploy.\n\nPreviously `detect-worker-changes.ts` compared HEAD against\n`GITHUB_EVENT_BEFORE` (or `HEAD~1` as fallback) and intersected the\nchanged files with the worker's madge-derived dependency graph. Because\nthe graph reaches shared models under `projects/ngx-ramblers/src/app/\nmodels/*`, almost every push mutated some file in it, so the worker\nredeployed on essentially every build even when its own behaviour was\nunchanged.","contentHtml":"<h1>22-Apr-2026 —  Per-store app download visibility toggles and reflow  <a href=\"https://github.com/nbarrett/ngx-ramblers/issues/226\">#226</a></h1>\n<h2><a href=\"https://github.com/nbarrett/ngx-ramblers/actions/runs/24768904941\">build 619</a> — <a href=\"https://github.com/nbarrett/ngx-ramblers/commit/2bd5b181d379060c9469958f701692cd11a18475\">commit 2bd5b18</a></h2>\n<hr>\n<p>Adds optional Show in footer checkboxes next to the Apple and Google\nURL fields in <a href=\"https://ngx-ramblers.org.uk/admin/system-settings?tab=footer\">Admin &gt; System Settings &gt; Footer</a>, matching the style of\nother footer link options. Each store can now be independently hidden\nwithout having to clear its URL.</p>\n<h3>Footer rendering changes:</h3>\n<ul>\n<li><p>a store link is shown only when its URL is set and its show-in-footer\nflag is not explicitly false</p>\n</li>\n<li><p>the whole Download the app column is removed when neither store is\nvisible, rather than rendering as an empty column</p>\n</li>\n<li><p>the remaining columns (Quick links, Legals, and optionally Download\nthe app) reflow to use the available space via Bootstrap col-lg with\ncol-sm-6 when only two extras are visible, instead of the previous\nhardcoded four-equal-column grid leaving a gap where the app\ndownload column used to sit</p>\n</li>\n<li><p>Backwards compatibility: config-service migration seeds the new flags\nfrom the existing URLs on first load, so existing sites continue to\nshow whatever app download links they currently have until the admin\nchooses to hide them.</p>\n</li>\n<li><p>See screenshot below for default App Store download images &amp; visibility:</p>\n</li>\n</ul>\n<p><img src=\"https://ngx-ramblers.org.uk/api/aws/s3/site-content/83e66c97-eb30-4c1f-9b41-dc905628bad0.jpeg\" alt=\"\"></p>\n<ul>\n<li>See screenshot below for App Store download images hidden causing footer columns to reflow from 3 to 2:</li>\n</ul>\n<p><img src=\"https://ngx-ramblers.org.uk/api/aws/s3/site-content/1ad454ce-af38-492f-a816-06ebbf1dca99.jpeg\" alt=\"\"></p>\n<h3>integration-worker: detect changes against last-deployed ref</h3>\n<p>Replace the previous-push-based diff with a diff against the last\ncommit that actually deployed the integration worker, tracked via a\n<code>refs/heads/worker-deployed</code> branch that advances only after a\nsuccessful worker deploy.</p>\n<p>Previously <code>detect-worker-changes.ts</code> compared HEAD against\n<code>GITHUB_EVENT_BEFORE</code> (or <code>HEAD~1</code> as fallback) and intersected the\nchanged files with the worker&#39;s madge-derived dependency graph. Because\nthe graph reaches shared models under <code>projects/ngx-ramblers/src/app/ models/*</code>, almost every push mutated some file in it, so the worker\nredeployed on essentially every build even when its own behaviour was\nunchanged.</p>\n"}