From ceb4c907230e77598a33a27454fe195258d34a6e Mon Sep 17 00:00:00 2001 From: vitalif Date: Wed, 3 Oct 2012 22:01:20 +0000 Subject: [PATCH] Better table button for nicEdit --- nicEdit.js | 52 +++++++++++++++++++++++++++++++++------------ nicEditorIcons.gif | Bin 3716 -> 3842 bytes nicRu.js | 6 +++++- 3 files changed, 43 insertions(+), 15 deletions(-) diff --git a/nicEdit.js b/nicEdit.js index 9f7eed2..0ba0c87 100644 --- a/nicEdit.js +++ b/nicEdit.js @@ -272,7 +272,7 @@ var nicEditorConfig = bkClass.extend({ }, iconsPath : '../nicEditorIcons.gif', buttonList : ['save','bold','italic','underline','strikethrough','left','center','right','justify','ol','ul','fontSize','fontFamily','fontFormat','image','upload','link','unlink','removeformat','forecolor','bgcolor','indent','outdent','subscript','superscript','xhtml','table'], - iconList : {"xhtml":1,"bgcolor":2,"forecolor":3,"bold":4,"center":5,"hr":6,"indent":7,"italic":8,"justify":9,"left":10,"ol":11,"outdent":12,"removeformat":13,"right":14,"save":25,"strikethrough":16,"subscript":17,"superscript":18,"ul":19,"underline":20,"image":21,"link":22,"unlink":23,"close":24,"arrow":26,"upload":27} + iconList : {"xhtml":1,"bgcolor":2,"forecolor":3,"bold":4,"center":5,"hr":6,"indent":7,"italic":8,"justify":9,"left":10,"ol":11,"outdent":12,"removeformat":13,"right":14,"save":25,"strikethrough":16,"subscript":17,"superscript":18,"ul":19,"underline":20,"image":21,"link":22,"unlink":23,"close":24,"arrow":26,"upload":27,"table":28} }); /* END CONFIG */ @@ -1622,44 +1622,68 @@ var nicTableOptions = { var nicTableButton = nicEditorAdvancedButton.extend({ addPane : function() { this.t = this.ne.selectedInstance.selElm().parentTag('TABLE'); + var r = 3, c = 3, h = ''; + if (this.t && (r = this.t.rows.length)) { + c = this.t.rows[0].cells.length; + if (this.t.rows[0].cells[c-1].nodeName == 'TH') h += 'top'; + if (this.t.rows[r-1].cells[0].nodeName == 'TH') h += 'left'; + } this.addForm({ - '' : {type : 'title', txt : __('Add/Edit Table')}, - 'cols' : {type : 'text', txt : __('Columns'), 'value' : '3', style : {width: '50px'}}, - 'rows' : {type : 'text', txt : __('Rows'), 'value' : '3', style : {width: '50px'}}, + '': {type: 'title', txt: __('Add/Edit Table')}, + 'cols': {type: 'text', txt: __('Columns'), value: c, style: {width: '50px'}}, + 'rows': {type: 'text', txt: __('Rows'), value: r, style: {width: '50px'}}, + 'header': {type: 'select', txt: __('Headers'), value: h, options: {'':__('None'), left:__('Left'), top:__('Top'), topleft:__('Top and Left')}} },this.t); }, submit : function(e) { var r = parseInt(this.inputs['rows'].value); var c = parseInt(this.inputs['cols'].value); + var i, j; if(!this.t) { var tmp = 'javascript:nicImTemp();', h = ''; - for (var i = 0; i < r; i++) { + for (i = 0; i < r; i++) { h += ''+(new Array(c+1)).join('-')+''; } this.ne.nicCommand("insertHTML", ''+h+'
'); this.t = this.findElm('TABLE','title',tmp); } if(this.t) { - this.t.setAttributes({ - title: '' - }); - for (var i = r; i < this.t.rows.length; i++) { + this.t.title = ''; + for (i = r; i < this.t.rows.length; i++) { this.t.deleteRow(r); } - for (var i = this.t.rows.length; i < r; i++) { + for (i = this.t.rows.length; i < r; i++) { this.t.insertRow(i).innerHTML = (new Array(c+1)).join('-'); } if (this.t.rows.length && this.t.rows[0].cells.length != c) { - for (var i = 0; i < r; i++) { - for (var j = this.t.rows[i].cells.length; j < c; j++) { + for (i = 0; i < r; i++) { + for (j = this.t.rows[i].cells.length; j < c; j++) { this.t.rows[i].insertCell(j).innerHTML = '-'; } - for (var j = this.t.rows[i].cells.length-1; j >= c; j--) { - this.t.rows[i].deleteCell(c); + for (j = this.t.rows[i].cells.length-1; j >= c; j--) { + $BK(this.t.rows[i].cells[c]).remove(); } } } + if (this.t.rows.length) { + var ht = this.inputs['header'].value; + var repl = function(node, name) { + var nn = document.createElement(name ? 'th' : 'td'); + nn.innerHTML = node.innerHTML; + node.parentNode.insertBefore(nn, node); + node.parentNode.removeChild(node); + }; + repl(this.t.rows[0].cells[0], ht != 'none'); + j = ht == 'top' || ht == 'topleft'; + for (i = 1; i < c; i++) { + repl(this.t.rows[0].cells[i], j); + } + j = ht == 'left' || ht == 'topleft'; + for (i = 1; i < r; i++) { + repl(this.t.rows[i].cells[0], j); + } + } } } }); diff --git a/nicEditorIcons.gif b/nicEditorIcons.gif index cd33a5df5cb0401c714351c7a948c191feab81de..d7da0c2a61000e026a9d19823583a788cbcde570 100644 GIT binary patch delta 3280 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