Highlighted

Advanced Actions on Custom TOC

Explorer ,
Jun 26, 2018

Copy link to clipboard

Copied

All Input is welcome and appreciated.

I need to add a Check Mark image to a custom TOC after specific slides are viewed by the participant.

Unfortunately my Advanced Action / Scripting  skills are not getting me past the hurdle.

I assume I am on the correct path by needing to create variables for each slide that needs to be viewed however finding a way to conditionally connect them to an inbuilt "slide viewed" variable value is escaping me.

Perhaps the images attached can better explain what I need to do.

Note 1: The Circle in the image is a Smart Shape however it is not possible, to my knowledge, to create multi-conditional states within a single "Visible" state for a smart shape.

Note 2: You do see a Custom TOC. The inbuilt Captivate TOC, although it is functionally what I am seeking to do, is not acceptable by the stakeholders.

Starting with a Custom built TOC in the first image: This is the bare boned image of Slide 1 of the project

Image_1.JPG

Once a user clicks on Module 1 they will be taken to that particular module's Topic List ( effectively another custom TOC) as seen below. The Return to List of Modules takes the user back the Table of Modules above

Image_2.JPG

The links in the topic list coincide with 3 separate slides  3,4,5 for example which can be accessed in any order. The visited state upon visit to any of the slides will add a check mark using the inbuilt visited sate to the appropriate circle as seen on the lower  image. The Return to List of Modules button takes the user back to the Table of Modules

Image_3.JPG                        

I need to add the conditionally based check mark to the Main Module contents page shown in the image blow .... Conditions for adding the check mark would be the view of Slides 3, 4, and 5 inclusively but not in sequence. Any sequence is possible in order to add the check mark to the Table of Modules.

Image 4.JPG

Image 5.JPG

My initial thoughts are that there are some variables that exist that are not apparent within the script writing GUI used to create Advanced Actions . ..... Any thoughts on where / how to identify the variable (s) related to viewed slides would help me create either an Advanced Action or JS script to accomplish the goal.

Again, Open and Welcome to all suggestions... Much appreciated.

Most Valuable Participant
Correct answer by Lilybiri | Most Valuable Participant

Indeed that makes it bit more complicated. 

Create one user variable for each slide, will label them v_1, v_2... ... They will be Booleans, start with a default value of 0, that will be changed to 1 with the On Enter action of each slide, or you can use the Success action of the buttons in the Lower Level TOC and a shared action:

     Assign v_1 with 1

     Jump to slide1

The bolded, italic items will be the parameters.

I will try to define a shared action, supposed that each module has 3 slides. That action will have to be triggered by the 'Return to List of Modules', but will have different parameters depending on the module the slides belong to.

For the first module, which has the slides slides1, slide2 and slide3  (can be other numbers, just an example):

    IF v_1 is equal to 1  AND

        v_2 is equal to 1  AND

        v_3 is equal to 1

              Change state of Bt_Module1 to VisitedMod

             Jump to TOCMod

    ELSE

               Jump to TOCMod

Again parameters are bold and italic.  Make sure to check the option 'Retain state on revisit' for both TOC's.

Views

308

Likes

Translate

Translate

Report

Report
Community Guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more

Advanced Actions on Custom TOC

Explorer ,
Jun 26, 2018

Copy link to clipboard

Copied

All Input is welcome and appreciated.

I need to add a Check Mark image to a custom TOC after specific slides are viewed by the participant.

Unfortunately my Advanced Action / Scripting  skills are not getting me past the hurdle.

I assume I am on the correct path by needing to create variables for each slide that needs to be viewed however finding a way to conditionally connect them to an inbuilt "slide viewed" variable value is escaping me.

Perhaps the images attached can better explain what I need to do.

Note 1: The Circle in the image is a Smart Shape however it is not possible, to my knowledge, to create multi-conditional states within a single "Visible" state for a smart shape.

Note 2: You do see a Custom TOC. The inbuilt Captivate TOC, although it is functionally what I am seeking to do, is not acceptable by the stakeholders.

Starting with a Custom built TOC in the first image: This is the bare boned image of Slide 1 of the project

Image_1.JPG

Once a user clicks on Module 1 they will be taken to that particular module's Topic List ( effectively another custom TOC) as seen below. The Return to List of Modules takes the user back the Table of Modules above

Image_2.JPG

The links in the topic list coincide with 3 separate slides  3,4,5 for example which can be accessed in any order. The visited state upon visit to any of the slides will add a check mark using the inbuilt visited sate to the appropriate circle as seen on the lower  image. The Return to List of Modules button takes the user back to the Table of Modules

Image_3.JPG                        

I need to add the conditionally based check mark to the Main Module contents page shown in the image blow .... Conditions for adding the check mark would be the view of Slides 3, 4, and 5 inclusively but not in sequence. Any sequence is possible in order to add the check mark to the Table of Modules.

Image 4.JPG

Image 5.JPG

My initial thoughts are that there are some variables that exist that are not apparent within the script writing GUI used to create Advanced Actions . ..... Any thoughts on where / how to identify the variable (s) related to viewed slides would help me create either an Advanced Action or JS script to accomplish the goal.

Again, Open and Welcome to all suggestions... Much appreciated.

Most Valuable Participant
Correct answer by Lilybiri | Most Valuable Participant

Indeed that makes it bit more complicated. 

Create one user variable for each slide, will label them v_1, v_2... ... They will be Booleans, start with a default value of 0, that will be changed to 1 with the On Enter action of each slide, or you can use the Success action of the buttons in the Lower Level TOC and a shared action:

     Assign v_1 with 1

     Jump to slide1

The bolded, italic items will be the parameters.

I will try to define a shared action, supposed that each module has 3 slides. That action will have to be triggered by the 'Return to List of Modules', but will have different parameters depending on the module the slides belong to.

For the first module, which has the slides slides1, slide2 and slide3  (can be other numbers, just an example):

    IF v_1 is equal to 1  AND

        v_2 is equal to 1  AND

        v_3 is equal to 1

              Change state of Bt_Module1 to VisitedMod

             Jump to TOCMod

    ELSE

               Jump to TOCMod

Again parameters are bold and italic.  Make sure to check the option 'Retain state on revisit' for both TOC's.

Views

309

Likes

Translate

Translate

Report

Report
Community Guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
Most Valuable Participant ,
Jun 26, 2018

Copy link to clipboard

Copied

OK, now the workflow is understood. Visited state is used for the lower evel TOC. For the upper level of the TOC you need to create a custom state. They can have the same name for each module, will label it VisitedMod.

One last thing to be clarified:: is the button  'Return to list of Modules' always available? Can the user return to the upper level TOC even when one of the slides in that module has not be visited?

Maybe not necessary: do you plan to have something happen when all modules on the upper level TOC have the state 'VisitedMod'?

Likes

Translate

Translate

Report

Report
Community Guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
Reply
Loading...
Explorer ,
Jun 26, 2018

Copy link to clipboard

Copied

Yes Lower level is inbuilt Visited State

Yes the Return to List of Modules is always available and user can return to upper level TOC even though all slides are not visited..... This is the function that creates a little bit more "heavy" work on the advanced action as I see it.

Nothing will happen when all upper level TOC have the Visited Mod state on all ..... nothing at all except they will be visible to the user.

A little history on why this approach was decided on:

This tutorial will serve as both an end to end training for inexperienced participants and a refresher for experienced participant who may only need to reference a particular topic for refresher purposes.

Likes

Translate

Translate

Report

Report
Community Guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
Reply
Loading...
Most Valuable Participant ,
Jun 26, 2018

Copy link to clipboard

Copied

Indeed that makes it bit more complicated. 

Create one user variable for each slide, will label them v_1, v_2... ... They will be Booleans, start with a default value of 0, that will be changed to 1 with the On Enter action of each slide, or you can use the Success action of the buttons in the Lower Level TOC and a shared action:

     Assign v_1 with 1

     Jump to slide1

The bolded, italic items will be the parameters.

I will try to define a shared action, supposed that each module has 3 slides. That action will have to be triggered by the 'Return to List of Modules', but will have different parameters depending on the module the slides belong to.

For the first module, which has the slides slides1, slide2 and slide3  (can be other numbers, just an example):

    IF v_1 is equal to 1  AND

        v_2 is equal to 1  AND

        v_3 is equal to 1

              Change state of Bt_Module1 to VisitedMod

             Jump to TOCMod

    ELSE

               Jump to TOCMod

Again parameters are bold and italic.  Make sure to check the option 'Retain state on revisit' for both TOC's.

Likes

Translate

Translate

Report

Report
Community Guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
Reply
Loading...
Explorer ,
Jun 26, 2018

Copy link to clipboard

Copied

I'm working on it Lieve ........ dan56 had the same  / similar reply so between the two I should get there eventually ......

Likes

Translate

Translate

Report

Report
Community Guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
Reply
Loading...
Most Valuable Participant ,
Jun 26, 2018

Copy link to clipboard

Copied

There is a significant difference because the other user is not using states for the upper level TOC, but a hidden image. Moreover when using the On Enter event of the upper level TOC, you will need to have all the decisions in one long conditional action (which is not shown) which makes it lot more complicated. Using the Shared actions I propose, which are triggered by the Success event of the 'Return to...' means there is only one decision. Is much easier.

Of course it is up to you, but I would stay with one of the two workflows, do not combine them.

The other user forgot that the On Enter action of the upper level TOC has to be used for ALL modules... as many decisions as you have modules, noy just one. I like to avoid such a situation by splitting it up over multiple events, in this case the Retunb utton on each of the slides.

Ask him to correct his answer, please.

Likes

Translate

Translate

Report

Report
Community Guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
Reply
Loading...
Explorer ,
Jun 26, 2018

Copy link to clipboard

Copied

Thanks Lieve,

Will start with the one you outlined first ....... and a backup plan if it goes awry

Will advise of success ASAP ! ! ! !   And thanks for your patience with me working through this

Likes

Translate

Translate

Report

Report
Community Guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
Reply
Loading...
Most Valuable Participant ,
Jun 26, 2018

Copy link to clipboard

Copied

I you don' want to use shared actions (they are wonderful) you can use duplicate conditional actions for each of the Return buttons. For the first module:

ReturnAct.png

Likes

Translate

Translate

Report

Report
Community Guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
Reply
Loading...
Explorer ,
Jun 26, 2018

Copy link to clipboard

Copied

I am using the Shared Actions and yes they are wonderful as it appears I simple have to change a few parameters to resuse them again. Unfortunately I think the the shared actions I need will have to be rebuilt for each of the separate Topic areas, haven't got there yet,  but I like it a lot and will use it ..... Great lesson today ! ! !  Thanks you Lieve ! !

Getting close to a dry (beta) run and will let you know.......

Likes

Translate

Translate

Report

Report
Community Guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
Reply
Loading...
Most Valuable Participant ,
Jun 26, 2018

Copy link to clipboard

Copied

Why rebuild? Do you have a third layer of TOC? As I showed them you only need one shared action to be used for all the Retunr buttons.  You can reuse it in other projects. Variables, because they are defined as parameters, will not be created when you import the shared action in another project. I always have a shared action ready just tocreate a bunch of variables, but you need of course a lot since each slide needs a variable.

Likes

Translate

Translate

Report

Report
Community Guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
Reply
Loading...
Explorer ,
Jun 26, 2018

Copy link to clipboard

Copied

Yes Lieve you are correct ... a 3rd 4th 5th and possibly 6th  

Easy to modify so the Shared action is still the best approach and I can simple rename and slightly modify the Shared action to another Action Name for each ...... Great lessons today  .. absolutely awesome as I was feeling defeated early on...

Thank You so much for your time and patience with me  .....  I'm a hero on the team here and gave you credit for pointing me in the right direction ! ! ! !

Steven

Likes

Translate

Translate

Report

Report
Community Guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
Reply
Loading...
Most Valuable Participant ,
Jun 26, 2018

Copy link to clipboard

Copied

Not sure why you need to rename the shared action? You can use it as a template for an advanced action, but in your case that is not necessary?

Did you watch this movie, created based on my presentation about shared actions:

Dare To Share

Likes

Translate

Translate

Report

Report
Community Guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
Reply
Loading...
Explorer ,
Jun 27, 2018

Copy link to clipboard

Copied

Yes Lieve  ... effectively what I am doing ...... Using the Shared Action as a template for creating several Advanced Actions - terminology challenged on this end.....

Likes

Translate

Translate

Report

Report
Community Guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
Reply
Loading...
Most Valuable Participant ,
Jun 27, 2018

Copy link to clipboard

Copied

You didin't need to create advanced actions. The shared action could be applied as it is, just fill in the parameters. Big advantae: Usage is visible in the Library, easy to control and to manage.

Likes

Translate

Translate

Report

Report
Community Guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
Reply
Loading...
Explorer ,
Jun 27, 2018

Copy link to clipboard

Copied

Yes I am aware of the shared action parameter changes that can be done .... There was some little quirk about it that wouldn't work as desired.... I haven't given up on it yet just need more time to investigate......

Likes

Translate

Translate

Report

Report
Community Guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
Reply
Loading...
Lilybiri LATEST
Most Valuable Participant ,
Jun 27, 2018

Copy link to clipboard

Copied

Probably the definition of the parameters: variables had to be defined as parameters (is not the case by default), but in your case you should NOT define the literal 1 as a parameter, because it hever changes. That is why I marked the parameters by the attributes bold and itialic.

Likes

Translate

Translate

Report

Report
Community Guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
Reply
Loading...
Engaged ,
Jun 26, 2018

Copy link to clipboard

Copied

I do this sort of thing frequently. You are correct that you need a variable for each page that you want to track.

To use your example, I would

1. Create variables v_slide3, v_slide4, v_slide5. Set the value of all variables to 0.

2. On Enter for these slides (or on completion of a required click/exercise), assign the value of that slide's variable to 1.

3. On Enter of the menu slide(s) will be conditional actions to test for a visited value (i.e. 1) for the variables. I create a condition tab for each menu item. In this example:

IF v_slide3 ==1 AND v_slide4 == 1 AND v_slide5 == 1

Show checkmark for menu item 1.

Lots of menu items means lots of condition tabsin the On Enter advanced action, but that's OK. Using this method users can jump in and out of a course section but the menu item will only show complete (check mark) if all required pages have been viewed.

Likes

Translate

Translate

Report

Report
Community Guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
Reply
Loading...
Explorer ,
Jun 26, 2018

Copy link to clipboard

Copied

Would you happen to have a screen shot of an Advanced Action conditional that I could use for reference ????? With theh understanding that some modifications to my project will need to be made

Likes

Translate

Translate

Report

Report
Community Guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
Reply
Loading...
Engaged ,
Jun 26, 2018

Copy link to clipboard

Copied

Change of state or show for the checkmark doesn't make much difference within each menu slide. I use a unique conditional action for each menu - there is no need to consolidate all decisions for all menus within the course.

I work backwards from the lowest submenu to the highest - Using the following hierarchy as an example:

Each menu branches to several other menus or individual slides.

The easiest way to know if a slide has been viewed is to enter that slide. That is why I place the assign v_slideNumber at the slide level. The menu buttons can then be simple Jump to slide commands.

Each menu On Enter evaluates which slides at the level immediately below it have been visited and makes checkmarks visible accordingly (either Show or Change State - I've used both and prefer to Change State. I also have another state for "in progress" so that learners know a topic has been started but is not yet complete) .

If all slides below a menu level have been visited, the On Enter also assigns a v_levelComplete variable to 1. The menu above this level uses this variable to determine if a check should appear for a menu item.

Another set of variables can be created for each topic - If the bottom set of slides for a topic is complete the topic variable is assigned = 1. The menu above can refer to this value instead of inspecting ALL pages of all lower levels.

This can go on for many levels.

Whether you use shared actions or write individual ones for each menu is up to you - since the number of decisions per level may be different (depending on the number of menu items in each menu), I prefer individual actions.

Likes

Translate

Translate

Report

Report
Community Guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
Reply
Loading...
Most Valuable Participant ,
Jun 26, 2018

Copy link to clipboard

Copied

Sorry, you must have missed part of the explanation. There are only two menus. From each slide the user can return to the top level menu, which means since you use the On Enter action for that top level menu, that you have to check all variables, grouped by topic.

THere is no intermediate level....

Likes

Translate

Translate

Report

Report
Community Guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
Reply
Loading...
Explorer ,
Jun 27, 2018

Copy link to clipboard

Copied

Hello Dan,

I like this workflow very much.  It is certainly suitable for more than 2 tiered levels and something I can use on another project..... Many thanks for this.......

Steven

Likes

Translate

Translate

Report

Report
Community Guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
Reply
Loading...