Guest User

Untitled

a guest
Nov 18th, 2017
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.07 KB | None | 0 0
  1. // We need to understand how to organise this piece of code better
  2.  
  3. var Delivery = (function () {
  4. var selectedCityName,
  5. $textDelivery,
  6. $textNoDelivery;
  7.  
  8. function init() {
  9. initElements();
  10. initVars();
  11. initListeners();
  12. initInterface();
  13. }
  14.  
  15. function initElements() {
  16. $textDelivery = $('.js-text-delivery');
  17. $textNoDelivery = $('.js-text-no-delivery');
  18. }
  19.  
  20. function initVars() {
  21. var cityName;
  22.  
  23. if (Ubrr.page == 'index') {
  24. cityName = Ubrr.geoipCityName;
  25. } else {
  26. cityName = localStorage.getItem('selectedCityName');
  27. }
  28.  
  29. setSelectedCityName(cityName);
  30. }
  31.  
  32. function initInterface() {
  33. updateDeviveryTextVisibility();
  34. }
  35.  
  36. function setSelectedCityName(cityName) {
  37. selectedCityName = cityName;
  38. setLocalStorage('selectedCityName', cityName);
  39. }
  40.  
  41. function onCitySelect(_event, data) {
  42. setSelectedCityName(data.cityName);
  43. }
  44.  
  45. function onOfficeSelect(_event, data) {
  46. updateDeviveryTextVisibility();
  47. }
  48.  
  49. function updateDeviveryTextVisibility() {
  50. if (needShowDeliveryText(selectedCityName)) {
  51. showDeliveryText();
  52. } else {
  53. hideDeliveryText();
  54. }
  55. }
  56.  
  57. function setLocalStorage(key, value) {
  58. localStorage.setItem(key, value);
  59. }
  60.  
  61. function getLocalStorage(key) {
  62. localStorage.getItem(key);
  63. }
  64.  
  65. function needShowDeliveryText(selectedCityName) {
  66. return $.inArray(selectedCityName, Ubrr.deliveryCityNames) !== -1;
  67. }
  68.  
  69. function showDeliveryText() {
  70. $textDelivery.show();
  71. $textNoDelivery.hide();
  72. }
  73.  
  74. function hideDeliveryText() {
  75. $textDelivery.hide();
  76. $textNoDelivery.show();
  77. }
  78.  
  79. function initListeners() {
  80. $('body').on({
  81. 'modalCityOfficeChoice.city.selected': onCitySelect,
  82. 'modalCityOfficeChoice.office.selected': onOfficeSelect
  83. });
  84. }
  85.  
  86. return {
  87. init: init
  88. }
  89. }());
  90.  
  91. $(function () {
  92. FixedFooter.init();
  93. });
Add Comment
Please, Sign In to add comment