Improved www.ttss.krakow.pl
Jacek Kowalski
2017-03-18 04c70969d90c6926a13906579e428b097d10d763
index.js
@@ -12,6 +12,7 @@
var stop_name_form = stop_name.form;
var stop_name_autocomplete = document.getElementById('stop-name-autocomplete');
var stop_name_autocomplete_xhr;
var stop_name_autocomplete_timer;
var times_xhr;
var times_timer;
@@ -93,6 +94,11 @@
   var prefix;
   var type;
   var low; // low floor: 0 = no, 1 - semi, 2 - full
   // Single exception - old id used in one case
   if(id == 831) {
      id = 216;
   }
   
   if(101 <= id && id <= 173) {
      prefix = 'HW';
@@ -265,7 +271,7 @@
   nav.className = nav.className.replace(' loading', '');
}
function loadTimes(stopId = null, clearRoute = false) {
function loadTimes(stopId, clearRoute) {
   if(!stopId) stopId = stop_id;
   if(!stopId) return;
   
@@ -387,11 +393,6 @@
   }).fail(fail_ajax).always(loading_end);
}
function declinate(num, singular, plural) {
   if(num == 1) return num + ' ' + singular;
   return num + ' ' + plural;
}
function startTimer(date) {
   if(date) {
      setText(refresh_text, lang.last_refreshed.replace('$time', lang.time_now));
@@ -450,6 +451,8 @@
   
   if(stop_id) return;
   
   setText(page_title, lang.page_title);
   if(stop_name_autocomplete.value) {
      setText(refresh_text, lang.select_stop_click_go);
   } else {
@@ -490,6 +493,26 @@
   }
}
function stop_autocomplete() {
   if(stop_name_autocomplete_xhr) stop_name_autocomplete_xhr.abort();
   stop_name_autocomplete_xhr = $.get(
      'stops.php?query=' + encodeURIComponent(stop_name.value)
   ).done(function(data) {
      deleteChildren(stop_name_autocomplete);
      for(var i = 0, il = data.length; i < il; i++) {
         if(data[i].type != 'stop') continue;
         if(data[i].id > 6000) continue;
         var opt = document.createElement('option');
         opt.value = data[i].id;
         setText(opt, decodeEntities(data[i].name));
         stop_name_autocomplete.appendChild(opt);
      }
      if(!stop_id) setText(refresh_text, lang.select_stop_click_go);
   }).fail(fail_ajax);
}
function init() {
   if(!window.jQuery) {
      fail(lang.jquery_not_loaded);
@@ -507,23 +530,9 @@
   
   stop_name.addEventListener('input', function(e) {
      if(!stop_name.value) return;
      if(stop_name_autocomplete_xhr) stop_name_autocomplete_xhr.abort();
      if(stop_name_autocomplete_timer) clearTimeout(stop_name_autocomplete_timer);
      
      stop_name_autocomplete_xhr = $.get(
         ttss_base + '/lookup/autocomplete/json'
            + '?query=' + encodeURIComponent(stop_name.value)
      ).done(function(data) {
         deleteChildren(stop_name_autocomplete);
         for(var i = 1, il = data.length; i < il; i++) {
            if(data[i].id > 6000) continue;
            var opt = document.createElement('option');
            opt.value = data[i].id;
            setText(opt, decodeEntities(data[i].name));
            stop_name_autocomplete.appendChild(opt);
         }
         if(!stop_id) setText(refresh_text, lang.select_stop_click_go);
      }).fail(fail_ajax);
      stop_name_autocomplete_timer = setTimeout(stop_autocomplete, 100);
   });
   
   setText(refresh_text, lang.enter_stop_name_to_begin);