blob: 7a5dc6334c70fc2d65c1ab8a4d9ebf92d509f51f [file] [log] [blame]
/**
* @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('&nbsp;'));
} else {
indent(nodes[i]);
}
};
this.rte.ui.update();
}
this.update = function() {
this.domElem.removeClass('disabled');
}
}
})(jQuery);