From 1680c75c88ec857bd69d1b1f633892853c9582cd Mon Sep 17 00:00:00 2001 From: Mayank Gupta Date: Wed, 25 Sep 2013 16:41:33 +0530 Subject: [PATCH 1/2] MDL-39910 mod_scorm: fix enable/disable navigation buttons --- mod/scorm/module.js | 42 +++++++++++++++++++++++++++++++++--------- 1 file changed, 33 insertions(+), 9 deletions(-) diff --git a/mod/scorm/module.js b/mod/scorm/module.js index efdaa8efd84..dd943b96495 100644 --- a/mod/scorm/module.js +++ b/mod/scorm/module.js @@ -210,15 +210,39 @@ M.mod_scorm.init = function(Y, nav_display, navposition_left, navposition_top, h * @return void */ var scorm_fixnav = function() { - scorm_buttons[0].set('disabled', ((scorm_skipprev(scorm_current_node) === null) || (scorm_skipprev(scorm_current_node).parent.isRoot()) || - (scorm_skipprev(scorm_current_node).title === null) || (scoes_nav[launch_sco].hideprevious === 1))); - scorm_buttons[1].set('disabled', ((scorm_prev(scorm_current_node) === null) || (scorm_skipprev(scorm_current_node).parent.isRoot()) || - (scorm_prev(scorm_current_node).title === null) || (scoes_nav[launch_sco].hideprevious === 1))); - scorm_buttons[2].set('disabled', (scorm_up(scorm_current_node) === null) || (scorm_up(scorm_current_node).parent.isRoot()) || - (scorm_up(scorm_current_node).title === null)); - scorm_buttons[3].set('disabled', ((scorm_next(scorm_current_node) === null) || ((scorm_next(scorm_current_node).title === null) && - (scoes_nav[launch_sco].flow !== 1)) || (scoes_nav[launch_sco].hidecontinue === 1))); - scorm_buttons[4].set('disabled', (scorm_skipnext(scorm_current_node) === null || scorm_skipnext(scorm_current_node).title === null || + var skipprevnode = scorm_skipprev(scorm_current_node); + var prevnode = scorm_prev(scorm_current_node); + var skipnextnode = scorm_skipnext(scorm_current_node); + var nextnode = scorm_next(scorm_current_node); + var upnode = scorm_up(scorm_current_node); + + scorm_buttons[0].set('disabled', ((skipprevnode === null) || + (typeof(skipprevnode.scoid) === 'undefined') || + (scoes_nav[skipprevnode.scoid].isvisible === "false") || + (skipprevnode.title === null) || + (scoes_nav[launch_sco].hideprevious === 1))); + + scorm_buttons[1].set('disabled', ((prevnode === null) || + (typeof(prevnode.scoid) === 'undefined') || + (scoes_nav[prevnode.scoid].isvisible === "false") || + (prevnode.title === null) || + (scoes_nav[launch_sco].hideprevious === 1))); + + scorm_buttons[2].set('disabled', (upnode === null) || + (typeof(upnode.scoid) === 'undefined') || + (scoes_nav[upnode.scoid].isvisible === "false") || + (upnode.title === null)); + + scorm_buttons[3].set('disabled', ((nextnode === null) || + ((nextnode.title === null) && (scoes_nav[launch_sco].flow !== 1)) || + (typeof(nextnode.scoid) === 'undefined') || + (scoes_nav[nextnode.scoid].isvisible === "false") || + (scoes_nav[launch_sco].hidecontinue === 1))); + + scorm_buttons[4].set('disabled', ((skipnextnode === null) || + (skipnextnode.title === null) || + (typeof(skipnextnode.scoid) === 'undefined') || + (scoes_nav[skipnextnode.scoid].isvisible === "false") || scoes_nav[launch_sco].hidecontinue === 1)); }; From 8d29a8c3bc9dea0c28e0b5ed842afe7f06eb393b Mon Sep 17 00:00:00 2001 From: Dan Marsden Date: Thu, 26 Sep 2013 21:03:00 +1200 Subject: [PATCH 2/2] MDL-39910 SCORM: set correct site level defaults. --- mod/scorm/db/upgrade.php | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/mod/scorm/db/upgrade.php b/mod/scorm/db/upgrade.php index 13ac7245902..f2171b85fb2 100644 --- a/mod/scorm/db/upgrade.php +++ b/mod/scorm/db/upgrade.php @@ -130,6 +130,7 @@ function xmldb_scorm_upgrade($oldversion) { } if ($oldversion < 2013090100) { + global $CFG; $table = new xmldb_table('scorm'); $field = new xmldb_field('nav', XMLDB_TYPE_INTEGER, '1', XMLDB_UNSIGNED, true, null, 1, 'hidetoc'); @@ -160,14 +161,17 @@ function xmldb_scorm_upgrade($oldversion) { $dbman->drop_field($table, $field); } - $params = array('plugin' => 'scorm', 'name' => 'hidenav'); - if ($DB->record_exists('config_plugins', $params)) { - $DB->delete_records('config_plugins', $params); - } - $params = array('plugin' => 'scorm', 'name' => 'hidenav_adv'); - if ($DB->record_exists('config_plugins', $params)) { - $DB->delete_records('config_plugins', $params); + $hide = get_config('scorm', 'hidenav'); + unset_config('hidenav', 'scorm'); + if (!empty($hide)) { + require_once($CFG->dirroot . '/mod/scorm/lib.php'); + set_config('nav', SCORM_NAV_DISABLED, 'scorm'); } + + $hideadv = get_config('scorm', 'hidenav_adv'); + unset_config('hidenav_adv', 'scorm'); + set_config('nav_adv', $hideadv, 'scorm'); + upgrade_mod_savepoint(true, 2013090100, 'scorm'); }