aboutsummaryrefslogtreecommitdiff
path: root/server/src/routes/ui
diff options
context:
space:
mode:
Diffstat (limited to 'server/src/routes/ui')
-rw-r--r--server/src/routes/ui/account/mod.rs57
-rw-r--r--server/src/routes/ui/mod.rs1
2 files changed, 58 insertions, 0 deletions
diff --git a/server/src/routes/ui/account/mod.rs b/server/src/routes/ui/account/mod.rs
new file mode 100644
index 0000000..86e0f18
--- /dev/null
+++ b/server/src/routes/ui/account/mod.rs
@@ -0,0 +1,57 @@
+use super::HtmlTemplate;
+use rocket::form::Form;
+use rocket::{get, post, FromForm};
+
+#[derive(FromForm)]
+pub struct RegisterForm {
+ #[field(validate = len(8..32))]
+ pub invitation: String,
+ #[field(validate = len(4..32))]
+ pub username: String,
+ #[field(validate = len(4..64))]
+ pub password: String,
+}
+
+#[get("/account/register")]
+pub fn r_account_register() -> HtmlTemplate<markup::DynRender<'static>> {
+ HtmlTemplate(
+ "Register".to_string(),
+ markup::new! {
+ h1 { "Register for Jellything" }
+ form[method="POST", action=""] {
+ label[for="inp-invitation"] { "Invite Code: " }
+ input[type="text", id="inp-invitation", name="invitation"]; br;
+
+ label[for="inp-username"] { "Username: " }
+ input[type="text", id="inp-username", name="username"]; br;
+ label[for="inp-password"] { "Password: " }
+ input[type="password", id="inp-password", name="password"]; br;
+
+ input[type="submit", value="Register now!"];
+ }
+ },
+ )
+}
+
+#[get("/account/login")]
+pub fn r_account_login() -> HtmlTemplate<markup::DynRender<'static>> {
+ HtmlTemplate(
+ "Log in".to_string(),
+ markup::new! {
+ h1 { "Log in to your Account" }
+
+ },
+ )
+}
+
+#[post("/account/register", data = "<form>")]
+pub fn r_account_register_post(
+ form: Form<RegisterForm>,
+) -> HtmlTemplate<markup::DynRender<'static>> {
+ HtmlTemplate(
+ "Registration successful".to_string(),
+ markup::new! {
+ h1 { "Registration successful." }
+ },
+ )
+}
diff --git a/server/src/routes/ui/mod.rs b/server/src/routes/ui/mod.rs
index 1cad72c..8a3bc4e 100644
--- a/server/src/routes/ui/mod.rs
+++ b/server/src/routes/ui/mod.rs
@@ -13,6 +13,7 @@ pub mod layout;
pub mod node;
pub mod style;
pub mod player;
+pub mod account;
pub struct HtmlTemplate<T>(pub String, pub T);