]> _ Git - fluidbook-toolbox.git/commitdiff
wait #5045
authorVincent Vanwaelscappel <vincent@cubedesigners.com>
Mon, 31 Jan 2022 15:32:46 +0000 (16:32 +0100)
committerVincent Vanwaelscappel <vincent@cubedesigners.com>
Mon, 31 Jan 2022 15:32:46 +0000 (16:32 +0100)
resources/elearningmedia/js/app.js
resources/elearningmedia/js/bootstrap.js
resources/elearningmedia/sass/app.sass

index fdd7ed497055b8ecc5cbda6aa038b9cba94d755c..3b3cb729cbb00bb292f6e34175ab3fbec02ce5ff 100644 (file)
@@ -1,14 +1,57 @@
 require('./bootstrap');
+import {SCORM} from 'pipwerks-scorm-api-wrapper';
+import Plyr from 'plyr';
+
+window.openTime = Date.now();
+
 
 document.addEventListener("DOMContentLoaded", function () {
-    const player = new Plyr('#player');
+    window.player = new Plyr('#player');
+
     SCORM.init();
 
+    SCORM.set('cmi.exit', 'suspend');
+    if (SCORM.get('cmi.completion_status') !== 'completed') {
+        SCORM.set('cmi.completion_status', 'incomplete');
+    }
+
+    var pc = (parseInt(progressComplete) / 100);
     var interval = setInterval(function () {
-        if (player.duration > 0 && currentTime > (player.duration * (progressComplete / 100))) {
-            SCORM.set('cmi.core.lesson_status', 'completed');
+        if (player.duration > 0 && player.currentTime > (player.duration * pc)) {
+            SCORM.set('cmi.completion_status', 'completed');
+            SCORM.set('cmi.success_status', 'passed');
             SCORM.save();
             clearInterval(interval);
         }
     }, 1000);
 });
+
+function setSessionTime() {
+    var endTime = Date.now();
+    SCORM.set('cmi.session_time', scormSecondsToTimeInterval((endTime.getTime() - window.openTime.getTime()) / 1000));
+}
+
+function scormSecondsToTimeInterval(diff) {
+    var diff = Math.round(diff);
+    var h = Math.floor(diff / 3600);
+    diff = diff % 3600;
+    var m = Math.floor(diff / 60);
+    var s = diff % 60;
+    return 'PT' + h + 'H' + m + 'M' + s + 'S';
+}
+
+function finishScorm(quit) {
+    if (quit === undefined) {
+        quit = true;
+    }
+
+    setSessionTime();
+    SCORM.save();
+    if (quit) {
+        SCORM.quit();
+    }
+}
+
+window.addEventListener('unload', function (event) {
+    finishScorm();
+});
index 07c2c6df17c85ccebb25b58099880e953994662d..2e6b511989fee11174aea225f20157ab3fe5ee62 100644 (file)
@@ -8,5 +8,3 @@ window._ = require('lodash');
 
 window.axios = require('axios');
 window.axios.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest';
-import {SCORM} from 'pipwerks-scorm-api-wrapper';
-import Plyr from 'plyr';
index 01d2dc14609a59e34eb33233cad2103a9f5afb77..06a91aec76c45fe3c6a7e2e91928991356b4842f 100644 (file)
@@ -11,6 +11,12 @@ html,body
     height: 100%
     overflow: hidden
 
+body
+    font-family: Arial, Helvetica, sans-serif
+
 video, audio
     width: 100%
     height: 100%
+
+.plyr
+    height: 100%