MDL-43869 New Atto plugin switch language LTR/RTL
[moodle.git] / lib / editor / atto / plugins / rtl / 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 rtl plugin.
18  *
19  * @package    editor_atto
20  * @copyright  2014 Jerome Mouneyrac
21  * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
22  */
23 M.atto_rtl = M.atto_rtl || {
24     init : function(params) {
25         var click = function(e, elementid, direction) {
26             e.preventDefault();
27             if (!M.editor_atto.is_active(elementid)) {
28                 M.editor_atto.focus(elementid);
29             }
31             M.atto_rtl.selection = M.editor_atto.get_selection();
32             if (M.atto_rtl.selection !== false) {
34                 // Format the selection to be sure it has a tag parent (not the contenteditable).
35                 var parentnode = M.editor_atto.format_selection_block(elementid);
36                 parentnodeelement = parentnode.getDOMNode();
38                 var currentdirection = parentnodeelement.getAttribute("dir");
39                 if (currentdirection === direction) {
40                     parentnodeelement.removeAttribute("dir");
41                 } else {
42                     parentnodeelement.setAttribute("dir", direction);
43                 }
44             }
46             // Clean the YUI ids from the HTML.
47             M.editor_atto.text_updated(elementid);
48         };
50         var rtlclick = function(e, elementid) {
51             click(e, elementid, 'rtl');
52         };
54         var ltrclick = function(e, elementid) {
55             click(e, elementid, 'ltr');
56         };
58         var iconurl = M.util.image_url('e/left_to_right', 'core');
59         M.editor_atto.add_toolbar_button(params.elementid, 'ltr', iconurl, params.group, ltrclick, M.util.get_string('ltr', 'atto_rtl'));
61         iconurl = M.util.image_url('e/right_to_left', 'core');
62         M.editor_atto.add_toolbar_button(params.elementid, 'rtl', iconurl, params.group, rtlclick, M.util.get_string('rtl', 'atto_rtl'));
63     }
64 };