ezidam: admin: empty settings page
This commit is contained in:
parent
efebe2fa80
commit
eab918d643
6 changed files with 64 additions and 13 deletions
|
|
@ -37,17 +37,10 @@ impl AdminMenu {
|
||||||
label: "Server settings",
|
label: "Server settings",
|
||||||
link: uri!(routes::admin::settings::admin_settings).to_string(),
|
link: uri!(routes::admin::settings::admin_settings).to_string(),
|
||||||
icon: icons::SETTINGS,
|
icon: icons::SETTINGS,
|
||||||
// sub: None,
|
sub: Some(vec![SubItem {
|
||||||
sub: Some(vec![
|
|
||||||
SubItem {
|
|
||||||
label: "Branding",
|
label: "Branding",
|
||||||
link: uri!(routes::admin::settings::admin_settings).to_string(),
|
link: uri!(routes::admin::settings::admin_settings).to_string(),
|
||||||
},
|
}]),
|
||||||
SubItem {
|
|
||||||
label: "Security",
|
|
||||||
link: uri!(routes::setup::setup).to_string(),
|
|
||||||
},
|
|
||||||
]),
|
|
||||||
},
|
},
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -15,6 +15,7 @@ pub enum Page {
|
||||||
Authorize(Authorize),
|
Authorize(Authorize),
|
||||||
Redirect(Redirect),
|
Redirect(Redirect),
|
||||||
AdminDashboard(AdminDashboard),
|
AdminDashboard(AdminDashboard),
|
||||||
|
AdminSettings(AdminSettings),
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Page {
|
impl Page {
|
||||||
|
|
@ -27,6 +28,7 @@ impl Page {
|
||||||
Page::Authorize(_) => "pages/oauth/authorize",
|
Page::Authorize(_) => "pages/oauth/authorize",
|
||||||
Page::Redirect(_) => "pages/oauth/redirect",
|
Page::Redirect(_) => "pages/oauth/redirect",
|
||||||
Page::AdminDashboard(_) => "pages/admin/dashboard",
|
Page::AdminDashboard(_) => "pages/admin/dashboard",
|
||||||
|
Page::AdminSettings(_) => "pages/admin/settings",
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -39,6 +41,7 @@ impl Page {
|
||||||
Page::Authorize(_) => "Authorize app",
|
Page::Authorize(_) => "Authorize app",
|
||||||
Page::Redirect(_) => "Redirecting",
|
Page::Redirect(_) => "Redirecting",
|
||||||
Page::AdminDashboard(_) => "Admin dashboard",
|
Page::AdminDashboard(_) => "Admin dashboard",
|
||||||
|
Page::AdminSettings(_) => "Server settings",
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -66,6 +69,7 @@ impl Page {
|
||||||
Page::Authorize(authorize) => Box::new(authorize),
|
Page::Authorize(authorize) => Box::new(authorize),
|
||||||
Page::Redirect(redirect) => Box::new(redirect),
|
Page::Redirect(redirect) => Box::new(redirect),
|
||||||
Page::AdminDashboard(dashboard) => Box::new(dashboard),
|
Page::AdminDashboard(dashboard) => Box::new(dashboard),
|
||||||
|
Page::AdminSettings(settings) => Box::new(settings),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,7 @@
|
||||||
// Copyright Thomas Parsley <info@thomasparsley.cz>, MIT License
|
// Copyright Thomas Parsley <info@thomasparsley.cz>, MIT License
|
||||||
|
|
||||||
use rocket::fairing::{self, Fairing, Kind};
|
use rocket::fairing::{self, Fairing, Kind};
|
||||||
|
use rocket::http::Header;
|
||||||
use rocket::{Build, Request, Rocket};
|
use rocket::{Build, Request, Rocket};
|
||||||
|
|
||||||
pub struct ResponseTimer {}
|
pub struct ResponseTimer {}
|
||||||
|
|
@ -29,6 +30,6 @@ impl Fairing for ResponseTimer {
|
||||||
let start_time = request.local_cache(std::time::Instant::now);
|
let start_time = request.local_cache(std::time::Instant::now);
|
||||||
let end_time = start_time.elapsed();
|
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?}")));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,12 @@
|
||||||
|
use self::settings::*;
|
||||||
use dashboard::*;
|
use dashboard::*;
|
||||||
use rocket::{routes, Route};
|
use rocket::{routes, Route};
|
||||||
|
|
||||||
pub mod dashboard;
|
pub mod dashboard;
|
||||||
|
pub mod settings;
|
||||||
|
|
||||||
pub fn routes() -> Vec<Route> {
|
pub fn routes() -> Vec<Route> {
|
||||||
routes![admin_dashboard]
|
routes![admin_dashboard, admin_settings]
|
||||||
}
|
}
|
||||||
|
|
||||||
pub mod content {
|
pub mod content {
|
||||||
|
|
@ -17,4 +19,11 @@ pub mod content {
|
||||||
pub struct AdminDashboard {
|
pub struct AdminDashboard {
|
||||||
pub user: JwtClaims,
|
pub user: JwtClaims,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[derive(Serialize)]
|
||||||
|
#[serde(crate = "rocket::serde")]
|
||||||
|
#[derive(Clone)]
|
||||||
|
pub struct AdminSettings {
|
||||||
|
pub user: JwtClaims,
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
9
crates/ezidam/src/routes/admin/settings.rs
Normal file
9
crates/ezidam/src/routes/admin/settings.rs
Normal 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,
|
||||||
|
}))
|
||||||
|
}
|
||||||
35
crates/ezidam/templates/pages/admin/settings.html.tera
Normal file
35
crates/ezidam/templates/pages/admin/settings.html.tera
Normal 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 %}
|
||||||
Loading…
Add table
Add a link
Reference in a new issue