aboutsummaryrefslogtreecommitdiff
path: root/server/src/ui/admin/mod.rs
diff options
context:
space:
mode:
Diffstat (limited to 'server/src/ui/admin/mod.rs')
-rw-r--r--server/src/ui/admin/mod.rs74
1 files changed, 34 insertions, 40 deletions
diff --git a/server/src/ui/admin/mod.rs b/server/src/ui/admin/mod.rs
index 4e07afb..e124a13 100644
--- a/server/src/ui/admin/mod.rs
+++ b/server/src/ui/admin/mod.rs
@@ -7,40 +7,31 @@ pub mod log;
pub mod user;
use super::error::MyResult;
-use crate::helper::{language::AcceptLanguage, RequestInfo, A};
+use crate::helper::RequestInfo;
use jellycommon::routes::u_admin_dashboard;
use jellyimport::is_importing;
-use jellylogic::{
- admin::{
- create_invite, delete_invite, do_import, get_import_errors, list_invites,
- update_search_index,
- },
- session::Session,
-};
-use jellyui::{
- admin::AdminDashboardPage,
- locale::tr,
- render_page,
- scaffold::{RenderInfo, SessionInfo},
+use jellylogic::admin::{
+ create_invite, delete_invite, do_import, get_import_errors, list_invites, update_search_index,
};
+use jellyui::{admin::AdminDashboardPage, locale::tr, render_page};
use rocket::{
form::Form,
get, post,
+ request::FlashMessage,
response::{content::RawHtml, Flash, Redirect},
FromForm,
};
#[get("/admin/dashboard")]
pub async fn r_admin_dashboard(
- session: A<Session>,
- lang: AcceptLanguage,
+ ri: RequestInfo,
+ flash: Option<FlashMessage<'_>>,
) -> MyResult<RawHtml<String>> {
- session.0.assert_admin()?;
- let AcceptLanguage(lang) = lang;
+ ri.session.assert_admin()?;
let flash = None;
- let invites = list_invites(&session.0)?;
- let last_import_err = get_import_errors(&session.0).await;
+ let invites = list_invites(&ri.session)?;
+ let last_import_err = get_import_errors(&ri.session).await;
let busy = if is_importing() {
Some("An import is currently running.")
@@ -54,15 +45,9 @@ pub async fn r_admin_dashboard(
last_import_err: &last_import_err,
invites: &invites,
flash,
- lang: &lang,
- },
- RenderInfo {
- importing: is_importing(),
- session: Some(SessionInfo {
- user: session.0.user,
- }),
+ lang: &ri.lang,
},
- lang,
+ ri.render_info(),
)))
}
@@ -82,24 +67,33 @@ pub struct DeleteInvite {
#[post("/admin/remove_invite", data = "<form>")]
pub async fn r_admin_remove_invite(
- session: A<Session>,
+ ri: RequestInfo,
form: Form<DeleteInvite>,
-) -> MyResult<Redirect> {
- session.0.assert_admin()?;
- delete_invite(&session.0, &form.invite)?;
- Ok(Redirect::temporary(u_admin_dashboard()))
+) -> MyResult<Flash<Redirect>> {
+ ri.session.assert_admin()?;
+ delete_invite(&ri.session, &form.invite)?;
+ Ok(Flash::success(
+ Redirect::to(u_admin_dashboard()),
+ tr(ri.lang, "admin.invite_delete_success"),
+ ))
}
#[post("/admin/import?<incremental>")]
-pub async fn r_admin_import(session: A<Session>, incremental: bool) -> MyResult<Redirect> {
- session.0.assert_admin()?;
- do_import(&session.0, incremental).await?.1?;
- Ok(Redirect::temporary(u_admin_dashboard()))
+pub async fn r_admin_import(ri: RequestInfo, incremental: bool) -> MyResult<Flash<Redirect>> {
+ ri.session.assert_admin()?;
+ do_import(&ri.session, incremental).await?.1?;
+ Ok(Flash::success(
+ Redirect::to(u_admin_dashboard()),
+ tr(ri.lang, "admin.import_success"),
+ ))
}
#[post("/admin/update_search")]
-pub async fn r_admin_update_search(session: A<Session>) -> MyResult<Redirect> {
- session.0.assert_admin()?;
- update_search_index(&session.0).await?;
- Ok(Redirect::temporary(u_admin_dashboard()))
+pub async fn r_admin_update_search(ri: RequestInfo) -> MyResult<Flash<Redirect>> {
+ ri.session.assert_admin()?;
+ update_search_index(&ri.session).await?;
+ Ok(Flash::success(
+ Redirect::to(u_admin_dashboard()),
+ tr(ri.lang, "admin.update_search_success"),
+ ))
}