cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
kmoulton
Level 6

Issues with Canceling from Suite wizard pages

I have noticied the following issues:

1) If you decide to cancel from a Suite wizard page, you are always redirected to the InstallationComplete page (somewhat akin to a Finish dialog). If you make a new wizard page and condition it to be the cancel page and condition the InstallationComplete page not to display on a cancel, you get an error. Is there a way to redirect cancel to some other wizard page?

2) If you attach an action to the cancel button, say a {SetProperty ...} or {SetActivePage ...}, it will immediatedly happen. Unfortunately, the cancel button comes with a confirm dialog. If you decide not to cancel, the actions attached to the button still happen. Is there a way to get around this? It would seem to make more sense to have the actions happen after you have confirmed that you are going to cancel.
Labels (1)
0 Kudos
(7) Replies
MichaelU
Level 12 Flexeran
Level 12 Flexeran

Right now, the target page for canceling or errors is always the final page in the wizard. I agree that we need to offer more control here, and would like to make sure we consider your use case when we extend this. Can you clarify what you're trying to do differently from the provided completed page, and in response to what scenarios?
0 Kudos
kmoulton
Level 6

Thanks Micahel, but the problem goes deeper than that. If I do cancel from the welcome dialog, or the License agreement dialog, or the Install Type dialog then it does go to the last dialog. I discovered that yesterday after my post.

However, if one of the prerequisites errors out and causes the bootstrapper to stop, it goes to the next dialog in the sequence. If you cancel from the progress dialog, it also goes to the next dialog in the sequence. In these situations, the next dialog in the sequence is the InstallationComplete dialog.

These error conditions are very serious and I need to go to an error dialog. However, I am ending up at the InstallationComplete dialog. If I position an error dialog at this location and the InstallationComplete dialog after, then the good install also displays the error dialog.

Is there some way I can differentiate between a failed install and a good install so that I can display an error dialog for a failed install or the InstallationComplete dialog for a good install?
0 Kudos
kmoulton
Level 6

So here is what I am trying to do.

I want to be able to have a different wizard page for an Error and a different wizard page for a good install. If you do cancel, as I mentioned above, you do go to the final page of the install. However, canceling from the progress dialog or encountering an error when running the bootstrapper does not cause you to move to this final page. It goes to the next page in the sequence. So you really need three different pages.

One for canceling from the standard wizard page, one for an error encountered in the bootstrapper (in this case you set the package condition to abort if it encountered an error), and one for a good install.

There is actually a fourth condition, and that is canceling from the progress dialog. In this case you could combine the cancel from the progress dialog with the error dialog.

There either needs to be a way to condition the text to distinguish between an error and a good install or their needs to be a way to use two different dialogs.

In my particular case the InstallationComplete dilaog is used to launch a separate install from the Finish button, so I need to differentiate between an error and a good install.
0 Kudos
MichaelU
Level 12 Flexeran
Level 12 Flexeran

Hmm. It sounds like you need one of two things. Either you need the ability to control which final page you see after various ways the suite may end (including package error, user cancel, overall success), or you need the ability to condition your launching action against which of those various ways the suite got to the final page.

I think we might be able to do the latter today, whereas the former will definitely require some changes. One thing that differs between success and failure/cancel completions is the value of the ISInstallStatus property. The {Open ...} condition takes the form: {Open {p1},{p2==v2}}, where p1 is the property containing the document or executable to open, p2 is a property to compare, and v2 is the value against which to compare it. So you could try {Open {SomeProp},{ISInstallStatus==stringid}} where stringid is literally one of IDS_INSTALL_SUCCESS, IDS_UNINSTALL_SUCCESS, or IDS_SUITE_INTERRUPTED. You can place multiple open actions of this format in the same action field, so you could potentially launch different things for each status. (I'm just not sure whether this will compare stringid to stringid, text to text, or text to stringid - hopefully it's one of the first two.)
0 Kudos
kmoulton
Level 6

Thanks Michael, I didn't notice that you had replied. Here is what I did do:

Good Install
InstallComplete dialog
set visible {Binding ISInstallStatus==IDS_INSTALL_SUCCESS}

Install error or canceled from progress dialog
InstallInterrupted dialog
set visible {Binding ISInstallStatus==IDS_SUITE_INTERRUPTED}

Normal install cancel
InstallCanceled dialog
Placed this as the final dialog.

This seems to work like a charm.

Thanks,

--Kim
0 Kudos
MichaelU
Level 12 Flexeran
Level 12 Flexeran

I like that visibility approach - but make sure to consider IDS_UNINSTALL_SUCCESS. I'll have to think about it a bit more, and consider incorporating it wholesale; it certainly is more flexible than just conditioning the {Open ...} action. (And make sure it doesn't break in the next version, of course.)
0 Kudos
kmoulton
Level 6

Thanks.

I hadn't thought about that.
0 Kudos