]> _ Git - fluidbook-html5.git/commitdiff
done #1859 @5
authorVincent Vanwaelscappel <vincent@cubedesigners.com>
Fri, 5 Jan 2018 14:17:45 +0000 (15:17 +0100)
committerVincent Vanwaelscappel <vincent@cubedesigners.com>
Fri, 5 Jan 2018 14:17:45 +0000 (15:17 +0100)
js/libs/fluidbook/fluidbook.js
js/libs/fluidbook/fluidbook.links.js
js/libs/fluidbook/fluidbook.scorm.js [new file with mode: 0644]

index 7706b13d437a06fdbbb56d57cf76c877cfdc7a12..6a0722eaa7559631294351fbb3d8d46a67fc711f 100644 (file)
@@ -50,6 +50,9 @@ Fluidbook.prototype = {
         this.tooltip = new FluidbookTooltip(this);
         this.audiodescription = new FluidbookAudioDescription(this);
         this.sound = new FluidbookSound(this);
+        if (this.datas.scorm_enable) {
+            this.scorm = new FluidbookScorm(this);
+        }
 
         if (this.datas.form == 'bulle') {
             this.form = new FluidbookBulleForm(this);
index 5ac7530802b212f22f7b53aa33a2e17f744c1458..26c89584143a569d6c1f7f047d00ed7473ccd8d5 100644 (file)
@@ -12,6 +12,7 @@ FluidbookLinks.prototype = {
 
         });
 
+
         // ToDo: consider re-using existing popinOverlay div?
         $('body').append('<div id="zoomPopupOverlay"></div><div id="zoomPopupWrapper"><a href="#" class="zoomPopupClose">' + getSpriteIcon('interface-close') + '</a></div>');
 
@@ -301,6 +302,10 @@ FluidbookLinks.prototype = {
         setTimeout(function () {
             $("#zoomPopupOverlay").css('opacity', 1)
         }, 10)
-    }
+    },
+    triggerLinkById: function (id) {
+        var a = $('.link[data-id="' + id + '"] a:eq(0)');
+        a.get(0).click();
+    },
 
 }
diff --git a/js/libs/fluidbook/fluidbook.scorm.js b/js/libs/fluidbook/fluidbook.scorm.js
new file mode 100644 (file)
index 0000000..8257263
--- /dev/null
@@ -0,0 +1,47 @@
+function FluidbookScorm(fluidbook) {
+    this.fluidbook = fluidbook;
+    this.linksToComplete = [];
+    this.init();
+}
+
+FluidbookScorm.prototype = {
+    init: function () {
+        var $this = this;
+
+        if (this.fluidbook.datas.scorm_variables.linkstocomplete) {
+            this.linksToComplete = this.fluidbook.datas.scorm_variables.linkstocomplete.split(',');
+        }
+
+        $(document).on('click', 'a', function () {
+            var link = $(this).closest('.link[data-id]');
+            if (link.length > 0) {
+                var id = link.data('id');
+                $this.completeLink(id);
+            }
+            return true;
+        });
+    },
+
+    completeLink: function (id) {
+        var index = this.linksToComplete.indexOf(id);
+        if (index > -1) {
+            this.linksToComplete.splice(index, 1);
+        }
+    },
+
+    linksCompleted: function () {
+        return (this.linksToComplete.length == 0);
+    },
+
+    openLinkIfCompleteOrDisplayImage: function (openLink, openImage) {
+        var $this = this;
+        var id = this.linksCompleted() ? openLink : openImage;
+        if (!Array.isArray(id)) {
+            id = [id];
+        }
+        $.each(id, function (k, v) {
+            $this.fluidbook.links.triggerLinkById(v);
+        });
+
+    },
+};
\ No newline at end of file