Add admin button to update repo
This commit is contained in:
parent
6cf7a0b586
commit
4f2b0a0b88
9 changed files with 69 additions and 15 deletions
|
|
@ -1 +1,2 @@
|
|||
pub mod queue;
|
||||
pub mod repo;
|
||||
|
|
|
|||
29
src/server/web/admin/repo.rs
Normal file
29
src/server/web/admin/repo.rs
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
use std::sync::Arc;
|
||||
|
||||
use axum::{
|
||||
extract::State,
|
||||
response::{IntoResponse, Redirect},
|
||||
};
|
||||
use log::info;
|
||||
use tokio::sync::mpsc;
|
||||
|
||||
use crate::{
|
||||
config::ServerConfig,
|
||||
server::web::{
|
||||
base::Base,
|
||||
paths::{PathAdminRepoUpdate, PathIndex},
|
||||
},
|
||||
somehow,
|
||||
};
|
||||
|
||||
pub async fn post_admin_repo_update(
|
||||
_path: PathAdminRepoUpdate,
|
||||
State(config): State<&'static ServerConfig>,
|
||||
State(recurring_tx): State<Arc<mpsc::UnboundedSender<()>>>,
|
||||
) -> somehow::Result<impl IntoResponse> {
|
||||
let _ = recurring_tx.send(());
|
||||
info!("Admin updated repo");
|
||||
|
||||
let link = Base::link_with_config(config, PathIndex {});
|
||||
Ok(Redirect::to(&link.to_string()))
|
||||
}
|
||||
|
|
@ -6,9 +6,9 @@ use sqlx::SqlitePool;
|
|||
use crate::{
|
||||
config::ServerConfig,
|
||||
server::web::{
|
||||
base::{Base, Tab},
|
||||
base::{Base, Link, Tab},
|
||||
link::LinkCommit,
|
||||
paths::PathIndex,
|
||||
paths::{PathAdminRepoUpdate, PathIndex},
|
||||
},
|
||||
somehow,
|
||||
};
|
||||
|
|
@ -22,7 +22,9 @@ struct Ref {
|
|||
#[derive(Template)]
|
||||
#[template(path = "pages/index.html")]
|
||||
struct IndexTemplate {
|
||||
link_admin_repo_update: Link,
|
||||
base: Base,
|
||||
|
||||
tracked_refs: Vec<Ref>,
|
||||
untracked_refs: Vec<Ref>,
|
||||
}
|
||||
|
|
@ -62,7 +64,9 @@ pub async fn get_index(
|
|||
}
|
||||
|
||||
Ok(IndexTemplate {
|
||||
link_admin_repo_update: base.link(PathAdminRepoUpdate {}),
|
||||
base: Base::new(config, Tab::Index),
|
||||
|
||||
tracked_refs,
|
||||
untracked_refs,
|
||||
})
|
||||
|
|
|
|||
|
|
@ -53,6 +53,10 @@ pub struct PathWorkerByName {
|
|||
// Admin actions //
|
||||
///////////////////
|
||||
|
||||
#[derive(Deserialize, TypedPath)]
|
||||
#[typed_path("/admin/repo/update")]
|
||||
pub struct PathAdminRepoUpdate {}
|
||||
|
||||
#[derive(Deserialize, TypedPath)]
|
||||
#[typed_path("/admin/queue/add")]
|
||||
pub struct PathAdminQueueAdd {}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue