mirror of
https://github.com/janeczku/calibre-web.git
synced 2024-11-26 08:51:05 +02:00
bbf6d9b026
Bugfix for feeds - removed categories related and up - load new books now working - category random now working login page is free of non accessible elements boolean custom column is vivible in UI books with only with certain languages can be shown book shelfs can be deleted from UI Anonymous user view is more resticted Added browse of series in sidebar Dependencys in vendor folder are updated to newer versions (licencs files are now present) Bugfix editing Authors names Made upload on windows working
187 lines
7.8 KiB
HTML
187 lines
7.8 KiB
HTML
{% extends "layout.html" %}
|
|
{% block body %}
|
|
<div class="single">
|
|
<div class="row">
|
|
<div class="col-sm-3 col-lg-3 col-xs-12">
|
|
<div class="cover">
|
|
{% if entry.has_cover is defined %}
|
|
<img src="{{ url_for('get_cover', cover_path=entry.path) }}" />
|
|
{% endif %}
|
|
</div>
|
|
</div>
|
|
<div class="col-sm-9 col-lg-9 book-meta">
|
|
<h2>{{entry.title}}</h2>
|
|
<p class="author">
|
|
{% for author in entry.authors %}
|
|
<a href="{{url_for('author', name=author.name) }}">{{author.name}}</a>
|
|
{% if not loop.last %}
|
|
&
|
|
{% endif %}
|
|
{% endfor %}
|
|
</p>
|
|
{% if entry.ratings.__len__() > 0 %}
|
|
<div class="rating">
|
|
<p>
|
|
{% for number in range((entry.ratings[0].rating/2)|int(2)) %}
|
|
<span class="glyphicon glyphicon-star good"></span>
|
|
{% if loop.last and loop.index < 5 %}
|
|
{% for numer in range(5 - loop.index) %}
|
|
<span class="glyphicon glyphicon-star"></span>
|
|
{% endfor %}
|
|
{% endif %}
|
|
{% endfor %}
|
|
</p>
|
|
</div>
|
|
{% endif %}
|
|
|
|
{% if entry.series|length > 0 %}
|
|
<p>{{_('Book')}} {{entry.series_index}} {{_('of')}} <a href="{{url_for('series', name=entry.series[0].name)}}">{{entry.series[0].name}}</a></p>
|
|
{% endif %}
|
|
|
|
{% if entry.languages.__len__() > 0 %}
|
|
<div class="languages">
|
|
<p>
|
|
<span class="label label-default">{{_('language')}}: {% for language in entry.languages %} {{language.language_name}}{% if not loop.last %},{% endif %}{% endfor %} </span>
|
|
</p>
|
|
</div>
|
|
{% endif %}
|
|
|
|
{% if entry.tags|length > 0 %}
|
|
<p>
|
|
<div class="tags">
|
|
<span class="glyphicon glyphicon-tags"></span>
|
|
|
|
{% for tag in entry.tags %}
|
|
<a href="{{ url_for('category', name=tag.name) }}" class="btn btn-xs btn-info" role="button">{{tag.name}}</a>
|
|
{%endfor%}
|
|
|
|
</div>
|
|
</p>
|
|
{% endif %}
|
|
|
|
{% if cc|length > 0 %}
|
|
<p>
|
|
<div class="custom_columns">
|
|
{% for c in cc %}
|
|
{% if entry['custom_column_' ~ c.id]|length > 0 %}
|
|
{{ c.name }}:
|
|
{% for column in entry['custom_column_' ~ c.id] %}
|
|
{% if c.datatype == 'rating' %}
|
|
{{ '%d' % (column.value / 2) }}
|
|
{% else %}
|
|
{% if c.datatype == 'bool' %}
|
|
{% if column.value == true %}
|
|
<span class="glyphicon glyphicon-ok"></span>
|
|
{% else %}
|
|
<span class="glyphicon glyphicon-remove"></span>
|
|
{% endif %}
|
|
{% else %}
|
|
{{ column.value }}
|
|
{% endif %}
|
|
{% endif %}
|
|
{% endfor %}
|
|
<br />
|
|
{% endif %}
|
|
{% endfor %}
|
|
</div>
|
|
</p>
|
|
{% endif %}
|
|
|
|
|
|
{% if entry.comments|length > 0 %}
|
|
<h3>{{_('Description:')}}</h3>
|
|
{{entry.comments[0].text|safe}}
|
|
{% endif %}
|
|
|
|
{% if g.user.is_authenticated %}
|
|
<div class="more-stuff">
|
|
<div class="btn-toolbar" role="toolbar">
|
|
|
|
<div class="btn-group" role="group" aria-label="Download, send to Kindle, reading">
|
|
<div class="btn-group" role="group">
|
|
<button id="btnGroupDrop1" type="button" class="btn btn-primary dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
|
<span class="glyphicon glyphicon-download"></span> {{_('Download')}}
|
|
<span class="caret"></span>
|
|
</button>
|
|
<ul class="dropdown-menu" aria-labelledby="btnGroupDrop1">
|
|
{% for format in entry.data %}
|
|
<li><a href="{{ url_for('get_download_link', book_id=entry.id, format=format.format|lower) }}">{{format.format}}</a></li>
|
|
{%endfor%}
|
|
</ul>
|
|
</div>
|
|
{% if g.user.kindle_mail %}
|
|
<a href="{{url_for('send_to_kindle', book_id=entry.id)}}" id="sendbtn" class="btn btn-primary" role="button"><span class="glyphicon glyphicon-send"></span> {{_('Send to Kindle')}}</a>
|
|
{% endif %}
|
|
<div class="btn-group" role="group">
|
|
<button id="btnGroupDrop2" type="button" class="btn btn-primary dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
|
<span class="glyphicon glyphicon-eye-open"></span> {{_('Read in browser')}}
|
|
<span class="caret"></span>
|
|
</button>
|
|
<ul class="dropdown-menu" aria-labelledby="btnGroupDrop2">
|
|
{% for format in entry.data %}
|
|
{%if format.format|lower == 'epub' or format.format|lower == 'txt' or format.format|lower == 'pdf' %}
|
|
<li><a target="_blank" href="{{ url_for('read_book', book_id=entry.id, format=format.format|lower) }}">{{format.format}}</a></li>
|
|
{% endif %}
|
|
{%endfor%}
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</br>
|
|
|
|
{% if g.user.shelf.all() or g.public_shelfes %}
|
|
<div class="btn-toolbar" role="toolbar">
|
|
<div class="btn-group" role="group" aria-label="Add to shelves">
|
|
<button id="btnGroupDrop2" type="button" class="btn btn-primary btn-sm dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
|
<span class="glyphicon glyphicon-list"></span> {{_('Add to shelf')}}
|
|
<span class="caret"></span>
|
|
</button>
|
|
<ul class="dropdown-menu" aria-labelledby="btnGroupDrop2">
|
|
{% for shelf in g.user.shelf %}
|
|
{% if not shelf.id in books_shelfs and shelf.is_public != 1 %}
|
|
<li><a href="{{ url_for('add_to_shelf', book_id=entry.id, shelf_id=shelf.id) }}">{{shelf.name}}</a></li>
|
|
{% endif %}
|
|
{%endfor%}
|
|
{% for shelf in g.public_shelfes %}
|
|
{% if not shelf.id in books_shelfs %}
|
|
<li><a href="{{ url_for('add_to_shelf', book_id=entry.id, shelf_id=shelf.id) }}">{{shelf.name}}</a></li>
|
|
{% endif %}
|
|
{%endfor%}
|
|
</ul>
|
|
</div>
|
|
{% if books_shelfs %}
|
|
<div class="btn-group" role="group" aria-label="Remove from shelves">
|
|
{% for shelf in g.user.shelf %}
|
|
{% if shelf.id in books_shelfs and shelf.is_public != 1 %}
|
|
<a href="{{ url_for('remove_from_shelf', book_id=entry.id, shelf_id=shelf.id) }}" class="btn btn-sm btn-default" role="button">
|
|
<span class="glyphicon glyphicon-remove"></span> {{shelf.name}}
|
|
</a>
|
|
{% endif %}
|
|
{%endfor%}
|
|
{% for shelf in g.public_shelfes %}
|
|
{% if shelf.id in books_shelfs %}
|
|
<a href="{{ url_for('remove_from_shelf', book_id=entry.id, shelf_id=shelf.id) }}" class="btn btn-sm btn-default" role="button">
|
|
<span class="glyphicon glyphicon-remove"></span> {{shelf.name}}
|
|
</a>
|
|
{% endif %}
|
|
{%endfor%}
|
|
{% endif %}
|
|
</div>
|
|
</div>
|
|
{% endif %}
|
|
|
|
{% if g.user.role_edit() %}
|
|
<div class="btn-toolbar" role="toolbar">
|
|
<div class="btn-group" role="group" aria-label="Edit/Delete book">
|
|
<a href="{{ url_for('edit_book', book_id=entry.id) }}" class="btn btn-sm btn-warning" role="button"><span class="glyphicon glyphicon-edit"></span> {{_('Edit metadata')}}</a>
|
|
<!-- <a href="{{ url_for('edit_book', book_id=entry.id) }}" class="btn btn-sm btn-danger" role="button"><span class="glyphicon glyphicon-trash"></span> Delete</a> -->
|
|
</div>
|
|
{% endif %}
|
|
|
|
{% endif %}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
{% endblock %}
|
|
|