Skip to content

docs(proposal): ALTER PAGE addressing of pluggable object-list items - #1564

Open
ako wants to merge 2 commits into
mainfrom
proposal/1453-alter-object-list-item-address
Open

ako wants to merge 2 commits into
mainfrom
proposal/1453-alter-object-list-item-address

Conversation

@ako

@ako ako commented Oct 22, 2026

Copy link
Copy Markdown
Owner

Refs #1326 (mirror of mendixlabs#1453). Documentation only: a proposal, no code.

What it proposes

An Accordion group, Pop-up menu item or other object-list item stores no Name, so insert into grp1 { … } has never been able to resolve. The proposal reuses the navigation-list item address from #1388 and the .slot suffix from #1462:

insert into acc1 item@1 { … }                 -- the group's body
insert into acc1 item('One') { … }            -- by its text (headerText)
insert into acc1 item(btnInGroup) { … }       -- the group holding a widget
insert into acc1 item@1.headercontent { … }   -- the other slot
drop acc1 item@2                              -- remove the group

Decisions already agreed with the maintainer:

  1. item everywhere, not the per-widget describe keyword (group).
  2. A bare item address means the body slot, the one CREATE routes loose children to (defaultItemSlotKey).
  3. Legacy table-cell addressing (table1 cell(r, c)) is deferred.

What checking the design found

  • Prerequisite bug: describe folds every widgets-typed slot of an item into one child list. So a group's headerContent widgets are printed as body and re-created in content on round-trip. This gets fixed first, in its own PR.
  • Hidden slot: the Accordion hides headerContent while headerRenderMode is 'text', which is the default. A write there is refused with the property that enables it, rather than storing widgets Studio Pro won't render.

The BSON in the proposal was dumped from a blank Mendix 11.13.0 app with 0 mx check errors. The enum keys were checked against the shipped Accordion template (text, custom).

The proposals index was regenerated with scripts/gen_proposals_readme.py after merging main.


Generated by Claude Code

Accordion groups, Pop-up menu items and other object-list items store no
Name, so `insert into grp1` cannot resolve (#1326,
mendixlabs#1453). Proposes reusing the navigation-list item address
(`acc1 item@1`, `item('One')`, `item(btnInGroup)`) with the `.slot` suffix
from `dataGrid1.controlbar`, with a bare item meaning its body slot.
Table-cell addressing is deferred.

Records two prerequisites found while checking the design: describe
flattens an item's headerContent into its body, and the Accordion hides
headerContent while headerRenderMode is 'text', so a write there is
refused rather than stored hidden.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019httGxDh8UXt1Zoyh3Gh52
…bject-list-item-address

# Conflicts:
#	docs/11-proposals/README.md

This branch has not been deployed

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants