Controlling the Flow using Sections

As the user navigates through the different sections in a script using the 'next' button, a link for each completed section will be enabled in the sections panel to the left of the screen (in the default configuration). Clicking on this link will bring the user to the summary page for that section. All previously completed sections remain enabled as the user jumps back and forward through the script. For example, if the first four sections are completed in the script, a user can jump to the summary page for Section 3, then to the summary page for Section 1, and back to the summary page for Section 3. Sections are only enabled up to the furthest point in the script which the user has visited. If the furthest section has not yet been completed (i.e., the user has not accessed the summary page for that section), instead of the link for that section bringing the user to its summary page, it will go to the furthest page visited in the section. If no summary page was defined for the section, or if the summary page is conditional and wasn't displayed, the navigation will still bring the user to the furthest visited page in the section.

The list of enabled sections can change depending on the actions a user takes when editing and deleting previous answers or adding new ones. For example, a user progresses through a script which contains 5 sections and has made it to the summary page for the fourth section. The user then returns to the second section and edits some answers. If the new answers are used to determine the flow of later parts of the script, then it is no longer safe to allow the user to jump over all the pages in the script as the original route taken through the script may no longer be valid. All sections after the section containing the page on which the new answers were given will be automatically disabled. The user is forced to use the next button to progress through the script so that the correct route can be determined based on the new answers. No information previously entered is discarded when sections are disabled unless the pages containing the information no longer form part of the script execution.

Some sections might contain questions that are only applicable based on prior answers. It is possible to make some sections conditional: a 'visible' attribute can be specified on sections. It will contain an expression that will be evaluated at the start of the execution. If it evaluates to false, the section will be removed from the execution and won't be displayed in the sections panel. Another possibility is to wrap all the elements contained in a section (including the summary page) into a single condition. This conditional navigation will follow the same logic as existing conditions, so the expression will be evaluated when it is encountered during script execution. In this case, the sections will be displayed in the sections panel even if they are not encountered by the user (but they will be disabled).