Navbar
A *.navbar.xml file defines the navigation tree — the left rail and its nested items. It is migrated
by the runtime into the navigation store.
<Navbar> <Module Name="sales" Label="Sales" Icon="fa fa-cart-shopping" Route="/object/Sale"> <Section Label="Master Data"> <Item Name="customers" Label="Customers" Icon="fa fa-users" Route="/object/Customer"> <CountsBadge Color="warning">SELECT COUNT(*) FROM Sales.Customers WHERE IsActive = 0</CountsBadge> </Item> <Item Name="catalogue" Label="Catalogue" Icon="fa fa-box"> <Item Name="products" Label="Products" Route="/object/Product" /> <!-- nested --> </Item> </Section> <Divider /> </Module> <Module Name="admin" Label="Admin" Icon="fa fa-gear" VisibleIf="User.IsInRole('Admin')"> … </Module> <Module Name="docs" Label="Docs" Icon="fa fa-book" Route="https://…" Target="_blank" /></Navbar>| Element | Role |
|---|---|
<Module> |
a top-level rail entry (may also be a link; holds children) |
<Section> |
a non-clickable grouping heading (auto-named) |
<Divider> |
a separator (leaf) |
<Item> |
a navigable link; may nest child <Item>s |
Attributes: Name (required for Module/Item), Icon, Label, Route, Target, VisibleIf
(server-evaluated visibility expression). Badges (on <Item> only): <CountsBadge> (numeric) or
<BulletsBadge> (indicator) with a scalar SELECT body and a Color; the first badge wins. Worked
example: sample/Inventory/models/navbar/inventory.navbar.xml.
An item’s Name is also what a view’s <ParentView>
maps to for its breadcrumb root.
Authoring it visually
Section titled “Authoring it visually”The same contract can be edited at runtime from /navbar-designer (System role only): an outline
with drag-reorder, a live rail/sidebar preview, server-side validation, and a two-way XML pane that
uses this exact element/attribute contract — so a tree designed in the browser can be exported straight
back into a *.navbar.xml file, and an existing file can be imported into the designer. See
Navigation → Navbar designer.