2022-10-08 23:26:48 +02:00
<!DOCTYPE html>
2019-12-08 22:43:49 +01:00
< html >
< head >
{% if title %}
< title > {{ title }}< / title >
{% endif %}
2022-10-09 00:40:28 +02:00
< link rel = "icon" type = "image/png" href = "{{ theme_url('favicon.png') }}?{{ cache_bust }}" / >
< link rel = "stylesheet" type = "text/css" href = "{{ theme_url('site.css') }}?{{ cache_bust }}" / >
< link rel = "stylesheet" type = "text/css" href = "{{ theme_url('color.css') }}?{{ cache_bust }}" / >
< link rel = "stylesheet" type = "text/css" href = "{{ theme_url('form.css') }}?{{ cache_bust }}" / >
< link rel = "stylesheet" type = "text/css" href = "{{ theme_url('section.css') }}?{{ cache_bust }}" / >
< link rel = "stylesheet" type = "text/css" href = "{{ theme_url('table.css') }}?{{ cache_bust }}" / >
< link rel = "stylesheet" type = "text/css" href = "{{ url_for('static', filename='jquery-confirm.css') }}?{{ cache_bust }}" / >
2019-12-08 22:43:49 +01:00
< meta name = "viewport" content = "width=device-width, initial-scale=1" >
2022-10-09 00:40:28 +02:00
< script type = "text/javascript" src = "{{ url_for('static', filename='chart.bundle.min.js') }}?{{ cache_bust }}" > < / script >
< script type = "text/javascript" src = "{{ url_for('static', filename='date.format.min.js') }}?{{ cache_bust }}" > < / script >
< script type = "text/javascript" src = "{{ url_for('static', filename='jquery-1.12.4.min.js') }}?{{ cache_bust }}" > < / script >
< script type = "text/javascript" src = "{{ url_for('static', filename='jquery-confirm.js') }}?{{ cache_bust }}" > < / script >
< script type = "text/javascript" src = "{{ url_for('static', filename='jquery.touchSwipe.min.js') }}?{{ cache_bust }}" > < / script >
< script type = "text/javascript" src = "{{ url_for('static', filename='tinynav.js') }}?{{ cache_bust }}" > < / script >
< script type = "text/javascript" src = "{{ url_for('static', filename='classnames.min.js') }}?{{ cache_bust }}" > < / script >
< script defer type = "text/javascript" src = "{{ url_for('static', filename='react.min.js') }}?{{ cache_bust }}" > < / script >
< script defer type = "text/javascript" src = "{{ url_for('static', filename='react-dom.min.js') }}?{{ cache_bust }}" > < / script >
< script defer type = "text/javascript" src = "{{ url_for('static', filename='create-react-class.min.js') }}?{{ cache_bust }}" > < / script >
< script defer type = "text/javascript" src = "{{ url_for('static', filename='ajax.js') }}?{{ cache_bust }}" > < / script >
< script defer type = "text/javascript" src = "{{ url_for('static', filename='messages.js') }}?{{ cache_bust }}" > < / script >
< script defer type = "text/javascript" src = "{{ url_for('static', filename='history.js') }}?{{ cache_bust }}" > < / script >
< script defer type = "text/javascript" src = "{{ url_for('static', filename='iidx-options.js') }}?{{ cache_bust }}" > < / script >
< script defer type = "text/javascript" src = "{{ url_for('static', filename='ddr-options.js') }}?{{ cache_bust }}" > < / script >
< script defer type = "text/javascript" src = "{{ url_for('static', filename='link.js') }}?{{ cache_bust }}" > < / script >
< script defer type = "text/javascript" src = "{{ url_for('static', filename='merge.js') }}?{{ cache_bust }}" > < / script >
2019-12-08 22:43:49 +01:00
{% for entry in components %}
2022-10-09 00:40:28 +02:00
< script defer type = "text/javascript" src = "{{ url_for('jsx', filename=entry) }}?{{ cache_bust }}" > < / script >
2019-12-08 22:43:49 +01:00
{% endfor %}
2021-08-20 20:10:35 +02:00
{% block scripts %}{% endblock %}
< / head >
< body >
{% if show_navigation %}
< div class = "navigation" >
< ul class = "navigation" id = "nav" >
{% for entry in navigation %}
< li class = "{{
'right' if entry.get('right_justify') else 'left' }}
{{ 'selected' if entry['uri'] == current_path or ((current_path.startswith(entry.get('base_uri', '/nonexistent') or '/nonexistent')) and not (any(entry.get('entries'), 'uri', current_path))) else ''
}}">
{% with uri = entry.get('uri') %}
{% with label = entry.get('label') %}
{% if label %}
{% if uri %}
< a
class="{{ 'current' if (entry['uri'] == current_path) or (any(entry.get('entries'), 'uri', current_path)) or (current_path.startswith(entry.get('base_uri', '/nonexistent') or '/nonexistent')) else ''}} {{entry['gamecode']}} border"
href="{{ entry['uri'] }}"
>{{ entry['label'] }}< / a >
{% else %}
< a
class="cursor {{ 'current' if (entry['uri'] == current_path) or (any(entry.get('entries'), 'uri', current_path)) or (current_path.startswith(entry.get('base_uri', '/nonexistent') or '/nonexistent')) else ''}} {{entry['gamecode']}} border"
>{{ entry['label'] }}< / a >
{% endif %}
{% else %}
< div class = "separator" > < / div >
{% endif %}
{% endwith %}
{% endwith %}
{% with subentries = entry.get('entries') %}
{% if subentries %}
< ul class = "navigation_sub" >
{% for subentry in subentries %}
< li class = "{{ 'selected' if subentry['uri'] == current_path else '' }}" >
< a
class="{{ 'current' if (subentry['uri'] == current_path) else '' }}"
href="{{ subentry['uri'] }}"
>{{ subentry['label'] }}< / a >
< / li >
{% endfor %}
< / ul >
{% endif %}
{% endwith %}
< / li >
{% endfor %}
< / ul >
< / div >
{% endif %}
< div class = "messages-anchor" > < / div >
< div class = "messages" >
< ul class = "messages" >
{% with messages = get_flashed_messages(with_categories=true) %}
{% if messages %}
{% for category, message in messages %}
< li class = "{{ category }}" >
{{ message }}
< div class = "close" > ✕ < / div >
< / li >
{% endfor %}
{% endif %}
{% endwith %}
< / ul >
< / div >
< div class = "container" >
{% block content %}{% endblock %}
< / div >
2019-12-08 22:43:49 +01:00
< script type = "text/javascript" >
$(function () {
$("#nav").tinyNav();
});
< / script >
< script type = "text/javascript" >
window.floaterrors = function(skipheightadjust) {
if($(this).scrollTop()>$('div.messages-anchor').position().top){
if (!window.floated) {
var width = $('div.messages').width();
var height = $('div.messages').height();
if (height > 0) {
$('div.messages').css({position:'fixed',top:0, width: width, 'z-index': 1});
if (skipheightadjust) {
$('div.messages-anchor').css({height: ''});
} else {
$('div.messages-anchor').css({height: height + 10});
}
window.floated = true;
}
}
} else {
$('div.messages').css({position:'', width: '', top: ''});
$('div.messages-anchor').css({height: ''});
window.floated = false;
}
};
$(window).scroll(function() { window.floaterrors(false); });
$(document).on('click', 'div.close', function(event) {
$(event.target).parent().hide();
if (window.floated) {
var height = $('div.messages').height();
if (height > 0) {
$('div.messages-anchor').css({height: height + 10});
} else {
$('div.messages-anchor').css({height: ''});
}
}
});
< / script >
< script type = "text/javascript" >
window.uris = {};
{% if links is defined %}
{% for name, link in links.items() %}
window.uris[{{name|tojson|safe}}] = {{ link|tojson|safe }};
{% endfor %}
{% endif %}
{% if inits is defined %}
{% for name, val in inits.items() %}
window.{{name}} = {{ val|tojson|safe }};
{% endfor %}
{% endif %}
2022-12-03 23:02:37 +01:00
window.assets = {{ assets|tojson|safe }};
2019-12-08 22:43:49 +01:00
< / script >
< script type = "text/javascript" >
$(function () {
if( /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent) ) {
$(".container").swipe(
{
swipeLeft: function(event) {
$("button.next").trigger("click");
event.preventDefault();
},
swipeRight: function(event) {
$("button.prev").trigger("click");
event.preventDefault();
},
threshold: 30,
fingers: 'all',
}
);
}
});
< / script >
< / body >
< / html >