Forum Discussion
Allow Free Navigation after Course Update
Our team develops courses in house using primarily Storyline 360, and Absorb LMS as the host platform. Our current issue is that at times we need to make corrections or minor updates to published courses. If we replace a course with it's update, Absorb retains a past learners completion and score, but if they open the course to review, the navigation restrictions have been reapplied. We need to find a way that allows the updated course to recognize that the learner has completed it already, and free the menu and scrub bar.
Has anyone run into a similar situation and able to resolve it? Any advice or suggestions would be greatly appreciated.
- AlexMilyaev-f86Community Member
To solve the task, you will need JS. I have prepared a sample code that should work (but I cannot guarantee this, you need to test it in your LMS). You need to create a text variable called resultcourse. When the course starts (right at the beginning on the first slide), you should add a few triggers.
The first trigger - start the JS code when the slide's time begins and copy the code I added below. The second trigger (more likely several triggers) - when the variable courseupdate changes - you need to unlock the course menu (I don't know exactly how you lock and unlock navigation in the course) if the value of the variable resultcourse = completed.
I haven’t tested the code myself, so I cannot guarantee it will work, but this direction for finding a solution should definitely work.
var player = GetPlayer(); // Getting the Storyline Player object
// Function to find LMS API
function findLMSAPI(win) {
if (win.hasOwnProperty("GetStudentID")) return win; // If API is found, return
else if (win.parent == win) return null; // If this is the top level, return null
else return findLMSAPI(win.parent); // Otherwise, continue searching in the parent window
}// Initializing LMS API
var lmsAPI = findLMSAPI(window);if (lmsAPI) {
// Getting the course completion status
var completionStatus = lmsAPI.GetValue("cmi.completion_status"); // Requesting completion status// Logging the status to the console
console.log("Course completion status:", completionStatus);// Saving the status in the text variable resultcourse in Storyline
var result = (completionStatus === "completed") ? "Completed" : "Not Completed"; // Formatting the status
player.SetVariable("resultcourse", result); // Setting the variable value in Storylinevar currentCourseUpdate = player.GetVariable("courseupdate");
var newCourseUpdate = currentCourseUpdate + 1;
player.SetVariable("courseupdate", newCourseUpdate);
- MathNotermans-9Community Member
Using this solution you can define yourself when to restrict the navigation...or free it...even customize it.
Restricted-but-flexible navigation? | Articulate - CommunityBasically it sets your navigation to free...and restrict it only on conditions you set. So no dependency from the LMS. You tell when to free the navigation. If a user has set some variables his/her navigations will stay free..
- SubtitleEditCommunity Member
To address the issue of reapplying navigation restrictions after course updates in Absorb LMS, you can try the following:
- Use SCORM 2004: It offers better tracking and can help maintain learner progress.
- Version the Course: Rather than replacing it, use a versioned course in Absorb to preserve learner progress and apply free navigation to the updated version.
- Modify Storyline Settings: Set Storyline to allow free navigation for completed courses and adjust resume settings.
- Custom JavaScript: Store progress in JavaScript to trigger navigation freedom after completion.
- Contact Absorb Support: Check for specific settings or features that can preserve learner progress and navigation.
These solutions can help ensure learners retain access to free navigation after course updates.