Skip to content

Help centre · Reference

Sorting, paging and saving list views

The shop's record and inventory lists show exact totals, use 50-row pages, sort before paging and keep the view in the URL.

For anyone · checked against the product on 2026-09-15

The main record and inventory lists use one set of rules. The count above the table is the exact number of matching live records, not the number visible on this page. A page holds 50 rows. Previous and Next are ordinary links, and a request beyond the last page returns to the last real page instead of showing a false empty one.

The address is the view

Search, filters, sort direction and page live in the address after ?. Sorting or moving to page two changes that address. Browser Back returns to the same view, and copying or bookmarking it preserves the same question. A sort applies to the full matching result in SQL before Torqix chooses the 50 rows; it never just rearranges the current page.

That rule holds on the record tables added below as well, and on a few of them it is why the table is read separately from the figures above it. Sorting a customer's orders does not change their total spent or their balance: those are computed over the account's most recent 500 orders whatever the table is showing, and the table asks its own question of the whole history. Where a table shows a running count, a document's own lines, or a set the shop is working through in order — a part's stock movements, the parts on a box going back to a supplier, the punches in a pay period — the heading is not a link, because the order is the answer.

A sortable column heading is a link. The first press selects it and the next reverses it; the table announces ascending or descending order. Where Save view is present, give the current filter and sort a name. Customize hides selected columns only for your membership and does not remove data from anyone else's view.

Doing one thing to several rows

Some lists carry a tick box on every row and a strip of buttons above the table. Tick the rows you mean and press the button; the list acts on exactly those rows and tells you how many moved. The strip is always there, so you can see what a list is able to do before you tick anything. With JavaScript running, a tick box in the column heading selects every row on the page you are looking at, and the strip counts what you have chosen as you go.

A selection is all or nothing. If any row you ticked has been changed by somebody else, deleted, or does not belong to this location, nothing at all is written and the list says so — you reload and go again rather than finding out later that seven of nine went through. A row that cannot take the action gets no tick box: an item in the trash that is waiting on something else, for instance, explains why in its own cell instead.

Only actions that already exist for a single row are offered for several, and the button uses the same word the row does. Nothing here can do something the list could not do one row at a time.

Parts
Retire on the live shelf and Put back on Retired. Stock history and every order that used the part are unchanged either way.
Trash
Restore. There is no bulk permanent delete, and no permanent delete on this screen at all — the 30-day window is the whole promise.
Follow-ups
Snooze a week and Dismiss. The declined work itself stays on its order.
Reminders
Snooze a week and Dismiss. Nothing is sent either way, and each car surfaces again after its next visit.

Record lists and their sort links

Customers
Customer, Vehicles, Last visit and Lifetime value; most recently touched is the default. A saved segment keeps its own fixed ordering.
Vehicles
Vehicle, Customer, Plate, Mileage and Updated. The roster is at /vehicles; it is a real page rather than a link to nowhere.
Quotes
Quote, Customer, Vehicle, Total, Age and Status.
Messages
Customer, Owner and Updated.
Disputes
Charge, Reason, Amount, Respond by and Status. The derived Gaps column is not sortable.
Audit
When, Actor, Action and Summary.
Trash
Item, Deleted by, Deleted and Expires.

Parts-side lists and their sort links

Parts
Name, Category, Bin, Cost, Retail, Margin and On hand. Cost and Margin are drawn only for somebody who may read what a part cost, so their links are there or not for the same reason the figures are.
Purchase orders
PO, Created, Vendor, Lines, Total and Status.
Vendors
Vendor, Supplies, Open POs and Status.
Cycle counts
Count, Covers, Opened by, Parts counted and Status.
Adjustments
Part, Kind, Change, Reason and Recorded.
Categories
Category, Parts and Below minimum.
Labels
Part and Bin.
Core returns
Vendor, Part, Invoice, Age, Deposit and Status.
Vendor returns
Return, Vendor, Opened by, Parts, Waiting on and Status.
Tires
Condition, Size, Where, On hand, Tread, Age, Cost and Price.

Record pages and their sort links

Two of the rows below are the same tab read two ways. A customer's Orders tab carries an Orders and Line items switch above its table: Orders answers what work the account has had, a row to an order, and Line items answers what was actually sold on it, a row to a labor, part, sublet or fee line. The tab opens on Orders. The switch is a pair of ordinary links, so which half you are reading lands in the address with the rest of the view; the spend window you chose follows you across, and the sort, the filters and the page do not, because each belongs to the table you are leaving.

A customer's Orders
Order, Vehicle, Status, Opened and Total. Status reads in the workflow's order rather than the alphabet's. The columns folded from jobs, invoices, payments, signatures and messages — Jobs, Paid, Auth, Inspection, Appointment, Authorized, Invoiced, Fully paid, Messaged — are not sortable, because there is no stored value behind them to sort by.
Promised, Payment term and Payment due
Three more columns on that same table, and two of the three answer questions that look alike. Promised is when the car goes back to its owner, printed to the minute. Payment due is when the money is due, printed to the day, and it comes from the term the invoice was frozen on at issue — changing your shop's default tomorrow moves nothing already invoiced, which is the whole reason those two are stored rather than worked out again. An order with no live invoice reads not invoiced in both money columns rather than an em dash, because the question does not apply to an estimate yet. None of the three has a sort link today.
A customer's Line items
The second view of the Orders tab — every labor, part, sublet and fee line across the account, newest order first. Order, Date, Type, Line and Subtotal. Service, Qty and Price are not sortable: an order-level fee has no service at all, and hours, units and a flat charge are not one another's bigger or smaller. This is the one table on a customer record with real paging, and it has its own filters — a type, and a text search over the line, its service and the category frozen onto it when it was sold, which is where a tire sale says Tires. Both land in the address, so the answer is a link you can send.
A customer's Transactions
When, Kind, Method, Order, Taken by and Amount. Reference is not sortable: the cell shows the shop's own reference or the invoice number behind it, and a column that sorted by one of the two values it shows would be worse than none.
A customer's Appointments
When, Vehicle, Status, Concern and Waiting.
What we hold for you
When tire storage is on, the customer record lists that person's stored tire sets and links each one to its arrival, move and departure ledger.
A part's cycle counts
When, Sheet, Ledger said, Found, Out by, Worth and Who.
A part's vendor returns
Shipped, Box, How many, Why and What they said.
A cycle count sheet
The shelf by SKU, Part, Bin or by what is still to count; the review by SKU, Part, Ledger said, Counted, Difference, Worth and Counted by.
A purchase order's lines
Line, Ordered and Cost. Received is not sortable: the cell derives what has arrived from the receipt rows rather than the cached counter, and an order could only use the cache.
Credit memos
Memo, Vendor, Issued, Parts, Promised, Arrived and Outstanding.
Fleets
The accounts by Fleet, Units and Open work; a unit-number search by Unit, Vehicle, Fleet, Driver, Plate and Match, which is its own page in the address and its own Next.
Across your shops
Shop, Its today, In the bays, Ready, Awaiting approval, Sales today, Sales MTD and Receivables.
A fleet account
Every table on this record carries its OWN pair of sort links, because they are all on screen at once and one shared setting would re-order the table you were not looking at. The units by Vehicle, Plate and Miles — the unit number and the driver share one editing cell, so that column has no link and the fleet's own numbering stays the default order. Open work by Order, Unit, Customer PO, Status, Shop, Promised and Total, with Status in the workflow's order. The VMRS report by System, Service, Unit, Order, Shop and Completed. Preventive maintenance by Unit, Service and State.
A vehicle record
Visits by Date and Total, and the sentence above that table names WHICH twenty-five you are reading, because it shows the newest — or the biggest — twenty-five rather than the whole history. Deferred work by Job, State, Urgency, Chase and Value. Bookings by When, Status, Concern, Bay and Waiting. A unit's preventive maintenance by Service and State.
Next due is not sortable
On either preventive-maintenance table. The cell prints an odometer reading on a mileage schedule, a date on a monthly one, and “Needs a baseline” where there is no history to reckon from, so there is no one value under the column to order by. State answers the same question honestly, and it reads by severity — Overdue, Due, Not enough history, On schedule — rather than alphabetically. Interval is not sortable for the same reason.
Tire readings are not sortable
And that is deliberate rather than unfinished. The grid is read two ways at once: across a row is the car at one visit, and down a wheel's column is that corner over time — which only means anything in date order. Reordering it would turn every tread column into a list of unrelated numbers, and the summary line above it describes the newest visit.

Money sorts use the same integer-cent values and pricing rules as the cells. Parts Price and Margin use the shop's resolved pricing matrix; customer Lifetime value and dispute Amount sort by stored or aggregated cents. A role without the matching money visibility does not gain those values merely by changing the URL, and a column it cannot read carries no heading link for it either.