mirror of
https://github.com/quay/quay.git
synced 2026-01-29 08:42:15 +03:00
chore: Fix security url template variable (PROJQUAY-8650) Fixes the wrong name of the variable for the security link in the base template. All links should show properly now.
219 lines
9.6 KiB
HTML
219 lines
9.6 KiB
HTML
<!DOCTYPE html>
|
|
<html ng-app="quay" class="{% if onprem %}onprem{% else %}hosted{% endif %}">
|
|
<head>
|
|
{% if config_set['SERVER_HOSTNAME'] == 'stage.quay.io' %}
|
|
<script id="trustarc" src="//static.redhat.com/libs/redhat/marketing/latest/trustarc/trustarc.stage.js"></script>
|
|
<script id="dpal" src="https://www.redhat.com/ma/dpal-staging.js" type="text/javascript"></script>
|
|
{% endif %}
|
|
|
|
{% if config_set['SERVER_HOSTNAME'] == 'quay.io' %}
|
|
<script id="trustarc" src="//static.redhat.com/libs/redhat/marketing/latest/trustarc/trustarc.js"></script>
|
|
<script id="dpal" src="https://www.redhat.com/ma/dpal.js" type="text/javascript"></script>
|
|
{% endif %}
|
|
|
|
<base href="/">
|
|
|
|
{% block title %}
|
|
|
|
{% endblock %}
|
|
|
|
{% block added_meta %}
|
|
|
|
{% endblock %}
|
|
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
|
|
{% for style_url in external_styles %}
|
|
<link rel="stylesheet" href="{{ style_url }}" type="text/css">
|
|
{% endfor %}
|
|
|
|
<!-- Icons -->
|
|
<link rel="shortcut icon" href="/static/img/quay_favicon.png" type="image/png" />
|
|
<!-- /Icons -->
|
|
|
|
<!-- Hide the footer until the CSS loads properly. -->
|
|
<style type="text/css">
|
|
.page-footer {
|
|
display: none;
|
|
}
|
|
|
|
.loading-js-fade-in {
|
|
text-align: center;
|
|
}
|
|
</style>
|
|
|
|
{% block added_stylesheets %}
|
|
|
|
{% endblock %}
|
|
|
|
<script type="text/javascript">
|
|
window.__endpoints = {{ route_data|tojson|safe }}.paths;
|
|
window.__features = {{ feature_set|tojson|safe }};
|
|
window.__config = {{ config_set|tojson|safe }};
|
|
window.__oauth = {{ oauth_set|tojson|safe }};
|
|
window.__external_login = {{ external_login_set|tojson|safe }};
|
|
window.__auth_scopes = {{ scope_set|tojson|safe }};
|
|
window.__vuln_priority = {{ vuln_priority_set|tojson|safe }}
|
|
window.__token = '{{ csrf_token() }}';
|
|
window.__kubernetes_namespace = {{ kubernetes_namespace|tojson|safe }};
|
|
window.__registry_state = '{{ registry_state }}';
|
|
window.__account_recovery_mode = {{ account_recovery_mode|tojson|safe }};
|
|
|
|
{% if error_code %}
|
|
window.__error_code = {{ error_code }};
|
|
{% endif %}
|
|
|
|
{% if error_info %}
|
|
window.__error_info = {{ error_info|tojson|safe }};
|
|
{% endif %}
|
|
</script>
|
|
|
|
{% for script_url in external_scripts %}
|
|
<script src="{{ script_url }}"></script>
|
|
{% endfor %}
|
|
|
|
{% block added_dependencies %}
|
|
|
|
{% endblock %}
|
|
|
|
{% for script_path in main_scripts %}
|
|
<script src="/static/{{ script_path }}"></script>
|
|
{% endfor %}
|
|
|
|
{% if sentry_public_dsn %}
|
|
<script type="text/javascript">
|
|
Raven.config('{{ sentry_public_dsn }}').install();
|
|
</script>
|
|
{% endif %}
|
|
|
|
{% if google_analytics_key %}
|
|
<script>
|
|
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
|
|
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
|
|
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
|
|
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
|
|
|
|
ga('create', '{{ google_analytics_key }}', 'auto');
|
|
ga('send', 'pageview');
|
|
|
|
</script>
|
|
{% endif %}
|
|
|
|
{% if mixpanel_key %}
|
|
<!-- start Mixpanel --><script type="text/javascript">
|
|
(function(e,b){if(!b.__SV){var a,f,i,g;window.mixpanel=b;a=e.createElement("script");a.type="text/javascript";a.async=!0;a.src=("https:"===e.location.protocol?"https:":"http:")+'//cdn.mxpnl.com/libs/mixpanel-2.2.min.js';f=e.getElementsByTagName("script")[0];f.parentNode.insertBefore(a,f);b._i=[];b.init=function(a,e,d){function f(b,h){var a=h.split(".");2==a.length&&(b=b[a[0]],h=a[1]);b[h]=function(){b.push([h].concat(Array.prototype.slice.call(arguments,0)))}}var c=b;"undefined"!==
|
|
typeof d?c=b[d]=[]:d="mixpanel";c.people=c.people||[];c.toString=function(b){var a="mixpanel";"mixpanel"!==d&&(a+="."+d);b||(a+=" (stub)");return a};c.people.toString=function(){return c.toString(1)+".people (stub)"};i="disable track track_pageview track_links track_forms register register_once alias unregister identify name_tag set_config people.set people.set_once people.increment people.append people.track_charge people.clear_charges people.delete_user".split(" ");for(g=0;g<i.length;g++)f(c,i[g]);
|
|
b._i.push([a,e,d])};b.__SV=1.2}})(document,window.mixpanel||[]);
|
|
mixpanel.init("{{ mixpanel_key }}", { track_pageview : false, debug: {{ is_debug }} });</script><!-- end Mixpanel -->
|
|
{% endif %}
|
|
|
|
<link rel="search" type="application/opensearchdescription+xml" title="{{ config_set['REGISTRY_TITLE'] }}" href="/opensearch.xml" />
|
|
|
|
</head>
|
|
<body ng-class="pageClass + ' ' + (user.anonymous ? 'anon' : 'signedin')" class="co-img-bg-network">
|
|
<div id="co-l-footer-wrapper">
|
|
<nav class="navbar navbar-default header-bar co-m-navbar co-fx-box-shadow" role="navigation"></nav>
|
|
|
|
<div class="quay-message-bar"></div>
|
|
<div quay-require="['BILLING']">
|
|
<div class="quay-service-status-bar"></div>
|
|
</div>
|
|
|
|
<div id="padding-container">
|
|
<div id="co-l-view-container">
|
|
<div ng-class="newLayout ? '' : 'main-panel co-fx-box-shadow-heavy'">
|
|
{% block body_content %}
|
|
|
|
{% endblock %}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div id="co-l-footer-push"></div>
|
|
</div>
|
|
|
|
<nav id="co-l-footer" class="page-footer hidden-xs">
|
|
<div class="col-md-12">
|
|
<ul>
|
|
{% if config_set['BRANDING']['footer_img'] %}
|
|
<li><a href="{{ config_set['BRANDING']['footer_url'] }}" ng-safenewtab><img src="{{ config_set['BRANDING']['footer_img'] }}"></a></li>
|
|
{% endif %}
|
|
<li><a href="{{ config_set['DOCUMENTATION_ROOT'] }}" ng-safenewtab>Documentation</a></li>
|
|
{% if config_set['SERVER_HOSTNAME'] == ('quay.io') or config_set['SERVER_HOSTNAME'] == ('stage.quay.io') %}
|
|
<li quay-require="['BILLING']"><a href="https://www.openshift.com/legal/terms" target="_blank">Terms</a></li>
|
|
<li quay-require="['BILLING']"><a href="https://www.redhat.com/en/about/privacy-policy" target="_blank">Privacy</a></li>
|
|
<li quay-require="['BILLING']"><a href="/security/" target="_self">Security</a></li>
|
|
<li quay-require="['BILLING']"><a href="/about/" target="_self">About</a></li>
|
|
{% else %}
|
|
{% if config_set['FOOTER_LINKS']['TERMS_OF_SERVICE_URL'] %}
|
|
<li><a href="{{ config_set['FOOTER_LINKS']['TERMS_OF_SERVICE_URL'] }}" ng-safenewtab>Terms of Service</a></li>
|
|
{% endif %}
|
|
{% if config_set['FOOTER_LINKS']['PRIVACY_POLICY_URL'] %}
|
|
<li><a href="{{ config_set['FOOTER_LINKS']['PRIVACY_POLICY_URL'] }}" target="_blank">Privacy</a></li>
|
|
{% endif %}
|
|
{% if config_set['FOOTER_LINKS']['SECURITY_URL'] %}
|
|
<li><a href="{{ config_set['FOOTER_LINKS']['SECURITY_URL'] }}" target="_blank">Security</a></li>
|
|
{% endif %}
|
|
{% if config_set['FOOTER_LINKS']['ABOUT_URL'] %}
|
|
<li><a href="{{ config_set['FOOTER_LINKS']['ABOUT_URL'] }}" target="_blank">About</a></li>
|
|
{% endif %}
|
|
{% endif %}
|
|
{% if has_contact %}
|
|
<li><b><a href="{{ contact_href or '/contact/' }}" target="_self">Contact</a></b></li>
|
|
{% endif %}
|
|
<li quay-require="['BILLING']">
|
|
<span class="quay-service-status"></span>
|
|
</li>
|
|
{% if config_set['SERVER_HOSTNAME'] == ('quay.io') or config_set['SERVER_HOSTNAME'] == ('stage.quay.io') %}
|
|
<li>
|
|
<span id="teconsent" style="line-height: 1.1;"></span>
|
|
</li>
|
|
{% endif %}
|
|
<li>{{ version_number }}</li>
|
|
</ul>
|
|
</div>
|
|
</nav>
|
|
|
|
{% if config_set['SERVER_HOSTNAME'] == ('quay.io') or config_set['SERVER_HOSTNAME'] == ('stage.quay.io') %}
|
|
<div id="consent_blackbar" style="position: fixed;bottom: 0;width: 100%;z-index: 5;padding: 10px;"></div>
|
|
{% endif %}
|
|
|
|
<!-- Modal message dialog -->
|
|
<div class="modal fade" id="couldnotloadModal" data-backdrop="static">
|
|
<div class="modal-dialog">
|
|
<div class="modal-content">
|
|
<div class="modal-header">
|
|
<h4 class="modal-title">Uh Oh...</h4>
|
|
</div>
|
|
<div class="modal-body">
|
|
Something went wrong when trying to load Quay! Please report this to <a href="mailto:support@quay.io">support@quay.io</a>.
|
|
</div>
|
|
<div class="modal-footer">
|
|
</div>
|
|
</div><!-- /.modal-content -->
|
|
</div><!-- /.modal-dialog -->
|
|
</div><!-- /.modal -->
|
|
|
|
{% if google_tagmanager_key %}
|
|
<!-- Google Tag Manager (hooked up to CrossDomain) -->
|
|
<noscript><iframe src="//www.googletagmanager.com/ns.html?id={{ google_tagmanager_key }}"
|
|
height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
|
|
<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
|
|
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
|
|
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
|
|
'//www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
|
|
})(window,document,'script','dataLayer','{{ google_tagmanager_key }}');</script>
|
|
{% endif %}
|
|
|
|
<div class="angular-tour-ui" inline="false" tour="angular_tour_current"></div>
|
|
|
|
{% if config_set['SERVER_HOSTNAME'].endswith('quay.io') %}
|
|
<script type="text/javascript">
|
|
if (("undefined" !== typeof _satellite) && ("function" === typeof _satellite.pageBottom)) {
|
|
_satellite.pageBottom();
|
|
}
|
|
</script>
|
|
{% endif %}
|
|
</body>
|
|
</html>
|