"use strict";App.Pages.BlockedPeriods=function(){function filter(keyword){var selectId=1"))}),0===response.length?$("#filter-blocked-periods .results").append($("",{text:lang("no_records_found")})):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.BlockedPeriods.filter(keyword,selectId,show)}}).appendTo("#filter-blocked-periods .results"),selectId&&App.Pages.BlockedPeriods.select(selectId,show)})}function select(id){var show=!!(1=endDateTimeObject)throw $startDateTime.addClass("is-invalid"),$endDateTime.addClass("is-invalid"),new Error(lang("start_date_before_end_error"));return!0}catch(error){return $blockedPeriods.find(".form-message").addClass("alert-danger").text(error.message).show(),!1}},getFilterHtml:function getFilterHtml(blockedPeriod){return $("",{class:"blocked-period-row entry","data-id":blockedPeriod.id,html:[$("",{text:blockedPeriod.name}),$("
")]})},resetForm:function resetForm(){$filterBlockedPeriods.find(".selected").removeClass("selected"),$filterBlockedPeriods.find("button").prop("disabled",!1),$filterBlockedPeriods.find(".results").css("color",""),$blockedPeriods.find(".add-edit-delete-group").show(),$blockedPeriods.find(".save-cancel-group").hide(),$blockedPeriods.find(".record-details").find("input, select, textarea").val("").prop("disabled",!0),$blockedPeriods.find(".record-details .form-label span").prop("hidden",!0),$("#edit-blocked-period, #delete-blocked-period").prop("disabled",!0),$blockedPeriods.find(".record-details .is-invalid").removeClass("is-invalid"),$blockedPeriods.find(".record-details .form-message").hide(),backupStartDateTimeObject=void 0},display:function display(blockedPeriod){$id.val(blockedPeriod.id),$name.val(blockedPeriod.name),App.Utils.UI.setDateTimePickerValue($startDateTime,new Date(blockedPeriod.start_datetime)),App.Utils.UI.setDateTimePickerValue($endDateTime,new Date(blockedPeriod.end_datetime)),$notes.val(blockedPeriod.notes)},select:select,addEventListeners:function addEventListeners(){$blockedPeriods.on("submit","#filter-blocked-periods form",function(event){event.preventDefault();var key=$("#filter-blocked-periods .key").val();$(".selected").removeClass("selected"),App.Pages.BlockedPeriods.resetForm(),App.Pages.BlockedPeriods.filter(key)}),$blockedPeriods.on("click",".blocked-period-row",function(event){if($("#filter-blocked-periods .filter").prop("disabled"))return void $("#filter-blocked-periods .results").css("color","#AAA");var blockedPeriodId=$(event.currentTarget).attr("data-id"),blockedPeriod=filterResults.find(function(filterResult){return+filterResult.id===+blockedPeriodId});App.Pages.BlockedPeriods.display(blockedPeriod),$("#filter-blocked-periods .selected").removeClass("selected"),$(event.currentTarget).addClass("selected"),$("#edit-blocked-period, #delete-blocked-period").prop("disabled",!1)}),$blockedPeriods.on("click","#add-blocked-period",function(){App.Pages.BlockedPeriods.resetForm(),$blockedPeriods.find(".add-edit-delete-group").hide(),$blockedPeriods.find(".save-cancel-group").show(),$blockedPeriods.find(".record-details").find("input, select, textarea").prop("disabled",!1),$blockedPeriods.find(".record-details .form-label span").prop("hidden",!1),$filterBlockedPeriods.find("button").prop("disabled",!0),$filterBlockedPeriods.find(".results").css("color","#AAA"),App.Utils.UI.setDateTimePickerValue($startDateTime,moment("00:00","HH:mm").toDate()),App.Utils.UI.setDateTimePickerValue($endDateTime,moment("00:00","HH:mm").add(1,"day").toDate())}),$blockedPeriods.on("click","#edit-blocked-period",function(){$blockedPeriods.find(".add-edit-delete-group").hide(),$blockedPeriods.find(".save-cancel-group").show(),$blockedPeriods.find(".record-details").find("input, select, textarea").prop("disabled",!1),$blockedPeriods.find(".record-details .form-label span").prop("hidden",!1),$filterBlockedPeriods.find("button").prop("disabled",!0),$filterBlockedPeriods.find(".results").css("color","#AAA")}),$blockedPeriods.on("click","#delete-blocked-period",function(){var blockedPeriodId=$id.val(),buttons=[{text:lang("cancel"),click:function click(event,messageModal){messageModal.hide()}},{text:lang("delete"),click:function click(event,messageModal){App.Pages.BlockedPeriods.remove(blockedPeriodId),messageModal.hide()}}];App.Utils.Message.show(lang("delete_blocked_period"),lang("delete_record_prompt"),buttons)}),$blockedPeriods.on("click","#save-blocked-period",function(){var startDateTimeObject=App.Utils.UI.getDateTimePickerValue($startDateTime),startDateTimeMoment=moment(startDateTimeObject),endDateTimeObject=App.Utils.UI.getDateTimePickerValue($endDateTime),endDateTimeMoment=moment(endDateTimeObject),blockedPeriod={name:$name.val(),start_datetime:startDateTimeMoment.format("YYYY-MM-DD HH:mm:ss"),end_datetime:endDateTimeMoment.format("YYYY-MM-DD HH:mm:ss"),notes:$notes.val()};""!==$id.val()&&(blockedPeriod.id=$id.val()),App.Pages.BlockedPeriods.validate()&&App.Pages.BlockedPeriods.save(blockedPeriod)}),$blockedPeriods.on("click","#cancel-blocked-period",function(){var id=$id.val();App.Pages.BlockedPeriods.resetForm(),""!==id&&App.Pages.BlockedPeriods.select(id,!0)}),$blockedPeriods.on("focus","#start-date-time",function(){backupStartDateTimeObject=App.Utils.UI.getDateTimePickerValue($startDateTime)}),$blockedPeriods.on("change","#start-date-time",function(event){var endDateTimeObject=App.Utils.UI.getDateTimePickerValue($endDateTime);if(backupStartDateTimeObject&&endDateTimeObject){var endDateTimeMoment=moment(endDateTimeObject),backupStartDateTimeMoment=moment(backupStartDateTimeObject),diff=endDateTimeMoment.diff(backupStartDateTimeMoment),newEndDateTimeMoment=endDateTimeMoment.clone().add(diff,"milliseconds");App.Utils.UI.setDateTimePickerValue($endDateTime,newEndDateTimeMoment.toDate())}})}}}();