diff --git a/course/renderer.php b/course/renderer.php index 787866a4853..637a3282a03 100644 --- a/course/renderer.php +++ b/course/renderer.php @@ -58,7 +58,6 @@ class core_course_renderer extends plugin_renderer_base { public function __construct(moodle_page $page, $target) { $this->strings = new stdClass; parent::__construct($page, $target); - $this->add_modchoosertoggle(); } /** @@ -66,8 +65,12 @@ class core_course_renderer extends plugin_renderer_base { * * Theme can overwrite as an empty function to exclude it (for example if theme does not * use modchooser at all) + * + * @deprecated since 3.2 */ protected function add_modchoosertoggle() { + debugging('core_course_renderer::add_modchoosertoggle() is deprecated.', DEBUG_DEVELOPER); + global $CFG; // Only needs to be done once per page. @@ -182,9 +185,7 @@ class core_course_renderer extends plugin_renderer_base { array(array('courseid' => $course->id, 'closeButtonTitle' => get_string('close', 'editor'))) ); $this->page->requires->strings_for_js(array( - 'addresourceoractivity', - 'modchooserenable', - 'modchooserdisable', + 'addresourceoractivity' ), 'moodle'); // Add the header @@ -406,9 +407,6 @@ class core_course_renderer extends plugin_renderer_base { /** * Renders HTML for the menus to add activities and resources to the current course * - * Note, if theme overwrites this function and it does not use modchooser, - * see also {@link core_course_renderer::add_modchoosertoggle()} - * * @param stdClass $course * @param int $section relative section number (field course_sections.section) * @param int $sectionreturn The section to link back to diff --git a/course/view.php b/course/view.php index e15a0226b89..cad24e711c4 100644 --- a/course/view.php +++ b/course/view.php @@ -17,7 +17,6 @@ $move = optional_param('move', 0, PARAM_INT); $marker = optional_param('marker',-1 , PARAM_INT); $switchrole = optional_param('switchrole',-1, PARAM_INT); // Deprecated, use course/switchrole.php instead. - $modchooser = optional_param('modchooser', -1, PARAM_BOOL); $return = optional_param('return', 0, PARAM_LOCALURL); $params = array(); @@ -170,11 +169,6 @@ redirect($PAGE->url); } } - if (($modchooser == 1) && confirm_sesskey()) { - set_user_preference('usemodchooser', $modchooser); - } else if (($modchooser == 0) && confirm_sesskey()) { - set_user_preference('usemodchooser', $modchooser); - } if (has_capability('moodle/course:sectionvisibility', $context)) { if ($hide && confirm_sesskey()) { diff --git a/course/yui/build/moodle-course-modchooser/moodle-course-modchooser-debug.js b/course/yui/build/moodle-course-modchooser/moodle-course-modchooser-debug.js index 1689ac9789c..b9865553e31 100644 --- a/course/yui/build/moodle-course-modchooser/moodle-course-modchooser-debug.js +++ b/course/yui/build/moodle-course-modchooser/moodle-course-modchooser-debug.js @@ -56,9 +56,6 @@ Y.extend(MODCHOOSER, M.core.chooserdialogue, { // Initialize existing sections and register for dynamically created sections this.setup_for_section(); M.course.coursebase.register_module(this); - - // Catch the page toggle - Y.all('.block_settings #settingsnav .type_course .modchoosertoggle a').on('click', this.toggle_mod_chooser, this); }, /** @@ -132,62 +129,6 @@ Y.extend(MODCHOOSER, M.core.chooserdialogue, { this.display_chooser(e); }, - /** - * Toggle availability of the activity chooser. - * - * @method toggle_mod_chooser - * @param {EventFacade} e - */ - toggle_mod_chooser : function(e) { - // Get the add section link - var modchooserlinks = Y.all('div.addresourcemodchooser'); - - // Get the dropdowns - var dropdowns = Y.all('div.addresourcedropdown'); - - if (modchooserlinks.size() === 0) { - // Continue with non-js action if there are no modchoosers to add - return; - } - - // We need to update the text and link - var togglelink = Y.one('.block_settings #settingsnav .type_course .modchoosertoggle a'); - - // The actual text is in the last child - var toggletext = togglelink.get('lastChild'); - - var usemodchooser; - // Determine whether they're currently hidden - if (modchooserlinks.item(0).hasClass('visibleifjs')) { - // The modchooser is currently visible, hide it - usemodchooser = 0; - modchooserlinks - .removeClass('visibleifjs') - .addClass('hiddenifjs'); - dropdowns - .addClass('visibleifjs') - .removeClass('hiddenifjs'); - toggletext.set('data', M.util.get_string('modchooserenable', 'moodle')); - togglelink.set('href', togglelink.get('href').replace('off', 'on')); - } else { - // The modchooser is currently not visible, show it - usemodchooser = 1; - modchooserlinks - .addClass('visibleifjs') - .removeClass('hiddenifjs'); - dropdowns - .removeClass('visibleifjs') - .addClass('hiddenifjs'); - toggletext.set('data', M.util.get_string('modchooserdisable', 'moodle')); - togglelink.set('href', togglelink.get('href').replace('on', 'off')); - } - - M.util.set_user_preference('usemodchooser', usemodchooser); - - // Prevent the page from reloading - e.preventDefault(); - }, - /** * Helper function to set the value of a hidden radio button when a * selection is made. diff --git a/course/yui/build/moodle-course-modchooser/moodle-course-modchooser-min.js b/course/yui/build/moodle-course-modchooser/moodle-course-modchooser-min.js index 1f082870cf6..a690c8a44c7 100644 --- a/course/yui/build/moodle-course-modchooser/moodle-course-modchooser-min.js +++ b/course/yui/build/moodle-course-modchooser/moodle-course-modchooser-min.js @@ -1 +1 @@ -YUI.add("moodle-course-modchooser",function(e,t){var n={PAGECONTENT:"body",SECTION:null,SECTIONMODCHOOSER:"span.section-modchooser-link",SITEMENU:"div.block_site_main_menu",SITETOPIC:"div.sitetopic"},r="course-modchooser",i=function(){i.superclass.constructor.apply(this,arguments)};e.extend(i,M.core.chooserdialogue,{sectionid:null,initializer:function(){var t=M.course.format.get_sectionwrapperclass();t&&(n.SECTION="."+t);var r=e.one(".chooserdialoguebody"),i=e.one(".choosertitle"),s={};this.setup_chooser_dialogue(r,i,s),this.setup_for_section(),M.course.coursebase.register_module(this),e.all(".block_settings #settingsnav .type_course .modchoosertoggle a").on("click",this.toggle_mod_chooser,this)},setup_for_section:function(t){t||(t=n.PAGECONTENT),e.one(t).all(n.SITETOPIC).each(function(e){this._setup_for_section(e)},this),n.SECTION&&e.one(t).all(n.SECTION).each(function(e){this._setup_for_section(e)},this),e.one(t).all(n.SITEMENU).each(function(e){this._setup_for_section(e)},this)},_setup_for_section:function(t){var r=t.one(n.SECTIONMODCHOOSER);if(!r)return;var i=e.Node.create("");r.get("children").each(function(e){i.appendChild(e)}),r.insertBefore(i),i.on("click",this.display_mod_chooser,this)},display_mod_chooser:function(e){if(e.target.ancestor(n.SITETOPIC))this.sectionid=1;else if(e.target.ancestor(n.SECTION)){var t=e.target.ancestor(n.SECTION);this.sectionid=t.get("id").replace("section-","")}else e.target.ancestor(n.SITEMENU)&&(this.sectionid=0);this.display_chooser(e)},toggle_mod_chooser:function(t){var n=e.all("div.addresourcemodchooser"),r=e.all("div.addresourcedropdown");if(n.size()===0)return;var i=e.one(".block_settings #settingsnav .type_course .modchoosertoggle a"),s=i.get("lastChild"),o;n.item(0).hasClass("visibleifjs")?(o=0,n.removeClass("visibleifjs").addClass("hiddenifjs"),r.addClass("visibleifjs").removeClass("hiddenifjs"),s.set("data",M.util.get_string("modchooserenable","moodle")),i.set("href",i.get("href").replace("off","on"))):(o=1,n.addClass("visibleifjs").removeClass("hiddenifjs"),r.removeClass("visibleifjs").addClass("hiddenifjs"),s.set("data",M.util.get_string("modchooserdisable","moodle")),i.set("href",i.get("href").replace("on","off"))),M.util.set_user_preference("usemodchooser",o),t.preventDefault()},option_selected:function(e){this.hiddenRadioValue.setAttrs({name:"jump",value:e.get("value")+"§ion="+this.sectionid})}},{NAME:r,ATTRS:{maxheight:{value:800}}}),M.course=M.course||{},M.course.init_chooser=function(e){return new i(e)}},"@VERSION@",{requires:["moodle-core-chooserdialogue","moodle-course-coursebase"]}); +YUI.add("moodle-course-modchooser",function(e,t){var n={PAGECONTENT:"body",SECTION:null,SECTIONMODCHOOSER:"span.section-modchooser-link",SITEMENU:"div.block_site_main_menu",SITETOPIC:"div.sitetopic"},r="course-modchooser",i=function(){i.superclass.constructor.apply(this,arguments)};e.extend(i,M.core.chooserdialogue,{sectionid:null,initializer:function(){var t=M.course.format.get_sectionwrapperclass();t&&(n.SECTION="."+t);var r=e.one(".chooserdialoguebody"),i=e.one(".choosertitle"),s={};this.setup_chooser_dialogue(r,i,s),this.setup_for_section(),M.course.coursebase.register_module(this)},setup_for_section:function(t){t||(t=n.PAGECONTENT),e.one(t).all(n.SITETOPIC).each(function(e){this._setup_for_section(e)},this),n.SECTION&&e.one(t).all(n.SECTION).each(function(e){this._setup_for_section(e)},this),e.one(t).all(n.SITEMENU).each(function(e){this._setup_for_section(e)},this)},_setup_for_section:function(t){var r=t.one(n.SECTIONMODCHOOSER);if(!r)return;var i=e.Node.create("");r.get("children").each(function(e){i.appendChild(e)}),r.insertBefore(i),i.on("click",this.display_mod_chooser,this)},display_mod_chooser:function(e){if(e.target.ancestor(n.SITETOPIC))this.sectionid=1;else if(e.target.ancestor(n.SECTION)){var t=e.target.ancestor(n.SECTION);this.sectionid=t.get("id").replace("section-","")}else e.target.ancestor(n.SITEMENU)&&(this.sectionid=0);this.display_chooser(e)},option_selected:function(e){this.hiddenRadioValue.setAttrs({name:"jump",value:e.get("value")+"§ion="+this.sectionid})}},{NAME:r,ATTRS:{maxheight:{value:800}}}),M.course=M.course||{},M.course.init_chooser=function(e){return new i(e)}},"@VERSION@",{requires:["moodle-core-chooserdialogue","moodle-course-coursebase"]}); diff --git a/course/yui/build/moodle-course-modchooser/moodle-course-modchooser.js b/course/yui/build/moodle-course-modchooser/moodle-course-modchooser.js index 1689ac9789c..b9865553e31 100644 --- a/course/yui/build/moodle-course-modchooser/moodle-course-modchooser.js +++ b/course/yui/build/moodle-course-modchooser/moodle-course-modchooser.js @@ -56,9 +56,6 @@ Y.extend(MODCHOOSER, M.core.chooserdialogue, { // Initialize existing sections and register for dynamically created sections this.setup_for_section(); M.course.coursebase.register_module(this); - - // Catch the page toggle - Y.all('.block_settings #settingsnav .type_course .modchoosertoggle a').on('click', this.toggle_mod_chooser, this); }, /** @@ -132,62 +129,6 @@ Y.extend(MODCHOOSER, M.core.chooserdialogue, { this.display_chooser(e); }, - /** - * Toggle availability of the activity chooser. - * - * @method toggle_mod_chooser - * @param {EventFacade} e - */ - toggle_mod_chooser : function(e) { - // Get the add section link - var modchooserlinks = Y.all('div.addresourcemodchooser'); - - // Get the dropdowns - var dropdowns = Y.all('div.addresourcedropdown'); - - if (modchooserlinks.size() === 0) { - // Continue with non-js action if there are no modchoosers to add - return; - } - - // We need to update the text and link - var togglelink = Y.one('.block_settings #settingsnav .type_course .modchoosertoggle a'); - - // The actual text is in the last child - var toggletext = togglelink.get('lastChild'); - - var usemodchooser; - // Determine whether they're currently hidden - if (modchooserlinks.item(0).hasClass('visibleifjs')) { - // The modchooser is currently visible, hide it - usemodchooser = 0; - modchooserlinks - .removeClass('visibleifjs') - .addClass('hiddenifjs'); - dropdowns - .addClass('visibleifjs') - .removeClass('hiddenifjs'); - toggletext.set('data', M.util.get_string('modchooserenable', 'moodle')); - togglelink.set('href', togglelink.get('href').replace('off', 'on')); - } else { - // The modchooser is currently not visible, show it - usemodchooser = 1; - modchooserlinks - .addClass('visibleifjs') - .removeClass('hiddenifjs'); - dropdowns - .removeClass('visibleifjs') - .addClass('hiddenifjs'); - toggletext.set('data', M.util.get_string('modchooserdisable', 'moodle')); - togglelink.set('href', togglelink.get('href').replace('on', 'off')); - } - - M.util.set_user_preference('usemodchooser', usemodchooser); - - // Prevent the page from reloading - e.preventDefault(); - }, - /** * Helper function to set the value of a hidden radio button when a * selection is made. diff --git a/course/yui/src/modchooser/js/modchooser.js b/course/yui/src/modchooser/js/modchooser.js index ef6ac4df1e6..8adbac4253a 100644 --- a/course/yui/src/modchooser/js/modchooser.js +++ b/course/yui/src/modchooser/js/modchooser.js @@ -54,9 +54,6 @@ Y.extend(MODCHOOSER, M.core.chooserdialogue, { // Initialize existing sections and register for dynamically created sections this.setup_for_section(); M.course.coursebase.register_module(this); - - // Catch the page toggle - Y.all('.block_settings #settingsnav .type_course .modchoosertoggle a').on('click', this.toggle_mod_chooser, this); }, /** @@ -130,62 +127,6 @@ Y.extend(MODCHOOSER, M.core.chooserdialogue, { this.display_chooser(e); }, - /** - * Toggle availability of the activity chooser. - * - * @method toggle_mod_chooser - * @param {EventFacade} e - */ - toggle_mod_chooser : function(e) { - // Get the add section link - var modchooserlinks = Y.all('div.addresourcemodchooser'); - - // Get the dropdowns - var dropdowns = Y.all('div.addresourcedropdown'); - - if (modchooserlinks.size() === 0) { - // Continue with non-js action if there are no modchoosers to add - return; - } - - // We need to update the text and link - var togglelink = Y.one('.block_settings #settingsnav .type_course .modchoosertoggle a'); - - // The actual text is in the last child - var toggletext = togglelink.get('lastChild'); - - var usemodchooser; - // Determine whether they're currently hidden - if (modchooserlinks.item(0).hasClass('visibleifjs')) { - // The modchooser is currently visible, hide it - usemodchooser = 0; - modchooserlinks - .removeClass('visibleifjs') - .addClass('hiddenifjs'); - dropdowns - .addClass('visibleifjs') - .removeClass('hiddenifjs'); - toggletext.set('data', M.util.get_string('modchooserenable', 'moodle')); - togglelink.set('href', togglelink.get('href').replace('off', 'on')); - } else { - // The modchooser is currently not visible, show it - usemodchooser = 1; - modchooserlinks - .addClass('visibleifjs') - .removeClass('hiddenifjs'); - dropdowns - .removeClass('visibleifjs') - .addClass('hiddenifjs'); - toggletext.set('data', M.util.get_string('modchooserdisable', 'moodle')); - togglelink.set('href', togglelink.get('href').replace('on', 'off')); - } - - M.util.set_user_preference('usemodchooser', usemodchooser); - - // Prevent the page from reloading - e.preventDefault(); - }, - /** * Helper function to set the value of a hidden radio button when a * selection is made. diff --git a/lang/en/admin.php b/lang/en/admin.php index 8607a812def..b4cf5dae3ee 100644 --- a/lang/en/admin.php +++ b/lang/en/admin.php @@ -126,6 +126,7 @@ $string['componentinstalled'] = 'Component installed'; $string['computedfromlogs'] = 'Computed from logs since {$a}.'; $string['condifmodeditdefaults'] = 'Default values are used in the settings form when creating a new activity or resource.'; $string['confeditorhidebuttons'] = 'Select the buttons that should be hidden in the HTML editor.'; +$string['configenableactivitychooser'] = 'The activity chooser is a dialog box with a short description of each activity and resource. If disabled, separate resource and activity dropdown menus are provided instead.'; $string['configallcountrycodes'] = 'This is the list of countries that may be selected in various places, for example in a user\'s profile. If blank (the default) the list in countries.php in the standard English language pack is used. That is the list from ISO 3166-1. Otherwise, you can specify a comma-separated list of codes, for example \'GB,FR,ES\'. If you add new, non-standard codes here, you will need to add them to countries.php in \'en\' and your language pack.'; $string['configallowassign'] = 'You can allow people who have the roles on the left side to assign some of the column roles to other people'; $string['configallowblockstodock'] = 'If enabled and supported by the selected theme users can choose to move blocks to a special dock.'; @@ -458,6 +459,7 @@ $string['emoticons_desc'] = 'This form defines the emoticons (or smileys) used a * Alternative text (optional) - String identifier and component of the alternative text of the emoticon.'; $string['emoticonsreset'] = 'Reset emoticons setting to default values'; $string['emptysettingvalue'] = 'Empty'; +$string['enableactivitychooser'] = 'Enable activity chooser'; $string['enableblogs'] = 'Enable blogs'; $string['enablecalendarexport'] = 'Enable calendar export'; $string['enablecomments'] = 'Enable comments'; diff --git a/lang/en/deprecated.txt b/lang/en/deprecated.txt index 159bc3b4608..64f618c0ad5 100644 --- a/lang/en/deprecated.txt +++ b/lang/en/deprecated.txt @@ -29,10 +29,12 @@ manageofficialtags,core_tag settypeofficial,core_tag filetoolarge,core maxbytesforfile,core +modchooserenable,core +modchooserdisable,core maxbytes,core_error downloadcsv,core_table downloadexcel,core_table downloadods,core_table downloadoptions,core_table downloadtsv,core_table -downloadxhtml,core_table +downloadxhtml,core_table \ No newline at end of file diff --git a/lang/en/moodle.php b/lang/en/moodle.php index bd22d56ceda..4f2d92c60be 100644 --- a/lang/en/moodle.php +++ b/lang/en/moodle.php @@ -322,6 +322,7 @@ $string['courseformats'] = 'Course formats'; $string['courseformatoptions'] = 'Formatting options for {$a}'; $string['courseformatudpate'] = 'Update format'; $string['courseprofiles'] = 'Course profiles'; +$string['coursepreferences'] = 'Course preferences'; $string['coursegrades'] = 'Course grades'; $string['coursehelpcategory'] = 'Position the course on the course listing and may make it easier for students to find it.'; $string['coursehelpforce'] = 'Force the course group mode to every activity in the course.'; @@ -1157,8 +1158,6 @@ $string['moodlelogo'] = 'Moodle logo'; $string['month'] = 'Month'; $string['months'] = 'Months'; $string['modified'] = 'Modified'; -$string['modchooserenable'] = 'Activity chooser on'; -$string['modchooserdisable'] = 'Activity chooser off'; $string['moduleintro'] = 'Description'; $string['modulesetup'] = 'Setting up module tables'; $string['modulesuccess'] = '{$a} tables have been set up correctly'; @@ -2023,3 +2022,7 @@ $string['zippingbackup'] = 'Zipping backup'; // Deprecated since Moodle 3.1. $string['filetoolarge'] = 'is too large to upload'; $string['maxbytesforfile'] = 'The file {$a} is larger than the maximum size allowed.'; + +// Deprecated since Moodle 3.2. +$string['modchooserenable'] = 'Activity chooser on'; +$string['modchooserdisable'] = 'Activity chooser off'; \ No newline at end of file diff --git a/lib/navigationlib.php b/lib/navigationlib.php index afb15b875f4..539a410476d 100644 --- a/lib/navigationlib.php +++ b/lib/navigationlib.php @@ -4453,6 +4453,15 @@ class settings_navigation extends navigation_node { } } + // Add "Course preferences" link. + if (isloggedin() && !isguestuser($user)) { + if ($currentuser && has_capability('moodle/user:editownprofile', $systemcontext) || + has_capability('moodle/user:editprofile', $usercontext)) { + $url = new moodle_url('/user/course.php', array('id' => $user->id, 'course' => $course->id)); + $useraccount->add(get_string('coursepreferences'), $url, self::TYPE_SETTING, null, 'coursepreferences'); + } + } + // View the roles settings. if (has_any_capability(array('moodle/role:assign', 'moodle/role:safeoverride', 'moodle/role:override', 'moodle/role:manage'), $usercontext)) { diff --git a/user/classes/course_form.php b/user/classes/course_form.php new file mode 100644 index 00000000000..17a77302497 --- /dev/null +++ b/user/classes/course_form.php @@ -0,0 +1,67 @@ +. + +/** + * Form to edit a users course preferences. + * + * These are stored as columns in the user table, which + * is why they are in /user and not /course or /admin. + * + * @copyright 2016 Joey Andres + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + * @package core_user + */ + +namespace core_user; + +if (!defined('MOODLE_INTERNAL')) { + die('Direct access to this script is forbidden.'); // It must be included from a Moodle page. +} + +require_once($CFG->dirroot.'/lib/formslib.php'); + +/** + * Class user_course_form. + * + * @copyright 2016 Joey Andres + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ +class course_form extends \moodleform { + + /** + * Define the form. + */ + public function definition () { + global $COURSE; + + $mform = $this->_form; + + $mform->addElement('advcheckbox', + 'enableactivitychooser', + get_string('enableactivitychooser', 'admin'), + get_string('configenableactivitychooser', 'admin')); + $mform->setDefault('enableactivitychooser', + get_user_preferences('usemodchooser', true, $this->_customdata['userid'])); + + // Add some extra hidden fields. + $mform->addElement('hidden', 'id'); + $mform->setType('id', PARAM_INT); + $mform->addElement('hidden', 'course', $COURSE->id); + $mform->setType('course', PARAM_INT); + + $this->add_action_buttons(true, get_string('savechanges')); + } +} \ No newline at end of file diff --git a/user/course.php b/user/course.php new file mode 100644 index 00000000000..d0e571b35f2 --- /dev/null +++ b/user/course.php @@ -0,0 +1,65 @@ +. + +/** + * Allows you to edit course preference. + * + * @copyright 2016 Joey Andres + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + * @package core_user + */ + +require_once(__DIR__ . "/../config.php"); +require_once($CFG->dirroot.'/user/editlib.php'); + +$userid = optional_param('id', $USER->id, PARAM_INT); // User id. +$courseid = optional_param('course', SITEID, PARAM_INT); // Course id (defaults to Site). + +$PAGE->set_url('/user/course.php', array('id' => $userid, 'course' => $courseid)); + +list($user, $course) = useredit_setup_preference_page($userid, $courseid); + +// Create form. +$courseform = new core_user\course_form(null, array('userid' => $user->id)); + +$courseform->set_data($user); + +$redirect = new moodle_url("/user/preferences.php", array('userid' => $user->id)); +if ($courseform->is_cancelled()) { + redirect($redirect); +} else if ($data = $courseform->get_data()) { + set_user_preference('usemodchooser', $data->enableactivitychooser, $user); + + redirect($redirect); +} + +// Display page header. +$streditmycourse = get_string('coursepreferences'); +$userfullname = fullname($user, true); + +$PAGE->navbar->includesettingsbase = true; + +$PAGE->set_title("$course->shortname: $streditmycourse"); +$PAGE->set_heading($userfullname); + +echo $OUTPUT->header(); +echo $OUTPUT->heading($streditmycourse); + +// Finally display THE form. +$courseform->display(); + +// And proper footer. +echo $OUTPUT->footer(); diff --git a/user/tests/behat/course_preference.feature b/user/tests/behat/course_preference.feature new file mode 100644 index 00000000000..7ad8e59d800 --- /dev/null +++ b/user/tests/behat/course_preference.feature @@ -0,0 +1,36 @@ +@core @core_user +Feature: As a user, "Course preferences" allows me to set my course preference(s). + Background: + Given I log in as "admin" + And the following "courses" exist: + | fullname | shortname | format | + | Course 1 | C1 | topics | + And the following "course enrolments" exist: + | user | course | role | + | admin | C1 | editingteacher | + And I am on site homepage + And I follow "Preferences" in the user menu + And I follow "Course preferences" + + @javascript + Scenario: As a user, "activity chooser" should be the default. + # See that the "activity chooser" is enabled by default. + Given the field "enableactivitychooser" matches value "1" + # See that the "activity chooser" is actually shown by default in course page. + When I am on homepage + And I follow "Course 1" + And I should not see "Add an activity or resource" in the "Topic 1" "section" + And I turn editing mode on + Then I should see "Add an activity or resource" in the "Topic 1" "section" + And I should not see "Add a resource..." in the "Topic 1" "section" + + @javascript + Scenario: As a user, "activity chooser" should be disabled when I uncheck it in "Course preferences" + Given I set the field "enableactivitychooser" to "0" + And I press "Save changes" + When I am on homepage + And I follow "Course 1" + And I should not see "Add a resource..." in the "Topic 1" "section" + And I turn editing mode on + Then I should see "Add a resource..." in the "Topic 1" "section" + And I should not see "Add an activity or resource" in the "Topic 1" "section" \ No newline at end of file