| /** |
| * @class button - outdent text |
| * уменьшает padding/margin/самомнение ;) |
| * |
| * @param elRTE rte объект-редактор |
| * @param String name название кнопки |
| * @todo decrease lists nesting level! |
| * |
| * @author: Dmitry Levashov (dio) dio@std42.ru |
| * @copyright: Studio 42, http://www.std42.ru |
| **/ |
| (function($) { |
| elRTE.prototype.ui.prototype.buttons.outdent = function(rte, name) { |
| this.constructor.prototype.constructor.call(this, rte, name); |
| var self = this; |
| |
| this.command = function() { |
| var v = this.find(); |
| if (v.node) { |
| this.rte.history.add(); |
| $(v.node).css(v.type, (v.val>40 ? v.val-40 : 0)+'px'); |
| this.rte.ui.update(); |
| } |
| } |
| |
| this.find = function(n) { |
| function checkNode(n) { |
| var ret = {type : '', val : 0}; |
| var s; |
| if ((s = self.rte.dom.attr(n, 'style'))) { |
| ret.type = s.indexOf('padding-left') != -1 |
| ? 'padding-left' |
| : (s.indexOf('margin-left') != -1 ? 'margin-left' : ''); |
| ret.val = ret.type ? parseInt($(n).css(ret.type))||0 : 0; |
| } |
| return ret; |
| } |
| |
| var n = this.rte.selection.getNode(); |
| var ret = checkNode(n); |
| if (ret.val) { |
| ret.node = n; |
| } else { |
| $.each(this.rte.dom.parents(n, '*'), function() { |
| ret = checkNode(this); |
| if (ret.val) { |
| ret.node = this; |
| return ret; |
| } |
| }) |
| } |
| return ret; |
| } |
| |
| this.update = function() { |
| var v = this.find(); |
| if (v.node) { |
| this.domElem.removeClass('disabled'); |
| } else { |
| this.domElem.addClass('disabled'); |
| } |
| } |
| |
| |
| } |
| |
| })(jQuery); |