mirror of
https://github.com/janeczku/calibre-web
synced 2024-12-25 09:30:31 +00:00
93b19165cf
Handling of missing tags in fb import naming of path is more imitating calibre (replacement of special characters, "pinyining" of author names if unidecode is available ) Sorting of authors (similar to calibre for jr./sr./I..IV endings) bugfix pathseparator on windows and linux during upload bugfix os.rename for authordir publishing date on detailview is formated according to slected locale filename on downloading from web ui is now correct displayed added ids to html for testing
188 lines
9.8 KiB
HTML
188 lines
9.8 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
<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="shortcut icon" href="{{ url_for('static', filename='favicon.ico') }}">
|
|
<link href="{{ url_for('static', filename='css/libs/bootstrap.min.css') }}" rel="stylesheet" media="screen">
|
|
<link href="{{ url_for('static', filename='css/style.css') }}" rel="stylesheet" media="screen">
|
|
|
|
<!-- 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]-->
|
|
|
|
<!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
|
|
<!--script src="https://code.jquery.com/jquery.js"></script-->
|
|
<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/main.js') }}"></script>
|
|
|
|
{% block header %}{% endblock %}
|
|
</head>
|
|
<body>
|
|
<script>
|
|
$(document).ready(function(){
|
|
$("#btn-upload").change(function() {
|
|
$("#form-upload").submit();
|
|
});
|
|
});
|
|
</script>
|
|
<!-- 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('index')}}">Calibre Web</a>
|
|
</div>
|
|
<div class="navbar-collapse collapse">
|
|
{% if g.user.is_authenticated or g.user.is_anonymous() %}
|
|
<ul class="nav navbar-nav ">
|
|
<li>
|
|
<form class="navbar-form navbar-left" role="search" action="{{url_for('search')}}" method="GET">
|
|
<div class="form-group">
|
|
<input type="text" class="form-control" name="query" placeholder="{{_('Search')}}">
|
|
</div>
|
|
<button type="submit" class="btn btn-default">{{_('Go!')}}</button>
|
|
</form>
|
|
</li>
|
|
<li><a href="{{url_for('advanced_search')}}"><span class="glyphicon glyphicon-search"></span> {{_('Advanced Search')}}</a></li>
|
|
</ul>
|
|
{% endif %}
|
|
<ul class="nav navbar-nav navbar-right" id="main-nav">
|
|
{% if g.user.is_authenticated or g.user.is_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('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"></span>
|
|
</div>
|
|
</form>
|
|
</li>
|
|
{% endif %}
|
|
{% endif %}
|
|
{% if g.user.role_admin() %}
|
|
<li><a id="top_admin" href="{{url_for('admin')}}"><span class="glyphicon glyphicon-dashboard"></span> {{_('Admin')}}</a></li>
|
|
{% endif %}
|
|
<li><a id="top_user" href="{{url_for('profile')}}"><span class="glyphicon glyphicon-user"></span> {{g.user.nickname}}</a></li>
|
|
{% if not g.user.is_anonymous() %}
|
|
<li><a id="logout" href="{{url_for('logout')}}"><span class="glyphicon glyphicon-log-out"></span> {{_('Logout')}}</a></li>
|
|
{% endif %}
|
|
{% endif %}
|
|
{% if g.allow_registration and not g.user.is_authenticated %}
|
|
<li><a id="login" href="{{url_for('login')}}"><span class="glyphicon glyphicon-log-in"></span> {{_('Login')}}</a></li>
|
|
<li><a id="register" href="{{url_for('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" style="margin-top: -20px; text-align: center;">
|
|
<div id="flash_alert" class="alert alert-danger">{{ message[1] }}</div>
|
|
</div>
|
|
{%endif%}
|
|
{%if message[0] == "info" %}
|
|
<div class="row-fluid" style="margin-top: -20px; text-align: center;">
|
|
<div id="flash_info" class="alert alert-info">{{ message[1] }}</div>
|
|
</div>
|
|
{%endif%}
|
|
{%if message[0] == "success" %}
|
|
<div class="row-fluid" style="margin-top: -20px; text-align: center;">
|
|
<div id="flash_success" class="alert alert-success">{{ message[1] }}</div>
|
|
</div>
|
|
{%endif%}
|
|
{% endfor %}
|
|
<div class="container-fluid">
|
|
<div class="row-fluid">
|
|
{% if g.user.is_authenticated or g.user.is_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>
|
|
<li id="nav_new"><a href="{{url_for('index')}}"><span class="glyphicon glyphicon-book"></span> {{_('New Books')}}</a></li>
|
|
{% if g.user.show_hot_books() %}
|
|
<li id="nav_hot"><a href="{{url_for('hot_books')}}"><span class="glyphicon glyphicon-fire"></span> {{_('Hot Books')}}</a></li>
|
|
{%endif%}
|
|
{% if g.user.show_best_rated_books() %}
|
|
<li><a href="{{url_for('best_rated_books')}}"><span class="glyphicon glyphicon-star"></span> {{_('Best rated Books')}}</a></li>
|
|
{%endif%}
|
|
{% if g.user.show_random_books() %}
|
|
<li id="nav_rand"><a href="{{url_for('discover')}}"><span class="glyphicon glyphicon-random"></span> {{_('Discover')}}</a></li>
|
|
{%endif%}
|
|
{% if g.user.show_category() %}
|
|
<li id="nav_cat"><a href="{{url_for('category_list')}}"><span class="glyphicon glyphicon-inbox"></span> {{_('Categories')}}</a></li>
|
|
{%endif%}
|
|
{% if g.user.show_series() %}
|
|
<li id="nav_serie"><a href="{{url_for('series_list')}}"><span class="glyphicon glyphicon-bookmark"></span> {{_('Series')}}</a></li>
|
|
{%endif%}
|
|
<li id="nav_author"><a href="{{url_for('author_list')}}"><span class="glyphicon glyphicon-user"></span> {{_('Authors')}}</a></li>
|
|
{% if g.user.filter_language() == 'all' and g.user.show_language() %}
|
|
<li id="nav_lang"><a href="{{url_for('language_overview')}}"><span class="glyphicon glyphicon-flag"></span> {{_('Languages')}} </a></li>
|
|
{%endif%}
|
|
{% if g.user.is_authenticated or g.user.is_anonymous() %}
|
|
<li class="nav-head hidden-xs">{{_('Public Shelves')}}</li>
|
|
{% for shelf in g.public_shelfes %}
|
|
<li><a href="{{url_for('show_shelf', shelf_id=shelf.id)}}"><span class="glyphicon glyphicon-list"></span> {{shelf.name}}</a></li>
|
|
{% endfor %}
|
|
<li class="nav-head hidden-xs">{{_('Your Shelves')}}</li>
|
|
{% for shelf in g.user.shelf %}
|
|
<li><a href="{{url_for('show_shelf', shelf_id=shelf.id)}}"><span class="glyphicon glyphicon-list"></span> {{shelf.name}}</a></li>
|
|
{% endfor %}
|
|
{% if not g.user.is_anonymous() %}
|
|
<li id="nav_createshelf" class="create-shelf"><a href="{{url_for('create_shelf')}}">{{_('Create a Shelf')}}</a></li>
|
|
<li id="nav_about"><a href="{{url_for('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">
|
|
{% for page in pagination.iter_pages() %}
|
|
{% if page %}
|
|
{% if page != pagination.page %}
|
|
<a href="{{ url_for_other_page(page) }}">{{ page }}</a>
|
|
{% else %}
|
|
<strong>{{ page }}</strong>
|
|
{% endif %}
|
|
{% else %}
|
|
<span class="ellipsis">…</span>
|
|
{% endif %}
|
|
{% endfor %}
|
|
{% if pagination.has_next %}
|
|
<a class="next" href="{{ url_for_other_page(pagination.page + 1)
|
|
}}">Next »</a>
|
|
{% endif %}
|
|
</div>
|
|
{% endif %}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
{% block js %}{% endblock %}
|
|
</body>
|
|
</html>
|