Current Directory: /home/astoriaah/www/components/com_jce/editor/tiny_mce/plugins/templatemanager
Viewing File: /home/astoriaah/www/components/com_jce/editor/tiny_mce/plugins/templatemanager/editor_plugin.js
/* jce - 2.9.24 | 2022-05-27 | https://www.joomlacontenteditor.net | Copyright (C) 2006 - 2022 Ryan Demmer. All rights reserved | GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html */
!function(){function dataToHtml(data){var frag=new DomParser({validate:!1,root_name:"#document"}).parse(data),body=frag.getAll("body")[0]||frag,html=new HtmlSerializer({validate:!1}).serialize(body);return html}function createClassSelector(values){values=values.trim();var classes=tinymce.map(values.split(" "),function(cls){if(cls)return"."+cls});return classes.join(",")}var each=tinymce.each,DomParser=tinymce.html.DomParser,HtmlSerializer=tinymce.html.Serializer,XHR=tinymce.util.XHR,Uuid=tinymce.util.Uuid,fontIconRe=/<([a-z0-9]+)([^>]+)class="([^"]*)(glyph|uk-)?(fa|icon)-([\w-]+)([^"]*)"([^>]*)>( |\u00a0)?<\/\1>/gi;tinymce.create("tinymce.plugins.TemplatePlugin",{init:function(ed,url){function isEmpty(){var content=ed.getContent();return""==content||"<p> </p>"==content}var self=this;self.editor=ed,self.contentLoaded=!1,this.params=ed.getParam("templatemanager",{}),ed.addCommand("mceTemplate",function(ui){ed.windowManager.open({file:ed.getParam("site_url")+"index.php?option=com_jce&task=plugin.display&plugin=templatemanager",size:"mce-modal-landscape-xxlarge"},{plugin_url:url})}),ed.onInit.add(function(){ed.plugins.contextmenu&&ed.plugins.contextmenu.onContextMenu.add(function(th,m,e){m.add({title:"templatemanager.desc",icon:"templatemanager",cmd:"mceTemplate"})})}),ed.addCommand("mceInsertTemplate",function(ui,o){var html=self._processContent(o.content);return self._insertTemplate(html)}),this.params.list||ed.addButton("templatemanager",{title:"templatemanager.desc",cmd:"mceTemplate"}),ed.onPreProcess.add(function(ed,o){var dom=ed.dom;dom.remove(dom.select("div.mceTmpl",o.node),1);var mdate_classes=self.params.mdate_classes||"mdate modifieddate",mdate_format=self.params.mdate_format||ed.getLang("templatemanager.mdate_format"),classes=createClassSelector(mdate_classes);each(dom.select(classes,o.node),function(elm){elm.innerHTML=self._getDateTime(new Date,mdate_format)})});var content_url=self.params.content_url||"";content_url&&ed.onInit.add(function(){!self.contentLoaded&&isEmpty()&&(/http(s)?:\/\//.test(content_url)||(ed.setProgressState(!0),XHR.send({url:ed.settings.document_base_url+"/"+content_url,success:function(value){var html=dataToHtml(value);html&&ed.execCommand("mceInsertTemplate",!1,{content:html}),ed.setProgressState(!1),self.contentLoaded=!0},error:function(e){ed.setProgressState(!1),self.contentLoaded=!0}})))})},_processContent:function(html){var el,self=this,ed=self.editor,dom=ed.dom,params=this.params,replace_values=params.replace_values||{};each(replace_values,function(v,k){"function"!=typeof v&&(html=html.replace(new RegExp("\\{\\$"+k+"\\}","g"),v))}),el=dom.create("div",null,html),dom.remove(dom.select("div.mceTmpl",el),1);var cdate_classes=params.cdate_classes||"cdate creationdate",cdate_format=params.cdate_format||ed.getLang("templatemanager.cdate_format"),mdate_classes=params.mdate_classes||"mdate modifieddate",mdate_format=params.mdate_format||ed.getLang("templatemanager.mdate_format"),selected_content_classes=params.selected_content_classes||"selcontent",selection=ed.selection.getContent(),cdate_selector=createClassSelector(cdate_classes),mdate_selector=createClassSelector(mdate_classes),selected_content_selector=createClassSelector(selected_content_classes);return each(dom.select(cdate_selector,el),function(elm){elm.innerHTML=self._getDateTime(new Date,cdate_format)}),each(dom.select(mdate_selector,el),function(elm){elm.innerHTML=self._getDateTime(new Date,mdate_format)}),each(dom.select(selected_content_selector,el),function(elm){elm.innerHTML=selection}),el.innerHTML},_insertTemplate:function(html){function insertAndUpdate(content){ed.execCommand("mceInsertContent",!1,content),ed.settings.verify_html===!1&&(ed.settings.validate=!1),ed.addVisual()}var self=this,ed=self.editor;ed.settings.validate===!1&&(ed.settings.validate=!0),html=html.replace(fontIconRe,'<$1$2class="$3$4$5-$6$7"$8> </$1>'),html=html.replace(/<(a|i|span)([^>]+)><\/\1>/gi,"<$1$2> </$1>");var values=html.match(/\{\$([^\}]+?)\}/g);if(values){var cm=ed.controlManager,form=cm.createForm("templatemanager_form");form.empty(),each(values,function(key){key=key.replace(/\{\$([^\}]+?)\}/,"$1"),form.add(cm.createTextBox("templatemanager_form_"+key,{label:ed.getLang(key,key),name:key}))}),ed.windowManager.open({title:ed.getLang("templatemanager.values","Values"),items:[form],size:"mce-modal-landscape-small",open:function(){window.setTimeout(function(){form.controls[0].focus()},10)},buttons:[{title:ed.getLang("cancel","Cancel"),id:"cancel"},{title:ed.getLang("insert","Insert"),id:"insert",onsubmit:function(e){var data=form.submit();each(data,function(value,key){if(""==value)return!0;var div=ed.dom.create("div",{},value);value=div.textContent,html=html.replace(new RegExp("\\{\\$"+key+"\\}","g"),value)}),insertAndUpdate(html)},classes:"primary",scope:self}]})}else insertAndUpdate(html)},_getDateTime:function(d,fmt){function addZeros(value,len){var i;if(value=""+value,value.length<len)for(i=0;i<len-value.length;i++)value="0"+value;return value}var ed=this.editor;return fmt?(fmt=fmt.replace("%D","%m/%d/%y"),fmt=fmt.replace("%r","%I:%M:%S %p"),fmt=fmt.replace("%Y",""+d.getFullYear()),fmt=fmt.replace("%y",""+d.getYear()),fmt=fmt.replace("%m",addZeros(d.getMonth()+1,2)),fmt=fmt.replace("%d",addZeros(d.getDate(),2)),fmt=fmt.replace("%H",""+addZeros(d.getHours(),2)),fmt=fmt.replace("%M",""+addZeros(d.getMinutes(),2)),fmt=fmt.replace("%S",""+addZeros(d.getSeconds(),2)),fmt=fmt.replace("%I",""+((d.getHours()+11)%12+1)),fmt=fmt.replace("%p",""+(d.getHours()<12?"AM":"PM")),fmt=fmt.replace("%B",""+ed.getLang("templatemanager_months_long").split(",")[d.getMonth()]),fmt=fmt.replace("%b",""+ed.getLang("templatemanager_months_short").split(",")[d.getMonth()]),fmt=fmt.replace("%A",""+ed.getLang("templatemanager_day_long").split(",")[d.getDay()]),fmt=fmt.replace("%a",""+ed.getLang("templatemanager_day_short").split(",")[d.getDay()]),fmt=fmt.replace("%%","%")):""},createControl:function(name,cm){function getTemplateList(editor){return new Promise(function(resolve,reject){var args={id:Uuid.uuid("wf_"),method:"getTemplateList",params:[]};tinymce.util.XHR.send({url:editor.getParam("site_url")+"index.php?option=com_jce&task=plugin.rpc&plugin=templatemanager&"+editor.settings.query,data:"json="+JSON.stringify(args),content_type:"application/x-www-form-urlencoded",success:function(response){var data="";try{data=JSON.parse(response)}catch(e){reject()}data.result||reject(),data.result.error&&reject();var result=tinymce.is(data.result,"object")?data.result:{};if("string"==typeof data.result)try{result=JSON.parse(data.result)}catch(e){return reject()}resolve(result)},error:function(err,xhr){return reject()}})})}var btn,self=this,ed=self.editor;if("templatemanager"==name&&this.params.list){var onSelectTemplate=function(value){/\.(html|html|txt|md)$/i.test(value)?(ed.setProgressState(!0),XHR.send({url:value,success:function(val){var html=dataToHtml(val);html&&(ed.execCommand("mceInsertTemplate",!1,{content:html}),ed.setProgressState(!1))}})):ed.execCommand("mceInsertTemplate",!1,{content:value})},btn=cm.createSplitButton("templatemanager",{title:"templatemanager.desc",cmd:"mceTemplate",class:"mce_templatemanager"});return btn.onRenderMenu.add(function(btn,menu){var loader=menu.add({id:ed.dom.uniqueId(),title:ed.getLang("dlg.message_load")});getTemplateList(ed).then(function(templateData){loader.remove(),each(templateData,function(value,name){"string"==typeof value&&(value={data:value,image:""});var item=menu.add({id:ed.dom.uniqueId(),title:name,image:value.image,onclick:function(e){return item.setSelected(!1),onSelectTemplate(value.data),!1}})})},function(){})}),btn}},insertUploadedFile:function(o){var ed=this.editor,data=this.getUploadConfig();if(data&&data.filetypes&&new RegExp(".("+data.filetypes.join("|")+")$","i").test(o.name)){if(o.data){var html=dataToHtml(o.data);html&&ed.execCommand("mceInsertTemplate",!1,{content:html})}return!0}return!1},getUploadURL:function(file){var ed=this.editor,data=this.getUploadConfig();return!!(data&&data.filetypes&&new RegExp(".("+data.filetypes.join("|")+")$","i").test(file.name))&&ed.getParam("site_url")+"index.php?option=com_jce&task=plugin.display&plugin=templatemanager"},getUploadConfig:function(){return this.params.upload||{}}}),tinymce.PluginManager.add("templatemanager",tinymce.plugins.TemplatePlugin)}();