Search code examples
movilizer

Movilizer - Dynamic Slideshow in MEL


I would like to know if it is possible to have a slideshow based on one dynamic screen. I am trying to use a dynamic Table Screen. When the user clicks on OK, $local:categoryCounter raises and shows other information of my array $local:categoryIndex. When the user clicks back, $local:categoryCounter decreases and shows (already shown) information when its value is greater than zero.

This is what I tried so far. I left out as much unnecessary details as possible to make clear what the exact problem is. What I want to reach is this Epsilon screen to forward again as $local:categoryCounter hasn't reached zero yet. I know this isn't going to work as restrictions are only allowed in forward navigations, so I hope someone has another idea to solve this.

<!-- Pre-Epsilon needed to go back in slideshow -->

<question key="#6" type="41">
    <answer key="#6_1" clientKey="CK#6" nextQuestionKey="#7"/>
    <restriction position="0" nextQuestionKey="#1">
        <condition>$local:navigateBack == true</condition>
    </restriction>
    <onEnterAssignment>
        if($local:categoryCounter ?gt 0)
        {
            $local:categoryCounter = $local:categoryCounter - 1;
            $local:navigateBack = false;
        }
    </onEnterAssignment>
</question>

<!-- End of Pre-Epsilon needed to go back in slideshow -->

<!-- Skill Categories Overview -->

<question key="#7" type="9" title="%PERSON_NAME%" sortAnswersByClientKey="true" labelFontSize="VERYLARGE" labelAlignment="CENTER" timeout="10">
    <answer key="#7_1" clientKey="CK#7" attributeType="-128"    nextQuestionKey="#8" position="1" dummyAnswer="true" colIndex="0" colWidth="5" colPriority="80">
        <text>%SKILL%</text>
    </answer>
    <answer key="#7_2" clientKey="CK#7" attributeType="-128"    nextQuestionKey="#8" position="2" dummyAnswer="true" colIndex="1" colWidth="5" colPriority="70">
        <text>%VALUE%</text>
    </answer>
    <text>%CATEGORY_VALUE%</text>
    <onLeaveOkPersistAssignment>
        $local:categoryCounter = $local:categoryCounter + 1;
    </onLeaveOkPersistAssignment>
    <onLeaveBackAssignment>
        $local:navigateBack = true;
    </onLeaveBackAssignment>
</question>

<question key="#8" type="41">
    <answer key="#8_1" clientKey="CK#8" nextQuestionKey="#7"/>
    <restriction position="0" nextQuestionKey="#9">
        <condition>$local:categoryCounter == count($local:categoryIndex)</condition>
    </restriction>
</question>

<!-- End of Skill Categories Overview -->

Solution

  • you will achieve the expected behaviour by doing the following:

    • make the table screen part of a complex UI
    • use an image menu screen in the complex UI with at least 2 options, both navigating forward to an epsilon screen. These options increase / decrease the counter based on logic in the epsilon screen (check against selected client key or something like that).
    • If you do not want to offer an OK button in the complex UI do not define a default answer in the image menu screen
    • If you do not want to offer a back button, then use disableBackNavigation for the complex UI questions

    There is no restriction that can be triggered on back navigation so all the logic has to be implemented using forward navigations.