~jan0sch/smederee

Showing details for patch 7ba223b7cc2883952a1492af5523ab32d6cfd6af.
2022-11-04 (Fri), 2:21 PM - Jens Grassel - 7ba223b7cc2883952a1492af5523ab32d6cfd6af

HTML: Make navbar consistent and some refactoring.

- show the navbar for logged in users consistently
- make main parameters in main template being always required
- refactor affected templates
Summary of changes
10 files modified with 62 lines added and 24 lines removed
  • modules/hub/src/main/scala/de/smederee/hub/LandingPageRoutes.scala with 48 added and 10 removed lines
  • modules/hub/src/main/twirl/de/smederee/hub/views/contact.scala.html with 2 added and 2 removed lines
  • modules/hub/src/main/twirl/de/smederee/hub/views/imprint.scala.html with 2 added and 2 removed lines
  • modules/hub/src/main/twirl/de/smederee/hub/views/login.scala.html with 1 added and 1 removed lines
  • modules/hub/src/main/twirl/de/smederee/hub/views/main.scala.html with 1 added and 1 removed lines
  • modules/hub/src/main/twirl/de/smederee/hub/views/privacyPolicy.scala.html with 2 added and 2 removed lines
  • modules/hub/src/main/twirl/de/smederee/hub/views/publicAlpha.scala.html with 2 added and 2 removed lines
  • modules/hub/src/main/twirl/de/smederee/hub/views/signup.scala.html with 1 added and 1 removed lines
  • modules/hub/src/main/twirl/de/smederee/hub/views/termsOfUse.scala.html with 2 added and 2 removed lines
  • modules/hub/src/main/twirl/de/smederee/hub/views/welcome.scala.html with 1 added and 1 removed lines
diff -rN -u old-smederee/modules/hub/src/main/scala/de/smederee/hub/LandingPageRoutes.scala new-smederee/modules/hub/src/main/scala/de/smederee/hub/LandingPageRoutes.scala
--- old-smederee/modules/hub/src/main/scala/de/smederee/hub/LandingPageRoutes.scala	2025-02-01 18:49:41.827612500 +0000
+++ new-smederee/modules/hub/src/main/scala/de/smederee/hub/LandingPageRoutes.scala	2025-02-01 18:49:41.831612505 +0000
@@ -43,57 +43,95 @@
   // The URL that shall be used in the `action` field of the form.
   private val signupUri = linkConfig.createFullUri(uri"/signup")
 
-  private val contact: HttpRoutes[F] = HttpRoutes.of { case req @ GET -> Root / "contact" =>
+  private val contact: AuthedRoutes[Account, F] = AuthedRoutes.of { case ar @ GET -> Root / "contact" as user =>
+    for {
+      csrf <- Sync[F].delay(ar.req.getCsrfToken)
+      resp <- Ok(views.html.contact(baseUri)(csrf, "Smederee - Contact".some, user.some))
+    } yield resp
+  }
+
+  private val contactForGuests: HttpRoutes[F] = HttpRoutes.of { case req @ GET -> Root / "contact" =>
     for {
       csrf <- Sync[F].delay(req.getCsrfToken)
       resp <- Ok(views.html.contact(baseUri)(csrf, "Smederee - Contact".some))
     } yield resp
   }
 
-  private val imprint: HttpRoutes[F] = HttpRoutes.of { case req @ GET -> Root / "imprint" =>
+  private val imprint: AuthedRoutes[Account, F] = AuthedRoutes.of { case ar @ GET -> Root / "imprint" as user =>
+    for {
+      csrf <- Sync[F].delay(ar.req.getCsrfToken)
+      resp <- Ok(views.html.imprint(baseUri)(csrf, "Smederee - Imprint / Impressum".some, user.some))
+    } yield resp
+  }
+
+  private val imprintForGuests: HttpRoutes[F] = HttpRoutes.of { case req @ GET -> Root / "imprint" =>
     for {
       csrf <- Sync[F].delay(req.getCsrfToken)
       resp <- Ok(views.html.imprint(baseUri)(csrf, "Smederee - Imprint / Impressum".some))
     } yield resp
   }
 
-  private val mainSiteForLoggedInUsers: AuthedRoutes[Account, F] = AuthedRoutes.of { case ar @ GET -> Root as user =>
+  private val mainSite: AuthedRoutes[Account, F] = AuthedRoutes.of { case ar @ GET -> Root as user =>
     for {
       csrf <- Sync[F].delay(ar.req.getCsrfToken)
       resp <- Ok(views.html.index(baseUri)()(signupUri, csrf, "Welcome to the Smederee!".some, user.some))
     } yield resp
   }
 
-  private val mainSite: HttpRoutes[F] = HttpRoutes.of { case req @ GET -> Root =>
+  private val mainSiteForGuests: HttpRoutes[F] = HttpRoutes.of { case req @ GET -> Root =>
     for {
       csrf <- Sync[F].delay(req.getCsrfToken)
       resp <- Ok(views.html.index(baseUri)()(signupUri, csrf, "Welcome to the Smederee!".some))
     } yield resp
   }
 
-  private val privacyPolicy: HttpRoutes[F] = HttpRoutes.of { case req @ GET -> Root / "privacy-policy" =>
+  private val privacyPolicy: AuthedRoutes[Account, F] = AuthedRoutes.of {
+    case ar @ GET -> Root / "privacy-policy" as user =>
+      for {
+        csrf <- Sync[F].delay(ar.req.getCsrfToken)
+        resp <- Ok(views.html.privacyPolicy(baseUri)(csrf, "Smederee - Privacy Policy".some, user.some))
+      } yield resp
+  }
+
+  private val privacyPolicyForGuests: HttpRoutes[F] = HttpRoutes.of { case req @ GET -> Root / "privacy-policy" =>
     for {
       csrf <- Sync[F].delay(req.getCsrfToken)
       resp <- Ok(views.html.privacyPolicy(baseUri)(csrf, "Smederee - Privacy Policy".some))
     } yield resp
   }
 
-  private val publicAlpha: HttpRoutes[F] = HttpRoutes.of { case req @ GET -> Root / "public-alpha" =>
+  private val publicAlpha: AuthedRoutes[Account, F] = AuthedRoutes.of {
+    case ar @ GET -> Root / "public-alpha" as user =>
+      for {
+        csrf <- Sync[F].delay(ar.req.getCsrfToken)
+        resp <- Ok(views.html.publicAlpha(baseUri)(csrf, "Smederee - Details about our public alpha.".some, user.some))
+      } yield resp
+  }
+
+  private val publicAlphaForGuests: HttpRoutes[F] = HttpRoutes.of { case req @ GET -> Root / "public-alpha" =>
     for {
       csrf <- Sync[F].delay(req.getCsrfToken)
       resp <- Ok(views.html.publicAlpha(baseUri)(csrf, "Smederee - Details about our public alpha.".some))
     } yield resp
   }
 
-  private val termsOfUse: HttpRoutes[F] = HttpRoutes.of { case req @ GET -> Root / "terms-of-use" =>
+  private val termsOfUse: AuthedRoutes[Account, F] = AuthedRoutes.of { case ar @ GET -> Root / "terms-of-use" as user =>
+    for {
+      csrf <- Sync[F].delay(ar.req.getCsrfToken)
+      resp <- Ok(views.html.termsOfUse(baseUri)(csrf, "Smederee - Terms of Use".some, user.some))
+    } yield resp
+  }
+
+  private val termsOfUseForGuests: HttpRoutes[F] = HttpRoutes.of { case req @ GET -> Root / "terms-of-use" =>
     for {
       csrf <- Sync[F].delay(req.getCsrfToken)
       resp <- Ok(views.html.termsOfUse(baseUri)(csrf, "Smederee - Terms of Use".some))
     } yield resp
   }
 
-  val protectedRoutes = mainSiteForLoggedInUsers
+  val protectedRoutes = contact <+> imprint <+> privacyPolicy <+> publicAlpha <+> termsOfUse <+> mainSite
 
-  val routes = contact <+> imprint <+> privacyPolicy <+> publicAlpha <+> termsOfUse <+> mainSite
+  val routes =
+    contactForGuests <+> imprintForGuests <+> privacyPolicyForGuests <+> publicAlphaForGuests <+> termsOfUseForGuests <+> mainSiteForGuests
 
 }
diff -rN -u old-smederee/modules/hub/src/main/twirl/de/smederee/hub/views/contact.scala.html new-smederee/modules/hub/src/main/twirl/de/smederee/hub/views/contact.scala.html
--- old-smederee/modules/hub/src/main/twirl/de/smederee/hub/views/contact.scala.html	2025-02-01 18:49:41.827612500 +0000
+++ new-smederee/modules/hub/src/main/twirl/de/smederee/hub/views/contact.scala.html	2025-02-01 18:49:41.831612505 +0000
@@ -1,4 +1,4 @@
-@(baseUri: Uri = Uri(path = Uri.Path.Root), lang: LanguageCode = LanguageCode("en"))(csrf: Option[CsrfToken] = None, title: Option[String] = None)
+@(baseUri: Uri = Uri(path = Uri.Path.Root), lang: LanguageCode = LanguageCode("en"))(csrf: Option[CsrfToken] = None, title: Option[String] = None, user: Option[Account] = None)
 @myHeaders = {
   <link rel="stylesheet" href="@{baseUri.addPath("assets/css/landingpage.css")}" />
   <style>
@@ -23,7 +23,7 @@
   </footer>
 }
 }
-@main(baseUri, lang)(customFooters = myFooters, customHeaders = myHeaders)(csrf, title) {
+@main(baseUri, lang)(customFooters = myFooters, customHeaders = myHeaders)(csrf, title, user) {
 @defining(lang.toLocale) { implicit locale =>
 <div class="content">
   <div class="pure-g">
diff -rN -u old-smederee/modules/hub/src/main/twirl/de/smederee/hub/views/imprint.scala.html new-smederee/modules/hub/src/main/twirl/de/smederee/hub/views/imprint.scala.html
--- old-smederee/modules/hub/src/main/twirl/de/smederee/hub/views/imprint.scala.html	2025-02-01 18:49:41.827612500 +0000
+++ new-smederee/modules/hub/src/main/twirl/de/smederee/hub/views/imprint.scala.html	2025-02-01 18:49:41.831612505 +0000
@@ -1,4 +1,4 @@
-@(baseUri: Uri = Uri(path = Uri.Path.Root), lang: LanguageCode = LanguageCode("en"))(csrf: Option[CsrfToken] = None, title: Option[String] = None)
+@(baseUri: Uri = Uri(path = Uri.Path.Root), lang: LanguageCode = LanguageCode("en"))(csrf: Option[CsrfToken] = None, title: Option[String] = None, user: Option[Account] = None)
 @myHeaders = {
   <link rel="stylesheet" href="@{baseUri.addPath("assets/css/landingpage.css")}" />
   <style>
@@ -23,7 +23,7 @@
   </footer>
 }
 }
-@main(baseUri, lang)(customFooters = myFooters, customHeaders = myHeaders)(csrf, title) {
+@main(baseUri, lang)(customFooters = myFooters, customHeaders = myHeaders)(csrf, title, user) {
 @defining(lang.toLocale) { implicit locale =>
 <div class="content">
   <div class="pure-g">
diff -rN -u old-smederee/modules/hub/src/main/twirl/de/smederee/hub/views/login.scala.html new-smederee/modules/hub/src/main/twirl/de/smederee/hub/views/login.scala.html
--- old-smederee/modules/hub/src/main/twirl/de/smederee/hub/views/login.scala.html	2025-02-01 18:49:41.827612500 +0000
+++ new-smederee/modules/hub/src/main/twirl/de/smederee/hub/views/login.scala.html	2025-02-01 18:49:41.831612505 +0000
@@ -1,7 +1,7 @@
 @import LoginForm._
 
 @(baseUri: Uri = Uri(path = Uri.Path.Root), lang: LanguageCode = LanguageCode("en"))(action: Uri, csrf: Option[CsrfToken] = None, title: Option[String] = None)(formData: Map[String, String] = Map.empty, formErrors: FormErrors = FormErrors.empty)
-@main(baseUri, lang)()(csrf, title) {
+@main(baseUri, lang)()(csrf, title, user = None) {
 @defining(lang.toLocale) { implicit locale =>
 <div class="content">
   <div class="pure-g">
diff -rN -u old-smederee/modules/hub/src/main/twirl/de/smederee/hub/views/main.scala.html new-smederee/modules/hub/src/main/twirl/de/smederee/hub/views/main.scala.html
--- old-smederee/modules/hub/src/main/twirl/de/smederee/hub/views/main.scala.html	2025-02-01 18:49:41.827612500 +0000
+++ new-smederee/modules/hub/src/main/twirl/de/smederee/hub/views/main.scala.html	2025-02-01 18:49:41.831612505 +0000
@@ -1,4 +1,4 @@
-@(baseUri: Uri = Uri(path = Uri.Path.Root), lang: LanguageCode = LanguageCode("en"), tags: MetaTags = MetaTags.empty)(customFooters: Html = Html(""), customHeaders: Html = Html(""))(csrf: Option[CsrfToken] = None, title: Option[String] = None, user: Option[Account] = None)(content: Html)
+@(baseUri: Uri = Uri(path = Uri.Path.Root), lang: LanguageCode = LanguageCode("en"), tags: MetaTags = MetaTags.empty)(customFooters: Html = Html(""), customHeaders: Html = Html(""))(csrf: Option[CsrfToken], title: Option[String], user: Option[Account])(content: Html)
 @defining(lang.toLocale) { implicit locale =>
 <!DOCTYPE html>
 <html lang="@lang">
diff -rN -u old-smederee/modules/hub/src/main/twirl/de/smederee/hub/views/privacyPolicy.scala.html new-smederee/modules/hub/src/main/twirl/de/smederee/hub/views/privacyPolicy.scala.html
--- old-smederee/modules/hub/src/main/twirl/de/smederee/hub/views/privacyPolicy.scala.html	2025-02-01 18:49:41.827612500 +0000
+++ new-smederee/modules/hub/src/main/twirl/de/smederee/hub/views/privacyPolicy.scala.html	2025-02-01 18:49:41.831612505 +0000
@@ -1,4 +1,4 @@
-@(baseUri: Uri = Uri(path = Uri.Path.Root), lang: LanguageCode = LanguageCode("en"))(csrf: Option[CsrfToken] = None, title: Option[String] = None)
+@(baseUri: Uri = Uri(path = Uri.Path.Root), lang: LanguageCode = LanguageCode("en"))(csrf: Option[CsrfToken] = None, title: Option[String] = None, user: Option[Account] = None)
 @myHeaders = {
   <link rel="stylesheet" href="@{baseUri.addPath("assets/css/landingpage.css")}" />
   <style>
@@ -23,7 +23,7 @@
   </footer>
 }
 }
-@main(baseUri, lang)(customFooters = myFooters, customHeaders = myHeaders)(csrf, title) {
+@main(baseUri, lang)(customFooters = myFooters, customHeaders = myHeaders)(csrf, title, user) {
 @defining(lang.toLocale) { implicit locale =>
 <div class="content">
   <div class="pure-g">
diff -rN -u old-smederee/modules/hub/src/main/twirl/de/smederee/hub/views/publicAlpha.scala.html new-smederee/modules/hub/src/main/twirl/de/smederee/hub/views/publicAlpha.scala.html
--- old-smederee/modules/hub/src/main/twirl/de/smederee/hub/views/publicAlpha.scala.html	2025-02-01 18:49:41.827612500 +0000
+++ new-smederee/modules/hub/src/main/twirl/de/smederee/hub/views/publicAlpha.scala.html	2025-02-01 18:49:41.831612505 +0000
@@ -1,4 +1,4 @@
-@(baseUri: Uri = Uri(path = Uri.Path.Root), lang: LanguageCode = LanguageCode("en"))(csrf: Option[CsrfToken] = None, title: Option[String] = None)
+@(baseUri: Uri = Uri(path = Uri.Path.Root), lang: LanguageCode = LanguageCode("en"))(csrf: Option[CsrfToken] = None, title: Option[String] = None, user: Option[Account] = None)
 @myHeaders = {
   <link rel="stylesheet" href="@{baseUri.addPath("assets/css/landingpage.css")}" />
   <style>
@@ -23,7 +23,7 @@
   </footer>
 }
 }
-@main(baseUri, lang)(customFooters = myFooters, customHeaders = myHeaders)(csrf, title) {
+@main(baseUri, lang)(customFooters = myFooters, customHeaders = myHeaders)(csrf, title, user) {
 @defining(lang.toLocale) { implicit locale =>
 <div class="content">
   <div class="pure-g">
diff -rN -u old-smederee/modules/hub/src/main/twirl/de/smederee/hub/views/signup.scala.html new-smederee/modules/hub/src/main/twirl/de/smederee/hub/views/signup.scala.html
--- old-smederee/modules/hub/src/main/twirl/de/smederee/hub/views/signup.scala.html	2025-02-01 18:49:41.831612505 +0000
+++ new-smederee/modules/hub/src/main/twirl/de/smederee/hub/views/signup.scala.html	2025-02-01 18:49:41.831612505 +0000
@@ -1,7 +1,7 @@
 @import SignupForm._
 
 @(baseUri: Uri = Uri(path = Uri.Path.Root), lang: LanguageCode = LanguageCode("en"))(action: Uri, csrf: Option[CsrfToken] = None, title: Option[String] = None)(formData: Map[String, String] = Map.empty, formErrors: FormErrors = FormErrors.empty)
-@main(baseUri, lang)()(csrf, title) {
+@main(baseUri, lang)()(csrf, title, user = None) {
 @defining(lang.toLocale) { implicit locale =>
   <div class="content">
     <div class="pure-g">
diff -rN -u old-smederee/modules/hub/src/main/twirl/de/smederee/hub/views/termsOfUse.scala.html new-smederee/modules/hub/src/main/twirl/de/smederee/hub/views/termsOfUse.scala.html
--- old-smederee/modules/hub/src/main/twirl/de/smederee/hub/views/termsOfUse.scala.html	2025-02-01 18:49:41.831612505 +0000
+++ new-smederee/modules/hub/src/main/twirl/de/smederee/hub/views/termsOfUse.scala.html	2025-02-01 18:49:41.831612505 +0000
@@ -1,4 +1,4 @@
-@(baseUri: Uri = Uri(path = Uri.Path.Root), lang: LanguageCode = LanguageCode("en"))(csrf: Option[CsrfToken] = None, title: Option[String] = None)
+@(baseUri: Uri = Uri(path = Uri.Path.Root), lang: LanguageCode = LanguageCode("en"))(csrf: Option[CsrfToken] = None, title: Option[String] = None, user: Option[Account] = None)
 @myHeaders = {
 <link rel="stylesheet" href="@{baseUri.addPath("assets/css/landingpage.css")}" />
 <style>
@@ -23,7 +23,7 @@
   </footer>
 }
 }
-@main(baseUri, lang)(customFooters = myFooters, customHeaders = myHeaders)(csrf, title) {
+@main(baseUri, lang)(customFooters = myFooters, customHeaders = myHeaders)(csrf, title, user) {
 @defining(lang.toLocale) { implicit locale =>
 <div class="content">
   <div class="pure-g">
diff -rN -u old-smederee/modules/hub/src/main/twirl/de/smederee/hub/views/welcome.scala.html new-smederee/modules/hub/src/main/twirl/de/smederee/hub/views/welcome.scala.html
--- old-smederee/modules/hub/src/main/twirl/de/smederee/hub/views/welcome.scala.html	2025-02-01 18:49:41.831612505 +0000
+++ new-smederee/modules/hub/src/main/twirl/de/smederee/hub/views/welcome.scala.html	2025-02-01 18:49:41.831612505 +0000
@@ -1,5 +1,5 @@
 @(baseUri: Uri, lang: LanguageCode = LanguageCode("en"))(csrf: Option[CsrfToken] = None, title: Option[String] = None)
-@main(baseUri, lang)()(csrf, title) {
+@main(baseUri, lang)()(csrf, title, user = None) {
 @defining(lang.toLocale) { implicit locale =>
   <div class="content">
     <h1 class="content-head is-center" style="color: #34495e; text-align: center;">@Messages("landingpage.welcome.title")</h2>