We have several different tools for controlling what is seen during menu navigation in CommCare (everything between the Start screen and the Form itself). This page should help clarify the different options available.
Key Control Knobs
There are a three key things that control which screens show up during the menu navigation:
- Menu Mode (module Settings tab)
- Whether or not there is a Registration form in the module (Case Management tab on each form)
- Parent Child Selection (module Case List tab)
The controls for these are outlined in red in the first 3 of the following screenshots:
Navigation Filters
Once the screen navigation has been determined, there are filters that you can apply to only see desired choices (availability depends on the screen navigation):
- ♣ Module Filter (module Settings tab - requires Feature Preview)
- ♥ Form Display Condition (form Settings tab)
- ♦ Case List Filter (module Case List tab)
The controls for these filters are marked in the above screenshots using the symbols indicated.
This page is not intended to teach you everything about how to access and use these filters - please refer to the linked pages to learn more.
Possible Navigation Paths
In the below flows, you will see the appropriate symbols for each of the filter types when they are available. Note that they are not all available for all navigation paths. Both the ♦ and ♦♦ symbols indicate Case List Filters. However, the ♦ filter is the one for the current module, while the ♦♦ filter is the one on the module that we are using for the Parent Case List.
The parenthesis are used around Case Lists because if you select a Registration form in the Form List, there will be no Case List selection and the navigation will skip immediately to the Form content.
- Parent Child Selection Off
- Menu Mode = Show Module then Form
- Module without Registration
Start → ♣ Module List → ♦ Case List → ♥ Form List → Form - Module with Registration
Start → ♣ Module List → ♥ Form List → (♦ Case List) → Form
- Module without Registration
- Menu Mode = Display Only Forms
Start → Form List → (♦ Case List) → Form
- Menu Mode = Show Module then Form
- Parent Child Selection On
- Menu Mode = Show Module then Form
- Module without Registration
Start → ♣ Module List → ♦♦ Parent Case List → ♦ Case List → ♥ Form List → Form - Module with Registration
Start → ♣ Module List → ♥ Form List → (♦♦ Parent Case List) → (♦ Case List) → Form
- Module without Registration
- Menu Mode = Display Only Forms
Start → Form List → (♦♦ Parent Case List) → (♦ Case List) → Form
- Menu Mode = Show Module then Form
Notes about filter functionality and availability
- ♣ Module Filters: You will notice that Module filters are always applied before a case has been selected. Therefore, they cannot depend on any of the case properties associated with the case. Module filters can only be used to filter on properties from the user-case or on constants, such as false().
- ♥ Form Display Conditions:
- For paths 1.a.i and 2.a.i above, the Form Display Condition is executed after a case has already been selected from the case list. Therefore, the Form Display Condition can depend on the case properties, any user-case properties, or on constants, such as false().
- For paths 1.a.ii and 2.a.ii above, the Form Display Condition is executed before any case has been selected from the case list. Therefore, the Form Display Condition cannot depend on any regular case properties. In these paths, the display condition can only be used to filter on properties from the user-case or on constants, such as false(). If the application is not using user-case, the Form Display Condition will not be available at all. The symbol should alert you that Form Display Conditions are limited in these paths and you should be careful to understand these limitations before using one.
- Form display conditions are not currently available when Menu Mode = Display Only Forms.
- ♦ Case List Filter: Case list filters are always available to filter the case list.
This page provide more information about the User-Case feature referenced above: