Add ZIP lookup tool to rate calculator

master
Skylar Ittner 2 years ago
parent 905a465ecd
commit 7e769d53f9

@ -41,12 +41,14 @@ var itemTypeCharacteristics = {
function updateRateForm() {
if ($("#to_country").val() == "" || $("#to_country").val() == "US") {
$(".citystateboxes").css("display", "none");
$("#zipcodelookuplink").css("display", "");
$("#ziptext").html("ZIP Code");
$("#to_zip").attr("inputmode", "numeric");
$("#to_zip").attr("required", "true");
$("#to_zip").attr("placeholder", "ZIP Code");
} else {
$(".citystateboxes").css("display", "");
$("#zipcodelookuplink").css("display", "none");
$("#ziptext").html("Postal Code");
$("#to_zip").attr("inputmode", "text");
$("#to_zip").removeAttr("required");
@ -150,4 +152,59 @@ function getRates() {
sendErrorReport("Rates", "Couldn't get rates", "Server/network problem: " + xhr.status + ": " + xhr.statusText);
}
}, "GET");
}
function doZipCodeLookup(street, city, state) {
if (street == "") {
app.dialog.alert("You need to enter a street address.", "ZIP Code Lookup");
return;
}
if (city == "") {
app.dialog.alert("You need to enter a city.", "ZIP Code Lookup");
return;
}
if (state == "") {
app.dialog.alert("You need to select a state.", "ZIP Code Lookup");
return;
}
app.dialog.preloader("Searching...");
apirequest(
SETTINGS.apis.zipcodelookup,
{
street: street,
city: city,
state: state
},
function (resp) {
app.dialog.close();
if (resp.status == "OK") {
app.popup.close();
$("#to_street1").val(resp.address.address);
$("#to_zip").val(resp.address.zip);
app.input.checkEmptyState('#to_street1');
app.input.checkEmptyState('#to_zip');
app.dialog.alert("The correct ZIP Code is " + resp.address.zip, "ZIP Code Lookup");
} else {
app.dialog.alert(resp.msg, "Error");
sendErrorReport("ZIP Lookup", "Couldn't get ZIP Code", resp.msg);
}
},
function (xhr) {
app.dialog.close();
try {
var error = $.parseJSON(xhr.responseText);
if (error && typeof error.msg != 'undefined') {
app.dialog.alert(error.msg, "Error");
sendErrorReport("ZIP Lookup", "Couldn't get ZIP Code", error.msg);
} else {
app.dialog.alert("There's a server or network problem. Check your Internet connection or try again later.", "Error");
sendErrorReport("ZIP Lookup", "Couldn't get ZIP Code", "Server/network problem: " + xhr.status + ": " + xhr.statusText);
}
} catch (ex) {
app.dialog.alert("There's a server or network problem. Check your Internet connection or try again later.", "Error");
sendErrorReport("ZIP Lookup", "Couldn't get ZIP Code", "Server/network problem: " + xhr.status + ": " + xhr.statusText);
}
}, "GET");
}

@ -69,6 +69,7 @@
<input type="text" id="to_zip" inputmode="numeric" />
<span class="input-clear-button"></span>
</div>
<a href="#" class="popup-open" id="zipcodelookuplink" onclick="$('#ziplookup_address').val($('#to_street1').val());" data-popup="#zipLookupPopup">I don't know the ZIP Code</a>
</div>
</li>
<li class="item-content item-input item-input-outline citystateboxes" style="display: none;">
@ -465,4 +466,126 @@
<div class="popup" id="rateResultPopup">
</div>
<div class="popup" id="zipLookupPopup">
<div class="navbar">
<div class="navbar-bg"></div>
<div class="navbar-inner">
<div class="left">
<a class="link popup-close" href="#">
<i class="icon icon-back"></i>
<span class="if-not-md">Close</span>
</a>
</div>
<div class="title">ZIP Code Lookup</div>
</div>
</div>
<div class="list margin-bottom-half margin-top-half">
<ul>
<li class="item-content item-input">
<div class="item-inner">
<div class="item-title item-label">Address</div>
<div class="item-input-wrap">
<input type="text" id="ziplookup_address" placeholder="123 Example St"/>
<span class="input-clear-button"></span>
</div>
</div>
</li>
<li class="item-content item-input">
<div class="item-inner">
<div class="item-title item-label">City</div>
<div class="item-input-wrap">
<input type="text" id="ziplookup_city" placeholder="Helena"/>
<span class="input-clear-button"></span>
</div>
</div>
</li>
<li class="item-content item-input">
<div class="item-inner">
<div class="item-title item-label">State/Territory</div>
<div class="item-input-wrap">
<select id="ziplookup_state">
<option value=""></option>
<optgroup label="States">
<option value="AL">Alabama</option>
<option value="AK">Alaska</option>
<option value="AZ">Arizona</option>
<option value="AR">Arkansas</option>
<option value="CA">California</option>
<option value="CO">Colorado</option>
<option value="CT">Connecticut</option>
<option value="DC">District of Columbia/Washington D.C.</option>
<option value="DE">Delaware</option>
<option value="FL">Florida</option>
<option value="GA">Georgia</option>
<option value="HI">Hawaii</option>
<option value="ID">Idaho</option>
<option value="IL">Illinois</option>
<option value="IN">Indiana</option>
<option value="IA">Iowa</option>
<option value="KS">Kansas</option>
<option value="KY">Kentucky</option>
<option value="LA">Louisiana</option>
<option value="ME">Maine</option>
<option value="MD">Maryland</option>
<option value="MA">Massachusetts</option>
<option value="MI">Michigan</option>
<option value="MN">Minnesota</option>
<option value="MS">Mississippi</option>
<option value="MO">Missouri</option>
<option value="MT">Montana</option>
<option value="NE">Nebraska</option>
<option value="NV">Nevada</option>
<option value="NH">New Hampshire</option>
<option value="NJ">New Jersey</option>
<option value="NM">New Mexico</option>
<option value="NY">New York</option>
<option value="NC">North Carolina</option>
<option value="ND">North Dakota</option>
<option value="OH">Ohio</option>
<option value="OK">Oklahoma</option>
<option value="OR">Oregon</option>
<option value="PA">Pennsylvania</option>
<option value="RI">Rhode Island</option>
<option value="SC">South Carolina</option>
<option value="SD">South Dakota</option>
<option value="TN">Tennessee</option>
<option value="TX">Texas</option>
<option value="UT">Utah</option>
<option value="VT">Vermont</option>
<option value="VA">Virginia</option>
<option value="WA">Washington</option>
<option value="WV">West Virginia</option>
<option value="WI">Wisconsin</option>
<option value="WY">Wyoming</option>
</optgroup>
<optgroup label="Military">
<option value="AE">AE: Europe, Middle East, Canada</option>
<option value="AP">AP: Pacific</option>
<option value="AA">AA: Americas (except Canada)</option>
</optgroup>
<optgroup label="Territories">
<option value="AS">American Samoa</option>
<option value="GU">Guam</option>
<option value="MP">Northern Mariana Islands</option>
<option value="PR">Puerto Rico</option>
<option value="VI">U.S. Virgin Islands</option>
</optgroup>
<optgroup label="Freely Associated States">
<option value="FM">Federated States of Micronesia</option>
<option value="MH">Marshall Islands</option>
<option value="PW">Palau</option>
</optgroup>
</select>
</div>
</div>
</li>
<li class="item-content">
<div class="button hapticbtn button-fill" onclick="doZipCodeLookup($('#ziplookup_address').val(), $('#ziplookup_city').val(), $('#ziplookup_state').val());">
<i class="fa-solid fa-search"></i> Find ZIP Code
</div>
</li>
</ul>
</div>
</div>
</div>

@ -11,6 +11,8 @@ var SETTINGS = {
trackmultiple: "http://localhost/helena.express/apis/trackmultiple/",
// Shipping rates
rates: "http://localhost/helena.express/apis/rates/",
// ZIP Code lookup
zipcodelookup: "http://localhost/helena.express/apis/zipcodelookup/",
// Get appointment iframe URL
appointmentredirect: "http://localhost/helena.express/apis/appointmentredirect/",
// Request home pickup

Loading…
Cancel
Save