Proyectos de Subversion Moodle

Rev

| Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
1 efrain 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
 * Grading panel frequently used comments selector.
18
 *
19
 * @module     gradingform_guide/grades/grader/gradingpanel/comments
20
 * @copyright  2019 Andrew Nicols <andrew@nicols.co.uk>
21
 * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
22
 */
23
 
24
import Selectors from './comments/selectors';
25
 
26
/**
27
 * Manage the frequently used comments in the Marking Guide form.
28
 *
29
 * @param {String} rootId
30
 */
31
export const init = (rootId) => {
32
    const rootNode = document.querySelector(`#${rootId}`);
33
 
34
    rootNode.addEventListener('click', (e) => {
35
        if (!e.target.matches(Selectors.frequentComment)) {
36
            return;
37
        }
38
 
39
        e.preventDefault();
40
 
41
        const clicked = e.target.closest(Selectors.frequentComment);
42
        const criterion = clicked.closest(Selectors.criterion);
43
        const remark = criterion.querySelector(Selectors.remark);
44
 
45
        if (!remark) {
46
            return;
47
        }
48
 
49
        // Either append the comment to an existing comment or set it as the comment.
50
        if (remark.value.trim()) {
51
            remark.value += `\n${clicked.innerHTML}`;
52
        } else {
53
            remark.value += clicked.innerHTML;
54
        }
55
    });
56
};