collecting medal for hitxy members
No puede seleccionar más de 25 temas Los temas deben comenzar con una letra o número, pueden incluir guiones ('-') y pueden tener hasta 35 caracteres de largo.

263 líneas
7.5KB

  1. (function ($) {
  2. // http://davidwalsh.name/javascript-debounce-function
  3. function debounce(func, wait, immediate) {
  4. var timeout;
  5. return function () {
  6. var context = this, args = arguments;
  7. var later = function () {
  8. timeout = null;
  9. if (!immediate)
  10. func.apply(context, args);
  11. };
  12. var callNow = immediate && !timeout;
  13. clearTimeout(timeout);
  14. timeout = setTimeout(later, wait);
  15. if (callNow)
  16. func.apply(context, args);
  17. };
  18. };
  19. /*______________________________________________________*/
  20. $(function () {
  21. //$('#test').html(mm.display_name);
  22. console.log(mm);
  23. $("#cardloading").attr('src', mm.loading);
  24. $("#loading90").attr('src', mm.loading);
  25. $("#done").attr('src', mm.done);
  26. $("span.collector").text("Pactrick");
  27. init_clientname_input("#username");
  28. });
  29. function clientname_suggestions(){
  30. return new Bloodhound({
  31. datumTokenizer: Bloodhound.tokenizers.obj.whitespace('name'),
  32. queryTokenizer: Bloodhound.tokenizers.whitespace,
  33. remote: {
  34. url: mm.ajax_url + '?' + jQuery.param({
  35. _ajax_nonce: mm.nonce, // nonce
  36. action: "search_users", // action
  37. pattern: "QUERY", // search pattern
  38. }),
  39. wildcard: 'QUERY' // %QUERY will be replace by users input in
  40. }, // the url option.
  41. });
  42. }
  43. function onUpdateClientID (e, suggestion)
  44. {
  45. mm.current_user = suggestion.userid;
  46. $('#details').hide();
  47. $.post(mm.ajax_url, { // POST request
  48. _ajax_nonce: mm.nonce, // nonce
  49. action: "list_users", // action
  50. client : suggestion.userid,
  51. name : ''
  52. }, function(response, status, xhr){
  53. step2_verify_user(response);
  54. }).fail(function(){
  55. errUserName("Network Error, Please try again later");
  56. });
  57. }
  58. function init_clientname_input(selector){
  59. //console.log('selector = ' + selector);
  60. // init Typeahead
  61. jQuery(selector).typeahead(
  62. {
  63. minLength: 0,
  64. highlight: true,
  65. hint:false,
  66. },
  67. {
  68. name: 'clientnames',
  69. source: clientname_suggestions(), // suggestion engine is passed as the source
  70. display: function(item) { // display: 'name' will also work
  71. //console.log('display' + item.userid);
  72. return item.username;
  73. },
  74. limit: 5,
  75. templates: {
  76. suggestion: function(item) {
  77. //console.log(item);
  78. return '<div><i class="fusion-li-icon fa-user fas"></i> '+ item.username +'-'+ item.userid +'</div>';
  79. },
  80. pending: function (query) {
  81. return '<img src=' + mm.search_user + '>';
  82. },
  83. },
  84. 'updater' : function(item) {
  85. //console.log('selected +' + item);
  86. return item;
  87. }
  88. }).bind('typeahead:select', onUpdateClientID
  89. ).bind('typeahead:autocomplete', onUpdateClientID);
  90. }
  91. function errUserName(msg)
  92. {
  93. var el = $("#errUserName");
  94. el.html(msg);
  95. el.fadeIn();
  96. setTimeout(function(){
  97. el.fadeOut();
  98. }, 2000);
  99. }
  100. //step1
  101. $(document).on("click", "#step1", function(){
  102. var input = $("#username").val();
  103. if ( input == "" ){
  104. errUserName(" cannot be empty");
  105. return;
  106. }
  107. $.post(mm.ajax_url, { // POST request
  108. _ajax_nonce: mm.nonce, // nonce
  109. action: "list_users", // action
  110. client : mm.current_user,
  111. }, function(response, status, xhr){
  112. step2_verify_user(response);
  113. }).fail(function(){
  114. errUserName("Network Error, Please try again later");
  115. });
  116. });
  117. //step2
  118. function step2_verify_user(response)
  119. {
  120. console.log(response);
  121. var el = $("#userpass");
  122. el.slideUp();
  123. el.slideDown();
  124. $("#vmobile").text(response.phone);
  125. $("#vemail").text(response.email);
  126. }
  127. //verify
  128. $(document).on("click", "#step2", function(){
  129. var input = $("#verifycode").val();
  130. var method = $("#verify_method").val();
  131. $.post(mm.ajax_url, { // POST request
  132. _ajax_nonce: mm.nonce, // nonce
  133. action: "verify_user", // action
  134. client : mm.current_user,
  135. method: method,
  136. verifycode : input,
  137. }, function(response, status, xhr){
  138. step3_show_details(response);
  139. }).fail(function(){
  140. errUserName("Network Error, Please try again later");
  141. });
  142. });
  143. function step3_show_details(response)
  144. {
  145. var el = $('#details');
  146. el.slideDown();
  147. if ( response.pass ){
  148. el.slideDown();
  149. $("#errVerify").text("");
  150. }else {
  151. el.hide();
  152. $("#errVerify").text("Incorrect, please try again");
  153. }
  154. $("#postaladdr").val(response.addr);
  155. $("#states").val(response.state);
  156. $("span.collector").text(response.pickup);
  157. $("#pickupcontact").val(response.pp);
  158. $("#pickupwechat").val(response.ppwechat);
  159. $("#pickuplocation").val(response.loc);
  160. $("#pickuptime").val(response.time);
  161. $(':radio:not(:checked)').attr('disabled', false);
  162. $(':radio:checked').attr('disabled', false);
  163. //set delivery
  164. switch(response.delivery)
  165. {
  166. case 'pp':
  167. $('input:radio[name=delivery]:nth(2)').prop('checked',true);
  168. $('tr.pp').show();
  169. break;
  170. case 'dp':
  171. $('tr.pp').hide();
  172. $('input:radio[name=delivery]:nth(1)').prop('checked',true);
  173. break;
  174. default:
  175. $('tr.pp').hide();
  176. $('input:radio[name=delivery]:nth(0)').prop('checked',true);
  177. }
  178. $(':radio:not(:checked)').attr('disabled', true);
  179. $(':radio:checked').attr('disabled', false);
  180. //steps
  181. $("#medal").prop("checked", response.step >= 1);
  182. $("#posted").prop("checked", response.step >= 2);
  183. $("#received").prop("checked", response.step >= 3);
  184. $("#readyforpickup").prop("checked", response.step >= 4);
  185. $("#delivered").prop("checked", response.step >= 5);
  186. }
  187. //apply card
  188. $(document).on("click", "#cardbtn", function(){
  189. var loading = $('#cardloading');
  190. var check = $('#card');
  191. $(this).hide();
  192. loading.show();
  193. setTimeout(function(){
  194. loading.hide();
  195. check.show();
  196. }, 2000);
  197. });
  198. //apply 90 meda;
  199. $(document).on("click", "#btn90", function(){
  200. var loading = $('#loading90');
  201. var check = $('#medal90');
  202. $(this).hide();
  203. loading.show();
  204. setTimeout(function(){
  205. loading.hide();
  206. check.show();
  207. }, 2000);
  208. });
  209. //confirm;
  210. $(document).on("click", "#confirm", function(){
  211. var search = $("#search");
  212. var verify = $("#userpass");
  213. var details = $("#details");
  214. var btn = $('#confirm');
  215. var img = $('#done');
  216. $(this).hide();
  217. verify.hide();
  218. details.hide();
  219. search.hide();
  220. img.show();
  221. setTimeout(function(){
  222. btn.show();
  223. img.hide();
  224. }, 4000);
  225. });
  226. })(jQuery);