Using the workspace

How to find your way around the workspace at /app: the sidebar, the overview, the requirement tree, the filters, Go to, and what happens when two windows edit the same thing. Shortcuts are given for a Mac; elsewhere use Ctrl for ⌘. They are all in one table under Keys.

Layout

A list's page. The sidebar chooses what the main area shows; the tree and the pane scroll on their own. On a narrow window the tree and the pane stack.

Overview

The workspace on one page, and where /app opens.

A workspace with no lists shows Start with a list instead, with New list and New verification.

Requirements pages

There are two, and both show the tree on the left and the selected requirement on the right.

One listAll requirements
Opened byClicking a list in the sidebarAll requirements in the sidebar
ShowsThat list's treeEvery list's tree, one after another in sidebar order, each under a band with its code, title and tallies
HeaderCode, title, the description on one line, the count, the text filter, the status bar and its legend, which is the status filter, List settings (title, description, delete) and New requirementCount, the text filter, the status bar and filter, and Lists, which chooses the lists shown. It reads Lists · 2 of 3 when some are hidden.

The tree

From leftWhat it is
RailsOne for each level above the row
▾Shows or hides the row's children
HW-4The cite, filled with the requirement's status. The cites of one row's children line up, so their text starts at one edge.
Title and statementThe title in bold, then the statement, wrapping as needed. A requirement with no statement shows its title alone.
The requirement has a body; hover to read its first lines

Adding requirements

UseThe new requirement goes
New requirement in the headerAt the end of the list
Add a requirement after, the first of two buttons at the end of a row while you hover over itStraight after that row and its children, at the same level
Add a child requirement, the second of those buttons, or in the pane's ⋯ menuAs that row's last child

While the form is open, a dashed line labelled New requirement goes here marks the spot in the tree, and Where it goes in the form says it in words: At the top level, after HW-4, or Under HW-1 Power supply, last. Drag the line, use In and Out, or the keys, to put it somewhere else. After you create one, the form stays open just below it, ready for the next, with the cursor back in Title.

On an empty list the form is already open. New requirement then puts the cursor back in it.

Moving requirements

Drag a row to where you want it. Up and down chooses the gap; sideways chooses the level, one level per rail. The line shows where the row will land, and its tag says so in words:

The requirement pane

Select a row and the pane shows it. From top to bottom:

Edit changes the title, the statement and the body: Add body in the form adds one. If a run has passed or failed the requirement, saving a changed statement or body asks whether the change affects what it requires; your text stays in the form while you answer (see Needs review). Delete requirement, in the menu and at the foot of the edit form, is turned off while it has children.

The body

A requirement's body holds what its statement depends on and cannot hold itself: a table of limits, a register layout, sub-clauses. It is part of the requirement, as binding as the statement (see Requirements). Edit body or Add body in the pane opens it on its own, with the statement above it for reference. Edit and the new-requirement form have it too, under the statement. In the pane the body is drawn in a field of its own, with its headings, lists, code and maths (see Blocks in a body).

History

Every saved change to a requirement's title, statement or body is kept. Show history at the foot of the pane shows what changed, newest first. It compares the text as it was typed, so formatting marks and cites show as written.

Filtering by text

On a requirements page, type in the field above the tree, or press ⌘F to go to it. The tree then shows only requirements whose cite, title or statement match (not the body), with their parents for context. Parents that do not match are drawn faint, with their cites in grey, and matched characters are bold. The header counts what is shown: 12 of 214 shown. Emptying the field shows every row again.

You typeIt findsBecause
RIPPLE3V3 rippleCase is ignored
enclenclosureA word can start anywhere inside a word
heatrheaterA word may skip one character
rail loadrail at full load, not load on the railWords must appear in the order typed
frac$\frac{a}{b}$Maths is matched as its TeX source

Filtering by status

The bar in the header counts the requirements shown by status, and its legend is the filter. Click a status to show only that status. Click others to add them, or click one that is shown to hide it again. Show all, at the end of the bar, clears the filter. Here Fail and No coverage are shown:

5 Pass1 Partial pass3 Fail2 Untested2 No coverage

Go to

Press # anywhere outside a text field, or click Go to at the top of the sidebar, then type a cite to jump to any list, requirement, verification or run. With nothing typed, it lists the places you visited most recently.

You typeIt finds
hw3HW-3 first, then HW-30, HW-31 … and any cite containing HW3
pwrrun3VERIF-PWR:RUN-3: case, hyphens and colons are ignored
railVerifications whose name contains rail, after any cite that matches

Runs come last unless you type one exactly. Go to does not search the text of requirements; the text filter does that.

Keys

KeyWhereDoes
#Anywhere outside a text fieldOpens Go to
⌘FA requirements pageGoes to the text filter and selects its text
↑ ↓The treeSelects the row above or below
→ or TabThe treeMoves the selected row in a level
← or ⇧TabThe treeMoves the selected row out a level
⌘] ⌘[The new-requirement formMoves the line in or out a level
Alt+↑ Alt+↓The new-requirement formMoves the line up or down a gap
EnterThe text filterSelects the best match
↑ ↓The text filter, or Go toSteps through the matches
EscThe text filter, Go to, or a dragCloses it, or cancels the drag

Editing in more than one window

The workspace does not update by itself. With it open in two windows, or on two computers, each shows what it last loaded until you act, move to another page, or reload. Saving over a change you have not seen is refused:

You saveAfter another windowYou see
A requirement's title, statement, or body from EditChanged or moved itThis requirement changed after you opened it. Copy your text, then reload the page.
A requirement's body from Edit bodyChanged its bodyThe differences, with Save mine instead and Use the saved body (see The body)
A list's title, a verification's draft, a run's rows or details, or a mapping's notesChanged itReload this view.
A moveMade it impossible, for example by deleting the new parentReload this view.

Your text stays in the field. Copy it, reload, and make the change again on top of the other one. A move that still makes sense when it arrives is simply carried out.