aboutsummaryrefslogtreecommitdiff
path: root/src/pages
diff options
context:
space:
mode:
authorKatharina Fey <kookie@spacekookie.de>2020-06-22 01:48:59 +0200
committerKatharina Fey <kookie@spacekookie.de>2020-06-22 01:48:59 +0200
commit84a9a0ccee713e26a28ff5e54ea3776085d93b5f (patch)
tree9a0158ecc1668e8594881a4f9be7e54c8773d6a9 /src/pages
parent67ad3b7a26ed0dc99f3324011fa8e5ed316a655a (diff)
Updating just like... a bunch of shit
Diffstat (limited to 'src/pages')
-rw-r--r--src/pages/mod.rs4
-rw-r--r--src/pages/repo/about.rs44
-rw-r--r--src/pages/repo/details.rs37
-rw-r--r--src/pages/repo/mod.rs14
4 files changed, 75 insertions, 24 deletions
diff --git a/src/pages/mod.rs b/src/pages/mod.rs
index d53561b..f838eee 100644
--- a/src/pages/mod.rs
+++ b/src/pages/mod.rs
@@ -4,4 +4,6 @@
//! which is exported from the module and then called by the router
pub mod repo;
-pub mod p404;
+
+mod p404;
+pub use p404::render as p404;
diff --git a/src/pages/repo/about.rs b/src/pages/repo/about.rs
index 8797edd..fa88eb1 100644
--- a/src/pages/repo/about.rs
+++ b/src/pages/repo/about.rs
@@ -1,35 +1,35 @@
+use super::RepoWrapper;
+use crate::types::RepoData;
use actix_web::{web, HttpRequest, HttpResponse, Result};
use askama::Template;
#[derive(Template)]
-#[template(path = "repo.html")]
-struct Repo<'a> {
- project_owner: &'a str,
- project_summary: &'a str,
- project_name: &'a str,
- project_logo: &'a str,
- project_logo_alt_text: &'a str,
- first_commit: &'a str,
- num_commits: usize,
- num_contributors: usize,
+#[template(path = "repo/about.html")]
+struct AboutRepo {
+ repo: RepoWrapper,
+ readme: String,
}
/// Renders the "repository/about" subpage
pub async fn render(req: HttpRequest, path: web::Path<String>) -> Result<HttpResponse> {
- println!("Rendering path: {:#?}", path);
- dbg!(req);
-
- let repo = Repo {
- project_owner: "spacekookie",
- project_summary: "A lightweight web frontend for git repositories",
- project_name: "webgit",
- project_logo: "rust.png",
- project_logo_alt_text: "Rust logo",
- first_commit: "f6ca929",
- num_commits: 123,
- num_contributors: 3,
+ let repo = AboutRepo {
+ readme: include_str!("../../../README").to_string(),
+ repo: RepoWrapper {
+ data: RepoData {
+ owner: "spacekookie".into(),
+ name: "octopus".into(),
+ tagline: "A lightweight web frontend for git repositories".into(),
+ num_commit: 141,
+ num_branch: 1,
+ num_tag: 0,
+ num_contributor: 3,
+ size: "13.12M".into(),
+ },
+ logo: "fakeavi.png".into(),
+ },
}
.render()
.unwrap();
+
Ok(HttpResponse::Ok().content_type("text/html").body(repo))
}
diff --git a/src/pages/repo/details.rs b/src/pages/repo/details.rs
new file mode 100644
index 0000000..4745e96
--- /dev/null
+++ b/src/pages/repo/details.rs
@@ -0,0 +1,37 @@
+use super::RepoWrapper;
+use crate::types::{BranchData, CommitData, RepoData};
+use actix_web::{web, HttpRequest, HttpResponse, Result};
+use askama::Template;
+
+#[derive(Template)]
+#[template(path = "repo/details.html")]
+struct AboutRepo {
+ repo: RepoWrapper,
+ branches: Vec<BranchData>,
+ commits: Vec<CommitData>,
+}
+
+/// Renders the "repository/about" subpage
+pub async fn render(req: HttpRequest, path: web::Path<String>) -> Result<HttpResponse> {
+ let repo = AboutRepo {
+ branches: vec![],
+ commits: vec![],
+ repo: RepoWrapper {
+ data: RepoData {
+ owner: "spacekookie".into(),
+ name: "octopus".into(),
+ tagline: "A lightweight web frontend for git repositories".into(),
+ num_commit: 141,
+ num_branch: 1,
+ num_tag: 0,
+ num_contributor: 3,
+ size: "13.12M".into(),
+ },
+ logo: "fakeavi.png".into(),
+ },
+ }
+ .render()
+ .unwrap();
+
+ Ok(HttpResponse::Ok().content_type("text/html").body(repo))
+}
diff --git a/src/pages/repo/mod.rs b/src/pages/repo/mod.rs
index c339350..7d90c97 100644
--- a/src/pages/repo/mod.rs
+++ b/src/pages/repo/mod.rs
@@ -1,3 +1,15 @@
//! The repository page subtree
-pub mod about;
+mod about;
+mod details;
+
+pub use about::render as about;
+pub use details::render as details;
+
+use crate::types::RepoData;
+
+/// A template wrapper for repository data
+pub(self) struct RepoWrapper {
+ pub(self) data: RepoData,
+ pub(self) logo: String,
+}