add object delete button

This commit is contained in:
2021-02-20 18:49:29 +01:00
parent 58c44afa30
commit 82c1bcf0fd
6 changed files with 73 additions and 15 deletions
+1
View File
@@ -160,6 +160,7 @@ async fn main() -> std::io::Result<()> {
.service(routes::objects::detail)
.service(routes::objects::update_form)
.service(routes::objects::update)
.service(routes::objects::delete)
//
.service(static_files)
.default_service(web::to(|| HttpResponse::NotFound().body("File or endpoint not found")))
+1 -1
View File
@@ -137,7 +137,7 @@ pub(crate) async fn delete(
Err(e) => {
warn!("Error deleting object model: {}", e);
session.flash_error(e.to_string());
redirect("/") // back?
redirect("/models") // back?
}
}
}
+23 -2
View File
@@ -436,8 +436,8 @@ pub(crate) async fn update_form(
relations: relation_map
};
let _ = form.dot_remove("model_id");
form.dot_set("object", object);
form.dot_remove("model_id").unwrap();
form.dot_set("object", object).unwrap();
context.insert("form_data", &form);
TERA.build_response("objects/object_update", &context)
@@ -474,3 +474,24 @@ pub(crate) async fn update(
}
}
}
#[get("/object/delete/{id}")]
pub(crate) async fn delete(
id: web::Path<ID>,
store: crate::YopaStoreWrapper,
session: Session,
) -> actix_web::Result<impl Responder> {
let mut wg = store.write().await;
match wg.delete_object(*id) {
Ok(obj) => {
debug!("Object deleted, redirecting to root");
session.flash_success(format!("Object \"{}\" deleted.", obj.name));
redirect("/")
}
Err(e) => {
warn!("Error deleting object: {}", e);
session.flash_error(e.to_string());
redirect("/") // back?
}
}
}