switch from html table to css grid for better html parsability
This commit is contained in:
parent
98a697f576
commit
8f9c90a689
@ -5,11 +5,6 @@
|
|||||||
<meta name="color-scheme" content="light dark">
|
<meta name="color-scheme" content="light dark">
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
<title>merklingen connection check</title>
|
<title>merklingen connection check</title>
|
||||||
<style>
|
|
||||||
td {
|
|
||||||
width: 45%;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<h2>Merklingen <small><small>Schwäbische Alb</small></small></h2>
|
<h2>Merklingen <small><small>Schwäbische Alb</small></small></h2>
|
||||||
|
75
src/main.rs
75
src/main.rs
@ -98,8 +98,9 @@ async fn index(
|
|||||||
let departures_str = match &*departures {
|
let departures_str = match &*departures {
|
||||||
Some((_, Ok(departures), _)) => {
|
Some((_, Ok(departures), _)) => {
|
||||||
let mut departures_str = String::new();
|
let mut departures_str = String::new();
|
||||||
departures_str.push_str(r#"<table style="width:100%;">"#);
|
departures_str.push_str(r#"<div style="display:grid;width:100%;">"#);
|
||||||
let mut table_rows = BTreeMap::<_, (String, String, usize, usize)>::new();
|
departures_str.push('\n');
|
||||||
|
let mut table_rows = BTreeMap::<_, (String, String, usize, usize, bool)>::new();
|
||||||
for departure in &departures.entries {
|
for departure in &departures.entries {
|
||||||
let mut messages = vec![];
|
let mut messages = vec![];
|
||||||
for departure in departure.iter() {
|
for departure in departure.iter() {
|
||||||
@ -155,7 +156,7 @@ async fn index(
|
|||||||
_ => None,
|
_ => None,
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
let mut dep_str = "<div>".to_owned();
|
let mut dep_str = "".to_owned();
|
||||||
dep_str.push_str(html_escape::encode_safe(line_name).as_ref());
|
dep_str.push_str(html_escape::encode_safe(line_name).as_ref());
|
||||||
let platform = departure
|
let platform = departure
|
||||||
.platform
|
.platform
|
||||||
@ -241,7 +242,7 @@ async fn index(
|
|||||||
html_escape::encode_safe_to_string(message, &mut dep_str);
|
html_escape::encode_safe_to_string(message, &mut dep_str);
|
||||||
dep_str.push_str("</div>");
|
dep_str.push_str("</div>");
|
||||||
}
|
}
|
||||||
dep_str.push_str("</div>");
|
row.4 = is_ulm.is_some();
|
||||||
match is_ulm {
|
match is_ulm {
|
||||||
Some(true) => {
|
Some(true) => {
|
||||||
row.0.push_str(&dep_str);
|
row.0.push_str(&dep_str);
|
||||||
@ -264,14 +265,66 @@ async fn index(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
for ((_date, _hour, _late_half), (a, b, _, _)) in table_rows {
|
for should_be_sure in [true, false] {
|
||||||
departures_str.push_str("<tr><td>");
|
let mut unused = true;
|
||||||
departures_str.push_str(&a);
|
for (i, ((_date, _hour, _late_half), (dep_html, _, _, _, sure))) in
|
||||||
departures_str.push_str("</td><td>");
|
table_rows.iter().enumerate()
|
||||||
departures_str.push_str(&b);
|
{
|
||||||
departures_str.push_str("</td></tr>");
|
if *sure == should_be_sure {
|
||||||
|
if unused {
|
||||||
|
unused = false;
|
||||||
|
if should_be_sure {
|
||||||
|
departures_str.push_str(r#"<!-- Departures towards Ulm -->"#);
|
||||||
|
} else {
|
||||||
|
departures_str.push_str(r#"<!-- Other Departures -->"#);
|
||||||
}
|
}
|
||||||
departures_str.push_str("</table>");
|
departures_str.push('\n');
|
||||||
|
}
|
||||||
|
departures_str.push_str(&format!(
|
||||||
|
r#"<div class="{}" style="grid-column:1;grid-row:{}">"#,
|
||||||
|
if *sure {
|
||||||
|
"bahn-departure bahn-direction-ulm"
|
||||||
|
} else {
|
||||||
|
"bahn-departure bahn-direction-unsure"
|
||||||
|
},
|
||||||
|
i + 1
|
||||||
|
));
|
||||||
|
departures_str.push_str(dep_html);
|
||||||
|
departures_str.push_str("</div>\n");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if should_be_sure {
|
||||||
|
unused = true;
|
||||||
|
}
|
||||||
|
for (i, ((_date, _hour, _late_half), (_, dep_html, _, _, sure))) in
|
||||||
|
table_rows.iter().enumerate()
|
||||||
|
{
|
||||||
|
if *sure == should_be_sure {
|
||||||
|
if unused {
|
||||||
|
unused = false;
|
||||||
|
if should_be_sure {
|
||||||
|
departures_str
|
||||||
|
.push_str(r#"<!-- Departures towards Wendlingen -->"#);
|
||||||
|
} else {
|
||||||
|
departures_str.push_str(r#"<!-- Other Departures -->"#);
|
||||||
|
}
|
||||||
|
departures_str.push('\n');
|
||||||
|
}
|
||||||
|
departures_str.push_str(&format!(
|
||||||
|
r#"<div class="{}" style="grid-column:2;grid-row:{}">"#,
|
||||||
|
if *sure {
|
||||||
|
"bahn-departure bahn-direction-wendlingen"
|
||||||
|
} else {
|
||||||
|
"bahn-departure bahn-direction-unsure"
|
||||||
|
},
|
||||||
|
i + 1
|
||||||
|
));
|
||||||
|
departures_str.push_str(dep_html);
|
||||||
|
departures_str.push_str("</div>\n");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
departures_str.push_str("</div>");
|
||||||
departures_str
|
departures_str
|
||||||
}
|
}
|
||||||
Some((_, Err(e), _)) => format!("<small>{}</small>", html_escape::encode_safe(e)),
|
Some((_, Err(e), _)) => format!("<small>{}</small>", html_escape::encode_safe(e)),
|
||||||
|
Loading…
x
Reference in New Issue
Block a user