Bug #61637 Skip unnecesary screens when: no dependencies, no Package to Install/configure
Submitted: 24 Jun 2011 19:41 Modified: 30 Nov 2017 16:31
Reporter: Juan Rene Ramirez Monarrez Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL for Windows: Installer Severity:S3 (Non-critical)
Version:5.5.13.2 OS:Windows
Assigned to: CPU Architecture:Any

[24 Jun 2011 19:41] Juan Rene Ramirez Monarrez
Description:
There are three screens that should be skipped if they do not do anything on the installation process:

Check Requirements : If there are no dependencies just skip this screen
Installation Progress : If nothing was selected just skip this screen
Configuration Overview : If on the selected packages none requires configuration just skip this screen.

This could be seen either as a bug ( showing unneeded screens ) or as a usability enhancement, in any form, users donĀ“t have to go through all those screens if not needed.

How to repeat:
The easiest one : Start the wizard and just click on the Next button without selecting any package... you'll go through all the screens and get a final one indicating the installation was completed.

Suggested fix:
Make some validations available to the InstallWizardControl.cs so it can use them to decide what's the next screen to be shown, like adding some methods like the next ones on ProductManager.cs, and then use them on InstallWizardControl.cs on Next_Click in order to determine which is the next screen to be shown according to the configuration being installed:

    public static bool ChangesNeeded()
    {
      bool ret_val = false;

      foreach (ProductCategory pc in ProductManager.ProductCategories)
      {
        foreach (Product p in pc.Products)
        {
          // In order to support per-feature changes we must check such changes independently of
          // the installation proposal for their owning product.
          if ((p.ProposedInstalled && p.IsUpgrade) || p.HasChanges())
            ret_val = true;
        }
      }

      return ret_val;
    }

    public static bool ConfigurationNeeded()
    {
      bool ret_val = false;

      foreach (ProductCategory pc in ProductManager.ProductCategories)
      {
        foreach (Product p in pc.Products)
        {
          if (p.CurrentState == ProductState.InstallSuccess && p.Controller != null)
            ret_val = true;
        }
      }

      return ret_val;
    }

    public static bool PrerequisitesNeeded()
    {
      ...
    }
[27 Jun 2011 9:38] Valeriy Kravchuk
Thank you for the bug report. Verified on Windows XP.
[30 Nov 2017 16:31] Luis Mora
This is no longer a bug in Installers version 1.4.x