diff --git a/peach-web/src/routes/settings/scuttlebutt.rs b/peach-web/src/routes/settings/scuttlebutt.rs index bd1a129..0ab9e70 100644 --- a/peach-web/src/routes/settings/scuttlebutt.rs +++ b/peach-web/src/routes/settings/scuttlebutt.rs @@ -1,41 +1,36 @@ -use rocket::{get, request::FlashMessage, serde::Serialize}; -use rocket_dyn_templates::Template; +use rocket::{get, request::FlashMessage}; +use rocket_dyn_templates::{tera::Context, Template}; use crate::routes::authentication::Authenticated; // HELPERS AND ROUTES FOR /settings/scuttlebutt -#[derive(Debug, Serialize)] -pub struct ScuttlebuttSettingsContext { - pub back: Option, - pub title: Option, - pub flash_name: Option, - pub flash_msg: Option, -} - -impl ScuttlebuttSettingsContext { - pub fn build() -> ScuttlebuttSettingsContext { - ScuttlebuttSettingsContext { - back: None, - title: None, - flash_name: None, - flash_msg: None, - } - } -} - /// Scuttlebutt settings menu. #[get("/")] pub fn ssb_settings_menu(flash: Option, _auth: Authenticated) -> Template { - let mut context = ScuttlebuttSettingsContext::build(); - // set back icon link to network route - context.back = Some("/settings".to_string()); - context.title = Some("Scuttlebutt Settings".to_string()); - // check to see if there is a flash message to display + let mut context = Context::new(); + context.insert("back", &Some("/settings".to_string())); + context.insert("title", &Some("Scuttlebutt Settings".to_string())); + if let Some(flash) = flash { - // add flash message contents to the context object - context.flash_name = Some(flash.kind().to_string()); - context.flash_msg = Some(flash.message().to_string()); + context.insert("flash_name", &Some(flash.kind().to_string())); + context.insert("flash_msg", &Some(flash.message().to_string())); }; - Template::render("settings/scuttlebutt", &context) + + Template::render("settings/scuttlebutt/menu", &context.into_json()) +} + +/// Sbot configuration page (includes form for updating configuration parameters). +#[get("/configure")] +pub fn configure_sbot(flash: Option, _auth: Authenticated) -> Template { + let mut context = Context::new(); + context.insert("back", &Some("/settings/scuttlebutt".to_string())); + context.insert("title", &Some("Sbot Configuration".to_string())); + + if let Some(flash) = flash { + context.insert("flash_name", &Some(flash.kind().to_string())); + context.insert("flash_msg", &Some(flash.message().to_string())); + }; + + Template::render("settings/scuttlebutt/configure_sbot", &context.into_json()) }