|
| 1 | +-- ============================================================================ |
| 2 | +-- ALTER PAGE / ALTER SNIPPET: SET RenderMode on a dynamic text |
| 3 | +-- ============================================================================ |
| 4 | +-- |
| 5 | +-- Reported: |
| 6 | +-- |
| 7 | +-- alter page MyModule.Comparison_Page { set RenderMode = H2 on compTitle } |
| 8 | +-- -> failed to set RenderMode on compTitle: property "RenderMode" not found |
| 9 | +-- (widget has no pluggable Object) |
| 10 | +-- |
| 11 | +-- (current main words the same refusal as "not a property of this built-in |
| 12 | +-- widget … use alter styling", which is no more true: RenderMode is not a |
| 13 | +-- design property either). |
| 14 | +-- |
| 15 | +-- `create page … dynamictext x (RenderMode: H1)` and `replace x with { … }` |
| 16 | +-- both accept it, because RenderMode is a first-class Forms$DynamicText |
| 17 | +-- property. The ALTER SET switch in setRawWidgetPropertyMut simply had no case |
| 18 | +-- for it, so it fell through to the pluggable-property setter. |
| 19 | +-- |
| 20 | +-- Values: Text, Paragraph, H1..H6 (matched case-insensitively, stored in the |
| 21 | +-- canonical spelling). Anything else is refused by both `check -p` and `exec` |
| 22 | +-- — e.g. `set RenderMode = H7 on title` → |
| 23 | +-- invalid RenderMode "H7" for dynamic text "title": expected one of Text, |
| 24 | +-- Paragraph, H1, H2, H3, H4, H5, H6 |
| 25 | +-- |
| 26 | +-- Measured on a copy of a real Mendix 11.14.0 app: exec → "Altered page", |
| 27 | +-- describe shows RenderMode: H2, mx check → 0 errors; exactly one .mxunit |
| 28 | +-- changed. |
| 29 | +-- |
| 30 | +-- Usage: |
| 31 | +-- mxcli exec mdl-examples/bug-tests/alter-page-set-rendermode-dynamictext.mdl -p app.mpr |
| 32 | +-- ============================================================================ |
| 33 | + |
| 34 | +create entity MyFirstModule.RmRow ( Name: String ); |
| 35 | + |
| 36 | +create or replace page MyFirstModule.P_SetRenderMode |
| 37 | +( |
| 38 | + Title: 'Set RenderMode', |
| 39 | + Layout: Atlas_Core.Atlas_Default, |
| 40 | + Params: { $Row: MyFirstModule.RmRow } |
| 41 | +) |
| 42 | +{ |
| 43 | + dataview dv (datasource: $Row) { |
| 44 | + dynamictext title (content: 'Title {1}', contentparams: [{1} = Name], rendermode: H1) |
| 45 | + dynamictext body (content: 'Body') |
| 46 | + } |
| 47 | +} |
| 48 | + |
| 49 | +alter page MyFirstModule.P_SetRenderMode { |
| 50 | + set RenderMode = H2 on title; |
| 51 | + set rendermode = paragraph on body; |
| 52 | +} |
| 53 | + |
| 54 | +create or replace snippet MyFirstModule.S_SetRenderMode |
| 55 | +{ |
| 56 | + dynamictext snipTitle (content: 'Snippet title', rendermode: H3) |
| 57 | +} |
| 58 | + |
| 59 | +alter snippet MyFirstModule.S_SetRenderMode { |
| 60 | + set RenderMode = H4 on snipTitle; |
| 61 | +} |
| 62 | + |
| 63 | +describe page MyFirstModule.P_SetRenderMode; |
| 64 | +describe snippet MyFirstModule.S_SetRenderMode; |
0 commit comments