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.
easyappointments-archive/assets/js/backend_categories_helper.m...

1 line
5.7 KiB

!function(){"use strict";function e(){this.filterResults={},this.filterLimit=20}e.prototype.bindEventHandlers=function(){var r=this;$("#categories").on("click","#filter-categories .clear",function(){$("#filter-categories .key").val(""),r.filter(""),r.resetForm()}),$("#categories").on("submit","#filter-categories form",function(e){e.preventDefault();var t=$("#filter-categories .key").val();$(".selected").removeClass("selected"),r.resetForm(),r.filter(t)}),$("#categories").on("click",".category-row",function(){var t,e;$("#filter-categories .filter").prop("disabled")?$("#filter-categories .results").css("color","#AAA"):(t=$(this).attr("data-id"),e=r.filterResults.find(function(e){return Number(e.id)===Number(t)}),r.display(e),$("#filter-categories .selected").removeClass("selected"),$(this).addClass("selected"),$("#edit-category, #delete-category").prop("disabled",!1))}),$("#categories").on("click","#add-category",function(){r.resetForm(),$("#categories .add-edit-delete-group").hide(),$("#categories .save-cancel-group").show(),$("#categories .record-details").find("input, select, textarea").prop("disabled",!1),$("#filter-categories button").prop("disabled",!0),$("#filter-categories .results").css("color","#AAA")}),$("#categories").on("click","#edit-category",function(){$("#categories .add-edit-delete-group").hide(),$("#categories .save-cancel-group").show(),$("#categories .record-details").find("input, select, textarea").prop("disabled",!1),$("#filter-categories button").prop("disabled",!0),$("#filter-categories .results").css("color","#AAA")}),$("#categories").on("click","#delete-category",function(){var e=$("#category-id").val(),t=[{text:EALang.cancel,click:function(){$("#message-box").dialog("close")}},{text:EALang.delete,click:function(){r.delete(e),$("#message-box").dialog("close")}}];GeneralFunctions.displayMessageBox(EALang.delete_category,EALang.delete_record_prompt,t)}),$("#categories").on("click","#save-category",function(){var e={name:$("#category-name").val(),description:$("#category-description").val()};""!==$("#category-id").val()&&(e.id=$("#category-id").val()),r.validate()&&r.save(e)}),$("#categories").on("click","#cancel-category",function(){var e=$("#category-id").val();r.resetForm(),""!==e&&r.select(e,!0)})},e.prototype.unbindEventHandlers=function(){$("#categories").off("click","#filter-categories .clear").off("submit","#filter-categories form").off("click",".category-row").off("click","#add-category").off("click","#edit-category").off("click","#delete-category").off("click","#save-category").off("click","#cancel-category")},e.prototype.filter=function(t,r,i){var e=GlobalVariables.baseUrl+"/index.php/backend_api/ajax_filter_service_categories",a={csrfToken:GlobalVariables.csrfToken,key:t,limit:this.filterLimit};$.post(e,a).done(function(e){this.filterResults=e,$("#filter-categories .results").empty(),e.forEach(function(e){$("#filter-categories .results").append(this.getFilterHtml(e)).append($("<hr/>"))}.bind(this)),0===e.length?$("#filter-categories .results").append($("<em/>",{text:EALang.no_records_found})):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(t,r,i)}.bind(this)}).appendTo("#filter-categories .results"),r&&this.select(r,i)}.bind(this))},e.prototype.save=function(e){var t=GlobalVariables.baseUrl+"/index.php/backend_api/ajax_save_service_category",r={csrfToken:GlobalVariables.csrfToken,category:JSON.stringify(e)};$.post(t,r).done(function(e){Backend.displayNotification(EALang.service_category_saved),this.resetForm(),$("#filter-categories .key").val(""),this.filter("",e.id,!0),BackendServices.updateAvailableCategories()}.bind(this))},e.prototype.delete=function(e){var t=GlobalVariables.baseUrl+"/index.php/backend_api/ajax_delete_service_category",r={csrfToken:GlobalVariables.csrfToken,category_id:e};$.post(t,r).done(function(){Backend.displayNotification(EALang.service_category_deleted),this.resetForm(),this.filter($("#filter-categories .key").val()),BackendServices.updateAvailableCategories()}.bind(this))},e.prototype.display=function(e){$("#category-id").val(e.id),$("#category-name").val(e.name),$("#category-description").val(e.description)},e.prototype.validate=function(){$("#categories .has-error").removeClass("has-error"),$("#categories .form-message").removeClass("alert-danger").hide();try{var r=!1;if($("#categories .required").each(function(e,t){$(t).val()||($(t).closest(".form-group").addClass("has-error"),r=!0)}),r)throw new Error(EALang.fields_are_required);return!0}catch(e){return $("#categories .form-message").addClass("alert-danger").text(e.message).show(),!1}},e.prototype.resetForm=function(){$("#filter-categories .selected").removeClass("selected"),$("#filter-categories button").prop("disabled",!1),$("#filter-categories .results").css("color",""),$("#categories .add-edit-delete-group").show(),$("#categories .save-cancel-group").hide(),$("#categories .record-details").find("input, select, textarea").val("").prop("disabled",!0),$("#edit-category, #delete-category").prop("disabled",!0),$("#categories .record-details .has-error").removeClass("has-error"),$("#categories .record-details .form-message").hide()},e.prototype.getFilterHtml=function(e){return $("<div/>",{class:"category-row entry","data-id":e.id,html:[$("<strong/>",{text:e.name}),$("<br/>")]})},e.prototype.select=function(t,e){var r;e=e||!1,$("#filter-categories .selected").removeClass("selected"),$('#filter-categories .category-row[data-id="'+t+'"]').addClass("selected"),e&&(r=this.filterResults.find(function(e){return Number(e.id)===Number(t)}.bind(this)),this.display(r),$("#edit-category, #delete-category").prop("disabled",!1))},window.CategoriesHelper=e}();