[BACK]Return to form.min.js CVS log [TXT][DIR] Up to [local] / draft

Diff for /draft/form.min.js between version 1.103 and 1.104

version 1.103, 2024/04/02 07:28:58 version 1.104, 2024/04/02 18:32:59
Line 1 
Line 1 
 const form = document.querySelector("#cform");  
   
 function parseString(str) {  
         return str.replace(/[!~`%&^{}\[\]<>|\\\/"'@#$;]/g, '_');  
 }  
   
 function parseMail(email) {  
         return email.toLowerCase().slice(0,96);  
 }  
   
 function validateMail(email) {  
         const regex = /^[a-z0-9._%+-]+@[a-z0-9.-]+(\.[a-z]{2,})+$/;  
         return regex.test(email);  
 };  
   
 function parseSubj(subject) {  
         return parseString(subject).slice(0,96);  
 }  
   
 function validateSubj(subject) {  
         return (subject.length>3);  
 }  
   
 function parseMess(msg) {  
         return parseString(msg).slice(0,3904);  
 }  
   
 function validateMess(msg) {  
         return (msg.length>3);  
 }  
   
 async function sendData() {  
         var erro = 0,  
                 info = document.getElementById("cfinfo"),  
                 mail = parseMail(document.getElementById("cfem").value),  
                 subj = parseSubj(document.getElementById("cfsu").value),  
                 mess = parseMess(document.getElementById("cfme").value);  
   
         erro=validateMail(mail)?erro:++erro;  
         erro=validateSubj(subj)?erro:++erro;  
         erro=validateMess(mess)?erro:++erro;  
   
         if(erro) {  
                 info.textContent="One or more fields have an error. Please check and try again."  
         } else {  
                 var fcon = document.querySelectorAll(".wpcf7-form-control");  
   
                 info.textContent="Verifying..."  
                 fcon.forEach((f) => {  
                 f.disabled=true;  
                         l=f;  
                 });  
                 l.style.visibility="hidden";  
                 turnstile.ready(function() {  
                         turnstile.render('#cfcontainer', {  
                                 retry: 'never',  
                                 theme: 'light',  
                                 'response-field': false,  
                                 sitekey: '0x4AAAAAAAVpXFEy152AON1L',  
                                 'error-callback': function(e) {  
                                         info.textContent="Verification error. Try again later.";  
                                         turnstile.remove();  
                                 },  
                                 callback: function(token) {  
                                         const data = JSON.stringify({"add": mail, "sub": subj, "msg": mess, "tok": token});  
                                         info.textContent="Sending...";  
                                         fetch("/feedbk/", {  
                                                 headers: { "Content-Type": "application/json" },  
                                                 credentials: "same-origin",  
                                                 mode: "same-origin",  
                                                 method: "post",  
                                                 body: data  
                                         })  
                                         .then(response => response.json())  
                                         .then(json => info.textContent=json['msg'])  
                                         .then(turnstile.remove());  
                                 }  
                         });  
                 });  
         };  
 }  
   
 form.addEventListener("submit", (event) => {  
         event.preventDefault();  
         sendData();  
 });  
   
   

Legend:
Removed from v.1.103  
changed lines
  Added in v.1.104

https://cvs.kroczynski.net