1/** 2 * 3 */ 4 5(function (window, $, undefined) { 6 $(document).ready(function () { 7 var load_selectWoo = true; 8 var address_book = $( 9 "select#shipping_address:visible, select#address_book:visible" 10 ); 11 12 if ( 13 woo_address_book.shipping_custom == "" || 14 woo_address_book.shipping_custom == null 15 ) { 16 // Check for Selectize being used. 17 if ($.fn.selectize) { 18 if ( 19 address_book.hasClass("selectized") && 20 address_book[0] && 21 address_book[0].selectize 22 ) { 23 load_selectWoo = false; 24 } 25 } 26 27 // SelectWoo / Select2 Enhancement if it exists. 28 if (load_selectWoo) { 29 if ($.fn.selectWoo) { 30 address_book.selectWoo(); 31 } else if ($.fn.select2) { 32 address_book.select2(); 33 } 34 } 35 } 36 37 if (woo_address_book.consignment_order == "yes") { 38 setTimeout(function () { 39 $("select#address_book").css("pointer-events", "none"); 40 }, 1000); 41 } 42 43 if ( 44 woo_address_book.shipping_custom != "" && 45 woo_address_book.consignment_order != "yes" 46 ) { 47 var name = woo_address_book.shipping_custom; 48 $('select#address_book option:not([value="' + name + '"])').removeAttr( 49 "selected" 50 ); 51 $('select#address_book option[value="' + name + '"]').attr( 52 "selected", 53 "selected" 54 ); 55 56 $("select#address_book").css("pointer-events", "none"); 57 } 58 59 if ( 60 woo_address_book.shipping_custom != "" && 61 woo_address_book.consignment_order == "yes" 62 ) { 63 var name = woo_address_book.shipping_custom; 64 $('select#address_book option:not([value="' + name + '"])').removeAttr( 65 "selected" 66 ); 67 $('select#address_book option[value="' + name + '"]').attr( 68 "selected", 69 "selected" 70 ); 71 72 let curUrl = window.location.href; 73 if(!curUrl.includes('?address-book')) { 74 $("#shipping_first_name").attr("readonly", "readonly"); 75 $("#shipping_last_name").attr("readonly", "readonly"); 76 $("#shipping_company").attr("readonly", "readonly"); 77 $("#shipping_address_1").attr("readonly", "readonly"); 78 $("#shipping_address_2").attr("readonly", "readonly"); 79 $("#shipping_country").attr("readonly", "readonly"); 80 $("#shipping_city").attr("readonly", "readonly"); 81 $("#shipping_state") 82 .attr("readonly", "readonly") 83 .css("pointer-events", "none"); 84 $("#shipping_postcode").attr("readonly", "readonly"); 85 $("select#address_book").css("pointer-events", "none"); 86 $("a.button.add-new-btn-smg").hide(); 87 } 88 } 89 90 /* 91 * AJAX call to delete address books. 92 */ 93 $(".address_book .wc-address-book-delete").click(function (e) { 94 e.preventDefault(); 95 96 $(this) 97 .closest(".wc-address-book-address") 98 .addClass("blockUI blockOverlay wc-updating"); 99 100 var name = $(this).attr("id"); 101 102 $.ajax({ 103 url: woo_address_book.ajax_url, 104 type: "post", 105 data: { 106 action: "wc_address_book_delete", 107 name: name, 108 nonce: woo_address_book.delete_security, 109 }, 110 success: function (response) { 111 $(".wc-updating").remove(); 112 }, 113 }); 114 }); 115 116 /* 117 * AJAX call to switch address to primary. 118 */ 119 $(".address_book .wc-address-book-make-primary").click(function (e) { 120 e.preventDefault(); 121 122 var name = $(this).attr("id"); 123 var primary_address = $( 124 ".woocommerce-Addresses .u-column2.woocommerce-Address address" 125 ); 126 var alt_address = $(this).parent().siblings("address"); 127 128 // Swap HTML values for address and label. 129 var pa_html = primary_address.html(); 130 var aa_html = alt_address.html(); 131 132 alt_address.html(pa_html); 133 primary_address.html(aa_html); 134 135 primary_address.addClass("blockUI blockOverlay wc-updating"); 136 alt_address.addClass("blockUI blockOverlay wc-updating"); 137 138 $.ajax({ 139 url: woo_address_book.ajax_url, 140 type: "post", 141 data: { 142 action: "wc_address_book_make_primary", 143 name: name, 144 nonce: woo_address_book.primary_security, 145 }, 146 success: function (response) { 147 $(".wc-updating").removeClass("blockUI blockOverlay wc-updating"); 148 }, 149 }); 150 }); 151 152 /* 153 * AJAX call display address on checkout when selected. 154 */ 155 156 /*$(document).on("click", ".checkout-consignment .select-shp", function (e) { 157 e.preventDefault(); 158 const name = $(this).attr("name") ?? "", 159 initial_orders = $(this).attr("initial_orders"), 160 more_than_orders = $(this).attr("more_than_orders"), 161 on_hand = $(this).attr("on_hand"), 162 max_inventory = $(this).attr("max"); 163 164 localStorage.setItem("initial_orders", initial_orders); 165 localStorage.setItem("more_than_orders", more_than_orders); 166 localStorage.setItem("on_hand", on_hand); 167 localStorage.setItem("max_inventory", max_inventory); 168 });*/ 169 170 function shipping_checkout_field_prepop() { 171 var that = $("#address_book_field #address_book"); 172 var name = $(that).val(); 173 174 if (name !== undefined) { 175 if ("add_new" == name) { 176 // Clear values when adding a new address. 177 $(".shipping_address input") 178 .not($("#shipping_country")) 179 .each(function () { 180 $(this).val(""); 181 }); 182 183 // Set Country Dropdown. 184 // Don't reset the value if only one country is available to choose. 185 var country_input = $("#shipping_country"); 186 if ( 187 country_input.length > 0 && 188 country_input.attr("readonly") !== "readonly" 189 ) { 190 country_input.val("").change(); 191 $("#shipping_country_chosen").find("span").html(""); 192 } 193 194 // Set state dropdown. 195 var state_input = $("#shipping_state"); 196 if ( 197 state_input.length > 0 && 198 state_input.attr("readonly") !== "readonly" 199 ) { 200 state_input.val("").change(); 201 $("#shipping_state_chosen").find("span").html(""); 202 } 203 204 return; 205 } 206 207 if (name.length > 0) { 208 $(that) 209 .closest(".shipping_address") 210 .addClass("blockUI blockOverlay wc-updating"); 211 212 var initial_orders = localStorage.getItem("initial_orders"), 213 more_than_orders = localStorage.getItem("more_than_orders"), 214 on_hand = localStorage.getItem("on_hand"), 215 max_inventory = localStorage.getItem("max_inventory"); 216 217 $.ajax({ 218 url: woo_address_book.ajax_url, 219 type: "post", 220 data: { 221 action: "wc_address_book_checkout_update", 222 name: name, 223 initial_orders: initial_orders, 224 more_than_orders: more_than_orders, 225 on_hand: on_hand, 226 max_inventory: max_inventory, 227 nonce: woo_address_book.checkout_security, 228 }, 229 dataType: "json", 230 beforeSend: function () { 231 // setting a timeout 232 $("select#address_book").attr("disabled", true); 233 $("div.info_product").empty(); 234 }, 235 success: function (response) { 236 console.log("response", response); 237 $("select#address_book").attr("disabled", false); 238 // Loop through all fields incase there are custom ones. 239 /*Object.keys(response).forEach(function (key) { 240 var input = $("#" + key); 241 if (input.length > 0 && input.attr("readonly") !== "readonly") { 242 input.val(response[key]).change(); 243 } 244 });*/ 245 246 if (response.validate == 1) { 247 let input = null; 248 $(document).ready(function () { 249 input = `<p class="">To place a Replenishment Order for the product/s in your cart, please fill out each of the fields below.</p>`; 250 $(".product_fields").append(input); 251 if (response.productos.length == 0 || !response.productos) { 252 $(".product_fields").hide(); 253 } 254 if ( 255 localStorage.getItem("on_hand") != "" && 256 localStorage.getItem("on_hand") > 0 257 ) { 258 console.log("on handd"); 259 if ( 260 localStorage.getItem("max_inventory") > 261 localStorage.getItem("on_hand") 262 ) { 263 console.log("work", localStorage.getItem("on_hand")); 264 $("form.checkout.woocommerce-checkout").append(` 265 <input type="hidden" name="consignment_type" value="I"> 266 `); 267 } else if ( 268 localStorage.getItem("max_inventory") < 269 localStorage.getItem("on_hand") 270 ) { 271 $("form.checkout.woocommerce-checkout").append(` 272 <input type="hidden" name="consignment_type" value="R"> 273 `); 274 } 275 } else if ( 276 localStorage.getItem("on_hand") == "" || 277 localStorage.getItem("on_hand") == 0 278 ) { 279 $("form.checkout.woocommerce-checkout").append(` 280 <input type="hidden" name="consignment_type" value="I"> 281 `); 282 } 283 $.each(response.productos, function (i, val) { 284 input = ` 285 <div class="info_product"> 286 <p style="display: block">Allograft Application Log for ${val.name}</p> 287 <p class="form-row form-row-first input-text validate-required" type_field="donor_id_consignment_field" id="donor_id_consignment_field_${i}_${val.ID}"> 288 <label for="donor_id_consignment_${i}_${val.ID}">Donor ID <abbr class="required" title="required">*</abbr></label>
289 <span class="woocommerce-input-wrapper"> 290 <input type="text" class="input-text" name="data_consignment[${i}][donor_id_consignment_${i}_${val.ID}]" id="donor_id_consignment_${i}_${val.ID}" placeholder="" value=""> 291 </span> 292 </p> 293 294 <p class="form-row form-row-last input-text" type_field="lot_or_tissue_id_consignment" id="lot_or_tissue_id_consignment_field_${i}_${val.ID}"> 295 <label for="lot_or_tissue_id_consignment_${i}_${val.ID}">Lot# or Tissue ID <abbr class="required" title="required">*</abbr></label> 296 <span class="woocommerce-input-wrapper"> 297 <input type="text" class="input-text" name="data_consignment[${i}][lot_or_tissue_id_consignment_${i}_${val.ID}]" id="lot_or_tissue_id_consignment_${i}_${val.ID}" placeholder="" value=""> 298 <label class="msg" style="color: #ff0000; display: none;">This tissue ID or Lot# was used.</label> 299 </span> 300 </p> 301 <p class="form-row form-row-first input-text validate-required" type_field="provider_name_consignment" id="provider_name_consignment_field_${i}_${val.ID}"> 302 <label for="provider_name_consignment_${i}_${val.ID}">Provider Name <abbr class="required" title="required">*</abbr></label> 303 <span class="woocommerce-input-wrapper"> 304 <input type="text" class="input-text" name="data_consignment[${i}][provider_name_consignment_${i}_${val.ID}]" id="provider_name_consignment" placeholder="" value=""> 305 </span> 306 </p> 307 308 <p class="form-row form-row-last input-text hasDatepicker validate-required" type_field="date_of_service_consignment" id="date_of_service_consignment_field_${i}_${val.ID}"> 309 <label for="date_of_service_consignment_${i}_${val.ID}">Date of Service <i>For used product only</i> <abbr class="required" title="required">*</abbr></label> 310 <span class="woocommerce-input-wrapper"> 311 <input type="text" class="input-text flatpickr-input" name="data_consignment[${i}][date_of_service_consignment_${i}_${val.ID}]" id="date_of_service_consignment_${i}_${val.ID}" placeholder="" value="" readonly="readonly"> 312 </span> 313 </p> 314 <p class="form-row form-row-first input-text validate-required" type_field="patient_first_last_name" id="patient_first_last_name_field_${i}_${val.ID}"> 315 <label for="patient_first_last_name_consignment_${i}_${val.ID}">Patient First & Last name</i> <abbr class="required" title="required">*</abbr></label> 316 <span class="woocommerce-input-wrapper"> 317 <input type="text" class="input-text" name="data_consignment[${i}][patient_first_last_name_consignment_${i}_${val.ID}]" id="patient_first_last_name_consignment_${i}_${val.ID}" placeholder="" value=""> 318 </span> 319 </p> 320 </div>`; 321 322 $(document).ready(function () { 323 $( 324 "#date_of_service_consignment_" + i + "_" + val.ID 325 ).flatpickr({ 326 maxDate: new Date(), 327 minDate: "2022-01", 328 dateFormat: "m-d-Y", 329 locale: { 330 firstDayOfWeek: 0, 331 }, 332 }); 333 334 /** 335 * Validation Tissue ID 336 */ 337 // $("#lot_or_tissue_id_consignment_" + i + "_" + val.ID).on( 338 // "blur", 339 // function () { 340 // var $input = $(this); 341 // var wrapper = $input.closest(".form-row"); 342 // var wrapper_label = $input.closest(
343 // ".form-row span.woocommerce-input-wrapper label.msg" 344 // ); 345 // var lot_or_tissue_id = $input.val(); 346 // console.log('SI ES BLUR', lot_or_tissue_id) 347 // /*$.post( 348 // smg_global.ajaxurl, 349 // { 350 // action: "validate_lot_number", 351 // lot_number_consignment: lot_or_tissue_id, 352 // }, 353 // function (data) { 354 // console.log('la respuesta', data) 355 // if (!data) { 356 // wrapper 357 // .removeClass("woocommerce-validated") 358 // .addClass("woocommerce-invalid"); 359 // wrapper_label.show(); 360 // } else { 361 // wrapper 362 // .removeClass("woocommerce-invalid") 363 // .addClass("woocommerce-validated"); 364 // wrapper_label.hide(); 365 // } 366 // }, 367 // "json" 368 // );*/ 369 // } 370 // ); 371 372 /** 373 * Validation fields 374 */ 375 376 $("body").on( 377 "blur change", 378 "#donor_id_consignment_field_" + i + "_" + val.ID, 379 function () { 380 var wrapper = $(this).closest(".form-row"); 381 if ( 382 $( 383 "#donor_id_consignment_" + i + "_" + val.ID 384 ).val() == "" 385 ) { 386 wrapper 387 .removeClass("woocommerce-validated") 388 .addClass("woocommerce-invalid"); 389 } else { 390 wrapper 391 .removeClass("woocommerce-invalid") 392 .addClass("woocommerce-validated"); 393 } 394 } 395 ); 396 397 $("body").on( 398 "blur change", 399 "#provider_name_consignment_field_" + i + "_" + val.ID, 400 function () { 401 var wrapper = $(this).closest(".form-row"); 402 if ( 403 $( 404 "#provider_name_consignment_" + i + "_" + val.ID 405 ).val() == "" 406 ) { 407 wrapper 408 .removeClass("woocommerce-validated") 409 .addClass("woocommerce-invalid"); 410 } else { 411 wrapper 412 .removeClass("woocommerce-invalid") 413 .addClass("woocommerce-validated"); 414 } 415 } 416 ); 417 418 $("body").on( 419 "blur change", 420 "#date_of_service_consignment_field_" + 421 i + 422 "_" + 423 val.ID, 424 function () { 425 var wrapper = $(this).closest(".form-row"); 426 if ( 427 $( 428 "#date_of_service_consignment_" + i + "_" + val.ID 429 ).val() == "" 430 ) { 431 wrapper 432 .removeClass("woocommerce-validated") 433 .addClass("woocommerce-invalid"); 434 } else { 435 wrapper 436 .removeClass("woocommerce-invalid") 437 .addClass("woocommerce-validated"); 438 } 439 } 440 ); 441 442 $(document).on( 443 "blur change", 444 "#patient_first_last_name_consignment_" + 445 i + 446 "_" + 447 val.ID, 448 function () { 449 var self = $(this), 450 wrapper = self.closest(".form-row"); 451 if (self.val() != "") { 452 wrapper 453 .removeClass("woocommerce-invalid") 454 .addClass("woocommerce-validated"); 455 } else { 456 wrapper 457 .removeClass("woocommerce-validated") 458 .addClass("woocommerce-invalid"); 459 } 460 } 461 ); 462 }); 463 464 $(".product_fields").append(input); 465 }); 466 }); 467 468 $(".order_consignment").show(); 469 $("#last_order_id_consignment").val(response.order); 470 $("#type_order_consignment").val( 471 response.type_order_consignment 472 ); 473 474 $wrapper = $(".form-row"); 475 if (woo_address_book.consignment_order == "yes") { 476 $wrapper.each(function () { 477 var self = $(this), 478 id = self.attr("id"); 479 480 if (id == "shipping_first_name_field") { 481 self 482 .removeClass("woocommerce-invalid") 483 .addClass("woocommerce-validated"); 484 } 485 486 if (id == "address_book_field") { 487 self 488 .removeClass("woocommerce-invalid") 489 .addClass("woocommerce-validated"); 490 } 491 492 if (id == "shipping_last_name_field") { 493 self 494 .removeClass("woocommerce-invalid") 495 .addClass("woocommerce-validated"); 496 } 497 498 if (id == "shipping_company_field") { 499 self 500 .removeClass("woocommerce-invalid") 501 .addClass("woocommerce-validated"); 502 } 503 504 if (id == "shipping_address_1_field") { 505 self 506 .removeClass("woocommerce-invalid") 507 .addClass("woocommerce-validated"); 508 } 509 510 if (id == "shipping_city_field") { 511 $(".form-row#shipping_city_field") 512 .removeClass("woocommerce-invalid") 513 .addClass("woocommerce-validated"); 514 self 515 .removeClass("woocommerce-invalid") 516 .addClass("woocommerce-validated"); 517 } 518 519 if (id == "shipping_state_field") { 520 setTimeout(function () { 521 //$('.form-row#shipping_state_field').removeClass('validate-state'); 522 $(".form-row#shipping_state_field") 523 .removeClass("woocommerce-invalid") 524 .addClass("woocommerce-validated"); 525 self 526 .removeClass("woocommerce-invalid") 527 .addClass("woocommerce-validated"); 528 }, 1500); 529 } 530 531 if (id == "shipping_postcode_field") { 532 self 533 .removeClass("woocommerce-invalid") 534 .addClass("woocommerce-validated"); 535 } 536 537 if (id == "shipping_email_field") { 538 self 539 .removeClass("woocommerce-invalid") 540 .addClass("woocommerce-validated"); 541 } 542 }); 543 } 544 } else { 545 $(".order_consignment").hide(); 546 $("#last_order_id_consignment").val(""); 547 $("#type_order_consignment").val( 548 response.type_order_consignment 549 ); 550 551 $("form.checkout.woocommerce-checkout").append(` 552 <input type="hidden" name="consignment_type" value="C"> 553 `); 554 555 $wrapper = $(".form-row"); 556 if (woo_address_book.consignment_order == "yes") { 557 $wrapper.each(function () { 558 var self = $(this), 559 id = self.attr("id"); 560 561 if (id == "shipping_first_name_field") { 562 self 563 .removeClass("woocommerce-invalid") 564 .addClass("woocommerce-validated"); 565 } 566 567 if (id == "address_book_field") { 568 self 569 .removeClass("woocommerce-invalid") 570 .addClass("woocommerce-validated"); 571 } 572 573 if (id == "shipping_last_name_field") { 574 self 575 .removeClass("woocommerce-invalid") 576 .addClass("woocommerce-validated"); 577 } 578 579 if (id == "shipping_company_field") { 580 self 581 .removeClass("woocommerce-invalid") 582 .addClass("woocommerce-validated"); 583 } 584 585 if (id == "shipping_address_1_field") { 586 self 587 .removeClass("woocommerce-invalid") 588 .addClass("woocommerce-validated"); 589 } 590 591 if (id == "shipping_city_field") { 592 $(".form-row#shipping_city_field") 593 .removeClass("woocommerce-invalid") 594 .addClass("woocommerce-validated"); 595 self 596 .removeClass("woocommerce-invalid") 597 .addClass("woocommerce-validated"); 598 } 599 600 if (id == "shipping_state_field") { 601 setTimeout(function () { 602 //$('.form-row#shipping_state_field').removeClass('validate-state'); 603 $(".form-row#shipping_state_field") 604 .removeClass("woocommerce-invalid") 605 .addClass("woocommerce-validated"); 606 self 607 .removeClass("woocommerce-invalid") 608 .addClass("woocommerce-validated"); 609 }, 1500); 610 } 611 612 if (id == "shipping_postcode_field") { 613 self 614 .removeClass("woocommerce-invalid") 615 .addClass("woocommerce-validated"); 616 } 617 618 if (id == "shipping_email_field") { 619 self 620 .removeClass("woocommerce-invalid") 621 .addClass("woocommerce-validated"); 622 } 623 }); 624 } 625 } 626 627 // Set Country Dropdown. 628 var country_input = $("#shipping_country"); 629 if ( 630 country_input.length > 0 && 631 country_input.attr("readonly") !== "readonly" 632 ) { 633 if ( 634 country_input.hasClass("selectized") && 635 country_input[0] && 636 country_input[0].selectize 637 ) { 638 country_input[0].selectize.setValue( 639 response.shipping_country 640 ); 641 } else { 642 country_input.val(response.shipping_country).change(); 643 $("#shipping_country_chosen") 644 .find("span") 645 .html(response.shipping_country_text); 646 } 647 } 648 649 // Set state dropdown. 650 var state_input = $("#shipping_state"); 651 if ( 652 state_input.length > 0 && 653 state_input.attr("readonly") !== "readonly" 654 ) { 655 if ( 656 state_input.hasClass("selectized") && 657 state_input[0] && 658 state_input[0].selectize 659 ) { 660 state_input[0].selectize.setValue(response.shipping_state); 661 } else { 662 state_input.val(response.shipping_state).change(); 663 var stateName = $( 664 '#shipping_state option[value="' + 665 response.shipping_state + 666 '"]' 667 ).text(); 668 $("#s2id_shipping_state") 669 .find(".select2-chosen") 670 .html(stateName) 671 .parent() 672 .removeClass("select2-default"); 673 } 674 } 675 676 // Remove loading screen. 677 $(".shipping_address").removeClass( 678 "blockUI blockOverlay wc-updating" 679 ); 680 }, 681 }); 682 } 683 } 684 } 685 686 shipping_checkout_field_prepop(); 687 688 $("#address_book_field #address_book").change(function () { 689 shipping_checkout_field_prepop(); 690 }); 691 692 const input = document.querySelectorAll("input"); 693 const label = document.querySelectorAll(".sms"); 694 input.forEach((el, index) => { 695 el.addEventListener("keydown", function () { 696 console.log(this.nextElementSibling); 697 if (el.value !== "") { 698 this.nextElementSibling.classList.add("active"); 699 } else { 700 this.nextElementSibling.classList.remove("active"); 701 } 702 }); 703 }); 704 }); 705})(window, jQuery);
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.