mirror of
https://github.com/janeczku/calibre-web
synced 2024-11-25 11:07:22 +00:00
edadf84710
Added ability to reload database connection (refresh problem) Bugfix display hot books (no hot books, hot books are deleted books, no longer result in error 500)
122 lines
6.1 KiB
HTML
122 lines
6.1 KiB
HTML
{% extends "layout.html" %}
|
|
{% block body %}
|
|
{% if book %}
|
|
<div class="col-sm-3 col-lg-3 col-xs-12">
|
|
<div class="cover">
|
|
{% if book.has_cover %}
|
|
<img src="{{ url_for('get_cover', cover_path=book.path.replace('\\','/')) }}" />
|
|
{% else %}
|
|
<img src="{{ url_for('static', filename='generic_cover.jpg') }}" />
|
|
{% endif %}
|
|
</div>
|
|
</div>
|
|
<div class="col-sm-8">
|
|
<form role="form" action="{{ url_for('edit_book', book_id=book.id) }}" method="post">
|
|
<div class="form-group">
|
|
<label for="book_title">{{_('Book Title')}}</label>
|
|
<input type="text" class="form-control" name="book_title" id="book_title" value="{{book.title}}">
|
|
</div>
|
|
<div class="form-group">
|
|
<label for="bookAuthor">{{_('Author')}}</label>
|
|
<input type="text" class="form-control typeahead" name="author_name" id="bookAuthor" value="{{' & '.join(authors)}}" autocomplete="off">
|
|
</div>
|
|
<div class="form-group">
|
|
<label for="description">{{_('Description')}}</label>
|
|
<textarea class="form-control" name="description" id="description" rows="7">{% if book.comments %}{{book.comments[0].text}}{%endif%}</textarea>
|
|
</div>
|
|
<div class="form-group">
|
|
<label for="tags">{{_('Tags')}}</label>
|
|
<input type="text" class="form-control typeahead" name="tags" id="tags" value="{% for tag in book.tags %}{{tag.name.strip()}}, {% endfor %}">
|
|
</div>
|
|
|
|
<div class="form-group">
|
|
<label for="series">{{_('Series')}}</label>
|
|
<input type="text" class="form-control typeahead" name="series" id="series" value="{% if book.series %}{{book.series[0].name}}{% endif %}">
|
|
</div>
|
|
<div class="form-group">
|
|
<label for="series_index">{{_('Series id')}}</label>
|
|
<input type="text" class="form-control" name="series_index" id="series_index" value="{{book.series_index}}">
|
|
</div>
|
|
<div class="form-group">
|
|
<label for="rating">{{_('Rating')}}</label>
|
|
<input type="number" name="rating" id="rating" class="rating input-lg" data-clearable="" value="{% if book.ratings %}{{(book.ratings[0].rating / 2)|int}}{% endif %}">
|
|
</div>
|
|
<div class="form-group">
|
|
<label for="cover_url">{{_('Cover URL (jpg)')}}</label>
|
|
<input type="text" class="form-control" name="cover_url" id="cover_url" value="">
|
|
</div>
|
|
|
|
<div class="form-group">
|
|
<label for="languages">{{_('Language')}}</label>
|
|
<input type="text" class="form-control typeahead" name="languages" id="languages" value="{% for language in book.languages %}{{language.language_name.strip()}}, {% endfor %}">
|
|
</div>
|
|
|
|
{% if cc|length > 0 %}
|
|
{% for c in cc %}
|
|
<div class="form-group">
|
|
<label for="{{ 'custom_column_' ~ c.id }}">{{ c.name }}</label>
|
|
{% if c.datatype == 'bool' %}
|
|
<select name="{{ 'custom_column_' ~ c.id }}" id="{{ 'custom_column_' ~ c.id }}" class="form-control">
|
|
<option value="None" {% if book['custom_column_' ~ c.id]|length == 0 %} selected {% endif %}></option>
|
|
<option value="True" {% if book['custom_column_' ~ c.id]|length > 0 %}{% if book['custom_column_' ~ c.id][0].value ==true %}selected{% endif %}{% endif %} >{{_('Yes')}}</option>
|
|
<option value="False" {% if book['custom_column_' ~ c.id]|length > 0 %}{% if book['custom_column_' ~ c.id][0].value ==false %}selected{% endif %}{% endif %}>{{_('No')}}</option>
|
|
</select>
|
|
{% endif %}
|
|
{% if c.datatype in ['text', 'series'] and not c.is_multiple %}
|
|
<input type="text" class="form-control" name="{{ 'custom_column_' ~ c.id }}" id="{{ 'custom_column_' ~ c.id }}"
|
|
{% if book['custom_column_' ~ c.id]|length > 0 %}
|
|
value="{{ book['custom_column_' ~ c.id][0].value }}"
|
|
{% endif %}>
|
|
{% endif %}
|
|
|
|
{% if c.datatype in ['text', 'series'] and c.is_multiple %}
|
|
<input type="text" class="form-control" name="{{ 'custom_column_' ~ c.id }}" id="{{ 'custom_column_' ~ c.id }}"
|
|
{% if book['custom_column_' ~ c.id]|length > 0 %}
|
|
value="{% for column in book['custom_column_' ~ c.id] %}{{ column.value.strip() }}{% if not loop.last %}, {% endif %}{% endfor %}"{% endif %}>
|
|
{% endif %}
|
|
|
|
{% if c.datatype == 'enumeration' %}
|
|
<select class="form-control" name="{{ 'custom_column_' ~ c.id }}" id="{{ 'custom_column_' ~ c.id }}">
|
|
<option></option>
|
|
{% for opt in c.get_display_dict().enum_values %}
|
|
<option
|
|
{% if book['custom_column_' ~ c.id]|length > 0 %}
|
|
{% if book['custom_column_' ~ c.id][0].value == opt %}selected="selected"{% endif %}
|
|
{% endif %}
|
|
>{{ opt }}</option>
|
|
{% endfor %}
|
|
</select>
|
|
{% endif %}
|
|
|
|
{% if c.datatype == 'rating' %}
|
|
<input type="number" min="1" max="5" step="1" class="form-control" name="{{ 'custom_column_' ~ c.id }}" id="{{ 'custom_column_' ~ c.id }}"
|
|
{% if book['custom_column_' ~ c.id]|length > 0 %}
|
|
value="{{ '%d' % (book['custom_column_' ~ c.id][0].value / 2) }}"
|
|
{% endif %}>
|
|
{% endif %}
|
|
</div>
|
|
{% endfor %}
|
|
{% endif %}
|
|
|
|
|
|
<div class="checkbox">
|
|
<label>
|
|
<input name="detail_view" type="checkbox" checked> {{_('view book after edit')}}
|
|
</label>
|
|
</div>
|
|
<button type="submit" class="btn btn-default">{{_('Submit')}}</button>
|
|
<a href="{{ url_for('show_book',id=book.id) }}" class="btn btn-default">{{_('Back')}}</a>
|
|
</form>
|
|
</div>
|
|
{% endif %}
|
|
{% endblock %}
|
|
|
|
{% block js %}
|
|
<script src="{{ url_for('static', filename='js/libs/typeahead.bundle.js') }}"></script>
|
|
<script src="{{ url_for('static', filename='js/edit_books.js') }}"></script>
|
|
<script src="{{ url_for('static', filename='js/libs/bootstrap-rating-input.min.js') }}"></script>
|
|
{% endblock %}
|
|
{% block header %}
|
|
<link href="{{ url_for('static', filename='css/libs/typeahead.css') }}" rel="stylesheet" media="screen">
|
|
{% endblock %}
|