diff --git a/mod/folder/db/install.xml b/mod/folder/db/install.xml index 9481f0534f5..aacb69233be 100644 --- a/mod/folder/db/install.xml +++ b/mod/folder/db/install.xml @@ -1,5 +1,5 @@ - @@ -14,6 +14,7 @@ + @@ -23,4 +24,4 @@ - \ No newline at end of file + diff --git a/mod/folder/db/upgrade.php b/mod/folder/db/upgrade.php index 9db0090baa5..fabe0c98b2d 100644 --- a/mod/folder/db/upgrade.php +++ b/mod/folder/db/upgrade.php @@ -58,7 +58,6 @@ function xmldb_folder_upgrade($oldversion) { // Moodle v2.3.0 release upgrade line // Put any upgrade step following this - // Moodle v2.4.0 release upgrade line // Put any upgrade step following this @@ -77,5 +76,20 @@ function xmldb_folder_upgrade($oldversion) { upgrade_mod_savepoint(true, 2013012100, 'folder'); } + if ($oldversion < 2013031500) { + + // Define field show_expanded to be added to folder + $table = new xmldb_table('folder'); + $field = new xmldb_field('show_expanded', XMLDB_TYPE_INTEGER, '1', null, XMLDB_NOTNULL, null, '1', 'revision'); + + // Conditionally launch add field show_expanded + if (!$dbman->field_exists($table, $field)) { + $dbman->add_field($table, $field); + } + + // folder savepoint reached + upgrade_mod_savepoint(true, 2013031500, 'folder'); + } + return true; } diff --git a/mod/folder/lang/en/folder.php b/mod/folder/lang/en/folder.php index b7130632939..e5d68ce57c5 100644 --- a/mod/folder/lang/en/folder.php +++ b/mod/folder/lang/en/folder.php @@ -51,3 +51,5 @@ Also note that participants view actions can not be logged in this case.'; $string['displaypage'] = 'On a separate page'; $string['displayinline'] = 'Inline on a course page'; $string['noautocompletioninline'] = 'Automatic completion on viewing of activity can not be selected together with "Display inline" option'; +$string['show_expanded'] = 'Show sub-folders expanded'; +$string['show_expanded_help'] = 'If enabled, will display sub-folders expanded by default. Else, sub-folders will display collapsed.'; diff --git a/mod/folder/mod_form.php b/mod/folder/mod_form.php index 70af9e1e6af..99f1debfb6a 100644 --- a/mod/folder/mod_form.php +++ b/mod/folder/mod_form.php @@ -55,7 +55,10 @@ class mod_folder_mod_form extends moodleform_mod { $mform->addHelpButton('display', 'display', 'mod_folder'); $mform->setExpanded('content'); - + // Adding option to show sub-folders expanded or collapsed by default. + $mform->addElement('advcheckbox', 'show_expanded', get_string('show_expanded', 'folder')); + $mform->addHelpButton('show_expanded', 'show_expanded', 'mod_folder'); + $mform->setDefault('show_expanded', $config->show_expanded); //------------------------------------------------------- $this->standard_coursemodule_elements(); diff --git a/mod/folder/module.js b/mod/folder/module.js index 415d167201f..5e0e638ea2d 100644 --- a/mod/folder/module.js +++ b/mod/folder/module.js @@ -35,6 +35,9 @@ M.mod_folder.init_tree = function(Y, id, expand_all) { if (expand_all) { tree.expandAll(); + } else { + // Else just expand the top node. + tree.getNodeByIndex(1).expand(); } tree.render(); diff --git a/mod/folder/renderer.php b/mod/folder/renderer.php index c9dbbb7e6bf..830387046df 100644 --- a/mod/folder/renderer.php +++ b/mod/folder/renderer.php @@ -78,8 +78,12 @@ class mod_folder_renderer extends plugin_renderer_base { $content .= '
'; $content .= $this->htmllize_tree($tree, array('files' => array(), 'subdirs' => array($tree->dir))); $content .= '
'; - $this->page->requires->js_init_call('M.mod_folder.init_tree', array($id, true)); - return $content; + $show_expanded = true; + if (empty($tree->folder->show_expanded)) { + $show_expanded = false; + } + $this->page->requires->js_init_call('M.mod_folder.init_tree', array($id, $show_expanded)); + return $content; } /** diff --git a/mod/folder/settings.php b/mod/folder/settings.php index c0034bd8ec0..4cfea08c7c6 100644 --- a/mod/folder/settings.php +++ b/mod/folder/settings.php @@ -30,4 +30,8 @@ if ($ADMIN->fulltree) { //--- general settings ----------------------------------------------------------------------------------- $settings->add(new admin_setting_configcheckbox('folder/requiremodintro', get_string('requiremodintro', 'admin'), get_string('configrequiremodintro', 'admin'), 1)); + + $settings->add(new admin_setting_configcheckbox('folder/show_expanded', + get_string('show_expanded', 'folder'), + get_string('show_expanded_help', 'folder'), 1)); } diff --git a/mod/folder/version.php b/mod/folder/version.php index 1e168a3f5b0..c3cf83bbc6c 100644 --- a/mod/folder/version.php +++ b/mod/folder/version.php @@ -25,7 +25,7 @@ defined('MOODLE_INTERNAL') || die(); -$module->version = 2013012100; // The current module version (Date: YYYYMMDDXX) +$module->version = 2013031500; // The current module version (Date: YYYYMMDDXX) $module->requires = 2012112900; // Requires this Moodle version $module->component = 'mod_folder'; // Full name of the plugin (used for diagnostics) $module->cron = 0;