plugin.min.js 2.9 KB

1
  1. tinymce.PluginManager.add("layer",function(e){function t(e){do{if(e.className&&e.className.indexOf("mceItemLayer")!=-1){return e}}while(e=e.parentNode)}function o(t){var o=e.dom;tinymce.each(o.select("div,p",t),function(e){if(/^(absolute|relative|fixed)$/i.test(e.style.position)){if(e.hasVisual){o.addClass(e,"mceItemVisualAid")}else{o.removeClass(e,"mceItemVisualAid")}o.addClass(e,"mceItemLayer")}})}function i(o){var i,d=[],n=t(e.selection.getNode()),a=-1,s=-1,l;l=[];tinymce.walk(e.getBody(),function(e){if(e.nodeType==1&&/^(absolute|relative|static)$/i.test(e.style.position)){l.push(e)}},"childNodes");for(i=0;i<l.length;i++){d[i]=l[i].style.zIndex?parseInt(l[i].style.zIndex,10):0;if(a<0&&l[i]==n){a=i}}if(o<0){for(i=0;i<d.length;i++){if(d[i]<d[a]){s=i;break}}if(s>-1){l[a].style.zIndex=d[s];l[s].style.zIndex=d[a]}else{if(d[a]>0){l[a].style.zIndex=d[a]-1}}}else{for(i=0;i<d.length;i++){if(d[i]>d[a]){s=i;break}}if(s>-1){l[a].style.zIndex=d[s];l[s].style.zIndex=d[a]}else{l[a].style.zIndex=d[a]+1}}e.execCommand("mceRepaint")}function d(){var t=e.dom,o=t.getPos(t.getParent(e.selection.getNode(),"*"));var i=e.getBody();e.dom.add(i,"div",{style:{position:"absolute",left:o.x,top:o.y>20?o.y:20,width:100,height:100},class:"mceItemVisualAid mceItemLayer"},e.selection.getContent()||e.getLang("layer.content"));if(tinymce.Env.ie){t.setHTML(i,i.innerHTML)}}function n(){var o=t(e.selection.getNode());if(!o){o=e.dom.getParent(e.selection.getNode(),"DIV,P,IMG")}if(o){if(o.style.position.toLowerCase()=="absolute"){e.dom.setStyles(o,{position:"",left:"",top:"",width:"",height:""});e.dom.removeClass(o,"mceItemVisualAid");e.dom.removeClass(o,"mceItemLayer")}else{if(!o.style.left){o.style.left=20+"px"}if(!o.style.top){o.style.top=20+"px"}if(!o.style.width){o.style.width=o.width?o.width+"px":"100px"}if(!o.style.height){o.style.height=o.height?o.height+"px":"100px"}o.style.position="absolute";e.dom.setAttrib(o,"data-mce-style","");e.addVisual(e.getBody())}e.execCommand("mceRepaint");e.nodeChanged()}}e.addCommand("mceInsertLayer",d);e.addCommand("mceMoveForward",function(){i(1)});e.addCommand("mceMoveBackward",function(){i(-1)});e.addCommand("mceMakeAbsolute",function(){n()});e.addButton("moveforward",{title:"layer.forward_desc",cmd:"mceMoveForward"});e.addButton("movebackward",{title:"layer.backward_desc",cmd:"mceMoveBackward"});e.addButton("absolute",{title:"layer.absolute_desc",cmd:"mceMakeAbsolute"});e.addButton("insertlayer",{title:"layer.insertlayer_desc",cmd:"mceInsertLayer"});e.on("init",function(){if(tinymce.Env.ie){e.getDoc().execCommand("2D-Position",false,true)}});e.on("mouseup",function(o){var i=t(o.target);if(i){e.dom.setAttrib(i,"data-mce-style","")}});e.on("mousedown",function(o){var i=o.target,d=e.getDoc(),n;if(tinymce.Env.gecko){if(t(i)){if(d.designMode!=="on"){d.designMode="on";i=d.body;n=i.parentNode;n.removeChild(i);n.appendChild(i)}}else if(d.designMode=="on"){d.designMode="off"}}});e.on("NodeChange",o)});