Menu Navigation
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 three key things that control which screens show up during the menu navigation:
Menu Mode (from https://dimagi.atlassian.net/wiki/spaces/commcarepublic/pages/2300675251/Menus#Menu-Settings).
Whether or not it is a "Case List" menu.
The controls for these are outlined in red in the first 3 of the following screenshots:
Menu Mode
To turn on menu mode, make sure the "Menu Mode" https://dimagi.atlassian.net/wiki/spaces/commcarepublic/pages/2143947412 is enabled on the application settings page.
Access the https://dimagi.atlassian.net/wiki/spaces/commcarepublic/pages/2301526035 page by clicking the gear icon next to the application name on the upper-left corner.
On the settings page, select the https://dimagi.atlassian.net/wiki/spaces/commcarepublic/pages/2143947412 tab, then select the button with three-lines in the upper right hand corner and make sure the Mobile Experience is checked.
Scroll down to the Mobile Experience block and select the Register from case list checkbox and hit save.
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):
♣ https://dimagi.atlassian.net/wiki/spaces/commcarepublic/pages/2143946138 (Case List Menu > Settings tab)
♥ https://dimagi.atlassian.net/wiki/spaces/commcarepublic/pages/2143945019 (https://dimagi.atlassian.net/wiki/spaces/commcarepublic/pages/2300674903 > settings tab)
♦ https://dimagi.atlassian.net/wiki/spaces/commcarepublic/pages/2143951603/Case+List+and+Case+Detail+Configuration#Case-List-Filtering (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 → FormMenu with Registration
Start → ♣ Menu List → ♥ Form List → (♦ Case List) → Form
Menu Mode = Display Only Forms
Start → Form List → (♦ Case List) → Form
Parent Child Selection On
Menu Mode = Show Menu then Form
Menu without Registration
Start → ♣ Menu List → ♦♦ Parent Case List → ♦ Case List → ♥ Form List → FormMenu with Registration
Start → ♣ Menu List → ♥ Form List → (♦♦ Parent Case List) → (♦ Case List) → Form
Menu Mode = Display Only Forms
Start → Form List → (♦♦ Parent Case List) → (♦ Case List) → 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().
See https://dimagi.atlassian.net/wiki/spaces/commcarepublic/pages/2143946138.
♥ 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.
See https://dimagi.atlassian.net/wiki/spaces/commcarepublic/pages/2143945019.
♦ Case List Filter: Case list filters are always available to filter the case list.
See https://dimagi.atlassian.net/wiki/x/OinKfw for more information about the User-Case feature referenced above.