Allow the administrator of a piece of hardware to download the server configuration and store it in a data file for backup / migration purposes. The interface is currently setup as a wizard. The user is presented with simple choices on each screen. Forward and back buttons provide screen navigation.
- User selects a folder to store the file into (default is user's Documents directory)
- Browse button brings up a folder browser
- User enters more information (IP address, passwords, etc.)
- User initiates download
- Software generates a filename based on a template that includes the MAC address of the server and the time and date that the download was initiated
- Most users will still want the software to generate a filename based on a template (current behavior)
- User has the option of specifying both a location and a filename to use
Options I'm considering
- Add a screen on the wizard that allows a branch; i.e. "Select a folder to store the data with an auto-generated filename OR Specify a filename and location to use"
- Put both options on a single screen selectable via radio button
I know that a standard solution to this is to present the user with a file browser that is pre-populated with a generated filename, but the fact that the file location is selected before the start of the process, coupled with the fact that the generated filename contains a timestamp based on the start of the process... This complicates the issue a bit.
EDIT with more workflow description
In hindsight, I guess I didn't give enough background in the initial problem description. This is not just a "download and then save" type of operation.
- The software client needs to collect a bunch of information from the user up-front before the download process starts. One of the pieces of information that is needed is where to store the data once it has been received.
- When the user finishes entering all the information, because of the extent of the information entered, and the amount of time it may take a sysop to collect it all, we will present them with a summary page stating "this is what you are about to do" with a "do it" button on it.
- I could prompt the user for the file location at the time they click the "do it" button, but it feels like the wrong place in the workflow to do so. It really feels like the selected location should be part of what is displayed in the summary information.
- In addition to the "it feels wrong" that I stated above, once they click that "do it" button, and before the download begins, there is an arbitrarily long time during which the client will contact one or more external devices, collect information, make sure that all the pieces fit together correctly and that all the information the user entered looks good. If there is a problem, which is not at all unlikely, then the user may need to back up in the workflow and make changes and then restart. Should I prompt again for a file each subsequent time they click that "do it" button?
- If I don't make the file selection the very last thing that is done when the user pushes the "do it" button, then the time/date value I feed into the template at the time that they select the file location will be wrong. They could conceivably start filling out the information in the wizard at the end of the day, go home, and then start the process first thing in the morning the next day.
- This is not implemented now, but we are considering in the future allowing the user to opt to schedule the download at some future time. It can be an intrusive process, and it might be nice to be able to schedule it to happen at a time when network traffic is low. If we implement this, then we definitely need to collect the file information well before the actual download takes place.
Hopefully this information clarifies the reason for my dilemma somewhat. Sorry for the confusion.