Our web application has a calendar page which shows details of appointments. We train all users, but they are generally not tech-savvy. These appointments have one of several statuses:

  • open
  • confirmed
  • arrived
  • done
  • missed
  • canceled (beforehand)

All appointments start as open, it is not possible to have no status.

Mockup of calendar

To change the status, the user can either edit the entire appointment (click on the persons' name) or just click the appointment's status in the calendar. Clicking the appointment will cycle through the status in the above order, which represents the usual workflow and lifecycle of appointments in the application. Clicking on a canceled status reverts back to open. Clicking invokes AJAX that will refresh the status link and update the color of the appointment.

It is usually a frustrating error to click several times on the status link. Sometimes, the request takes 1-2 seconds and more impatient users click the link again. Depending on the browser, that will trigger another AJAX request and when the appointment is redrawn, a double-clicked open status is not confirmed, but arrived. The user then clicks on until arriving at "open" again and then clicks once to go to confirmed.

However, there are some power users who take advantage of that and click 3x in rapid succession to go from open to done at once.

Question: I am thinking of disabling the status link until it is redrawn to catch accidental double clicks. Disabling would style the link as normal text and disregard clicks. This would reduce errors, but take away the exploit for power users. Do you think this modification of common website behaviour is acceptable? Is the trade-off between error prevention and power users acceptable?

Please disregard the ugly mockup and whether that whole status-link thing should be changed, that will be subject to another question. Thank you in advance!

2 Answers 2


How about decoupling the redraw from the AJAX request? Redraw the status immediately without waiting for the AJAX request to complete. A good example of this is on this very site--the voting buttons show immediate feedback when you click. They don't wait for the server roundtrip.

It works well for both types of users. Power users can multi-click, while regular users get instant feedback and are less likely to double-click.

If you're then worried about prematurely declaring success, you could add a spinner icon to show that the change is still pending.


download bmml source – Wireframes created with Balsamiq Mockups


Is there some technical reason why you're choosing to cycle through the values? Seems like even if the redraw was instantaneous, the usability would be poor because the interaction has an almost analog feel.

Why not have the click open list from which the user can choose?

enter image description here

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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