var CmsMailEngine = (function() { function CmsMailEngine(){ var _this = this; _this.oTable = new CTable("data"); _this.oTable.loadTableData(); } CmsMailEngine.prototype.oTinyMceController = {}; // Save blank data callback function CBlank.prototype.saveBlankViewCallback = function(d){ var _this = this; if($.isDefined(d.jsonok) && $.isDefined(d.reloadList) && d.reloadList){ CBase.message.hide(); if(_this.isModiffied){ CBase.oTable.filterTableData(true); }else{ CBase.oTable.show(); } } }; // Ajax load view call back on object append - if needed then to rewrite CBlank.prototype.viewCallbackAfterAppend = function(jqObj){ //var _this = this; var vAdditionalCfg = { convert_urls : false, relative_urls : true, remove_script_host : false, valid_elements: 'p[*],strong,em,span[*],a[href|class|*],ul,ol,li,img[*],div[*|class],br,h1[*],b[*],li[style],table[*],tr[*],td[*],', valid_styles: {'*': 'position,float,right,top,cursor,display,box-sizing,border-radius,box-shadow,font-size,text-decoration,text-align,padding,padding-left,margin,margin-bottom,height,min-height,font-family,font-weight,color,width,background,background-color,padding-top,max-width'}, valid_children: "+a[div|span|img],+div[figure],+span[img]", extended_valid_elements:"style,link[href|rel],meta[name|content]", custom_elements:"style,link,~link,meta" }; CBase.jsModule.oTinyMceController = new TinyMceController(jqObj, vAdditionalCfg); }; // Rewrite CTable object callback CTable.prototype.tableObjectCallback = function(oTable, o){ var _this = this; oTable.find("a#lsend, a#qsenddx").click(function(){ _this.sendAjaxAction('send', _this.getSelectedTableRows(this), function(){ _this.filterTableData(true); }); }); oTable.find("a#inewmail").click(function(){ _this.loadRecord(true); }); oTable.find("a#istopall").click(function(){ CBase.jsModule.sendTableAjaxAction("istopall"); }); oTable.find("a#iresumeall").click(function(){ CBase.jsModule.sendTableAjaxAction("iresumeall"); }); // Update cron timer if(_this.headers){ let nCallObj = _this.jqTable.find(".nCall span"); if(nCallObj.length){ CBase.jsModule.timeOut = 1000; CBase.jsModule.nCall = parseInt(nCallObj.attr("id")); CBase.jsModule.startExpTimer(); } } }; // Rewrite CBase form callback CBlank.prototype.viewCallback = function(obj, d){ var _this = this; obj.find("#settings, #userlinks").click(function(){ var oCnt = $(this).parent().next(); var noskip = oCnt.hasClass("noskip") ? true : false; if(oCnt.is(":visible")){ $(this).addClass("show").removeClass("hide"); oCnt.stop(true, true).fadeOut("fast", function(){ CBase.resizeLeftMenu(true); if(!noskip) oCnt.find("input").addClass("skip"); }); }else{ $(this).addClass("hide").removeClass("show"); oCnt.stop(true, true).fadeIn("fast", function(){ CBase.resizeLeftMenu(true); if(!noskip) oCnt.find("input").removeClass("skip"); }); } }); this.oBtnPan.find("#fcancel").click(function(){ CBase.message.hide(); if(_this.isModiffied){ CBase.oTable.filterTableData(true); }else{ CBase.oTable.show(); } }); this.oBtnPan.find("#fsave").click(function(){ _this.saveBlankView(); }); if(d && d.vMailTypeData && d.iDefLang) { _this.vMailTypeData = d.vMailTypeData; // Select first type from box var itype = obj.find("#selMailType").val(); if(itype && _this.vMailTypeData[itype]){ for(var x in _this.vMailTypeData[itype]){ obj.find("textarea#WYSIWYG-" + x).html(_this.vMailTypeData[itype][x].mail_data); obj.find("input#title-" + x).val(_this.vMailTypeData[itype][x].mail_title); } } obj.find("#selMailType").change(function () { var itype = $(this).val(); if(itype && _this.vMailTypeData[itype]){ for(var x in _this.vMailTypeData[itype]){ obj.find("textarea#WYSIWYG-" + x).val(_this.vMailTypeData[itype][x].mail_data); tinymce.get("WYSIWYG-" + x).setContent(_this.vMailTypeData[itype][x].mail_data, {format: 'html'}); obj.find("input#title-" + x).val(_this.vMailTypeData[itype][x].mail_title); } }else{ // Clear data $("#translations > div input:text").val(""); $("#translations > div textarea.tinymce").each(function(){ $(this).val(""); tinymce.get($(this).attr("id")).setContent("", {format: 'html'}); }); } }); obj.find("input[id^='def-html-content-']").change(function () { $(this).closest(".tabs").find("input[id^='def-html-content-']").not($(this)).val("").parent().find(".sw-on").removeClass("sw-on"); }); _this.tabs = new Tabs(obj.find(".tabs")); } obj.find("#newsletter_mails, #system_mails").change(function(){ $(this).closest("#checkboxes").find("#newsletter_mails, #system_mails").not($(this)).val("").parent().find(".sw-on").removeClass("sw-on"); if($(this).val()){ $("input#to").attr("disabled", true).addClass("skip").closest(".validate").removeClass("v-error v-ok").find(".errMsg").remove(); }else{ $("input#to").attr("disabled", false).removeClass("skip"); } }); this.bindBlankActions(obj); }; // Disable all outgoing emails CmsMailEngine.prototype.sendTableAjaxAction = function(key){ CBase.ajax({action : key}, false, function(d){ if(d && d.jsonok){ CBase.oTable.filterTableData(true); if(d.msg){ CBase.message.show(false, true, d.msg); } } }) }; // Recalculate next cron time exec CmsMailEngine.prototype.recalculateTime = function () { let _this = this; let sep = ''; let stime = ''; let itime = _this.nCall; let data = {"day": 86400, "hour": 3600, "minute": 60, "second": 1}; for ($k in data) { $num = Math.floor(itime / data[$k]); itime -= ($num * data[$k]); if ($k !== "day" && $k !== "hour" && ($num + "").length < 2) { $num = "0" + $num; } if ($k === "day") { _this.daysl = $num; } else if ($k === "hour") { } else { stime += ':' + $num + sep; // + (0 && $num>1?"s":""); } } return stime.trim().substring(1); //trim(substr($time, 1)); }; CmsMailEngine.prototype.updateExpTimer = function () { let _this = this; _this.nCall -= _this.timeOut / 1000; $(".nCall span").html(_this.recalculateTime()); _this.startExpTimer(); }; CmsMailEngine.prototype.startExpTimer = function () { let _this = this; if (_this.nCall && _this.nCall - _this.timeOut / 1000 >= 0) { setTimeout(function () { _this.updateExpTimer(); }, _this.timeOut); } else { // Reset timer back to start 2:00 _this.nCall = parseInt($(".nCall span").data("cron-interval")); _this.updateExpTimer(); } }; return CmsMailEngine; })();