Parent: #130 (Report Builder) · Related: #95 · Hanging item from #608
Story
As a company admin, I want to mark a band as "keep together" from the builder, so that band never splits across a page boundary in the PDF (e.g. the totals block).
Current state (as of PR #608)
The renderer already honors it: ReportRenderer::keepsTogether() wraps a band in page-break-inside: avoid when manifest.band_options.<band>.keep_together is true (covered by ReportRendererTest::it_marks_keep_together_bands_with_page_break_css). But nothing writes that flag — today it only works by hand-editing manifest.json. This is the remaining builder-side portion of the #95 page-break work (the manual PageBreak/Spacer bricks already shipped).
Acceptance criteria
Parent: #130 (Report Builder) · Related: #95 · Hanging item from #608
Story
As a company admin, I want to mark a band as "keep together" from the builder, so that band never splits across a page boundary in the PDF (e.g. the totals block).
Current state (as of PR #608)
The renderer already honors it:
ReportRenderer::keepsTogether()wraps a band inpage-break-inside: avoidwhenmanifest.band_options.<band>.keep_togetheris true (covered byReportRendererTest::it_marks_keep_together_bands_with_page_break_css). But nothing writes that flag — today it only works by hand-editingmanifest.json. This is the remaining builder-side portion of the #95 page-break work (the manual PageBreak/Spacer bricks already shipped).Acceptance criteria
manifest.band_options)ReportTemplateStorage::save()and it survives clone/renamepage-break-inside: avoid; untoggled bands are unchanged