Angular actions do not prevent multiple clicks

Bug #1560303 reported by Justin Pomeroy
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
OpenStack Dashboard (Horizon)
Fix Released
Medium
Justin Pomeroy

Bug Description

The angular actions list widget does not prevent the user from being able to click an action multiple times before it has been performed. This is mainly a problem when the action results in some asynchronous operation that must resolve before the action can actually be performed. Specifically the Update Metadata action on the angular images table is a good example of this. After clicking the action, there are two API requests that need to resolve before the user sees the metadata modal. If those requests take a long time it's easy to click the action multiple times and get more than one modal.

Tags: angularjs
Justin Pomeroy (jpomero)
Changed in horizon:
assignee: nobody → Justin Pomeroy (jpomero)
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to horizon (master)

Fix proposed to branch: master
Review: https://review.openstack.org/295605

Changed in horizon:
status: New → In Progress
Changed in horizon:
importance: Undecided → Medium
milestone: none → newton-1
tags: added: angularjs
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to horizon (master)

Reviewed: https://review.openstack.org/295605
Committed: https://git.openstack.org/cgit/openstack/horizon/commit/?id=ff3232a318a249e2320f0a0fac9589e0ce7d4018
Submitter: Jenkins
Branch: master

commit ff3232a318a249e2320f0a0fac9589e0ce7d4018
Author: Justin Pomeroy <email address hidden>
Date: Mon Mar 21 14:31:07 2016 -0500

    Disable all actions while performing action

    This updates the angular actions controller so that all actions
    controlled by the same actions controller become disabled immediately
    when performing any action. This prevents the user from being able to
    click an action a second time while the action is being initialized.
    This is mainly a problem in cases where there is some asynchronous
    operation happening that needs to resolve before the action can be
    performed. For example, the Update Metadata action needs two API
    calls to resolve before the modal is displayed. If the requests take
    a long time to resolve or the user is feeling anxious they can click
    the action a second time, or even some other action before the Update
    Metadata modal even gets displayed.

    This is not a perfect fix since there are a number of other bad
    things a user could do if an action takes a long time such as
    clicking a link or breadcrumb to navigate to another page. Ideally
    actions should result in immediate feedback to the user and any
    asynchronous operations happen afterwards. For example, the metadata
    modal gets displayed immediately with a loading indicator and then
    the API requests are initiated.

    Closes-Bug: #1560303
    Change-Id: I7d7696a03de85434f692ab0313d3dbdcbb582f25

Changed in horizon:
status: In Progress → Fix Released
Revision history for this message
Davanum Srinivas (DIMS) (dims-v) wrote : Fix included in openstack/horizon 10.0.0.0b1

This issue was fixed in the openstack/horizon 10.0.0.0b1 development milestone.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.