chromium-dashboard/templates/_base.html

139 строки
4.7 KiB
HTML

<!DOCTYPE html>
<!--
Copyright 2016 Google Inc. All Rights Reserved.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<html lang="en">
<head>
<meta charset="utf-8">
<title>{% block page_title %}{% endblock %}{{ APP_TITLE }}</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0">
<meta name="theme-color" content="#366597">
<link rel="stylesheet" href="/static/css/base.css?v={{app_version}}" />
<link rel="icon" sizes="192x192" href="/static/img/crstatus_192.png">
<!-- iOS: run in full-screen mode and display upper status bar as translucent -->
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent">
<link rel="apple-touch-icon" href="/static/img/crstatus_128.png">
<link rel="apple-touch-icon-precomposed" href="/static/img/crstatus_128.png">
<link rel="shortcut icon" href="/static/img/crstatus_128.png">
<link rel="preconnect" href="https://www.google-analytics.com" crossorigin>
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
{% block meta %}{% endblock %}
<link rel="stylesheet" href="/static/css/main.css?v={{app_version}}">
{% block css %}{% endblock %}
{# Google Identity Services library for OAuth #}
<script src="https://accounts.google.com/gsi/client" async defer nonce="{{nonce}}"></script>
<script nonce="{{nonce}}">
const urlParams = new URLSearchParams(window.location.search);
if (urlParams.get("loginStatus") == 'False') {
alert('Please log in.');
}
</script>
<script type="module" nonce="{{nonce}}">
import {ChromeStatusClient} from "/static/dist/cs-client.js?v={{app_version}}"
window.csClient = new ChromeStatusClient(
'{{xsrf_token}}', {{xsrf_token_expires}});
{# Attach Eventlistener for the drawer menu. #}
const drawer = document.querySelector('chromedash-drawer');
const header = document.querySelector('chromedash-header');
header.addEventListener('drawer-clicked', (e) => {
e.preventDefault();
open = drawer.toggleDrawerActions();
});
</script>
<script type="module" nonce="{{nonce}}" defer
src="/static/dist/components.js?v={{app_version}}"></script>
{% block preload %}{% endblock %}
{% block rss %}{% endblock%}
</head>
<body class="loading" data-path="{{current_path}}">
<div id="app-content-container">
<div>
<div class="main-toolbar">
<div class="toolbar-content">
<chromedash-header
appTitle="{{APP_TITLE}}"
currentPage="{{current_path}}"
googleSignInClientId="{{google_sign_in_client_id}}"
devMode="{{DEV_MODE}}">
</chromedash-header>
</div>
</div>
<div id="content">
<div>
<chromedash-drawer
currentPage="{{current_path}}"
googleSignInClientId="{{google_sign_in_client_id}}">
</chromedash-drawer>
</div>
<chromedash-banner
message="{{banner_message}}"
timestamp="{{banner_time}}">
</chromedash-banner>
<div id="rollout">
<a href="/newfeatures">Try out our new features page</a>
</div>
<div id="spinner">
<img src="/static/img/ring.svg">
</div>
<div id="content-flex-wrapper">
<div id="content-component-wrapper">
{% block subheader %}{% endblock %}
{% block content %}{% endblock %}
</div>
</div>
</div>
</div>
<chromedash-footer></chromedash-footer>
</div>
{% block overlay %}{% endblock %}
{% block js %}{% endblock %}
<script src="https://www.googletagmanager.com/gtag/js?id=UA-179341418-1"
async nonce="{{nonce}}"></script>
{#
Note that the following script tag must include type="module" so that the form field event listeners
attached by shared.js will not be attached until after Shoelace event listeners are attached.
See https://github.com/GoogleChrome/chromium-dashboard/issues/2014
#}
<script type="module" nonce="{{nonce}}" src="/static/dist/shared.js?v={{app_version}}"></script>
</body>
</html>