Proyectos de Subversion Moodle

Rev

| Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
1441 ariadna 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/>.
15
 
16
/**
17
 * Bulk action for messaging users in the assignment grading page.
18
 *
19
 * @module     mod_assign/bulkactions/grading/message
20
 * @copyright  2024 Shamim Rezaie <shamim@moodle.com>
21
 * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
22
 */
23
 
24
import BulkAction from 'core/bulkactions/bulk_action';
25
import Templates from 'core/templates';
26
import {showModal as showMessageModal} from 'core_message/message_send_bulk';
27
 
28
const Selectors = {
29
    selectBulkItemCheckbox: 'input[type="checkbox"][name="selectedusers"]:checked',
30
};
31
 
32
export default class extends BulkAction {
33
    getBulkActionTriggerSelector() {
34
        return '[data-type="bulkactions"] [data-action="message"]';
35
    }
36
 
37
    triggerBulkAction() {
38
        const selectedUsers = [...document.querySelectorAll(Selectors.selectBulkItemCheckbox)].map(checkbox => checkbox.value);
39
        showMessageModal(selectedUsers);
40
    }
41
 
42
    async renderBulkActionTrigger(showInDropdown, index) {
43
        return Templates.render('mod_assign/bulkactions/grading/bulk_message_trigger', {
44
            showindropdown: showInDropdown,
45
            isfirst: index === 0,
46
        });
47
    }
48
}