Forms that save as you go
Many forms in Flowtly have no Save button. Editing something that already exists stores each change on its own: a text field when you leave it, a selection the moment you pick it, and fields that only make sense together, such as an amount and its currency or the two ends of a period, as one change. A small status beside the field says when it is saving and when it is stored.
This is how you edit, among others, a client's details and contacts, a project's details and its phases, attribute values and a project's attribute set, a member's role and billing rate, a project's asset rates, reservations and commercial relations, and a counter's client price. The pages for those screens describe what each field does; this page describes what every one of these forms has in common.
Undoing the last change
After a change is stored, an Undo change button appears beside that field's status for 8 seconds, with a ring that runs down as the time passes. While it is there, you can also press Ctrl + Z (⌘ + Z on a Mac) in that field.
- Undo writes the previous value back as a new save. It goes through the same checks as any change, and the field shows it being saved. A group of fields saved together is undone together.
- Only the last change can be undone. There is one undo per form. It ends after 8 seconds, as soon as you type in that field again, so an undo never overwrites what you have just typed, or when you save a change in another field, which moves the undo there.
- A first value cannot be undone this way. If the field was empty before, there is nothing to write back. Clear the field instead.
- An undo is itself a change, so it can be undone in turn while its own 8 seconds run.
Outside those 8 seconds, and in any field without an undo, Ctrl + Z is your browser's ordinary text undo. Once the time is over, the record's history is the audit trail.
When a change is not saved
A refused change stays on its field. The field keeps what you typed, shows Not saved with the reason the server gave, and offers Retry. It does not fade and it does not appear as a message somewhere else on the screen: it stays where the problem is until the field saves.
The top of the form counts them. When one or more changes were not saved, a line at the top of the form says how many, for example 2 changes are not saved, with Go to the first unsaved change beside it. The jump goes to the first one in the order the form shows them, not the order they failed in, and in a drawer made of sections it opens the section that holds it first. A group of fields saved together counts as one change. Once every refused change is saved, the line goes away.
Working without a connection
If your connection drops, a change you make is not lost and is not reported as a failure. It waits:
- The field shows a cloud icon, read out as No connection, waiting to save, and keeps the value you typed.
- The top of the form says No connection. Your changes are waiting and will save by themselves., with Try now beside it.
- The waiting changes are saved in the order you made them, one after another: as soon as the connection returns, when you press Try now, when you make your next change, and every 10 seconds while your device reports that it is online.
- Editing a waiting field again keeps one waiting change with your latest value. Typing it back to the stored value removes it from the queue.
- A change the server refuses once the connection is back stays on its field, as above, and does not hold up the others.
Waiting changes are held while the form is open. They are not kept if the page is reloaded, which is why leaving asks first.
Leaving a form with changes outstanding
Closing a dialog or a drawer first stores whatever you are still typing, and waits for it. If a change is still being saved, is waiting for the connection, or was refused, Flowtly asks Not all changes are saved before anything is lost. Leave anyway discards those changes, including any that were waiting for the connection, so nothing is written after you chose to leave.
Reloading the page or closing the browser tab while changes are outstanding brings up your browser's own question about leaving the page. Flowtly also holds back its own reloads, for example when a new version is installed, until your changes are saved.
A record your role allows you to view but not change opens read-only: there is nothing to save, nothing to undo, and closing it never asks.
Example use cases
- Undo a wrong currency picked on a billing rate within a few seconds, without retyping the amount.
- Correct a client's details on a train with a patchy connection and let the changes save when the signal returns.
- Jump from the top of a long project form straight to the one field the server refused, instead of scrolling for it.
- Close a reservation drawer knowing every change was stored, because Flowtly would have asked otherwise.