orePlayCommon/app/views/layout/base.scala.html
@*
Base layout template for website. Most templates within the project will extend
this.
*@
@import play.twirl.api.Html
@import controllers.sugar.Requests.OreRequest
@import ore.OreConfig
@import views.html.helper.CSPNonce
@(title: String, additionalScripts: Html = Html(""), scriptsEnabled: Boolean = true, authEnabled: Boolean = true, showHeader: Boolean = true,
showFooter: Boolean = true, noContainer: Boolean = false, additionalMeta: Html = Html(""))(content: Html)(implicit request: OreRequest[_], messages: Messages, config: OreConfig, flash: Flash)
<!DOCTYPE html>
<html>
<head>
<title>@title</title>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
@additionalMeta
<link href="https://fonts.googleapis.com/css?family=Montserrat:400,700" rel="stylesheet">
<link rel="icon" href="@config.sponge.icon">
<link rel="stylesheet" type="text/css" href="@routes.Assets.versioned("highlight/styles/default.css")" />
<link rel="stylesheet" type="text/css" href="@routes.Assets.versioned("bootstrap/css/bootstrap.min.css")" />
<link rel="stylesheet" type="text/css" href="@routes.Assets.versioned("stylesheets/main.css")" />
<link rel="stylesheet" type="text/css" href="@routes.Assets.versioned("lib/font-awesome/css/svg-with-js.min.css")" />
<!-- See https://goo.gl/OOhYW5 -->
<link rel="manifest" href="@routes.Assets.versioned("manifest/manifest.json")">
<!-- See https://goo.gl/qRE0vM -->
<meta name="theme-color" content="#333">
@if(scriptsEnabled) {
<script type="text/javascript" src="@routes.Assets.versioned("lib/jquery/dist/jquery.min.js")"></script>
<script defer type="text/javascript" src="@routes.Assets.versioned("lib/font-awesome/js/all.min.js")" data-auto-add-css="false"></script>
}
</head>
<body class="site">
@if(showHeader) {
@layout.header(authEnabled)
}
<div class="site-content">
@if(noContainer) {
@content
} else {
<div class="container @if(showHeader){site-header-margin}">
@if(config.ore.staging) {
<div class="row">
<div class="col-xs-12">
<div class="staging-warning">@messages("general.stagingWarning")</div>
</div>
</div>
}
<div class="row">
<div class="col-xs-12">
@utils.alert("success")
@utils.alert("error")
@utils.alert("info")
@utils.alert("warning")
</div>
</div>
@content
</div>
}
</div>
@if(showFooter) {
@layout.footer()
}
@if(scriptsEnabled) {
<script type="text/javascript" src="@routes.Assets.versioned("lib/moment/min/moment.min.js")"></script>
<script type="text/javascript" src="@routes.Assets.versioned("bootstrap/js/bootstrap.min.js")"></script>
<script type="text/javascript" src="@routes.Assets.versioned("lib/filesize/lib/filesize.js")"></script>
<script type="text/javascript" src="@routes.Assets.versioned("lib/clipboard/dist/clipboard.min.js")"></script>
<script type="text/javascript" src="@routes.Assets.versioned("highlight/highlight.pack.js")"></script>
<script type="text/javascript" src="@routes.Assets.versioned("javascripts/main.js")"></script>
<script type="text/javascript" src="@routes.Assets.versioned("javascripts/apiRequests.js")"></script>
<script type="text/javascript" src="@routes.Assets.versioned("javascripts/svg.js")"></script>
<script type="text/javascript" src="@routes.Assets.versioned("javascripts/spongie.js")"></script>
@additionalScripts
@if(request != null) {
<script @CSPNonce.attr>
csrf = '@play.filters.csrf.CSRF.getToken.get.value';
isLoggedIn = @request.hasUser;
$.ajaxSetup({headers: {'Csrf-Token': csrf}});
</script>
}
}
</body>
</html>