it-logica-application-backbone 1.1.2 → 1.1.3
Sign up to get free protection for your applications and to get access to all the features.
- data/VERSION +1 -1
- data/app/assets/javascripts/backbone_js/tinymce/changelog.txt +100 -1198
- data/app/assets/javascripts/backbone_js/tinymce/examples/css/content.css +105 -105
- data/app/assets/javascripts/backbone_js/tinymce/examples/index.html +98 -98
- data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/jquery.tinymce.js +1 -1
- data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/license.txt +504 -504
- data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/advhr/css/advhr.css +5 -5
- data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/advhr/editor_plugin_src.js +56 -56
- data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/advhr/js/rule.js +43 -43
- data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/advhr/rule.htm +58 -58
- data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/advimage/css/advimage.css +13 -13
- data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/advimage/editor_plugin_src.js +49 -49
- data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/advimage/image.htm +235 -235
- data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/advimage/js/image.js +464 -462
- data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/advlink/css/advlink.css +8 -8
- data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/advlink/editor_plugin_src.js +60 -60
- data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/advlink/js/advlink.js +543 -539
- data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/advlink/link.htm +338 -338
- data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/advlist/editor_plugin_src.js +175 -175
- data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/autolink/editor_plugin.js +1 -1
- data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/autolink/editor_plugin_src.js +8 -4
- data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/autosave/editor_plugin.js +1 -1
- data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/autosave/editor_plugin_src.js +433 -431
- data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/autosave/langs/en.js +3 -3
- data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/bbcode/editor_plugin_src.js +119 -119
- data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/contextmenu/editor_plugin.js +1 -1
- data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/contextmenu/editor_plugin_src.js +163 -161
- data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/directionality/editor_plugin.js +1 -1
- data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/directionality/editor_plugin_src.js +84 -81
- data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/emotions/editor_plugin_src.js +42 -42
- data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/emotions/emotions.htm +42 -42
- data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/emotions/js/emotions.js +43 -43
- data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/example/dialog.htm +22 -22
- data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/example/editor_plugin_src.js +83 -83
- data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/example/js/dialog.js +19 -19
- data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/example/langs/en.js +3 -3
- data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/example/langs/en_dlg.js +3 -3
- data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/fullpage/css/fullpage.css +142 -142
- data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/fullpage/editor_plugin_src.js +405 -405
- data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/fullpage/fullpage.htm +259 -259
- data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/fullpage/js/fullpage.js +232 -232
- data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/fullscreen/editor_plugin.js +1 -1
- data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/fullscreen/editor_plugin_src.js +159 -159
- data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/fullscreen/fullscreen.htm +110 -110
- data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/iespell/editor_plugin_src.js +53 -53
- data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/inlinepopups/editor_plugin_src.js +699 -699
- data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/inlinepopups/template.htm +387 -387
- data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/insertdatetime/editor_plugin_src.js +82 -82
- data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/layer/editor_plugin_src.js +261 -261
- data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/legacyoutput/editor_plugin.js +1 -1
- data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/legacyoutput/editor_plugin_src.js +137 -137
- data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/lists/editor_plugin.js +1 -1
- data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/lists/editor_plugin_src.js +18 -14
- data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/media/css/media.css +17 -17
- data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/media/editor_plugin.js +1 -1
- data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/media/editor_plugin_src.js +898 -890
- data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/media/js/embed.js +73 -73
- data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/media/js/media.js +503 -470
- data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/media/media.htm +922 -922
- data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/nonbreaking/editor_plugin_src.js +53 -53
- data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/noneditable/editor_plugin.js +1 -1
- data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/noneditable/editor_plugin_src.js +536 -539
- data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/pagebreak/editor_plugin_src.js +73 -73
- data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/paste/editor_plugin.js +1 -1
- data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/paste/editor_plugin_src.js +885 -871
- data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/paste/js/pastetext.js +36 -36
- data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/paste/js/pasteword.js +51 -51
- data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/paste/pastetext.htm +26 -26
- data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/paste/pasteword.htm +21 -21
- data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/preview/example.html +28 -28
- data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/preview/jscripts/embed.js +73 -73
- data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/preview/preview.html +17 -17
- data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/print/editor_plugin_src.js +34 -34
- data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/save/editor_plugin_src.js +100 -100
- data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/searchreplace/css/searchreplace.css +6 -6
- data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/searchreplace/editor_plugin_src.js +60 -60
- data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/searchreplace/js/searchreplace.js +142 -142
- data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/searchreplace/searchreplace.htm +100 -100
- data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/spellchecker/css/content.css +1 -0
- data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/spellchecker/editor_plugin.js +1 -0
- data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/spellchecker/editor_plugin_src.js +436 -0
- data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/spellchecker/img/wline.gif +0 -0
- data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/style/css/props.css +14 -14
- data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/style/editor_plugin_src.js +71 -71
- data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/style/js/props.js +709 -709
- data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/table/cell.htm +180 -180
- data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/table/css/cell.css +16 -16
- data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/table/css/row.css +25 -25
- data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/table/css/table.css +13 -13
- data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/table/editor_plugin.js +1 -1
- data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/table/editor_plugin_src.js +79 -55
- data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/table/js/cell.js +319 -319
- data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/table/js/merge_cells.js +27 -27
- data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/table/js/row.js +237 -237
- data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/table/js/table.js +499 -487
- data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/table/merge_cells.htm +32 -32
- data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/table/row.htm +158 -158
- data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/table/table.htm +188 -188
- data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/template/blank.htm +12 -12
- data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/template/css/template.css +23 -23
- data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/template/editor_plugin_src.js +158 -158
- data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/template/js/template.js +106 -106
- data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/template/template.htm +31 -31
- data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/visualblocks/css/visualblocks.css +21 -21
- data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/visualblocks/editor_plugin_src.js +62 -62
- data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/visualchars/editor_plugin_src.js +82 -82
- data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/wordcount/editor_plugin_src.js +122 -122
- data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/abbr.htm +142 -142
- data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/acronym.htm +142 -142
- data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/attributes.htm +149 -149
- data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/cite.htm +142 -142
- data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/css/attributes.css +11 -11
- data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/css/popup.css +9 -9
- data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/del.htm +162 -162
- data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/editor_plugin_src.js +131 -131
- data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/ins.htm +162 -162
- data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/js/abbr.js +28 -28
- data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/js/acronym.js +28 -28
- data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/js/attributes.js +111 -111
- data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/js/cite.js +28 -28
- data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/js/del.js +53 -53
- data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/js/element_common.js +229 -229
- data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/js/ins.js +53 -53
- data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/themes/advanced/about.htm +52 -52
- data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/themes/advanced/anchor.htm +26 -26
- data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/themes/advanced/charmap.htm +55 -55
- data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/themes/advanced/color_picker.htm +70 -70
- data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/themes/advanced/editor_template.js +1 -1
- data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/themes/advanced/editor_template_src.js +1490 -1481
- data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/themes/advanced/image.htm +80 -80
- data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/themes/advanced/js/about.js +73 -73
- data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/themes/advanced/js/anchor.js +56 -44
- data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/themes/advanced/js/charmap.js +363 -363
- data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/themes/advanced/js/image.js +253 -253
- data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/themes/advanced/js/link.js +159 -153
- data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/themes/advanced/js/source_editor.js +78 -78
- data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/themes/advanced/link.htm +57 -57
- data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/themes/advanced/shortcuts.htm +47 -47
- data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/themes/advanced/skins/default/content.css +50 -51
- data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/themes/advanced/skins/default/dialog.css +118 -118
- data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/themes/advanced/skins/default/ui.css +219 -219
- data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/themes/advanced/skins/highcontrast/content.css +24 -25
- data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/themes/advanced/skins/highcontrast/dialog.css +106 -106
- data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/themes/advanced/skins/highcontrast/ui.css +106 -106
- data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/themes/advanced/skins/o2k7/content.css +48 -49
- data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/themes/advanced/skins/o2k7/dialog.css +118 -118
- data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/themes/advanced/skins/o2k7/ui.css +222 -222
- data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/themes/advanced/skins/o2k7/ui_black.css +7 -7
- data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/themes/advanced/skins/o2k7/ui_silver.css +5 -5
- data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/themes/advanced/source_editor.htm +25 -25
- data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/themes/simple/editor_template_src.js +83 -83
- data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/themes/simple/skins/default/content.css +25 -25
- data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/themes/simple/skins/default/ui.css +32 -32
- data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/themes/simple/skins/o2k7/content.css +17 -17
- data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/themes/simple/skins/o2k7/ui.css +35 -35
- data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/tiny_mce.js +1 -1
- data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/tiny_mce_popup.js +1 -1
- data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/tiny_mce_src.js +17769 -16902
- data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/utils/editable_selects.js +70 -70
- data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/utils/form_utils.js +210 -210
- data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/utils/mctabs.js +161 -161
- data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/utils/validate.js +252 -252
- data/it-logica-application-backbone.gemspec +6 -2
- metadata +19 -15
data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/table/editor_plugin.js
CHANGED
@@ -1 +1 @@
|
|
1
|
-
(function(d){var e=d.each;function c(g,h){var j=h.ownerDocument,f=j.createRange(),k;f.setStartBefore(h);f.setEnd(g.endContainer,g.endOffset);k=j.createElement("body");k.appendChild(f.cloneContents());return k.innerHTML.replace(/<(br|img|object|embed|input|textarea)[^>]*>/gi,"-").replace(/<[^>]+>/g,"").length==0}function a(g,f){return parseInt(g.getAttribute(f)||1)}function b(H,G,K){var g,L,D,o;t();o=G.getParent(K.getStart(),"th,td");if(o){L=F(o);D=I();o=z(L.x,L.y)}function A(N,M){N=N.cloneNode(M);N.removeAttribute("id");return N}function t(){var M=0;g=[];e(["thead","tbody","tfoot"],function(N){var O=G.select("> "+N+" tr",H);e(O,function(P,Q){Q+=M;e(G.select("> td, > th",P),function(W,R){var S,T,U,V;if(g[Q]){while(g[Q][R]){R++}}U=a(W,"rowspan");V=a(W,"colspan");for(T=Q;T<Q+U;T++){if(!g[T]){g[T]=[]}for(S=R;S<R+V;S++){g[T][S]={part:N,real:T==Q&&S==R,elm:W,rowspan:U,colspan:V}}}})});M+=O.length})}function z(M,O){var N;N=g[O];if(N){return N[M]}}function s(O,M,N){if(O){N=parseInt(N);if(N===1){O.removeAttribute(M,1)}else{O.setAttribute(M,N,1)}}}function j(M){return M&&(G.hasClass(M.elm,"mceSelected")||M==o)}function k(){var M=[];e(H.rows,function(N){e(N.cells,function(O){if(G.hasClass(O,"mceSelected")||O==o.elm){M.push(N);return false}})});return M}function r(){var M=G.createRng();M.setStartAfter(H);M.setEndAfter(H);K.setRng(M);G.remove(H)}function f(M){var N;d.walk(M,function(P){var O;if(P.nodeType==3){e(G.getParents(P.parentNode,null,M).reverse(),function(Q){Q=A(Q,false);if(!N){N=O=Q}else{if(O){O.appendChild(Q)}}O=Q});if(O){O.innerHTML=d.isIE?" ":'<br data-mce-bogus="1" />'}return false}},"childNodes");M=A(M,false);s(M,"rowSpan",1);s(M,"colSpan",1);if(N){M.appendChild(N)}else{if(!d.isIE){M.innerHTML='<br data-mce-bogus="1" />'}}return M}function q(){var M=G.createRng();e(G.select("tr",H),function(N){if(N.cells.length==0){G.remove(N)}});if(G.select("tr",H).length==0){M.setStartAfter(H);M.setEndAfter(H);K.setRng(M);G.remove(H);return}e(G.select("thead,tbody,tfoot",H),function(N){if(N.rows.length==0){G.remove(N)}});t();row=g[Math.min(g.length-1,L.y)];if(row){K.select(row[Math.min(row.length-1,L.x)].elm,true);K.collapse(true)}}function u(S,Q,U,R){var P,N,M,O,T;P=g[Q][S].elm.parentNode;for(M=1;M<=U;M++){P=G.getNext(P,"tr");if(P){for(N=S;N>=0;N--){T=g[Q+M][N].elm;if(T.parentNode==P){for(O=1;O<=R;O++){G.insertAfter(f(T),T)}break}}if(N==-1){for(O=1;O<=R;O++){P.insertBefore(f(P.cells[0]),P.cells[0])}}}}}function C(){e(g,function(M,N){e(M,function(P,O){var S,R,T,Q;if(j(P)){P=P.elm;S=a(P,"colspan");R=a(P,"rowspan");if(S>1||R>1){s(P,"rowSpan",1);s(P,"colSpan",1);for(Q=0;Q<S-1;Q++){G.insertAfter(f(P),P)}u(O,N,R-1,S)}}})})}function p(V,S,Y){var P,O,X,W,U,R,T,M,V,N,Q;if(V){pos=F(V);P=pos.x;O=pos.y;X=P+(S-1);W=O+(Y-1)}else{P=L.x;O=L.y;X=D.x;W=D.y}T=z(P,O);M=z(X,W);if(T&&M&&T.part==M.part){C();t();T=z(P,O).elm;s(T,"colSpan",(X-P)+1);s(T,"rowSpan",(W-O)+1);for(R=O;R<=W;R++){for(U=P;U<=X;U++){if(!g[R]||!g[R][U]){continue}V=g[R][U].elm;if(V!=T){N=d.grep(V.childNodes);e(N,function(Z){T.appendChild(Z)});if(N.length){N=d.grep(T.childNodes);Q=0;e(N,function(Z){if(Z.nodeName=="BR"&&G.getAttrib(Z,"data-mce-bogus")&&Q++<N.length-1){T.removeChild(Z)}})}G.remove(V)}}}q()}}function l(Q){var M,S,P,R,T,U,N,V,O;e(g,function(W,X){e(W,function(Z,Y){if(j(Z)){Z=Z.elm;T=Z.parentNode;U=A(T,false);M=X;if(Q){return false}}});if(Q){return !M}});for(R=0;R<g[0].length;R++){if(!g[M][R]){continue}S=g[M][R].elm;if(S!=P){if(!Q){O=a(S,"rowspan");if(O>1){s(S,"rowSpan",O+1);continue}}else{if(M>0&&g[M-1][R]){V=g[M-1][R].elm;O=a(V,"rowSpan");if(O>1){s(V,"rowSpan",O+1);continue}}}N=f(S);s(N,"colSpan",S.colSpan);U.appendChild(N);P=S}}if(U.hasChildNodes()){if(!Q){G.insertAfter(U,T)}else{T.parentNode.insertBefore(U,T)}}}function h(N){var O,M;e(g,function(P,Q){e(P,function(S,R){if(j(S)){O=R;if(N){return false}}});if(N){return !O}});e(g,function(S,T){var P,Q,R;if(!S[O]){return}P=S[O].elm;if(P!=M){R=a(P,"colspan");Q=a(P,"rowspan");if(R==1){if(!N){G.insertAfter(f(P),P);u(O,T,Q-1,R)}else{P.parentNode.insertBefore(f(P),P);u(O,T,Q-1,R)}}else{s(P,"colSpan",P.colSpan+1)}M=P}})}function n(){var M=[];e(g,function(N,O){e(N,function(Q,P){if(j(Q)&&d.inArray(M,P)===-1){e(g,function(T){var R=T[P].elm,S;S=a(R,"colSpan");if(S>1){s(R,"colSpan",S-1)}else{G.remove(R)}});M.push(P)}})});q()}function m(){var N;function M(Q){var P,R,O;P=G.getNext(Q,"tr");e(Q.cells,function(S){var T=a(S,"rowSpan");if(T>1){s(S,"rowSpan",T-1);R=F(S);u(R.x,R.y,1,1)}});R=F(Q.cells[0]);e(g[R.y],function(S){var T;S=S.elm;if(S!=O){T=a(S,"rowSpan");if(T<=1){G.remove(S)}else{s(S,"rowSpan",T-1)}O=S}})}N=k();e(N.reverse(),function(O){M(O)});q()}function E(){var M=k();G.remove(M);q();return M}function J(){var M=k();e(M,function(O,N){M[N]=A(O,true)});return M}function B(O,N){var P=k(),M=P[N?0:P.length-1],Q=M.cells.length;e(g,function(S){var R;Q=0;e(S,function(U,T){if(U.real){Q+=U.colspan}if(U.elm.parentNode==M){R=1}});if(R){return false}});if(!N){O.reverse()}e(O,function(T){var S=T.cells.length,R;for(i=0;i<S;i++){R=T.cells[i];s(R,"colSpan",1);s(R,"rowSpan",1)}for(i=S;i<Q;i++){T.appendChild(f(T.cells[S-1]))}for(i=Q;i<S;i++){G.remove(T.cells[i])}if(N){M.parentNode.insertBefore(T,M)}else{G.insertAfter(T,M)}})}function F(M){var N;e(g,function(O,P){e(O,function(R,Q){if(R.elm==M){N={x:Q,y:P};return false}});return !N});return N}function w(M){L=F(M)}function I(){var O,N,M;N=M=0;e(g,function(P,Q){e(P,function(S,R){var U,T;if(j(S)){S=g[Q][R];if(R>N){N=R}if(Q>M){M=Q}if(S.real){U=S.colspan-1;T=S.rowspan-1;if(U){if(R+U>N){N=R+U}}if(T){if(Q+T>M){M=Q+T}}}}})});return{x:N,y:M}}function v(S){var P,O,U,T,N,M,Q,R;D=F(S);if(L&&D){P=Math.min(L.x,D.x);O=Math.min(L.y,D.y);U=Math.max(L.x,D.x);T=Math.max(L.y,D.y);N=U;M=T;for(y=O;y<=M;y++){S=g[y][P];if(!S.real){if(P-(S.colspan-1)<P){P-=S.colspan-1}}}for(x=P;x<=N;x++){S=g[O][x];if(!S.real){if(O-(S.rowspan-1)<O){O-=S.rowspan-1}}}for(y=O;y<=T;y++){for(x=P;x<=U;x++){S=g[y][x];if(S.real){Q=S.colspan-1;R=S.rowspan-1;if(Q){if(x+Q>N){N=x+Q}}if(R){if(y+R>M){M=y+R}}}}}G.removeClass(G.select("td.mceSelected,th.mceSelected"),"mceSelected");for(y=O;y<=M;y++){for(x=P;x<=N;x++){if(g[y][x]){G.addClass(g[y][x].elm,"mceSelected")}}}}}d.extend(this,{deleteTable:r,split:C,merge:p,insertRow:l,insertCol:h,deleteCols:n,deleteRows:m,cutRows:E,copyRows:J,pasteRows:B,getPos:F,setStartCell:w,setEndCell:v})}d.create("tinymce.plugins.TablePlugin",{init:function(g,h){var f,m,j=true;function l(p){var o=g.selection,n=g.dom.getParent(p||o.getNode(),"table");if(n){return new b(n,g.dom,o)}}function k(){g.getBody().style.webkitUserSelect="";if(j){g.dom.removeClass(g.dom.select("td.mceSelected,th.mceSelected"),"mceSelected");j=false}}e([["table","table.desc","mceInsertTable",true],["delete_table","table.del","mceTableDelete"],["delete_col","table.delete_col_desc","mceTableDeleteCol"],["delete_row","table.delete_row_desc","mceTableDeleteRow"],["col_after","table.col_after_desc","mceTableInsertColAfter"],["col_before","table.col_before_desc","mceTableInsertColBefore"],["row_after","table.row_after_desc","mceTableInsertRowAfter"],["row_before","table.row_before_desc","mceTableInsertRowBefore"],["row_props","table.row_desc","mceTableRowProps",true],["cell_props","table.cell_desc","mceTableCellProps",true],["split_cells","table.split_cells_desc","mceTableSplitCells",true],["merge_cells","table.merge_cells_desc","mceTableMergeCells",true]],function(n){g.addButton(n[0],{title:n[1],cmd:n[2],ui:n[3]})});if(!d.isIE){g.onClick.add(function(n,o){o=o.target;if(o.nodeName==="TABLE"){n.selection.select(o);n.nodeChanged()}})}g.onPreProcess.add(function(o,p){var n,q,r,t=o.dom,s;n=t.select("table",p.node);q=n.length;while(q--){r=n[q];t.setAttrib(r,"data-mce-style","");if((s=t.getAttrib(r,"width"))){t.setStyle(r,"width",s);t.setAttrib(r,"width","")}if((s=t.getAttrib(r,"height"))){t.setStyle(r,"height",s);t.setAttrib(r,"height","")}}});g.onNodeChange.add(function(q,o,s){var r;s=q.selection.getStart();r=q.dom.getParent(s,"td,th,caption");o.setActive("table",s.nodeName==="TABLE"||!!r);if(r&&r.nodeName==="CAPTION"){r=0}o.setDisabled("delete_table",!r);o.setDisabled("delete_col",!r);o.setDisabled("delete_table",!r);o.setDisabled("delete_row",!r);o.setDisabled("col_after",!r);o.setDisabled("col_before",!r);o.setDisabled("row_after",!r);o.setDisabled("row_before",!r);o.setDisabled("row_props",!r);o.setDisabled("cell_props",!r);o.setDisabled("split_cells",!r);o.setDisabled("merge_cells",!r)});g.onInit.add(function(r){var p,t,q=r.dom,u;f=r.windowManager;r.onMouseDown.add(function(w,z){if(z.button!=2){k();t=q.getParent(z.target,"td,th");p=q.getParent(t,"table")}});q.bind(r.getDoc(),"mouseover",function(C){var A,z,B=C.target;if(t&&(u||B!=t)&&(B.nodeName=="TD"||B.nodeName=="TH")){z=q.getParent(B,"table");if(z==p){if(!u){u=l(z);u.setStartCell(t);r.getBody().style.webkitUserSelect="none"}u.setEndCell(B);j=true}A=r.selection.getSel();try{if(A.removeAllRanges){A.removeAllRanges()}else{A.empty()}}catch(w){}C.preventDefault()}});r.onMouseUp.add(function(F,G){var z,B=F.selection,H,I=B.getSel(),w,C,A,E;if(t){if(u){F.getBody().style.webkitUserSelect=""}function D(J,L){var K=new d.dom.TreeWalker(J,J);do{if(J.nodeType==3&&d.trim(J.nodeValue).length!=0){if(L){z.setStart(J,0)}else{z.setEnd(J,J.nodeValue.length)}return}if(J.nodeName=="BR"){if(L){z.setStartBefore(J)}else{z.setEndBefore(J)}return}}while(J=(L?K.next():K.prev()))}H=q.select("td.mceSelected,th.mceSelected");if(H.length>0){z=q.createRng();C=H[0];E=H[H.length-1];z.setStartBefore(C);z.setEndAfter(C);D(C,1);w=new d.dom.TreeWalker(C,q.getParent(H[0],"table"));do{if(C.nodeName=="TD"||C.nodeName=="TH"){if(!q.hasClass(C,"mceSelected")){break}A=C}}while(C=w.next());D(A);B.setRng(z)}F.nodeChanged();t=u=p=null}});r.onKeyUp.add(function(w,z){k()});r.onKeyDown.add(function(w,z){n(w)});r.onMouseDown.add(function(w,z){if(z.button!=2){n(w)}});function o(D,z,A,F){var B=3,G=D.dom.getParent(z.startContainer,"TABLE"),C,w,E;if(G){C=G.parentNode}w=z.startContainer.nodeType==B&&z.startOffset==0&&z.endOffset==0&&F&&(A.nodeName=="TR"||A==C);E=(A.nodeName=="TD"||A.nodeName=="TH")&&!F;return w||E}function n(A){if(!d.isWebKit){return}var z=A.selection.getRng();var C=A.selection.getNode();var B=A.dom.getParent(z.startContainer,"TD,TH");if(!o(A,z,C,B)){return}if(!B){B=C}var w=B.lastChild;while(w.lastChild){w=w.lastChild}z.setEnd(w,w.nodeValue.length);A.selection.setRng(z)}r.plugins.table.fixTableCellSelection=n;if(r&&r.plugins.contextmenu){r.plugins.contextmenu.onContextMenu.add(function(A,w,C){var D,B=r.selection,z=B.getNode()||r.getBody();if(r.dom.getParent(C,"td")||r.dom.getParent(C,"th")||r.dom.select("td.mceSelected,th.mceSelected").length){w.removeAll();if(z.nodeName=="A"&&!r.dom.getAttrib(z,"name")){w.add({title:"advanced.link_desc",icon:"link",cmd:r.plugins.advlink?"mceAdvLink":"mceLink",ui:true});w.add({title:"advanced.unlink_desc",icon:"unlink",cmd:"UnLink"});w.addSeparator()}if(z.nodeName=="IMG"&&z.className.indexOf("mceItem")==-1){w.add({title:"advanced.image_desc",icon:"image",cmd:r.plugins.advimage?"mceAdvImage":"mceImage",ui:true});w.addSeparator()}w.add({title:"table.desc",icon:"table",cmd:"mceInsertTable",value:{action:"insert"}});w.add({title:"table.props_desc",icon:"table_props",cmd:"mceInsertTable"});w.add({title:"table.del",icon:"delete_table",cmd:"mceTableDelete"});w.addSeparator();D=w.addMenu({title:"table.cell"});D.add({title:"table.cell_desc",icon:"cell_props",cmd:"mceTableCellProps"});D.add({title:"table.split_cells_desc",icon:"split_cells",cmd:"mceTableSplitCells"});D.add({title:"table.merge_cells_desc",icon:"merge_cells",cmd:"mceTableMergeCells"});D=w.addMenu({title:"table.row"});D.add({title:"table.row_desc",icon:"row_props",cmd:"mceTableRowProps"});D.add({title:"table.row_before_desc",icon:"row_before",cmd:"mceTableInsertRowBefore"});D.add({title:"table.row_after_desc",icon:"row_after",cmd:"mceTableInsertRowAfter"});D.add({title:"table.delete_row_desc",icon:"delete_row",cmd:"mceTableDeleteRow"});D.addSeparator();D.add({title:"table.cut_row_desc",icon:"cut",cmd:"mceTableCutRow"});D.add({title:"table.copy_row_desc",icon:"copy",cmd:"mceTableCopyRow"});D.add({title:"table.paste_row_before_desc",icon:"paste",cmd:"mceTablePasteRowBefore"}).setDisabled(!m);D.add({title:"table.paste_row_after_desc",icon:"paste",cmd:"mceTablePasteRowAfter"}).setDisabled(!m);D=w.addMenu({title:"table.col"});D.add({title:"table.col_before_desc",icon:"col_before",cmd:"mceTableInsertColBefore"});D.add({title:"table.col_after_desc",icon:"col_after",cmd:"mceTableInsertColAfter"});D.add({title:"table.delete_col_desc",icon:"delete_col",cmd:"mceTableDeleteCol"})}else{w.add({title:"table.desc",icon:"table",cmd:"mceInsertTable"})}})}if(d.isWebKit){function v(C,N){var L=d.VK;var Q=N.keyCode;function O(Y,U,S){var T=Y?"previousSibling":"nextSibling";var Z=C.dom.getParent(U,"tr");var X=Z[T];if(X){z(C,U,X,Y);d.dom.Event.cancel(S);return true}else{var aa=C.dom.getParent(Z,"table");var W=Z.parentNode;var R=W.nodeName.toLowerCase();if(R==="tbody"||R===(Y?"tfoot":"thead")){var V=w(Y,aa,W,"tbody");if(V!==null){return K(Y,V,U,S)}}return M(Y,Z,T,aa,S)}}function w(V,T,U,X){var S=C.dom.select(">"+X,T);var R=S.indexOf(U);if(V&&R===0||!V&&R===S.length-1){return B(V,T)}else{if(R===-1){var W=U.tagName.toLowerCase()==="thead"?0:S.length-1;return S[W]}else{return S[R+(V?-1:1)]}}}function B(U,T){var S=U?"thead":"tfoot";var R=C.dom.select(">"+S,T);return R.length!==0?R[0]:null}function K(V,T,S,U){var R=J(T,V);R&&z(C,S,R,V);d.dom.Event.cancel(U);return true}function M(Y,U,R,X,W){var S=X[R];if(S){F(S);return true}else{var V=C.dom.getParent(X,"td,th");if(V){return O(Y,V,W)}else{var T=J(U,!Y);F(T);return d.dom.Event.cancel(W)}}}function J(S,R){var T=S&&S[R?"lastChild":"firstChild"];return T&&T.nodeName==="BR"?C.dom.getParent(T,"td,th"):T}function F(R){C.selection.setCursorLocation(R,0)}function A(){return Q==L.UP||Q==L.DOWN}function D(R){var T=R.selection.getNode();var S=R.dom.getParent(T,"tr");return S!==null}function P(S){var R=0;var T=S;while(T.previousSibling){T=T.previousSibling;R=R+a(T,"colspan")}return R}function E(T,R){var U=0;var S=0;e(T.children,function(V,W){U=U+a(V,"colspan");S=W;if(U>R){return false}});return S}function z(T,W,Y,V){var X=P(T.dom.getParent(W,"td,th"));var S=E(Y,X);var R=Y.childNodes[S];var U=J(R,V);F(U||R)}function H(R){var T=C.selection.getNode();var U=C.dom.getParent(T,"td,th");var S=C.dom.getParent(R,"td,th");return U&&U!==S&&I(U,S)}function I(S,R){return C.dom.getParent(S,"TABLE")===C.dom.getParent(R,"TABLE")}if(A()&&D(C)){var G=C.selection.getNode();setTimeout(function(){if(H(G)){O(!N.shiftKey&&Q===L.UP,G,N)}},0)}}r.onKeyDown.add(v)}if(!d.isIE){function s(){var w;for(w=r.getBody().lastChild;w&&w.nodeType==3&&!w.nodeValue.length;w=w.previousSibling){}if(w&&w.nodeName=="TABLE"){r.dom.add(r.getBody(),"p",null,'<br mce_bogus="1" />')}}if(d.isGecko){r.onKeyDown.add(function(z,B){var w,A,C=z.dom;if(B.keyCode==37||B.keyCode==38){w=z.selection.getRng();A=C.getParent(w.startContainer,"table");if(A&&z.getBody().firstChild==A){if(c(w,A)){w=C.createRng();w.setStartBefore(A);w.setEndBefore(A);z.selection.setRng(w);B.preventDefault()}}}})}r.onKeyUp.add(s);r.onSetContent.add(s);r.onVisualAid.add(s);r.onPreProcess.add(function(w,A){var z=A.node.lastChild;if(z&&z.childNodes.length==1&&z.firstChild.nodeName=="BR"){w.dom.remove(z)}});if(d.isGecko){r.onKeyDown.add(function(z,B){if(B.keyCode===d.VK.ENTER&&B.shiftKey){var A=z.selection.getRng().startContainer;var C=q.getParent(A,"td,th");if(C){var w=z.getDoc().createTextNode("\uFEFF");q.insertAfter(w,A)}}})}s();r.startContent=r.getContent({format:"raw"})}});e({mceTableSplitCells:function(n){n.split()},mceTableMergeCells:function(o){var p,q,n;n=g.dom.getParent(g.selection.getNode(),"th,td");if(n){p=n.rowSpan;q=n.colSpan}if(!g.dom.select("td.mceSelected,th.mceSelected").length){f.open({url:h+"/merge_cells.htm",width:240+parseInt(g.getLang("table.merge_cells_delta_width",0)),height:110+parseInt(g.getLang("table.merge_cells_delta_height",0)),inline:1},{rows:p,cols:q,onaction:function(r){o.merge(n,r.cols,r.rows)},plugin_url:h})}else{o.merge()}},mceTableInsertRowBefore:function(n){n.insertRow(true)},mceTableInsertRowAfter:function(n){n.insertRow()},mceTableInsertColBefore:function(n){n.insertCol(true)},mceTableInsertColAfter:function(n){n.insertCol()},mceTableDeleteCol:function(n){n.deleteCols()},mceTableDeleteRow:function(n){n.deleteRows()},mceTableCutRow:function(n){m=n.cutRows()},mceTableCopyRow:function(n){m=n.copyRows()},mceTablePasteRowBefore:function(n){n.pasteRows(m,true)},mceTablePasteRowAfter:function(n){n.pasteRows(m)},mceTableDelete:function(n){n.deleteTable()}},function(o,n){g.addCommand(n,function(){var p=l();if(p){o(p);g.execCommand("mceRepaint");k()}})});e({mceInsertTable:function(n){f.open({url:h+"/table.htm",width:400+parseInt(g.getLang("table.table_delta_width",0)),height:320+parseInt(g.getLang("table.table_delta_height",0)),inline:1},{plugin_url:h,action:n?n.action:0})},mceTableRowProps:function(){f.open({url:h+"/row.htm",width:400+parseInt(g.getLang("table.rowprops_delta_width",0)),height:295+parseInt(g.getLang("table.rowprops_delta_height",0)),inline:1},{plugin_url:h})},mceTableCellProps:function(){f.open({url:h+"/cell.htm",width:400+parseInt(g.getLang("table.cellprops_delta_width",0)),height:295+parseInt(g.getLang("table.cellprops_delta_height",0)),inline:1},{plugin_url:h})}},function(o,n){g.addCommand(n,function(p,q){o(q)})})}});d.PluginManager.add("table",d.plugins.TablePlugin)})(tinymce);
|
1
|
+
(function(d){var e=d.each;function c(g,h){var j=h.ownerDocument,f=j.createRange(),k;f.setStartBefore(h);f.setEnd(g.endContainer,g.endOffset);k=j.createElement("body");k.appendChild(f.cloneContents());return k.innerHTML.replace(/<(br|img|object|embed|input|textarea)[^>]*>/gi,"-").replace(/<[^>]+>/g,"").length==0}function a(g,f){return parseInt(g.getAttribute(f)||1)}function b(H,G,K){var g,L,D,o;t();o=G.getParent(K.getStart(),"th,td");if(o){L=F(o);D=I();o=z(L.x,L.y)}function A(N,M){N=N.cloneNode(M);N.removeAttribute("id");return N}function t(){var M=0;g=[];e(["thead","tbody","tfoot"],function(N){var O=G.select("> "+N+" tr",H);e(O,function(P,Q){Q+=M;e(G.select("> td, > th",P),function(W,R){var S,T,U,V;if(g[Q]){while(g[Q][R]){R++}}U=a(W,"rowspan");V=a(W,"colspan");for(T=Q;T<Q+U;T++){if(!g[T]){g[T]=[]}for(S=R;S<R+V;S++){g[T][S]={part:N,real:T==Q&&S==R,elm:W,rowspan:U,colspan:V}}}})});M+=O.length})}function z(M,O){var N;N=g[O];if(N){return N[M]}}function s(O,M,N){if(O){N=parseInt(N);if(N===1){O.removeAttribute(M,1)}else{O.setAttribute(M,N,1)}}}function j(M){return M&&(G.hasClass(M.elm,"mceSelected")||M==o)}function k(){var M=[];e(H.rows,function(N){e(N.cells,function(O){if(G.hasClass(O,"mceSelected")||O==o.elm){M.push(N);return false}})});return M}function r(){var M=G.createRng();M.setStartAfter(H);M.setEndAfter(H);K.setRng(M);G.remove(H)}function f(M){var N;d.walk(M,function(P){var O;if(P.nodeType==3){e(G.getParents(P.parentNode,null,M).reverse(),function(Q){Q=A(Q,false);if(!N){N=O=Q}else{if(O){O.appendChild(Q)}}O=Q});if(O){O.innerHTML=d.isIE?" ":'<br data-mce-bogus="1" />'}return false}},"childNodes");M=A(M,false);s(M,"rowSpan",1);s(M,"colSpan",1);if(N){M.appendChild(N)}else{if(!d.isIE){M.innerHTML='<br data-mce-bogus="1" />'}}return M}function q(){var M=G.createRng();e(G.select("tr",H),function(N){if(N.cells.length==0){G.remove(N)}});if(G.select("tr",H).length==0){M.setStartAfter(H);M.setEndAfter(H);K.setRng(M);G.remove(H);return}e(G.select("thead,tbody,tfoot",H),function(N){if(N.rows.length==0){G.remove(N)}});t();row=g[Math.min(g.length-1,L.y)];if(row){K.select(row[Math.min(row.length-1,L.x)].elm,true);K.collapse(true)}}function u(S,Q,U,R){var P,N,M,O,T;P=g[Q][S].elm.parentNode;for(M=1;M<=U;M++){P=G.getNext(P,"tr");if(P){for(N=S;N>=0;N--){T=g[Q+M][N].elm;if(T.parentNode==P){for(O=1;O<=R;O++){G.insertAfter(f(T),T)}break}}if(N==-1){for(O=1;O<=R;O++){P.insertBefore(f(P.cells[0]),P.cells[0])}}}}}function C(){e(g,function(M,N){e(M,function(P,O){var S,R,T,Q;if(j(P)){P=P.elm;S=a(P,"colspan");R=a(P,"rowspan");if(S>1||R>1){s(P,"rowSpan",1);s(P,"colSpan",1);for(Q=0;Q<S-1;Q++){G.insertAfter(f(P),P)}u(O,N,R-1,S)}}})})}function p(V,S,Y){var P,O,X,W,U,R,T,M,V,N,Q;if(V){pos=F(V);P=pos.x;O=pos.y;X=P+(S-1);W=O+(Y-1)}else{L=D=null;e(g,function(Z,aa){e(Z,function(ac,ab){if(j(ac)){if(!L){L={x:ab,y:aa}}D={x:ab,y:aa}}})});P=L.x;O=L.y;X=D.x;W=D.y}T=z(P,O);M=z(X,W);if(T&&M&&T.part==M.part){C();t();T=z(P,O).elm;s(T,"colSpan",(X-P)+1);s(T,"rowSpan",(W-O)+1);for(R=O;R<=W;R++){for(U=P;U<=X;U++){if(!g[R]||!g[R][U]){continue}V=g[R][U].elm;if(V!=T){N=d.grep(V.childNodes);e(N,function(Z){T.appendChild(Z)});if(N.length){N=d.grep(T.childNodes);Q=0;e(N,function(Z){if(Z.nodeName=="BR"&&G.getAttrib(Z,"data-mce-bogus")&&Q++<N.length-1){T.removeChild(Z)}})}G.remove(V)}}}q()}}function l(Q){var M,S,P,R,T,U,N,V,O;e(g,function(W,X){e(W,function(Z,Y){if(j(Z)){Z=Z.elm;T=Z.parentNode;U=A(T,false);M=X;if(Q){return false}}});if(Q){return !M}});for(R=0;R<g[0].length;R++){if(!g[M][R]){continue}S=g[M][R].elm;if(S!=P){if(!Q){O=a(S,"rowspan");if(O>1){s(S,"rowSpan",O+1);continue}}else{if(M>0&&g[M-1][R]){V=g[M-1][R].elm;O=a(V,"rowSpan");if(O>1){s(V,"rowSpan",O+1);continue}}}N=f(S);s(N,"colSpan",S.colSpan);U.appendChild(N);P=S}}if(U.hasChildNodes()){if(!Q){G.insertAfter(U,T)}else{T.parentNode.insertBefore(U,T)}}}function h(N){var O,M;e(g,function(P,Q){e(P,function(S,R){if(j(S)){O=R;if(N){return false}}});if(N){return !O}});e(g,function(S,T){var P,Q,R;if(!S[O]){return}P=S[O].elm;if(P!=M){R=a(P,"colspan");Q=a(P,"rowspan");if(R==1){if(!N){G.insertAfter(f(P),P);u(O,T,Q-1,R)}else{P.parentNode.insertBefore(f(P),P);u(O,T,Q-1,R)}}else{s(P,"colSpan",P.colSpan+1)}M=P}})}function n(){var M=[];e(g,function(N,O){e(N,function(Q,P){if(j(Q)&&d.inArray(M,P)===-1){e(g,function(T){var R=T[P].elm,S;S=a(R,"colSpan");if(S>1){s(R,"colSpan",S-1)}else{G.remove(R)}});M.push(P)}})});q()}function m(){var N;function M(Q){var P,R,O;P=G.getNext(Q,"tr");e(Q.cells,function(S){var T=a(S,"rowSpan");if(T>1){s(S,"rowSpan",T-1);R=F(S);u(R.x,R.y,1,1)}});R=F(Q.cells[0]);e(g[R.y],function(S){var T;S=S.elm;if(S!=O){T=a(S,"rowSpan");if(T<=1){G.remove(S)}else{s(S,"rowSpan",T-1)}O=S}})}N=k();e(N.reverse(),function(O){M(O)});q()}function E(){var M=k();G.remove(M);q();return M}function J(){var M=k();e(M,function(O,N){M[N]=A(O,true)});return M}function B(O,N){var P=k(),M=P[N?0:P.length-1],Q=M.cells.length;e(g,function(S){var R;Q=0;e(S,function(U,T){if(U.real){Q+=U.colspan}if(U.elm.parentNode==M){R=1}});if(R){return false}});if(!N){O.reverse()}e(O,function(T){var S=T.cells.length,R;for(i=0;i<S;i++){R=T.cells[i];s(R,"colSpan",1);s(R,"rowSpan",1)}for(i=S;i<Q;i++){T.appendChild(f(T.cells[S-1]))}for(i=Q;i<S;i++){G.remove(T.cells[i])}if(N){M.parentNode.insertBefore(T,M)}else{G.insertAfter(T,M)}});G.removeClass(G.select("td.mceSelected,th.mceSelected"),"mceSelected")}function F(M){var N;e(g,function(O,P){e(O,function(R,Q){if(R.elm==M){N={x:Q,y:P};return false}});return !N});return N}function w(M){L=F(M)}function I(){var O,N,M;N=M=0;e(g,function(P,Q){e(P,function(S,R){var U,T;if(j(S)){S=g[Q][R];if(R>N){N=R}if(Q>M){M=Q}if(S.real){U=S.colspan-1;T=S.rowspan-1;if(U){if(R+U>N){N=R+U}}if(T){if(Q+T>M){M=Q+T}}}}})});return{x:N,y:M}}function v(S){var P,O,U,T,N,M,Q,R;D=F(S);if(L&&D){P=Math.min(L.x,D.x);O=Math.min(L.y,D.y);U=Math.max(L.x,D.x);T=Math.max(L.y,D.y);N=U;M=T;for(y=O;y<=M;y++){S=g[y][P];if(!S.real){if(P-(S.colspan-1)<P){P-=S.colspan-1}}}for(x=P;x<=N;x++){S=g[O][x];if(!S.real){if(O-(S.rowspan-1)<O){O-=S.rowspan-1}}}for(y=O;y<=T;y++){for(x=P;x<=U;x++){S=g[y][x];if(S.real){Q=S.colspan-1;R=S.rowspan-1;if(Q){if(x+Q>N){N=x+Q}}if(R){if(y+R>M){M=y+R}}}}}G.removeClass(G.select("td.mceSelected,th.mceSelected"),"mceSelected");for(y=O;y<=M;y++){for(x=P;x<=N;x++){if(g[y][x]){G.addClass(g[y][x].elm,"mceSelected")}}}}}d.extend(this,{deleteTable:r,split:C,merge:p,insertRow:l,insertCol:h,deleteCols:n,deleteRows:m,cutRows:E,copyRows:J,pasteRows:B,getPos:F,setStartCell:w,setEndCell:v})}d.create("tinymce.plugins.TablePlugin",{init:function(g,h){var f,m,j=true;function l(p){var o=g.selection,n=g.dom.getParent(p||o.getNode(),"table");if(n){return new b(n,g.dom,o)}}function k(){g.getBody().style.webkitUserSelect="";if(j){g.dom.removeClass(g.dom.select("td.mceSelected,th.mceSelected"),"mceSelected");j=false}}e([["table","table.desc","mceInsertTable",true],["delete_table","table.del","mceTableDelete"],["delete_col","table.delete_col_desc","mceTableDeleteCol"],["delete_row","table.delete_row_desc","mceTableDeleteRow"],["col_after","table.col_after_desc","mceTableInsertColAfter"],["col_before","table.col_before_desc","mceTableInsertColBefore"],["row_after","table.row_after_desc","mceTableInsertRowAfter"],["row_before","table.row_before_desc","mceTableInsertRowBefore"],["row_props","table.row_desc","mceTableRowProps",true],["cell_props","table.cell_desc","mceTableCellProps",true],["split_cells","table.split_cells_desc","mceTableSplitCells",true],["merge_cells","table.merge_cells_desc","mceTableMergeCells",true]],function(n){g.addButton(n[0],{title:n[1],cmd:n[2],ui:n[3]})});if(!d.isIE){g.onClick.add(function(n,o){o=o.target;if(o.nodeName==="TABLE"){n.selection.select(o);n.nodeChanged()}})}g.onPreProcess.add(function(o,p){var n,q,r,t=o.dom,s;n=t.select("table",p.node);q=n.length;while(q--){r=n[q];t.setAttrib(r,"data-mce-style","");if((s=t.getAttrib(r,"width"))){t.setStyle(r,"width",s);t.setAttrib(r,"width","")}if((s=t.getAttrib(r,"height"))){t.setStyle(r,"height",s);t.setAttrib(r,"height","")}}});g.onNodeChange.add(function(q,o,s){var r;s=q.selection.getStart();r=q.dom.getParent(s,"td,th,caption");o.setActive("table",s.nodeName==="TABLE"||!!r);if(r&&r.nodeName==="CAPTION"){r=0}o.setDisabled("delete_table",!r);o.setDisabled("delete_col",!r);o.setDisabled("delete_table",!r);o.setDisabled("delete_row",!r);o.setDisabled("col_after",!r);o.setDisabled("col_before",!r);o.setDisabled("row_after",!r);o.setDisabled("row_before",!r);o.setDisabled("row_props",!r);o.setDisabled("cell_props",!r);o.setDisabled("split_cells",!r);o.setDisabled("merge_cells",!r)});g.onInit.add(function(r){var p,t,q=r.dom,u;f=r.windowManager;r.onMouseDown.add(function(w,z){if(z.button!=2){k();t=q.getParent(z.target,"td,th");p=q.getParent(t,"table")}});q.bind(r.getDoc(),"mouseover",function(C){var A,z,B=C.target;if(t&&(u||B!=t)&&(B.nodeName=="TD"||B.nodeName=="TH")){z=q.getParent(B,"table");if(z==p){if(!u){u=l(z);u.setStartCell(t);r.getBody().style.webkitUserSelect="none"}u.setEndCell(B);j=true}A=r.selection.getSel();try{if(A.removeAllRanges){A.removeAllRanges()}else{A.empty()}}catch(w){}C.preventDefault()}});r.onMouseUp.add(function(F,G){var z,B=F.selection,H,I=B.getSel(),w,C,A,E;if(t){if(u){F.getBody().style.webkitUserSelect=""}function D(J,L){var K=new d.dom.TreeWalker(J,J);do{if(J.nodeType==3&&d.trim(J.nodeValue).length!=0){if(L){z.setStart(J,0)}else{z.setEnd(J,J.nodeValue.length)}return}if(J.nodeName=="BR"){if(L){z.setStartBefore(J)}else{z.setEndBefore(J)}return}}while(J=(L?K.next():K.prev()))}H=q.select("td.mceSelected,th.mceSelected");if(H.length>0){z=q.createRng();C=H[0];E=H[H.length-1];z.setStartBefore(C);z.setEndAfter(C);D(C,1);w=new d.dom.TreeWalker(C,q.getParent(H[0],"table"));do{if(C.nodeName=="TD"||C.nodeName=="TH"){if(!q.hasClass(C,"mceSelected")){break}A=C}}while(C=w.next());D(A);B.setRng(z)}F.nodeChanged();t=u=p=null}});r.onKeyUp.add(function(w,z){k()});r.onKeyDown.add(function(w,z){n(w)});r.onMouseDown.add(function(w,z){if(z.button!=2){n(w)}});function o(D,z,A,F){var B=3,G=D.dom.getParent(z.startContainer,"TABLE"),C,w,E;if(G){C=G.parentNode}w=z.startContainer.nodeType==B&&z.startOffset==0&&z.endOffset==0&&F&&(A.nodeName=="TR"||A==C);E=(A.nodeName=="TD"||A.nodeName=="TH")&&!F;return w||E}function n(A){if(!d.isWebKit){return}var z=A.selection.getRng();var C=A.selection.getNode();var B=A.dom.getParent(z.startContainer,"TD,TH");if(!o(A,z,C,B)){return}if(!B){B=C}var w=B.lastChild;while(w.lastChild){w=w.lastChild}z.setEnd(w,w.nodeValue.length);A.selection.setRng(z)}r.plugins.table.fixTableCellSelection=n;if(r&&r.plugins.contextmenu){r.plugins.contextmenu.onContextMenu.add(function(A,w,C){var D,B=r.selection,z=B.getNode()||r.getBody();if(r.dom.getParent(C,"td")||r.dom.getParent(C,"th")||r.dom.select("td.mceSelected,th.mceSelected").length){w.removeAll();if(z.nodeName=="A"&&!r.dom.getAttrib(z,"name")){w.add({title:"advanced.link_desc",icon:"link",cmd:r.plugins.advlink?"mceAdvLink":"mceLink",ui:true});w.add({title:"advanced.unlink_desc",icon:"unlink",cmd:"UnLink"});w.addSeparator()}if(z.nodeName=="IMG"&&z.className.indexOf("mceItem")==-1){w.add({title:"advanced.image_desc",icon:"image",cmd:r.plugins.advimage?"mceAdvImage":"mceImage",ui:true});w.addSeparator()}w.add({title:"table.desc",icon:"table",cmd:"mceInsertTable",value:{action:"insert"}});w.add({title:"table.props_desc",icon:"table_props",cmd:"mceInsertTable"});w.add({title:"table.del",icon:"delete_table",cmd:"mceTableDelete"});w.addSeparator();D=w.addMenu({title:"table.cell"});D.add({title:"table.cell_desc",icon:"cell_props",cmd:"mceTableCellProps"});D.add({title:"table.split_cells_desc",icon:"split_cells",cmd:"mceTableSplitCells"});D.add({title:"table.merge_cells_desc",icon:"merge_cells",cmd:"mceTableMergeCells"});D=w.addMenu({title:"table.row"});D.add({title:"table.row_desc",icon:"row_props",cmd:"mceTableRowProps"});D.add({title:"table.row_before_desc",icon:"row_before",cmd:"mceTableInsertRowBefore"});D.add({title:"table.row_after_desc",icon:"row_after",cmd:"mceTableInsertRowAfter"});D.add({title:"table.delete_row_desc",icon:"delete_row",cmd:"mceTableDeleteRow"});D.addSeparator();D.add({title:"table.cut_row_desc",icon:"cut",cmd:"mceTableCutRow"});D.add({title:"table.copy_row_desc",icon:"copy",cmd:"mceTableCopyRow"});D.add({title:"table.paste_row_before_desc",icon:"paste",cmd:"mceTablePasteRowBefore"}).setDisabled(!m);D.add({title:"table.paste_row_after_desc",icon:"paste",cmd:"mceTablePasteRowAfter"}).setDisabled(!m);D=w.addMenu({title:"table.col"});D.add({title:"table.col_before_desc",icon:"col_before",cmd:"mceTableInsertColBefore"});D.add({title:"table.col_after_desc",icon:"col_after",cmd:"mceTableInsertColAfter"});D.add({title:"table.delete_col_desc",icon:"delete_col",cmd:"mceTableDeleteCol"})}else{w.add({title:"table.desc",icon:"table",cmd:"mceInsertTable"})}})}if(d.isWebKit){function v(C,N){var L=d.VK;var Q=N.keyCode;function O(Y,U,S){var T=Y?"previousSibling":"nextSibling";var Z=C.dom.getParent(U,"tr");var X=Z[T];if(X){z(C,U,X,Y);d.dom.Event.cancel(S);return true}else{var aa=C.dom.getParent(Z,"table");var W=Z.parentNode;var R=W.nodeName.toLowerCase();if(R==="tbody"||R===(Y?"tfoot":"thead")){var V=w(Y,aa,W,"tbody");if(V!==null){return K(Y,V,U,S)}}return M(Y,Z,T,aa,S)}}function w(V,T,U,X){var S=C.dom.select(">"+X,T);var R=S.indexOf(U);if(V&&R===0||!V&&R===S.length-1){return B(V,T)}else{if(R===-1){var W=U.tagName.toLowerCase()==="thead"?0:S.length-1;return S[W]}else{return S[R+(V?-1:1)]}}}function B(U,T){var S=U?"thead":"tfoot";var R=C.dom.select(">"+S,T);return R.length!==0?R[0]:null}function K(V,T,S,U){var R=J(T,V);R&&z(C,S,R,V);d.dom.Event.cancel(U);return true}function M(Y,U,R,X,W){var S=X[R];if(S){F(S);return true}else{var V=C.dom.getParent(X,"td,th");if(V){return O(Y,V,W)}else{var T=J(U,!Y);F(T);return d.dom.Event.cancel(W)}}}function J(S,R){var T=S&&S[R?"lastChild":"firstChild"];return T&&T.nodeName==="BR"?C.dom.getParent(T,"td,th"):T}function F(R){C.selection.setCursorLocation(R,0)}function A(){return Q==L.UP||Q==L.DOWN}function D(R){var T=R.selection.getNode();var S=R.dom.getParent(T,"tr");return S!==null}function P(S){var R=0;var T=S;while(T.previousSibling){T=T.previousSibling;R=R+a(T,"colspan")}return R}function E(T,R){var U=0;var S=0;e(T.children,function(V,W){U=U+a(V,"colspan");S=W;if(U>R){return false}});return S}function z(T,W,Y,V){var X=P(T.dom.getParent(W,"td,th"));var S=E(Y,X);var R=Y.childNodes[S];var U=J(R,V);F(U||R)}function H(R){var T=C.selection.getNode();var U=C.dom.getParent(T,"td,th");var S=C.dom.getParent(R,"td,th");return U&&U!==S&&I(U,S)}function I(S,R){return C.dom.getParent(S,"TABLE")===C.dom.getParent(R,"TABLE")}if(A()&&D(C)){var G=C.selection.getNode();setTimeout(function(){if(H(G)){O(!N.shiftKey&&Q===L.UP,G,N)}},0)}}r.onKeyDown.add(v)}function s(){var w;for(w=r.getBody().lastChild;w&&w.nodeType==3&&!w.nodeValue.length;w=w.previousSibling){}if(w&&w.nodeName=="TABLE"){if(r.settings.forced_root_block){r.dom.add(r.getBody(),r.settings.forced_root_block,null,d.isIE?" ":'<br data-mce-bogus="1" />')}else{r.dom.add(r.getBody(),"br",{"data-mce-bogus":"1"})}}}if(d.isGecko){r.onKeyDown.add(function(z,B){var w,A,C=z.dom;if(B.keyCode==37||B.keyCode==38){w=z.selection.getRng();A=C.getParent(w.startContainer,"table");if(A&&z.getBody().firstChild==A){if(c(w,A)){w=C.createRng();w.setStartBefore(A);w.setEndBefore(A);z.selection.setRng(w);B.preventDefault()}}}})}r.onKeyUp.add(s);r.onSetContent.add(s);r.onVisualAid.add(s);r.onPreProcess.add(function(w,A){var z=A.node.lastChild;if(z&&(z.nodeName=="BR"||(z.childNodes.length==1&&(z.firstChild.nodeName=="BR"||z.firstChild.nodeValue=="\u00a0")))&&z.previousSibling&&z.previousSibling.nodeName=="TABLE"){w.dom.remove(z)}});s();r.startContent=r.getContent({format:"raw"})});e({mceTableSplitCells:function(n){n.split()},mceTableMergeCells:function(o){var p,q,n;n=g.dom.getParent(g.selection.getNode(),"th,td");if(n){p=n.rowSpan;q=n.colSpan}if(!g.dom.select("td.mceSelected,th.mceSelected").length){f.open({url:h+"/merge_cells.htm",width:240+parseInt(g.getLang("table.merge_cells_delta_width",0)),height:110+parseInt(g.getLang("table.merge_cells_delta_height",0)),inline:1},{rows:p,cols:q,onaction:function(r){o.merge(n,r.cols,r.rows)},plugin_url:h})}else{o.merge()}},mceTableInsertRowBefore:function(n){n.insertRow(true)},mceTableInsertRowAfter:function(n){n.insertRow()},mceTableInsertColBefore:function(n){n.insertCol(true)},mceTableInsertColAfter:function(n){n.insertCol()},mceTableDeleteCol:function(n){n.deleteCols()},mceTableDeleteRow:function(n){n.deleteRows()},mceTableCutRow:function(n){m=n.cutRows()},mceTableCopyRow:function(n){m=n.copyRows()},mceTablePasteRowBefore:function(n){n.pasteRows(m,true)},mceTablePasteRowAfter:function(n){n.pasteRows(m)},mceTableDelete:function(n){n.deleteTable()}},function(o,n){g.addCommand(n,function(){var p=l();if(p){o(p);g.execCommand("mceRepaint");k()}})});e({mceInsertTable:function(n){f.open({url:h+"/table.htm",width:400+parseInt(g.getLang("table.table_delta_width",0)),height:320+parseInt(g.getLang("table.table_delta_height",0)),inline:1},{plugin_url:h,action:n?n.action:0})},mceTableRowProps:function(){f.open({url:h+"/row.htm",width:400+parseInt(g.getLang("table.rowprops_delta_width",0)),height:295+parseInt(g.getLang("table.rowprops_delta_height",0)),inline:1},{plugin_url:h})},mceTableCellProps:function(){f.open({url:h+"/cell.htm",width:400+parseInt(g.getLang("table.cellprops_delta_width",0)),height:295+parseInt(g.getLang("table.cellprops_delta_height",0)),inline:1},{plugin_url:h})}},function(o,n){g.addCommand(n,function(p,q){o(q)})})}});d.PluginManager.add("table",d.plugins.TablePlugin)})(tinymce);
|
data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/table/editor_plugin_src.js
CHANGED
@@ -287,6 +287,21 @@
|
|
287
287
|
endX = startX + (cols - 1);
|
288
288
|
endY = startY + (rows - 1);
|
289
289
|
} else {
|
290
|
+
startPos = endPos = null;
|
291
|
+
|
292
|
+
// Calculate start/end pos by checking for selected cells in grid works better with context menu
|
293
|
+
each(grid, function(row, y) {
|
294
|
+
each(row, function(cell, x) {
|
295
|
+
if (isCellSelected(cell)) {
|
296
|
+
if (!startPos) {
|
297
|
+
startPos = {x: x, y: y};
|
298
|
+
}
|
299
|
+
|
300
|
+
endPos = {x: x, y: y};
|
301
|
+
}
|
302
|
+
});
|
303
|
+
});
|
304
|
+
|
290
305
|
// Use selection
|
291
306
|
startX = startPos.x;
|
292
307
|
startY = startPos.y;
|
@@ -599,6 +614,9 @@
|
|
599
614
|
else
|
600
615
|
dom.insertAfter(row, targetRow);
|
601
616
|
});
|
617
|
+
|
618
|
+
// Remove current selection
|
619
|
+
dom.removeClass(dom.select('td.mceSelected,th.mceSelected'), 'mceSelected');
|
602
620
|
};
|
603
621
|
|
604
622
|
function getPos(target) {
|
@@ -1216,80 +1234,86 @@
|
|
1216
1234
|
|
1217
1235
|
ed.onKeyDown.add(moveSelection);
|
1218
1236
|
}
|
1219
|
-
|
1237
|
+
|
1220
1238
|
// Fixes an issue on Gecko where it's impossible to place the caret behind a table
|
1221
1239
|
// This fix will force a paragraph element after the table but only when the forced_root_block setting is enabled
|
1222
|
-
|
1223
|
-
|
1224
|
-
var last;
|
1240
|
+
function fixTableCaretPos() {
|
1241
|
+
var last;
|
1225
1242
|
|
1226
|
-
|
1227
|
-
|
1243
|
+
// Skip empty text nodes form the end
|
1244
|
+
for (last = ed.getBody().lastChild; last && last.nodeType == 3 && !last.nodeValue.length; last = last.previousSibling) ;
|
1228
1245
|
|
1229
|
-
|
1230
|
-
|
1231
|
-
|
1246
|
+
if (last && last.nodeName == 'TABLE') {
|
1247
|
+
if (ed.settings.forced_root_block)
|
1248
|
+
ed.dom.add(ed.getBody(), ed.settings.forced_root_block, null, tinymce.isIE ? ' ' : '<br data-mce-bogus="1" />');
|
1249
|
+
else
|
1250
|
+
ed.dom.add(ed.getBody(), 'br', {'data-mce-bogus': '1'});
|
1251
|
+
}
|
1252
|
+
};
|
1232
1253
|
|
1233
|
-
|
1234
|
-
|
1235
|
-
|
1236
|
-
|
1237
|
-
|
1238
|
-
|
1254
|
+
// Fixes an bug where it's impossible to place the caret before a table in Gecko
|
1255
|
+
// this fix solves it by detecting when the caret is at the beginning of such a table
|
1256
|
+
// and then manually moves the caret infront of the table
|
1257
|
+
if (tinymce.isGecko) {
|
1258
|
+
ed.onKeyDown.add(function(ed, e) {
|
1259
|
+
var rng, table, dom = ed.dom;
|
1239
1260
|
|
1240
|
-
|
1241
|
-
|
1242
|
-
|
1243
|
-
|
1261
|
+
// On gecko it's not possible to place the caret before a table
|
1262
|
+
if (e.keyCode == 37 || e.keyCode == 38) {
|
1263
|
+
rng = ed.selection.getRng();
|
1264
|
+
table = dom.getParent(rng.startContainer, 'table');
|
1244
1265
|
|
1245
|
-
|
1246
|
-
|
1247
|
-
|
1266
|
+
if (table && ed.getBody().firstChild == table) {
|
1267
|
+
if (isAtStart(rng, table)) {
|
1268
|
+
rng = dom.createRng();
|
1248
1269
|
|
1249
|
-
|
1250
|
-
|
1270
|
+
rng.setStartBefore(table);
|
1271
|
+
rng.setEndBefore(table);
|
1251
1272
|
|
1252
|
-
|
1273
|
+
ed.selection.setRng(rng);
|
1253
1274
|
|
1254
|
-
|
1255
|
-
}
|
1275
|
+
e.preventDefault();
|
1256
1276
|
}
|
1257
1277
|
}
|
1258
|
-
}
|
1259
|
-
}
|
1260
|
-
|
1261
|
-
ed.onKeyUp.add(fixTableCaretPos);
|
1262
|
-
ed.onSetContent.add(fixTableCaretPos);
|
1263
|
-
ed.onVisualAid.add(fixTableCaretPos);
|
1264
|
-
|
1265
|
-
ed.onPreProcess.add(function(ed, o) {
|
1266
|
-
var last = o.node.lastChild;
|
1267
|
-
|
1268
|
-
if (last && last.childNodes.length == 1 && last.firstChild.nodeName == 'BR')
|
1269
|
-
ed.dom.remove(last);
|
1278
|
+
}
|
1270
1279
|
});
|
1280
|
+
}
|
1271
1281
|
|
1282
|
+
ed.onKeyUp.add(fixTableCaretPos);
|
1283
|
+
ed.onSetContent.add(fixTableCaretPos);
|
1284
|
+
ed.onVisualAid.add(fixTableCaretPos);
|
1272
1285
|
|
1273
|
-
|
1274
|
-
|
1275
|
-
|
1276
|
-
if (
|
1277
|
-
ed.
|
1278
|
-
if (e.keyCode === tinymce.VK.ENTER && e.shiftKey) {
|
1279
|
-
var node = ed.selection.getRng().startContainer;
|
1280
|
-
var tableCell = dom.getParent(node, 'td,th');
|
1281
|
-
if (tableCell) {
|
1282
|
-
var zeroSizedNbsp = ed.getDoc().createTextNode("\uFEFF");
|
1283
|
-
dom.insertAfter(zeroSizedNbsp, node);
|
1284
|
-
}
|
1285
|
-
}
|
1286
|
-
});
|
1286
|
+
ed.onPreProcess.add(function(ed, o) {
|
1287
|
+
var last = o.node.lastChild;
|
1288
|
+
|
1289
|
+
if (last && (last.nodeName == "BR" || (last.childNodes.length == 1 && (last.firstChild.nodeName == 'BR' || last.firstChild.nodeValue == '\u00a0'))) && last.previousSibling && last.previousSibling.nodeName == "TABLE") {
|
1290
|
+
ed.dom.remove(last);
|
1287
1291
|
}
|
1292
|
+
});
|
1288
1293
|
|
1289
1294
|
|
1290
|
-
|
1291
|
-
|
1295
|
+
/**
|
1296
|
+
* Fixes bug in Gecko where shift-enter in table cell does not place caret on new line
|
1297
|
+
*
|
1298
|
+
* Removed: Since the new enter logic seems to fix this one.
|
1299
|
+
*/
|
1300
|
+
/*
|
1301
|
+
if (tinymce.isGecko) {
|
1302
|
+
ed.onKeyDown.add(function(ed, e) {
|
1303
|
+
if (e.keyCode === tinymce.VK.ENTER && e.shiftKey) {
|
1304
|
+
var node = ed.selection.getRng().startContainer;
|
1305
|
+
var tableCell = dom.getParent(node, 'td,th');
|
1306
|
+
if (tableCell) {
|
1307
|
+
var zeroSizedNbsp = ed.getDoc().createTextNode("\uFEFF");
|
1308
|
+
dom.insertAfter(zeroSizedNbsp, node);
|
1309
|
+
}
|
1310
|
+
}
|
1311
|
+
});
|
1292
1312
|
}
|
1313
|
+
*/
|
1314
|
+
|
1315
|
+
fixTableCaretPos();
|
1316
|
+
ed.startContent = ed.getContent({format : 'raw'});
|
1293
1317
|
});
|
1294
1318
|
|
1295
1319
|
// Register action commands
|
@@ -1,319 +1,319 @@
|
|
1
|
-
tinyMCEPopup.requireLangPack();
|
2
|
-
|
3
|
-
var ed;
|
4
|
-
|
5
|
-
function init() {
|
6
|
-
ed = tinyMCEPopup.editor;
|
7
|
-
tinyMCEPopup.resizeToInnerSize();
|
8
|
-
|
9
|
-
document.getElementById('backgroundimagebrowsercontainer').innerHTML = getBrowserHTML('backgroundimagebrowser','backgroundimage','image','table');
|
10
|
-
document.getElementById('bordercolor_pickcontainer').innerHTML = getColorPickerHTML('bordercolor_pick','bordercolor');
|
11
|
-
document.getElementById('bgcolor_pickcontainer').innerHTML = getColorPickerHTML('bgcolor_pick','bgcolor')
|
12
|
-
|
13
|
-
var inst = ed;
|
14
|
-
var tdElm = ed.dom.getParent(ed.selection.getStart(), "td,th");
|
15
|
-
var formObj = document.forms[0];
|
16
|
-
var st = ed.dom.parseStyle(ed.dom.getAttrib(tdElm, "style"));
|
17
|
-
|
18
|
-
// Get table cell data
|
19
|
-
var celltype = tdElm.nodeName.toLowerCase();
|
20
|
-
var align = ed.dom.getAttrib(tdElm, 'align');
|
21
|
-
var valign = ed.dom.getAttrib(tdElm, 'valign');
|
22
|
-
var width = trimSize(getStyle(tdElm, 'width', 'width'));
|
23
|
-
var height = trimSize(getStyle(tdElm, 'height', 'height'));
|
24
|
-
var bordercolor = convertRGBToHex(getStyle(tdElm, 'bordercolor', 'borderLeftColor'));
|
25
|
-
var bgcolor = convertRGBToHex(getStyle(tdElm, 'bgcolor', 'backgroundColor'));
|
26
|
-
var className = ed.dom.getAttrib(tdElm, 'class');
|
27
|
-
var backgroundimage = getStyle(tdElm, 'background', 'backgroundImage').replace(new RegExp("url\\(['\"]?([^'\"]*)['\"]?\\)", 'gi'), "$1");
|
28
|
-
var id = ed.dom.getAttrib(tdElm, 'id');
|
29
|
-
var lang = ed.dom.getAttrib(tdElm, 'lang');
|
30
|
-
var dir = ed.dom.getAttrib(tdElm, 'dir');
|
31
|
-
var scope = ed.dom.getAttrib(tdElm, 'scope');
|
32
|
-
|
33
|
-
// Setup form
|
34
|
-
addClassesToList('class', 'table_cell_styles');
|
35
|
-
TinyMCE_EditableSelects.init();
|
36
|
-
|
37
|
-
if (!ed.dom.hasClass(tdElm, 'mceSelected')) {
|
38
|
-
formObj.bordercolor.value = bordercolor;
|
39
|
-
formObj.bgcolor.value = bgcolor;
|
40
|
-
formObj.backgroundimage.value = backgroundimage;
|
41
|
-
formObj.width.value = width;
|
42
|
-
formObj.height.value = height;
|
43
|
-
formObj.id.value = id;
|
44
|
-
formObj.lang.value = lang;
|
45
|
-
formObj.style.value = ed.dom.serializeStyle(st);
|
46
|
-
selectByValue(formObj, 'align', align);
|
47
|
-
selectByValue(formObj, 'valign', valign);
|
48
|
-
selectByValue(formObj, 'class', className, true, true);
|
49
|
-
selectByValue(formObj, 'celltype', celltype);
|
50
|
-
selectByValue(formObj, 'dir', dir);
|
51
|
-
selectByValue(formObj, 'scope', scope);
|
52
|
-
|
53
|
-
// Resize some elements
|
54
|
-
if (isVisible('backgroundimagebrowser'))
|
55
|
-
document.getElementById('backgroundimage').style.width = '180px';
|
56
|
-
|
57
|
-
updateColor('bordercolor_pick', 'bordercolor');
|
58
|
-
updateColor('bgcolor_pick', 'bgcolor');
|
59
|
-
} else
|
60
|
-
tinyMCEPopup.dom.hide('action');
|
61
|
-
}
|
62
|
-
|
63
|
-
function updateAction() {
|
64
|
-
var el, inst = ed, tdElm, trElm, tableElm, formObj = document.forms[0];
|
65
|
-
|
66
|
-
if (!AutoValidator.validate(formObj)) {
|
67
|
-
tinyMCEPopup.alert(AutoValidator.getErrorMessages(formObj).join('. ') + '.');
|
68
|
-
return false;
|
69
|
-
}
|
70
|
-
|
71
|
-
tinyMCEPopup.restoreSelection();
|
72
|
-
el = ed.selection.getStart();
|
73
|
-
tdElm = ed.dom.getParent(el, "td,th");
|
74
|
-
trElm = ed.dom.getParent(el, "tr");
|
75
|
-
tableElm = ed.dom.getParent(el, "table");
|
76
|
-
|
77
|
-
// Cell is selected
|
78
|
-
if (ed.dom.hasClass(tdElm, 'mceSelected')) {
|
79
|
-
// Update all selected sells
|
80
|
-
tinymce.each(ed.dom.select('td.mceSelected,th.mceSelected'), function(td) {
|
81
|
-
updateCell(td);
|
82
|
-
});
|
83
|
-
|
84
|
-
ed.addVisual();
|
85
|
-
ed.nodeChanged();
|
86
|
-
inst.execCommand('mceEndUndoLevel');
|
87
|
-
tinyMCEPopup.close();
|
88
|
-
return;
|
89
|
-
}
|
90
|
-
|
91
|
-
switch (getSelectValue(formObj, 'action')) {
|
92
|
-
case "cell":
|
93
|
-
var celltype = getSelectValue(formObj, 'celltype');
|
94
|
-
var scope = getSelectValue(formObj, 'scope');
|
95
|
-
|
96
|
-
function doUpdate(s) {
|
97
|
-
if (s) {
|
98
|
-
updateCell(tdElm);
|
99
|
-
|
100
|
-
ed.addVisual();
|
101
|
-
ed.nodeChanged();
|
102
|
-
inst.execCommand('mceEndUndoLevel');
|
103
|
-
tinyMCEPopup.close();
|
104
|
-
}
|
105
|
-
};
|
106
|
-
|
107
|
-
if (ed.getParam("accessibility_warnings", 1)) {
|
108
|
-
if (celltype == "th" && scope == "")
|
109
|
-
tinyMCEPopup.confirm(ed.getLang('table_dlg.missing_scope', '', true), doUpdate);
|
110
|
-
else
|
111
|
-
doUpdate(1);
|
112
|
-
|
113
|
-
return;
|
114
|
-
}
|
115
|
-
|
116
|
-
updateCell(tdElm);
|
117
|
-
break;
|
118
|
-
|
119
|
-
case "row":
|
120
|
-
var cell = trElm.firstChild;
|
121
|
-
|
122
|
-
if (cell.nodeName != "TD" && cell.nodeName != "TH")
|
123
|
-
cell = nextCell(cell);
|
124
|
-
|
125
|
-
do {
|
126
|
-
cell = updateCell(cell, true);
|
127
|
-
} while ((cell = nextCell(cell)) != null);
|
128
|
-
|
129
|
-
break;
|
130
|
-
|
131
|
-
case "col":
|
132
|
-
var curr, col = 0, cell = trElm.firstChild, rows = tableElm.getElementsByTagName("tr");
|
133
|
-
|
134
|
-
if (cell.nodeName != "TD" && cell.nodeName != "TH")
|
135
|
-
cell = nextCell(cell);
|
136
|
-
|
137
|
-
do {
|
138
|
-
if (cell == tdElm)
|
139
|
-
break;
|
140
|
-
col += cell.getAttribute("colspan")?cell.getAttribute("colspan"):1;
|
141
|
-
} while ((cell = nextCell(cell)) != null);
|
142
|
-
|
143
|
-
for (var i=0; i<rows.length; i++) {
|
144
|
-
cell = rows[i].firstChild;
|
145
|
-
|
146
|
-
if (cell.nodeName != "TD" && cell.nodeName != "TH")
|
147
|
-
cell = nextCell(cell);
|
148
|
-
|
149
|
-
curr = 0;
|
150
|
-
do {
|
151
|
-
if (curr == col) {
|
152
|
-
cell = updateCell(cell, true);
|
153
|
-
break;
|
154
|
-
}
|
155
|
-
curr += cell.getAttribute("colspan")?cell.getAttribute("colspan"):1;
|
156
|
-
} while ((cell = nextCell(cell)) != null);
|
157
|
-
}
|
158
|
-
|
159
|
-
break;
|
160
|
-
|
161
|
-
case "all":
|
162
|
-
var rows = tableElm.getElementsByTagName("tr");
|
163
|
-
|
164
|
-
for (var i=0; i<rows.length; i++) {
|
165
|
-
var cell = rows[i].firstChild;
|
166
|
-
|
167
|
-
if (cell.nodeName != "TD" && cell.nodeName != "TH")
|
168
|
-
cell = nextCell(cell);
|
169
|
-
|
170
|
-
do {
|
171
|
-
cell = updateCell(cell, true);
|
172
|
-
} while ((cell = nextCell(cell)) != null);
|
173
|
-
}
|
174
|
-
|
175
|
-
break;
|
176
|
-
}
|
177
|
-
|
178
|
-
ed.addVisual();
|
179
|
-
ed.nodeChanged();
|
180
|
-
inst.execCommand('mceEndUndoLevel');
|
181
|
-
tinyMCEPopup.close();
|
182
|
-
}
|
183
|
-
|
184
|
-
function nextCell(elm) {
|
185
|
-
while ((elm = elm.nextSibling) != null) {
|
186
|
-
if (elm.nodeName == "TD" || elm.nodeName == "TH")
|
187
|
-
return elm;
|
188
|
-
}
|
189
|
-
|
190
|
-
return null;
|
191
|
-
}
|
192
|
-
|
193
|
-
function updateCell(td, skip_id) {
|
194
|
-
var inst = ed;
|
195
|
-
var formObj = document.forms[0];
|
196
|
-
var curCellType = td.nodeName.toLowerCase();
|
197
|
-
var celltype = getSelectValue(formObj, 'celltype');
|
198
|
-
var doc = inst.getDoc();
|
199
|
-
var dom = ed.dom;
|
200
|
-
|
201
|
-
if (!skip_id)
|
202
|
-
dom.setAttrib(td, 'id', formObj.id.value);
|
203
|
-
|
204
|
-
dom.setAttrib(td, 'align', formObj.align.value);
|
205
|
-
dom.setAttrib(td, 'vAlign', formObj.valign.value);
|
206
|
-
dom.setAttrib(td, 'lang', formObj.lang.value);
|
207
|
-
dom.setAttrib(td, 'dir', getSelectValue(formObj, 'dir'));
|
208
|
-
dom.setAttrib(td, 'style', ed.dom.serializeStyle(ed.dom.parseStyle(formObj.style.value)));
|
209
|
-
dom.setAttrib(td, 'scope', formObj.scope.value);
|
210
|
-
dom.setAttrib(td, 'class', getSelectValue(formObj, 'class'));
|
211
|
-
|
212
|
-
// Clear deprecated attributes
|
213
|
-
ed.dom.setAttrib(td, 'width', '');
|
214
|
-
ed.dom.setAttrib(td, 'height', '');
|
215
|
-
ed.dom.setAttrib(td, 'bgColor', '');
|
216
|
-
ed.dom.setAttrib(td, 'borderColor', '');
|
217
|
-
ed.dom.setAttrib(td, 'background', '');
|
218
|
-
|
219
|
-
// Set styles
|
220
|
-
td.style.width = getCSSSize(formObj.width.value);
|
221
|
-
td.style.height = getCSSSize(formObj.height.value);
|
222
|
-
if (formObj.bordercolor.value != "") {
|
223
|
-
td.style.borderColor = formObj.bordercolor.value;
|
224
|
-
td.style.borderStyle = td.style.borderStyle == "" ? "solid" : td.style.borderStyle;
|
225
|
-
td.style.borderWidth = td.style.borderWidth == "" ? "1px" : td.style.borderWidth;
|
226
|
-
} else
|
227
|
-
td.style.borderColor = '';
|
228
|
-
|
229
|
-
td.style.backgroundColor = formObj.bgcolor.value;
|
230
|
-
|
231
|
-
if (formObj.backgroundimage.value != "")
|
232
|
-
td.style.backgroundImage = "url('" + formObj.backgroundimage.value + "')";
|
233
|
-
else
|
234
|
-
td.style.backgroundImage = '';
|
235
|
-
|
236
|
-
if (curCellType != celltype) {
|
237
|
-
// changing to a different node type
|
238
|
-
var newCell = doc.createElement(celltype);
|
239
|
-
|
240
|
-
for (var c=0; c<td.childNodes.length; c++)
|
241
|
-
newCell.appendChild(td.childNodes[c].cloneNode(1));
|
242
|
-
|
243
|
-
for (var a=0; a<td.attributes.length; a++)
|
244
|
-
ed.dom.setAttrib(newCell, td.attributes[a].name, ed.dom.getAttrib(td, td.attributes[a].name));
|
245
|
-
|
246
|
-
td.parentNode.replaceChild(newCell, td);
|
247
|
-
td = newCell;
|
248
|
-
}
|
249
|
-
|
250
|
-
dom.setAttrib(td, 'style', dom.serializeStyle(dom.parseStyle(td.style.cssText)));
|
251
|
-
|
252
|
-
return td;
|
253
|
-
}
|
254
|
-
|
255
|
-
function changedBackgroundImage() {
|
256
|
-
var formObj = document.forms[0];
|
257
|
-
var st = ed.dom.parseStyle(formObj.style.value);
|
258
|
-
|
259
|
-
st['background-image'] = "url('" + formObj.backgroundimage.value + "')";
|
260
|
-
|
261
|
-
formObj.style.value = ed.dom.serializeStyle(st);
|
262
|
-
}
|
263
|
-
|
264
|
-
function changedSize() {
|
265
|
-
var formObj = document.forms[0];
|
266
|
-
var st = ed.dom.parseStyle(formObj.style.value);
|
267
|
-
|
268
|
-
var width = formObj.width.value;
|
269
|
-
if (width != "")
|
270
|
-
st['width'] = getCSSSize(width);
|
271
|
-
else
|
272
|
-
st['width'] = "";
|
273
|
-
|
274
|
-
var height = formObj.height.value;
|
275
|
-
if (height != "")
|
276
|
-
st['height'] = getCSSSize(height);
|
277
|
-
else
|
278
|
-
st['height'] = "";
|
279
|
-
|
280
|
-
formObj.style.value = ed.dom.serializeStyle(st);
|
281
|
-
}
|
282
|
-
|
283
|
-
function changedColor() {
|
284
|
-
var formObj = document.forms[0];
|
285
|
-
var st = ed.dom.parseStyle(formObj.style.value);
|
286
|
-
|
287
|
-
st['background-color'] = formObj.bgcolor.value;
|
288
|
-
st['border-color'] = formObj.bordercolor.value;
|
289
|
-
|
290
|
-
formObj.style.value = ed.dom.serializeStyle(st);
|
291
|
-
}
|
292
|
-
|
293
|
-
function changedStyle() {
|
294
|
-
var formObj = document.forms[0];
|
295
|
-
var st = ed.dom.parseStyle(formObj.style.value);
|
296
|
-
|
297
|
-
if (st['background-image'])
|
298
|
-
formObj.backgroundimage.value = st['background-image'].replace(new RegExp("url\\('?([^']*)'?\\)", 'gi'), "$1");
|
299
|
-
else
|
300
|
-
formObj.backgroundimage.value = '';
|
301
|
-
|
302
|
-
if (st['width'])
|
303
|
-
formObj.width.value = trimSize(st['width']);
|
304
|
-
|
305
|
-
if (st['height'])
|
306
|
-
formObj.height.value = trimSize(st['height']);
|
307
|
-
|
308
|
-
if (st['background-color']) {
|
309
|
-
formObj.bgcolor.value = st['background-color'];
|
310
|
-
updateColor('bgcolor_pick','bgcolor');
|
311
|
-
}
|
312
|
-
|
313
|
-
if (st['border-color']) {
|
314
|
-
formObj.bordercolor.value = st['border-color'];
|
315
|
-
updateColor('bordercolor_pick','bordercolor');
|
316
|
-
}
|
317
|
-
}
|
318
|
-
|
319
|
-
tinyMCEPopup.onInit.add(init);
|
1
|
+
tinyMCEPopup.requireLangPack();
|
2
|
+
|
3
|
+
var ed;
|
4
|
+
|
5
|
+
function init() {
|
6
|
+
ed = tinyMCEPopup.editor;
|
7
|
+
tinyMCEPopup.resizeToInnerSize();
|
8
|
+
|
9
|
+
document.getElementById('backgroundimagebrowsercontainer').innerHTML = getBrowserHTML('backgroundimagebrowser','backgroundimage','image','table');
|
10
|
+
document.getElementById('bordercolor_pickcontainer').innerHTML = getColorPickerHTML('bordercolor_pick','bordercolor');
|
11
|
+
document.getElementById('bgcolor_pickcontainer').innerHTML = getColorPickerHTML('bgcolor_pick','bgcolor')
|
12
|
+
|
13
|
+
var inst = ed;
|
14
|
+
var tdElm = ed.dom.getParent(ed.selection.getStart(), "td,th");
|
15
|
+
var formObj = document.forms[0];
|
16
|
+
var st = ed.dom.parseStyle(ed.dom.getAttrib(tdElm, "style"));
|
17
|
+
|
18
|
+
// Get table cell data
|
19
|
+
var celltype = tdElm.nodeName.toLowerCase();
|
20
|
+
var align = ed.dom.getAttrib(tdElm, 'align');
|
21
|
+
var valign = ed.dom.getAttrib(tdElm, 'valign');
|
22
|
+
var width = trimSize(getStyle(tdElm, 'width', 'width'));
|
23
|
+
var height = trimSize(getStyle(tdElm, 'height', 'height'));
|
24
|
+
var bordercolor = convertRGBToHex(getStyle(tdElm, 'bordercolor', 'borderLeftColor'));
|
25
|
+
var bgcolor = convertRGBToHex(getStyle(tdElm, 'bgcolor', 'backgroundColor'));
|
26
|
+
var className = ed.dom.getAttrib(tdElm, 'class');
|
27
|
+
var backgroundimage = getStyle(tdElm, 'background', 'backgroundImage').replace(new RegExp("url\\(['\"]?([^'\"]*)['\"]?\\)", 'gi'), "$1");
|
28
|
+
var id = ed.dom.getAttrib(tdElm, 'id');
|
29
|
+
var lang = ed.dom.getAttrib(tdElm, 'lang');
|
30
|
+
var dir = ed.dom.getAttrib(tdElm, 'dir');
|
31
|
+
var scope = ed.dom.getAttrib(tdElm, 'scope');
|
32
|
+
|
33
|
+
// Setup form
|
34
|
+
addClassesToList('class', 'table_cell_styles');
|
35
|
+
TinyMCE_EditableSelects.init();
|
36
|
+
|
37
|
+
if (!ed.dom.hasClass(tdElm, 'mceSelected')) {
|
38
|
+
formObj.bordercolor.value = bordercolor;
|
39
|
+
formObj.bgcolor.value = bgcolor;
|
40
|
+
formObj.backgroundimage.value = backgroundimage;
|
41
|
+
formObj.width.value = width;
|
42
|
+
formObj.height.value = height;
|
43
|
+
formObj.id.value = id;
|
44
|
+
formObj.lang.value = lang;
|
45
|
+
formObj.style.value = ed.dom.serializeStyle(st);
|
46
|
+
selectByValue(formObj, 'align', align);
|
47
|
+
selectByValue(formObj, 'valign', valign);
|
48
|
+
selectByValue(formObj, 'class', className, true, true);
|
49
|
+
selectByValue(formObj, 'celltype', celltype);
|
50
|
+
selectByValue(formObj, 'dir', dir);
|
51
|
+
selectByValue(formObj, 'scope', scope);
|
52
|
+
|
53
|
+
// Resize some elements
|
54
|
+
if (isVisible('backgroundimagebrowser'))
|
55
|
+
document.getElementById('backgroundimage').style.width = '180px';
|
56
|
+
|
57
|
+
updateColor('bordercolor_pick', 'bordercolor');
|
58
|
+
updateColor('bgcolor_pick', 'bgcolor');
|
59
|
+
} else
|
60
|
+
tinyMCEPopup.dom.hide('action');
|
61
|
+
}
|
62
|
+
|
63
|
+
function updateAction() {
|
64
|
+
var el, inst = ed, tdElm, trElm, tableElm, formObj = document.forms[0];
|
65
|
+
|
66
|
+
if (!AutoValidator.validate(formObj)) {
|
67
|
+
tinyMCEPopup.alert(AutoValidator.getErrorMessages(formObj).join('. ') + '.');
|
68
|
+
return false;
|
69
|
+
}
|
70
|
+
|
71
|
+
tinyMCEPopup.restoreSelection();
|
72
|
+
el = ed.selection.getStart();
|
73
|
+
tdElm = ed.dom.getParent(el, "td,th");
|
74
|
+
trElm = ed.dom.getParent(el, "tr");
|
75
|
+
tableElm = ed.dom.getParent(el, "table");
|
76
|
+
|
77
|
+
// Cell is selected
|
78
|
+
if (ed.dom.hasClass(tdElm, 'mceSelected')) {
|
79
|
+
// Update all selected sells
|
80
|
+
tinymce.each(ed.dom.select('td.mceSelected,th.mceSelected'), function(td) {
|
81
|
+
updateCell(td);
|
82
|
+
});
|
83
|
+
|
84
|
+
ed.addVisual();
|
85
|
+
ed.nodeChanged();
|
86
|
+
inst.execCommand('mceEndUndoLevel');
|
87
|
+
tinyMCEPopup.close();
|
88
|
+
return;
|
89
|
+
}
|
90
|
+
|
91
|
+
switch (getSelectValue(formObj, 'action')) {
|
92
|
+
case "cell":
|
93
|
+
var celltype = getSelectValue(formObj, 'celltype');
|
94
|
+
var scope = getSelectValue(formObj, 'scope');
|
95
|
+
|
96
|
+
function doUpdate(s) {
|
97
|
+
if (s) {
|
98
|
+
updateCell(tdElm);
|
99
|
+
|
100
|
+
ed.addVisual();
|
101
|
+
ed.nodeChanged();
|
102
|
+
inst.execCommand('mceEndUndoLevel');
|
103
|
+
tinyMCEPopup.close();
|
104
|
+
}
|
105
|
+
};
|
106
|
+
|
107
|
+
if (ed.getParam("accessibility_warnings", 1)) {
|
108
|
+
if (celltype == "th" && scope == "")
|
109
|
+
tinyMCEPopup.confirm(ed.getLang('table_dlg.missing_scope', '', true), doUpdate);
|
110
|
+
else
|
111
|
+
doUpdate(1);
|
112
|
+
|
113
|
+
return;
|
114
|
+
}
|
115
|
+
|
116
|
+
updateCell(tdElm);
|
117
|
+
break;
|
118
|
+
|
119
|
+
case "row":
|
120
|
+
var cell = trElm.firstChild;
|
121
|
+
|
122
|
+
if (cell.nodeName != "TD" && cell.nodeName != "TH")
|
123
|
+
cell = nextCell(cell);
|
124
|
+
|
125
|
+
do {
|
126
|
+
cell = updateCell(cell, true);
|
127
|
+
} while ((cell = nextCell(cell)) != null);
|
128
|
+
|
129
|
+
break;
|
130
|
+
|
131
|
+
case "col":
|
132
|
+
var curr, col = 0, cell = trElm.firstChild, rows = tableElm.getElementsByTagName("tr");
|
133
|
+
|
134
|
+
if (cell.nodeName != "TD" && cell.nodeName != "TH")
|
135
|
+
cell = nextCell(cell);
|
136
|
+
|
137
|
+
do {
|
138
|
+
if (cell == tdElm)
|
139
|
+
break;
|
140
|
+
col += cell.getAttribute("colspan")?cell.getAttribute("colspan"):1;
|
141
|
+
} while ((cell = nextCell(cell)) != null);
|
142
|
+
|
143
|
+
for (var i=0; i<rows.length; i++) {
|
144
|
+
cell = rows[i].firstChild;
|
145
|
+
|
146
|
+
if (cell.nodeName != "TD" && cell.nodeName != "TH")
|
147
|
+
cell = nextCell(cell);
|
148
|
+
|
149
|
+
curr = 0;
|
150
|
+
do {
|
151
|
+
if (curr == col) {
|
152
|
+
cell = updateCell(cell, true);
|
153
|
+
break;
|
154
|
+
}
|
155
|
+
curr += cell.getAttribute("colspan")?cell.getAttribute("colspan"):1;
|
156
|
+
} while ((cell = nextCell(cell)) != null);
|
157
|
+
}
|
158
|
+
|
159
|
+
break;
|
160
|
+
|
161
|
+
case "all":
|
162
|
+
var rows = tableElm.getElementsByTagName("tr");
|
163
|
+
|
164
|
+
for (var i=0; i<rows.length; i++) {
|
165
|
+
var cell = rows[i].firstChild;
|
166
|
+
|
167
|
+
if (cell.nodeName != "TD" && cell.nodeName != "TH")
|
168
|
+
cell = nextCell(cell);
|
169
|
+
|
170
|
+
do {
|
171
|
+
cell = updateCell(cell, true);
|
172
|
+
} while ((cell = nextCell(cell)) != null);
|
173
|
+
}
|
174
|
+
|
175
|
+
break;
|
176
|
+
}
|
177
|
+
|
178
|
+
ed.addVisual();
|
179
|
+
ed.nodeChanged();
|
180
|
+
inst.execCommand('mceEndUndoLevel');
|
181
|
+
tinyMCEPopup.close();
|
182
|
+
}
|
183
|
+
|
184
|
+
function nextCell(elm) {
|
185
|
+
while ((elm = elm.nextSibling) != null) {
|
186
|
+
if (elm.nodeName == "TD" || elm.nodeName == "TH")
|
187
|
+
return elm;
|
188
|
+
}
|
189
|
+
|
190
|
+
return null;
|
191
|
+
}
|
192
|
+
|
193
|
+
function updateCell(td, skip_id) {
|
194
|
+
var inst = ed;
|
195
|
+
var formObj = document.forms[0];
|
196
|
+
var curCellType = td.nodeName.toLowerCase();
|
197
|
+
var celltype = getSelectValue(formObj, 'celltype');
|
198
|
+
var doc = inst.getDoc();
|
199
|
+
var dom = ed.dom;
|
200
|
+
|
201
|
+
if (!skip_id)
|
202
|
+
dom.setAttrib(td, 'id', formObj.id.value);
|
203
|
+
|
204
|
+
dom.setAttrib(td, 'align', formObj.align.value);
|
205
|
+
dom.setAttrib(td, 'vAlign', formObj.valign.value);
|
206
|
+
dom.setAttrib(td, 'lang', formObj.lang.value);
|
207
|
+
dom.setAttrib(td, 'dir', getSelectValue(formObj, 'dir'));
|
208
|
+
dom.setAttrib(td, 'style', ed.dom.serializeStyle(ed.dom.parseStyle(formObj.style.value)));
|
209
|
+
dom.setAttrib(td, 'scope', formObj.scope.value);
|
210
|
+
dom.setAttrib(td, 'class', getSelectValue(formObj, 'class'));
|
211
|
+
|
212
|
+
// Clear deprecated attributes
|
213
|
+
ed.dom.setAttrib(td, 'width', '');
|
214
|
+
ed.dom.setAttrib(td, 'height', '');
|
215
|
+
ed.dom.setAttrib(td, 'bgColor', '');
|
216
|
+
ed.dom.setAttrib(td, 'borderColor', '');
|
217
|
+
ed.dom.setAttrib(td, 'background', '');
|
218
|
+
|
219
|
+
// Set styles
|
220
|
+
td.style.width = getCSSSize(formObj.width.value);
|
221
|
+
td.style.height = getCSSSize(formObj.height.value);
|
222
|
+
if (formObj.bordercolor.value != "") {
|
223
|
+
td.style.borderColor = formObj.bordercolor.value;
|
224
|
+
td.style.borderStyle = td.style.borderStyle == "" ? "solid" : td.style.borderStyle;
|
225
|
+
td.style.borderWidth = td.style.borderWidth == "" ? "1px" : td.style.borderWidth;
|
226
|
+
} else
|
227
|
+
td.style.borderColor = '';
|
228
|
+
|
229
|
+
td.style.backgroundColor = formObj.bgcolor.value;
|
230
|
+
|
231
|
+
if (formObj.backgroundimage.value != "")
|
232
|
+
td.style.backgroundImage = "url('" + formObj.backgroundimage.value + "')";
|
233
|
+
else
|
234
|
+
td.style.backgroundImage = '';
|
235
|
+
|
236
|
+
if (curCellType != celltype) {
|
237
|
+
// changing to a different node type
|
238
|
+
var newCell = doc.createElement(celltype);
|
239
|
+
|
240
|
+
for (var c=0; c<td.childNodes.length; c++)
|
241
|
+
newCell.appendChild(td.childNodes[c].cloneNode(1));
|
242
|
+
|
243
|
+
for (var a=0; a<td.attributes.length; a++)
|
244
|
+
ed.dom.setAttrib(newCell, td.attributes[a].name, ed.dom.getAttrib(td, td.attributes[a].name));
|
245
|
+
|
246
|
+
td.parentNode.replaceChild(newCell, td);
|
247
|
+
td = newCell;
|
248
|
+
}
|
249
|
+
|
250
|
+
dom.setAttrib(td, 'style', dom.serializeStyle(dom.parseStyle(td.style.cssText)));
|
251
|
+
|
252
|
+
return td;
|
253
|
+
}
|
254
|
+
|
255
|
+
function changedBackgroundImage() {
|
256
|
+
var formObj = document.forms[0];
|
257
|
+
var st = ed.dom.parseStyle(formObj.style.value);
|
258
|
+
|
259
|
+
st['background-image'] = "url('" + formObj.backgroundimage.value + "')";
|
260
|
+
|
261
|
+
formObj.style.value = ed.dom.serializeStyle(st);
|
262
|
+
}
|
263
|
+
|
264
|
+
function changedSize() {
|
265
|
+
var formObj = document.forms[0];
|
266
|
+
var st = ed.dom.parseStyle(formObj.style.value);
|
267
|
+
|
268
|
+
var width = formObj.width.value;
|
269
|
+
if (width != "")
|
270
|
+
st['width'] = getCSSSize(width);
|
271
|
+
else
|
272
|
+
st['width'] = "";
|
273
|
+
|
274
|
+
var height = formObj.height.value;
|
275
|
+
if (height != "")
|
276
|
+
st['height'] = getCSSSize(height);
|
277
|
+
else
|
278
|
+
st['height'] = "";
|
279
|
+
|
280
|
+
formObj.style.value = ed.dom.serializeStyle(st);
|
281
|
+
}
|
282
|
+
|
283
|
+
function changedColor() {
|
284
|
+
var formObj = document.forms[0];
|
285
|
+
var st = ed.dom.parseStyle(formObj.style.value);
|
286
|
+
|
287
|
+
st['background-color'] = formObj.bgcolor.value;
|
288
|
+
st['border-color'] = formObj.bordercolor.value;
|
289
|
+
|
290
|
+
formObj.style.value = ed.dom.serializeStyle(st);
|
291
|
+
}
|
292
|
+
|
293
|
+
function changedStyle() {
|
294
|
+
var formObj = document.forms[0];
|
295
|
+
var st = ed.dom.parseStyle(formObj.style.value);
|
296
|
+
|
297
|
+
if (st['background-image'])
|
298
|
+
formObj.backgroundimage.value = st['background-image'].replace(new RegExp("url\\('?([^']*)'?\\)", 'gi'), "$1");
|
299
|
+
else
|
300
|
+
formObj.backgroundimage.value = '';
|
301
|
+
|
302
|
+
if (st['width'])
|
303
|
+
formObj.width.value = trimSize(st['width']);
|
304
|
+
|
305
|
+
if (st['height'])
|
306
|
+
formObj.height.value = trimSize(st['height']);
|
307
|
+
|
308
|
+
if (st['background-color']) {
|
309
|
+
formObj.bgcolor.value = st['background-color'];
|
310
|
+
updateColor('bgcolor_pick','bgcolor');
|
311
|
+
}
|
312
|
+
|
313
|
+
if (st['border-color']) {
|
314
|
+
formObj.bordercolor.value = st['border-color'];
|
315
|
+
updateColor('bordercolor_pick','bordercolor');
|
316
|
+
}
|
317
|
+
}
|
318
|
+
|
319
|
+
tinyMCEPopup.onInit.add(init);
|