{% from 'modal_dialogs.html' import restrict_modal, delete_book %} <!DOCTYPE html> <html lang="{{ g.user.locale }}"> <head> <title>{{instance}} | {{title}}</title> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> <meta name="apple-mobile-web-app-capable" content="yes"> <!-- Bootstrap --> <link rel="apple-touch-icon" sizes="140x140" href="{{ url_for('static', filename='favicon.ico') }}"> <link rel="shortcut icon" href="{{ url_for('static', filename='favicon.ico') }}"> <link href="{{ url_for('static', filename='css/libs/bootstrap.min.css') }}" rel="stylesheet" media="screen"> {% block header %}{% endblock %} <link href="{{ url_for('static', filename='css/style.css') }}" rel="stylesheet" media="screen"> <link href="{{ url_for('static', filename='css/upload.css') }}" rel="stylesheet" media="screen"> {% if g.current_theme == 1 %} <link href="{{ url_for('static', filename='css/caliBlur.min.css') }}" rel="stylesheet" media="screen"> <link href="{{ url_for('static', filename='css/caliBlur_override.css') }}" rel="stylesheet" media="screen"> {% endif %} <!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries --> <!-- WARNING: Respond.js doesn't work if you view the page via file:// --> <!--[if lt IE 9]> <script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script> <script src="https://oss.maxcdn.com/libs/respond.js/1.3.0/respond.min.js"></script> <![endif]--> </head> <body class="{{ page }} {{ bodyClass }}" data-text="{{_('Home')}}" data-textback="{{_('Back')}}"> <!-- Static navbar --> <div class="navbar navbar-default navbar-static-top" role="navigation"> <div class="container-fluid"> <div class="navbar-header"> <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse"> <span class="sr-only">{{_('Toggle Navigation')}}</span> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </button> <a class="navbar-brand" href="{{url_for('web.index')}}">{{instance}}</a> </div> {% if g.user.is_authenticated or g.allow_anonymous %} <form class="navbar-form navbar-left" role="search" action="{{url_for('web.search')}}" method="GET"> <div class="form-group input-group input-group-sm"> <label for="query" class="sr-only">{{_('Search')}}</label> <input type="text" class="form-control" id="query" name="query" placeholder="{{_('Search Library')}}" value="{{searchterm}}"> <span class="input-group-btn"> <button type="submit" id="query_submit" class="btn btn-default">{{_('Search')}}</button> </span> </div> </form> {% endif %} <div class="navbar-collapse collapse"> {% if g.user.is_authenticated or g.allow_anonymous %} <ul class="nav navbar-nav "> <li><a href="{{url_for('web.advanced_search')}}" id="advanced_search"><span class="glyphicon glyphicon-search"></span><span class="hidden-sm"> {{_('Advanced Search')}}</span></a></li> </ul> {% endif %} <ul class="nav navbar-nav navbar-right" id="main-nav"> {% if g.user.is_authenticated or g.allow_anonymous %} {% if g.user.role_upload() or g.user.role_admin()%} {% if g.allow_upload %} <li> <form id="form-upload" class="navbar-form" action="{{ url_for('editbook.upload') }}" method="post" enctype="multipart/form-data"> <div class="form-group"> <span class="btn btn-default btn-file">{{_('Upload')}}<input id="btn-upload" name="btn-upload" type="file" accept="{% for format in accept %}.{{format}}{{ ',' if not loop.last }}{% endfor %}" multiple></span> </div> </form> </li> {% endif %} {% endif %} {% if not g.user.is_anonymous %} <li><a id="top_tasks" href="{{url_for('web.get_tasks_status')}}"><span class="glyphicon glyphicon-tasks"></span> <span class="hidden-sm">{{_('Tasks')}}</span></a></li> {% endif %} {% if g.user.role_admin() %} <li><a id="top_admin" data-text="{{_('Settings')}}" href="{{url_for('admin.admin')}}"><span class="glyphicon glyphicon-dashboard"></span> <span class="hidden-sm">{{_('Admin')}}</span></a></li> {% endif %} <li><a id="top_user" data-text="{{_('Account')}}" href="{{url_for('web.profile')}}"><span class="glyphicon glyphicon-user"></span> <span class="hidden-sm">{{g.user.nickname}}</span></a></li> {% if not g.user.is_anonymous %} <li><a id="logout" href="{{url_for('web.logout')}}"><span class="glyphicon glyphicon-log-out"></span> <span class="hidden-sm">{{_('Logout')}}</span></a></li> {% endif %} {% endif %} {% if g.allow_registration and not g.user.is_authenticated %} <li><a id="login" href="{{url_for('web.login')}}"><span class="glyphicon glyphicon-log-in"></span> {{_('Login')}}</a></li> <li><a id="register" href="{{url_for('web.register')}}"><span class="glyphicon glyphicon-user"></span> {{_('Register')}}</a></li> {% endif %} </ul> </div><!--/.nav-collapse --> </div> </div> {% for message in get_flashed_messages(with_categories=True) %} {%if message[0] == "error" %} <div class="row-fluid text-center" style="margin-top: -20px;"> <div id="flash_alert" class="alert alert-danger">{{ message[1] }}</div> </div> {%endif%} {%if message[0] == "info" %} <div class="row-fluid text-center" style="margin-top: -20px;"> <div id="flash_info" class="alert alert-info">{{ message[1] }}</div> </div> {%endif%} {%if message[0] == "warning" %} <div class="row-fluid text-center" style="margin-top: -20px;"> <div id="flash_warning" class="alert alert-warning">{{ message[1] }}</div> </div> {%endif%} {%if message[0] == "success" %} <div class="row-fluid text-center" style="margin-top: -20px;"> <div id="flash_success" class="alert alert-success">{{ message[1] }}</div> </div> {%endif%} {% endfor %} {% if g.current_theme == 1 %} <div id="loader" hidden="true"> <center> <h3>{{_('Uploading...')}}</h3> <span>{{_("Please do not refresh the page")}}</span>. </center> </div> {%endif%} <div class="container-fluid"> <div class="row-fluid"> {% if g.user.is_authenticated or g.allow_anonymous %} <div class="col-sm-2"> <nav class="navigation"> <ul class="list-unstyled" id="scnd-nav" intent in-standard-append="nav.navigation" in-mobile-after="#main-nav" in-mobile-class="nav navbar-nav"> <li class="nav-head hidden-xs">{{_('Browse')}}</li> {% for element in sidebar %} {% if g.user.check_visibility(element['visibility']) and element['public'] %} <li id="nav_{{element['id']}}" {% if page == element['page'] %}class="active"{% endif %}><a href="{{url_for(element['link'], data=element['page'], sort='new')}}"><span class="glyphicon {{element['glyph']}}"></span>{{_(element['text'])}}</a></li> {% endif %} {% endfor %} {% if g.user.is_authenticated or g.allow_anonymous %} <li class="nav-head hidden-xs public-shelves">{{_('Shelves')}}</li> {% for shelf in g.shelves_access %} <li><a href="{{url_for('shelf.show_shelf', shelf_id=shelf.id)}}"><span class="glyphicon glyphicon-list shelf"></span>{{shelf.name|shortentitle(40)}}{% if shelf.is_public == 1 %} {{_('(Public)')}}{% endif %}</a></li> {% endfor %} <!--li class="nav-head hidden-xs your-shelves">{{_('Your Shelves')}}</li> {% for shelf in g.user.shelf %} <li><a href="{{url_for('shelf.show_shelf', shelf_id=shelf.id)}}"><span class="glyphicon glyphicon-list private_shelf"></span>{{shelf.name|shortentitle(40)}}{% if shelf.is_public == 1 %} {{_('(Public)')}}{% endif %}</a></li> {% endfor %}--> {% if not g.user.is_anonymous %} <li id="nav_createshelf" class="create-shelf"><a href="{{url_for('shelf.create_shelf')}}">{{_('Create a Shelf')}}</a></li> <li id="nav_about" {% if page == 'stat' %}class="active"{% endif %}><a href="{{url_for('about.stats')}}"><span class="glyphicon glyphicon-info-sign"></span> {{_('About')}}</a></li> {% endif %} {% endif %} </ul> </nav> </div> {% endif %} <div class="col-sm-10"> {% block body %}{% endblock %} {% if pagination and (pagination.has_next or pagination.has_prev) %} <div class="pagination"> {% if pagination.has_prev %} <li class="page-item page-next"><a class="page-link" aria-label="next page" href="{{ (pagination.page - 1)|url_for_other_page }}">« {{_('Previous')}}</a></li> {% endif %} {% for page in pagination.iter_pages() %} {% if page %} {% if page != pagination.page %} <li class="page-item"><a class="page-link" aria-label="to page {{ page }}" href="{{ (page)|url_for_other_page }}">{{ page }}</a></li> {% else %} <li class="page-item active"><a class="page-link" aria-label="to page {{ page }}" href="{{ (page)|url_for_other_page }}">{{ page }}</a></li> {% endif %} {% else %} <li class="page-item page-last-separator disabled"><a class="page-link" aria-label="">…</a></li> {% endif %} {% endfor %} {% if pagination.has_next %} <li class="page-item page-next"><a class="page-link" aria-label="next page" href="{{ (pagination.page + 1)|url_for_other_page }}">{{_('Next')}} »</a></li> {% endif %} </div> {% endif %} </div> </div> <div class="modal fade" id="bookDetailsModal" tabindex="-1" role="dialog" aria-labelledby="bookDetailsModalLabel"> <div class="modal-dialog modal-lg" role="document"> <div class="modal-content"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button> <h4 class="modal-title" id="bookDetailsModalLabel">{{_('Book Details')}}</h4> </div> <div class="modal-body">...</div> <div class="modal-footer"> <button type="button" class="btn btn-default" data-dismiss="modal">{{_('Close')}}</button> </div> </div> </div> </div> {% block modal %}{% endblock %} <!-- jQuery (necessary for Bootstrap's JavaScript plugins) --> <script src="{{ url_for('static', filename='js/libs/jquery.min.js') }}"></script> <!-- Include all compiled plugins (below), or include individual files as needed --> <script src="{{ url_for('static', filename='js/libs/bootstrap.min.js') }}"></script> <script src="{{ url_for('static', filename='js/libs/underscore-min.js') }}"></script> <script src="{{ url_for('static', filename='js/libs/intention.min.js') }}"></script> <script src="{{ url_for('static', filename='js/libs/context.min.js') }}"></script> <script src="{{ url_for('static', filename='js/libs/plugins.js') }}"></script> <script src="{{ url_for('static', filename='js/libs/jquery.form.js') }}"></script> <script src="{{ url_for('static', filename='js/main.js') }}"></script> <script src="{{ url_for('static', filename='js/uploadprogress.js') }}"> </script> {% if g.current_theme == 1 %} <script src="{{ url_for('static', filename='js/libs/jquery.visible.min.js') }}"></script> <script src="{{ url_for('static', filename='js/libs/compromise.min.js') }}"></script> <script src="{{ url_for('static', filename='js/libs/readmore.min.js') }}"></script> <script src="{{ url_for('static', filename='js/caliBlur.js') }}"></script> {% endif %} <script type="text/javascript"> $(function() { $("#form-upload").uploadprogress({ redirect_url: "{{ url_for('web.index')}}", uploadedMsg: "{{_('Upload done, processing, please wait...')}}", modalTitle: "{{_('Uploading...')}}", modalFooter: "{{_('Close')}}", modalTitleFailed: "{{_('Error')}}" }); $("#btn-upload").change(function() { $("#form-upload").submit(); }); $(document).ready(function() { var inp = $('#query').first() var val = inp.val() if (val.length) { inp.val('').blur().focus().val(val) } }); }); </script> {% block js %}{% endblock %} </body> </html>