<!DOCTYPE html>
<meta charset="utf-8"/>
<head>
    <script src="http://code.jquery.com/jquery-latest.min.js"
            type="text/javascript"></script>
    <!-- to be able to handle show/hide links in all subclasses -->
    <script>

    $(function() {
        $("a#show").bind("click", function() {
            $("#message").toggle();
        });
    });









    </script>
    <script>
$(document).ready(function() {
     $("#menu-toggle").click(function(e) {
        e.preventDefault();
        $("#wrapper").toggleClass("toggled");
        });
    });







    </script>
    <!-- bootstrap -->
    <script src="{{ url_for('static', filename='bootstrap/js/bootstrap.min.js') }}"></script>
    <link href="{{ url_for('static', filename='bootstrap/css/bootstrap.min.css') }}" rel="stylesheet">
    <link rel="stylesheet" href="{{ url_for('static', filename='styles.css') }}" media="all"/>

    <div id="heading">
        <span id="loginSpan">
            {% if current_user.is_authenticated() %}
                <label>{{ _('logged in as') }} {{current_user.username }}</label> (<a href="{{ url_for ('logout') }}">logout</a>)
            {% else %}
                <a href="{{ url_for ('login') }}">{{ _('login') }}</a> / <a href="{{ url_for ('signup') }}">{{ _('sign
            up') }}</a>
            {% endif %}
        </span>
        <a href="#menu-toggle" id="menu-toggle">
            <img id="logo" src="{{ url_for('static', filename='korap-logo.svg') }}" alt="IDS Mannheim Logo"
                 class="img-rounded">
        </a>
        <h2>{{ _("korap.title") }}</h2>
    </div>
    {% block head %}
    {% endblock %}
</head>
<body>
<div id="wrapper" class="toggled">
    <!-- sidebar  -->
    {% block sidebar %}
    <div id="sidebar-wrapper">
        <ul class="sidebar-nav nav">
            <li class="sidebar-brand"></li>
            <li class="active"><a href="/">Home</a></li>
            <li><a href="{{ url_for('profile')}}">User Management</a></li>
            <li><a href="{{ url_for('index')}}">Resource Management</a></li>
            <li><a href="{{ url_for('index')}}">OAuth-Token Management</a></li>
            <li><a href="{{ url_for('search')}}">Query Analysis</a></li>
            <li><a href="{{ url_for('index')}}">Query Serialization</a></li>
        </ul>
    </div>
    {% endblock %}
    <div id="page-content-wrapper">
        <div class="container-fluid">
            <div class="row">
                <div class="col-md-11 content">
                    {% if error %}
                    <p class="warning">{{ error }}</p>
                    {% else %}
                    {% block content %}{% endblock %}
                    {% endif %}
                </div>
            </div>
        </div>
    </div>
</div>


</body>
<footer>
    <!-- /.col-xs-12 main -->
    <a class="footer" href="#">Impressum</a>
    <a class="footer" href="#">About</a>
    <a class="footer" href="#">Contact</a>

</footer>
</body>
</html>
