Problem
- The last installer screen is a needless confirmation page and point of interaction.
Goal
- Ensure the best possible usability for the early installer experience.
Details
- Desktop software installers almost always have a dedicated completion screen.
- The difference with desktop software is that once you've installed the software it usually isn't actually running - the confirmation screen lets you launch the program - or alternatively just close the installer if you don't want to use it right now.
- If you're installing Drupal, once it's done the site is running and anyone can look at it (assuming it's on a publicly accessible host), so it's not really the same thing at all.
- #1870820: Ditch the last page of the installer? points to a usability study showing people don't like this confirmation page in its current form.
Proposed solution
-
Remove the last installer screen, redirect to front page after completion, and just output the confirmation message on the front page instead.
-
Temporarily include a hack to satisfy a PIFR/testbot assertion that checks whether Drupal installation completed.
This hack is not visible to any end-user (even screen readers) under all circumstances (even if CSS fails to load).
→ Will be removed from core after #1317548: Remove assertion for final installation page
Original summary:
I suggest removing the confirmation page that is displayed right after the installation has been completed. It only tells the user the installation has been completed. This message could be displayed at the front page too, saving the user one step to take.
Comment | File | Size | Author |
---|---|---|---|
#50 | drupal8.install-finished-redirect.50.patch | 5.48 KB | sun |
#48 | interdiff.txt | 715 bytes | sun |
#48 | drupal8.install-finished-redirect.48.patch | 5.1 KB | sun |
#21 | joomla-final-step.png | 100.68 KB | David_Rothstein |
#14 | drupalInstallationWithoutConfirmationScreenAtEnd-patch13.png | 72.56 KB | aiwata55 |
Comments
Comment #1
Anonymous (not verified) CreditAttribution: Anonymous commentedThis is still true in D8.
Xano's suggestion makes sense to me. The only thing I can think of is that we might want any errors to show up as part of the install sequence rather than on the homepage. However, we can just use the check for $messages['error'] to detect that and redirect the user if there are no errors.
This patch does that.
Comment #3
Anonymous (not verified) CreditAttribution: Anonymous commentedI believe this fails because of something in the Project Issue File Review project, which probably checks for a page or output that the patch bypasses. My guess is that it has something to do with the install function of
project_issue_file_review/review/drupal/pifr_drupal.client.inc
.Comment #4
David_Rothstein CreditAttribution: David_Rothstein commentedHm, I'm not sure I've ever seen a software installer that didn't have a completion screen. Are there any good examples? Especially since we switch themes after the installation is complete, it seems like it would be weird not to have one...
Comment #5
Anonymous (not verified) CreditAttribution: Anonymous commentedI figured I'd do a little research and look to se WWWPD... it seems WordPress does have a completion screen. You can also check this out if you want to watch WordPress being installed to Evanescence.
So with that in mind, I think keeping the completion screen makes sense. Also, I really don't want to debug PIFR anyway. If no one disagrees, I'll mark this "works as designed".
Comment #6
Bojhan CreditAttribution: Bojhan commentedSorry, but what is this doing? There are no screens to review
Comment #7
Tor Arne Thune CreditAttribution: Tor Arne Thune commentedThe result of the patch in #1 is attached, for usability reviews. As said, it would replace the final confirmation screen of the installer if no error messages need to be displayed.
I don't see a problem in removing the confirmation screen if the only thing it does is display congratulations. It would need a usability review from a usability expert though.
Comment #8
Bojhan CreditAttribution: Bojhan commentedAhh! Actually, I have always found it super awkward this page is in our installer. I would be more than happy to cut this page from our installer.
Although usability testing would need to confirm, I think the message that you have successfully installed your site should be enough to inform people. I am not sure that Wordpress actually has a last step?
Any patch that tries to reduce steps and/or simplify the install profile should be given extra consideration.
Comment #9
kika CreditAttribution: kika commentedBothering me from Drupal 5.0 (can not find the original report). Please kill the last page. Success report is important but it should not slow you down. Convert it to drupal_set_message() ?
Comment #10
yoroy CreditAttribution: yoroy commentedMakes sense to me. I have a faint memory of this page existing to handle cases where installation is not succesful. Dww probably knows more about this :)
Comment #11
Bojhan CreditAttribution: Bojhan commentedCan this get a reroll?
Comment #12
Anonymous (not verified) CreditAttribution: Anonymous commentedI tried to explain this, but I must not have done a good job. I don't think a reroll will help anything here.
It fails with:
I believe that the problem is in the Project Issue File Review. I believe it is checking for the confirmation screen to ensure that it has installed properly before running tests... so it isn't even reaching any tests that I could fix, it's just failing before it reaches the tests.
Comment #13
Bojhan CreditAttribution: Bojhan commentedOk, then can this get a review? Added -d8 so, the status isn't constantly reset to needs work.
Comment #14
aiwata55 CreditAttribution: aiwata55 commentedI applied the patch at #318975-13 to a clean installation of D8, and it worked. The screenshot after completion of the installation process is attached.
Comment #15
Bojhan CreditAttribution: Bojhan commentedThis needs feedback from the maintainer, whether it should go in core.
Comment #16
Anonymous (not verified) CreditAttribution: Anonymous commentedIf this goes into core, I believe PIFR would need to be changed in order for tests to run.
Comment #17
catchI'd personally like to get rid of the extra screen as long as ux maintainers are happy. Like Lin says this will need a co-ordinated test bot patch before it can go in.
Comment #18
Bojhan CreditAttribution: Bojhan commented#1317548: Remove assertion for final installation page Can anyone make a patch?
Comment #19
xjmSetting active to make it clear there isn't a patch yet.
Comment #20
David_Rothstein CreditAttribution: David_Rothstein commentedThe latest patch is in #13...
Bojhan and I talked about this for a while at BADCamp, though, and concluded it needs work. I'll try to write up a quick review later.
Comment #21
David_Rothstein CreditAttribution: David_Rothstein commentedSo first, we discussed that this is definitely introducing an uncommon pattern. Per the video in #5, the Wordpress installer has a completion screen, and as shown in the attached screenshot, Joomla does too - basically a "Congratulations" message on the left (and a nice big error message on the right). Also, outside the CMS world, desktop software installers almost always have a dedicated completion screen.
That definitely doesn't mean we shouldn't do this, just that we should hold it up to a higher level of scrutiny :) Bojhan felt that the extra screen doesn't accomplish much and we might be able to have a nicer experience than most software installers by getting rid of it.
However, there are a couple things this patch would need to do to make that experience actually smooth. Currently, all the visual cues still point to the previous experience. For example:
Also, I think the drupal_goto() in the patch may break Drush/command-line installs...
Comment #22
catchFor me the difference with desktop software is that once you've installed the software it usually isn't actually running - the confirmation screen lets you launch the program - or alternatively just close the installer if you don't want to use it right now.
If you're installing Drupal, once it's done the site is running and anyone can look at it (assuming it's on a publicly accessible host), so it's not really the same thing at all.
Agree with David's review - and removing special casing of error messages sound fine - as long as they'll get displayed on the site or admin/reports somewhere after which should always be the case anyway. It's not as if the confirmation screen helps you to actually fix those.
Comment #23
David_Rothstein CreditAttribution: David_Rothstein commentedClosed #1870820: Ditch the last page of the installer? as a duplicate (which points to a usability study showing people don't like this confirmation page in its current form).
Comment #24
sphism CreditAttribution: sphism commentedThis is an interesting idea, I'd say either make the confirmation page more useful or interesting, or get rid of it.
A message, plus the default home page content should do fine I think.
If not then I was thinking you could have links to other things for newbies, like, get ”started with Drupal tutorial" or whatever, but actually I'd say that belongs elsewhere... After you first log in there's little hint about what you do next
Comment #25
sun+1 — I agree we should remove the last confirmation page.
However, sorta related to @David's list in #22, we have to account for a few extra cases to get this right:
Attached patch just simply removes the page output from the last
install_finished
install task, and changes thedrupal_install()
dispatcher to issue a redirect response upon completion of the installer.Comment #27
sunTestbot is still blocked on #1317548: Remove assertion for final installation page
Comment #28
jthorson CreditAttribution: jthorson commentedI don't think this necessarily needs the PIFR patch first in order to proceed with testing ... so long as the first page after the 'Save and Continue' button is clicked contains the text "Drupal installation complete", then PIFR will pass installation.
Getting the patch in this issue to test successfully on testbot should be as easy as adding "Drupal installation complete" to the drupal_set_message() currently containing "Congratulations, you installed @drupal".
We can certainly modify PIFR to check for a different message; but I wanted to point out that you aren't actually blocked *completely* from a testing perspective.
Comment #29
sunAlright, let's use a temporary hack then.
Comment #31
sunheh, looks like I was a bit confused in CSS style vs. class names... ;)
Comment #32
sunUpdated issue summary. Let's move forward here? :)
Comment #33
sunDo we want to move forward here?
I'm more than happy to create a follow-up issue to remove the temporary adjustment for PIFR that is being added here.
I don't think we should block ourselves on infrastructure issues, as long as there is a safe and sensible workaround (as in this case).
Comment #34
sunFeedback, anyone? :)
Comment #35
klonosWell, functionality-wise... it works as advertised! I cannot do a code review though.
...well except that this part of the patch:
seems that would leave behind this:
I see no point unless I'm missing the whole picture here in which case simply ignore me.
Comment #36
sunThanks, that's a great question :-)
In the Drupal core installer, each of these keys represents a callback function that is invoked when the installer step is reached. All steps that have a
'display_name'
associated are automatically exposed in the left-hand "task list" of the installer, including completion status visualization.Because the
'install_finished'
step still performs some necessary final clean-up tasks, we simply remove its label, so that the task is no longer exposed in the UI, but the callback function is still invoked as soon as it is reached.Comment #37
klonosOk that makes sense. Thanx for taking the time to explain.
Comment #38
sun31: drupal8.install-finished-redirect.30.patch queued for re-testing.
Comment #41
sunRe-rolled and adjusted for new interactive installer tests.
Comment #42
klonosGave it a spin at simplytest.me and it still works. Still not the right person to do an actual code review - only the testing part of RTBC.
...as an improvement (no need to hold this back - can be a follow-up), we could have a one-time notification saying "Congratulations!" once in the home page and have it removed on next visits to that page. Seems to me that system messages fits this role perfectly, so we could have the
t('Congratulations, you installed @drupal!', array('@drupal' => drupal_install_profile_distribution_name()))
thrown above the "Welcome to [site_name]". Just a thought.Comment #43
tstoecklerCode looks good, but reading #42 seems as though the drupal_set_message() in the patch does not actually work correctly?!
Comment #44
klonosYeah, there wasn't any system message on the page when installation finished at simplytest.me
Comment #45
klonos...and I just checked again in order to make sure. There is no system message on the "Welcome to [site_name]" page.
Comment #46
sunWere you logged in after the installation completed? In order for the message to show up, uid 1 has to be logged in, because the message is set for the session of that user.
I just tried it myself on simplytest.me, with both the Minimal and Standard profile, and both times I was not logged in.
That's a known issue: #2108623: Installing via the UI no longer logs in user 1 every time
Comment #47
klonosYou are right, I didn't log in. Still, shouldn't the message kick in once I log in?
Comment #48
sunTo prevent this patch from getting hold up on the separate and existing bug of #2108623: Installing via the UI no longer logs in user 1 every time...
Attached patch adds an actual test assertion to verify that the confirmation message does indeed appear after installing. :-)
Just like the existing assertion that the user is actually logged-in after installation, this assertion passes, too. So this is yet another proof that #2108623 must be caused by something that happens in the front-end (e.g., JavaScript).
This means we can move forward here, because this patch here fully works as intended.
Comment #49
klonosSeems fair enough to me.
Comment #50
sunRe-rolled against HEAD.
Would be great to move forward here.
Comment #51
sunI wonder if no one sets this to RTBC due to the temporary hack to satisfy PIFR?
Comment #52
Bojhan CreditAttribution: Bojhan commented:)
Comment #53
Tor Arne Thune CreditAttribution: Tor Arne Thune commentedGreat to see this RTBC. One less click. A temporary hack that has an RTBC issue to clean it up shouldn't prevent this from going in. The testbot team could then commit and deploy the change at their own leisure.
Comment #54
sunCommitting this would help to move forward on #2218039: Render the maintenance/install page like any other HTML page, because that patch causes (false) test failures in the confirmation page step of interactive installer tests. Instead of monkey-patching those test assertions, we should remove them (with this patch here).
Comment #56
catchCommitted/pushed to 8.x, thanks!
Comment #57
Wim LeersOMG YES! Thank you so much for doing this!
I'm tempted to tag this "sudden outbreak of common sense", because that's what it feels like.