1 line
6.8 KiB
JavaScript
Executable File
1 line
6.8 KiB
JavaScript
Executable File
"use strict";App.Pages.Webhooks=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.Webhooks.search(keyword,filterLimit).then(function(response){filterResults=response,$filterWebhooks.find(".results").empty(),response.forEach(function(webhook){$filterWebhooks.find(".results").append(App.Pages.Webhooks.getFilterHtml(webhook)).append($("<hr/>"))}),0===response.length?$filterWebhooks.find(".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.Webhooks.filter(keyword,selectId,show)}}).appendTo("#filter-webhooks .results"),selectId&&App.Pages.Webhooks.select(selectId,show)})}function select(id){var show=!!(1<arguments.length&&void 0!==arguments[1])&&arguments[1];if($filterWebhooks.find(".selected").removeClass("selected"),$filterWebhooks.find(".webhook-row[data-id=\""+id+"\"]").addClass("selected"),show){var webhook=filterResults.find(function(filterResult){return+filterResult.id===+id});App.Pages.Webhooks.display(webhook),$("#edit-webhook, #delete-webhook").prop("disabled",!1)}}var $webhooks=$("#webhooks"),$id=$("#id"),$name=$("#name"),$url=$("#url"),$actions=$("#actions"),$secretToken=$("#secret-token"),$isSslVerified=$("#is-ssl-verified"),$notes=$("#notes"),$filterWebhooks=$("#filter-webhooks"),filterResults={},filterLimit=20;return document.addEventListener("DOMContentLoaded",function initialize(){App.Pages.Webhooks.resetForm(),App.Pages.Webhooks.filter(""),App.Pages.Webhooks.addEventListeners()}),{filter:filter,save:function save(webhook){App.Http.Webhooks.save(webhook).then(function(response){App.Layouts.Backend.displayNotification(lang("webhook_saved")),App.Pages.Webhooks.resetForm(),$filterWebhooks.find(".key").val(""),App.Pages.Webhooks.filter("",response.id,!0)})},remove:function remove(id){App.Http.Webhooks.destroy(id).then(function(){App.Layouts.Backend.displayNotification(lang("webhook_deleted")),App.Pages.Webhooks.resetForm(),App.Pages.Webhooks.filter($filterWebhooks.find(".key").val())})},validate:function validate(){$webhooks.find(".is-invalid").removeClass("is-invalid"),$webhooks.find(".form-message").removeClass("alert-danger").hide();try{var missingRequired=!1;if($webhooks.find(".required").each(function(index,requiredField){$(requiredField).val()||($(requiredField).addClass("is-invalid"),missingRequired=!0)}),missingRequired)throw new Error(lang("fields_are_required"));return!0}catch(error){return $webhooks.find(".form-message").addClass("alert-danger").text(error.message).show(),!1}},getFilterHtml:function getFilterHtml(webhook){var name=webhook.name,actionCount=webhook.actions&&webhook.actions.length?webhook.actions.split(",").length:0,info="".concat(actionCount," ").concat(lang("actions"));return $("<div/>",{class:"webhook-row entry","data-id":webhook.id,html:[$("<strong/>",{text:name}),$("<br/>"),$("<small/>",{class:"text-muted",text:info}),$("<br/>")]})},resetForm:function resetForm(){$filterWebhooks.find(".selected").removeClass("selected"),$filterWebhooks.find("button").prop("disabled",!1),$filterWebhooks.find(".results").css("color",""),$webhooks.find(".record-details").find("input, select, textarea").val("").prop("disabled",!0),$webhooks.find(".record-details .form-label span").prop("hidden",!0),$webhooks.find(".record-details h3 a").remove(),$webhooks.find(".add-edit-delete-group").show(),$webhooks.find(".save-cancel-group").hide(),$("#edit-webhook, #delete-webhook").prop("disabled",!0),$webhooks.find(".record-details .is-invalid").removeClass("is-invalid"),$webhooks.find(".record-details .form-message").hide(),$actions.find("input:checkbox").prop("checked",!1)},display:function display(webhook){if($id.val(webhook.id),$name.val(webhook.name),$url.val(webhook.url),$secretToken.val(webhook.secret_token),$isSslVerified.prop("checked",!!+webhook.is_ssl_verified),$actions.find("input:checkbox").prop("checked",!1),webhook.actions&&webhook.actions.length){var actions=webhook.actions.split(",");actions.forEach(function(action){return $("[data-action=\"".concat(action,"\"]")).prop("checked",!0)})}},select:select,addEventListeners:function addEventListeners(){$webhooks.on("submit","#filter-webhooks form",function(event){event.preventDefault();var key=$filterWebhooks.find(".key").val();$filterWebhooks.find(".selected").removeClass("selected"),App.Pages.Webhooks.resetForm(),App.Pages.Webhooks.filter(key)}),$webhooks.on("click",".webhook-row",function(event){if($filterWebhooks.find(".filter").prop("disabled"))return void $filterWebhooks.find(".results").css("color","#AAA");var webhookId=$(event.currentTarget).attr("data-id"),webhook=filterResults.find(function(filterResult){return+filterResult.id===+webhookId});App.Pages.Webhooks.display(webhook),$filterWebhooks.find(".selected").removeClass("selected"),$(event.currentTarget).addClass("selected"),$("#edit-webhook, #delete-webhook").prop("disabled",!1)}),$webhooks.on("click","#add-webhook",function(){App.Pages.Webhooks.resetForm(),$webhooks.find(".add-edit-delete-group").hide(),$webhooks.find(".save-cancel-group").show(),$webhooks.find(".record-details").find("input, select, textarea").prop("disabled",!1),$webhooks.find(".record-details .form-label span").prop("hidden",!1),$filterWebhooks.find("button").prop("disabled",!0),$filterWebhooks.find(".results").css("color","#AAA")}),$webhooks.on("click","#cancel-webhook",function(){var id=$id.val();App.Pages.Webhooks.resetForm(),""!==id&&select(id,!0)}),$webhooks.on("click","#save-webhook",function(){var webhook={name:$name.val(),url:$url.val(),actions:"",secret_token:$secretToken.val(),is_ssl_verified:+$isSslVerified.prop("checked"),notes:$notes.val()},actions=[];$actions.find("input:checked").each(function(index,checkbox){var action=$(checkbox).data("action");actions.push(action)}),webhook.actions=actions.join(","),""!==$id.val()&&(webhook.id=$id.val()),App.Pages.Webhooks.validate()&&App.Pages.Webhooks.save(webhook)}),$webhooks.on("click","#edit-webhook",function(){$webhooks.find(".add-edit-delete-group").hide(),$webhooks.find(".save-cancel-group").show(),$webhooks.find(".record-details").find("input, select, textarea").prop("disabled",!1),$webhooks.find(".record-details .form-label span").prop("hidden",!1),$filterWebhooks.find("button").prop("disabled",!0),$filterWebhooks.find(".results").css("color","#AAA")}),$webhooks.on("click","#delete-webhook",function(){var webhookId=$id.val(),buttons=[{text:lang("cancel"),click:function click(event,messageModal){messageModal.hide()}},{text:lang("delete"),click:function click(event,messageModal){App.Pages.Webhooks.remove(webhookId),messageModal.hide()}}];App.Utils.Message.show(lang("delete_webhook"),lang("delete_record_prompt"),buttons)})}}}(); |