1var parent_editor_id=''; 2var forms_catpcha_token=''; 3 4function wz_content_widget_form_submit_refresh(input_data){ 5 $('#form_submit_label').on('change', function() { 6 wz_content_widget_form_submit_return_result(); 7 }); 8 9 $('#form_identifier').on('change', function() { 10 wz_content_widget_form_submit_return_result(); 11 }); 12 13 $('#form_google_key').on('change', function() { 14 wz_content_widget_form_submit_return_result(); 15 }); 16 17 $('#form_success_message').on('change', function() { 18 wz_content_widget_form_submit_return_result(); 19 }); 20 21 wz_content_widget_form_submit_return_result(); 22} 23 24function wz_content_widget_form_submit_return_result(){ 25 26 var return_element='form_submit||'+$('#form_submit_label').val().trim()+'||'+$('#form_identifier').val().trim()+'||'+$('#form_success_message').val().trim()+'||'+$('#form_google_key').val().trim(); 27 var element_comments='Form Submit Button|//|Label: '+$('#form_submit_label').val().trim()+'|//|Identifier: '+$('#form_identifier').val().trim(); 28 29 wz_widget_return_result(parent_editor_id,return_element+'|//|'+element_comments); 30 31} 32 33function wz_content_widget_form_submit_captcha_success(token) { 34 forms_catpcha_token = token; 35} 36 37function wz_content_widget_form_submit(button_element) { 38 39 if($(button_element).data('has_captcha') == '1') { 40 // Get the captcha response token 41 const thisToken = grecaptcha.getResponse(); 42 43 if (!forms_catpcha_token) { 44 alert('Please complete the captcha first'); 45 return; 46 } 47 48 // Proceed with your action 49 wz_content_widget_form_perform_submit(button_element,thisToken); 50 } else { 51 wz_content_widget_form_perform_submit(button_element,''); 52 } 53 54} 55 56async function wz_content_widget_form_perform_submit(button_element,token) { 57 // Example: Call your API with the token 58 try { 59 60 let form_groups = wz_content_widget_form_get_groups(button_element); 61 let form_ids = wz_content_widget_form_get_group_ids(button_element); 62 63 let inputData={}; 64 65 inputData["do"]="submit_form"; 66 inputData["business_id"]=$(button_element).data('business_id'); 67 inputData["forms"]=form_ids; 68 inputData["token"]=token; 69 70 for (var i = 0; i < form_groups.length; i++) { 71 var form_group = form_groups[i]; 72 var form_elements = $('.forms_form_group_'+form_group).find('input, textarea, select'); 73 74 form_elements.each(function(){ 75 var form_element = $(this); 76 var form_element_name = form_element.attr('name'); 77 var form_element_value = form_element.val(); 78 79 // Handle array notation in names 80 var matches = form_element_name.match(/^([^\[]+)\[([^\]]+)\]$/); 81 82 if (matches) { 83 // matches[1] would be "fields" 84 // matches[2] would be the index/key 85 if (!inputData[matches[1]]) { 86 inputData[matches[1]] = {}; 87 } 88 inputData[matches[1]][matches[2]] = form_element_value; 89 } else { 90 // Handle regular names as before 91 inputData[form_element_name] = form_element_value; 92 } 93 }); 94 } 95 96 const response = await fetch(wz_config_ajax_url+'modules/store/forms.php', { 97 method: 'POST', 98 headers: { 99 'Content-Type': 'application/json' 100 }, 101 body: JSON.stringify(inputData), 102 }).then(response => response.json()).then((json_response)=>{ 103 104 if("result" in json_response){ 105 if(json_response.result == 1){ 106 107 for (var i = 0; i < form_groups.length; i++) { 108 var form_group = form_groups[i]; 109 110 $('.forms_form_group_'+form_group).find('input, textarea, select').each(function(){ 111 112 // Disable the input 113 $(this).prop('disabled', true); 114 115 }); 116 117 $('.forms_form_group_'+form_group).slideUp(); 118 119 } 120 121 let button_uid = $(button_element).data('uid'); 122 $('#form_submit_'+button_uid).fadeOut(function(){ 123 124 if("message" in json_response) { 125 $('#form_submit_'+button_uid).html(json_response.message); 126 } else { 127 $('#form_submit_'+button_uid).html('Thank y
127ou! The form has been submitted.'); 128 } 129 130 $('#forms_success_message_'+button_uid).fadeIn(); 131 132 }); 133 134 }else{ 135 if("message" in json_response) { 136 alert(json_response.message); 137 } else { 138 alert('An error occurred - the form was not submitted.'); 139 } 140 } 141 } 142 }); 143 144 // Handle response 145 } catch (error) { 146 console.error('Error:', error); 147 } 148} 149 150function wz_content_widget_form_get_groups(input_button_element){ 151 152 var full_groups = $(input_button_element).data('form_group'); 153 154 return full_groups.split(','); 155 156} 157function wz_content_widget_form_get_group_ids(input_button_element){ 158 159 var returnIds = []; 160 161 var full_groups = wz_content_widget_form_get_groups(input_button_element); 162 163 for (var i = 0; i < full_groups.length; i++) { 164 returnIds.push($('.forms_form_group_'+full_groups[i]).data('form_id')); 165 } 166 167 return returnIds; 168 169}
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.