Skip to content

Navigation describe → exec silently drops nanoflow / open-link / create-object menu actions and microflow/page action settings #980

Description

@ako

From the JTSBootLogboek project (H15), re-verified on main fcddbc6 with TestApp (11.14). Silent wrong write on the documented describe → edit → exec workflow.

describe navigation prints a menu item whose action is not page, microflow or sign-out without its action. Re-executing the description writes Forms$NoAction. The project renamed captions this way and lost its "Reports" item (nanoflow Reporting.ShowReportsHome) without any warning. Measured:

  • Nanoflow, open link and create object on menu items and sub-items: no syntax, nothing printed, and a rewrite turns them into NoAction.
  • Call microflow: only the microflow name is kept. Progress bar, confirmation, async, form validations and parameter mappings are lost.
  • Show page: FormSettings is rebuilt, so a title override is lost.

Causes:

  • Reader: resolveMenuAction (mdl/backend/modelsdk/navigation_read.go ~295-327) knows only page, microflow and sign-out.
  • Describe: printMenuMDL (mdl/executor/cmd_navigation.go:429-469) prints nothing else. Standalone menus share it.
  • Grammar: navMenuAction (MDLParser.g4:674-678) has only show page, call microflow and sign out.
  • Writer: navPatchWebProfile (navigation_write.go:189-199) rebuilds the whole Menu, and navMenuAction (:358-392) falls back to NoAction.

Fix: do what #959 did for navigation-list items.

  • Keep the raw action on the menu item.
  • Describe it with the shared client-action renderer, including its settings.
  • Accept the general widget client-action grammar for a menu item, and write it with the widget serializer.
  • Until then, as a guard: exec refuses (or carries over by caption path) any stored item whose action the spec cannot express, and describe prints a comment for an unsupported action.

Same area:

  • A native profile's {menu} and sync blocks are silently ignored (navPatchNativeProfile, :216-251). Warn or refuse.
  • The reader ignores BottomBarItem.Action and its icon.
  • A native nanoflow home prints as home microflow X. Add a home nanoflow keyword.
  • check --references refuses describe's own navigation output: Icon: image System.Images.Save gives "unknown image collection System.Images". So on TestApp the round trip needs --no-check.

Verify each action kind with mx check and a describe → exec → describe round trip that compares the stored navigation unit.

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

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions