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

  1. Remove the last installer screen, redirect to front page after completion, and just output the confirmation message on the front page instead.

  2. 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.

Support from Acquia helps fund testing for Drupal Acquia logo

Comments

Anonymous’s picture

Version: 7.x-dev » 8.x-dev
Status: Active » Needs review
FileSize
1.82 KB

This 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.

Status: Needs review » Needs work

The last submitted patch, 318975-remove-install-confirmation.patch, failed testing.

Anonymous’s picture

I 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.

David_Rothstein’s picture

Issue tags: +Needs usability review

Hm, 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...

Anonymous’s picture

I 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".

Bojhan’s picture

Sorry, but what is this doing? There are no screens to review

Tor Arne Thune’s picture

Status: Needs work » Needs review
FileSize
50.61 KB

The 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.

Bojhan’s picture

Ahh! 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.

kika’s picture

Bothering 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() ?

yoroy’s picture

Makes 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 :)

Bojhan’s picture

Can this get a reroll?

Anonymous’s picture

Status: Needs review » Needs work

I 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:

7. Detect a Drupal installation failure
    Ensure that you can perform a fresh Drupal install.

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.

Bojhan’s picture

Status: Needs work » Needs review
FileSize
1.82 KB

Ok, then can this get a review? Added -d8 so, the status isn't constantly reset to needs work.

aiwata55’s picture

I 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.

Bojhan’s picture

Assigned: Unassigned » catch

This needs feedback from the maintainer, whether it should go in core.

Anonymous’s picture

If this goes into core, I believe PIFR would need to be changed in order for tests to run.

catch’s picture

Assigned: catch » Unassigned

I'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.

Bojhan’s picture

xjm’s picture

Status: Needs review » Active

Setting active to make it clear there isn't a patch yet.

David_Rothstein’s picture

Status: Active » Needs work

The 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.

David_Rothstein’s picture

FileSize
100.68 KB

So 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:

  • The button on the last form of the installer says "Save and continue" - needs to be more like "Save and go to your site".
  • The task list on the left side of the installer still has "Finished" as one of the steps - needs to be removed and perhaps otherwise tweaked so that the task list provides the correct context about what will happen.
  • We also need to figure out how the above will interact with the (hopefully rare) case where there are error messages at the end of the installer. Currently the patch shows a "finished" screen conditionally in that case but that may not be a good idea.... Possible alternative: If there are no longer any normal cases where error messages will show up there (I think that's mostly a Drupal 6 vestige) can we just kill that special-casing of the messages altogether?

Also, I think the drupal_goto() in the patch may break Drush/command-line installs...

catch’s picture

For 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.

David_Rothstein’s picture

Closed #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).

sphism’s picture

This 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

sun’s picture

Assigned: Unassigned » sun
Category: Feature request » Task
Issue summary: View changes
Status: Needs work » Needs review
FileSize
2.31 KB

+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:

  1. Right now, the "Finished" screen is not only used as final confirmation; it also allows installation profiles to inject additional installer screens prior to completion. That still needs to be possible.
  2. Due to that, we cannot really change the button of the database/settings form (or for that sake, any other additional form) to say "Save and continue to site" — unless that label would be automated. I'm not sure whether it makes sense to do that in the first place though, because if there are no additional screens by the profile, then the last form/screen that you interact with is the database/settings form, which kicks off the installation batch. "Save and continue" appears to be the proper label for that.
  3. In case of any warnings or errors during the installation batch processing, those have to be displayed after execution. That can still happen today, and aside from unexpected errors, I also believe that modules should be able to issue warnings during the installation process, so as to inform you that something might not have been setup in standard ways (due to environment/version issues, whatever). That said, as long as warnings and errors are output as regular messages on the newly installed site, I think we should be fine.

Attached patch just simply removes the page output from the last install_finished install task, and changes the drupal_install() dispatcher to issue a redirect response upon completion of the installer.

Status: Needs review » Needs work

The last submitted patch, 25: drupal8.install-finished-redirect.25.patch, failed testing.

sun’s picture

jthorson’s picture

I 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.

sun’s picture

Status: Needs work » Needs review
FileSize
2.51 KB
645 bytes

Alright, let's use a temporary hack then.

Status: Needs review » Needs work

The last submitted patch, 29: drupal8.install-finished-redirect.29.patch, failed testing.

sun’s picture

Status: Needs work » Needs review
FileSize
2.51 KB

heh, looks like I was a bit confused in CSS style vs. class names... ;)

sun’s picture

Updated issue summary. Let's move forward here? :)

sun’s picture

Do 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).

sun’s picture

Feedback, anyone? :)

klonos’s picture

Well, functionality-wise... it works as advertised! I cannot do a code review though.

...well except that this part of the patch:

@@ -862,7 +866,6 @@ function install_tasks($install_state) {
       'run' => $needs_translations ? INSTALL_TASK_RUN_IF_NOT_COMPLETED : INSTALL_TASK_SKIP,
     ),
     'install_finished' => array(
-      'display_name' => t('Finished'),
     ),
   );

seems that would leave behind this:

...
     'install_finished' => array(
     ),
   );
...

I see no point unless I'm missing the whole picture here in which case simply ignore me.

sun’s picture

Thanks, 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.

klonos’s picture

Ok that makes sense. Thanx for taking the time to explain.

sun’s picture

Status: Needs review » Needs work

The last submitted patch, 31: drupal8.install-finished-redirect.30.patch, failed testing.

The last submitted patch, 31: drupal8.install-finished-redirect.30.patch, failed testing.

sun’s picture

Status: Needs work » Needs review
FileSize
4.63 KB

Re-rolled and adjusted for new interactive installer tests.

klonos’s picture

Gave 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.

tstoeckler’s picture

Code looks good, but reading #42 seems as though the drupal_set_message() in the patch does not actually work correctly?!

klonos’s picture

Yeah, there wasn't any system message on the page when installation finished at simplytest.me

klonos’s picture

...and I just checked again in order to make sure. There is no system message on the "Welcome to [site_name]" page.

sun’s picture

Were 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

klonos’s picture

You are right, I didn't log in. Still, shouldn't the message kick in once I log in?

sun’s picture

To 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.

klonos’s picture

Seems fair enough to me.

sun’s picture

Re-rolled against HEAD.

Would be great to move forward here.

sun’s picture

I wonder if no one sets this to RTBC due to the temporary hack to satisfy PIFR?

Bojhan’s picture

Status: Needs review » Reviewed & tested by the community

:)

Tor Arne Thune’s picture

Great 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.

sun’s picture

Committing 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).

  • Commit 1f016bc on 8.x by catch:
    Issue #318975 by sun, Bojhan, linclark: Remove confirmation page after...
catch’s picture

Status: Reviewed & tested by the community » Fixed

Committed/pushed to 8.x, thanks!

Wim Leers’s picture

OMG 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.

Status: Fixed » Closed (fixed)

Automatically closed - issue fixed for 2 weeks with no activity.