VladislavNechepaev

Untitled

Oct 23rd, 2020
139
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. const poshtaRequestList = [32]
  2.     const currentRequestId = window.location.pathname.split("/").slice(-1)[0]
  3.         const langPattern = /[а-щА-ЩЬьЮюЯяЇїІіЄєҐґ.,-\/0-9 \b]/
  4.     if (poshtaRequestList.includes(parseInt(currentRequestId))) {
  5.       const fsFields = {
  6.         32: {
  7.           dropdown: "requested_item_values_32_requested_item_value_attributes_cf_delivery_options_63350",
  8.           address: {
  9.             region: "requested_item_values_32_requested_item_value_attributes_cf_text_160216200880702_63350",
  10.             city: "requested_item_values_32_requested_item_value_attributes_cf_text_160198270408483_63350",
  11.             district: "requested_item_values_32_requested_item_value_attributes_cf_text_160216200880721_63350",
  12.             street: "requested_item_values_32_requested_item_value_attributes_cf_text_160198270408495_63350",
  13.             building: "requested_item_values_32_requested_item_value_attributes_cf_text_160216200880737_63350",
  14.             apartment: "requested_item_values_32_requested_item_value_attributes_cf_text_160216200880747_63350"
  15.           },
  16.           pickup: {
  17.             receiver: "requested_item_values_32_requested_item_value_attributes_cf_receiver_63350",
  18.             phone: "requested_item_values_32_requested_item_value_attributes_cf_phone_number_63350",
  19.             city: "requested_item_values_32_requested_item_value_attributes_cf_city_63350",
  20.             location: "requested_item_values_32_requested_item_value_attributes_cf_novaposhta_office_63350"
  21.           },
  22.           dropdown_options: [
  23.             "...",
  24.             "Address delivery",
  25.             "Delivery to NovaPoshta office",
  26.             "Pick up at the Toronto office",
  27.             "Pick up at the Community office",
  28.             "Pick up at the Lviv office",
  29.             "Courier delivery to the Lab 72/1",
  30.             "Courier delivery to the Lab 72",
  31.             "Courier delivery to the Lab 64"
  32.           ]
  33.         }
  34.       }
  35.       // =============================================================================================================
  36.       // =============================================================================================================
  37.       // =============================================================================================================
  38.       var fsNative = {
  39.         dropdown: document.getElementById(fsFields[currentRequestId].dropdown),
  40.         address: {},
  41.         pickup: {}
  42.       }
  43.       var fsCustom = {
  44.         dropdown: createSimplifiedDropdown(fsFields[currentRequestId].dropdown, fsFields[currentRequestId].dropdown_options),
  45.         address: {},
  46.         pickup: {}
  47.       }
  48.       fsCustom.dropdown.onchange = function(){ renderController() }
  49.       for (let key in fsFields[currentRequestId].address) {
  50.         fsNative.address[key] = document.getElementById(fsFields[currentRequestId].address[key])
  51.         fsCustom.address[key] = createInputWithRestrictions(fsNative.address[key], langPattern)
  52.         fsCustom.address[key].onkeydown = function(e){
  53.           if (langPattern.test(e.key) || e.key === "Backspace") {
  54.             renderController(fsNative.address[key], e.key)
  55.           } else {
  56.             return false
  57.           }
  58.         }
  59.       }
  60.       for (let key in fsFields[currentRequestId].pickup) {
  61.         fsNative.pickup[key] = document.getElementById(fsFields[currentRequestId].pickup[key])
  62.         fsCustom.pickup[key] = createInputWithRestrictions(fsNative.pickup[key], langPattern)
  63.         fsCustom.pickup[key].onkeydown = function(e){
  64.           if (langPattern.test(e.key)) {
  65.             renderController(fsNative.pickup[key], e.key)
  66.           } else {
  67.             return false
  68.           }
  69.         }
  70.       }
  71.      
  72.       renderController()
  73.      
  74.       function renderController(elem, key){
  75.         //console.log(elem, key)
  76.         //console.log('test')
  77.         fsNative.dropdown.value = fsCustom.dropdown.value === "..." ? "" : fsCustom.dropdown.value
  78.         if (fsCustom.dropdown.value === 'Address delivery') {
  79.           for (let key in fsCustom.address) {
  80.             fsCustom.address[key].parentNode.hidden = false
  81.             fsNative.address[key].value = fsCustom.address[key].value
  82.           }
  83.           for (let key in fsCustom.pickup) {
  84.             fsCustom.pickup[key].value = ""
  85.             fsNative.pickup[key].value = ""
  86.             fsCustom.pickup[key].parentNode.hidden = true
  87.           }
  88.         } else if (fsCustom.dropdown.value === 'Delivery to NovaPoshta office') {
  89.           for (let key in fsCustom.pickup) {
  90.             fsCustom.pickup[key].parentNode.hidden = false
  91.             fsNative.pickup[key].value = fsCustom.pickup[key].value
  92.           }
  93.           for (let key in fsCustom.address) {
  94.             fsCustom.address[key].value = ""
  95.             fsNative.address[key].value = ""
  96.             fsCustom.address[key].parentNode.hidden = true
  97.           }
  98.         } else {
  99.           for (let key in fsCustom.address) {
  100.             fsCustom.address[key].value = ""
  101.             fsNative.address[key].value = ""
  102.             fsCustom.address[key].parentNode.hidden = true
  103.           }
  104.           for (let key in fsCustom.pickup) {
  105.             fsCustom.pickup[key].value = ""
  106.             fsNative.pickup[key].value = ""
  107.             fsCustom.pickup[key].parentNode.hidden = true
  108.           }
  109.         }
  110.         if (elem && key) {
  111.           console.log(key)
  112.           if (key === "Backspace") {
  113.             console.log(elem.value.slice(0, -1))
  114.             elem.value = elem.value.slice(0, -1)
  115.           } else {
  116.             if (langPattern.test(key)) elem.value += key
  117.           }
  118.         }
  119.       }
  120.     }
Advertisement
Add Comment
Please, Sign In to add comment