From 63636d00ca56ee37f9cb9db3fece81d615e21a1a Mon Sep 17 00:00:00 2001 From: Yves Fischer Date: Mon, 26 Nov 2018 12:33:37 +0100 Subject: Refactor html views --- src/request_handler/views.rs | 138 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 138 insertions(+) create mode 100644 src/request_handler/views.rs (limited to 'src/request_handler/views.rs') diff --git a/src/request_handler/views.rs b/src/request_handler/views.rs new file mode 100644 index 0000000..ee020eb --- /dev/null +++ b/src/request_handler/views.rs @@ -0,0 +1,138 @@ +use horrorshow::Template; + +pub(in super) fn info_debug<'a>(path_rest: &'a str, cookies: Vec<(String, String)>) -> String { + (html! { + : horrorshow::helper::doctype::HTML; + html { + head { + title: "Hello world!"; + } + body { + h1(id = "heading") { + : "Hello! This is "; + : "And path rest is: "; + : path_rest; + : "... ok :)"; + } + h2: "Valid cookies are:"; + table(border="1") { + thead { + th: "Cookie value"; + th: "Valid until"; + } + tbody { + @ for (name, valid_until) in cookies { + tr { + td: name; + td: valid_until; + } + } + } + } + } + } + }).into_string().unwrap() +} + +pub(in super) fn info<'a>(path_rest: &'a str) -> String { + (html! { + : horrorshow::helper::doctype::HTML; + html { + head { + title: "Hello world!"; + } + body { + h1(id = "heading") { + : "Hello! This is "; + : "And path rest is: "; + : path_rest; + : "... ok :)"; + } + } + } + }).into_string().unwrap() +} + +pub(in super) fn login_is_logged_in() -> String { + (html! { + : horrorshow::helper::doctype::HTML; + html { + head { + title: "TOTP Login"; + } + body { + h1(id = "heading") { + : "Currently logged in" + } + } + } + }).into_string().unwrap() +} + +pub(in super) fn login_login_form<'a>(redirect: &'a str) -> String { + (html! { + : horrorshow::helper::doctype::HTML; + html { + head { + title: "TOTP Login"; + } + body { + h1(id = "heading") { + : "Login" + } + form(method="POST") { + label(for="token") { + : "Enter TOTP token" + } + input(name="token",id="token",type="text"); + input(name="redirect", type="hidden", value=redirect); + input(name="send",type="submit",value="Submit"); + } + } + } + }).into_string().unwrap() +} + +pub(in super) fn login_auth_success(redirect: &String) -> String { + (html! { + : horrorshow::helper::doctype::HTML; + html { + head { + title: "TOTP Successful"; + meta(http-equiv="refresh", content=format!("3; URL={}", redirect)) + } + body { + h1(id = "heading") { + : "Login succesful" + } + a(href=redirect) { + : "Try again... redirecting to "; + } + span { + : format!("{}", redirect) + } + } + } + }).into_string().unwrap() +} + + +pub(in super) fn login_auth_fail() -> String { + (html! { + : horrorshow::helper::doctype::HTML; + html { + head { + title: "TOTP Login failed"; + meta(http-equiv="refresh", content="1") + } + body { + h1(id = "heading") { + : "Login failed" + } + a(href="login") { + : "Try again... " + } + } + } + }).into_string().unwrap() +} \ No newline at end of file -- cgit v1.2.1