2020-06-08 15:34:03 +00:00
{% from 'modal_dialogs.html' import restrict_modal, delete_book %}
2015-08-02 18:59:11 +00:00
<!DOCTYPE html>
2017-07-29 03:03:23 +00:00
< html lang = "{{ g.user.locale }}" >
2015-08-02 18:59:11 +00:00
< head >
2017-01-22 20:30:36 +00:00
< title > {{instance}} | {{title}}< / title >
2015-08-02 18:59:11 +00:00
< 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 -->
2018-01-14 13:15:07 +00:00
< link rel = "apple-touch-icon" sizes = "140x140" href = "{{ url_for('static', filename='favicon.ico') }}" >
2016-03-27 21:36:51 +00:00
< link rel = "shortcut icon" href = "{{ url_for('static', filename='favicon.ico') }}" >
2017-02-07 18:11:18 +00:00
< link href = "{{ url_for('static', filename='css/libs/bootstrap.min.css') }}" rel = "stylesheet" media = "screen" >
2020-01-05 15:43:48 +00:00
{% block header %}{% endblock %}
2015-08-02 18:59:11 +00:00
< link href = "{{ url_for('static', filename='css/style.css') }}" rel = "stylesheet" media = "screen" >
2019-02-16 09:05:51 +00:00
< link href = "{{ url_for('static', filename='css/upload.css') }}" rel = "stylesheet" media = "screen" >
2019-01-11 07:36:28 +00:00
{% if g.current_theme == 1 %}
2018-12-27 09:53:19 +00:00
< link href = "{{ url_for('static', filename='css/caliBlur.min.css') }}" rel = "stylesheet" media = "screen" >
2020-04-13 21:15:44 +00:00
< link href = "{{ url_for('static', filename='css/caliBlur_override.css') }}" rel = "stylesheet" media = "screen" >
2018-04-02 08:09:19 +00:00
{% endif %}
2015-08-02 18:59:11 +00:00
<!-- 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 >
2020-04-13 21:15:44 +00:00
< body class = "{{ page }} {{ bodyClass }}" data-text = "{{_('Home')}}" data-textback = "{{_('Back')}}" >
2015-08-02 18:59:11 +00:00
<!-- 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" >
2020-02-03 03:22:00 +00:00
< span class = "sr-only" > {{_('Toggle Navigation')}}< / span >
2015-08-02 18:59:11 +00:00
< span class = "icon-bar" > < / span >
< span class = "icon-bar" > < / span >
< span class = "icon-bar" > < / span >
< / button >
2019-07-13 18:45:48 +00:00
< a class = "navbar-brand" href = "{{url_for('web.index')}}" > {{instance}}< / a >
2015-08-02 18:59:11 +00:00
< / div >
2019-07-13 18:45:48 +00:00
{% if g.user.is_authenticated or g.allow_anonymous %}
< form class = "navbar-form navbar-left" role = "search" action = "{{url_for('web.search')}}" method = "GET" >
2017-02-18 09:38:16 +00:00
< div class = "form-group input-group input-group-sm" >
2017-07-29 03:03:43 +00:00
< label for = "query" class = "sr-only" > {{_('Search')}}< / label >
2020-04-19 11:12:02 +00:00
< input type = "text" class = "form-control" id = "query" name = "query" placeholder = "{{_('Search Library')}}" value = "{{searchterm}}" >
2017-02-18 09:38:16 +00:00
< span class = "input-group-btn" >
2020-02-23 12:27:36 +00:00
< button type = "submit" id = "query_submit" class = "btn btn-default" > {{_('Search')}}< / button >
2017-02-18 09:38:16 +00:00
< / span >
< / div >
< / form >
{% endif %}
2015-08-02 18:59:11 +00:00
< div class = "navbar-collapse collapse" >
2019-07-13 18:45:48 +00:00
{% if g.user.is_authenticated or g.allow_anonymous %}
2015-08-02 18:59:11 +00:00
< ul class = "nav navbar-nav " >
2020-02-23 12:27:36 +00:00
< 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 >
2015-08-02 18:59:11 +00:00
< / ul >
2016-11-09 18:24:33 +00:00
{% endif %}
2015-08-02 18:59:11 +00:00
< ul class = "nav navbar-nav navbar-right" id = "main-nav" >
2019-07-13 18:45:48 +00:00
{% if g.user.is_authenticated or g.allow_anonymous %}
2016-04-27 08:35:23 +00:00
{% if g.user.role_upload() or g.user.role_admin()%}
2018-03-06 12:31:46 +00:00
{% if g.allow_upload %}
< li >
2019-07-13 18:45:48 +00:00
< form id = "form-upload" class = "navbar-form" action = "{{ url_for('editbook.upload') }}" method = "post" enctype = "multipart/form-data" >
2018-03-06 12:31:46 +00:00
< div class = "form-group" >
2019-02-27 18:30:13 +00:00
< span class = "btn btn-default btn-file" > {{_('Upload')}}< input id = "btn-upload" name = "btn-upload"
2020-09-08 18:57:39 +00:00
type="file" accept="{% for format in accept %}.{% if format != ''%}{{format}}{% else %}*{% endif %}{{ ',' if not loop.last }}{% endfor %}" multiple>< / span >
2018-03-06 12:31:46 +00:00
< / div >
< / form >
< / li >
{% endif %}
2016-04-15 17:39:25 +00:00
{% endif %}
2018-12-27 09:53:19 +00:00
{% if not g.user.is_anonymous %}
2020-02-03 03:22:00 +00:00
< 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 >
2018-07-30 18:12:41 +00:00
{% endif %}
2016-04-27 08:35:23 +00:00
{% if g.user.role_admin() %}
2020-02-03 03:22:00 +00:00
< 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 >
2015-08-02 18:59:11 +00:00
{% endif %}
2020-02-03 03:22:00 +00:00
< 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 >
2017-10-10 14:18:28 +00:00
{% if not g.user.is_anonymous %}
2020-02-03 03:22:00 +00:00
< li > < a id = "logout" href = "{{url_for('web.logout')}}" > < span class = "glyphicon glyphicon-log-out" > < / span > < span class = "hidden-sm" > {{_('Logout')}}< / span > < / a > < / li >
2015-10-13 00:30:55 +00:00
{% endif %}
2015-08-02 18:59:11 +00:00
{% endif %}
2017-10-10 14:18:28 +00:00
{% if g.allow_registration and not g.user.is_authenticated %}
2019-07-13 18:45:48 +00:00
< 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 >
2016-11-09 18:24:33 +00:00
{% endif %}
2015-08-02 18:59:11 +00:00
< / ul >
< / div > <!-- /.nav - collapse -->
< / div >
< / div >
{% for message in get_flashed_messages(with_categories=True) %}
{%if message[0] == "error" %}
2017-07-22 03:42:01 +00:00
< div class = "row-fluid text-center" style = "margin-top: -20px;" >
2017-02-15 17:09:17 +00:00
< div id = "flash_alert" class = "alert alert-danger" > {{ message[1] }}< / div >
2015-08-02 18:59:11 +00:00
< / div >
{%endif%}
{%if message[0] == "info" %}
2017-07-22 03:42:01 +00:00
< div class = "row-fluid text-center" style = "margin-top: -20px;" >
2017-02-15 17:09:17 +00:00
< div id = "flash_info" class = "alert alert-info" > {{ message[1] }}< / div >
2015-08-02 18:59:11 +00:00
< / div >
{%endif%}
2019-11-26 07:19:03 +00:00
{%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%}
2015-08-02 18:59:11 +00:00
{%if message[0] == "success" %}
2017-07-22 03:42:01 +00:00
< div class = "row-fluid text-center" style = "margin-top: -20px;" >
2017-02-15 17:09:17 +00:00
< div id = "flash_success" class = "alert alert-success" > {{ message[1] }}< / div >
2015-08-02 18:59:11 +00:00
< / div >
{%endif%}
{% endfor %}
2019-02-20 19:00:08 +00:00
{% if g.current_theme == 1 %}
< div id = "loader" hidden = "true" >
< center >
< h3 > {{_('Uploading...')}}< / h3 >
2020-02-23 19:07:21 +00:00
< span > {{_("Please do not refresh the page")}}< / span > .
2019-02-20 19:00:08 +00:00
< / center >
< / div >
{%endif%}
2015-08-02 18:59:11 +00:00
< div class = "container-fluid" >
< div class = "row-fluid" >
2019-07-13 18:45:48 +00:00
{% if g.user.is_authenticated or g.allow_anonymous %}
2015-08-02 18:59:11 +00:00
< 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" >
2016-11-09 18:24:33 +00:00
< li class = "nav-head hidden-xs" > {{_('Browse')}}< / li >
2019-07-13 18:45:48 +00:00
{% for element in sidebar %}
{% if g.user.check_visibility(element['visibility']) and element['public'] %}
2020-07-11 10:09:34 +00:00
< li id = "nav_{{element['id']}}" { % if page = = element [ ' page ' ] % } class = "active" { % endif % } > < a href = "{{url_for(element['link'], data=element['page'], sort_param='stored')}}" > < span class = "glyphicon {{element['glyph']}}" > < / span > {{_(element['text'])}}< / a > < / li >
2019-07-13 18:45:48 +00:00
{% endif %}
{% endfor %}
2019-08-14 00:39:52 +00:00
{% if g.user.is_authenticated or g.allow_anonymous %}
2020-04-02 16:23:24 +00:00
< 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 >
2015-08-02 18:59:11 +00:00
{% endfor %}
2017-10-10 14:18:28 +00:00
{% if not g.user.is_anonymous %}
2019-07-13 18:45:48 +00:00
< li id = "nav_createshelf" class = "create-shelf" > < a href = "{{url_for('shelf.create_shelf')}}" > {{_('Create a Shelf')}}< / a > < / li >
2020-02-03 03:22:00 +00:00
< 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 >
2016-11-09 18:24:33 +00:00
{% endif %}
2015-08-02 18:59:11 +00:00
{% endif %}
2017-01-12 19:43:36 +00:00
2015-08-02 18:59:11 +00:00
< / ul >
< / nav >
< / div >
2016-11-09 18:24:33 +00:00
{% endif %}
2015-08-02 18:59:11 +00:00
< div class = "col-sm-10" >
{% block body %}{% endblock %}
2017-02-15 17:09:17 +00:00
{% if pagination and (pagination.has_next or pagination.has_prev) %}
2015-08-02 18:59:11 +00:00
< div class = "pagination" >
2017-07-28 14:37:25 +00:00
{% if pagination.has_prev %}
2020-08-30 00:58:30 +00:00
< li class = "page-item page-previous" > < a class = "page-link" aria-label = "next page" href = "{{ ( pagination . page - 1 ) | url_for_other_page
2020-06-09 18:46:02 +00:00
}}">« {{_('Previous')}}< / a > < / li >
2017-07-28 14:37:25 +00:00
{% endif %}
2017-02-15 17:09:17 +00:00
{% for page in pagination.iter_pages() %}
2015-08-02 18:59:11 +00:00
{% if page %}
{% if page != pagination.page %}
2020-06-09 18:46:02 +00:00
< li class = "page-item" > < a class = "page-link" aria-label = "to page {{ page }}" href = "{{ (page)|url_for_other_page }}" > {{ page }}< / a > < / li >
2015-08-02 18:59:11 +00:00
{% else %}
2020-06-09 18:46:02 +00:00
< li class = "page-item active" > < a class = "page-link" aria-label = "to page {{ page }}" href = "{{ (page)|url_for_other_page }}" > {{ page }}< / a > < / li >
2015-08-02 18:59:11 +00:00
{% endif %}
{% else %}
2020-06-09 18:46:02 +00:00
< li class = "page-item page-last-separator disabled" > < a class = "page-link" aria-label = "" > …< / a > < / li >
2015-08-02 18:59:11 +00:00
{% endif %}
2017-02-15 17:09:17 +00:00
{% endfor %}
2015-08-02 18:59:11 +00:00
{% if pagination.has_next %}
2020-06-09 18:46:02 +00:00
< 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 >
2015-08-02 18:59:11 +00:00
{% endif %}
< / div >
{% endif %}
< / div >
< / div >
2020-06-11 06:48:23 +00:00
< / div >
2017-07-06 16:21:35 +00:00
< 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 >
2017-04-21 18:44:17 +00:00
{% block modal %}{% endblock %}
2017-07-29 03:07:10 +00:00
2018-07-30 18:12:41 +00:00
2017-07-29 03:07:10 +00:00
<!-- 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 >
2019-02-16 09:05:51 +00:00
< script src = "{{ url_for('static', filename='js/uploadprogress.js') }}" > < / script >
2019-01-11 07:36:28 +00:00
{% if g.current_theme == 1 %}
2019-01-03 21:01:52 +00:00
< 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 >
2018-12-27 09:53:19 +00:00
< script src = "{{ url_for('static', filename='js/caliBlur.js') }}" > < / script >
{% endif %}
2017-07-29 03:07:10 +00:00
< script type = "text/javascript" >
2019-02-16 09:05:51 +00:00
$(function() {
2019-02-23 17:28:25 +00:00
$("#form-upload").uploadprogress({
2019-07-13 18:45:48 +00:00
redirect_url: "{{ url_for('web.index')}}",
2019-02-23 17:28:25 +00:00
uploadedMsg: "{{_('Upload done, processing, please wait...')}}",
modalTitle: "{{_('Uploading...')}}",
modalFooter: "{{_('Close')}}",
modalTitleFailed: "{{_('Error')}}"
});
2019-02-16 09:05:51 +00:00
$("#btn-upload").change(function() {
$("#form-upload").submit();
});
2020-04-19 11:12:02 +00:00
$(document).ready(function() {
var inp = $('#query').first()
2020-06-20 11:46:12 +00:00
if (inp.length) {
var val = inp.val()
if (val.length) {
2020-05-21 17:18:02 +00:00
inp.val('').blur().focus().val(val)
2020-06-20 11:46:12 +00:00
}
2020-05-21 14:42:02 +00:00
}
2020-04-19 11:12:02 +00:00
});
2019-02-16 09:05:51 +00:00
});
2017-07-29 03:07:10 +00:00
< / script >
2016-04-15 21:35:18 +00:00
{% block js %}{% endblock %}
2015-08-02 18:59:11 +00:00
< / body >
2016-11-09 18:24:33 +00:00
< / html >