|
- (function ($) {
- // http://davidwalsh.name/javascript-debounce-function
- function debounce(func, wait, immediate) {
- var timeout;
- return function () {
- var context = this, args = arguments;
- var later = function () {
- timeout = null;
- if (!immediate)
- func.apply(context, args);
- };
- var callNow = immediate && !timeout;
- clearTimeout(timeout);
- timeout = setTimeout(later, wait);
- if (callNow)
- func.apply(context, args);
- };
- };
-
- /*______________________________________________________*/
-
- $(function () {
- //$('#test').html(mm.display_name);
- console.log(mm);
-
- $("#cardloading").attr('src', mm.loading);
- $("#loading90").attr('src', mm.loading);
- $("#done").attr('src', mm.done);
-
-
-
- $("span.collector").text("Pactrick");
- init_clientname_input("#username");
-
- });
-
- function clientname_suggestions(){
- return new Bloodhound({
- datumTokenizer: Bloodhound.tokenizers.obj.whitespace('name'),
- queryTokenizer: Bloodhound.tokenizers.whitespace,
- remote: {
- url: mm.ajax_url + '?' + jQuery.param({
- _ajax_nonce: mm.nonce, // nonce
- action: "search_users", // action
- pattern: "QUERY", // search pattern
- }),
- wildcard: 'QUERY' // %QUERY will be replace by users input in
- }, // the url option.
- });
- }
-
- function onUpdateClientID (e, suggestion)
- {
- mm.current_user = suggestion.userid;
-
- $('#details').hide();
-
- $.post(mm.ajax_url, { // POST request
- _ajax_nonce: mm.nonce, // nonce
- action: "list_users", // action
- client : suggestion.userid,
- name : ''
- }, function(response, status, xhr){
- step2_verify_user(response);
- }).fail(function(){
- errUserName("Network Error, Please try again later");
- });
-
- }
- function init_clientname_input(selector){
- //console.log('selector = ' + selector);
- // init Typeahead
- jQuery(selector).typeahead(
- {
- minLength: 0,
- highlight: true,
- hint:false,
- },
- {
- name: 'clientnames',
- source: clientname_suggestions(), // suggestion engine is passed as the source
- display: function(item) { // display: 'name' will also work
- //console.log('display' + item.userid);
- return item.username;
- },
- limit: 5,
- templates: {
- suggestion: function(item) {
- //console.log(item);
- return '<div><i class="fusion-li-icon fa-user fas"></i> '+ item.username +'-'+ item.userid +'</div>';
- },
- pending: function (query) {
- return '<img src=' + mm.search_user + '>';
- },
- },
- 'updater' : function(item) {
- //console.log('selected +' + item);
- return item;
- }
- }).bind('typeahead:select', onUpdateClientID
- ).bind('typeahead:autocomplete', onUpdateClientID);
- }
-
- function errUserName(msg)
- {
- var el = $("#errUserName");
- el.html(msg);
- el.fadeIn();
- setTimeout(function(){
- el.fadeOut();
- }, 2000);
- }
-
-
- //step1
- $(document).on("click", "#step1", function(){
- var input = $("#username").val();
- if ( input == "" ){
- errUserName(" cannot be empty");
- return;
- }
-
- $.post(mm.ajax_url, { // POST request
- _ajax_nonce: mm.nonce, // nonce
- action: "list_users", // action
- client : mm.current_user,
- }, function(response, status, xhr){
- step2_verify_user(response);
- }).fail(function(){
- errUserName("Network Error, Please try again later");
- });
-
- });
-
- //step2
- function step2_verify_user(response)
- {
- console.log(response);
- var el = $("#userpass");
- el.slideUp();
- el.slideDown();
- $("#vmobile").text(response.phone);
- $("#vemail").text(response.email);
-
- }
-
- //verify
- $(document).on("click", "#step2", function(){
-
- var input = $("#verifycode").val();
- var method = $("#verify_method").val();
- $.post(mm.ajax_url, { // POST request
- _ajax_nonce: mm.nonce, // nonce
- action: "verify_user", // action
- client : mm.current_user,
- method: method,
- verifycode : input,
- }, function(response, status, xhr){
- step3_show_details(response);
- }).fail(function(){
- errUserName("Network Error, Please try again later");
- });
-
- });
-
-
- function step3_show_details(response)
- {
- var el = $('#details');
- el.slideDown();
-
- if ( response.pass ){
- el.slideDown();
- $("#errVerify").text("");
- }else {
- el.hide();
- $("#errVerify").text("Incorrect, please try again");
- }
-
- $("#postaladdr").val(response.addr);
- $("#states").val(response.state);
- $("span.collector").text(response.pickup);
- $("#pickupcontact").val(response.pp);
- $("#pickupwechat").val(response.ppwechat);
- $("#pickuplocation").val(response.loc);
- $("#pickuptime").val(response.time);
-
-
- $(':radio:not(:checked)').attr('disabled', false);
- $(':radio:checked').attr('disabled', false);
- //set delivery
- switch(response.delivery)
- {
- case 'pp':
- $('input:radio[name=delivery]:nth(2)').prop('checked',true);
- $('tr.pp').show();
- break;
- case 'dp':
- $('tr.pp').hide();
- $('input:radio[name=delivery]:nth(1)').prop('checked',true);
- break;
- default:
- $('tr.pp').hide();
- $('input:radio[name=delivery]:nth(0)').prop('checked',true);
- }
- $(':radio:not(:checked)').attr('disabled', true);
- $(':radio:checked').attr('disabled', false);
-
- //steps
- $("#medal").prop("checked", response.step >= 1);
- $("#posted").prop("checked", response.step >= 2);
- $("#received").prop("checked", response.step >= 3);
- $("#readyforpickup").prop("checked", response.step >= 4);
- $("#delivered").prop("checked", response.step >= 5);
-
- }
-
- //apply card
- $(document).on("click", "#cardbtn", function(){
- var loading = $('#cardloading');
- var check = $('#card');
- $(this).hide();
- loading.show();
- setTimeout(function(){
- loading.hide();
- check.show();
- }, 2000);
-
- });
-
- //apply 90 meda;
- $(document).on("click", "#btn90", function(){
- var loading = $('#loading90');
- var check = $('#medal90');
- $(this).hide();
- loading.show();
-
- setTimeout(function(){
- loading.hide();
- check.show();
- }, 2000);
- });
-
- //confirm;
- $(document).on("click", "#confirm", function(){
- var search = $("#search");
- var verify = $("#userpass");
- var details = $("#details");
- var btn = $('#confirm');
- var img = $('#done');
- $(this).hide();
- verify.hide();
- details.hide();
- search.hide();
- img.show();
-
- setTimeout(function(){
- btn.show();
- img.hide();
- }, 4000);
- });
-
- })(jQuery);
|