1<!DOCTYPE html> 2<html lang="en"> 3 <head> 4 5 6 7 8 9 10 <meta charset="utf-8"> 11 <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> 12 <meta name="description" content="Groff's Plant Farm - Contact"> 13 <meta name="author" content="Groff's Plant Farm"> 14 15 16 <link rel="icon" href=""> 17 18 <title>Groff's Plant Farm - Contact</title> 19 20 <!-- Bootstrap core CSS --> 21 <!-- <style>@media (min-width:576px){.d-sm-none{display:none!important}}</style> --> 22 23 <!-- <link rel="preload" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" as="style" onload="this.onload=null;this.rel='stylesheet'" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous"> 24 <noscript><link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css"></noscript> --> 25 26 <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css"> 27 28 <link rel="preload" href="https://use.fontawesome.com/releases/v5.13.1/css/all.css" as="style" onload="this.onload=null;this.rel='stylesheet'"> 29 <!-- <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.13.1/css/all.css"> --> 30 31 <link rel="preload" as="font" type="font/woff2" crossorigin href="https://use.fontawesome.com/releases/v5.13.1/webfonts/fa-brands-400.woff2"/> 32 <link rel="preload" as="font" type="font/woff2" crossorigin href="https://use.fontawesome.com/releases/v5.13.1/webfonts/fa-regular-400.woff2"/> 33 <link rel="preload" as="font" type="font/woff2" crossorigin href="https://use.fontawesome.com/releases/v5.13.1/webfonts/fa-solid-900.woff2"/> 34 35 <!-- Custom styles for this template --> 36 <link href="/assets/css/carousel.css" rel="stylesheet"> 37 38 <!-- promise polyfill (needed by fetch polyfill) --> 39
39<script type="text/javascript" src="/assets/js/promise.polyfill.min.js" defer></script>
39 40 <!-- fetch polyfill --> 41
41<script type="text/javascript" src="/assets/js/fetch.umd.js" defer></script>
41 42 43 <!-- <link rel="stylesheet" href="https://unpkg.com/swiper/swiper-bundle.min.css"> --> 44 <link rel="preload" href="/assets/fancybox/jquery.fancybox.min.css" as="style" onload="this.onload=null;this.rel='stylesheet'"> 45 <noscript><link rel="stylesheet" href="/assets/fancybox/jquery.fancybox.min.css"></noscript> 46 47 <!-- allows $(document).ready before jquery loaded --> 48
48<script>(function(w,d,u){w.readyQ=[];w.bindReadyQ=[];function p(x,y){if(x=="ready"){w.bindReadyQ.push(y);}else{w.readyQ.push(x);}};var a={ready:p,bind:p};w.$=w.jQuery=function(f){if(f===d||f===u){return a}else{p(f)}}})(window,document)</script>
48 49 50 51 52 53 54 <style type="text/css"> 55 /* Move down content because we have a fixed navbar that is 3.5rem tall */ 56 body { 57 58 padding-top: 3.5rem; 59 60 } 61 62 .display-5 { 63 font-size: 2rem; 64 font-weight: 300; 65 line-height: 1.2; 66 } 67 68 /* https://stackoverflow.com/questions/10732690/offsetting-an-html-anchor-to-adjust-for-fixed-header */ 69 a.anchor { 70 display: block; 71 position: relative; 72 top: -3.5rem; 73 visibility: hidden; 74 } 75 76 .nav-pills .nav-link.active, .nav-pills .show>.nav-link { 77 /* color: #fff; */ 78 background-color: #004422; 79 } 80 81 .dropdown-item.active, .dropdown-item:active { 82 /* color: #fff; */ 83 /* text-decoration: none; */ 84 background-color: #004422; 85 } 86 87 .navbar-dark .navbar-brand { 88 color: #fff; 89 } 90 91 .navbar-dark .navbar-nav .active>.nav-link, .navbar-dark .navbar-nav .nav-link.active, .navbar-dark .navbar-nav .nav-link.show, .navbar-dark .navbar-nav .show>.nav-link { 92 color: #fff; 93 } 94 95 .navbar-dark .navbar-nav .nav-link { 96 color: #fff; 97 } 98 99 100 a { 101 color: black; 102 } 103 104 .jumbotron { 105 /* get rid of white area top left and top right jumbotron below nav */ 106 border-radius: 0px; 107 } 108 109 table.floatThead-table { 110 border-top: none; 111 border-bottom: none; 112 background-color: #FFF; 113 } 114 115 /* on small screens, shrink the banner text a lot */ 116 /* this mainly used on department page */ 117 @media screen and (max-width: 768px) { 118 h1.display-3 { 119 font-size:40px; 120 } 121 } 122 123 .charms .fa, .charms .fab { 124 padding: 0px 10px; 125 } 126 127 a.anchor { 128 display: block; 129 position: relative; 130 top: -85px; 131 visibility: hidden; 132 } 133 134 .grid-row a:hover { 135 text-decoration: none; 136 } 137 138 #cart { 139 display: inline-block; 140 border-radius: 10000px; 141 border: 1px solid white; 142 box-shadow: 0px 0px 10px #888; 143 padding: 0.35em 0.3em; 144 cursor: pointer; 145 color: white; 146 background-color: #004422; 147 } 148 149 #cart-2 { 150 display: inline-block; 151 border-radius: 10000px; 152 border: 1px solid white; 153 box-shadow: 0px 0px 10px #888; 154 padding: 0.35em 0.3em; 155 cursor: pointer; 156 color: white; 157 background-color: #004422; 158 } 159 160 #cart-count { 161 position: relative; 162 font-size: 1em; 163 164 left: 5.5em; 165 166 box-shadow: 0px 0px 10px #888; 167 } 168 169 #cart-2-count { 170 position: relative; 171 font-size: 0.5em; 172 right: 4.5em; 173 top: -2em; 174 box-shadow: 0px 0px 10px #888; 175 } 176 177 /* list */ 178 179 #list { 180 display: inline-block; 181 border-radius: 10000px; 182 border: 1px solid white; 183 box-shadow: 0px 0px 10px #888; 184 padding: 0.35em 0.3em; 185 cursor: pointer; 186 color: white; 187 background-color: #004422; 188 } 189 190 #list-2 { 191 display: inline-block; 192 border-radius: 10000px; 193 border: 1px solid white; 194 box-shadow: 0px 0px 10px #888; 195 padding: 0.35em 0.3em; 196 cursor: pointer; 197 color: white; 198 background-color: #004422; 199 } 200 201 #list-count { 202 position: relative; 203 font-size: 1em; 204 205 left: 5.5em; 206 207 box-shadow: 0px 0px 10px #888; 208 } 209 210 #list-2-count { 211 position: relative; 212 font-size: 0.5em; 213 right: 4.5em; 214 top: -2em; 215 box-shadow: 0px 0px 10px #888; 216 } 217 218 .wrap { 219 white-space: pre-wrap; /* CSS3 */ 220 white-space: -moz-pre-wrap; /* Firefox */ 221 white-space: -pre-wrap; /* Opera <7 */ 222 white-space: -o-pre-wrap; /* Opera 7 */ 223 word-wrap: break-word; /* IE */ 224 } 225 226 </style> 227 228 229 <style type="text/css"> 230 </style> 231 </head> 232 <body> 233 234 235 236 <nav class="navbar navbar-expand-lg navbar-dark" style="background-color:orange;" id="banner-text"> 237 238 <div style="color:white; padding:10px 20px;">ð<b><font color="#ff0000">SHIPPING/DELIVERY NOT AVAILABLE</font></b> ** Online Ordering of Plants is for <b>IN-STORE PICK UP ONLY</b>
238 ðRestocking Fee applies - see <b>POLICIES</b> tab for more details ð</div> 239 240 </nav> 241 242 243 244 <nav class="navbar navbar-expand-lg navbar-dark fixed-top " style="background-color:#004422;"> 245 246 <a class="navbar-brand" href="https://groffsplantfarm.com/"> 247 248 249 250 251 Groff's Plant Farm <!-- <span> 252 </span> --> 253 254 </a> 255 256 257 <!-- TODO: customize nav links --> 258 259 260 <button class="navbar-toggler d-print-none" type="button" data-toggle="collapse" data-target="#navbarCollapse" aria-controls="navbarCollapse" aria-expanded="false" aria-label="Toggle navigation"> 261 <span class="navbar-toggler-icon" aria-hidden="true"></span> 262 </button> 263 <div class="collapse navbar-collapse d-print-none justify-content-center" id="navbarCollapse"> 264 265 <ul class="navbar-nav mr-auto" > 266 267 <li class="nav-item "> 268 <a class="nav-link" href="/">Home</a> 269 </li> 270 271 <li class="nav-item "> 272 <a class="nav-link" href="/inventory">Products</a> 273 </li> 274 275<!-- <li class="nav-item "> 276 <a class="nav-link" href="/news">News</a> 277 </li> --> 278 279 <li class="nav-item "> 280 <a class="nav-link" href="/articles">Articles</a> 281 </li> 282 283 <li class="nav-item active"> 284 <a class="nav-link" href="/contact">Contact</a> 285 </li> 286 287 <li class="nav-item "> 288 <a class="nav-link" href="/policies">Policies</a> 289 </li> 290 291 <li class="nav-item "> 292 <a class="nav-link" href="/newsletter">Newsletter</a> 293 </li> 294 295 <li class="nav-item "> 296 <a class="nav-link" href="/history">History</a> 297 </li> 298 299 300</ul> 301 302 <ul class="navbar-nav mr-0"> 303 304 </ul> 305 306 <form class="form-inline mt-2 mt-md-0 " method="get" action="/inventory/search"> 307 <span id="list-2-icon"> 308 </span> 309 <span id="cart-2-icon" class="cart-2-icon"> 310 </span> 311 312 <input class="form-control mr-sm-0" type="text" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" placeholder="Search" aria-label="Search" name="q"> 313 314 315 </form> 316 </div> 317 318 319 320 </nav> 321 322 323 324 325 326<!-- Main jumbotron for a primary marketing message or call to action --> 327<div class="jumbotron" style="background-color:#004422;"> 328 <div class="container" style="color:white;"> 329 <h1 class="display-3"> 330 Contact 331 </h1> 332 <p class=""> 333 <span style="font-size:1.1em;">Have questions or need help finding us? We are here to help!</span> 334 </p> 335 336 <p> 337 <a class="btn btn-outline-light btn-lg mb-3" href="tel:+17175293001" role="button">Give us a call »</a> 338 339 <a class="btn btn-outline-light btn-lg mb-3" href="mailto:[email protected]" role="button">Send us an email »</a> 340 341 <a class="btn btn-outline-light btn-lg mb-3" href="https://www.google.com/maps/place/Groffs+Plant+Farm/@39.8450625,-76.1059233,15z/data=!4m2!3m1!1s0x0:0x8cf92659cba9bc2e?sa=X&ved=2ahUKEwjTs9fbyfLuAhWkB50JHVYqAxoQ_BIwCnoECBwQBQ" role="button">Get directions »</a> 342 </p> 343 344 </div> 345</div> 346 347<style> 348 .col-lg-6 { 349 text-align: center; 350 } 351 352 .featurette-heading { 353 margin-top:0; 354 } 355</style> 356 357<span id="list-icon" class="fixed-bottom p-3 p-sm-3 p-md-4 p-lg-5" style="pointer-events:none; z-index:1033; 358 "> 359 360 </span> 361<span id="cart-icon" class="fixed-bottom p-3 p-sm-3 p-md-4 p-lg-5" style="pointer-events:none; z-index:1033; 362 "> 363 364 </span> 365 366<div class="container"> 367 <div class="row marketing"> 368 <div class="col-lg-6"> 369 <img src="assets/opticons/svg/comment.svg" alt="Help" height="100" style="opacity:0.75;"> 370 <h2>Need help?</h2> 371 <p>If you need a little help, give us a call at <a href="tel:+17175293001">(717) 529-3001</a>, send an email to <a href="mailto:[email protected]">[email protected]</a>, or <a href="#directions">just stop by</a>.</p> 372 </div><!-- /.col-lg-6 --> 373 374 <div class="col-lg-6"> 375 <img src="assets/opticons/svg/location.svg" alt="Help" height="100" style="opacity:0.75;"> 376 <h2>Need directions?</h2> 377 <p> 378 <a href="https://www.google.com/maps/place/Groffs+Plant+Farm/@39.8450625,-76.1059233,15z/data=!4m2!3m1!1s0x0:0x8cf92659cba9bc2e?sa=X&ved=2ahUKEwjTs9fbyfLuAhWkB50JHVYqAxoQ_BIwCnoECBwQBQ">6128 Street Rd, Kirkwood, PA 17536</a>. 379 </p> 380 </div><!-- /.col-lg-6 --> 381 </div><!-- /.row --> 382 383 <hr class="featurette-divider"> 384 385 <div class="row"> 386 <div class="col-md-7"> 387 <a id="directions" class="anchor"></a> 388 <h2 class="featurette-heading">Directions</h2> 389 <p class="lead"> 390 391 <p>From the North, Lancaster, Willow Street, etc.</p> 392 393 <p>Follow 222S through Quarryville. Approximately 1.5 miles south of Quarryville you will pass Solanco High School on the right. About 1/4 mile after the high school, Blackburn Road will branch off to the left. Follow Blackburn 3 miles until it ends. Tur
393n left onto Puseyville Road, cross over the Octarara Creek, and immediately turn right onto Street Road. Follow Street around the bend, and we are halfway up the hill on the right.</p> 394 395 <p>From Route 1, Kennett, Chadds Ford, and Northern Maryland</p> 396 397 <p>Follow Route 1 to Oxford. Exit onto 472N towards Quarryville. Follow 472 for 5 miles until you reach the intersection with Street Road. Union Presbyterian Church and its large cemetery will be on your right. Turn left onto Street Road. Follow Street Road approximately 3 miles, crossing over Noble Road. Immediately after Street Road joins Maple Shade Road in a "Y", we are halfway down the hill on the left.</p> 398 399 400 401 <p>FROM ROUTE 1 AND 222 IN CONOWINGO MD. Take 222N 12.8 miles. Turn right onto Puseyville Rd. (If you get Mechanics Grove Church of the Brethren you've gone too far). Continue 2.4 miles. Turn right onto Street Rd. Continue 0.5 miles, we are on the right.</p> 402 403 404 405 <p>From the West Toward York County</p> 406 407 <p>Use Route 372 east to Quarryville or find your way over land to Solanco High School and then follow the directions from the north.</p> 408 409 <p>From the Northeast</p> 410 411 <p>Use Route 372 to Quarryville and pick up on the directions from the north.</p> 412 413 <p>OR</p> 414 415 <p>For a more direct route find Noble Road heading southwest from Christiana and follow it. Cross Route 896 at Nine Points and follow it through the three L turns just before, at and just after Bartville. Cross Route 472 just north of Kirkwood at the Auction Barn. Continue 1/2 mile to the first intersection and turn right on Maple Shade Road. Continue about 1/2 mile until it ends and Y's into Street Road. Go right (really almost straight) for several hundred yards and turn left on our lane at our sign.</p> 416 417 </p> 418 <p> 419 <a href="https://www.google.com/maps/place/Groffs+Plant+Farm/@39.8450625,-76.1059233,15z/data=!4m2!3m1!1s0x0:0x8cf92659cba9bc2e?sa=X&ved=2ahUKEwjTs9fbyfLuAhWkB50JHVYqAxoQ_BIwCnoECBwQBQ">6128 Street Rd, Kirkwood, PA 17536</a><br/> 420 Lost? Give us a call: <a href="tel:+17175293001">(717) 529-3001</a> 421 </p> 422 </div> 423 <div class="col-md-5"> 424 <figure class="figure"> 425 <img class="featurette-image figure-img img-fluid mx-auto rounded" src="/images/jeanna.jpg" height="500"> 426 <figcaption class="figure-caption">Jeanna</figcaption> 427 </figure> 428 </div> 429 </div> 430 431</div> <!-- container --> 432 433 434 435 <div class="container container-footer" > 436 437 438 439 440 441 <hr style="margin: 3rem 0;" class="d-print-none"> 442 443 <!-- FOOTER --> 444 <footer class="d-print-none"> 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 <div class="text-center charms"> 462 <a href="https://www.facebook.com/Groffs-Plant-Farm-119720718091944/" target="_blank"><i class="fab fa-facebook fa-2x"></i></a> 463 <a href="https://www.instagram.com/groffsplantfarm" target="_blank"><i class="fab fa-instagram fa-2x"></i></a> 464 <a href="mailto:[email protected]"><i class="fa fa-envelope fa-2x"></i></a> 465 </div> 466 467 468 469 470 <!-- fix links --> 471 <div class="row text-center mx-auto footer-links" style="max-width:700px; margin-top: 30px; margin-bottom: 25px;"> 472 473 474 475 476 477 </div> 478 479 <div class="row footer-last-div"> 480 <div class="col-12 col-sm-4"> 481 </div> 482 483 <div class="col-12 col-sm-4 text-center" style="color:black;"> 484 485 <p> 486 487 Monday-Saturday 9am-5pm<br><span style="font-size: 1rem;">Sunday CLOSED</span><br><span style="font-size: 1rem;"><br></span><br><span style="font-size: 1rem;">6128 Street Rd Kirkwood PA 17536</span><br><span style="font-size: 1rem;">[email protected]</span> 488 <br> 489 490 <nobr>© 2026 Groff's Plant Farm</nobr> 491 492 493 <br><span style="color:#ccc;">Help ID: 6qfsp</span> 494 </p> 495 </div> 496 497 498 <div class="col-12 col-sm-4"> 499 <p class="text-right"> 500 <a href="#">Top</a> 501 </p> 502 </div> 503 504 505 </div> 506 507 </footer> 508 509 </div><!-- /.container --> 510 511 <!-- <div style="width:100%; background: color:#004422; background: linear-gradient(white,#004422); height: 50px;"> 512 </div> --> 513 514 <!-- Modal --> 515 <div class="modal fade" id="add-to-cart-modal" tabindex="-1" role="dialog" aria-labelledby="addToCartModal" aria-hidden="true"> 516 <div class="modal-dialog modal-dialog-centered" role="document"> 517 <div class="modal-content"> 518 <div class="modal-header"> 519 <h5 class="modal-title" id="exampleModalLabel">Add to Cart</h5> 520 <button type="button" class="close" data-dismiss="modal" aria-label="Close">
521 <span aria-hidden="true">×</span> 522 </button> 523 </div> 524 <div class="modal-body"> 525 <form method="POST" action="cart/ajax" class="form-inline"> 526 <input type="hidden" name="action" value="add-to-cart"> 527 <input type="hidden" name="item[plu]" value="to-be-set"> 528 529 <div class="form-group"> 530 <label for="add-to-cart-qty">Quantity</label> 531 532 <select name="item[quantity]" id="add-to-cart-qty" class="form-control mx-sm-3"> 533 </select> 534 </div> 535 536 <div class="form-group"> 537 <!-- <label for="add-to-cart-note">Note</label> --> 538 <input type="text" name="item[note]" id="add-to-cart-note" class="form-control mx-0" placeholder="Optional color, variety, etc..."> 539 </div> 540 <input type="submit" class="d-none"> 541 </form> 542 </div> 543 <div class="modal-footer"> 544 <button type="button" class="btn btn-secondary" data-dismiss="modal">Cancel</button> 545 <button type="button" class="btn btn-primary"><i class="fa fa-cart-plus" aria-hidden="true"></i> Add</button> 546 </div> 547 </div> 548 </div> 549 </div> 550 551 <!-- Modal --> 552 <div class="modal fade" id="add-to-list-modal" tabindex="-1" role="dialog" aria-labelledby="addToListModal" aria-hidden="true"> 553 <div class="modal-dialog modal-dialog-centered" role="document"> 554 <div class="modal-content"> 555 <div class="modal-header"> 556 <h5 class="modal-title" id="exampleModalLabel">Add to List</h5> 557 <button type="button" class="close" data-dismiss="modal" aria-label="Close"> 558 <span aria-hidden="true">×</span> 559 </button> 560 </div> 561 <div class="modal-body"> 562 <form method="POST" action="list/ajax"> 563 <input type="hidden" name="action" value="add-to-list"> 564 565 <p class="text-muted">Organize your garden essentials in a Wish List!</p> 566 567 568 <div class="form-group"> 569 <label for="add-to-list-qty">Quantity</label> 570 571 <select name="item[quantity]" id="add-to-list-qty" class="form-control"> 572 </select> 573 </div> 574 575 <div class="form-group"> 576 <label for="add-to-list-size">Size</label> 577 578 <select name="item[plu]" id="add-to-list-size" class="form-control"> 579 </select> 580 </div> 581 582 <div class="form-group"> 583 <!-- <label for="add-to-list-note">Note</label> --> 584 <input type="text" name="item[note]" id="add-to-list-note" class="form-control" placeholder="Optional color, variety, etc..."> 585 </div> 586 <input type="submit" class="d-none"> 587 </form> 588 </div> 589 <div class="modal-footer"> 590 <button type="button" class="btn btn-secondary" data-dismiss="modal">Cancel</button> 591 <button type="button" class="btn btn-primary" ><i class="fa fa-list" aria-hidden="true" style=""></i> Add</button> 592 </div> 593 </div> 594 </div> 595 </div> 596 597 <style> 598 /* img.slowload { 599 opacity: 0; 600 transition: opacity 0.6s ease; 601 } 602 603 img.slowload.loaded { 604 opacity: 1; 605 } */ 606 </style> 607
607<script> 608 $(document).ready(function(){ 609 610 611 $('img.slowload').each(function(){ 612 let img = this; 613 let downloadingImage = new Image(); 614 downloadingImage.onload = function(){ 615 img.src = this.src; 616 $(img).addClass('loaded'); 617 }; 618 downloadingImage.src = img.src; 619 // Sized placeholder (catalog dims) so the temporary swap-in holds the 620 // same aspect box as the real thumbnail â no layout jump on load. 621 img.src = "\/inventory\/missing-image.php?w=400&h=300&v=f6b16e7"; 622 }); 623 624 // 625 // Add to Cart 626 // 627 628 $('#add-to-cart-modal').on('show.bs.modal', function (event) { 629 var button = $(event.relatedTarget) // Button that triggered the modal 630 var plu = button.attr('data-plu'); 631 var usuallyPreorder = button.attr('data-usuallypreorder'); 632 var webPreorderMax = button.attr('data-webpreordermax'); 633 let webPerOrderMax = button.attr('data-webperordermax'); 634 let multiple = button.data('multiple'); 635 let min = button.data('min'); 636 let modal = $(this) 637 638 webPerOrderMax = webPerOrderMax ? webPerOrderMax : Number.MAX_SAFE_INTEGER; 639 640 // modal.find('.modal-title').text('New message to ' + recipient) 641 642 modal.find('input[name=item\\[plu\\]]').val(plu) 643 644 // load the qty select appropriately based on QOH 645 let i = 0; 646 let qty = button.data('qoh'); 647 let retail = button.data('retail'); 648 let select = modal.find('select[name=item\\[quantity\\]]'); 649 650 // console.log({qty, retail}); 651 652 // fix crashing if qty too high 653 if (qty > 1000) { 654 qty = 1000; 655 } 656 657 select.empty(); 658 659 if (qty > 0) { 660 for (i=min*multiple; i<=qty && i<=webPerOrderMax; i+=multiple) { 661 select.append( 662 $("<option />").val(i).text(i) 663 ) 664 } 665 } 666 667 if (usuallyPreorder) { 668 select.append( 669 $("<option />").val('').text('--- Pre-order ---').prop('disabled', "disabled") 670 ) 671 672 if (i<1) { 673 i = min; 674 } 675 676 // let max_order_qty = Math.min(Math.floor(10000 / retail), 1000); 677 let max_order_qty = 20 + qty; 678 679 if (webPreorderMax) { 680 max_order_qty = Number(qty) + Number(webPreorderMax); 681 } 682 683 // console.log({max_order_qty}); 684 for(i=i; i<=max_order_qty&&i<=webPerOrderMax; i+=multiple) { 685 select.append( 686 $("<option />").val(i).text(i) 687 ) 688 } 689 } // usuallyPreorder 690 691 modal.find('form').get(0).reset(); 692 }); 693 694 $('#add-to-cart-modal').on('shown.bs.modal', function (event) { 695 $(this).find('select[name=item\\[quantity\\]]').focus(); 696 }); 697 698 $('#add-to-cart-modal form').submit(async function(e){ 699 e.preventDefault(); 700 701 var $this = $(this); 702 var form = $this.parents('.modal').find('form'); 703 var plu = form.find('input[name="item[plu]"]').val(); 704 705 let clearOverlay = $('<div id="overlay" style="background-color: rgba(128,128,128,0.0); position:fixed;top:0;left:0;height:100%;width:100%;z-index:1051;pointer-events:none;"></div>'); 706 $("body").append(clearOverlay); 707 708 let overlay = $( 709 '<div style="background: rgba(0,0,0,0.5); position: fixed; top: 50%; left: 50%; transform: translate(-50%, -50%); text-align:center; border-radius: 25px; padding: 100px; color:white; z-index:1052;">' + 710 '<i class="far fa-6x fa-check-square"></i>' + 711 '<h5>Added to Cart</h5>' + 712 '</div>' 713 ); 714 715 $('body').append(overlay); 716 717 718 719 $.ajax({ 720 url: '/inventory/cart/ajax', 721 type : 'POST', 722 dataType : 'json', 723 data : $(form).serialize(), // post data || get data 724 success : function(result) { 725 console.log(result); 726 727 if (result.success) { 728 729 $('#add-to-cart-modal').modal('hide'); 730 731 $('#cart-icon').replaceWith(result['cart-html']); 732 $('.cart-2-icon').replaceWith(result['cart-2-html']); 733 734 $('#list-icon').replaceWith(result['list-html']); 735 $('#list-2-icon').replaceWith(result['list-2-html']); 736 737 overlay.delay(1000).fadeOut().queue(function(n){clearOverlay.remove(); 738 n();}); 739 740 741 } else { 742 overlay.remove(); 743 clearOverlay.remove(); 744 } 745 746 if (result.msg) { 747 Swal.fire({
748 // title: 'Resend receipt?', 749 text: result.msg, 750 icon: 'info', 751 // confirmButtonText: 'Send', 752 // cancelButtonText: 'No', 753 // showCancelButton: true 754 }) 755 } 756 }, 757 error: function(xhr, resp, text) { 758 console.log(xhr, resp, text); 759 } 760 }); 761 762 return false; 763 }); 764 765 $('#add-to-cart-modal button.btn-primary').click(function(e){ 766 $('#add-to-cart-modal button.btn-primary').parents('.modal').find('form').submit(); 767 }); 768 769 // 770 // Add to Wish List 771 // 772 773 $('#add-to-list-modal').on('show.bs.modal', function (event) { 774 var button = $(event.relatedTarget) // Button that triggered the modal 775 let items = button.data('items'); 776 console.log(items); 777 var usuallyPreorder = button.attr('data-usuallypreorder'); 778 var webPreorderMax = button.attr('data-webpreordermax'); 779 var modal = $(this) 780 // modal.find('.modal-title').text('New message to ' + recipient) 781 782 let select = modal.find('select[name=item\\[plu\\]]'); 783 select.empty() 784 items.forEach(function(item){ 785 select.append( 786 $("<option />").val(item.plu).text(item.description) 787 ) 788 }); 789 790 // load the qty select appropriately based on QOH 791 let i = 0; 792 let qty = 100; // button.data('qoh'); 793 // let retail = button.data('retail'); 794 select = modal.find('select[name=item\\[quantity\\]]'); 795 796 // console.log({qty, retail}); 797 798 select.empty(); 799 800 if (qty > 0) { 801 for (i=1; i<=qty; i++) { 802 select.append( 803 $("<option />").val(i).text(i) 804 ) 805 } 806 } 807 808 modal.find('form').get(0).reset(); 809 }); 810 811 $('#add-to-cart-modal').on('shown.bs.modal', function (event) { 812 $(this).find('select[name=item\\[quantity\\]]').focus(); 813 }); 814 815 $('#add-to-list-modal form').submit(function(e){ 816 e.preventDefault(); 817 818 var $this = $(this); 819 var form = $this.parents('.modal').find('form'); 820 821 let clearOverlay = $('<div id="overlay" style="background-color: rgba(128,128,128,0.0); position:fixed;top:0;left:0;height:100%;width:100%;z-index:1051"></div>'); 822 $("body").append(clearOverlay); 823 824 let overlay = $( 825 '<div style="background: rgba(0,0,0,0.5); position: fixed; top: 50%; left: 50%; transform: translate(-50%, -50%); text-align:center; border-radius: 25px; padding: 100px; color:white; z-index:1052;">' + 826 '<i class="far fa-6x fa-check-square"></i>' + 827 '<h5>Added to List</h5>' + 828 '</div>' 829 ); 830 831 $('body').append(overlay); 832 833 $.ajax({ 834 url: '/inventory/list/ajax', 835 type : 'POST', 836 dataType : 'json', 837 data : $(form).serialize(), // post data || get data 838 success : function(result) { 839 console.log(result); 840 841 if (result.success) { 842 $('#add-to-list-modal').modal('hide'); 843 844 $('#list-icon').replaceWith(result['list-html']); 845 $('#list-2-icon').replaceWith(result['list-2-html']); 846 847 $('#cart-icon').replaceWith(result['cart-html']); 848 $('.cart-2-icon').replaceWith(result['cart-2-html']); 849 850 overlay.delay(1000).fadeOut().queue(function(n){clearOverlay.remove(); n();}); 851 } else { 852 overlay.remove(); 853 clearOverlay.remove(); 854 } 855 856 if (result.msg) { 857 alert(result.msg); 858 } 859 }, 860 error: function(xhr, resp, text) { 861 console.log(xhr, resp, text); 862 } 863 }); 864 865 return false; 866 }); 867 868 $('#add-to-list-modal button.btn-primary').click(function(e){ 869 $('#add-to-list-modal button.btn-primary').parents('.modal').find('form').submit(); 870 }); 871 }); 872 </script>
872 873 874 <!-- Bootstrap core JavaScript 875 ================================================== --> 876 <!-- Placed at the end of the document so the pages load faster --> 877
877<script src="https://code.jquery.com/jquery-3.2.1.min.js" integrity="sha384-xBuQ/xzmlsLoJpyjoggmTEz8OWUFM0/RC5BsqQBDX2v5cMvDHcMakNTNrHIW2I5f" crossorigin="anonymous"></script>
877 878
878<script>(function($,d){$.each(readyQ,function(i,f){$(f)});$.each(bindReadyQ,function(i,f){$(d).bind("ready",f)})})(jQuery,document)</script>
878 879 880
880<script src="/assets/js/jquery.floatThead.min.js" defer></script>
880 881
881<script src="https://unpkg.com/[email protected]/dist/sweetalert.min.js" defer></script>
881 882 883
883<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js" integrity="sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q" crossorigin="anonymous"></script>
883 884
884<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js" integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl" crossorigin="anonymous"></script>
884 885 886 887 <!-- IE10 viewport hack for Surface/desktop Windows 8 bug --> 888
888<script src="/assets/js/ie10-viewport-bug-workaround.js"></script>
888 889 890
890<script src="https://cdn.jsdelivr.net/npm/sweetalert2@10" defer></script>
890 891 892
892<script src="/assets/fancybox/jquery.fancybox.min.js" defer></script>
892 893 894 895 </body> 896</html>
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.