Commit 50acab5a authored by Antek Grzanka's avatar Antek Grzanka

Add changing the data source.

parent 3116cb85
...@@ -67,9 +67,15 @@ ...@@ -67,9 +67,15 @@
(function(){ (function(){
var dataDownloaded = false;
var data;
var defaultStation = "00000000-0000-0000-0000-000000000001"; var defaultStation = "00000000-0000-0000-0000-000000000001";
var defaultPollution = "00000000-0000-0000-0000-000000000001"; var defaultPollution = "00000000-0000-0000-0000-000000000001";
var selectedStation = defaultStation;
var selectedPollution = defaultPollution;
var possibleCities = ['bialystok', 'kielce', 'krakow', 'kujawskopomorskie', 'lublin', 'lubuskie', 'lodz', 'olsztyn', 'opole', 'poznan', 'rzeszow', 'szczecin', 'slask', 'trojmiasto', 'warszawa', 'wielka_brytania_i_irlandia', 'wroclaw']; var possibleCities = ['bialystok', 'kielce', 'krakow', 'kujawskopomorskie', 'lublin', 'lubuskie', 'lodz', 'olsztyn', 'opole', 'poznan', 'rzeszow', 'szczecin', 'slask', 'trojmiasto', 'warszawa', 'wielka_brytania_i_irlandia', 'wroclaw'];
var getParams = function(){ var getParams = function(){
...@@ -84,20 +90,22 @@ ...@@ -84,20 +90,22 @@
return vars; return vars;
}; };
var getPollution = function(station, pollution){ var getPollution = function(){
var xhr = new XMLHttpRequest(); var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function() { xhr.onreadystatechange = function() {
if (xhr.readyState == XMLHttpRequest.DONE) { if (xhr.readyState == XMLHttpRequest.DONE) {
updateView(filterValues(JSON.parse(xhr.response), station, pollution)); dataDownloaded = true;
data = JSON.parse(xhr.response);
updateView();
} }
} }
xhr.open('GET', 'view', true); xhr.open('GET', 'view', true);
xhr.send(null); xhr.send(null);
}; };
var filterValues = function(data, station, pollution){ var filterValues = function(){
var measurement = data.measurements[Object.keys(data.measurements).find(function(key){ var measurement = data.measurements[Object.keys(data.measurements).find(function(key){
return data.measurements[key].station == station && data.measurements[key].type == pollution; return data.measurements[key].station == selectedStation && data.measurements[key].type == selectedPollution;
})]; })];
if (measurement){ if (measurement){
return measurement.value; return measurement.value;
...@@ -107,14 +115,20 @@ ...@@ -107,14 +115,20 @@
}; };
var updateView = function(value){ var updateView = function(value){
document.getElementById("pollution-value").textContent = value; document.getElementById("pollution-value").textContent = filterValues();
}; };
var parameters = getParams(); var parameters = getParams();
document.getElementById('select-station').value = parameters["local_id"] || defaultStation;
document.getElementById('select-station').addEventListener("change", function(){
selectedStation = document.getElementById('select-station').value;
updateView();
});
if (parameters["local_id"]){ if (parameters["local_id"]){
getPollution(parameters["local_id"], defaultPollution); selectedStation = parameters["local_id"];
getPollution();
} else if (parameters["locals"] && parameters["locals"] === 'krakow'){ } else if (parameters["locals"] && parameters["locals"] === 'krakow'){
getPollution(defaultStation, defaultPollution); getPollution();
} }
})(); })();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment