| | |
| | | var route_xhr; |
| | | var route_line = document.getElementById('route-line'); |
| | | var route_table = document.getElementById('route-table'); |
| | | var route_vehicle = document.getElementById('route-vehicle'); |
| | | |
| | | var refresh_button = document.getElementById('refresh'); |
| | | var refresh_text = document.getElementById('refresh-text'); |
| | |
| | | var alert_close = document.getElementById('alert-close'); |
| | | |
| | | var nav = document.getElementsByTagName('nav')[0]; |
| | | var vehicle_data = document.getElementById('vehicle-data'); |
| | | var vehicle_data_style = document.getElementById('vehicle-data-style'); |
| | | |
| | | function parseStatus(status) { |
| | | switch(status.status) { |
| | |
| | | var tr = document.createElement('tr'); |
| | | addCellWithText(tr, data.old[i].patternText); |
| | | var dir_cell = addCellWithText(tr, data.old[i].direction); |
| | | dir_cell.appendChild(displayVehicle(parseVehicle(data.old[i].vehicleId))); |
| | | var vehicle = parseVehicle(data.actual[i].vehicleId); |
| | | dir_cell.appendChild(displayVehicle(vehicle)); |
| | | addCellWithText(tr, vehicle.num).className = 'vehicleData'; |
| | | var status = parseStatus(data.old[i]); |
| | | addCellWithText(tr, status); |
| | | addCellWithText(tr, ''); |
| | | |
| | | tr.className = 'active'; |
| | | tr.addEventListener('click', function(tripId){ return function(){ loadRoute(tripId); } }(data.old[i].tripId) ); |
| | | tr.addEventListener('click', function(tripId, vehicleInfo) { |
| | | return function(){ loadRoute(tripId, vehicleInfo); } |
| | | }(data.actual[i].tripId, vehicle)); |
| | | times_table.appendChild(tr); |
| | | } |
| | | |
| | |
| | | var tr = document.createElement('tr'); |
| | | addCellWithText(tr, data.actual[i].patternText); |
| | | var dir_cell = addCellWithText(tr, data.actual[i].direction); |
| | | dir_cell.appendChild(displayVehicle(parseVehicle(data.actual[i].vehicleId))); |
| | | var vehicle = parseVehicle(data.actual[i].vehicleId); |
| | | dir_cell.appendChild(displayVehicle(vehicle)); |
| | | addCellWithText(tr, vehicle.num).className = 'vehicleData'; |
| | | var status = parseStatus(data.actual[i]); |
| | | var status_cell = addCellWithText(tr, status); |
| | | var delay = parseDelay(data.actual[i]); |
| | |
| | | tr.className = 'warning'; |
| | | } |
| | | |
| | | tr.addEventListener('click', function(tripId){ return function(){ loadRoute(tripId); } }(data.actual[i].tripId) ); |
| | | tr.addEventListener('click', function(tripId, vehicleInfo) { |
| | | return function(){ loadRoute(tripId, vehicleInfo); } |
| | | }(data.actual[i].tripId, vehicle)); |
| | | times_table.appendChild(tr); |
| | | } |
| | | |
| | |
| | | }).fail(fail_ajax).always(loading_end); |
| | | } |
| | | |
| | | function loadRoute(tripId) { |
| | | function loadRoute(tripId, vehicleInfo) { |
| | | if(!tripId) tripId = route_id; |
| | | if(!tripId) return; |
| | | |
| | | if(!vehicleInfo) vehicleInfo = route_vehicle_info; |
| | | |
| | | console.log('loadRoute(' + tripId + ')'); |
| | | route_id = tripId; |
| | | route_vehicle_info = vehicleInfo; |
| | | |
| | | if(route_xhr) route_xhr.abort(); |
| | | route_xhr = $.get( |
| | |
| | | } |
| | | |
| | | setText(route_line, data.routeName + ' ' + data.directionText); |
| | | |
| | | deleteChildren(route_vehicle); |
| | | if(vehicleInfo) { |
| | | var span = displayVehicle(vehicleInfo); |
| | | setText(route_vehicle, span.title); |
| | | route_vehicle.insertBefore(span, route_vehicle.firstChild); |
| | | } |
| | | |
| | | deleteChildren(route_table); |
| | | |
| | | for(var i = 0, il = data.old.length; i < il; i++) { |
| | |
| | | loadTimes(stop_name_autocomplete.value); |
| | | }); |
| | | |
| | | refresh_button.addEventListener('click', function(e) { |
| | | refresh_button.addEventListener('click', function() { |
| | | loadTimes(); |
| | | loadRoute(); |
| | | }); |
| | | |
| | | alert_close.addEventListener('click', function(e) { |
| | | alert_close.addEventListener('click', function() { |
| | | alert.style.display = 'none'; |
| | | }); |
| | | |
| | | vehicle_data.addEventListener('click', function(e) { |
| | | e.preventDefault(); |
| | | vehicle_data.style.display = 'none'; |
| | | setText(vehicle_data_style, '.vehicleData { display: table-cell; }') |
| | | }); |
| | | |
| | | hash(); |
| | | |
| | | window.addEventListener('hashchange', hash); |