Skip to content

Report Builder: move bricks between bands (move-to-band action) #525

Description

@nielsdrost7

Status 2026-07-13: implemented on feature/130-report-builder (#608) — as-built notes in the #130 status section.


Parent: #130 (Report Builder — bands + bricks). Phase 2 (needs Phase 1: #521, #528). Part of epic #506, Track A.

Scope

Moving a brick between bands (e.g. move the client phone from Header into Footer) happens through a "Move to band…" action on the placed brick — not by dragging across canvases. Since each band is its own Mason canvas (#523), cross-canvas dragging is deliberately out of scope; the action approach is deterministic and testable.

  • The action lists only the target bands allowed by the brick's allowedBands().
  • Moving preserves the brick's config and width; the brick is appended to the target band.
  • The original v1 ask ("move the client's phone number to the company information block") is covered at brick-config level too: field-level visibility toggles in the Company/Client brick configs.

Acceptance criteria

  • "Move to band…" on a placed brick offers only its allowed target bands.
  • After moving + saving, the brick (with identical config) lives in the target band's array in bands.json and is gone from the source band.
  • A brick whose allowedBands() is a single band shows no move targets.

Test scenarios (PHPUnit + Livewire, #[Test], no Pest)

  • Move a header_client brick from header to footer; assert bands.json reflects source removal + target append with config intact.
  • Assert a details-only brick offers no move targets.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    refinedRefined with SMART plan / test suggestions

    Type

    No type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions