MDL-67262 core_course: Added the ability to recommend activities.
[moodle.git] / course / amd / src / recommendations.js
1 // This file is part of Moodle - http://moodle.org/
2 //
3 // Moodle is free software: you can redistribute it and/or modify
4 // it under the terms of the GNU General Public License as published by
5 // the Free Software Foundation, either version 3 of the License, or
6 // (at your option) any later version.
7 //
8 // Moodle is distributed in the hope that it will be useful,
9 // but WITHOUT ANY WARRANTY; without even the implied warranty of
10 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
11 // GNU General Public License for more details.
12 //
13 // You should have received a copy of the GNU General Public License
14 // along with Moodle.  If not, see <http://www.gnu.org/licenses/>.
16 /**
17  * A javascript module to handle toggling activity chooser recommendations.
18  *
19  * @module     core_course/recommendations
20  * @copyright  2020 Adrian Greeve <adrian@moodle.com>
21  * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
22  */
24 import Ajax from 'core/ajax';
25 import Notification from 'core/notification';
27 /**
28  * Do an ajax call to toggle the recommendation
29  *
30  * @param  {object} e The event
31  * @return {void}
32  */
33 const toggleRecommendation = (e) => {
34     let data = {
35         methodname: 'core_course_toggle_activity_recommendation',
36         args: {
37             area: e.currentTarget.dataset.area,
38             id: e.currentTarget.dataset.id
39         }
40     };
41     Ajax.call([data])[0].fail(Notification.exception);
42 };
44 /**
45  * Initialisation function
46  *
47  * @return {void}
48  */
49 export const init = () => {
50     const checkboxelements = document.querySelectorAll("[data-area]");
51     checkboxelements.forEach((checkbox) => {
52         checkbox.addEventListener('change', toggleRecommendation);
53     });
54 };