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
 * The Standard icon system.
18
 *
19
 * @module core/icon_system_standard
20
 * @copyright  2017 Damyon Wiese
21
 * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
22
 */
23
 
24
import IconSystem from './icon_system';
25
import * as CoreUrl from './url';
26
import * as Mustache from './mustache';
27
 
28
/**
29
 * The Standard icon system.
30
 */
31
export default class IconSystemStandard extends IconSystem {
32
 
33
    /**
34
     * Render an icon.
35
     *
36
     * @param {string} key
37
     * @param {string} component
38
     * @param {string} title
39
     * @param {string} template
40
     * @return {string}
41
     */
42
    renderIcon(key, component, title, template) {
43
        const url = CoreUrl.imageUrl(key, component);
44
 
45
        const templatecontext = {
46
            attributes: [
47
                {name: 'src', value: url},
48
                {name: 'alt', value: title},
49
                {name: 'title', value: title},
50
            ]
51
        };
52
        if (typeof title === "undefined" || title == "") {
53
            templatecontext.attributes.push({name: 'aria-hidden', value: 'true'});
54
        }
55
 
56
        return Mustache.render(template, templatecontext).trim();
57
    }
58
 
59
    /**
60
     * Get the name of the template to pre-cache for this icon system.
61
     *
62
     * @return {string}
63
     */
64
    getTemplateName() {
65
        return 'core/pix_icon';
66
    }
67
}