MiniDigger/Hangar

View on GitHub
orePlayCommon/app/views/layout/base.scala.html

Summary

Maintainability
Test Coverage
@*
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>