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:

  1. Menu Mode (from Menus | Menu Settings).

  2. Whether or not it is a "Case List" menu.

  3. Case List and Case Detail Configuration | Parent Child Selection

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" Add-Ons is enabled on the application settings page.

  1. Access the Application Settings page by clicking the gear icon next to the application name on the upper-left corner. 

  2. On the settings page, select the Add-Ons tab, then select the button with three-lines in the upper right hand corner and make sure the Mobile Experience is checked.

  3. Scroll down to the Mobile Experience block and select the Register from case list checkbox and hit save.

MenuMode.png

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):

  1. ♣ Menu Filtering (Case List Menu > Settings tab)

  2. ♥ Form Display Conditions (Form Settings > settings tab)

  3. ♦ 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.

  1. Parent Child Selection Off

    1. Menu Mode = Show Menu then Form

      1. Menu without Registration
        Start → ♣ Menu List → ♦ Case List → ♥ Form List → Form

      2. Menu with Registration
        Start → ♣ Menu List → ♥ Form List → (♦ Case List) → Form

    2. Menu Mode = Display Only Forms
      Start → Form List → (♦ Case List) → Form

  2. Parent Child Selection On

    1. Menu Mode = Show Menu then Form

      1. Menu without Registration
        Start → ♣ Menu List → ♦♦ Parent Case List → ♦ Case List → ♥ Form List → Form

      2. Menu with Registration
        Start → ♣ Menu List → ♥ Form List → (♦♦ Parent Case List) → (♦ Case List) → Form

    2. 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 Menu Filtering.

♥ Form Display Conditions

  1. 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().

  2.  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.

  3. Form display conditions are not currently available when Menu Mode = Display Only Forms. 

See Form Display Conditions.

♦ 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.