app/views/main.scala.html (89 lines of code) (raw):

@import com.gu.googleauth.UserIdentity @import com.gu.janus.model.JanusData @import logic.UserAccess.{hasAccess, isSupportUser, username} @import logic.Customisation.displayColour @import play.api.Mode @import java.time.Instant @(title: String, userOpt: Option[UserIdentity], janusData: JanusData, displayMode: DisplayMode = Normal)(content: Html)(implicit mode: Mode, assetsFinder: AssetsFinder) <!DOCTYPE html> <html lang="en"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1.0, user-scalable=no"/> <title>@title - Janus</title> @if(mode == Mode.Dev) { <link href="https://janus-frontend.local.dev-gutools.co.uk/main.css" type="text/css" rel="stylesheet" media="screen,projection"/> } else { <link href="@assetsFinder.path("frontend/main.css")" type="text/css" rel="stylesheet" media="screen,projection"/> } <link rel="icon" href="@assetsFinder.path("images/favicon.ico")"/> </head> <body> <header> <nav class="@displayColour(displayMode) darken-4" role="navigation"> <div class="nav-wrapper container"> <a id="logo-container" href="/" class="brand-logo"> <img src="@assetsFinder.path("images/janus.png")" alt="Janus"> Janus </a> @userOpt.map { user => <ul class="right hide-on-med-and-down"> <li><a href="/accounts">Accounts</a></li> <li><a href="/support">Support</a></li> @if(hasAccess(username(user), janusData.admin)) { <li><a href="/superuser">Admin</a></li> } <li><a href="/revoke">Revoke</a></li> <li><a href="/logout">@user.firstName @user.lastName</a></li> </ul> <ul id="nav-mobile" class="sidenav"> <li><a href="/">Home</a></li> <li><a href="/accounts">Accounts</a></li> @if(isSupportUser(username(user), Instant.now(), janusData.support)) { <li><a href="/support">Support</a></li> } @if(hasAccess(username(user), janusData.admin)) { <li><a href="/superuser">Admin</a></li> } <li><a href="/revoke">Revoke</a></li> <li><a href="/logout">@user.firstName @user.lastName <i class="material-icons right">power_settings_new</i></a></li> </ul> } <a href="#" data-target="nav-mobile" class="sidenav-trigger"><i class="material-icons">menu</i></a> </div> </nav> </header> <main class="@{ if(displayMode == Spooky) "spooky" else if(displayMode == Festive) "festive" else "" }"> @content </main> <footer class="page-footer grey darken-4"> <div class="container"> <div class="row"> <div class="col l9 s12"> <h5 class="white-text">The Guardian</h5> <p class="grey-text text-lighten-4">Janus is a part of the Guardian's infrastructure management toolset.</p> </div> <div class="col l3 s12"> <h5 class="white-text">Useful links</h5> <ul> @janusData.permissionsRepo.map { repoUrl => <li><a class="white-text" href="@repoUrl">Janus' configuration</a></li> } <li><a class="white-text" href="https://github.com/guardian/janus-app">Janus on GitHub</a></li> </ul> </div> </div> </div> </footer> @if(mode == Mode.Dev) { <script src="https://janus-frontend.local.dev-gutools.co.uk/janus.js"></script> } else { <script src="@assetsFinder.path("frontend/janus.js")"></script> } @if(displayMode == Festive) { @if(mode == Mode.Dev) { <script src="https://janus-frontend.local.dev-gutools.co.uk/snow.js"></script> } else { <script src="@assetsFinder.path("frontend/snow.js")"></script> } } </body> </html>