209 lines
6.5 KiB
HTML
209 lines
6.5 KiB
HTML
|
{% macro modal(title, btn_label=None, btn_class="btn-primary") %}
|
||
|
{% set key = title.replace(' ', '-').lower() %}
|
||
|
{% set btn_label = btn_label or title %}
|
||
|
<div class="modal fade" id="{{key}}-dialog" tabindex="-1" role="dialog" aria-labelledby="{{key}}-label"
|
||
|
aria-hidden="true">
|
||
|
<div class="modal-dialog">
|
||
|
<div class="modal-content">
|
||
|
<div class="modal-header">
|
||
|
<button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">×</span><span
|
||
|
class="sr-only">Close</span></button>
|
||
|
<h4 class="modal-title" id="{{key}}-label">{{title}}</h4>
|
||
|
</div>
|
||
|
<div class="modal-body">
|
||
|
{{ caller() }}
|
||
|
</div>
|
||
|
<div class="modal-footer">
|
||
|
<button type="button" class="btn btn-default" data-dismiss="modal">Cancel</button>
|
||
|
<button type="button" class="btn {{btn_class}}" data-dismiss="modal" data-dismiss="modal">{{btn_label}}</button>
|
||
|
</div>
|
||
|
</div>
|
||
|
</div>
|
||
|
</div>
|
||
|
{% endmacro %}
|
||
|
|
||
|
|
||
|
<!DOCTYPE HTML>
|
||
|
<html>
|
||
|
|
||
|
<head>
|
||
|
<meta charset="utf-8">
|
||
|
|
||
|
<title>{% block title %}Sandbox{% endblock %}</title>
|
||
|
<meta http-equiv="X-UA-Compatible" content="chrome=1">
|
||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||
|
|
||
|
{% block stylesheet %}
|
||
|
<link rel="stylesheet" href="../static/css/style.min.css" type="text/css" />
|
||
|
<link rel="stylesheet" href="../static/css/patternfly.css" type="text/css">
|
||
|
<link rel="stylesheet" href="../static/components/font-awesome/css/font-awesome.min.css" type="text/css">
|
||
|
{% endblock %}
|
||
|
{% block favicon %}
|
||
|
<link rel="icon" href="../static/favicon.ico" type="image/x-icon">
|
||
|
{% endblock %}
|
||
|
{% block scripts %}
|
||
|
<script src="../static/components/md-block/md-block.js" type="module" charset="utf-8"></script>
|
||
|
<script src="../static/components/requirejs/require.js" type="text/javascript" charset="utf-8"></script>
|
||
|
<script src="../static/components/requirejs/require.js" type="text/javascript" charset="utf-8"></script>
|
||
|
<script src="../static/components/jquery/dist/jquery.min.js" type="text/javascript" charset="utf-8"></script>
|
||
|
<script src="../static/components/bootstrap/dist/js/bootstrap.min.js" type="text/javascript" charset="utf-8"></script>
|
||
|
|
||
|
{% endblock %}
|
||
|
<script>
|
||
|
require.config({
|
||
|
{% if version_hash %}
|
||
|
urlArgs: "v={{version_hash}}",
|
||
|
{% endif %}
|
||
|
baseUrl: '{{static_url("js", include_version=False)}}',
|
||
|
paths: {
|
||
|
components: '../components',
|
||
|
jquery: '../components/jquery/dist/jquery.min',
|
||
|
bootstrap: '../components/bootstrap/dist/js/bootstrap.min',
|
||
|
moment: "../components/moment/moment",
|
||
|
},
|
||
|
shim: {
|
||
|
bootstrap: {
|
||
|
deps: ["jquery"],
|
||
|
exports: "bootstrap"
|
||
|
},
|
||
|
}
|
||
|
});
|
||
|
</script>
|
||
|
|
||
|
<script type="text/javascript">
|
||
|
window.jhdata = {
|
||
|
base_url: "{{base_url}}",
|
||
|
prefix: "{{prefix}}",
|
||
|
{% if user %}
|
||
|
user: "{{user.json_escaped_name}}",
|
||
|
{% endif %}
|
||
|
{% if admin_access %}
|
||
|
admin_access: true,
|
||
|
{% else %}
|
||
|
admin_access: false,
|
||
|
{% endif %}
|
||
|
{% if not no_spawner_check and user and user.spawner.options_form %}
|
||
|
options_form: true,
|
||
|
{% else %}
|
||
|
options_form: false,
|
||
|
{% endif %}
|
||
|
}
|
||
|
</script>
|
||
|
|
||
|
{% block meta %}
|
||
|
{% endblock %}
|
||
|
|
||
|
</head>
|
||
|
|
||
|
<body>
|
||
|
|
||
|
<noscript>
|
||
|
<div id='noscript'>
|
||
|
JupyterHub requires JavaScript.<br>
|
||
|
Please enable it to proceed.
|
||
|
</div>
|
||
|
</noscript>
|
||
|
|
||
|
{% block nav_bar %}
|
||
|
<div class="pf-c-tabs" id="default-tabs">
|
||
|
<button class="pf-c-tabs__scroll-button" type="button" disabled aria-hidden="true" aria-label="Scroll left">
|
||
|
<i class="fas fa-angle-left" aria-hidden="true"></i>
|
||
|
</button>
|
||
|
<ul class="pf-c-tabs__list">
|
||
|
<li class="pf-c-tabs__item">
|
||
|
<a class="pf-c-page__header-brand-link" href="{{logo_url or base_url}}"><img class="pf-c-brand"
|
||
|
style="max-height: 28px;margin:0px 5px 0px 5px" src='../static/images/sandbox-b-t.svg' alt="Sandbox"></a>
|
||
|
|
||
|
</li>
|
||
|
<li class="pf-c-tabs__item ">
|
||
|
|
||
|
<button type="button" class="pf-c-tabs__link" onclick="window.location.href='{{logo_url or base_url}}'">
|
||
|
<span class="pf-c-tabs__item-text">Sandbox</span>
|
||
|
</button>
|
||
|
{% if user %}
|
||
|
|
||
|
{% block nav_bar_left_items %}
|
||
|
<li class="pf-c-tabs__item">
|
||
|
<button type="button" class="pf-c-tabs__link" onclick="window.location.href='{{base_url}}home'">
|
||
|
<span class="pf-c-tabs__item-text">Home</span>
|
||
|
</button>
|
||
|
</li>
|
||
|
<li class="pf-c-tabs__item">
|
||
|
<button type="button" class="pf-c-tabs__link" onclick="window.location.href='{{base_url}}token'">
|
||
|
<span class="pf-c-tabs__item-text">Token</span>
|
||
|
</button>
|
||
|
</li>
|
||
|
|
||
|
{% if 'admin-ui' in parsed_scopes %}
|
||
|
<li class="pf-c-tabs__item">
|
||
|
<button type="button" class="pf-c-tabs__link" onclick="window.location.href='{{base_url}}admin'">
|
||
|
<span class="pf-c-tabs__item-text">Admin</span>
|
||
|
</button>
|
||
|
</li>
|
||
|
{% endif %}
|
||
|
{% if services %}
|
||
|
<li class="dropdown">
|
||
|
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true"
|
||
|
aria-expanded="false">Services<span class="caret"></span></a>
|
||
|
<ul class="dropdown-menu">
|
||
|
{% for service in services %}
|
||
|
{% block service scoped %}
|
||
|
<li><a class="dropdown-item" href="{{service.prefix}}">{{service.name}}</a></li>
|
||
|
{% endblock %}
|
||
|
{% endfor %}
|
||
|
</ul>
|
||
|
</li>
|
||
|
{% endif %}
|
||
|
{% endblock %}
|
||
|
|
||
|
{% endif %}
|
||
|
</ul>
|
||
|
<div class="pf-c-page__header-tools">
|
||
|
{% block login_widget %}
|
||
|
<span id="login_widget">
|
||
|
{% if user %}
|
||
|
<div class="pf-c-page__header-tools-item">{{user.name}}</div>
|
||
|
<div class="pf-c-page__header-tools-item"> <a id="logout" role="button"
|
||
|
class="navbar-btn btn-sm btn btn-default" href="{{logout_url}}" style="border-color: #fff;font-size: 15px;">
|
||
|
<i aria-hidden="true" class="fa fa-sign-out"></i></a></div>
|
||
|
|
||
|
{% endif %}
|
||
|
</span>
|
||
|
{% endblock %}
|
||
|
</div>
|
||
|
</div>
|
||
|
|
||
|
|
||
|
{% endblock %}
|
||
|
|
||
|
|
||
|
{% block announcement %}
|
||
|
{% if announcement %}
|
||
|
<div class="container text-center announcement alert alert-warning">
|
||
|
{{ announcement | safe }}
|
||
|
</div>
|
||
|
{% endif %}
|
||
|
{% endblock %}
|
||
|
|
||
|
|
||
|
|
||
|
{% block main %}
|
||
|
|
||
|
{% endblock %}
|
||
|
|
||
|
{% block footer %}
|
||
|
|
||
|
{% endblock %}
|
||
|
|
||
|
{% call modal('Error', btn_label='OK') %}
|
||
|
<div class="ajax-error">
|
||
|
The error
|
||
|
</div>
|
||
|
{% endcall %}
|
||
|
|
||
|
{% block script %}
|
||
|
{% endblock %}
|
||
|
|
||
|
</body>
|
||
|
|
||
|
</html>
|