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 (menu Settings tab)
- Whether or not it is a "Case List" menu
- Parent Child Selection (menu 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):
- ♣ Menu Filter (Case List Menu > Settings tab)
- ♥ Form Display Condition (form settings > settings tab)
- ♦ Case List Filter (Case List Menu > 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 menu while the ♦♦ filter is the one on the menu 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 Menu then Form
- Menu without Registration
Start → ♣ Menu List → ♦ Case List → ♥ Form List → Form - Menu with Registration
Start → ♣ Menu List → ♥ Form List → (♦ Case List) → Form
- Menu without Registration
- Menu Mode = Display Only Forms
Start → Form List → (♦ Case List) → Form
- Menu Mode = Show Menu then Form
- Parent Child Selection On
- Menu Mode = Show Menu then Form
- Menu without Registration
Start → ♣ Menu List → ♦♦ Parent Case List → ♦ Case List → ♥ Form List → Form - Menu with Registration
Start → ♣ Menu List → ♥ Form List → (♦♦ Parent Case List) → (♦ Case List) → Form
- Menu without Registration
- Menu Mode = Display Only Forms
Start → Form List → (♦♦ Parent Case List) → (♦ Case List) → Form
- Menu Mode = Show Menu then Form
Notes about filter functionality and availability
- ♣ Menu Filters: You will notice that Menu filters are always applied before a case has been selected. Therefore, they cannot depend on any of the case properties associated with the case. Menu 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: