Tables, search, and modals
Almost every list in the app — enquiries, customers, products, stock, expenses — uses the same table component, the same search box style, and the same modal style. Learning the pattern once means you know it everywhere.
Tables
Lists are shown in a table with a header row at the top and one row per record below.
- The first row is the header. Column widths and which columns are visible can be adjusted on screens that offer a Toggle Columns (Show or hide table columns) control.
- Right-clicking a row opens a context menu with actions that screen has registered for that row.
- Some screens also expose an inline actions menu on the row.
Search
Most lists have a search box at the top. The columns each search box looks at are decided by the screen — for example, Search customers… on the customer list matches the customer name.
When a list also exposes filters (such as date range, status, or supplier), the filters apply on top of whatever you typed in the search box.
Pagination
Long lists — enquiries, orders, expense ledgers — are split into pages with a pager at the bottom. Lists with naturally short result sets do not show a pager.
Modals
Many actions open a modal: a small panel that appears in the middle of the screen with the page dimmed behind it. Modals are used for forms, confirmations, and detail views that do not need a full page of their own.
- Close a modal by clicking the close button in the corner, or by pressing the Cancel button inside it where one is provided.
- A modal that asks you to confirm a destructive action — such as deleting a record — always lists what is about to happen. Read the message before clicking the destructive button.
Confirmations and warnings
The app does not silently delete a record. Removals open a confirmation modal first. Take a moment to read it; the action is hard to undo afterwards.
Common questions
Why is a button greyed out?
Either the action does not apply to the row, or you do not have permission for it. Hover over the button for a tooltip.
How do I refresh a list?
Most lists refresh after you make a change. To force a refresh, switch to another module and back, or reload the page.