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="viewport" content="width=device-width, initial-scale=1">
|
||||
<title>merklingen connection check</title>
|
||||
<style>
|
||||
td {
|
||||
width: 45%;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<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 {
|
||||
Some((_, Ok(departures), _)) => {
|
||||
let mut departures_str = String::new();
|
||||
departures_str.push_str(r#"<table style="width:100%;">"#);
|
||||
let mut table_rows = BTreeMap::<_, (String, String, usize, usize)>::new();
|
||||
departures_str.push_str(r#"<div style="display:grid;width:100%;">"#);
|
||||
departures_str.push('\n');
|
||||
let mut table_rows = BTreeMap::<_, (String, String, usize, usize, bool)>::new();
|
||||
for departure in &departures.entries {
|
||||
let mut messages = vec![];
|
||||
for departure in departure.iter() {
|
||||
@ -155,7 +156,7 @@ async fn index(
|
||||
_ => 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());
|
||||
let platform = departure
|
||||
.platform
|
||||
@ -241,7 +242,7 @@ async fn index(
|
||||
html_escape::encode_safe_to_string(message, &mut dep_str);
|
||||
dep_str.push_str("</div>");
|
||||
}
|
||||
dep_str.push_str("</div>");
|
||||
row.4 = is_ulm.is_some();
|
||||
match is_ulm {
|
||||
Some(true) => {
|
||||
row.0.push_str(&dep_str);
|
||||
@ -264,14 +265,66 @@ async fn index(
|
||||
}
|
||||
}
|
||||
}
|
||||
for ((_date, _hour, _late_half), (a, b, _, _)) in table_rows {
|
||||
departures_str.push_str("<tr><td>");
|
||||
departures_str.push_str(&a);
|
||||
departures_str.push_str("</td><td>");
|
||||
departures_str.push_str(&b);
|
||||
departures_str.push_str("</td></tr>");
|
||||
for should_be_sure in [true, false] {
|
||||
let mut 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 Ulm -->"#);
|
||||
} else {
|
||||
departures_str.push_str(r#"<!-- Other Departures -->"#);
|
||||
}
|
||||
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("</table>");
|
||||
departures_str.push_str("</div>");
|
||||
departures_str
|
||||
}
|
||||
Some((_, Err(e), _)) => format!("<small>{}</small>", html_escape::encode_safe(e)),
|
||||
|
Loading…
x
Reference in New Issue
Block a user