Lists, records and forms
How your data shows in the app: lists that the server filters and counts, a page per record, forms, related lists, safe deletes and exports.
Most screens of a business app are lists of things and pages about one thing. The toolkit gives your app both, built from the shape of your data.
Lists#
A list shows one kind of record (orders, clients, tickets) one page at a time. It has:
- Search over the columns that make sense to search. Every word must match.
- Filters on a column's values: pick one value or several.
- Sort by a click on a column header.
- Pages of up to 500 rows, and a count of all matching rows.
- Selection: tick rows, or shift click to tick a range, then act on all of them.
- Export of every row that matches the current search and filters (not only the page on screen) to a CSV file that any spreadsheet opens.
The search, the filters, the sort and the count all run on the server. The browser receives one page at a time, never the whole table, and the count is always the real one.
The list's search, filters and sort live in the page address. A bookmark or a link to a colleague opens the same view.
A page per record#
A record page shows one record's fields with their labels, and the lists that belong to it: the orders of one client, the lines of one order. Each related list is a full list, with its own search and pages.
Forms#
A form shows one input per field, in the order you asked for: text, numbers, yes or no switches, dates, a pick from a list of values, a pick of another record (the form searches as you type), and files. Required fields are checked before the form sends. If the server refuses a value, its reason shows under that field. A form saves only the fields you changed.
Safe deletes#
Before a record goes, the app counts what still points at it. A client with orders cannot be deleted by mistake: the app says why, and the delete stops. Otherwise it asks you to confirm.
Numbers you can trust#
A total, a count or a sum on a screen comes from the server, over the same filters as the list. When a number cannot be complete (a very large set the screen chose not to read in full), the app says so instead of showing a number that looks exact.
Who sees what#
What a user can list, open, create, change or delete is decided by server rules, written for your app from your requests. The screens follow the rules. They never replace them. See Trust.