Skip to content

DESCRIBE does not print conditional visibility on layout-grid rows and columns, so restating a page makes every row always visible #1461

Closed
ako/mxcli
#1360

Description

@AlvinnYeo

Summary

A layout-grid row (and column) can carry its own conditional visibility in Studio Pro. DESCRIBE does not print it. A page rebuilt from DESCRIBE output would lose every such rule without a warning, and the build would stay clean.

In one app, two edit pages show nine detail sections by type through row visibility, and one snippet has 56 row-level "show only when it has a value" rules. None of them appear in DESCRIBE.

Environment

  • mxcli v0.25.0 (2026-10-05), macOS arm64
  • Mendix 11.14.0 Beta project (existing app, upgraded), MPR v2, Classic (Dojo) web client, security level Production
  • Re-read on main (2026-10-13): rawWidgetRow and rawWidgetColumn in mdl/executor/cmd_pages_describe.go have no visibility field, and parseLayoutGridRows (cmd_pages_describe_parse.go) does not read ConditionalVisibilitySettings. v0.26.0's release notes say rows and columns now keep design properties, classes, styles and alignment; visibility is not listed.
  • mxcli diag --bundle is not attached because the project is a customer app.

Steps to reproduce

  1. In Studio Pro, on a page MyModule.Account_Edit with a data view over MyModule.Account, put a layout grid inside the data view. Give its second row a visibility condition, for example based on MyModule.Account.Type = Business. Save.
  2. mxcli -p App.mpr -c "describe page MyModule.Account_Edit".

Expected

The row is printed with its condition, for example row (Visible: $currentObject/Type = MyModule.AccountType.Business) { … } (or the attribute form Visible: Type in (Business)), and create / alter write it back. If that is not supported yet, a comment says the row's visibility was left out.

Actual

The row is printed as row { … } with no condition and no comment. We confirmed the conditions in the stored BSON. We did not test whether Visible: on a row is accepted on write.

Workaround used

Our drafters read each row rule from the BSON and rewrote it as a container with Visible: inside the column. DESCRIBE prints container visibility, so the rebuilt pages round-trip. An audit confirmed every rule was carried over.

Suggested fix

  1. Read ConditionalVisibilitySettings on layout-grid rows and columns in DESCRIBE, in both forms (expression and attribute-based), and print them with the same Visible: syntax used on widgets.
  2. Accept Visible: on row and column in create, replace and alter.
  3. Until then, print an "omitted" comment on the affected row.

Related: the role-based visibility issue filed alongside this one (same silent-loss pattern, different setting).

Activity

  1. github-actions commented on Oct 13, 2026

    @github-actions

    Issue Triage

    Summary:
    The describe command omits conditional visibility settings on layout‑grid rows and columns, causing those rules to be lost when a page is rebuilt from the DESCRIBE output.

    Checklist of required bug‑report information

    Required info Present? Details
    mxcli version ✅ v0.25.0 (2026-10-05), macOS arm64
    Mendix version ✅ Mendix 11.14.0 Beta project (MPR v2)
    Scenario (what was tried) ✅ Ran mxcli -p App.mpr -c "describe page MyModule.Account_Edit"
    Expected output ✅ Row printed with its Visible: condition (or a comment if unsupported)
    Experienced output ✅ Row printed as row { … } with no condition or comment
    AI bug report (diag bundle or session log) ❌ Not attached; user notes the project is a customer app and cannot share the bundle

    Missing information:
    To help us investigate, could you please provide the output of mxcli diag --bundle (or at least the relevant session log) for this command? If sharing the full bundle is not possible due to confidentiality, a sanitized log that shows the DESCRIBE execution would be sufficient.

    Thank you for reporting this issue! Once we have the diagnostic information we can look into adding visibility support for layout‑grid rows and columns.


    Automated triage via OpenRouter — workflow source

  2. added a commit that references this issue on Oct 14, 2026
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

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions