"use strict";App.Pages.Providers=function(){function filter(keyword){var selectId=1"))}),response.length?response.length===filterLimit&&$("",{type:"button",class:"btn btn-outline-secondary w-100 load-more text-center",text:lang("load_more"),click:function click(){filterLimit+=20,App.Pages.Providers.filter(keyword,selectId,show)}}).appendTo("#filter-providers .results"):$filterProviders.find(".results").append($("",{text:lang("no_records_found")})),selectId&&App.Pages.Providers.select(selectId,show)})}function select(id){var show=!!(1",{class:"checkbox",html:[$("
",{class:"checkbox form-check",html:[$("",{id:checkboxId,class:"form-check-input",type:"checkbox","data-id":service.id,prop:{disabled:!0}}),$("",{class:"form-check-label",text:service.name,for:checkboxId})]})]}).appendTo("#provider-services")})}var workingPlanManager,$providers=$("#providers"),$id=$("#id"),$firstName=$("#first-name"),$lastName=$("#last-name"),$email=$("#email"),$mobileNumber=$("#mobile-number"),$phoneNumber=$("#phone-number"),$address=$("#address"),$city=$("#city"),$state=$("#state"),$zipCode=$("#zip-code"),$isPrivate=$("#is-private"),$notes=$("#notes"),$language=$("#language"),$timezone=$("#timezone"),$ldapDn=$("#ldap-dn"),$username=$("#username"),$password=$("#password"),$passwordConfirmation=$("#password-confirm"),$notifications=$("#notifications"),$calendarView=$("#calendar-view"),$filterProviders=$("#filter-providers"),filterResults={},filterLimit=20;return document.addEventListener("DOMContentLoaded",initialize),{filter:filter,save:function save(provider){App.Http.Providers.save(provider).then(function(response){App.Layouts.Backend.displayNotification(lang("provider_saved")),App.Pages.Providers.resetForm(),$("#filter-providers .key").val(""),App.Pages.Providers.filter("",response.id,!0)})},remove:function remove(id){App.Http.Providers.destroy(id).then(function(){App.Layouts.Backend.displayNotification(lang("provider_deleted")),App.Pages.Providers.resetForm(),App.Pages.Providers.filter($("#filter-providers .key").val())})},validate:function validate(){$providers.find(".is-invalid").removeClass("is-invalid"),$providers.find(".form-message").removeClass("alert-danger").hide();try{var missingRequired=!1;if($providers.find(".required").each(function(index,requiredFieldEl){$(requiredFieldEl).val()||($(requiredFieldEl).addClass("is-invalid"),missingRequired=!0)}),missingRequired)throw new Error(lang("fields_are_required"));if($password.val()!==$passwordConfirmation.val())throw $("#password, #password-confirm").addClass("is-invalid"),new Error(lang("passwords_mismatch"));if($password.val().length",{class:"provider-row entry","data-id":provider.id,html:[$("",{text:name}),$("
"),$("",{class:"text-muted",text:info}),$("
")]})},resetForm:function resetForm(){$filterProviders.find(".selected").removeClass("selected"),$filterProviders.find("button").prop("disabled",!1),$filterProviders.find(".results").css("color",""),$providers.find(".add-edit-delete-group").show(),$providers.find(".save-cancel-group").hide(),$providers.find(".record-details h4 a").remove(),$providers.find(".record-details").find("input, select, textarea").val("").prop("disabled",!0),$providers.find(".record-details .form-label span").prop("hidden",!0),$providers.find(".record-details #calendar-view").val("default"),$providers.find(".record-details #language").val(vars("default_language")),$providers.find(".record-details #timezone").val(vars("default_timezone")),$providers.find(".record-details #is-private").prop("checked",!1),$providers.find(".record-details #notifications").prop("checked",!0),$providers.find(".add-break, .add-working-plan-exception, #reset-working-plan").prop("disabled",!0),workingPlanManager.timepickers(!0),$providers.find("#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.find(".record-details .is-invalid").removeClass("is-invalid"),$providers.find(".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()},display:function display(provider){$id.val(provider.id),$firstName.val(provider.first_name),$lastName.val(provider.last_name),$email.val(provider.email),$mobileNumber.val(provider.mobile_number),$phoneNumber.val(provider.phone_number),$address.val(provider.address),$city.val(provider.city),$state.val(provider.state),$zipCode.val(provider.zip_code),$isPrivate.prop("checked",provider.is_private),$notes.val(provider.notes),$language.val(provider.language),$timezone.val(provider.timezone),$ldapDn.val(provider.ldap_dn),$username.val(provider.settings.username),$calendarView.val(provider.settings.calendar_view),$notifications.prop("checked",!!+provider.settings.notifications);var dedicatedUrl=App.Utils.Url.siteUrl("?provider="+encodeURIComponent(provider.id)),$link=$("",{href:dedicatedUrl,target:"_blank",html:[$("",{class:"fas fa-link me-2"}),$("",{text:lang("booking_link")})]});$providers.find(".details-view h4").find("a").remove().end().append($link),$("#provider-services a").remove(),$("#provider-services input:checkbox").prop("checked",!1),provider.services.forEach(function(providerServiceId){var $checkbox=$("#provider-services input[data-id=\""+providerServiceId+"\"]");$checkbox.length&&($checkbox.prop("checked",!0),dedicatedUrl=App.Utils.Url.siteUrl("?provider="+encodeURIComponent(provider.id)+"&service="+encodeURIComponent(providerServiceId)),$link=$("",{href:dedicatedUrl,target:"_blank",html:[$("",{class:"fas fa-link me-2"}),$("",{text:lang("booking_link")})]}),$checkbox.parent().append($link))});var workingPlan=JSON.parse(provider.settings.working_plan);workingPlanManager.setup(workingPlan),$(".working-plan").find("input").prop("disabled",!0),$(".breaks").find(".edit-break, .delete-break").prop("disabled",!0),$providers.find(".working-plan-exceptions tbody").empty();var workingPlanExceptions=JSON.parse(provider.settings.working_plan_exceptions);workingPlanManager.setupWorkingPlanExceptions(workingPlanExceptions),$(".working-plan-exceptions").find(".edit-working-plan-exception, .delete-working-plan-exception").prop("disabled",!0),$providers.find(".working-plan input:checkbox").prop("disabled",!0)},select:select,addEventListeners:function addEventListeners(){$providers.on("submit","#filter-providers form",function(event){event.preventDefault();var key=$("#filter-providers .key").val();$(".selected").removeClass("selected"),App.Pages.Providers.resetForm(),App.Pages.Providers.filter(key)}),$providers.on("click",".provider-row",function(event){if($filterProviders.find(".filter").prop("disabled"))return void $filterProviders.find(".results").css("color","#AAA");var providerId=$(event.currentTarget).attr("data-id"),provider=filterResults.find(function(filterResult){return+filterResult.id===+providerId});App.Pages.Providers.display(provider),$filterProviders.find(".selected").removeClass("selected"),$(event.currentTarget).addClass("selected"),$("#edit-provider, #delete-provider").prop("disabled",!1)}),$providers.on("click","#add-provider",function(){App.Pages.Providers.resetForm(),$filterProviders.find("button").prop("disabled",!0),$filterProviders.find(".results").css("color","#AAA"),$providers.find(".add-edit-delete-group").hide(),$providers.find(".save-cancel-group").show(),$providers.find(".record-details").find("input, select, textarea").prop("disabled",!1),$providers.find(".record-details .form-label span").prop("hidden",!1),$("#password, #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);var companyWorkingPlan=JSON.parse(vars("company_working_plan"));workingPlanManager.setup(companyWorkingPlan),workingPlanManager.timepickers(!1)}),$providers.on("click","#edit-provider",function(){$providers.find(".add-edit-delete-group").hide(),$providers.find(".save-cancel-group").show(),$filterProviders.find("button").prop("disabled",!0),$filterProviders.find(".results").css("color","#AAA"),$providers.find(".record-details").find("input, select, textarea").prop("disabled",!1),$providers.find(".record-details .form-label span").prop("hidden",!1),$("#password, #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),workingPlanManager.timepickers(!1)}),$providers.on("click","#delete-provider",function(){var providerId=$id.val(),buttons=[{text:lang("cancel"),click:function click(event,messageModal){messageModal.hide()}},{text:lang("delete"),click:function click(event,messageModal){App.Pages.Providers.remove(providerId),messageModal.hide()}}];App.Utils.Message.show(lang("delete_provider"),lang("delete_record_prompt"),buttons)}),$providers.on("click","#save-provider",function(){var provider={first_name:$firstName.val(),last_name:$lastName.val(),email:$email.val(),mobile_number:$mobileNumber.val(),phone_number:$phoneNumber.val(),address:$address.val(),city:$city.val(),state:$state.val(),zip_code:$zipCode.val(),is_private:+$isPrivate.prop("checked"),notes:$notes.val(),language:$language.val(),timezone:$timezone.val(),ldap_dn:$ldapDn.val(),settings:{username:$username.val(),working_plan:JSON.stringify(workingPlanManager.get()),working_plan_exceptions:JSON.stringify(workingPlanManager.getWorkingPlanExceptions()),notifications:+$notifications.prop("checked"),calendar_view:$calendarView.val()}};provider.services=[],$("#provider-services input:checkbox").each(function(index,checkboxEl){$(checkboxEl).prop("checked")&&provider.services.push($(checkboxEl).attr("data-id"))}),""!==$password.val()&&(provider.settings.password=$password.val()),""!==$id.val()&&(provider.id=$id.val()),App.Pages.Providers.validate()&&App.Pages.Providers.save(provider)}),$providers.on("click","#cancel-provider",function(){var id=$("#filter-providers .selected").attr("data-id");App.Pages.Providers.resetForm(),id&&App.Pages.Providers.select(id,!0)}),$providers.on("click","#reset-working-plan",function(){$(".breaks tbody").empty(),$(".working-plan-exceptions tbody").empty(),$(".work-start, .work-end").val("");var companyWorkingPlan=JSON.parse(vars("company_working_plan"));workingPlanManager.setup(companyWorkingPlan),workingPlanManager.timepickers(!1)})}}}();