Changeset 1164197
- Timestamp:
- 05/20/2015 02:42:44 PM (11 years ago)
- Location:
- ez-schedule-manager-free/trunk
- Files:
-
- 6 edited
-
ajax-admin.php (modified) (1 diff)
-
backend.min.js (modified) (1 diff)
-
class.ezscm_frontend.php (modified) (3 diffs)
-
ezscm-page-settings-global.php (modified) (1 diff)
-
ezscm.php (modified) (2 diffs)
-
readme.txt (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
ez-schedule-manager-free/trunk/ajax-admin.php
r1105145 r1164197 94 94 95 95 function send_ajax($msg) { 96 //error_log(var_export($msg, true));97 96 if (is_object($msg) && property_exists($msg, "data")) $msg->data = json_decode($msg->data); 98 97 $ret = json_encode($msg); 99 //error_log(var_export($ret, true));100 98 101 99 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)});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.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 295 295 **/ 296 296 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 321 298 $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 content330 $result_content = nl2br(implode("\n", $out));331 299 332 300 // put email text into vars 333 301 $mail_content_replace = $options["email_text"]->value; 334 302 $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); 335 341 336 342 // replace other values … … 346 352 // put together email contents for user 347 353 $mail_content = $out_pre; 348 $mail_content .= $mail_content_replace;354 $mail_content .= apply_filters("the_content", $mail_content_replace); 349 355 $mail_content .= $out_suf; 350 356 351 357 // put together email contents for admin 352 358 $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); 354 360 $mail_admin_content .= $out_suf; 355 361 … … 430 436 // callback date 431 437 $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='' /> 433 439 </div>"; 434 440 // callback hour 435 441 $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='' /> 437 443 </div>"; 438 444 -
ez-schedule-manager-free/trunk/ezscm-page-settings-global.php
r1105145 r1164197 24 24 if (isset($_POST["submit"])) { 25 25 // additional options 26 error_log(var_export($_POST["opt"], true)); 26 27 27 foreach ($_POST["opt"] as $k => $v) { 28 28 update_option("ezscm_{$k}", $v); -
ez-schedule-manager-free/trunk/ezscm.php
r1105145 r1164197 4 4 Plugin URI: http://www.mials.de/mials/ezscm/ 5 5 Description: 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. 06 Version: 1.1 7 7 Author: Michael Schuppenies 8 8 Author URI: http://www.ezplugins.de/ … … 32 32 33 33 function ezscm_get_version() { 34 return "1. 0";34 return "1.1"; 35 35 } 36 36 -
ez-schedule-manager-free/trunk/readme.txt
r1105145 r1164197 3 3 Donate link: http://www.mials.de/mials/ezscm/ 4 4 Tags: 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. 66 Tested up to: 4. 1.17 Stable tag: 4. 1.15 Requires at least: 3.7 6 Tested up to: 4.2.2 7 Stable tag: 4.2.2 8 8 License: GPLv2 or later 9 9 License URI: http://www.gnu.org/licenses/gpl-2.0.html … … 58 58 == Changelog == 59 59 60 = 1.1 = 61 * Date/Time values would not be sent in emails, occasionally. 62 60 63 = 1.0 = 61 64 * Initial Version
Note: See TracChangeset
for help on using the changeset viewer.