Plugin Directory

Changeset 1164197


Ignore:
Timestamp:
05/20/2015 02:42:44 PM (11 years ago)
Author:
keksdieb
Message:

Bugfix: additional form data as well as date/time was not sent in emails, occasionally.

Location:
ez-schedule-manager-free/trunk
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • ez-schedule-manager-free/trunk/ajax-admin.php

    r1105145 r1164197  
    9494
    9595function send_ajax($msg) {
    96     //error_log(var_export($msg, true));
    9796    if (is_object($msg) && property_exists($msg, "data")) $msg->data = json_decode($msg->data);
    9897    $ret = json_encode($msg);
    99     //error_log(var_export($ret, true));
    10098
    10199    echo $ret;
  • ez-schedule-manager-free/trunk/backend.min.js

    r1105145 r1164197  
    1 var ezscm_backend=function(a){function d(b){var c=b.find(".option-clone"),d=b.find(".option-item:last"),e=d.data("row"),f=parseInt(e)+1,g=b.data("option_name")+"["+b.data("option_id")+"]";(e||0===e)&&(g+="["+f+"]");var h=[];b.data("inputnames")&&(h=b.data("inputnames").split(","));var i=c.clone().attr("data-row",f).removeClass("hidden option-clone").find("input").each(function(b){var d="[]";"undefined"!=typeof h[b]&&(d="["+h[b]+"]"),a(this).attr("name",g+d)}).end().insertAfter(d);return o(),i}function e(b,c,d){var e=c?b.data:a.parseJSON(b.data),f=b.date_internal||b.date,g=b.e_id,h=b.time_internal||b.time_begin,j=(b.time_end,1==b.private?"private":"public"),k=a(".schedule-entry[data-id='"+g+"']");if(k.length>0){var l=!1;k.hasClass("entry-blocked")||(l=!0),k.removeAttr("data-action data-id").removeClass("entry-free entry-public entry-private entry-selected").find("span").text(""),l&&k.addClass("entry-free")}var m=d?"":"entry-selected",n=a(".schedule-entry[data-date='"+f+"'][data-time='"+h+"']");n.removeClass("entry-free entry-public entry-private").addClass(m+" entry-"+j).attr("data-action","get_entry").attr("data-id",g),schedule_options.entry_content_backend.value.length>0&&e[schedule_options.entry_content_backend.value]&&n.find("span").text(e[schedule_options.entry_content_backend.value])}function f(b,c){a(".entry-details").fadeIn("fast"),a(".details-info").html("");var d;b.hasOwnProperty("date_internal")?(a("#ezscm-edit_id").val(-1),b.date_internal=b.date_internal,b.time_internal=b.time_internal,b.data=[],b.date=moment(b.date_internal,"YYYY-MM-DD").format("MM-DD-YYYY"),b.time_begin=moment(b.time_begin,"HH:mm:ss").format(schedule_options.time_format.value),b["private"]=b.private):(a("#ezscm-edit_id").val(b.e_id),d=b.data,b.date_internal=b.date,b.time_internal=b.time_begin,b.date=moment(b.date,"YYYY-MM-DD").format("MM-DD-YYYY"),b.time_begin=moment(b.time_begin,"HH:mm:ss").format(schedule_options.time_format.value),b["private"]=b.private),(!d||d.length<1)&&(d={},a.each(form_elements,function(a,b){var c=b.replace(/\[.+?\]/g,"");d[c]=""})),a.each(b,function(b,c){a("#details-"+b).val(c)}),a.each(form_elements,function(b,c){var e=c.replace(/\[.+?\]/g,""),f=d[e],g="<input type='text' name='data["+e+"]' value='"+f+"' />";c.indexOf("[textarea]")>-1&&(g="<textarea name='data["+e+"]'>"+f+"</textarea>");var h="<p>"+e+"<br>"+g+"</p>";a(".details-info").append(h)}),c&&e(b,c)}function g(b){var d="";a.each(b,function(b,c){d+="<div class='ezscm-entry-single'>",d+="    <div class='button ezscm-entry-header'>";var e=moment(c.date).format(date_format)+" - "+moment(c.time_begin,"HH:mm:ss").format("HH:mm");d+="        <span>"+e+"</span>",d+="    </div>",d+="    <div class='ezscm-entry-data'>",a.each(c,function(a,b){d+="<p>"+a+": "+b+"</p>"}),d+="  </div>",d+="</div>"}),a(".ezscm-entries-wrapper").html(d)}function h(b,c,d){schedule_options=c,form_elements=c.form_elements.value.replace(/(?:\r\n|\r|\n)/g,"").split(","),moment.lang(c.lang_dates.value);var f=[];if(c.time_block){var g=c.time_block.value.split(","),h=[];for(var i in g)h.push(g[i].split("-"));f.push(h)}else f.push([c.time_block_start.value,c.time_block_end.value]);var k=c.days_available.value.split(","),l=c.days_available.s_id;d||(d=moment());var m,n;f.length>0&&(m=moment(f[0],"HH:mm"),n=moment(f[1],"HH:mm"));var p=a.parseJSON(c.closed_days.value),q=moment("08:00","HH:mm"),r=moment("16:00","HH:mm"),s=moment("01:00","HH:mm"),t=q.hour(),u=q.minute(),v=r.hour(),w=r.minute(),x=s.hour(),y=s.minute(),z=60*(v-t),A=w-u,B=Math.ceil((z+A)/(60*x+y)),C="<div class='ezscm-schedule'>",D="";D+="<ul class='schedule-day schedule-day-times schedule-times-main'>",D+="   <li class='schedule-header'></li>";for(var E=moment({hours:t,minute:u}),F=0;B>F;F++)D+="<li class='entry-small'>",D+="  <span>"+E.format(c.time_format.value)+"</span>",D+="</li>",E.add("hours",x).add("minutes",y);D+="</ul>",C+=D;for(var G=7*parseInt(c.show_weeks_amount_backend.value),H=0;G>H;H++){var J,I=!1,K=H-7*Math.floor(H/7);if(H>=7){if(!k[K])continue;J=parseInt(k[K])+H-K,I=k[K]==k[0]}else{if(!k[H])continue;0==k[H]&&(k[H]=7),J=k[H]}I&&(C+="</div><div class='ezscm-schedule'>",C+=D);for(var L=moment(d).startOf("isoweek").isoWeekday(J).hour(t).minute(u),M=moment(d,"YYYY-MM-DD").startOf("isoWeek").isoWeekday(J),N=moment(d,"YYYY-MM-DD").startOf("isoweek").isoWeekday(J).format("YYYY-MM-DD"),O=moment(d,"YYYY-MM-DD").startOf("isoweek").isoWeekday(J).format("MM-DD-YYYY"),P=moment(d,"YYYY-MM-DD").isoWeekday(J).format("dddd"),Q=!1,R=0;R<p.length;R++){var S=moment(p[R].from,"YYYY-MM-DD"),T=moment(p[R].to,"YYYY-MM-DD");(M.isAfter(S)&&M.isBefore(T)||M.isSame(S)||M.isSame(T))&&(Q=!0)}C+="<ul class='schedule-day'>",C+=" <li class='schedule-header'>"+P+"<br>"+O+"</li>";for(var U=0;B>U;U++){var V,W=L.format("HH:mm:ss");if(Q)V="entry-blocked";else{V="entry-free";for(var X=0;X<f.length;X++){var m=moment(N+" "+f[X][0]),n=moment(N+" "+f[X][1]);if((L.isAfter(m)||L.isSame(m))&&L.isBefore(n)){V="entry-blocked";break}}}C+="<li class='schedule-entry "+V+"' data-date='"+N+"' data-time='"+W+"' data-s_id='"+l+"'>",C+="    <span></span>",C+="</li>",L.add("hours",x).add("minutes",y)}C+="</ul>"}a(".ezscm-schedule-wrapper").html(C);for(var Y=0;Y<b.length;Y++)e(b[Y],!1,!0);a(".ezscm-wrapper, .name-wrapper").removeClass("hidden"),a(".ezscm-option-button, .ezscm-option-save").data("id",l),a("#ezscm_shortcode").val("[ezscm id='"+l+"' /]");var Z=moment(d).subtract("days",G).format("YYYY-MM-DD"),$=moment(d).add("days",G).format("YYYY-MM-DD");a(".ezscm-browse-prev").data("week",Z),a(".ezscm-browse-next").data("week",$),j(c)}function i(b){a(".ezscm-schedules-list li.clone").clone().attr("data-id",b).removeClass("clone").appendTo(".ezscm-schedules-list").html("<i class='fa fa-fw fa-list-alt'></i> "+b+" - <span class='schedule-name'>New schedule</span>").fadeIn("fast").click()}function j(b){a.each(b,function(b,c){var e="#opt-"+c.o_id;switch(c.type){case"yesno":case"lang":a(e+" option").removeAttr("selected"),a(e+" option[value='"+c.value+"']").attr("selected","selected");break;case"weekdays":a(e).val(c.value),a(e).siblings(".buttonset").find(".ui-state-active").removeClass("ui-state-active"),a(e).siblings(".buttonset").find(":checked").each(function(){a(this).attr("checked","")});var f=c.value.split(",");if(f.length<1)return;for(var g in f){var h=c.name+"_"+f[g];a("#"+h).attr("checked","checked"),a("label[for='"+h+"']").addClass("ui-state-active")}break;case"datepicker_array":var i=a(e);i.find(".option-item:not(.option-clone)").remove();var f=a.parseJSON(c.value);if(f.length<1)return;a.each(f,function(b,c){var e=d(i);a(e).find(".datepicker-from").val(c.from),a(e).find(".datepicker-to").val(c.to)});default:a(e).val(c.value)}}),n(b),a(".ezscm-wrapper").addClass("hidden"),a(".ezscm-options-schedule-data").removeClass("hidden")}function k(){a(".entry-selected").removeAttr("data-id").removeAttr("data-action").removeClass("entry-private entry-public entry-selected").addClass("entry-free"),a(".entry-details").addClass("hidden")}function l(b){a(".spinner").fadeIn("fast");var c=a(b).data("action"),d=a(b).data("id"),e="action="+c,j=a(".ezscm-schedules-list .button-primary"),l=a(j).data("id");switch(c){case"entry_delete":if(!confirm(ezscm_vars.entry_delete))return!1;d=a(".entry-selected").data("id");break;case"get_entries":a(".ezscm-wrapper, .shortcode-wrapper").addClass("hidden");break;case"get_options":return a(".spinner").hide(),a(".ezscm-options-dialog").dialog("open"),!1;case"get_schedule":a(".ezscm-wrapper, .shortcode-wrapper").addClass("hidden"),a(".ezscm-browse-prev, .ezscm-browse-next").data("id",d);var m=a(b).data("week");m&&(e+="&week="+m);break;case"rename":d=l;var n=a(j).find(".schedule-name").text(),o=prompt("Schedule name",n);if(null==o)return!1;e+="&name="+encodeURIComponent(o);break;case"save_entry":var p=a("#details-date_internal").val(),r=a("#details-time_internal").val(),s=a(".entry-selected").data("id"),t=a(".schedule-entry[data-date='"+p+"'][data-time='"+r+"']");if(t.length>0&&!t.hasClass("entry-free")&&t.data("id")!=s)return q("Entry for "+p+", "+r+" already exists.","ezscm-error"),a(".spinner").fadeOut("fast"),!1;var u=a(".entry-details form").serialize();e+="&"+u;break;case"schedule_clear":if(!confirm(ezscm_vars.schedule_clear))return a(".spinner").fadeOut("fast"),!1;d=l;break;case"schedule_del":if(!confirm(ezscm_vars.schedule_delete))return a(".spinner").fadeOut("fast"),!1;d=l;break;case"update_options":a(".ezscm-settings-type-weekdays").each(function(){var b=[];a(this).siblings(".buttonset").find(":checked").each(function(){b.push(a(this).val())}),a(this).val(b.join(","))});var u=a("#form-options").serialize();e+="&"+u}return d&&(e+="&id="+d),e+="&nonce="+ezscm_nonce,a.ajax({type:"post",url:ajaxurl,data:{action:"ezscm_backend",data:e},success:function(b){if(a(".spinner").fadeOut("fast"),b=a.parseJSON(b),!b)return!1;if(b.error)return q(b.success,"ezscm-error"),!1;switch(b.success&&q(b.success),c){case"add":i(b.id);break;case"entry_delete":k(d);break;case"get_entry":f(b),a(".entry-details").removeClass("hidden");break;case"get_entries":g(b),a(".ezscm-entries-wrapper").removeClass("hidden");break;case"get_schedule":h(b.entries,b.options,m),a(".ezscm-wrapper, .shortcode-wrapper").removeClass("hidden"),a(".entry-details").addClass("hidden");break;case"rename":a(j).find(".schedule-name").text(b);break;case"save_entry":f(b,!0);break;case"schedule_clear":break;case"schedule_del":a(".ezscm-schedules-list .button-primary, .ezscm-wrapper, .entry-details, .shortcode-wrapper").addClass("hidden");break;case"update_options":a(".ezscm-options-dialog").dialog("close"),h(b.entries,b.options,m),a(".ezscm-wrapper").removeClass("hidden")}a(".spinner").fadeOut()}}),!1}function m(){a(".ezscm-browse-pick-dummy").datepicker(a.extend(!0,datepicker_defaults,{dateFormat:"YYYY-MM-DD",showWeek:!0,onSelect:function(b){a(".ezscm-browse-next").data("week",moment(b).format("YYYY-MM-DD")).trigger("click")}})),a(".ezscm-browse-pick").click(function(){a(".ezscm-browse-pick-dummy").datepicker("show")}),a(".ezscm-settings-type-time").timepicker({step:10,timeFormat:"H:i"}),a(".buttonset").buttonset()}function n(b){a.datepicker.formatDate=function(a,b){return moment(b).format(a)},moment.locale(b.lang_dates.value),datepicker_defaults={changeMonth:!0,changeYear:!0,dateFormat:"MM-DD-YYYY",defaultDate:p("MM-DD-YYYY"),showOtherMonths:!0,selectOtherMonths:!0,showWeek:!0,firstDay:1},a("#details-date").datepicker(a.extend(!0,datepicker_defaults,{onSelect:function(b){var d=moment(b,"MM-DD-YYYY").format(date_format_internal);a("#details-date_internal").val(d)}}));var c=moment("08:00","HH:mm"),d=moment("16:00","HH:mm"),e=moment("01:00","HH:mm"),j=(c.hour(),c.minute(),d.hour(),d.minute(),e.hour()),k=e.minute(),n=Math.floor(60*j+k);a("#details-time_begin").timepicker({minTime:c.format("H:mm"),maxTime:d.format("H:mm"),step:n,timeFormat:function(a){return moment(a).format(schedule_options.time_format.value)}}),a("#details-time_begin").on("change",function(){var b=moment(a(this).val(),schedule_options.time_format.value).format("H:mm:ss");a("#details-time_internal").val(b)}),o()}function o(){a(".datepicker-range-wrapper .option-item:not(.option-clone)").each(function(){var b=this,c=a(this).find(".datepicker-from");c.datepicker(a.extend(!0,datepicker_defaults,{dateFormat:"YYYY-MM-DD",onSelect:function(c){var d=p(c,"YYYY-MM-DD"),e=a(b).find(".datepicker-to"),f=e.val();e.datepicker("option","minDate",d),e.val(f)}}));var d=a(this).find(".datepicker-to");d.datepicker(a.extend(!0,datepicker_defaults,{dateFormat:"YYYY-MM-DD",onSelect:function(c){var d=p(c,"YYYY-MM-DD"),e=a(b).find(".datepicker-from"),f=e.val();e.datepicker("option","maxDate",d),e.val(f)}}))})}function p(a,b){return moment(a,b).toDate()}function q(b,c){c||(c="ezscm-notification"),a(".ezscm-message").html(" - <span class='"+c+"'>"+b+"</span>").slideDown(),setTimeout(function(){a(".ezscm-message").fadeOut()},7500)}a.fx.speeds._default=50,date_format_internal="YYYY-MM-DD",datepicker_defaults={changeMonth:!0,changeYear:!0,dateFormat:date_format_internal,showOtherMonths:!0,selectOtherMonths:!0,showWeek:!0,firstDay:1},m(),a("#tabs").tabs();var b={autoOpen:!1,height:Math.min(800,a(window).height()-200),width:Math.min(1200,a(window).width()-200),modal:!0},c={buttons:{"Update options":function(){a(".ezscm-option-save").click()},Cancel:function(){a(this).dialog("close")}}};a(".ezscm-options-dialog").dialog(a.extend(b,c)),a("body").on("click","[data-action]",function(){l(a(this));var b=a(this).data("selectgroup");return b&&(a(".button-primary[data-selectgroup='"+b+"']").removeClass("button-primary"),a(this).addClass("button-primary")),!1}),a("body").on("click",".ezscm-entry-header",function(){a(this).parents(".ezscm-entry-single").find(".ezscm-entry-data").toggle()}),a("body").on("click",".schedule-entry",function(){if(a(".entry-selected").removeClass("entry-selected"),a(this).addClass("entry-selected"),a(this).hasClass("entry-free")){a(".entry-details").removeClass("hidden");var b=a(this).data("date"),c=a(this).data("time"),d={date_internal:b,date:moment(b).format("MM-DD-YYYY"),is_private:ezscm_vars.yes_no.yes,s_id:a(this).data("s_id"),time_begin:moment(c,"HH:mm:ss").format(schedule_options.time_format.value),time_internal:c};f(d)}else a(".entry-details").addClass("hidden");return!1}),a("body").on("click",".option-add",function(){return d(a(this).parents(".option-wrapper")),m(),!1}),a("body").on("click",".option-remove",function(){return form_changed=!0,a(this).parents(".option-item").remove(),!1})};jQuery(document).ready(function(a){ezscm_backend(a)});
     1var ezscm_backend=function(a){function d(b){var c=b.find(".option-clone"),d=b.find(".option-item:last"),e=d.data("row"),f=parseInt(e)+1,g=b.data("option_name")+"["+b.data("option_id")+"]";(e||0===e)&&(g+="["+f+"]");var h=[];b.data("inputnames")&&(h=b.data("inputnames").split(","));var i=c.clone().attr("data-row",f).removeClass("hidden option-clone").find("input").each(function(b){var d="[]";"undefined"!=typeof h[b]&&(d="["+h[b]+"]"),a(this).attr("name",g+d)}).end().insertAfter(d);return o(),i}function e(b,c,d){var e=c?b.data:a.parseJSON(b.data),f=b.date_internal||b.date,g=b.e_id,h=b.time_internal||b.time_begin,j=(b.time_end,1==b.private?"private":"public"),k=a(".schedule-entry[data-id='"+g+"']");if(k.length>0){var l=!1;k.hasClass("entry-blocked")||(l=!0),k.removeAttr("data-action data-id").removeClass("entry-free entry-public entry-private entry-selected").find("span").text(""),l&&k.addClass("entry-free")}var m=d?"":"entry-selected",n=a(".schedule-entry[data-date='"+f+"'][data-time='"+h+"']");n.removeClass("entry-free entry-public entry-private").addClass(m+" entry-"+j).attr("data-action","get_entry").attr("data-id",g),schedule_options.entry_content_backend.value.length>0&&e[schedule_options.entry_content_backend.value]&&n.find("span").text(e[schedule_options.entry_content_backend.value])}function f(b,c){a(".entry-details").fadeIn("fast"),a(".details-info").html("");var d;b.hasOwnProperty("date_internal")?(a("#ezscm-edit_id").val(-1),b.date_internal=b.date_internal,b.time_internal=b.time_internal,b.data=[],b.date=moment(b.date_internal,"YYYY-MM-DD").format("MM-DD-YYYY"),b.time_begin=moment(b.time_begin,"HH:mm:ss").format(schedule_options.time_format.value),b["private"]=b.private):(a("#ezscm-edit_id").val(b.e_id),d=b.data,b.date_internal=b.date,b.time_internal=b.time_begin,b.date=moment(b.date,"YYYY-MM-DD").format("MM-DD-YYYY"),b.time_begin=moment(b.time_begin,"HH:mm:ss").format(schedule_options.time_format.value),b["private"]=b.private),(!d||d.length<1)&&(d={},a.each(form_elements,function(a,b){var c=b.replace(/\[.+?\]/g,"");d[c]=""})),a.each(b,function(b,c){a("#details-"+b).val(c)}),a.each(form_elements,function(b,c){var e=c.replace(/\[.+?\]/g,""),f=d[e],g="<input type='text' name='data["+e+"]' value='"+f+"' />";c.indexOf("[textarea]")>-1&&(g="<textarea name='data["+e+"]'>"+f+"</textarea>");var h="<p>"+e+"<br>"+g+"</p>";a(".details-info").append(h)}),c&&e(b,c)}function g(b){var d="";a.each(b,function(b,c){d+="<div class='ezscm-entry-single'>",d+="    <div class='button ezscm-entry-header'>";var e=moment(c.date).format(date_format)+" - "+moment(c.time_begin,"HH:mm:ss").format("HH:mm");d+="        <span>"+e+"</span>",d+="    </div>",d+="    <div class='ezscm-entry-data'>",a.each(c,function(a,b){d+="<p>"+a+": "+b+"</p>"}),d+="  </div>",d+="</div>"}),a(".ezscm-entries-wrapper").html(d)}function h(b,c,d){schedule_options=c,form_elements=c.form_elements.value.replace(/(?:\r\n|\r|\n)/g,"").split(","),moment.lang(c.lang_dates.value);var f=[];if(c.time_block){var g=c.time_block.value.split(","),h=[];for(var i in g)h.push(g[i].split("-"));f.push(h)}else f.push([c.time_block_start.value,c.time_block_end.value]);var k=c.days_available.value.split(","),l=c.days_available.s_id;d||(d=moment());var m,n;f.length>0&&(m=moment(f[0],"HH:mm"),n=moment(f[1],"HH:mm"));var p=a.parseJSON(c.closed_days.value),q=moment("08:00","HH:mm"),r=moment("16:00","HH:mm"),s=moment("01:00","HH:mm"),t=q.hour(),u=q.minute(),v=r.hour(),w=r.minute(),x=s.hour(),y=s.minute(),z=60*(v-t),A=w-u,B=Math.ceil((z+A)/(60*x+y)),C="<div class='ezscm-schedule'>",D="";D+="<ul class='schedule-day schedule-day-times schedule-times-main'>",D+="   <li class='schedule-header'></li>";for(var E=moment({hours:t,minute:u}),F=0;B>F;F++)D+="<li class='entry-small'>",D+="  <span>"+E.format(c.time_format.value)+"</span>",D+="</li>",E.add("hours",x).add("minutes",y);D+="</ul>",C+=D;for(var G=7*parseInt(c.show_weeks_amount_backend.value),H=0;G>H;H++){var J,I=!1,K=H-7*Math.floor(H/7);if(H>=7){if(!k[K])continue;J=parseInt(k[K])+H-K,I=k[K]==k[0]}else{if(!k[H])continue;0==k[H]&&(k[H]=7),J=k[H]}I&&(C+="</div><div class='ezscm-schedule'>",C+=D);for(var L=moment(d).startOf("isoweek").isoWeekday(J).hour(t).minute(u),M=moment(d,"YYYY-MM-DD").startOf("isoWeek").isoWeekday(J),N=moment(d,"YYYY-MM-DD").startOf("isoweek").isoWeekday(J).format("YYYY-MM-DD"),O=moment(d,"YYYY-MM-DD").startOf("isoweek").isoWeekday(J).format("MM-DD-YYYY"),P=moment(d,"YYYY-MM-DD").isoWeekday(J).format("dddd"),Q=!1,R=0;R<p.length;R++){var S=moment(p[R].from,"YYYY-MM-DD"),T=moment(p[R].to,"YYYY-MM-DD");(M.isAfter(S)&&M.isBefore(T)||M.isSame(S)||M.isSame(T))&&(Q=!0)}C+="<ul class='schedule-day'>",C+=" <li class='schedule-header'>"+P+"<br>"+O+"</li>";for(var U=0;B>U;U++){var V,W=L.format("HH:mm:ss");if(Q)V="entry-blocked";else{V="entry-free";for(var X=0;X<f.length;X++){var m=moment(N+" "+f[X][0]),n=moment(N+" "+f[X][1]);if((L.isAfter(m)||L.isSame(m))&&L.isBefore(n)){V="entry-blocked";break}}}C+="<li class='schedule-entry "+V+"' data-date='"+N+"' data-time='"+W+"' data-s_id='"+l+"'>",C+="    <span></span>",C+="</li>",L.add("hours",x).add("minutes",y)}C+="</ul>"}a(".ezscm-schedule-wrapper").html(C);for(var Y=0;Y<b.length;Y++)e(b[Y],!1,!0);a(".ezscm-wrapper, .name-wrapper").removeClass("hidden"),a(".ezscm-option-button, .ezscm-option-save").data("id",l),a("#ezscm_shortcode").val("[ezscm id='"+l+"' /]");var Z=moment(d).subtract("days",G).format("YYYY-MM-DD"),$=moment(d).add("days",G).format("YYYY-MM-DD");a(".ezscm-browse-prev").data("week",Z),a(".ezscm-browse-next").data("week",$),j(c)}function i(b){a(".ezscm-schedules-list li.clone").clone().attr("data-id",b).removeClass("clone").appendTo(".ezscm-schedules-list").html("<i class='fa fa-fw fa-list-alt'></i> "+b+" - <span class='schedule-name'>New schedule</span>").fadeIn("fast").click()}function j(b){a.each(b,function(b,c){var e="#opt-"+c.o_id;switch(c.type){case"yesno":case"lang":a(e+" option").removeAttr("selected"),a(e+" option[value='"+c.value+"']").attr("selected","selected");break;case"weekdays":a(e).val(c.value),a(e).siblings(".buttonset").find(".ui-state-active").removeClass("ui-state-active"),a(e).siblings(".buttonset").find(":checked").each(function(){a(this).attr("checked","")});var f=c.value.split(",");if(f.length<1)return;for(var g in f){var h=c.name+"_"+f[g];a("#"+h).attr("checked","checked"),a("label[for='"+h+"']").addClass("ui-state-active")}break;case"datepicker_array":var i=a(e);i.find(".option-item:not(.option-clone)").remove();var f=a.parseJSON(c.value);if(f.length<1)return;a.each(f,function(b,c){var e=d(i);a(e).find(".datepicker-from").val(c.from),a(e).find(".datepicker-to").val(c.to)});default:a(e).val(c.value)}}),n(b),a(".ezscm-wrapper").addClass("hidden"),a(".ezscm-options-schedule-data").removeClass("hidden")}function k(){a(".entry-selected").removeAttr("data-id").removeAttr("data-action").removeClass("entry-private entry-public entry-selected").addClass("entry-free"),a(".entry-details").addClass("hidden")}function l(b){a(".spinner").fadeIn("fast");var c=a(b).data("action"),d=a(b).data("id"),e="action="+c,j=a(".ezscm-schedules-list .button-primary"),l=a(j).data("id");switch(c){case"entry_delete":if(!confirm(ezscm_vars.entry_delete))return!1;d=a(".entry-selected").data("id");break;case"get_entries":a(".ezscm-wrapper, .shortcode-wrapper").addClass("hidden");break;case"get_options":return a(".spinner").hide(),a(".ezscm-options-dialog").dialog("open"),!1;case"get_schedule":a(".ezscm-wrapper, .shortcode-wrapper").addClass("hidden"),a(".ezscm-browse-prev, .ezscm-browse-next").data("id",d);var m=a(b).data("week");m&&(e+="&week="+m);break;case"rename":d=l;var n=a(j).find(".schedule-name").text(),o=prompt("Schedule name",n);if(null==o)return!1;e+="&name="+encodeURIComponent(o);break;case"save_entry":var p=a("#details-date_internal").val(),r=a("#details-time_internal").val(),s=a(".entry-selected").data("id"),t=a(".schedule-entry[data-date='"+p+"'][data-time='"+r+"']");if(t.length>0&&!t.hasClass("entry-free")&&t.data("id")!=s)return q("Entry for "+p+", "+r+" already exists.","ezscm-error"),a(".spinner").fadeOut("fast"),!1;var u=a(".entry-details form").serialize();e+="&"+u;break;case"schedule_clear":if(!confirm(ezscm_vars.schedule_clear))return a(".spinner").fadeOut("fast"),!1;d=l;break;case"schedule_del":if(!confirm(ezscm_vars.schedule_delete))return a(".spinner").fadeOut("fast"),!1;d=l;break;case"update_options":a(".ezscm-settings-type-weekdays").each(function(){var b=[];a(this).siblings(".buttonset").find(":checked").each(function(){b.push(a(this).val())}),a(this).val(b.join(","))});var u=a("#form-options").serialize();e+="&"+u}return d&&(e+="&id="+d),e+="&nonce="+ezscm_nonce,a.ajax({type:"post",url:ajaxurl,data:{action:"ezscm_backend",data:e},success:function(b){if(a(".spinner").fadeOut("fast"),b=a.parseJSON(b),!b)return!1;if(b.error)return q(b.error,"ezscm-error"),!1;switch(b.success&&q(b.success),c){case"add":i(b.id);break;case"entry_delete":k(d);break;case"get_entry":f(b),a(".entry-details").removeClass("hidden");break;case"get_entries":g(b),a(".ezscm-entries-wrapper").removeClass("hidden");break;case"get_schedule":h(b.entries,b.options,m),a(".ezscm-wrapper, .shortcode-wrapper").removeClass("hidden"),a(".entry-details").addClass("hidden");break;case"rename":a(j).find(".schedule-name").text(b);break;case"save_entry":f(b,!0);break;case"schedule_clear":break;case"schedule_del":a(".ezscm-schedules-list .button-primary, .ezscm-wrapper, .entry-details, .shortcode-wrapper").addClass("hidden");break;case"update_options":a(".ezscm-options-dialog").dialog("close"),h(b.entries,b.options,m),a(".ezscm-wrapper").removeClass("hidden")}a(".spinner").fadeOut()}}),!1}function m(){a(".ezscm-browse-pick-dummy").datepicker(a.extend(!0,datepicker_defaults,{dateFormat:"YYYY-MM-DD",showWeek:!0,onSelect:function(b){a(".ezscm-browse-next").data("week",moment(b).format("YYYY-MM-DD")).trigger("click")}})),a(".ezscm-browse-pick").click(function(){a(".ezscm-browse-pick-dummy").datepicker("show")}),a(".ezscm-settings-type-time").timepicker({step:10,timeFormat:"H:i"}),a(".buttonset").buttonset()}function n(b){a.datepicker.formatDate=function(a,b){return moment(b).format(a)},moment.locale(b.lang_dates.value),datepicker_defaults={changeMonth:!0,changeYear:!0,dateFormat:"MM-DD-YYYY",defaultDate:p("MM-DD-YYYY"),showOtherMonths:!0,selectOtherMonths:!0,showWeek:!0,firstDay:1},a("#details-date").datepicker(a.extend(!0,datepicker_defaults,{onSelect:function(b){var d=moment(b,"MM-DD-YYYY").format(date_format_internal);a("#details-date_internal").val(d)}}));var c=moment("08:00","HH:mm"),d=moment("16:00","HH:mm"),e=moment("01:00","HH:mm"),j=(c.hour(),c.minute(),d.hour(),d.minute(),e.hour()),k=e.minute(),n=Math.floor(60*j+k);a("#details-time_begin").timepicker({minTime:c.format("H:mm"),maxTime:d.format("H:mm"),step:n,timeFormat:function(a){return moment(a).format(schedule_options.time_format.value)}}),a("#details-time_begin").on("change",function(){var b=moment(a(this).val(),schedule_options.time_format.value).format("H:mm:ss");a("#details-time_internal").val(b)}),o()}function o(){a(".datepicker-range-wrapper .option-item:not(.option-clone)").each(function(){var b=this,c=a(this).find(".datepicker-from");c.datepicker(a.extend(!0,datepicker_defaults,{dateFormat:"YYYY-MM-DD",onSelect:function(c){var d=p(c,"YYYY-MM-DD"),e=a(b).find(".datepicker-to"),f=e.val();e.datepicker("option","minDate",d),e.val(f)}}));var d=a(this).find(".datepicker-to");d.datepicker(a.extend(!0,datepicker_defaults,{dateFormat:"YYYY-MM-DD",onSelect:function(c){var d=p(c,"YYYY-MM-DD"),e=a(b).find(".datepicker-from"),f=e.val();e.datepicker("option","maxDate",d),e.val(f)}}))})}function p(a,b){return moment(a,b).toDate()}function q(b,c){c||(c="ezscm-notification"),a(".ezscm-message").html(" - <span class='"+c+"'>"+b+"</span>").slideDown(),setTimeout(function(){a(".ezscm-message").fadeOut()},7500)}a.fx.speeds._default=50,date_format_internal="YYYY-MM-DD",datepicker_defaults={changeMonth:!0,changeYear:!0,dateFormat:date_format_internal,showOtherMonths:!0,selectOtherMonths:!0,showWeek:!0,firstDay:1},m(),a("#tabs").tabs();var b={autoOpen:!1,height:Math.min(800,a(window).height()-200),width:Math.min(1200,a(window).width()-200),modal:!0},c={buttons:{"Update options":function(){a(".ezscm-option-save").click()},Cancel:function(){a(this).dialog("close")}}};a(".ezscm-options-dialog").dialog(a.extend(b,c)),a("body").on("click","[data-action]",function(){l(a(this));var b=a(this).data("selectgroup");return b&&(a(".button-primary[data-selectgroup='"+b+"']").removeClass("button-primary"),a(this).addClass("button-primary")),!1}),a("body").on("click",".ezscm-entry-header",function(){a(this).parents(".ezscm-entry-single").find(".ezscm-entry-data").toggle()}),a("body").on("click",".schedule-entry",function(){if(a(".entry-selected").removeClass("entry-selected"),a(this).addClass("entry-selected"),a(this).hasClass("entry-free")){a(".entry-details").removeClass("hidden");var b=a(this).data("date"),c=a(this).data("time"),d={date_internal:b,date:moment(b).format("MM-DD-YYYY"),is_private:ezscm_vars.yes_no.yes,s_id:a(this).data("s_id"),time_begin:moment(c,"HH:mm:ss").format(schedule_options.time_format.value),time_internal:c};f(d)}else a(".entry-details").addClass("hidden");return!1}),a("body").on("click",".option-add",function(){return d(a(this).parents(".option-wrapper")),m(),!1}),a("body").on("click",".option-remove",function(){return form_changed=!0,a(this).parents(".option-item").remove(),!1})};jQuery(document).ready(function(a){ezscm_backend(a)});
  • ez-schedule-manager-free/trunk/class.ezscm_frontend.php

    r1105145 r1164197  
    295295    **/
    296296    function get_mail_output($save_data, $options) {
    297         error_log(var_export($save_data, true));
    298         $out = array();
    299 
    300         // output prefix
    301         $out_pre = "
    302         <html>
    303         <head>
    304             <meta charset='utf-8' />
    305             <style type='text/css'>
    306             table { width: 100%; max-width: 800px; border-collapse: collapse; }
    307             tr, td { padding: 10px 5px; vertical-align: top; }
    308             </style>
    309         </head>
    310         <body>";
    311 
    312         // output suffix
    313         $out_suf = "
    314         </body>
    315         </html>";
    316 
    317         // result output
    318         $out[] = "<table>";
    319 
    320         // fields
     297        // form fields
    321298        $form_elements = $this->get_element_fields($options["form_elements"]->value, true);
    322         $out = array();
    323         foreach ($form_elements as $i => $label) {
    324             $out[] = __($label, "ezscm") . ": {$save_data["form"][$label]}";
    325         }
    326 
    327         $out[] = "</table>";
    328 
    329         // implode content
    330         $result_content = nl2br(implode("\n", $out));
    331299
    332300        // put email text into vars
    333301        $mail_content_replace       = $options["email_text"]->value;
    334302        $mail_admin_content_replace = $options["email_admin_text"]->value;
     303
     304        // output prefix
     305        $out_pre = "<html><body>";
     306
     307        // output suffix
     308        $out_suf  = "<br><br>Sent with ez Schedule Manager - <a href='http://www.ezplugins.de/'>www.ezplugins.de</a>";
     309        $out_suf .= "</body></html>";
     310
     311        // output buffer
     312        $out = array();
     313        $out[] = "<table>";
     314
     315        // add protected fields
     316        $form_elements[] = "callbackdate";
     317        $form_elements[] = "callbackhour";
     318
     319        // form fields
     320        foreach ($form_elements as $i => $label) {
     321            $input_value = $save_data["form"][$label];
     322
     323            $label_text = $label;
     324            // change label
     325            if ($label == "callbackdate")      $label_text = __("Date", "ezscm");
     326            else if ($label == "callbackhour") $label_text = __("Time", "ezscm");
     327
     328            $out[] = "<tr><td>" . __($label_text, "ezscm") . ":";
     329            $out[] = "</td><td>" . "{$input_value}";
     330            $out[] = "</td></tr>";
     331
     332            // replace template fields, e.g. {{name}}
     333            $mail_content_replace       = str_ireplace("{{" . $label . "}}", $input_value, $mail_content_replace);
     334            $mail_admin_content_replace = str_ireplace("{{" . $label . "}}", $input_value, $mail_admin_content_replace);
     335        }
     336
     337        $out[] = "</table>";
     338
     339        // implode content
     340        $result_content = implode("", $out);
    335341
    336342        // replace other values
     
    346352        // put together email contents for user
    347353        $mail_content  = $out_pre;
    348         $mail_content .= $mail_content_replace;
     354        $mail_content .= apply_filters("the_content", $mail_content_replace);
    349355        $mail_content .= $out_suf;
    350356
    351357        // put together email contents for admin
    352358        $mail_admin_content  = $out_pre;
    353         $mail_admin_content .= $mail_admin_content_replace;
     359        $mail_admin_content .= apply_filters("the_content", $mail_admin_content_replace);
    354360        $mail_admin_content .= $out_suf;
    355361
     
    430436        // callback date
    431437        $html .= "<div class='ezscm-details-element ezscm-details-element-date'>
    432             <label>" . __('Date', 'ezscm') . "</label><input type='text' name='data[form][callbackdate]' class='callbackdate' disabled='disabled' value='' />
     438            <label>" . __('Date', 'ezscm') . "</label><input type='text' name='data[form][callbackdate]' class='callbackdate' readonly value='' />
    433439        </div>";
    434440        // callback hour
    435441        $html .= "<div class='ezscm-details-element ezscm-details-element-time'>
    436             <label>" . __('Time', 'ezscm') . "</label><input type='text' name='data[form][callbackhour]' class='callbackhour' disabled='disabled' value='' />
     442            <label>" . __('Time', 'ezscm') . "</label><input type='text' name='data[form][callbackhour]' class='callbackhour' readonly value='' />
    437443        </div>";
    438444
  • ez-schedule-manager-free/trunk/ezscm-page-settings-global.php

    r1105145 r1164197  
    2424if (isset($_POST["submit"])) {
    2525    // additional options
    26     error_log(var_export($_POST["opt"], true));
     26
    2727    foreach ($_POST["opt"] as $k => $v) {
    2828        update_option("ezscm_{$k}", $v);
  • ez-schedule-manager-free/trunk/ezscm.php

    r1105145 r1164197  
    44Plugin URI: http://www.mials.de/mials/ezscm/
    55Description: ez Schedule Manager is a WordPress plugin which allows you to manage incoming schedule requests. In case you offer contact requests or simple booking on specific dates or times, this is the right plugin for you.
    6 Version: 1.0
     6Version: 1.1
    77Author: Michael Schuppenies
    88Author URI: http://www.ezplugins.de/
     
    3232
    3333function ezscm_get_version() {
    34     return "1.0";
     34    return "1.1";
    3535}
    3636
  • ez-schedule-manager-free/trunk/readme.txt

    r1105145 r1164197  
    33Donate link: http://www.mials.de/mials/ezscm/
    44Tags: booking, booking date, booking request, booking time, contact, customer date, customer schedule, customer time, ezplugins, ezscm, form, manager, Requests, schedule, time
    5 Requires at least: 3.6
    6 Tested up to: 4.1.1
    7 Stable tag: 4.1.1
     5Requires at least: 3.7
     6Tested up to: 4.2.2
     7Stable tag: 4.2.2
    88License: GPLv2 or later
    99License URI: http://www.gnu.org/licenses/gpl-2.0.html
     
    5858== Changelog ==
    5959
     60= 1.1 =
     61* Date/Time values would not be sent in emails, occasionally.
     62
    6063= 1.0 =
    6164* Initial Version
Note: See TracChangeset for help on using the changeset viewer.