1/* global RefreshLeads */ 2( function () { 3 'use strict'; 4 5 function init( wrapper ) { 6 var form = wrapper.querySelector( '.rl-form' ); 7 if ( ! form ) { 8 return; 9 } 10 11 var startedAt = Date.now(); 12 var pageField = form.querySelector( 'input[name="page_url"]' ); 13 if ( pageField ) { 14 pageField.value = window.location.href; 15 } 16 17 var message = wrapper.querySelector( '.rl-message' ); 18 var button = form.querySelector( '.rl-submit' ); 19 var label = ( button && button.querySelector( '.rs-arrowbtn__label' ) ) || button; 20 var buttonText = label ? label.textContent : ''; 21 22 form.addEventListener( 'submit', function ( e ) { 23 e.preventDefault(); 24 25 if ( message ) { 26 message.textContent = ''; 27 message.className = 'rl-message'; 28 } 29 30 var elapsed = form.querySelector( 'input[name="elapsed_ms"]' ); 31 if ( elapsed ) { 32 elapsed.value = String( Date.now() - startedAt ); 33 } 34 35 var payload = {}; 36 var elements = form.querySelectorAll( 'input, textarea' ); 37 for ( var i = 0; i < elements.length; i++ ) { 38 if ( elements[ i ].name ) { 39 payload[ elements[ i ].name ] = elements[ i ].value; 40 } 41 } 42 43 button.disabled = true; 44 if ( label ) { label.textContent = 'Versturenâ¦'; } 45 46 fetch( RefreshLeads.restUrl, { 47 method: 'POST', 48 headers: { 'Content-Type': 'application/json' }, 49 body: JSON.stringify( payload ) 50 } ) 51 .then( function ( res ) { 52 return res.json().catch( function () { 53 return { success: false }; 54 } ); 55 } ) 56 .then( function ( data ) { 57 if ( data && data.success ) { 58 var redirect = wrapper.getAttribute( 'data-redirect' ); 59 if ( redirect ) { 60 window.location.href = redirect; 61 return; 62 } 63 form.reset(); 64 if ( message ) { 65 message.textContent = wrapper.getAttribute( 'data-success' ) || 'Bedankt!'; 66 message.classList.add( 'rl-success' ); 67 } 68 } else { 69 showError( message, ( data && data.error ) || 'Er ging iets mis. Probeer het opnieuw.' ); 70 } 71 } ) 72 .catch( function () { 73 showError( message, 'Verzenden mislukt. Controleer je verbinding en probeer het opnieuw.' ); 74 } ) 75 .finally( function () { 76 button.disabled = false; 77 if ( label ) { label.textContent = buttonText; } 78 } ); 79 } ); 80 } 81 82 function showError( message, text ) { 83 if ( message ) { 84 message.textContent = text; 85 message.classList.add( 'rl-error' ); 86 } 87 } 88 89 document.addEventListener( 'DOMContentLoaded', function () { 90 var forms = document.querySelectorAll( '.refresh-lead-form' ); 91 for ( var i = 0; i < forms.length; i++ ) { 92 init( forms[ i ] ); 93 } 94 } ); 95} )();
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.