Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Behaviours

What the admin does with no configuration, and the key that changes it.

Forms

WhereDefaultChange it
A single-line fieldEnter submits the form.enter: off on the form; enter: off or enter: next on a field.
A textareaEnter is a newline; Cmd/Ctrl+Enter submits.None.
A picker or a repeater rowEnter acts inside it.data-lat-enter-scope and data-lat-enter-target on a widget of your own.
A field’s widthThe whole row.span: 1/2, 1/3, 2/3, 1/4, 3/4; break: true.
A narrow windowUnder 1100px a quarter is a half; under 768px every field is full.None.
A key the type does not readRefused by name.None.
A repeaterPast 3 fields a row, rows collapse to the line naming them; fewer stay open.display: list or inline.
A repeater rowMoves up and down, copies into a new row beneath it, and is removed.reorder: false, duplicate: false.
A refused saveThe form returns with its errors, values kept (a repeater’s rows and a checklist’s ticks included), and the cursor in the first field it refused.focus: off.
A new recordOpens with the cursor in its first field.focus: off.
Leaving with changes unsavedAsks first, with the cursor on Stay. Typing and undoing it is not a change.confirm_leave: false.
Save and continue editingOffered beside Save on a resource with relations; the save lands on the edit page. A create page names the sections it will have.Declare no relations.
A field with a max_length ruleThe control holds the limit, and a count appears once four fifths of it are used.counter: true or false.
A textareaAs tall as its text, from rows up to most of the window.grow: false.
A password fieldA button shows what was typed. Sending the form hides it again.reveal: false.
A field with presetFollows the named field as it is typed, until edited.Omit the key.
A select past 10 choicesSearched: a box that filters the choices as you type.search: true or false.
A picker or a searched selectOpens on focus with the choice made leading. Down and Up move, Enter chooses, Escape puts the choice back, leaving the box empty clears it.None.
A field with triggerShows, hides, enables, disables, empties or fills itself as the watched field changes. A hidden field is left out of the submission.Omit the key.
A checklist past 10 choicesOffers select all and select none.select_all: true or false.
A checklist past 20 choicesOffers a search box.search: true or false.
A checklist past 10 choices, in groupsA group with every box ticked, or none, starts closed. A group partly ticked starts open.expand: all or none.
A checklist groupIts box ticks the whole group, and shows a dash when some are ticked.None.
A checklist being searchedSelect all, select none and a group’s box act on the matches. Escape clears the search.None.
form:
  enter: off
  confirm_leave: false
  fields:
    sku:   { enter: next, span: 1/3 }
    links: { type: repeater, display: list, fields: { url: { input: url } } }
    tags:  { type: checklist, select_all: false, expand: all, options: [{ value: new }] }

Lists

WhereDefaultChange it
SearchAsks as you type.search: { on_enter: true }; search: { enabled: false }.
Columns and page sizeEach operator’s choice is remembered.per_page sets the size; per_page_options offers a choice of sizes.
A columnSortable, visible, read-only.sortable: false, invisible: true, editable: true.
A cell with editable: trueThe form field’s control, saved on change through the form’s rules, persister and listeners; a refused value shows its message under the control. With scripting off, a Save button. The column’s field must be on the resource’s form.None.
ExportOff.exportable: true.
Deleting rowsOff.deletable: true; it asks before it deletes.
Rows in an order of their ownOff.reorder: true keeps the order in sort_order; reorder: { column: position } names the column. An integer column, not null, default 0. The list opens in that order with a grip to drag and Move up / Move down on every row; a sorted, searched or filtered view shows neither. A has-many section’s list takes the same key.
Rows as a treeOff.tree: true reads the parent from parent_id; tree: { parent_key: folder_id, source: acme.folders } names the column and a picker source. The list opens on the rows with no parent; a row with children expands in place, or opens them as a page with scripting off. With a source, every row offers “Move to”, which picks the new parent from it or leaves it empty for the top level, and a record never moves under itself. With reorder too, a move stays among one parent’s children.
A rowOpens its record on a click or Enter, when the list has a form. A modified or middle click opens a new tab.row_click: none.
Row boxesShift and a click ticks or clears the range from the last box clicked.None.
Returning to a listThe sort, search and filters used last come back, for the session. Clearing them forgets them.remember: false.
A stored code in a columnShown as stored.labels: [{ value, label }] shows a label for each value.
list:
  search: { on_enter: true, prompt: Search posts }
  per_page_options: [25, 50, 100]
  exportable: true
  reorder: { column: position }
  tree: { source: acme.pages }
  row_click: none
  remember: false
  columns:
    title: { editable: true }
    status: { labels: [{ value: pub, label: Published }, { value: dr, label: Draft }] }

Messages and dialogs

WhereDefaultChange it
A success or info messageLeaves after five seconds.session.push_flash_sticky(..) keeps it until dismissed.
An error messageStays until dismissed.None.
A control with data-lat-confirmAsks before it acts.Omit the attribute.
A menuCloses on a click outside, a chosen link, or Escape.data-lat-keep-open.

Accounts and sessions

WhereDefaultChange it
A new passwordAt least 8 characters.[auth.password_policy] min_length.
A generated passwordTemporary: every screen leads to Preferences until it is replaced.lat admin create without --generate sets a password that is kept.
The top bar’s orderThe registry’s order. An operator drags the tabs into their own, kept with their preferences.“Reset the menu order” on Preferences.
Finding a page or a recordThe search button or Ctrl+K opens the command palette over menu entries, settings and the records of resources with a palette source.palette: <picker source> on a resource adds its records.
Failed sign-ins5 for a username from one address, 20 from one address, in 15 minutes.[auth] max_failures, max_failures_per_address, failure_window_secs.
A sessionEnds after 2 hours idle, or 12 hours.[auth] session_idle_timeout_secs, session_absolute_timeout_secs.
Expired sessionsRemoved at boot and hourly.None; lat admin purge runs it on demand.
[auth]
max_failures = 5
session_idle_timeout_secs = 7200

[auth.password_policy]
min_length = 12