Add commit to page

This commit is contained in:
nora 2023-09-03 11:11:49 +02:00
parent ef0de0124a
commit 1f89aae3de
4 changed files with 115 additions and 75 deletions

View file

@ -1,97 +1,135 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Uptime</title>
<style>
html {
font-family: Arial, Helvetica, sans-serif;
}
html {
font-family: Arial, Helvetica, sans-serif;
}
.check-result-bar-container {
display: flex;
flex-direction: column;
width: 800px;
}
/* This is a bit hacky and ensures that the bar doesn't go through the right. */
@media only screen and (max-width: 810px) {
.check-result-bar-container {
display: flex;
flex-direction: column;
width: 800px;
width: 100%;
}
}
/* This is a bit hacky and ensures that the bar doesn't go through the right. */
@media only screen and (max-width: 810px) {
.check-result-bar-container {
width: 100%;
}
}
.check-result-bar {
display: flex;
}
.check-result-bar {
display: flex;
}
.check-result-bar-labels {
margin-top: 5px;
display: flex;
justify-content: space-between;
}
.check-result-bar-labels {
margin-top: 5px;
display: flex;
justify-content: space-between;
}
.check-result {
height: 10px;
width: 100vw; /* It will be squashed. */
}
.check-result {
height: 10px;
width: 100vw; /* It will be squashed. */
}
.check-result-red {
background-color: red;
}
.check-result-red {
background-color: red;
}
.check-result-orange {
background-color: orange;
}
.check-result-orange {
background-color: orange;
}
.check-result-green {
background-color: green;
}
.check-result-green {
background-color: green;
}
.check-result-unknown {
background-color: grey;
}
.check-result-unknown {
background-color: grey;
}
.footer {
margin-top: 20px;
display: flex;
align-items: center;
gap: 10px;
}
</style>
</head>
<body>
</head>
<body>
<main>
{% for check in status %}
{% for check in status %}
<h2>{{ check.website }}</h2>
<p>Uptime: {{ check.ok_ratio }} ({{ check.count_ok }}/{{ check.total_requests }})</p>
{% if check.last_ok.is_some() %}
<p>Last OK: <span class="utc-timestamp">{{ check.last_ok.as_deref().unwrap() }}</span></p>
{% endif %}
<h2>{{ check.website }}</h2>
<p>
Uptime: {{ check.ok_ratio }} ({{ check.count_ok }}/{{
check.total_requests }})
</p>
{% if check.last_ok.is_some() %}
<p>
Last OK:
<span class="utc-timestamp"
>{{ check.last_ok.as_deref().unwrap() }}</span
>
</p>
{% endif %}
<div class="check-result-bar-container">
<div class="check-result-bar">
{% for result in check.bar_info.elems %}
<div class="check-result {{ result.as_class() }}"></div>
{% endfor %}
</div>
{% if check.bar_info.first_time.is_some() && check.bar_info.last_time.is_some() %}
<div class="check-result-bar-labels">
<span class="utc-timestamp">{{ check.bar_info.first_time.unwrap().render_nicely() }}</span>
<span class="utc-timestamp">{{ check.bar_info.last_time.unwrap().render_nicely() }}</span>
</div>
{% endif %}
<div class="check-result-bar-container">
<div class="check-result-bar">
{% for result in check.bar_info.elems %}
<div class="check-result {{ result.as_class() }}"></div>
{% endfor %}
</div>
{% if check.bar_info.first_time.is_some() &&
check.bar_info.last_time.is_some() %}
<div class="check-result-bar-labels">
<span class="utc-timestamp"
>{{ check.bar_info.first_time.unwrap().render_nicely() }}</span
>
<span class="utc-timestamp"
>{{ check.bar_info.last_time.unwrap().render_nicely() }}</span
>
</div>
{% endif %}
</div>
{% endfor %}
{% endfor %}
</main>
<footer class="footer">
<span>uptime {{ version }}</span>
<a href="https://github.com/Nilstrieb/uptime">
<svg
viewBox="0 0 16 16"
width="32"
height="32"
aria-labelledby="github-logo-title"
>
<title id="github-logo-title">GitHub</title>
<path
fill="black"
d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.012 8.012 0 0 0 16 8c0-4.42-3.58-8-8-8z"
></path>
</svg>
</a>
</footer>
<script>
const timestamps = document.querySelectorAll(".utc-timestamp");
timestamps.forEach((timestamp) => {
const date = new Date(timestamp.innerText);
const formatted = new Intl.DateTimeFormat([], {
dateStyle: "short",
timeStyle: "short"
}).format(date);
timestamp.innerText = formatted;
})
const timestamps = document.querySelectorAll(".utc-timestamp");
timestamps.forEach((timestamp) => {
const date = new Date(timestamp.innerText);
const formatted = new Intl.DateTimeFormat([], {
dateStyle: "short",
timeStyle: "short",
}).format(date);
timestamp.innerText = formatted;
});
</script>
</body>
</html>
</body>
</html>