1import { init } from "src/util"; 2import SignaturePad from "signature_pad"; 3 4function init_signature_pad() { 5 $("canvas.signature_pad").each(function () { 6 const canvas = $(this), 7 signature_pad = new SignaturePad(this); 8 9 this.signaturePad = signature_pad; 10 11 let readonly = 12 canvas.data("readonly") == true || canvas.data("readonly") == "true" || canvas.attr("data-readonly") == ""; 13 if (readonly) signature_pad.off(); 14 15 let data = canvas.data("path"); 16 if (data) signature_pad.fromData(data); 17 18 canvas 19 .siblings(".signature-label") 20 .find(".clear-signature-pad") 21 .on("click", function (e) { 22 e.preventDefault(); 23 signature_pad.clear(); 24 }); 25 26 $(this) 27 .parents("form") 28 .on("submit", function () { 29 canvas.siblings('input.path_field[type="hidden"]').val(JSON.stringify(signature_pad.toData())); 30 canvas.siblings('input.data_uri_field[type="hidden"]').val(signature_pad.toDataURL()); 31 }); 32 33 return true; 34 }); 35} 36 37function signature_method_toggle() { 38 $( 39 'input[type="radio"][name="contractor_program_application[agreement_method]"], input[type="radio"][name="certificate_of_completion[signature_method]"]' 40 ).each(function () { 41 let elem = $(this), 42 container = elem.parents(".signature_container"), 43 electronic_agreement_method = container.find(".electronic_agreement_method, .electronic_signature_method"), 44 offline_agreement_method = container.find(".offline_agreement_method, .offline_signature_method"); 45 elem.on("change", function () { 46 if (this.value == "electronic") { 47 electronic_agreement_method.removeClass("d-none"); 48 offline_agreement_method.addClass("d-none"); 49 } else if (this.value == "offline") { 50 offline_agreement_method.removeClass("d-none"); 51 electronic_agreement_method.addClass("d-none"); 52 } 53 }); 54 }); 55} 56 57init(init_signature_pad, signature_method_toggle);
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.