ezidam: admin: empty settings page

This commit is contained in:
Philippe Loctaux 2023-03-24 22:18:52 +01:00
parent efebe2fa80
commit eab918d643
6 changed files with 64 additions and 13 deletions

View file

@ -37,17 +37,10 @@ impl AdminMenu {
label: "Server settings",
link: uri!(routes::admin::settings::admin_settings).to_string(),
icon: icons::SETTINGS,
// sub: None,
sub: Some(vec![
SubItem {
label: "Branding",
link: uri!(routes::admin::settings::admin_settings).to_string(),
},
SubItem {
label: "Security",
link: uri!(routes::setup::setup).to_string(),
},
]),
sub: Some(vec![SubItem {
label: "Branding",
link: uri!(routes::admin::settings::admin_settings).to_string(),
}]),
},
]
}

View file

@ -15,6 +15,7 @@ pub enum Page {
Authorize(Authorize),
Redirect(Redirect),
AdminDashboard(AdminDashboard),
AdminSettings(AdminSettings),
}
impl Page {
@ -27,6 +28,7 @@ impl Page {
Page::Authorize(_) => "pages/oauth/authorize",
Page::Redirect(_) => "pages/oauth/redirect",
Page::AdminDashboard(_) => "pages/admin/dashboard",
Page::AdminSettings(_) => "pages/admin/settings",
}
}
@ -39,6 +41,7 @@ impl Page {
Page::Authorize(_) => "Authorize app",
Page::Redirect(_) => "Redirecting",
Page::AdminDashboard(_) => "Admin dashboard",
Page::AdminSettings(_) => "Server settings",
}
}
@ -66,6 +69,7 @@ impl Page {
Page::Authorize(authorize) => Box::new(authorize),
Page::Redirect(redirect) => Box::new(redirect),
Page::AdminDashboard(dashboard) => Box::new(dashboard),
Page::AdminSettings(settings) => Box::new(settings),
}
}
}

View file

@ -2,6 +2,7 @@
// Copyright Thomas Parsley <info@thomasparsley.cz>, MIT License
use rocket::fairing::{self, Fairing, Kind};
use rocket::http::Header;
use rocket::{Build, Request, Rocket};
pub struct ResponseTimer {}
@ -29,6 +30,6 @@ impl Fairing for ResponseTimer {
let start_time = request.local_cache(std::time::Instant::now);
let end_time = start_time.elapsed();
response.set_raw_header("X-Response-Time", format!("{end_time:.2?}"));
response.set_header(Header::new("X-Response-Time", format!("{end_time:.2?}")));
}
}

View file

@ -1,10 +1,12 @@
use self::settings::*;
use dashboard::*;
use rocket::{routes, Route};
pub mod dashboard;
pub mod settings;
pub fn routes() -> Vec<Route> {
routes![admin_dashboard]
routes![admin_dashboard, admin_settings]
}
pub mod content {
@ -17,4 +19,11 @@ pub mod content {
pub struct AdminDashboard {
pub user: JwtClaims,
}
#[derive(Serialize)]
#[serde(crate = "rocket::serde")]
#[derive(Clone)]
pub struct AdminSettings {
pub user: JwtClaims,
}
}

View file

@ -0,0 +1,9 @@
use crate::routes::prelude::*;
use rocket::get;
#[get("/admin/settings")]
pub async fn admin_settings(mut db: Connection<Database>, admin: JwtAdmin) -> Result<Page> {
Ok(Page::AdminSettings(super::content::AdminSettings {
user: admin.0,
}))
}

View file

@ -0,0 +1,35 @@
{% extends "shell" %}
{% block content %}
<!-- Page header -->
<div class="page-header d-print-none">
<div class="container-xl">
<div class="row g-2 align-items-center">
<div class="col">
<h2 class="page-title">
Server settings
</h2>
</div>
</div>
</div>
</div>
<!-- Page body -->
<div class="page-body">
<div class="container-xl">
<div class="card">
<div class="row g-0">
<div class="col-3 d-none d-md-block border-end">
<div class="card-body">
<div class="list-group list-group-transparent">
<a href="." class="list-group-item list-group-item-action d-flex align-items-center active">Branding</a>
<a href="./security" class="list-group-item list-group-item-action d-flex align-items-center">Security</a>
</div>
</div>
</div>
<div class="col d-flex flex-column">
</div>
</div>
</div>
</div>
</div>
{% endblock content %}