-
Notifications
You must be signed in to change notification settings - Fork 0
/
pollution.html
143 lines (132 loc) · 3.73 KB
/
pollution.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta
name="viewport"
content="width=device-width, initial-scale=1.0"
/>
<title>Pollution Visualizer</title>
<link
rel="stylesheet"
href="https://unpkg.com/purecss@2.1.0/build/base-min.css"
/>
<link
rel="stylesheet"
href="https://unpkg.com/purecss@2.1.0/build/grids-min.css"
/>
<link
rel="stylesheet"
href="https://unpkg.com/purecss@2.1.0/build/grids-responsive-min.css"
/>
<link
rel="stylesheet"
href="./css/pollution.css"
/>
</head>
<body style="overflow: hidden">
<div id="particles-js"></div>
<div class="overlay glass">
<h1 style="margin-bottom: 0; margin-top: 0">Take a deep breath.</h1>
<p style="margin-top: 0; margin-bottom: 1em">
Enter your location to see a particle visualization of air
pollutant concentration in μg/m<sup>3</sup>:
</p>
<!-- <div class="pure-g" style="margin-top: 0; margin-bottom: 0">
<div class="pure-u-1"> -->
<label for="cityInput">City/country name:</label>
<form class="form">
<input
style="max-width: 40%"
type="text"
class="location__field"
id="cityInput"
placeholder="Your Location"
/>
<button
type="button"
class="update-btn btn--primary btn--inside uppercase"
id="fetchAndSetParticles"
style="margin-top: 1em"
>
Update
</button>
</form>
<div
class="pure-g"
style="
margin-top: 0;
margin-bottom: 0;
font-weight: bold;
padding: 0;
"
>
<div class="pure-u-1">
<p id="particleCountLabel"></p>
</div>
</div>
<hr style="opacity: 50%; margin-top: 1em" />
<p style="margin-bottom: 0; opacity: 80%">
Data from the
<a
href="https://openweathermap.org/api/air-pollution"
style="
text-decoration: none;
color: #ea6e50;
font-weight: bold;
opacity: 100%;
"
>OpenWeatherMap API</a
>
<img
style="
height: 1.2em;
padding: 0;
margin: auto;
opacity: 100%;
"
src="./assets/emoji/tree.png"
/>
</p>
</div>
<script src="https://cdn.jsdelivr.net/particles.js/2.0.0/particles.min.js"></script>
<script src="./js/pollution.js"></script>
<script>
document.addEventListener("DOMContentLoaded", (event) => {
// Use querySelector to select the button using its class
var updateButton = document.querySelector(
".update-btn.btn--primary.btn--inside.uppercase"
);
// Define the function to be called when the button is clicked
updateButton.addEventListener("click", function () {
// Use querySelector to get the value from the input with class 'location__field'
var locationValue = document
.querySelector(".location__field")
.value.trim();
// Only proceed with non-empty location value
if (locationValue) {
// Retrieve the existing JSON object from local storage
var userDataJSON = localStorage.getItem("userData");
// Check if userData is not null, if it is, create an empty object
var userData = userDataJSON
? JSON.parse(userDataJSON)
: {};
// Add or update the location key with the new value
userData.location = locationValue;
// Convert the updated object back to a JSON string
var updatedUserDataJSON = JSON.stringify(userData);
// Save the updated JSON back to local storage
localStorage.setItem("userData", updatedUserDataJSON);
// Optionally, redirect to another page or indicate success
console.log(
"Location has been updated in local storage."
);
} else {
// Optionally, indicate that the input field is empty
console.log("No location entered.");
}
});
});
</script>
</body>
</html>