SAIF.Presentation.Web.Controls.V2.Menu operations and processes¶
This page is the operation catalog and cross-operation hub for this library. Each operation's detailed, step-by-step logic lives in its own page under operations/.
Operation catalog¶
| Operation | Intent | Trigger | Inputs | Outputs | Rules | Tables | SQL |
|---|---|---|---|---|---|---|---|
| Render side navigation menu | Render the left "Applications"/Favorites navigation panel | ASP.NET page lifecycle when SAIFMenu is placed on a ViewPageBase-derived page |
Windows user identity, session-cached NavigationContext, ShowApps/SelectedCategory/ContextLabel ViewState, clsPreferences("SHOWAPPS") |
Rendered favorites list, application/category accordion, context-value text box; MenuNavigate/DefaultOnSubmit/OnContextChanged events |
n/a — no business rules enforced natively | n/a | n/a |
| Render top toolbar menu | Render the top category-link row and CRUD/print/help toolbar | ASP.NET page lifecycle when SAIFMenuTop is placed on a ViewPageBase-derived page |
Session-cached NavigationContext, SelectedCategory, per-button clsMenuButton ViewState, current page's clsMenuAuthorizedItem, browser capabilities |
Rendered category link row and icon toolbar; MenuNavigate/ToolbarClick/DefaultOnSubmit events |
n/a — no business rules enforced natively | n/a | n/a |
| Render busy-indicator image button | Add a "busy indicator" CSS class and client script to a toolbar icon | PreRender event of any SAIFImageButton instance |
EnableIndicator/DisableFormControlsOnClick property values |
CSS class change, registered client script include | n/a | n/a | n/a |
Process flow diagram¶
The following diagram visualizes the primary operational flow when both controls are placed on the same host page.
flowchart TD
Start([Page lifecycle begins]) --> Init[Resolve host Page as ViewPageBase]
Init --> NavData[GetNavigationData - resolve/cache NavigationContext in Session]
NavData --> RenderMenu[Render SAIFMenu: favorites + accordion + context box]
NavData --> RenderTop[Render SAIFMenuTop: category links + icon toolbar]
RenderTop --> ImgBtn[Render SAIFImageButton instances with busy-indicator behavior]
RenderMenu --> UserClick{User clicks a link or icon?}
RenderTop --> UserClick
UserClick -->|Favorite/category link| Navigate([Raise MenuNavigate for host page])
UserClick -->|Toolbar icon| Toolbar([Raise ToolbarClick for host page])
UserClick -->|No interaction| EndRender([Render complete])
Failure and edge-case behavior¶
- Both
SAIFMenu.RenderControlandSAIFMenuTop.RenderControlswallow rendering exceptions and write the exception message/source/stack trace directly into the HTML output stream instead of re-throwing or logging, which can leak internal implementation details to end users in production*. SAIFMenu.AddLinksthrows anApplicationExceptionif a duplicate or blank accordion pane ID is generated while building the application/category accordion.- If no per-user
"SHOWAPPS"preference exists,SAIFMenudefaults the applications accordion to expanded (True)*.
Related documentation¶
- Index
- Overview
- Architecture
- Dependencies
- Business rules
- Control catalog
- Configuration
- Security and authorization
- API reference
Sources¶
SAIF.Presentation.Web.Controls.V2.Menu\SAIFMenu.vbSAIF.Presentation.Web.Controls.V2.Menu\SAIFMenuTop.vbSAIF.Presentation.Web.Controls.V2.Menu\SAIFImageButton.vb