2013-09-24 22:21:14 +00:00
|
|
|
<!DOCTYPE html>
|
2013-10-14 21:50:07 +00:00
|
|
|
<html ng-app="quay">
|
2013-09-23 16:37:40 +00:00
|
|
|
<head>
|
2016-12-07 22:13:17 +00:00
|
|
|
<base href="/">
|
|
|
|
|
2013-10-14 21:50:07 +00:00
|
|
|
{% block title %}
|
|
|
|
|
|
|
|
{% endblock %}
|
|
|
|
|
|
|
|
{% block added_meta %}
|
|
|
|
|
|
|
|
{% endblock %}
|
|
|
|
|
|
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
2013-09-24 22:21:14 +00:00
|
|
|
|
2014-05-09 22:49:33 +00:00
|
|
|
{% for style_url in external_styles %}
|
|
|
|
<link rel="stylesheet" href="{{ style_url }}" type="text/css">
|
|
|
|
{% endfor %}
|
2013-09-24 22:21:14 +00:00
|
|
|
|
2013-10-13 20:50:48 +00:00
|
|
|
<!-- Icons -->
|
2015-10-30 16:18:34 +00:00
|
|
|
<link rel="shortcut icon" href="/static/img/quay_favicon.png" type="image/png" />
|
2015-11-03 03:15:48 +00:00
|
|
|
<meta property="og:image" content="{{ preferred_scheme }}://{{ hostname }}/static/img/quay_preview.png" />
|
2013-10-13 20:50:48 +00:00
|
|
|
<!-- /Icons -->
|
|
|
|
|
2013-10-14 21:50:07 +00:00
|
|
|
{% block added_stylesheets %}
|
|
|
|
|
|
|
|
{% endblock %}
|
|
|
|
|
2014-04-09 01:10:33 +00:00
|
|
|
<script type="text/javascript">
|
2016-12-07 22:13:17 +00:00
|
|
|
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 }};
|
2017-01-20 20:21:08 +00:00
|
|
|
window.__external_login = {{ external_login_set|tojson|safe }};
|
2016-12-07 22:13:17 +00:00
|
|
|
window.__auth_scopes = {{ scope_set|tojson|safe }};
|
|
|
|
window.__vuln_priority = {{ vuln_priority_set|tojson|safe }}
|
2014-04-09 01:10:33 +00:00
|
|
|
window.__token = '{{ csrf_token() }}';
|
2016-09-21 17:53:09 +00:00
|
|
|
|
|
|
|
{% if error_code %}
|
|
|
|
window.__error_code = {{ error_code }};
|
|
|
|
{% endif %}
|
|
|
|
|
|
|
|
{% if error_info %}
|
2016-12-07 22:13:17 +00:00
|
|
|
window.__error_info = {{ error_info|tojson|safe }};
|
2016-09-21 17:53:09 +00:00
|
|
|
{% endif %}
|
2014-04-09 01:10:33 +00:00
|
|
|
</script>
|
|
|
|
|
2014-05-09 22:49:33 +00:00
|
|
|
{% for script_url in external_scripts %}
|
|
|
|
<script src="{{ script_url }}"></script>
|
|
|
|
{% endfor %}
|
2014-04-18 15:02:13 +00:00
|
|
|
|
2013-10-14 21:50:07 +00:00
|
|
|
{% block added_dependencies %}
|
|
|
|
|
|
|
|
{% endblock %}
|
2014-11-24 21:07:38 +00:00
|
|
|
|
2017-06-08 20:08:38 +00:00
|
|
|
{% for script_path in main_scripts %}
|
|
|
|
<script src="/static/{{ script_path }}"></script>
|
2014-04-15 19:51:32 +00:00
|
|
|
{% endfor %}
|
2013-10-14 21:50:07 +00:00
|
|
|
|
2014-04-28 22:59:22 +00:00
|
|
|
{% if sentry_public_dsn %}
|
|
|
|
<script type="text/javascript">
|
|
|
|
Raven.config('{{ sentry_public_dsn }}').install();
|
|
|
|
</script>
|
|
|
|
{% endif %}
|
|
|
|
|
2016-12-17 07:13:36 +00:00
|
|
|
{% if recaptcha_key %}
|
|
|
|
<script src="//www.google.com/recaptcha/api.js?render=explicit&onload=vcRecaptchaApiLoaded" async defer></script>
|
|
|
|
{% endif %}
|
|
|
|
|
2016-06-20 20:22:30 +00:00
|
|
|
{% if munchkin_key %}
|
|
|
|
<script type="text/javascript">
|
2016-08-16 18:41:01 +00:00
|
|
|
(function() {
|
2016-10-13 17:48:35 +00:00
|
|
|
window.__quay_munchkin_queue = []
|
|
|
|
|
2016-08-16 18:41:01 +00:00
|
|
|
var didInit = false;
|
|
|
|
function initMunchkin() {
|
|
|
|
if(didInit === false) {
|
|
|
|
didInit = true;
|
2016-10-31 16:20:55 +00:00
|
|
|
if (!Munchkin || !Munchkin.init) {
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
2016-08-16 18:41:01 +00:00
|
|
|
Munchkin.init('{{ munchkin_key }}');
|
2016-10-13 17:48:35 +00:00
|
|
|
window.__quay_munchkin_queue.forEach(function(queue_item) {
|
|
|
|
Munchkin.munchkinFunction.apply(Munchkin, queue_item);
|
|
|
|
});
|
|
|
|
window.__quay_munchkin_queue = [];
|
2016-08-16 18:41:01 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
var s = document.createElement('script');
|
|
|
|
s.type = 'text/javascript';
|
|
|
|
s.async = true;
|
|
|
|
s.src = '//munchkin.marketo.net/munchkin-beta.js';
|
|
|
|
s.onreadystatechange = function() {
|
|
|
|
if (this.readyState == 'complete' || this.readyState == 'loaded') {
|
|
|
|
initMunchkin();
|
|
|
|
}
|
|
|
|
};
|
|
|
|
s.onload = initMunchkin;
|
|
|
|
document.getElementsByTagName('head')[0].appendChild(s);
|
|
|
|
})();
|
2016-06-20 20:22:30 +00:00
|
|
|
</script>
|
|
|
|
{% endif %}
|
|
|
|
|
2016-08-16 18:35:39 +00:00
|
|
|
{% 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 %}
|
|
|
|
|
2014-04-09 01:10:33 +00:00
|
|
|
{% if mixpanel_key %}
|
2013-10-14 21:50:07 +00:00
|
|
|
<!-- start Mixpanel --><script type="text/javascript">
|
2013-10-10 21:32:32 +00:00
|
|
|
(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||[]);
|
2014-04-08 23:14:24 +00:00
|
|
|
mixpanel.init("{{ mixpanel_key }}", { track_pageview : false, debug: {{ is_debug }} });</script><!-- end Mixpanel -->
|
2014-04-09 01:10:33 +00:00
|
|
|
{% endif %}
|
2014-08-08 00:44:59 +00:00
|
|
|
|
2013-09-23 16:37:40 +00:00
|
|
|
</head>
|
2014-08-12 21:15:46 +00:00
|
|
|
<body ng-class="pageClass + ' ' + (user.anonymous ? 'anon' : 'signedin')" class="co-img-bg-network">
|
2014-08-12 01:47:04 +00:00
|
|
|
<div id="co-l-footer-wrapper">
|
|
|
|
<nav class="navbar navbar-default header-bar co-m-navbar co-fx-box-shadow" role="navigation"></nav>
|
2016-10-24 19:37:25 +00:00
|
|
|
|
2016-11-07 19:07:39 +00:00
|
|
|
{% if not has_billing and license_expiring %}
|
|
|
|
<div class="co-alert co-alert-warning" style="margin-bottom: 0px;">
|
|
|
|
The Quay Enterprise license will expire shortly. Please contact your administrator to avoid
|
|
|
|
service disruption.
|
|
|
|
</div>
|
|
|
|
{% endif %}
|
|
|
|
|
2016-10-24 19:37:25 +00:00
|
|
|
{% if license_insufficient %}
|
|
|
|
<div class="co-alert co-alert-danger" style="margin-bottom: 0px;">
|
|
|
|
The Quay Enterprise license has expired or is insufficient for this installation. Please contact your administrator.
|
|
|
|
</div>
|
|
|
|
{% endif %}
|
|
|
|
|
2016-10-06 19:58:47 +00:00
|
|
|
<div class="quay-message-bar"></div>
|
2017-07-26 15:24:12 +00:00
|
|
|
<div quay-require="['BILLING']">
|
|
|
|
<div class="quay-service-status-bar"></div>
|
|
|
|
</div>
|
2016-10-24 19:37:25 +00:00
|
|
|
|
2014-08-12 01:47:04 +00:00
|
|
|
<div id="padding-container">
|
|
|
|
<div id="co-l-view-container">
|
2014-12-22 20:13:23 +00:00
|
|
|
<div ng-class="newLayout ? '' : 'main-panel co-fx-box-shadow-heavy'">
|
2014-08-12 01:47:04 +00:00
|
|
|
{% block body_content %}
|
2013-11-20 21:17:47 +00:00
|
|
|
|
2014-08-12 01:47:04 +00:00
|
|
|
{% endblock %}
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<div id="co-l-footer-push"></div>
|
2013-11-20 21:17:47 +00:00
|
|
|
</div>
|
|
|
|
|
2014-08-12 01:47:04 +00:00
|
|
|
<nav id="co-l-footer" class="page-footer hidden-xs">
|
|
|
|
<div class="col-md-8">
|
|
|
|
<ul>
|
2017-03-29 20:56:21 +00:00
|
|
|
<li><span class="copyright">{{ version_number }} ©2014-{{ current_year }} CoreOS, Inc.</span></li>
|
2014-08-12 01:47:04 +00:00
|
|
|
<li quay-require="['BILLING']"><a href="/tos" target="_self">Terms</a></li>
|
|
|
|
<li quay-require="['BILLING']"><a href="/privacy" target="_self">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>
|
2014-10-22 18:49:33 +00:00
|
|
|
<li><b><a href="{{ contact_href or '/contact/' }}" target="_self">Contact</a></b></li>
|
2015-02-24 22:41:30 +00:00
|
|
|
<li quay-require="['BILLING']">
|
|
|
|
<span class="quay-service-status"></span>
|
|
|
|
</li>
|
2014-08-12 01:47:04 +00:00
|
|
|
</ul>
|
2014-01-06 22:15:46 +00:00
|
|
|
</div>
|
2014-08-12 01:47:04 +00:00
|
|
|
<div class="col-md-4">
|
2016-04-28 18:38:22 +00:00
|
|
|
<a href="https://coreos.com" ng-safenewtab><img src="/static/img/coreos.svg"></a>
|
2014-08-12 01:47:04 +00:00
|
|
|
</div>
|
|
|
|
</nav>
|
2013-11-20 21:17:47 +00:00
|
|
|
|
2013-12-26 22:45:16 +00:00
|
|
|
<!-- 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>
|
2013-11-20 21:17:47 +00:00
|
|
|
</div>
|
2013-12-26 22:45:16 +00:00
|
|
|
<div class="modal-body">
|
2015-11-02 19:16:04 +00:00
|
|
|
Something went wrong when trying to load Quay! Please report this to <a href="mailto:support@quay.io">support@quay.io</a>.
|
2013-12-26 22:45:16 +00:00
|
|
|
</div>
|
|
|
|
<div class="modal-footer">
|
|
|
|
</div>
|
|
|
|
</div><!-- /.modal-content -->
|
|
|
|
</div><!-- /.modal-dialog -->
|
|
|
|
</div><!-- /.modal -->
|
2013-10-22 19:51:57 +00:00
|
|
|
|
2014-04-09 00:33:20 +00:00
|
|
|
{% if show_chat %}
|
2016-08-08 22:18:35 +00:00
|
|
|
<script type="text/javascript">
|
|
|
|
window._chatlio = window._chatlio||[];
|
|
|
|
!function(){ var t=document.getElementById("chatlio-widget-embed");if(t&&window.ChatlioReact&&_chatlio.init)return void _chatlio.init(t,ChatlioReact);for(var e=function(t){return function(){_chatlio.push([t].concat(arguments)) }},i=["configure","identify","track","show","hide","isShown","isOnline"],a=0;a<i.length;a++)_chatlio[i[a]]||(_chatlio[i[a]]=e(i[a]));var n=document.createElement("script"),c=document.getElementsByTagName("script")[0];n.id="chatlio-widget-embed",n.src="https://w.chatlio.com/w.chatlio-widget.js",n.async=!0,n.setAttribute("data-embed-version","2.1");
|
|
|
|
n.setAttribute('data-widget-id','b65028b3-f2f1-4cba-6e93-2aa66990e3e4');
|
|
|
|
c.parentNode.insertBefore(n,c);
|
|
|
|
}();
|
|
|
|
</script>
|
2014-04-09 00:33:20 +00:00
|
|
|
{% endif %}
|
2013-11-20 21:17:47 +00:00
|
|
|
|
2016-04-06 20:15:26 +00:00
|
|
|
{% 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 %}
|
|
|
|
|
2014-02-06 02:00:04 +00:00
|
|
|
<div class="angular-tour-ui" inline="false" tour="angular_tour_current"></div>
|
2013-09-23 16:37:40 +00:00
|
|
|
</body>
|
2013-10-14 21:50:07 +00:00
|
|
|
</html>
|