University of Baltimore usability test :

There can be quite a bit of delay between the clicking the install button and seeing the progress bar. This caused hesitation in few users and it looked as if they were going to click install again.

I assume in practice this occurs from time to time, I created a patch but didn't get it completely working yet.

Comments

webchick’s picture

I'd rather this didn't go in system.js since iirc that's loaded on basically every page. If it's specific to the installer, let's put it in install.

However, I'm not really enthusiastic about fixing this in one place and not everywhere. Inconsistency creates a bad user experience as well.

I'm also a little nervous about this general approach, since I've seen this type of thing be very flaky and lock yourself out of doing anything if something unexpected happens after you click the button. Let's analyze what other websites are doing and make sure this approach hasn't fallen out of favour since I haven't seen it in quite awhile.

The solution needs some discussion from some JS-knowledgeable folks.

webchick’s picture

Status: Active » Needs work
Bojhan’s picture

Right, well I see your point in applying it at other places. But I feel that only in the installer, it can cause real major problems? Just for the sake of the kittens. Especially as its mostly caused by the fact that the action behind this button is a bit slow, on many servers - other buttons shouldn't cause this as much.

In any file is oke, I just put it there since I didn't saw a installer.js.

It isn't applied in many sites (most actions don't require this), I know Basecamp does it.

webchick’s picture

Well, the normal way we would do this is put the facility to provide "disabled buttons" in core, and then selectively apply it where it makes sense. For example, the installer, node/comment submit forms, the module page, etc. There are lots of places where Drupal takes longer than the average request, so I'm not sure I'm keen on a one-off hack to install.php. But let's see what others have to say.

Bojhan’s picture

I have absolutely now idea how to do this, but yes.

seutje’s picture

StatusFileSize
new585 bytes

I think it's better if we disabled submitting the form twice rather than clicking the button twice, as forms can be submitted by other means (pressing enter in a textfield for example)

so I suggest using something like this:

$('form', context).one('submit', function(e) {
  $(e.target).bind('submit', function(e) { e.preventDefault(); });
});

personally, I don't see why we don't just put this in form.js

Bojhan’s picture

Priority: Normal » Critical

I am upping this to critical, since it seemed to happen a lot during last usability testing round.

p.brouwers’s picture

seutje, disabling the form itself seems better. But the user should get some feedback, maybe change the value of the submit button to 'submitting...' or something.
Note: disabling a submit button could cause the form not to be submitted in IE when disabling it too quickly.

sun.core’s picture

Priority: Critical » Normal
Status: Needs work » Fixed

This should be fixed by now. The installer has been vastly sped up.

Bojhan’s picture

Status: Fixed » Active

It actually was an issue before, it got so slow .

Bojhan’s picture

Assigned: Bojhan » Unassigned

so, no

yoroy’s picture

It's not clear what that last 'No' means :)
Still needs work?

Bojhan’s picture

Status: Active » Closed (won't fix)

Installer is pretty fast now, and the patch creates flaky behavior.

David_Rothstein’s picture

It's still slow for many people; however, the best solution for that is to speed it up :)

And also to make it more robust to interruption.

There's an issue for that at #881494: Double-clicking the "Install Drupal" button completely breaks everything (similar to and almost a duplicate of this one). We could continue over there. But yeah, seems like we want to rule out the "disable the button" approach for the time being.

clemens.tolboom’s picture

I reused the patch from #6 in a more general discussion in #1705618: Double click prevention on form submission as we have more issue regarding double clicks :-/