Commit 67fe26a5 authored by Weiser's avatar Weiser
Browse files

Merge branch 'devbackend' of...

Merge branch 'devbackend' of https://transfer.hft-stuttgart.de/gitlab/22kaen1bdi/swp_ss24_wetterdaten_sammeln into devbackend
parents 0331081e f31da304
......@@ -18,8 +18,24 @@ const Currentdata = (props) => {
<div>
<div className="thq-grid-5">
<div class="filter">
<label for="location">Location:</label>
<input type="text" id="city_text" placeholder="Location" />
<label htmlFor="location">Location:</label>
<input
type="text"
id="city_text"
placeholder="Location"
value={query}
onChange={handleInputChange}
/>
{data.map((item) => (
<ListItem
key={item.id}
name={item.name}
country={item.country}
region={item.region}
lat={item.lat}
lon={item.lon}
/>
))}
<br />
<label for="region">Region:</label>
<input type="text" id="region_text" placeholder="Region" />
......@@ -446,7 +462,7 @@ const Currentdata = (props) => {
console.log("FilterString = " + filterString);
const apiUrl = `http://localhost:8080/currentweather?q=${city_text}&filter=${filterString}`;
const apiUrl = `http://localhost:8080/currentweather?q=${latitude_text},${longitude_text}&filter=${filterString}`;
fetch(apiUrl)
.then((response) => {
......@@ -496,7 +512,11 @@ const Currentdata = (props) => {
const ListItem = ({ name, country, region, lat, lon }) => {
const handleClick = () => {
alert(`Element geklickt: ${name}`);
document.getElementById("city_text").value = name;
document.getElementById("region_text").value = country;
document.getElementById("country_text").value = region;
document.getElementById("latitude_text").value = lat;
document.getElementById("longitude_text").value = lon;
};
return (
......
......@@ -33,16 +33,28 @@ const HistoricalWeatherData = (props) => {
<input type="checkbox" id="longitude" class="checkBoxFilter" />
<label for="longitude">Longitude</label>
<br />
<input type="checkbox" id="generationtime_ms" class="checkBoxFilter" />
<input
type="checkbox"
id="generationtime_ms"
class="checkBoxFilter"
/>
<label for="generationtime_ms">Generation Time (ms)</label>
<br />
<input type="checkbox" id="utc_offset_seconds" class="checkBoxFilter" />
<input
type="checkbox"
id="utc_offset_seconds"
class="checkBoxFilter"
/>
<label for="utc_offset_seconds">UTC Offset (Seconds)</label>
<br />
<input type="checkbox" id="timezone" class="checkBoxFilter" />
<label for="timezone">Timezone</label>
<br />
<input type="checkbox" id="timezone_abbreviation" class="checkBoxFilter" />
<input
type="checkbox"
id="timezone_abbreviation"
class="checkBoxFilter"
/>
<label for="timezone_abbreviation">Timezone Abbreviation</label>
<br />
<input type="checkbox" id="elevation" class="checkBoxFilter" />
......@@ -56,22 +68,38 @@ const HistoricalWeatherData = (props) => {
<input type="checkbox" id="temperature_2m" class="checkBoxFilter" />
<label for="temperature_2m">Temperature 2m</label>
<br />
<input type="checkbox" id="relative_humidity_2m" class="checkBoxFilter" />
<input
type="checkbox"
id="relative_humidity_2m"
class="checkBoxFilter"
/>
<label for="relative_humidity_2m">Relative Humidity 2m</label>
<br />
<input type="checkbox" id="precipitation" class="checkBoxFilter" />
<label for="precipitation">Precipitation</label>
<br />
<input type="checkbox" id="surface_pressure" class="checkBoxFilter" />
<input
type="checkbox"
id="surface_pressure"
class="checkBoxFilter"
/>
<label for="surface_pressure">Surface Pressure</label>
<br />
<input type="checkbox" id="wind_speed_10m" class="checkBoxFilter" />
<label for="wind_speed_10m">Wind Speed 10m</label>
<br />
<input type="checkbox" id="wind_direction_10m" className="checkBoxFilter" />
<input
type="checkbox"
id="wind_direction_10m"
className="checkBoxFilter"
/>
<label for="wind_direction_10m">Wind Direction 10m</label>
<br />
<input type="checkbox" id="wind_gusts_10m" className="checkBoxFilter" />
<input
type="checkbox"
id="wind_gusts_10m"
className="checkBoxFilter"
/>
<label for="wind_gusts_10m">Wind Gusts 10m</label>
<br />
<p>Dayly</p>
......@@ -79,35 +107,71 @@ const HistoricalWeatherData = (props) => {
<input type="checkbox" id="daily_time" class="checkBoxFilter" />
<label for="daily_time">Daily Time</label>
<br />
<input type="checkbox" id="temperature_2m_max" class="checkBoxFilter" />
<input
type="checkbox"
id="temperature_2m_max"
class="checkBoxFilter"
/>
<label for="temperature_2m_max">Temperature 2m Max</label>
<br />
<input type="checkbox" id="temperature_2m_min" class="checkBoxFilter" />
<input
type="checkbox"
id="temperature_2m_min"
class="checkBoxFilter"
/>
<label for="temperature_2m_min">Temperature 2m Min</label>
<br />
<input type="checkbox" id="temperature_2m_mean" class="checkBoxFilter" />
<input
type="checkbox"
id="temperature_2m_mean"
class="checkBoxFilter"
/>
<label for="temperature_2m_mean">Temperature 2m Mean</label>
<br />
<input type="checkbox" id="precipitation_sum" class="checkBoxFilter" />
<input
type="checkbox"
id="precipitation_sum"
class="checkBoxFilter"
/>
<label for="precipitation_sum">Precipitation Sum</label>
<br />
<input type="checkbox" id="precipitation_hours" class="checkBoxFilter" />
<input
type="checkbox"
id="precipitation_hours"
class="checkBoxFilter"
/>
<label for="precipitation_hours">Precipitation Hours</label>
<br />
<input type="checkbox" id="wind_speed_10m_max" class="checkBoxFilter" />
<input
type="checkbox"
id="wind_speed_10m_max"
class="checkBoxFilter"
/>
<label for="wind_speed_10m_max">Wind Speed 10m Max</label>
<br />
<input type="checkbox" id="wind_gusts_10m_max" class="checkBoxFilter" />
<input
type="checkbox"
id="wind_gusts_10m_max"
class="checkBoxFilter"
/>
<label for="wind_gusts_10m_max">Wind Gusts 10m Max</label>
<br />
<input type="checkbox" id="wind_direction_10m_dominant" class="checkBoxFilter" />
<label for="wind_direction_10m_dominant">Wind Direction 10m Dominant</label>
<input
type="checkbox"
id="wind_direction_10m_dominant"
class="checkBoxFilter"
/>
<label for="wind_direction_10m_dominant">
Wind Direction 10m Dominant
</label>
<br />
<div>
<label for="units">Choose a unit:</label>
<select name="unnits" id="units">
<option value="world">Rest of The World</option>
<option value="american">American units: /eagles per shool shootings</option>
<option value="american">
American units: /eagles per shool shootings
</option>
</select>
</div>
<div class="output">
......@@ -142,28 +206,47 @@ const HistoricalWeatherData = (props) => {
//Checkboxes
const latitude = document.getElementById("latitude").checked;
const longitude = document.getElementById("longitude").checked;
const generationtime_ms = document.getElementById("generationtime_ms").checked;
const utc_offset_seconds = document.getElementById("utc_offset_seconds").checked;
const generationtime_ms =
document.getElementById("generationtime_ms").checked;
const utc_offset_seconds =
document.getElementById("utc_offset_seconds").checked;
const timezone = document.getElementById("timezone").checked;
const timezone_abbreviation = document.getElementById("timezone_abbreviation").checked;
const timezone_abbreviation = document.getElementById(
"timezone_abbreviation"
).checked;
const elevation = document.getElementById("elevation").checked;
const hourly_time = document.getElementById("hourly_time").checked;
const temperature_2m = document.getElementById("temperature_2m").checked;
const relative_humidity_2m = document.getElementById("relative_humidity_2m").checked;
const relative_humidity_2m = document.getElementById(
"relative_humidity_2m"
).checked;
const precipitation = document.getElementById("precipitation").checked;
const surface_pressure = document.getElementById("surface_pressure").checked;
const surface_pressure =
document.getElementById("surface_pressure").checked;
const wind_speed_10m = document.getElementById("wind_speed_10m").checked;
const wind_direction_10m = document.getElementById("wind_direction_10m").checked;
const wind_direction_10m =
document.getElementById("wind_direction_10m").checked;
const wind_gusts_10m = document.getElementById("wind_gusts_10m").checked;
const daily_time = document.getElementById("daily_time").checked;
const temperature_2m_max = document.getElementById("temperature_2m_max").checked;
const temperature_2m_min = document.getElementById("temperature_2m_min").checked;
const temperature_2m_mean = document.getElementById("temperature_2m_mean").checked;
const precipitation_sum = document.getElementById("precipitation_sum").checked;
const precipitation_hours = document.getElementById("precipitation_hours").checked;
const wind_speed_10m_max = document.getElementById("wind_speed_10m_max").checked;
const wind_gusts_10m_max = document.getElementById("wind_gusts_10m_max").checked;
const wind_direction_10m_dominant = document.getElementById("wind_direction_10m_dominant").checked;
const temperature_2m_max =
document.getElementById("temperature_2m_max").checked;
const temperature_2m_min =
document.getElementById("temperature_2m_min").checked;
const temperature_2m_mean = document.getElementById(
"temperature_2m_mean"
).checked;
const precipitation_sum =
document.getElementById("precipitation_sum").checked;
const precipitation_hours = document.getElementById(
"precipitation_hours"
).checked;
const wind_speed_10m_max =
document.getElementById("wind_speed_10m_max").checked;
const wind_gusts_10m_max =
document.getElementById("wind_gusts_10m_max").checked;
const wind_direction_10m_dominant = document.getElementById(
"wind_direction_10m_dominant"
).checked;
let filterArray = [];
......@@ -244,7 +327,7 @@ const HistoricalWeatherData = (props) => {
console.log("FilterString = " + filterString);
const apiUrl = `http://localhost:8080/currentweather?q=${city_text}&filter=${filterString}`;
const apiUrl = `http://localhost:8080/historicalweather?latitude=${latitude_text}&longitude=${longitude_text}&start_date=&end_date=&filter=${filterString}`;
fetch(apiUrl)
.then((response) => {
......@@ -267,10 +350,9 @@ const HistoricalWeatherData = (props) => {
});
}
function searchAPI() {
const cityInput = document.getElementById("city").value;
const cityInput = document.getElementById("city_text").value;
const apiKey = "1244099aeaee4b179e6111803241304";
const apiUrl = `https://api.weatherapi.com/v1/search.json?key=${apiKey}&q=${cityInput}`;
const apiUrl = `http://localhost:8080/search?city=${cityInput}`;
fetch(apiUrl)
.then((response) => {
......@@ -281,12 +363,7 @@ const HistoricalWeatherData = (props) => {
return response.json();
})
.then((data) => {
// Wetterdaten anzeigen
document.getElementById("weatherData").innerText = JSON.stringify(
data,
null,
2
);
setData(data);
})
.catch((error) => {
console.error("There was a problem with the fetch operation:", error);
......@@ -296,7 +373,25 @@ const HistoricalWeatherData = (props) => {
function boolToWord(bool) {
return bool ? "yes" : "no";
}
};
const ListItem = ({ name, country, region, lat, lon }) => {
const handleClick = () => {
document.getElementById("city_text").value = name;
document.getElementById("region_text").value = country;
document.getElementById("country_text").value = region;
document.getElementById("latitude_text").value = lat;
document.getElementById("longitude_text").value = lon;
};
return (
<div className="list-item" onClick={handleClick}>
<div className="title">{name}</div>
<div className="subtitle">
Country: {country} <br />
Region: {region} <br />
Lat: {lat}, Lon: {lon}
</div>
</div>
);
};
export default HistoricalWeatherData;
......@@ -50,7 +50,11 @@ const WeatherForecastData = (props) => {
/>
<label> Localtime Epoch</label>
<br />
<input type="checkbox" id="localtime" className="checkBoxFilter" />
<input
type="checkbox"
id="localtime"
className="checkBoxFilter"
/>
<label> Localtime</label>
<br />
<input
......@@ -94,25 +98,53 @@ const WeatherForecastData = (props) => {
<input type="checkbox" id="avghumidity" class="checkBoxFilter" />
<label for="avghumidity">Average Humidity</label>
<br />
<input type="checkbox" id="daily_will_it_rain" class="checkBoxFilter" />
<input
type="checkbox"
id="daily_will_it_rain"
class="checkBoxFilter"
/>
<label for="daily_will_it_rain">Daily Will it Rain</label>
<br />
<input type="checkbox" id="daily_chance_of_rain" class="checkBoxFilter" />
<input
type="checkbox"
id="daily_chance_of_rain"
class="checkBoxFilter"
/>
<label for="daily_chance_of_rain">Daily Chance of Rain</label>
<br />
<input type="checkbox" id="daily_will_it_snow" class="checkBoxFilter" />
<input
type="checkbox"
id="daily_will_it_snow"
class="checkBoxFilter"
/>
<label for="daily_will_it_snow">Daily Will it Snow</label>
<br />
<input type="checkbox" id="daily_chance_of_snow" class="checkBoxFilter" />
<input
type="checkbox"
id="daily_chance_of_snow"
class="checkBoxFilter"
/>
<label for="daily_chance_of_snow">Daily Chance of Snow</label>
<br />
<input type="checkbox" id="condition_text" class="checkBoxFilter" />
<input
type="checkbox"
id="condition_text"
class="checkBoxFilter"
/>
<label for="condition_text">Condition Text</label>
<br />
<input type="checkbox" id="condition_icon" class="checkBoxFilter" />
<input
type="checkbox"
id="condition_icon"
class="checkBoxFilter"
/>
<label for="condition_icon">Condition Icon</label>
<br />
<input type="checkbox" id="condition_code" class="checkBoxFilter" />
<input
type="checkbox"
id="condition_code"
class="checkBoxFilter"
/>
<label for="condition_code">Condition Code</label>
<br />
<input type="checkbox" id="uv" class="checkBoxFilter" />
......@@ -133,10 +165,18 @@ const WeatherForecastData = (props) => {
<input type="checkbox" id="moon_phase" class="checkBoxFilter" />
<label for="moon_phase">Moon Phase</label>
<br />
<input type="checkbox" id="moon_illumination" class="checkBoxFilter" />
<input
type="checkbox"
id="moon_illumination"
class="checkBoxFilter"
/>
<label for="moon_illumination">Moon Illumination</label>
<br />
<input type="checkbox" id="hour_time_epoch" class="checkBoxFilter" />
<input
type="checkbox"
id="hour_time_epoch"
class="checkBoxFilter"
/>
<label for="hour_time_epoch">Hour Time Epoch</label>
<br />
<input type="checkbox" id="hour_time" class="checkBoxFilter" />
......@@ -148,46 +188,90 @@ const WeatherForecastData = (props) => {
<input type="checkbox" id="hour_is_day" class="checkBoxFilter" />
<label for="hour_is_day">Hour Is Day</label>
<br />
<input type="checkbox" id="hour_condition_text" class="checkBoxFilter" />
<input
type="checkbox"
id="hour_condition_text"
class="checkBoxFilter"
/>
<label for="hour_condition_text">Hour Condition Text</label>
<br />
<input type="checkbox" id="hour_condition_icon" class="checkBoxFilter" />
<input
type="checkbox"
id="hour_condition_icon"
class="checkBoxFilter"
/>
<label for="hour_condition_icon">Hour Condition Icon</label>
<br />
<input type="checkbox" id="hour_condition_code" class="checkBoxFilter" />
<input
type="checkbox"
id="hour_condition_code"
class="checkBoxFilter"
/>
<label for="hour_condition_code">Hour Condition Code</label>
<br />
<input type="checkbox" id="hour_wind" class="checkBoxFilter" />
<label for="hour_wind">Hour Wind</label>
<br />
<input type="checkbox" id="hour_wind_degree" class="checkBoxFilter" />
<input
type="checkbox"
id="hour_wind_degree"
class="checkBoxFilter"
/>
<label for="hour_wind_degree">Hour Wind Degree</label>
<br />
<input type="checkbox" id="hour_wind_dir" class="checkBoxFilter" />
<input
type="checkbox"
id="hour_wind_dir"
class="checkBoxFilter"
/>
<label for="hour_wind_dir">Hour Wind Direction</label>
<br />
<input type="checkbox" id="hour_pressure" class="checkBoxFilter" />
<input
type="checkbox"
id="hour_pressure"
class="checkBoxFilter"
/>
<label for="hour_pressure">Hour Pressure</label>
<br />
<input type="checkbox" id="hour_precip" class="checkBoxFilter" />
<label for="hour_precip">Hour Precipitation</label>
<br />
<input type="checkbox" id="hour_humidity" class="checkBoxFilter" />
<input
type="checkbox"
id="hour_humidity"
class="checkBoxFilter"
/>
<label for="hour_humidity">Hour Humidity</label>
<br />
<input type="checkbox" id="hour_cloud" class="checkBoxFilter" />
<label for="hour_cloud">Hour Cloud</label>
<br />
<input type="checkbox" id="hour_feelslike" class="checkBoxFilter" />
<input
type="checkbox"
id="hour_feelslike"
class="checkBoxFilter"
/>
<label for="hour_feelslike">Hour Feels Like</label>
<br />
<input type="checkbox" id="hour_windchill" class="checkBoxFilter" />
<input
type="checkbox"
id="hour_windchill"
class="checkBoxFilter"
/>
<label for="hour_windchill">Hour Wind Chill</label>
<br />
<input type="checkbox" id="hour_heatindex" class="checkBoxFilter" />
<input
type="checkbox"
id="hour_heatindex"
class="checkBoxFilter"
/>
<label for="hour_heatindex">Hour Heat Index</label>
<br />
<input type="checkbox" id="hour_dewpoint" class="checkBoxFilter" />
<input
type="checkbox"
id="hour_dewpoint"
class="checkBoxFilter"
/>
<label for="hour_dewpoint">Hour Dew Point</label>
<br />
<input type="checkbox" id="hour_vis" class="checkBoxFilter" />
......@@ -204,7 +288,9 @@ const WeatherForecastData = (props) => {
<label for="units">Choose a unit:</label>
<select name="unnits" id="units">
<option value="world">Rest of The World</option>
<option value="american">American units: /eagles per shool shootings</option>
<option value="american">
American units: /eagles per shool shootings
</option>
</select>
</div>
<div>
......@@ -221,7 +307,12 @@ const WeatherForecastData = (props) => {
<div id="apiUrl">
<label>API URL:</label>
<br />
<input className="input" type="text" id="apiUrloutput" readOnly />
<input
className="input"
type="text"
id="apiUrloutput"
readOnly
/>
</div>
<button className="APIButton" onClick={searchAPI}>
City api
......@@ -250,7 +341,8 @@ const WeatherForecastData = (props) => {
const tz_id = document.getElementById("tz_id").checked;
const localtime_epoch = document.getElementById("localtime_epoch").checked;
const localtime = document.getElementById("localtime").checked;
const last_updated_epoch = document.getElementById("last_updated_epoch").checked;
const last_updated_epoch =
document.getElementById("last_updated_epoch").checked;
const last_updated = document.getElementById("last_updated").checked;
const date = document.getElementById("date").checked;
const date_epoch = document.getElementById("date_epoch").checked;
......@@ -261,10 +353,16 @@ const WeatherForecastData = (props) => {
const totalprecip = document.getElementById("totalprecip").checked;
const avgvis = document.getElementById("avgvis").checked;
const avghumidity = document.getElementById("avghumidity").checked;
const daily_will_it_rain = document.getElementById("daily_will_it_rain").checked;
const daily_chance_of_rain = document.getElementById("daily_chance_of_rain").checked;
const daily_will_it_snow = document.getElementById("daily_will_it_snow").checked;
const daily_chance_of_snow = document.getElementById("daily_chance_of_snow").checked;
const daily_will_it_rain =
document.getElementById("daily_will_it_rain").checked;
const daily_chance_of_rain = document.getElementById(
"daily_chance_of_rain"
).checked;
const daily_will_it_snow =
document.getElementById("daily_will_it_snow").checked;
const daily_chance_of_snow = document.getElementById(
"daily_chance_of_snow"
).checked;
const condition_text = document.getElementById("condition_text").checked;
const condition_icon = document.getElementById("condition_icon").checked;
const condition_code = document.getElementById("condition_code").checked;
......@@ -274,16 +372,24 @@ const WeatherForecastData = (props) => {
const moonrise = document.getElementById("moonrise").checked;
const moonset = document.getElementById("moonset").checked;
const moon_phase = document.getElementById("moon_phase").checked;
const moon_illumination = document.getElementById("moon_illumination").checked;
const moon_illumination =
document.getElementById("moon_illumination").checked;
const hour_time_epoch = document.getElementById("hour_time_epoch").checked;
const hour_time = document.getElementById("hour_time").checked;
const hour_temp = document.getElementById("hour_temp").checked;
const hour_is_day = document.getElementById("hour_is_day").checked;
const hour_condition_text = document.getElementById("hour_condition_text").checked;
const hour_condition_icon = document.getElementById("hour_condition_icon").checked;
const hour_condition_code = document.getElementById("hour_condition_code").checked;
const hour_condition_text = document.getElementById(
"hour_condition_text"
).checked;
const hour_condition_icon = document.getElementById(
"hour_condition_icon"
).checked;
const hour_condition_code = document.getElementById(
"hour_condition_code"
).checked;
const hour_wind = document.getElementById("hour_wind").checked;
const hour_wind_degree = document.getElementById("hour_wind_degree").checked;
const hour_wind_degree =
document.getElementById("hour_wind_degree").checked;
const hour_wind_dir = document.getElementById("hour_wind_dir").checked;
const hour_pressure = document.getElementById("hour_pressure").checked;
const hour_precip = document.getElementById("hour_precip").checked;
......@@ -358,7 +464,7 @@ const WeatherForecastData = (props) => {
console.log("FilterString = " + filterString);
const apiUrl = `http://localhost:8080/currentweather?q=${city_text}&filter=${filterString}`;
const apiUrl = `http://localhost:8080/forcastweather?q=${latitude_text},${longitude_text}&filter=${filterString}`;
fetch(apiUrl)
.then((response) => {
......@@ -381,10 +487,9 @@ const WeatherForecastData = (props) => {
});
}
function searchAPI() {
const cityInput = document.getElementById("city").value;
const cityInput = document.getElementById("city_text").value;
const apiKey = "1244099aeaee4b179e6111803241304";
const apiUrl = `https://api.weatherapi.com/v1/search.json?key=${apiKey}&q=${cityInput}`;
const apiUrl = `http://localhost:8080/search?city=${cityInput}`;
fetch(apiUrl)
.then((response) => {
......@@ -395,12 +500,7 @@ const WeatherForecastData = (props) => {
return response.json();
})
.then((data) => {
// Wetterdaten anzeigen
document.getElementById("weatherData").innerText = JSON.stringify(
data,
null,
2
);
setData(data);
})
.catch((error) => {
console.error("There was a problem with the fetch operation:", error);
......@@ -410,7 +510,25 @@ const WeatherForecastData = (props) => {
function boolToWord(bool) {
return bool ? "yes" : "no";
}
};
const ListItem = ({ name, country, region, lat, lon }) => {
const handleClick = () => {
document.getElementById("city_text").value = name;
document.getElementById("region_text").value = country;
document.getElementById("country_text").value = region;
document.getElementById("latitude_text").value = lat;
document.getElementById("longitude_text").value = lon;
};
return (
<div className="list-item" onClick={handleClick}>
<div className="title">{name}</div>
<div className="subtitle">
Country: {country} <br />
Region: {region} <br />
Lat: {lat}, Lon: {lon}
</div>
</div>
);
};
export default WeatherForecastData;
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