Giter VIP home page Giter VIP logo

Comments (12)

cybercussion avatar cybercussion commented on May 28, 2024

Hi,
Try setting the adl.nav.request then call SB.commit then SB.finish or SB.suspend depending.

My partner says adl.nav.request is a 4th Edition feature so that might be the next place to look.

Thanks,
Mark

Sent from my iPhone

On Dec 4, 2012, at 7:47 PM, BlazeCell [email protected] wrote:

I'm having trouble getting the LMS to move on to the next SCO after calling

scorm.setvalue('adl.nav.request', 'continue');
I copied the ScoBot.finish() function and came up with this:

/**

  • Next
  • This will move to the next sco in the sequence.
  • @returns {String} 'true' or 'false'
    */
    this.next = function ()
    {
    if (isStarted)
    {
    scorm.debug(settings.prefix + ": I am moving next...", 3);
    scorm.setvalue('adl.nav.request', 'continue');
    updateStatus();
    scorm.commit();
    }
    return notStartedYet();
    };
    But whenever I call my ScoBot.next() function, the SCO page does not move on to the next one in the manifest.

I've tried calling

scorm.set('success_status', 'passed');
to work with updateStatus() but I'm still getting no dice.

It appears to me that SCORM_API is set up to create standalone SCOs, not a squence of SCOs in a single content package, so maybe I'm trying to do something that's not intended... =/

Any direction on this issue would most appreciated.

Thank you.


Reply to this email directly or view it on GitHub.

from scobot.

cybercussion avatar cybercussion commented on May 28, 2024

Ok, not on my phone now.

Looks like a recommendation might be to go this way -

this.next = function() {
    if(isStarted) {  // Sorry my previous example had a ! (checking false instead of true)
        scorm.debug(settings.prefix + ": I am moving next.  Is continue allowed? " + scorm.getvalue('adl.nav.request_valid.continue'), 3);
        //if (scorm.getvalue('adl.nav.request_valid.continue') === 'true') {  // This value can be 'true' or 'false'  as well as 'unknown' string.
            // Then call 'continue'
            //scorm.setvalue('adl.nav.request', 'continue');
        //}
        SB.commit();
        scorm.setvalue('adl.nav.request', 'continue'); // The LMS will do its work to check the validity of the navigation on/after commit
        return SB.suspend(); // or finish() -  you could use SB[scorm.get('exit_type')](); to so it uses your default behavior.
    } else {
        return notStartedYet();
    }
}

We looked into 3rd Edition and looks like ADL stuff is there so ignore my message about 4th edition.
You may need to set some scoring values to satisfy the LMS, but I'd have to look into the rules. I think 'continue' may be enough, but your right I didn't get to any ADL requests yet in my project.
Thanks for attempting to get that part going.

Mark

from scobot.

BlazeCell avatar BlazeCell commented on May 28, 2024

Thanks for replying, Mark.

Unfortunately, your proposed fix isn't working either. I'm getting an error in the console that says:

SCOBot: You didn't call 'start()' yet, or you already terminated, ignoring.

from scobot.

cybercussion avatar cybercussion commented on May 28, 2024

Sorry, take the "!" off "if (isStarted)". It was late and I goofed.

Also please note I updated a 'makeBoolean' call to turn the string returned from 'adl.nav.request_valid.continue'. That would of failed. Sample above updated.

from scobot.

BlazeCell avatar BlazeCell commented on May 28, 2024

I've tried your latest fix, but it's unfortunately still not working.

This is what I get in the console when I trigger the next() function:

LOG: SCOBot: I am suspending... 
SCORM_API: Terminating true [object HTMLObjectElement] 
LOG: SCORM_API: completion_status = incomplete|| success_status = passed 
LOG: SCORM_API: Committing data 
LOG: SCORM_API: Terminated. 

from scobot.

cybercussion avatar cybercussion commented on May 28, 2024

I adjusted the code above to trace out whether your LMS is providing support for 'continue'.
See - scorm.debug(settings.prefix + ": I am moving next. Is continue allowed? " + scorm.getvalue('adl.nav.request_valid.continue'), 3);
That should narrow down if the LMS is returning 'false'. You could attempt to not check for support, and set it anyway but that might shed some light to if the LMS features support to advance to the next SCO on terminate.

from scobot.

BlazeCell avatar BlazeCell commented on May 28, 2024

Well, I'm using ADL's example LMS, so I don't think support for the 'continue' feature is the issue as the example content packages from ADL work fine.

from scobot.

brandonbradley avatar brandonbradley commented on May 28, 2024

Which of ADL's examples are you finding work fine? It could be how something is specified in the manifest too.

from scobot.

BlazeCell avatar BlazeCell commented on May 28, 2024

I've tried ADL's:

  • 4th Edition Data Model Content Example (DMCE)
  • 4th Edition Sequencing Essentials Content Example (SECE)
  • 4th Edition Manifest Basics Content Example (MBCE)

You can find those resources here:
http://www.adlnet.gov/capabilities/scorm#tab-learn

from scobot.

cybercussion avatar cybercussion commented on May 28, 2024

BlazeCell,
I'm taking a look at the scenario quick to identify what would make a LMS evaluate the manifest seq & nav tree as something that can be continued. Right now I did a quick test and its getting evaluated as 'false'. Have a feeling it may be some parameters in the CAM (imsmanifest.xml) that need to be adjusted. I'll follow up in a bit.

from scobot.

cybercussion avatar cybercussion commented on May 28, 2024

BlazeCell,
In order to enable Flow you'd have to add -

<imsss:sequencing>
      <imsss:controlMode choice="false" choiceExit="false" flow="true" forwardOnly = "true"/>
</imsss:sequencing>

to a tier above your SCO items in the manifest.

I added this to the project now and updated some tests so everything checked out. I had to add this sequencing information at the top tier/item above my QUnit tests (3). If I enabled 'continue' it auto-advanced thru all of them and worked fine.

Let me know if you have any other issues.

Notes: If any one else has this issue, understand that the LMS can have buttons available within the UI around the SCO. Based on setting commit, the LMS will calculate whether the adl.nav.request_valid.continue is 'true', 'false' and prior to that it may respond 'unknown'. Along with the next, and previous buttons you can make it so the user/student has or has no choice, and can go forward only or allow them to go backwards.
There are other settings done on each SCO within the adlnav:presentation element which may hide the features to take them out of the flow.

<adlnav:presentation>
    <adlnav:navigationInterface>
        <adlnav:hideLMSUI>continue</adlnav:hideLMSUI>
        <adlnav:hideLMSUI>previous</adlnav:hideLMSUI>
        <adlnav:hideLMSUI>suspendAll</adlnav:hideLMSUI>
    </adlnav:navigationInterface>
</adlnav:presentation>

So a SCO may use 'adl.nav.request_valid.continue' if they wish to display the "continue" button, but you can just attempt to set:

scorm.setvalue('adl.nav.request', 'continue');

and when the SCO terminates the LMS will advance you to the next SCO in the tree if its allowed. It is all hinged on your imsmanifest.xml being configured. I've committed what was discussed here to the project so it would have an example.

from scobot.

cybercussion avatar cybercussion commented on May 28, 2024

I'm going to close this out. If you have any other questions please feel free.

from scobot.

Related Issues (10)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.