diff --git a/mod/scorm/datamodels/aicc.js.php b/mod/scorm/datamodels/aicc.js.php
index 8a76338f327..1a55f6bf684 100644
--- a/mod/scorm/datamodels/aicc.js.php
+++ b/mod/scorm/datamodels/aicc.js.php
@@ -219,13 +219,6 @@ if ($count > 0) {
return "false";
}
-
-dirroot.'/mod/scorm/datamodels/callback.js.php');
-?>
-
-
function LMSFinish (param) {
errorCode = "0";
if (param == "") {
@@ -245,7 +238,7 @@ require_once($CFG->dirroot.'/mod/scorm/datamodels/callback.js.php');
}
// trigger TOC update
var sURL = "wwwroot; ?>" + "/mod/scorm/prereqs.php?a=id ?>&scoid=&attempt=&mode=¤torg=&sesskey=";
- var callback = this.connectPrereqCallback;
+ var callback = M.mod_scorm.connectPrereqCallback;
YUI().use('yui2-connection', function(Y) {
Y.YUI2.util.Connect.asyncRequest('GET', sURL, callback, null);
});
diff --git a/mod/scorm/datamodels/callback.js.php b/mod/scorm/datamodels/callback.js.php
deleted file mode 100644
index 27538674f6e..00000000000
--- a/mod/scorm/datamodels/callback.js.php
+++ /dev/null
@@ -1,104 +0,0 @@
-.
-
-?>
- this.connectPrereqCallback = {
-
- success: function(o) {
- YUI().use('yui2-treeview', 'yui2-layout', function(Y) {
- // MDL-29159 The core version of getContentHtml doesn't escape text properly.
- Y.YUI2.widget.TextNode.prototype.getContentHtml = function() {
- var sb = [];
- sb[sb.length] = this.href ? '';
- sb[sb.length] = this.label;
- sb[sb.length] = this.href?'':'';
- return sb.join("");
- };
-
- if (o.responseText !== undefined) {
- var tree = new Y.YUI2.widget.TreeView('scorm_tree');
- if (scorm_tree_node && o.responseText) {
- var hnode = scorm_tree_node.getHighlightedNode();
- var hidx = null;
- if (hnode) {
- hidx = hnode.index + scorm_tree_node.getNodeCount();
- }
- // all gone
- var root_node = scorm_tree_node.getRoot();
- while (root_node.children.length > 0) {
- scorm_tree_node.removeNode(root_node.children[0]);
- }
- }
- // make sure the temporary tree element is not there
- var el_old_tree = document.getElementById('scormtree123');
- if (el_old_tree) {
- el_old_tree.parentNode.removeChild(el_old_tree);
- }
- var el_new_tree = document.createElement('div');
- var pagecontent = document.getElementById("page-content");
- el_new_tree.setAttribute('id','scormtree123');
- el_new_tree.innerHTML = o.responseText;
- // make sure it doesnt show
- el_new_tree.style.display = 'none';
- pagecontent.appendChild(el_new_tree)
- // ignore the first level element as this is the title
- var startNode = el_new_tree.firstChild.firstChild;
- if (startNode.tagName == 'LI') {
- // go back to the beginning
- startNode = el_new_tree;
- }
- //var sXML = new XMLSerializer().serializeToString(startNode);
- scorm_tree_node.buildTreeFromMarkup('scormtree123');
- var el = document.getElementById('scormtree123');
- el.parentNode.removeChild(el);
- scorm_tree_node.expandAll();
- scorm_tree_node.render();
- if (hidx != null) {
- hnode = scorm_tree_node.getNodeByIndex(hidx);
- if (hnode) {
- hnode.highlight();
- scorm_layout_widget = Y.YUI2.widget.Layout.getLayoutById('scorm_layout');
- var left = scorm_layout_widget.getUnitByPosition('left');
- if (left.expanded) {
- hnode.focus();
- }
- }
- }
- }
- });
- },
-
- failure: function(o) {
- // do some sort of error handling
- var sURL = "wwwroot; ?>" + "/mod/scorm/prereqs.php?a=id ?>&scoid=&attempt=&mode=¤torg=&sesskey=";
- //TODO: Enable this error handing correctly - avoiding issues when closing player MDL-23470
- //alert('Prerequisites update failed - must restart SCORM player');
- //window.location.href = sURL;
- }
-
- };
-
-
diff --git a/mod/scorm/datamodels/scorm_12.js.php b/mod/scorm/datamodels/scorm_12.js.php
index f2623b1a504..092a7e649ba 100644
--- a/mod/scorm/datamodels/scorm_12.js.php
+++ b/mod/scorm/datamodels/scorm_12.js.php
@@ -198,11 +198,6 @@ function SCORMapi1_2() {
return "false";
}
-dirroot.'/mod/scorm/datamodels/callback.js.php');
-?>
-
function LMSFinish (param) {
errorCode = "0";
if (param == "") {
@@ -235,7 +230,7 @@ function SCORMapi1_2() {
?>
// trigger TOC update
var sURL = "wwwroot; ?>" + "/mod/scorm/prereqs.php?a=id ?>&scoid=&attempt=&mode=¤torg=&sesskey=";
- var callback = this.connectPrereqCallback;
+ var callback = M.mod_scorm.connectPrereqCallback;
YUI().use('yui2-connection', function(Y) {
Y.YUI2.util.Connect.asyncRequest('GET', sURL, callback, null);
});
diff --git a/mod/scorm/datamodels/scorm_13.js.php b/mod/scorm/datamodels/scorm_13.js.php
index 0d6dd23f17a..73bc4534c6a 100644
--- a/mod/scorm/datamodels/scorm_13.js.php
+++ b/mod/scorm/datamodels/scorm_13.js.php
@@ -313,13 +313,6 @@ function SCORMapi1_3() {
return "false";
}
-
-dirroot.'/mod/scorm/datamodels/callback.js.php');
- ?>
-
-
function Terminate (param) {
errorCode = "0";
if (param == "") {
@@ -366,7 +359,7 @@ function SCORMapi1_3() {
}
// trigger TOC update
var sURL = "wwwroot; ?>" + "/mod/scorm/prereqs.php?a=id ?>&scoid=&attempt=&mode=¤torg=&sesskey=";
- var callback = this.connectPrereqCallback;
+ var callback = M.mod_scorm.connectPrereqCallback;
YUI().use('yui2-connection', function(Y) {
Y.YUI2.util.Connect.asyncRequest('GET', sURL, callback, null);
});
diff --git a/mod/scorm/module.js b/mod/scorm/module.js
index 2ed708f8f0c..03902fa80fa 100644
--- a/mod/scorm/module.js
+++ b/mod/scorm/module.js
@@ -14,7 +14,7 @@
// along with Moodle. If not, see .
/**
- * Javascript helper function for IMS Content Package module.
+ * Javascript helper function for SCORM module.
*
* @package mod-scorm
* @copyright 2009 Petr Skoda (http://skodak.org)
@@ -541,4 +541,86 @@ M.mod_scorm.init = function(Y, hide_nav, hide_toc, toc_title, window_name, launc
scorm_resize_layout(true);
};
});
+};
+
+M.mod_scorm.connectPrereqCallback = {
+
+ success: function(o) {
+ YUI().use('yui2-treeview', 'yui2-layout', function(Y) {
+ // MDL-29159 The core version of getContentHtml doesn't escape text properly.
+ Y.YUI2.widget.TextNode.prototype.getContentHtml = function() {
+ var sb = [];
+ sb[sb.length] = this.href ? '';
+ sb[sb.length] = this.label;
+ sb[sb.length] = this.href?'':'';
+ return sb.join("");
+ };
+
+ if (o.responseText !== undefined) {
+ var tree = new Y.YUI2.widget.TreeView('scorm_tree');
+ if (scorm_tree_node && o.responseText) {
+ var hnode = scorm_tree_node.getHighlightedNode();
+ var hidx = null;
+ if (hnode) {
+ hidx = hnode.index + scorm_tree_node.getNodeCount();
+ }
+ // all gone
+ var root_node = scorm_tree_node.getRoot();
+ while (root_node.children.length > 0) {
+ scorm_tree_node.removeNode(root_node.children[0]);
+ }
+ }
+ // make sure the temporary tree element is not there
+ var el_old_tree = document.getElementById('scormtree123');
+ if (el_old_tree) {
+ el_old_tree.parentNode.removeChild(el_old_tree);
+ }
+ var el_new_tree = document.createElement('div');
+ var pagecontent = document.getElementById("page-content");
+ el_new_tree.setAttribute('id','scormtree123');
+ el_new_tree.innerHTML = o.responseText;
+ // make sure it doesnt show
+ el_new_tree.style.display = 'none';
+ pagecontent.appendChild(el_new_tree)
+ // ignore the first level element as this is the title
+ var startNode = el_new_tree.firstChild.firstChild;
+ if (startNode.tagName == 'LI') {
+ // go back to the beginning
+ startNode = el_new_tree;
+ }
+ //var sXML = new XMLSerializer().serializeToString(startNode);
+ scorm_tree_node.buildTreeFromMarkup('scormtree123');
+ var el = document.getElementById('scormtree123');
+ el.parentNode.removeChild(el);
+ scorm_tree_node.expandAll();
+ scorm_tree_node.render();
+ if (hidx != null) {
+ hnode = scorm_tree_node.getNodeByIndex(hidx);
+ if (hnode) {
+ hnode.highlight();
+ scorm_layout_widget = Y.YUI2.widget.Layout.getLayoutById('scorm_layout');
+ var left = scorm_layout_widget.getUnitByPosition('left');
+ if (left.expanded) {
+ hnode.focus();
+ }
+ }
+ }
+ }
+ });
+ },
+
+ failure: function(o) {
+ // TODO: do some sort of error handling.
+ }
+
};
\ No newline at end of file