Compare commits
3 commits
75092f3e0e
...
1fd7009e25
Author | SHA1 | Date | |
---|---|---|---|
1fd7009e25 | |||
5f516f71f9 | |||
f20d1cc74b |
5 changed files with 67 additions and 1 deletions
25
src/changelog.rs
Normal file
25
src/changelog.rs
Normal file
|
@ -0,0 +1,25 @@
|
|||
use maud::{html, Markup};
|
||||
|
||||
use crate::templates::layout;
|
||||
|
||||
pub fn changelog_page() -> Markup {
|
||||
layout(html! {
|
||||
h1 { "Beacon Changelog" }
|
||||
|
||||
section {
|
||||
h2 { "1.1.0, 07.02.2025" }
|
||||
ul {
|
||||
li { "Fish now directly display their non-relative dates for their next or current window" }
|
||||
li { "Additionally, fish that are up now display the starting time for the subsequent window" }
|
||||
li { "The site now saves your account ID in your browser storage, and automatically redirects you on page visit" }
|
||||
}
|
||||
}
|
||||
|
||||
section {
|
||||
h2 { "1.0.0, 06.02.2025" }
|
||||
ul {
|
||||
li { "Initial release" }
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
12
src/main.rs
12
src/main.rs
|
@ -12,9 +12,11 @@ use maud::{html, Markup};
|
|||
use nanoid::nanoid;
|
||||
use serde::Deserialize;
|
||||
use sqlx::{postgres::PgPoolOptions, Pool, Postgres};
|
||||
use templates::layout;
|
||||
use tower_http::{services::ServeDir, trace::TraceLayer};
|
||||
use tracing_subscriber::{layer::SubscriberExt, util::SubscriberInitExt};
|
||||
|
||||
pub mod changelog;
|
||||
pub mod clock;
|
||||
pub mod data;
|
||||
pub mod db;
|
||||
|
@ -146,6 +148,16 @@ async fn main() {
|
|||
.route("/to", get(to_handler))
|
||||
.route("/{id}", get(main_handler))
|
||||
.route("/{acc_id}/catch/{fish_id}", post(insert_cf_handler))
|
||||
.route("/changelog", get(|| async { changelog::changelog_page() }))
|
||||
.route(
|
||||
"/logout",
|
||||
get(|| async {
|
||||
layout(html! {
|
||||
h1 { "Logging you out, please wait to be redirected..." }
|
||||
script src="/static/scripts/logout.js" type="text/javascript" {}
|
||||
})
|
||||
}),
|
||||
)
|
||||
.layer(TraceLayer::new_for_http())
|
||||
.nest_service("/static", ServeDir::new("static"))
|
||||
.with_state(Arc::new(AppState {
|
||||
|
|
|
@ -156,9 +156,15 @@ pub fn main_page(
|
|||
};
|
||||
|
||||
let template = html! {
|
||||
span style="display: none;" id="account-id" { (acc_id) }
|
||||
.header {
|
||||
div {}
|
||||
.side {
|
||||
.menu {
|
||||
span { "Beacon " (env!("CARGO_PKG_VERSION")) }
|
||||
a href="/changelog" { "Changelog" }
|
||||
a href="/logout" { "Log out" }
|
||||
}
|
||||
details {
|
||||
summary { "Filters" }
|
||||
form {
|
||||
|
@ -202,6 +208,8 @@ pub fn main_page(
|
|||
div id="list" hx-get="" hx-trigger="every 10s" hx-swap="innerHTML" hx-target="this" hx-on="changeDates" {
|
||||
(list)
|
||||
}
|
||||
|
||||
script src="/static/scripts/save.js" type="text/javascript" {}
|
||||
};
|
||||
|
||||
if only_list {
|
||||
|
|
9
static/scripts/logout.js
Normal file
9
static/scripts/logout.js
Normal file
|
@ -0,0 +1,9 @@
|
|||
// Removes the local storage entry, and redirects to the index page.
|
||||
const ls = window.localStorage;
|
||||
if (ls.getItem("beacon:account-id")) {
|
||||
console.log("a");
|
||||
ls.removeItem("beacon:account-id");
|
||||
window.location.pathname = "/";
|
||||
} else {
|
||||
window.location.pathname = "/";
|
||||
}
|
|
@ -3,7 +3,8 @@ body {
|
|||
margin: 40px;
|
||||
}
|
||||
|
||||
section {
|
||||
section.up,
|
||||
section.always-up {
|
||||
margin-bottom: 5px;
|
||||
display: grid;
|
||||
grid-template-columns: 1fr 1fr 1fr 1fr;
|
||||
|
@ -17,6 +18,12 @@ section {
|
|||
align-items: center;
|
||||
}
|
||||
|
||||
.side {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: end;
|
||||
}
|
||||
|
||||
select {
|
||||
width: 100%;
|
||||
}
|
||||
|
@ -145,3 +152,8 @@ h2.clock {
|
|||
summary:hover {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.menu {
|
||||
display: flex;
|
||||
gap: 5px;
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue