2

I am adding to my app a way so that customers can restart their system.

Now, the question I've got is:

What's the best way to design or even create an interface for a restart?

If I think of what surrounds me, the first thing I can think of is a PC:

When you reboot your PC, everything shuts down and you don't really have an interface.

This however is a bit different if compared to what I need.

I need to be able to restart something from an app. The app is not restarting, but the system that controls is.

At the moment, I have a simple confirmation button with a countdown timer (counts down from 5minutes, and then it's says that it's done).

Again, this is cause some issues:

1 - 5 minutes it's an assumption. It is not 100% sure after 5 mninutes the system is restarted and properly back online, I am just guess it is.

2 - On devices, if the app is minified the countdown stops (this is more a development issue, anyway)

So, what's the best way to tell users I am rebooting their system and that it can be offline for 2-5 minutes?

thanks for any suggestion

  • Do you have a way of knowing when the reboot is complete, or can you only ever make an assumption? – Matt Obee Mar 27 '17 at 11:27
  • Do you mean WhatsApp restarting iPhone? – DPS Mar 27 '17 at 11:30
  • II ould if I need to. I can write some code that polls and checks when it's properly back online...but i was after a solution without having to add it, if possible – Nick Mar 27 '17 at 11:30
  • 2
    if your target system responds once it is restarted, you can notify the user that the system has restarted. A good example is your router/modem admin pages,using those you can remotely restart your modem without manually powering it off. – semuzaboi Mar 27 '17 at 11:32
  • 1
    Do you mean the dialogue before or during restart or both? – Christian Strempfer Mar 27 '17 at 20:17
1

The only way you'll be able to provide any value to the user during this time is to ensure that the feedback you provide to the user is meaningful.

For example, if you upgrade the system hardware in the future and the reboot only takes a minute and a half, then you'd have to release a new version of your software so that the user isn't staring at their control device for an unnecessary additional 3.5 minutes.

Ideally, you'd be able to query your system and display real-time status updates so that the user knows exactly what's going on. I would model this after the last step in a software installation wizard:

Installation Wizard statuses

This pattern provides multiple benefits to the user.

  1. It shows them that the system is currently unavailable/busy.
  2. It shows an approximation of where in the process the current activity is.
  3. It shows what stage it's currently working on.

(Certainly the aesthetics can be improved upon, but the meaningful feedback and process transparency is the point of this example.)

  • As this is the accepted answer, I'm curious how that solves current issues: the duration is only a guess and as long as the server is restarting you won't get any status updates. – Christian Strempfer Mar 28 '17 at 11:50
  • @ChristianStrempfer I don't think OP ever said it was a server. I also mentioned that this would be the ideal solution. The status may as well be "The system is still offline" or "The system is still rebooting". I would imagine there are other discernible and meaningful statuses that could be derived from a reboot process.. again, neither of us has any way of knowing for sure what is possible because we do not know the "system" in question. – maxathousand Mar 28 '17 at 12:29
  • You're right. It was never mentioned what kind of system it is. Nice catch. – Christian Strempfer Mar 28 '17 at 13:28
4

The longer the duration or the higher the risk that something goes wrong, the more information you should provide. I assume that restarting the server takes several minutes and has a high risk to not be recoverable after something fails.

  • Don't show a countdown or progress bar, because the restart time is unknown and the user expects that the server is up after that time. Instead have a timer counting up.
  • Show a textual hint about the duration. "This may take several minutes." Even better show statistics based on real data: "The last 5 restarts completed after 8:24 minutes in average."
  • Tell the user what to do if it takes unusual long, e.g. a hotline number.
  • Update the view when the restart is done. For mobile apps a notification outside of the app could be helpful, so that one doesn't need to switch to app to see if it's finished.
  • Update the view with the time when the status was lasted checked. This indicates to the user, that the app didn't freeze. I assume you cannot print a progress log, else also show it.

mockup

download bmml source – Wireframes created with Balsamiq Mockups

Use different font styling to highlight the important information, e.g. I would give the first paragraph a bigger font size.

0

In my experiences, using a Windows default dialog box seems to do the job. Because of the simple/basic design, it will alert users that the dialog is something different than your usual navigation through the application, and that something on the system level is being effected.

Here is a photo of what I am referring to:

enter image description here

If you want to go an alternate route and need this for an application, I would look to model your restart dialog to look very similar to this in as many ways as possible. As I said, this seems to always stop me in my tracks when I am working through an application. If you are working in a mobile environment, look at some of the default restart prompts you receive when restarting the mobile phone using the settings. I.e., if it's an iPhone, try to model the restart after the iPhone "Slide to Restart" view.

enter image description here

  • 2
    I would like to add that you PLEASE DO NOT make the "restart" button the default button. In the Windows screenshot above pressing Enter or Space would press the restart button. The default button should be the safest choice, so when users rush through they don't inadvertently lose their work. – Ben Harrison Mar 27 '17 at 14:01
  • @BenHarrison good point. Agreed. Or at least provide a confirmation. – Levi J Mar 27 '17 at 14:27
  • 1
    This does not answer OPs question. OP stated that "I need to be able to restart something from an app. The app is not restarting, but the system that [it] controls is." The examples/models you provide show interfaces for restarting the device with which the user is currently interacting, however, OP is asking about a pattern for restarting a separate device from the control device. – maxathousand Mar 27 '17 at 20:21

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.