1 line
6.6 KiB
JavaScript
Executable File
1 line
6.6 KiB
JavaScript
Executable File
"use strict";App.Pages.ServiceCategories=function(){function filter(keyword){var selectId=1<arguments.length&&void 0!==arguments[1]?arguments[1]:null,show=!!(2<arguments.length&&void 0!==arguments[2])&&arguments[2];App.Http.ServiceCategories.search(keyword,filterLimit).then(function(response){filterResults=response,$("#filter-service-categories .results").empty(),response.forEach(function(serviceCategory){$("#filter-service-categories .results").append(App.Pages.ServiceCategories.getFilterHtml(serviceCategory)).append($("<hr/>"))}),0===response.length?$("#filter-service-categories .results").append($("<em/>",{text:lang("no_records_found")})):response.length===filterLimit&&$("<button/>",{type:"button",class:"btn btn-outline-secondary w-100 load-more text-center",text:lang("load_more"),click:function click(){filterLimit+=20,App.Pages.ServiceCategories.filter(keyword,selectId,show)}}).appendTo("#filter-service-categories .results"),selectId&&select(selectId,show)})}function remove(id){App.Http.ServiceCategories.destroy(id).then(function(){App.Layouts.Backend.displayNotification(lang("service_category_deleted")),App.Pages.ServiceCategories.resetForm(),App.Pages.ServiceCategories.filter($("#filter-service-categories .key").val())})}function display(serviceCategory){$id.val(serviceCategory.id),$name.val(serviceCategory.name),$description.val(serviceCategory.description)}function validate(){$serviceCategories.find(".is-invalid").removeClass("is-invalid"),$serviceCategories.find(".form-message").removeClass("alert-danger").hide();try{var missingRequired=!1;if($serviceCategories.find(".required").each(function(index,fieldEl){$(fieldEl).val()||($(fieldEl).addClass("is-invalid"),missingRequired=!0)}),missingRequired)throw new Error(lang("fields_are_required"));return!0}catch(error){return $serviceCategories.find(".form-message").addClass("alert-danger").text(error.message).show(),!1}}function select(id){var show=!!(1<arguments.length&&void 0!==arguments[1])&&arguments[1];if($filterServiceCategories.find(".selected").removeClass("selected"),$filterServiceCategories.find(".service-category-row[data-id=\""+id+"\"]").addClass("selected"),show){var serviceCategory=filterResults.find(function(serviceCategory){return+serviceCategory.id===+id});display(serviceCategory),$("#edit-service-category, #delete-service-category").prop("disabled",!1)}}var $serviceCategories=$("#service-categories"),$filterServiceCategories=$("#filter-service-categories"),$id=$("#id"),$name=$("#name"),$description=$("#description"),filterResults={},filterLimit=20;return document.addEventListener("DOMContentLoaded",function initialize(){App.Pages.ServiceCategories.resetForm(),App.Pages.ServiceCategories.filter(""),App.Pages.ServiceCategories.addEventListeners()}),{filter:filter,save:function save(serviceCategory){App.Http.ServiceCategories.save(serviceCategory).then(function(response){App.Layouts.Backend.displayNotification(lang("service_category_saved")),App.Pages.ServiceCategories.resetForm(),$filterServiceCategories.find(".key").val(""),App.Pages.ServiceCategories.filter("",response.id,!0)})},remove:remove,validate:validate,getFilterHtml:function getFilterHtml(serviceCategory){return $("<div/>",{class:"service-category-row entry","data-id":serviceCategory.id,html:[$("<strong/>",{text:serviceCategory.name}),$("<br/>")]})},resetForm:function resetForm(){$filterServiceCategories.find(".selected").removeClass("selected"),$filterServiceCategories.find("button").prop("disabled",!1),$filterServiceCategories.find(".results").css("color",""),$serviceCategories.find(".add-edit-delete-group").show(),$serviceCategories.find(".save-cancel-group").hide(),$serviceCategories.find(".record-details").find("input, select, textarea").val("").prop("disabled",!0),$serviceCategories.find(".record-details .form-label span").prop("hidden",!0),$("#edit-service-category, #delete-service-category").prop("disabled",!0),$serviceCategories.find(".record-details .is-invalid").removeClass("is-invalid"),$serviceCategories.find(".record-details .form-message").hide()},display:display,select:select,addEventListeners:function addEventListeners(){$serviceCategories.on("submit","#filter-service-categories form",function(event){event.preventDefault();var key=$("#filter-service-categories .key").val();$(".selected").removeClass("selected"),App.Pages.ServiceCategories.resetForm(),App.Pages.ServiceCategories.filter(key)}),$serviceCategories.on("click",".service-category-row",function(event){if($("#filter-service-categories .filter").prop("disabled"))return void $("#filter-service-categories .results").css("color","#AAA");var serviceCategoryId=$(event.currentTarget).attr("data-id"),serviceCategory=filterResults.find(function(filterResult){return+filterResult.id===+serviceCategoryId});display(serviceCategory),$("#filter-service-categories .selected").removeClass("selected"),$(event.currentTarget).addClass("selected"),$("#edit-service-category, #delete-service-category").prop("disabled",!1)}),$serviceCategories.on("click","#add-service-category",function(){App.Pages.ServiceCategories.resetForm(),$serviceCategories.find(".add-edit-delete-group").hide(),$serviceCategories.find(".save-cancel-group").show(),$serviceCategories.find(".record-details").find("input, select, textarea").prop("disabled",!1),$serviceCategories.find(".record-details .form-label span").prop("hidden",!1),$filterServiceCategories.find("button").prop("disabled",!0),$filterServiceCategories.find(".results").css("color","#AAA")}),$serviceCategories.on("click","#edit-service-category",function(){$serviceCategories.find(".add-edit-delete-group").hide(),$serviceCategories.find(".save-cancel-group").show(),$serviceCategories.find(".record-details").find("input, select, textarea").prop("disabled",!1),$serviceCategories.find(".record-details .form-label span").prop("hidden",!1),$filterServiceCategories.find("button").prop("disabled",!0),$filterServiceCategories.find(".results").css("color","#AAA")}),$serviceCategories.on("click","#delete-service-category",function(){var serviceCategoryId=$id.val(),buttons=[{text:lang("cancel"),click:function click(event,messageModal){messageModal.hide()}},{text:lang("delete"),click:function click(event,messageModal){remove(serviceCategoryId),messageModal.hide()}}];App.Utils.Message.show(lang("delete_service_category"),lang("delete_record_prompt"),buttons)}),$serviceCategories.on("click","#save-service-category",function(){var serviceCategory={name:$name.val(),description:$description.val()};""!==$id.val()&&(serviceCategory.id=$id.val()),validate()&&App.Pages.ServiceCategories.save(serviceCategory)}),$serviceCategories.on("click","#cancel-service-category",function(){var id=$id.val();App.Pages.ServiceCategories.resetForm(),""!==id&&select(id,!0)})}}}(); |