|
|
@ -1,6 +1,8 @@ |
|
|
|
// variable to en-/disable debug
|
|
|
|
// set to 1 to enable debug log
|
|
|
|
var DEBUG; |
|
|
|
if (DEBUG === undefined) { |
|
|
|
var DEBUG = 1; |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -10,14 +12,15 @@ var DEBUG; |
|
|
|
|
|
|
|
//variable definitions
|
|
|
|
var serverUrl = gcf.getCgiBinPath(), // the url of the cgi-bin folder with the scripts we call with the ajaxCall() function
|
|
|
|
input = document.getElementById("input"), |
|
|
|
target = document.getElementById("output"), // get the html area where we print out the data
|
|
|
|
searchForm = document.getElementById("search-form"), // get the search form
|
|
|
|
lastHst, |
|
|
|
haltestelle; // object with methods to get and process the data
|
|
|
|
|
|
|
|
// debug log
|
|
|
|
if (DEBUG === 1) {console.log("anonymous function");} |
|
|
|
|
|
|
|
|
|
|
|
// haltestelle object
|
|
|
|
haltestelle = { |
|
|
|
|
|
|
@ -33,8 +36,10 @@ var DEBUG; |
|
|
|
var hstName = document.getElementById("q").value, |
|
|
|
hstUrl = encodeURI(serverUrl + "abfahrtsmonitor.py?query=abfahrten.do&ort=dresden&hst=" + hstName); |
|
|
|
|
|
|
|
lastHst = hstName; |
|
|
|
|
|
|
|
// get the data from the server with an ajax call
|
|
|
|
gcf.ajaxCall(hstUrl, target, this.processAbfahrten, "text"); |
|
|
|
gcf.ajaxCall(hstUrl, target, haltestelle.processAbfahrten, "text"); |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
@ -48,13 +53,14 @@ var DEBUG; |
|
|
|
var i, |
|
|
|
y, |
|
|
|
htmlOutput, |
|
|
|
htmlInput, |
|
|
|
entry, |
|
|
|
dataLength; |
|
|
|
|
|
|
|
// process of response only if it's not empty
|
|
|
|
if (data.indexOf("[]") !== -1) { // there was an empty response
|
|
|
|
|
|
|
|
this.getHaltestellen(); |
|
|
|
haltestelle.getHaltestellen(); |
|
|
|
|
|
|
|
} else { |
|
|
|
|
|
|
@ -68,6 +74,9 @@ var DEBUG; |
|
|
|
|
|
|
|
dataLength = data.length; |
|
|
|
|
|
|
|
htmlInput = "<label for='q'>Haltestelle</label>"; |
|
|
|
htmlInput += "<input type='search' id='q' name='q' required placeholder='Haltestelle eingeben' value='" + lastHst + "'>"; |
|
|
|
|
|
|
|
// generate table header
|
|
|
|
htmlOutput = "<table>"; |
|
|
|
htmlOutput += "<tr>"; |
|
|
@ -99,8 +108,10 @@ var DEBUG; |
|
|
|
|
|
|
|
// close table
|
|
|
|
htmlOutput += "</table>"; |
|
|
|
|
|
|
|
// print content into web page
|
|
|
|
target.innerHTML = htmlOutput; |
|
|
|
input.innerHTML = htmlInput; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
@ -111,15 +122,12 @@ var DEBUG; |
|
|
|
// debug log
|
|
|
|
if (DEBUG === 1) {console.log("getHaltestellen() method");} |
|
|
|
|
|
|
|
// prevent submit default behaviour
|
|
|
|
//event.preventDefault();
|
|
|
|
|
|
|
|
// construct ajax url
|
|
|
|
var hstName = document.getElementById("q").value, |
|
|
|
hstUrl = encodeURI(serverUrl + "abfahrtsmonitor.py?query=haltestelle.do&ort=dresden&hst=" + hstName); |
|
|
|
|
|
|
|
// get the data from the server with an ajax call
|
|
|
|
gcf.ajaxCall(hstUrl, target, this.processHaltestellen, "text"); |
|
|
|
gcf.ajaxCall(hstUrl, target, haltestelle.processHaltestellen, "text"); |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
@ -133,6 +141,7 @@ var DEBUG; |
|
|
|
var i, |
|
|
|
entry, |
|
|
|
dataLength, |
|
|
|
htmlInput, |
|
|
|
htmlOutput; |
|
|
|
|
|
|
|
// process of response only if it's not empty
|
|
|
@ -140,6 +149,8 @@ var DEBUG; |
|
|
|
|
|
|
|
htmlOutput = "<p>unbekannte Haltstelle, bitte erneut versuchen</p>"; |
|
|
|
|
|
|
|
target.innerHTML = htmlOutput; |
|
|
|
|
|
|
|
} else { |
|
|
|
|
|
|
|
// replace useless chars & split string into array
|
|
|
@ -154,28 +165,26 @@ var DEBUG; |
|
|
|
dataLength = data.length; |
|
|
|
|
|
|
|
// generate table header
|
|
|
|
htmlOutput = "<table>"; |
|
|
|
htmlInput = "<label for='q'>Haltestelle</label>"; |
|
|
|
htmlInput += "<select id='q' name='q' required>"; |
|
|
|
|
|
|
|
// generate table entries
|
|
|
|
for (i = 0; i < dataLength; i++) { |
|
|
|
|
|
|
|
htmlOutput += "<tr>"; |
|
|
|
entry = data[i].split(","); |
|
|
|
// debug log
|
|
|
|
if (DEBUG === 1) {console.log("part " + i + " of parsed data: " + entry);} |
|
|
|
|
|
|
|
htmlOutput += "<td>" + entry[0].slice(1, -1) + "</td>"; |
|
|
|
htmlOutput += "</tr>"; |
|
|
|
htmlInput += "<option value='" + (entry[0].slice(1, -1)) + "'>" + (entry[0].slice(1, -1)) + "</option>"; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
// close table
|
|
|
|
htmlOutput += "</table>"; |
|
|
|
htmlInput += "</select>"; |
|
|
|
|
|
|
|
} |
|
|
|
input.innerHTML = htmlInput; |
|
|
|
|
|
|
|
// print content into web page
|
|
|
|
target.innerHTML = htmlOutput; |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
@ -183,6 +192,5 @@ var DEBUG; |
|
|
|
|
|
|
|
//event listeners
|
|
|
|
searchForm.addEventListener("submit", haltestelle.getAbfahrten, false); |
|
|
|
//searchForm.addEventListener("submit", haltestelle.getHaltestellen, false);
|
|
|
|
|
|
|
|
}()); // end of anonymous function
|