diff --git a/src/webui/mod.rs b/src/webui/mod.rs index d7f3fb1..296a8e7 100644 --- a/src/webui/mod.rs +++ b/src/webui/mod.rs @@ -69,7 +69,6 @@ pub async fn web_ui_main(port: u16, enable_template_autoreload: bool) -> std::io notifier.watch_path(&tmpl_path, true); } env.set_source(minijinja::Source::from_path(tmpl_path)); - println!("boom"); Ok(env) }); @@ -81,6 +80,8 @@ pub async fn web_ui_main(port: u16, enable_template_autoreload: bool) -> std::io .service(views::index) .service(views::actions) .service(views::overview) + .service(views::overview_submit_button) + .service(views::push_event) .wrap(ErrorHandlers::new().handler(StatusCode::NOT_FOUND, not_found)) .wrap(Logger::default()) }) diff --git a/src/webui/views.rs b/src/webui/views.rs index df3d2a0..2c0907c 100644 --- a/src/webui/views.rs +++ b/src/webui/views.rs @@ -1,8 +1,12 @@ -use crate::webui::MiniJinjaRenderer; -use actix_web::{web, Responder}; +use actix_web::{HttpRequest, Responder, web}; use actix_web::http::header::q; +use clap::builder::TypedValueParser; +use minijinja::context; +use serde::Deserialize; use std::collections::HashMap; +use crate::webui::MiniJinjaRenderer; + #[actix_web::get("/")] pub async fn index( tmpl_env: MiniJinjaRenderer, @@ -19,7 +23,6 @@ pub async fn actions( tmpl_env.render("actions.html", ()) } - #[actix_web::get("/overview")] pub async fn overview( tmpl_env: MiniJinjaRenderer, @@ -27,3 +30,30 @@ pub async fn overview( ) -> actix_web::Result { tmpl_env.render("overview.html", ()) } + +#[actix_web::get("/partials/overview/submit_button")] +pub async fn overview_submit_button( + req: HttpRequest, + tmpl_env: MiniJinjaRenderer, + query: web::Query> +) -> actix_web::Result { + let ctx = context! { + event_type => query.get("event_type").unwrap_or(&"".to_string()), + }; + tmpl_env.render("partials/overview/submit_button.html", ctx) +} + +#[actix_web::post("/v1/events/{event_type}")] +pub async fn push_event( + req: HttpRequest, + tmpl_env: MiniJinjaRenderer, + query: web::Query>, +) -> actix_web::Result { + println!(">> {:?}", req); + let shit = req.match_info().get("event_type").unwrap(); + let event = req.match_info().get("event").unwrap(); + let ctx = context! { + event_type => shit, + }; + tmpl_env.render("partials/v1/event_processed.html", ctx) +} diff --git a/templates/actions.html b/templates/actions.html index 7a9af12..503e801 100644 --- a/templates/actions.html +++ b/templates/actions.html @@ -8,40 +8,39 @@
- Legend - + Create new item
- -
- -
- > + +
- + +
- -
- - -
- -
- - -
- -
- -
- +
+
+ + + +
+ {% endblock %} \ No newline at end of file diff --git a/templates/base.html b/templates/base.html index 152c2d3..06e4d67 100644 --- a/templates/base.html +++ b/templates/base.html @@ -4,28 +4,35 @@ ledger - - + + + -