66 lines
2.1 KiB
JavaScript
66 lines
2.1 KiB
JavaScript
// This file is part of Moodle - http://moodle.org/
|
|
//
|
|
// Moodle is free software: you can redistribute it and/or modify
|
|
// it under the terms of the GNU General Public License as published by
|
|
// the Free Software Foundation, either version 3 of the License, or
|
|
// (at your option) any later version.
|
|
//
|
|
// Moodle is distributed in the hope that it will be useful,
|
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
// GNU General Public License for more details.
|
|
//
|
|
// You should have received a copy of the GNU General Public License
|
|
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
|
|
|
|
/**
|
|
* Handle the manual locking of individual discussions
|
|
*
|
|
* @module mod_forum/lock_toggle
|
|
* @copyright 2019 Peter Dias <peter@moodle.com>
|
|
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
|
|
*/
|
|
define([
|
|
'jquery',
|
|
'core/templates',
|
|
'core/notification',
|
|
'mod_forum/repository',
|
|
'mod_forum/selectors',
|
|
], function(
|
|
$,
|
|
Templates,
|
|
Notification,
|
|
Repository,
|
|
Selectors
|
|
) {
|
|
|
|
/**
|
|
* Register event listeners for the subscription toggle.
|
|
*
|
|
* @param {object} root The discussion list root element
|
|
* @param {boolean} preventDefault Should the default action of the event be prevented
|
|
*/
|
|
var registerEventListeners = function(root, preventDefault) {
|
|
root.on('click', Selectors.lock.toggle, function(e) {
|
|
var toggleElement = $(this);
|
|
var forumId = toggleElement.data('forumid');
|
|
var discussionId = toggleElement.data('discussionid');
|
|
var state = toggleElement.data('state');
|
|
|
|
Repository.setDiscussionLockState(forumId, discussionId, state)
|
|
.then(function() {
|
|
return location.reload();
|
|
})
|
|
.catch(Notification.exception);
|
|
|
|
if (preventDefault) {
|
|
e.preventDefault();
|
|
}
|
|
});
|
|
};
|
|
|
|
return {
|
|
init: registerEventListeners
|
|
};
|
|
});
|