You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1 line
12 KiB
1 line
12 KiB
!function(){"use strict";function e(){this.filterResults={},this.filterLimit=20}e.prototype.bindEventHandlers=function(){$("#providers").on("submit","#filter-providers form",function(e){e.preventDefault();var r=$("#filter-providers .key").val();$(".selected").removeClass("selected"),this.resetForm(),this.filter(r)}.bind(this)),$("#providers").on("click","#filter-providers .clear",function(){this.filter(""),$("#filter-providers .key").val(""),this.resetForm()}.bind(this)),$("#providers").on("click",".provider-row",function(e){var r,i;$("#filter-providers .filter").prop("disabled")?$("#filter-providers .results").css("color","#AAA"):(r=$(e.currentTarget).attr("data-id"),i=this.filterResults.find(function(e){return Number(e.id)===Number(r)}),this.display(i),$("#filter-providers .selected").removeClass("selected"),$(e.currentTarget).addClass("selected"),$("#edit-provider, #delete-provider").prop("disabled",!1))}.bind(this)),$("#providers").on("click","#add-provider",function(){this.resetForm(),$("#filter-providers button").prop("disabled",!0),$("#filter-providers .results").css("color","#AAA"),$("#providers .add-edit-delete-group").hide(),$("#providers .save-cancel-group").show(),$("#providers .record-details").find("input, select, textarea").prop("disabled",!1),$("#provider-password, #provider-password-confirm").addClass("required"),$("#providers").find(".add-break, .edit-break, .delete-break, .add-working-plan-exception, .edit-working-plan-exception, .delete-working-plan-exception, #reset-working-plan").prop("disabled",!1),$("#provider-services input:checkbox").prop("disabled",!1),BackendUsers.wp.setup(GlobalVariables.workingPlan),BackendUsers.wp.timepickers(!1)}.bind(this)),$("#providers").on("click","#edit-provider",function(){$("#providers .add-edit-delete-group").hide(),$("#providers .save-cancel-group").show(),$("#filter-providers button").prop("disabled",!0),$("#filter-providers .results").css("color","#AAA"),$("#providers .record-details").find("input, select, textarea").prop("disabled",!1),$("#provider-password, #provider-password-confirm").removeClass("required"),$("#provider-services input:checkbox").prop("disabled",!1),$("#providers").find(".add-break, .edit-break, .delete-break, .add-working-plan-exception, .edit-working-plan-exception, .delete-working-plan-exception, #reset-working-plan").prop("disabled",!1),$("#providers input:checkbox").prop("disabled",!1),BackendUsers.wp.timepickers(!1)}),$("#providers").on("click","#delete-provider",function(){var e=$("#provider-id").val(),r=[{text:EALang.cancel,click:function(){$("#message-box").dialog("close")}},{text:EALang.delete,click:function(){this.delete(e),$("#message-box").dialog("close")}.bind(this)}];GeneralFunctions.displayMessageBox(EALang.delete_provider,EALang.delete_record_prompt,r)}.bind(this)),$("#providers").on("click","#save-provider",function(){var i={first_name:$("#provider-first-name").val(),last_name:$("#provider-last-name").val(),email:$("#provider-email").val(),mobile_number:$("#provider-mobile-number").val(),phone_number:$("#provider-phone-number").val(),address:$("#provider-address").val(),city:$("#provider-city").val(),state:$("#provider-state").val(),zip_code:$("#provider-zip-code").val(),notes:$("#provider-notes").val(),timezone:$("#provider-timezone").val(),settings:{username:$("#provider-username").val(),working_plan:JSON.stringify(BackendUsers.wp.get()),working_plan_exceptions:JSON.stringify(BackendUsers.wp.getWorkingPlanExceptions()),notifications:$("#provider-notifications").prop("checked"),calendar_view:$("#provider-calendar-view").val()},services:[]};$("#provider-services input:checkbox").each(function(e,r){$(r).prop("checked")&&i.services.push($(r).attr("data-id"))}),""!==$("#provider-password").val()&&(i.settings.password=$("#provider-password").val()),""!==$("#provider-id").val()&&(i.id=$("#provider-id").val()),this.validate()&&this.save(i)}.bind(this)),$("#providers").on("click","#cancel-provider",function(){var e=$("#filter-providers .selected").attr("data-id");this.resetForm(),e&&this.select(e,!0)}.bind(this)),$("#providers").on("shown.bs.tab",'a[data-toggle="tab"]',function(){Backend.placeFooterToBottom()}),$("#providers").on("click","#reset-working-plan",function(){$(".breaks tbody").empty(),$(".working-plan-exceptions tbody").empty(),$(".work-start, .work-end").val(""),BackendUsers.wp.setup(GlobalVariables.workingPlan),BackendUsers.wp.timepickers(!1)})},e.prototype.unbindEventHandlers=function(){$("#providers").off("submit","#filter-providers form").off("click","#filter-providers .clear").off("click",".provider-row").off("click","#add-provider").off("click","#edit-provider").off("click","#delete-provider").off("click","#save-provider").off("click","#cancel-provider").off("shown.bs.tab",'a[data-toggle="tab"]').off("click","#reset-working-plan")},e.prototype.save=function(e){var r=GlobalVariables.baseUrl+"/index.php/backend_api/ajax_save_provider",i={csrfToken:GlobalVariables.csrfToken,provider:JSON.stringify(e)};$.post(r,i).done(function(e){Backend.displayNotification(EALang.provider_saved),this.resetForm(),$("#filter-providers .key").val(""),this.filter("",e.id,!0)}.bind(this))},e.prototype.delete=function(e){var r=GlobalVariables.baseUrl+"/index.php/backend_api/ajax_delete_provider",i={csrfToken:GlobalVariables.csrfToken,provider_id:e};$.post(r,i).done(function(){Backend.displayNotification(EALang.provider_deleted),this.resetForm(),this.filter($("#filter-providers .key").val())}.bind(this))},e.prototype.validate=function(){$("#providers .has-error").removeClass("has-error"),$("#providers .form-message").removeClass("alert-danger").hide();try{var i=!1;if($("#providers .required").each(function(e,r){$(r).val()||($(r).closest(".form-group").addClass("has-error"),i=!0)}),i)throw new Error(EALang.fields_are_required);if($("#provider-password").val()!==$("#provider-password-confirm").val())throw $("#provider-password, #provider-password-confirm").closest(".form-group").addClass("has-error"),new Error(EALang.passwords_mismatch);if($("#provider-password").val().length<BackendUsers.MIN_PASSWORD_LENGTH&&""!==$("#provider-password").val())throw $("#provider-password, #provider-password-confirm").closest(".form-group").addClass("has-error"),new Error(EALang.password_length_notice.replace("$number",BackendUsers.MIN_PASSWORD_LENGTH));if(!GeneralFunctions.validateEmail($("#provider-email").val()))throw $("#provider-email").closest(".form-group").addClass("has-error"),new Error(EALang.invalid_email);if("true"===$("#provider-username").attr("already-exists"))throw $("#provider-username").closest(".form-group").addClass("has-error"),new Error(EALang.username_already_exists);return!0}catch(e){return $("#providers .form-message").addClass("alert-danger").text(e.message).show(),!1}},e.prototype.resetForm=function(){$("#filter-providers .selected").removeClass("selected"),$("#filter-providers button").prop("disabled",!1),$("#filter-providers .results").css("color",""),$("#providers .add-edit-delete-group").show(),$("#providers .save-cancel-group").hide(),$("#providers .record-details h3 a").remove(),$("#providers .record-details").find("input, select, textarea").val("").prop("disabled",!0),$("#providers .record-details #provider-calendar-view").val("default"),$("#providers .record-details #provider-timezone").val("UTC"),$("#providers .add-break, .add-working-plan-exception, #reset-working-plan").prop("disabled",!0),BackendUsers.wp.timepickers(!0),$("#providers .working-plan input:text").timepicker("destroy"),$("#providers .working-plan input:checkbox").prop("disabled",!0),$(".breaks").find(".edit-break, .delete-break").prop("disabled",!0),$(".working-plan-exceptions").find(".edit-working-plan-exception, .delete-working-plan-exception").prop("disabled",!0),$("#providers .record-details .has-error").removeClass("has-error"),$("#providers .record-details .form-message").hide(),$("#edit-provider, #delete-provider").prop("disabled",!0),$("#provider-services input:checkbox").prop("disabled",!0).prop("checked",!1),$("#provider-services a").remove(),$("#providers .working-plan tbody").empty(),$("#providers .breaks tbody").empty(),$("#providers .working-plan-exceptions tbody").empty()},e.prototype.display=function(i){$("#provider-id").val(i.id),$("#provider-first-name").val(i.first_name),$("#provider-last-name").val(i.last_name),$("#provider-email").val(i.email),$("#provider-mobile-number").val(i.mobile_number),$("#provider-phone-number").val(i.phone_number),$("#provider-address").val(i.address),$("#provider-city").val(i.city),$("#provider-state").val(i.state),$("#provider-zip-code").val(i.zip_code),$("#provider-notes").val(i.notes),$("#provider-timezone").val(i.timezone),$("#provider-username").val(i.settings.username),$("#provider-calendar-view").val(i.settings.calendar_view),$("#provider-notifications").prop("checked",Boolean(Number(i.settings.notifications)));var o=GlobalVariables.baseUrl+"/index.php?provider="+encodeURIComponent(i.id),t=$("<a/>",{href:o,html:[$("<span/>",{class:"fas fa-link"})]});$("#providers .details-view h3").find("a").remove().end().append(t),$("#provider-services a").remove(),$("#provider-services input:checkbox").prop("checked",!1),i.services.forEach(function(e){var r=$('#provider-services input[data-id="'+e+'"]');r.length&&(r.prop("checked",!0),o=GlobalVariables.baseUrl+"/index.php?provider="+encodeURIComponent(i.id)+"&service="+encodeURIComponent(e),t=$("<a/>",{href:o,html:[$("<span/>",{class:"fas fa-link"})]}),r.parent().append(t))});var e=$.parseJSON(i.settings.working_plan);BackendUsers.wp.setup(e),$(".working-plan").find("input").prop("disabled",!0),$(".breaks").find(".edit-break, .delete-break").prop("disabled",!0),$("#providers .working-plan-exceptions tbody").empty();var r=$.parseJSON(i.settings.working_plan_exceptions);BackendUsers.wp.setupWorkingPlanExceptions(r),$(".working-plan-exceptions").find(".edit-working-plan-exception, .delete-working-plan-exception").prop("disabled",!0),$("#providers .working-plan input:checkbox").prop("disabled",!0),Backend.placeFooterToBottom()},e.prototype.filter=function(r,i,o){o=o||!1;var e=GlobalVariables.baseUrl+"/index.php/backend_api/ajax_filter_providers",t={csrfToken:GlobalVariables.csrfToken,key:r,limit:this.filterLimit};$.post(e,t).done(function(e){this.filterResults=e,$("#filter-providers .results").empty(),e.forEach(function(e){$("#filter-providers .results").append(this.getFilterHtml(e)).append($("<hr/>"))}.bind(this)),e.length?e.length===this.filterLimit&&$("<button/>",{type:"button",class:"btn btn-block btn-outline-secondary load-more text-center",text:EALang.load_more,click:function(){this.filterLimit+=20,this.filter(r,i,o)}.bind(this)}).appendTo("#filter-providers .results"):$("#filter-providers .results").append($("<em/>",{text:EALang.no_records_found})),i&&this.select(i,o)}.bind(this))},e.prototype.getFilterHtml=function(e){var r=e.first_name+" "+e.last_name,i=e.email,i=e.mobile_number?i+", "+e.mobile_number:i;return i=e.phone_number?i+", "+e.phone_number:i,$("<div/>",{class:"provider-row entry","data-id":e.id,html:[$("<strong/>",{text:r}),$("<br/>"),$("<span/>",{text:i}),$("<br/>")]})},e.prototype.editableDayCell=function(e){var r={};r[EALang.monday]="Monday",r[EALang.tuesday]="Tuesday",r[EALang.wednesday]="Wednesday",r[EALang.thursday]="Thursday",r[EALang.friday]="Friday",r[EALang.saturday]="Saturday",r[EALang.sunday]="Sunday",e.editable(function(e,r){return e},{type:"select",data:r,event:"edit",height:"30px",submit:'<button type="button" class="d-none submit-editable">Submit</button>',cancel:'<button type="button" class="d-none cancel-editable">Cancel</button>',onblur:"ignore",onreset:function(e,r){if(!BackendUsers.enableCancel)return!1},onsubmit:function(e,r){if(!BackendUsers.enableSubmit)return!1}})},e.prototype.editableTimeCell=function(e){e.editable(function(e,r){return e},{event:"edit",height:"25px",submit:'<button type="button" class="d-none submit-editable">Submit</button>',cancel:'<button type="button" class="d-none cancel-editable">Cancel</button>',onblur:"ignore",onreset:function(e,r){if(!BackendUsers.enableCancel)return!1},onsubmit:function(e,r){if(!BackendUsers.enableSubmit)return!1}})},e.prototype.select=function(r,e){var i;e=e||!1,$('#filter-providers .provider-row[data-id="'+r+'"]').addClass("selected"),e&&(i=this.filterResults.find(function(e){return Number(e.id)===Number(r)}.bind(this)),this.display(i),$("#edit-provider, #delete-provider").prop("disabled",!1))},window.ProvidersHelper=e}(); |