1 2(function($, Drupal, drupalSettings, once){ 3 "use strict"; 4 5 Drupal.behaviors.HologicHoneypot = { 6 attach: function (context, settings) { 7 $(document).ready(function() { 8 9 10 jQuery("form").each(function() { 11 let form = jQuery(this); 12 13 // Only add honeypot once per form 14 if (form.find("input[name='hologic_dataset']").length === 0) { 15 jQuery('<input>', { 16 type: 'text', 17 class: 'form-control', 18 name: 'hologic_dataset', 19 value: '', 20 tabindex: -1, 21 'aria-hidden': true 22 }).css({display:'none'}).prependTo(form); 23 } 24 }); 25 26 27 jQuery("input[name='hologic_dataset']").change(function(){ 28 var hologic_datasetdata = jQuery(this).val(); 29 jQuery( this ).closest( "form" ).find('input[type="submit"]').attr('disabled','disabled'); 30 jQuery( this ).closest( "form" ).find('button[type="submit"]').prop("disabled", true); 31 jQuery( this ).closest( "form" ).find('input[type="button"]').attr('disabled','disabled'); 32 jQuery( this ).closest( "form" ).find('button[type="button"]').prop("disabled", true); 33 jQuery( this ).closest( "form" ).find('button').attr('disabled','disabled'); 34 jQuery('form input[type="submit"]:disabled, button[type=submit]:disabled, form button:disabled, button[type=button]:disabled').css({ 35 'opacity': 1, 36 }); 37 38 39 var hologic_datasetdata = jQuery(this).val(); 40 var hologic_datasetlength = hologic_datasetdata.length; 41 if( hologic_datasetlength == 0 ){ 42 jQuery( this ).closest( "form" ).find('button[type="submit"]').prop("disabled", false); 43 jQuery( this ).closest( "form" ).find('button[type="button"]').prop("disabled", false); 44 jQuery( this ).closest( "form" ).find('input[type="submit"]').removeAttr('disabled'); 45 jQuery( this ).closest( "form" ).find('input[type="button"]').removeAttr('disabled'); 46 jQuery( this ).closest( "form" ).find('button').removeAttr('disabled'); 47 jQuery('form input[type="submit"], button[type=submit], form button, button[type=button]').css({'opacity' : '' }); 48 } 49 }); 50 51 jQuery("input[name='hologic_dataset']").css({ 52 'visibility': 'hidden', 53 'height': 0, 54 'width': 0, 55 'display': 'none' 56 }); 57 58 59 // captured submit event to the 60 jQuery("form").submit(function(event) { 61 var data = jQuery(this).find("input[name='hologic_dataset']").val(); 62 var length = data.length; 63 // condition to prevent the submission 64 if(length > 0) { 65 return false; 66 event.preventDefault(); 67 } 68 69 }); 70 71 }) 72 } 73 }; 74 75})(jQuery, Drupal, drupalSettings, once);
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.