nicer messages; don't panic

This commit is contained in:
Philipp Hofer 2025-04-07 23:01:38 +02:00
parent 5eb1df221b
commit 67a67c1688
2 changed files with 13 additions and 7 deletions

View File

@ -123,11 +123,12 @@ DROP TABLE temp_pos;",
true true
} }
async fn delete(&self, db: &SqlitePool) { async fn delete(&self, db: &SqlitePool) -> Result<(), String> {
sqlx::query!("DELETE FROM route WHERE id = ?", self.id) sqlx::query!("DELETE FROM route WHERE id = ?", self.id)
.execute(db) .execute(db)
.await .await
.unwrap(); .map_err(|e| e.to_string())?;
Ok(())
} }
async fn stations(&self, db: &SqlitePool) -> Vec<Station> { async fn stations(&self, db: &SqlitePool) -> Vec<Station> {
@ -178,7 +179,7 @@ async fn index(State(db): State<Arc<SqlitePool>>, session: Session) -> Markup {
em { "Routen " } em { "Routen " }
"definieren welche " "definieren welche "
a href="/station" { "Stationen" } a href="/station" { "Stationen" }
" in welcher Reihenfolge abgeklappert werden sollen. Wenn es verschiedene Kategorien (zB Kinder- und Erwachsenenwertung) gibt, kannst du auch mehrere Routen mit (teils) überlappenden Stationen erstellen." " von den Teilnehmern in welcher Reihenfolge abgeklappert werden sollen. Wenn es verschiedene Kategorien (zB Kinder- und Erwachsenenwertung) gibt, kannst du auch mehrere Routen mit (teils) überlappenden Stationen erstellen."
} }
ol { ol {
@for route in &routes{ @for route in &routes{
@ -250,9 +251,14 @@ async fn delete(
return Redirect::to("/route"); return Redirect::to("/route");
}; };
route.delete(&db).await; match route.delete(&db).await {
Ok(_) => succ!(session, "Route '{}' erfolgreich gelöscht!", route.name),
succ!(session, "Route '{}' erfolgreich gelöscht!", route.name); Err(e) => err!(
session,
"Route '{}' kann nicht gelöscht werden, da sie bereits verwendet wird. ({e})",
route.name
),
}
Redirect::to("/route") Redirect::to("/route")
} }

View File

@ -171,7 +171,7 @@ async fn view(
} }
@if station.lat.is_some() && station.lng.is_some() { @if station.lat.is_some() && station.lng.is_some() {
a href=(format!("/station/{}/location-clear", station.id)) a href=(format!("/station/{}/location-clear", station.id))
onclick="return confirm('Bist du sicher, dass du den Standort der Station löschen willst? Das kann _NICHT_ mehr rückgängig gemacht werden.');"{ onclick="return confirm('Bist du sicher, dass du den Standort der Station löschen willst?');"{
"Standort löschen" "Standort löschen"
} }
} }