MDL-42026 Atto: Remove the styles from the headings menu + focus when opened
[moodle.git] / lib / editor / atto / plugins / title / yui / src / button / js / button.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  * Atto text editor title plugin.
18  *
19  * @package editor-atto
20  * @copyright  2013 Damyon Wiese  <damyon@moodle.com>
21  * @license   http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
22  */
23 M.atto_title = M.atto_title || {
24     init : function(params) {
25         var click_h3 = function(e, elementid) {
26             M.atto_title.change_title(e, elementid, '<h3>');
27         };
28         var click_h4 = function(e, elementid) {
29             M.atto_title.change_title(e, elementid, '<h4>');
30         };
31         var click_h5 = function(e, elementid) {
32             M.atto_title.change_title(e, elementid, '<h5>');
33         };
34         var click_pre = function(e, elementid) {
35             M.atto_title.change_title(e, elementid, '<pre>');
36         };
37         var click_blockquote = function(e, elementid) {
38             M.atto_title.change_title(e, elementid, '<blockquote>');
39         };
40         var click_p = function(e, elementid) {
41             M.atto_title.change_title(e, elementid, '<p>');
42         };
44         var h3 = M.util.get_string('h3', 'atto_title');
45         var h4 = M.util.get_string('h4', 'atto_title');
46         var h5 = M.util.get_string('h5', 'atto_title');
47         var pre = M.util.get_string('pre', 'atto_title');
48         var blockquote = M.util.get_string('blockquote', 'atto_title');
49         var p = M.util.get_string('p', 'atto_title');
51         M.editor_atto.add_toolbar_menu(params.elementid,
52                                                   'title',
53                                                   params.icon,
54                                                   params.group,
55                                                   [
56                                                       {'text' : h3, 'handler' : click_h3},
57                                                       {'text' : h4, 'handler' : click_h4},
58                                                       {'text' : h5, 'handler' : click_h5},
59                                                       {'text' : pre, 'handler' : click_pre},
60                                                       {'text' : blockquote, 'handler' : click_blockquote},
61                                                       {'text' : p, 'handler' : click_p}
62                                                   ]);
63     },
65     /**
66      * Handle a choice from the menu (insert the node in the text editor matching elementid).
67      * @param event e - The event that triggered this.
68      * @param string elementid - The id of the editor
69      * @param string node - The html to insert
70      */
71     change_title : function(e, elementid, node) {
72         e.preventDefault();
73         if (!M.editor_atto.is_active(elementid)) {
74             M.editor_atto.focus(elementid);
75         }
76         document.execCommand('formatBlock', false, node);
77     }
78 };