Skip to content

Client-side navigation

MenuNavigation.js is the browser side of navigation. It lets menu links and consumer scripts move to another BOL application page by posting the target to the server.

Field Value
Operation ID OP-17
Trigger Menu item or script call in the browser
Inputs Target application and page
Outputs Form post to the MenuItemClick handler
Primary components MenuNavigation.js
Entry point src/BolMiddleware/wwwroot/js/MenuNavigation.js

Steps

  1. The script builds a form whose action selects the MenuItemClick handler, by concatenating the target values into a string.
  2. It calls ShowLoading() to show a progress indicator; the function is supplied by the consuming application**.
  3. It submits the form, which runs Menu item click.

Process flow

The following diagram visualizes this operation's control flow.

flowchart TD
    Start([Menu link or script call]) --> S1[Build form from target values]
    S1 --> S2[ShowLoading]
    S2 --> S3[Submit form]
    S3 --> EndOk([MenuItemClick handler])

Failure and edge-case behavior

  • Values are concatenated into script strings without escaping, so a target containing quotes can inject script.
  • If ShowLoading is not defined by the consumer the call raises a script error**.

Note: Statements marked with ** could not be confirmed; treat as unknown until verified.

Sources

  • src/BolMiddleware/wwwroot/js/MenuNavigation.js
  • src/BolMiddleware/Pages/Shared/_BolCoreScriptsPartial.cshtml