From 98d55472bfeee5bd111220315ebac03f297e2d6d Mon Sep 17 00:00:00 2001 From: Thibault Duplessis Date: Fri, 17 Jan 2020 20:44:08 -0600 Subject: [PATCH] class home --- app/controllers/Clas.scala | 20 +++++++++++++++----- app/views/clas/clas.scala | 22 ++++++++++++++++++++++ app/views/site/page.scala | 2 +- ui/site/css/_clas.scss | 14 ++++++++++++++ 4 files changed, 52 insertions(+), 6 deletions(-) diff --git a/app/controllers/Clas.scala b/app/controllers/Clas.scala index 29c9c42322..7d9ec24f07 100644 --- a/app/controllers/Clas.scala +++ b/app/controllers/Clas.scala @@ -6,13 +6,23 @@ import lila.app._ import views._ final class Clas( - env: Env + env: Env, + prismicC: Prismic ) extends LilaController(env) { - def index = Secure(_.Teacher) { implicit ctx => me => - WithTeacher(me) { t => - env.clas.api.clas.of(t.teacher) map { classes => - Ok(views.html.clas.clas.index(classes)) + def index = Open { implicit ctx => + ctx.me.ifTrue(isGranted(_.Teacher)).ifFalse(getBool("home")).map { me => + WithTeacher(me) { t => + env.clas.api.clas.of(t.teacher) map { classes => + Ok(views.html.clas.clas.index(classes)) + } + } + } | { + pageHit + prismicC getBookmark "class" map { + _ ?? { + case (doc, resolver) => Ok(views.html.clas.clas.home(doc, resolver)) + } } } } diff --git a/app/views/clas/clas.scala b/app/views/clas/clas.scala index bea2ce16a5..2a2d75312b 100644 --- a/app/views/clas/clas.scala +++ b/app/views/clas/clas.scala @@ -11,6 +11,28 @@ import controllers.routes object clas { + def home(doc: io.prismic.Document, resolver: io.prismic.DocumentLinkResolver)(implicit ctx: Context) = + views.html.base.layout( + moreCss = frag( + cssTag("page"), + cssTag("clas") + ), + title = ~doc.getText("doc.title") + ) { + main(cls := "page-small box box-pad page clas-home")( + h1(doc.getText("doc.title")), + div(cls := "clas-home__doc")( + raw(~doc.getHtml("doc.content", resolver)) + ), + div(cls := "clas-home__onboard")( + button(cls := "button button-fat disabled", disabled)( + "Apply for Lichess Teacher now" + ), + p("Only on invitation for now! We will take applications soon.") + ) + ) + } + def index(classes: List[Clas])(implicit ctx: Context) = bits.layout("Lichess Classes", Right("classes"))( cls := "clas-index", diff --git a/app/views/site/page.scala b/app/views/site/page.scala index 01ec7ee77d..69af93c964 100644 --- a/app/views/site/page.scala +++ b/app/views/site/page.scala @@ -9,7 +9,7 @@ object page { def apply(doc: io.prismic.Document, resolver: io.prismic.DocumentLinkResolver)(implicit ctx: Context) = views.html.base.layout( moreCss = cssTag("page"), - title = s"${~doc.getText("doc.title")}" + title = ~doc.getText("doc.title") ) { main(cls := "page-small box box-pad page")( h1(doc.getText("doc.title")), diff --git a/ui/site/css/_clas.scss b/ui/site/css/_clas.scss index a8d50f6436..3dd1b1ec59 100644 --- a/ui/site/css/_clas.scss +++ b/ui/site/css/_clas.scss @@ -222,3 +222,17 @@ $clas-color: rgb(127, 90, 240); } } } + +.clas-home { + + &__doc { + margin-bottom: 4em; + } + + &__onboard { + text-align: center; + .button { + margin-bottom: 1em; + } + } +}