Load a list of clients

This commit is contained in:
2022-04-06 17:18:06 +02:00
parent f6403afa34
commit da6a494875
14 changed files with 184 additions and 28 deletions

View 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())
}

View File

@ -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;

View File

@ -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())
}