| 1 |
import SweetAlert from"sweetalert2";import*as lpUtils from"../utils.js";!function(){"use strict";const e=window.lpWebhooksSettings||{};if(!e.is_webhook_section)return;const t=window.lpAJAXG;if(!t||"function"!=typeof t.fetchAJAX)return;const o=e.actions||{},l=e.i18n||{},r=document.querySelector("#lp-webhook-id"),s=document.querySelector("#lp-webhook-name"),c=document.querySelector("#lp-webhook-delivery-url"),a=document.querySelector("#lp-webhook-secret"),n=document.querySelector("#lp-webhook-status"),i=document.querySelector("#lp-webhook-events"),u=document.querySelector("#lp-webhook-submit"),d=document.querySelector("#lp-webhook-cancel"),p=document.querySelector("#lp-webhook-regenerate-editor"),h=document.querySelector("#lp-webhook-editor-title"),w=document.querySelector("#lp-webhook-editor-holder"),y=document.querySelector("#lp-webhook-editor"),b=document.querySelector("#lp-webhook-editor-fields"),f=document.querySelector("#lp-webhook-editor-actions"),k=document.querySelector("#lp-webhook-status-message"),m=document.querySelector("#lp-webhook-secret-reveal"),v=document.querySelector("#lp-webhook-secret-value");let q=!0;const g=()=>i?.tomselect||i?.tomSelectInstance||null,S=(e="",t=!1)=>{k&&(k.textContent=e,k.style.color=t?"#b32d2e":"#1e1e1e")},_=e=>{u&&(u.disabled=!!e||q,u.classList.toggle("loading",!!e))},C=e=>{q=!!e,[s,c,a,n,i,u,d,p].forEach(e=>{e&&(e.disabled=q)});const t=g();t&&(q&&"function"==typeof t.disable?t.disable():"function"==typeof t.enable&&t.enable()),u?.classList.contains("loading")&&(u.disabled=!0)},A=(e=!1)=>{a&&(a.placeholder=e?l.secret_edit_placeholder||"Leave blank to keep the current secret.":l.secret_create_placeholder||"Leave blank to auto-generate a secret.")},B=(e=!0)=>{b&&(b.style.display=e?"":"none"),f&&(f.style.display=""),e||[u,d,p].forEach(e=>{e&&(e.style.display="none")})},x=()=>{m&&(m.style.display="none"),v&&(v.value="")},I=e=>{e&&m&&v&&(v.value=e,m.style.display="block")},R=()=>{y&&w&&SweetAlert.fire({html:'<div id="lp-webhook-editor-popup"></div>',width:860,showConfirmButton:!1,showCloseButton:!0,showCancelButton:!1,focusConfirm:!1,customClass:{popup:"lp-webhook-editor-popup"},didOpen:()=>{const e="function"==typeof SweetAlert.getPopup?SweetAlert.getPopup():null,t=e?.querySelector("#lp-webhook-editor-popup");t&&(y.style.display="block",t.appendChild(y),i&&!g()&&"function"==typeof window.lpFindTomSelect&&window.lpFindTomSelect(),C(!1),s?.focus())},willClose:()=>{C(!0),y.style.display="none",w.appendChild(y)}})},W=()=>{"function"==typeof SweetAlert.close&&SweetAlert.close()},D=(e=[])=>{if(!i)return;const t=g();t?t.setValue(e,!0):i.querySelectorAll("option").forEach(t=>{t.selected=e.includes(t.value)})},P=()=>{if(!i)return[];const e=g();if(e){const t=e.getValue();return Array.isArray(t)?t:[t].filter(Boolean)}return Array.from(i.querySelectorAll("option:checked")).map(e=>e.value)},E=()=>{r&&(r.value="0"),s&&(s.value=""),c&&(c.value=""),a&&(a.value=""),A(),n&&(n.value="active"),h&&(h.textContent=l.create_title||"Create Webhook"),u&&(u.textContent=l.create_button||"Create Webhook",u.style.display=""),d&&(d.style.display="none"),p&&(p.style.display="none"),B(),D(),x(),S()},T=(e,o={})=>{t.fetchAJAX(e,{success:e=>{"function"==typeof o.success&&o.success(e)},error:e=>{"function"==typeof o.error&&o.error(e)},completed:()=>{"function"==typeof o.completed&&o.completed()}})},J=async()=>{const e=document.querySelector(".lp-webhook-list");if(e)try{const t=await fetch(window.location.href,{method:"GET",credentials:"same-origin",cache:"no-store"});if(!t.ok)return;const o=await t.text(),l=(new DOMParser).parseFromString(o,"text/html").querySelector(".lp-webhook-list");l&&e.replaceWith(l)}catch{}},L=e=>{e&&window.confirm(l.confirm_regenerate||"Regenerate this webhook secret?")&&(S(l.processing||"Processing..."),T({action:o.regenerate||"regenerate_webhook_secret",webhook_id:e},{success:e=>{const t=e?.message||l.request_failed||"Request failed.";S(t,"success"!==e?.status),"success"===e?.status&&(I(e?.data?.secret||""),J())},error:()=>S(l.request_failed||"Request failed.",!0)}))};lpUtils.eventHandlers("click",[{selector:"#lp-webhook-open-create",callBack:e=>{const{e:t}=e;t.preventDefault(),E(),R()}},{selector:".lp-webhook-edit",callBack:e=>{const{e:t,target:o}=e;t.preventDefault();const i=o.closest(".lp-webhook-edit");try{(w=JSON.parse(i.dataset.webhook||"{}"))&&(r&&(r.value=w.webhook_id||0),s&&(s.value=w.name||""),c&&(c.value=w.delivery_url||""),a&&(a.value=""),A(!0),n&&(n.value=w.status||"active"),h&&(h.textContent=l.edit_title||"Edit Webhook"),u&&(u.textContent=l.update_button||"Update Webhook",u.style.display=""),d&&(d.style.display=""),p&&(p.style.display=""),B(),D(Array.isArray(w.events)?w.events:[]),x(),S(),R())}catch{S(l.request_failed||"Request failed.",!0)}var w}},{selector:".lp-webhook-delete",callBack:e=>{const{e:t,target:s}=e;t.preventDefault();const c=s.closest(".lp-webhook-delete");var a;(a=parseInt(c.dataset.webhookId,10)||0)&&window.confirm(l.confirm_delete||"Delete this webhook?")&&(S(l.processing||"Processing..."),T({action:o.delete||"delete_webhook",webhook_id:a},{success:e=>{const t=e?.message||l.request_failed||"Request failed.";S(t,"success"!==e?.status),"success"===e?.status&&(r&&parseInt(r.value,10)===a&&E(),J())},error:()=>S(l.request_failed||"Request failed.",!0)}))}},{selector:".lp-webhook-regenerate",callBack:e=>{const{e:t,target:o}=e;t.preventDefault();const l=o.closest(".lp-webhook-regenerate");L(parseInt(l.dataset.webhookId,10)||0)}},{selector:"#lp-webhook-submit",callBack:()=>{(()=>{if(!u||!s||!c)return;if(!s.reportValidity()||!c.reportValidity())return;const e=r&&parseInt(r.value,10)||0,t=e>0,i={action:t?o.update||"update_webhook":o.create||"create_webhook",webhook_id:e,name:s.value,delivery_url:c.value,secret:a?a.value:"",status:n?n.value:"active",events:P()};_(!0),S(l.processing||"Processing..."),T(i,{success:e=>{const o=e?.message||l.request_failed||"Request failed.";if("success"!==e?.status)return void S(o,!0);if(J(),t)return W(),void E();const r=e?.data?.webhook?.secret||"";E(),h&&(h.textContent=l.created_title||"Webhook Created"),B(!1),I(r),S(o),C(!0)},error:()=>S(l.request_failed||"Request failed.",!0),completed:()=>_(!1)})})()}},{selector:"#lp-webhook-cancel",callBack:()=>{E(),W()}},{selector:"#lp-webhook-regenerate-editor",callBack:()=>{L(r&&parseInt(r.value,10)||0)}},{selector:"#lp-webhook-copy-secret",callBack:()=>{(async()=>{if(v)try{navigator.clipboard?.writeText?await navigator.clipboard.writeText(v.value):(v.select(),document.execCommand("copy")),S(l.copy_success||"Copied.")}catch{S(l.copy_fallback||"Copy this value manually.")}})()}}]),A(),C(!0)}(); |