plugin.min.js 4.2 KB

1
  1. tinymce.PluginManager.add("template",function(e){var t=tinymce.each;function a(t){return function(){var a=e.settings.templates;if(typeof a=="string"){tinymce.util.XHR.send({url:a,success:function(e){t(tinymce.util.JSON.parse(e))}})}else{t(a)}}}function n(t){var a,n=[],l;if(!t||t.length===0){e.windowManager.alert("No templates defined");return}tinymce.each(t,function(e){n.push({selected:!n.length,text:e.title,value:{url:e.url,content:e.content,description:e.description}})});function r(t){var n=t.control.value();function r(t){if(t.indexOf("<html>")==-1){var n="";tinymce.each(e.contentCSS,function(t){n+='<link type="text/css" rel="stylesheet" href="'+e.documentBaseURI.toAbsolute(t)+'">'});t="<!DOCTYPE html>"+"<html>"+"<head>"+n+"</head>"+"<body>"+t+"</body>"+"</html>"}t=c(t,"template_preview_replace_values");var l=a.find("iframe")[0].getEl().contentWindow.document;l.open();l.write(t);l.close()}if(n.url){tinymce.util.XHR.send({url:n.url,success:function(e){l=e;r(l)}})}else{l=n.content;r(l)}a.find("#description")[0].text(t.control.value().description)}a=e.windowManager.open({title:"Insert template",layout:"flex",direction:"column",align:"stretch",padding:15,spacing:10,items:[{type:"form",flex:0,padding:0,items:[{type:"container",label:"Templates",items:{type:"listbox",label:"Templates",name:"template",values:n,onselect:r}}]},{type:"label",name:"description",label:"Description",text:" "},{type:"iframe",flex:1,border:1}],onsubmit:function(){i(false,l)},width:e.getParam("template_popup_width",600),height:e.getParam("template_popup_height",500)});a.find("listbox")[0].fire("select")}function l(t,a){var n="Sun Mon Tue Wed Thu Fri Sat Sun".split(" ");var l="Sunday Monday Tuesday Wednesday Thursday Friday Saturday Sunday".split(" ");var r="Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec".split(" ");var c="January February March April May June July August September October November December".split(" ");function i(e,t){e=""+e;if(e.length<t){for(var a=0;a<t-e.length;a++){e="0"+e}}return e}a=a||new Date;t=t.replace("%D","%m/%d/%Y");t=t.replace("%r","%I:%M:%S %p");t=t.replace("%Y",""+a.getFullYear());t=t.replace("%y",""+a.getYear());t=t.replace("%m",i(a.getMonth()+1,2));t=t.replace("%d",i(a.getDate(),2));t=t.replace("%H",""+i(a.getHours(),2));t=t.replace("%M",""+i(a.getMinutes(),2));t=t.replace("%S",""+i(a.getSeconds(),2));t=t.replace("%I",""+((a.getHours()+11)%12+1));t=t.replace("%p",""+(a.getHours()<12?"AM":"PM"));t=t.replace("%B",""+e.translate(c[a.getMonth()]));t=t.replace("%b",""+e.translate(r[a.getMonth()]));t=t.replace("%A",""+e.translate(l[a.getDay()]));t=t.replace("%a",""+e.translate(n[a.getDay()]));t=t.replace("%%","%");return t}function r(a){var n=e.dom,l=e.getParam("template_replace_values");t(n.select("*",a),function(e){t(l,function(t,a){if(n.hasClass(e,a)){if(typeof l[a]=="function"){l[a](e)}}})})}function c(a,n){t(e.getParam(n),function(e,t){if(typeof e!="function"){a=a.replace(new RegExp("\\{\\$"+t+"\\}","g"),e)}});return a}function i(a,n){var i,s,o=e.dom,p=e.selection.getContent();n=c(n,"template_replace_values");i=o.create("div",null,n);s=o.select(".mceTmpl",i);if(s&&s.length>0){i=o.create("div",null);i.appendChild(s[0].cloneNode(true))}function m(e,t){return new RegExp("\\b"+t+"\\b","g").test(e.className)}t(o.select("*",i),function(t){if(m(t,e.getParam("template_cdate_classes","cdate").replace(/\s+/g,"|"))){t.innerHTML=l(e.getParam("template_cdate_format",e.getLang("template.cdate_format")))}if(m(t,e.getParam("template_mdate_classes","mdate").replace(/\s+/g,"|"))){t.innerHTML=l(e.getParam("template_mdate_format",e.getLang("template.mdate_format")))}if(m(t,e.getParam("template_selected_content_classes","selcontent").replace(/\s+/g,"|"))){t.innerHTML=p}});r(i);e.execCommand("mceInsertContent",false,i.innerHTML);e.addVisual()}e.addCommand("mceInsertTemplate",i);e.addButton("template",{title:"Insert template",onclick:a(n)});e.addMenuItem("template",{text:"Insert template",onclick:a(n),context:"insert"});e.on("PreProcess",function(a){var n=e.dom;t(n.select("div",a.node),function(a){if(n.hasClass(a,"mceTmpl")){t(n.select("*",a),function(t){if(n.hasClass(t,e.getParam("template_mdate_classes","mdate").replace(/\s+/g,"|"))){t.innerHTML=l(e.getParam("template_mdate_format",e.getLang("template.mdate_format")))}});r(a)}})})});