Moodle release 4.0.3
[moodle.git] / h5p / js / h5p_overrides.js
bloba0b6bf3a868a26744e17dd5b2ae4734a30a136e2
1 H5P._getLibraryPath = H5P.getLibraryPath;
2 H5P.getLibraryPath = function (library) {
3     if (H5PIntegration.moodleLibraryPaths) {
4         if (H5PIntegration.moodleLibraryPaths[library]) {
5             return H5PIntegration.moodleLibraryPaths[library];
6         }
7     }
8     return H5P._getLibraryPath(library);
9 };
10 H5P.findInstanceFromId = function (contentId) {
11     if (!contentId) {
12         return H5P.instances[0];
13     }
14     if (H5P.instances !== undefined) {
15         for (var i = 0; i < H5P.instances.length; i++) {
16             if (H5P.instances[i].contentId === contentId) {
17                 return H5P.instances[i];
18             }
19         }
20     }
21     return undefined;
23 H5P.getXAPIStatements = function (contentId, statement) {
24     var statements = [];
25     var instance = H5P.findInstanceFromId(contentId);
26     if (!instance){
27         return statements;
28     }
29     if (instance.getXAPIData == undefined) {
30         var xAPIData = {
31             statement: statement
32         };
33     } else {
34         var xAPIData = instance.getXAPIData();
35     }
36     if (xAPIData.statement != undefined) {
37         statements.push(xAPIData.statement);
38     }
39     if (xAPIData.children != undefined) {
40         statements = statements.concat(xAPIData.children.map(a => a.statement));
41     }
42     return statements;
44 H5P.getMoodleComponent = function () {
45     if (H5PIntegration.moodleComponent) {
46         return H5PIntegration.moodleComponent;
47     }
48     return undefined;
51 /**
52  * Set the actor. (Moved to overrides due to MDL-69467)
53  */
54 H5P.XAPIEvent.prototype.setActor = function () {
55     if (H5PIntegration.user !== undefined) {
56         this.data.statement.actor = {
57             'name': H5PIntegration.user.name,
58             'objectType': 'Agent'
59         };
60         if (H5PIntegration.user.id !== undefined) {
61             this.data.statement.actor.account = {
62                 'name': H5PIntegration.user.id,
63                 'homePage': H5PIntegration.siteUrl
64             }
65         } else if (H5PIntegration.user.mail !== undefined) {
66             this.data.statement.actor.mbox = 'mailto:' + H5PIntegration.user.mail;
67         }
68     } else {
69         var uuid;
70         try {
71             if (localStorage.H5PUserUUID) {
72                 uuid = localStorage.H5PUserUUID;
73             } else {
74                 uuid = H5P.createUUID();
75                 localStorage.H5PUserUUID = uuid;
76             }
77         }
78         catch (err) {
79             // LocalStorage and Cookies are probably disabled. Do not track the user.
80             uuid = 'not-trackable-' + H5P.createUUID();
81         }
82         this.data.statement.actor = {
83             'account': {
84                 'name': uuid,
85                 'homePage': H5PIntegration.siteUrl
86             },
87             'objectType': 'Agent'
88         };
89     }