| /** |
| * @class Увеличение отступа |
| * списки - если выделен один элемент - увеличивается вложенность списка, в остальных случаях - padding у родительского ul|ol |
| * Если таблица выделена полностью - ей добавляется margin, если частично - увеличивается padding для ячеек |
| * |
| * @param elRTE rte объект-редактор |
| * @param String name название кнопки |
| * |
| * |
| * @author: Dmitry Levashov (dio) dio@std42.ru |
| * @copyright: Studio 42, http://www.std42.ru |
| **/ |
| (function($) { |
| elRTE.prototype.ui.prototype.buttons.indent = function(rte, name) { |
| this.constructor.prototype.constructor.call(this, rte, name); |
| var self = this; |
| |
| this.command = function() { |
| this.rte.history.add(); |
| var nodes = this.rte.selection.selected({collapsed : true, blocks : true, wrap : 'inline', tag : 'p'}); |
| |
| function indent(n) { |
| var css = /(IMG|HR|TABLE|EMBED|OBJECT)/.test(n.nodeName) ? 'margin-left' : 'padding-left'; |
| var val = self.rte.dom.attr(n, 'style').indexOf(css) != -1 ? parseInt($(n).css(css))||0 : 0; |
| $(n).css(css, val+40+'px'); |
| } |
| |
| for (var i=0; i < nodes.length; i++) { |
| if (/^(TABLE|THEAD|TFOOT|TBODY|COL|COLGROUP|TR)$/.test(nodes[i].nodeName)) { |
| $(nodes[i]).find('td,th').each(function() { |
| indent(this); |
| }); |
| } else if (/^LI$/.test(nodes[i].nodeName)) { |
| var n = $(nodes[i]); |
| $(this.rte.dom.create(nodes[i].parentNode.nodeName)) |
| .append($(this.rte.dom.create('li')).html(n.html()||'')).appendTo(n.html(' ')); |
| } else { |
| indent(nodes[i]); |
| } |
| }; |
| this.rte.ui.update(); |
| } |
| |
| this.update = function() { |
| this.domElem.removeClass('disabled'); |
| } |
| |
| } |
| })(jQuery); |