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 ? '':''; - 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 ? '':''; + 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