Load a list of clients
This commit is contained in:
25
src/controllers/admin_controller.rs
Normal file
25
src/controllers/admin_controller.rs
Normal file
@ -0,0 +1,25 @@
|
||||
use actix_web::{HttpResponse, Responder, web};
|
||||
use askama::Template;
|
||||
|
||||
use crate::controllers::settings_controller::BaseSettingsPage;
|
||||
use crate::data::client::{Client, ClientManager};
|
||||
use crate::data::current_user::CurrentUser;
|
||||
|
||||
#[derive(Template)]
|
||||
#[template(path = "settings/clients_list.html")]
|
||||
struct ClientsListTemplate {
|
||||
_parent: BaseSettingsPage,
|
||||
clients: Vec<Client>,
|
||||
}
|
||||
|
||||
pub async fn clients_route(user: CurrentUser, clients: web::Data<ClientManager>) -> impl Responder {
|
||||
HttpResponse::Ok().body(ClientsListTemplate {
|
||||
_parent: BaseSettingsPage::get(
|
||||
"Clients list",
|
||||
&user,
|
||||
None,
|
||||
None,
|
||||
),
|
||||
clients: clients.cloned(),
|
||||
}.render().unwrap())
|
||||
}
|
@ -1,4 +1,5 @@
|
||||
pub mod assets_controller;
|
||||
pub mod base_controller;
|
||||
pub mod login_controller;
|
||||
pub mod settings_controller;
|
||||
pub mod settings_controller;
|
||||
pub mod admin_controller;
|
@ -12,17 +12,17 @@ use crate::data::user::User;
|
||||
|
||||
#[derive(Template)]
|
||||
#[template(path = "settings/base_settings_page.html")]
|
||||
struct BaseSettingsPage {
|
||||
danger_message: Option<String>,
|
||||
success_message: Option<String>,
|
||||
page_title: &'static str,
|
||||
app_name: &'static str,
|
||||
is_admin: bool,
|
||||
user_name: String,
|
||||
pub(crate) struct BaseSettingsPage {
|
||||
pub danger_message: Option<String>,
|
||||
pub success_message: Option<String>,
|
||||
pub page_title: &'static str,
|
||||
pub app_name: &'static str,
|
||||
pub is_admin: bool,
|
||||
pub user_name: String,
|
||||
}
|
||||
|
||||
impl BaseSettingsPage {
|
||||
async fn get(page_title: &'static str, user: &User,
|
||||
pub fn get(page_title: &'static str, user: &User,
|
||||
danger_message: Option<String>, success_message: Option<String>) -> BaseSettingsPage {
|
||||
Self {
|
||||
danger_message,
|
||||
@ -58,7 +58,7 @@ pub async fn account_settings_details_route(user: CurrentUser) -> impl Responder
|
||||
let user = user.into();
|
||||
HttpResponse::Ok()
|
||||
.body(AccountDetailsPage {
|
||||
_parent: BaseSettingsPage::get("Account details", &user, None, None).await,
|
||||
_parent: BaseSettingsPage::get("Account details", &user, None, None),
|
||||
user_id: user.uid,
|
||||
first_name: user.first_name,
|
||||
last_name: user.last_last,
|
||||
@ -121,7 +121,7 @@ pub async fn change_password_route(user: CurrentUser,
|
||||
|
||||
HttpResponse::Ok()
|
||||
.body(ChangePasswordPage {
|
||||
_parent: BaseSettingsPage::get("Change password", &user, danger, success).await,
|
||||
_parent: BaseSettingsPage::get("Change password", &user, danger, success),
|
||||
min_pwd_len: MIN_PASS_LEN,
|
||||
}.render().unwrap())
|
||||
}
|
Reference in New Issue
Block a user