Tip: Make it harder to accidentally press reset buttons

Reset buttons enable users to conveniently wipe out all data entered in an app, but pressing them accidentally can ruin days of data entry. This tip explores a number of techniques for making it harder to press them accidentally, including hiding them unless the user confirms that they should be shown.

We’re asked to look at lots of apps built by our community every day, and we’re learning a lot from the experience. We’ll be sharing more of what we’ve learned over the next few months, but we’ll start off with one very common pattern we see in apps built with Calcapp.

It’s now been more than a year since we added support for reset buttons. They’re great for quickly resetting an app to its factory state and the majority of apps use them.

The only problem with reset buttons is that sometimes they’re too powerful. A reset button can not only reset one panel of your app, it can reset all of your panels. While useful, your users run the risk of removing lots of entered data if they press your reset button by mistake. We have seen lots of apps where users are expected to record their working hours and submit them by the end of the week, for instance, and having all this data removed before it has been sent can be a real inconvenience.

In this post, we explore a few options for protecting your reset buttons, making it less likely that users press them by mistake.

Using a separate panel

The most straight-forward way of protecting a reset button is to put it on a separate calculation panel, far away from the panels where users actually enter data. Here’s an app for entering working hours with a main menu in the form of a list panel, whose last option leads to a calculation panel with a reset button:

Using a separate panel to protect reset buttons: menu

Remember to change the option in the inspector enabling the button to reset all fields in the app:

Using a separate panel to protect reset buttons: button

This is a simple but effective solution. It won’t do, however, if you want the reset button to be part of the panel where users enter data.

Hiding the reset button unless a switch is toggled

In this solution, we’ll explore hiding the reset button unless a switch field is toggled. Here’s what it can look like:

Hiding a reset button protect it: switch field

In the app above, the user must toggle the switch field named ReallyReset in order for the reset button to become visible. To achieve this, you need to tie the Visible property of the button to the reset field. Select .Visible from the drop-down menu next to the formula bar and type the name of the switch field: ReallyReset.

Making it even more difficult to reset all fields

If you want to make it really hard for a user to accidentally press a reset button, you can ask your users to enter a special text string in a field before showing the reset button. Here’s an example:

Hiding a reset button protect it: text field

In this app, the user needs to explicitly type “reset” into a text field in order for the reset button to become visible. To achieve this, change the switch field into a text field (by pressing the abc button in the inspector). Select .Visible from the drop-down menu next to the formula bar and type the following formula: ReallyReset = "reset". (This text comparison is case-insensitive, meaning that “RESet” will also be accepted. Use the EXACT formula function for a case-sensitive comparison. The reference sidebar has more information, as usual.)

In the off chance that you want to make it even more difficult to press a reset button accidentally, you can make your users solve simple mathematical problems. This is beyond the scope of this post, though.

Finally, instead of explicitly hiding a reset button, you can simply disable it, which grays it out. To achieve this, simply use the Enabled property instead of the Visible property of the reset button.

Do you want to share a tip with other Calcapp users through this blog? Let us know!

« Release: Our October, 2017 update is here Bug report: Apps now work offline again »