{% extends "layout.html" %} {% block body %} {% if book %} <form role="form" action="{{ url_for('edit_book', book_id=book.id) }}" method="post"> <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> {% if g.user.role_delete_books() %} <div class="text-center"> <button type="button" class="btn btn-danger" id="delete" data-toggle="modal" data-target="#deleteModal">{{_("Delete Book")}}</button> </div> {% endif %} </div> <div class="col-sm-9 col-xs-12"> <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="pubdate">{{_('Publishing date')}}</label> <div style="position: relative"> <input type="date" class="form-control" name="pubdate" id="pubdate" value="{% if book.pubdate %}{{book.pubdate|formatdateinput}}{% endif %}"> <input type="text" class="form-control fake-input hidden" id="fake_pubdate" value="{% if book.pubdate %}{{book.pubdate|formatdate}}{% endif %}"> </div> </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 == 'int' %} <input type="number" step="1" class="form-control" name="{{ 'custom_column_' ~ c.id }}" id="{{ 'custom_column_' ~ c.id }}" value="{% if book['custom_column_' ~ c.id]|length > 0 %}{{ book['custom_column_' ~ c.id][0].value }}{% endif %}"> {% 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> <a href="#" id="get_meta" class="btn btn-default" data-toggle="modal" data-target="#metaModal">{{_('Get metadata')}}</a> <button type="submit" class="btn btn-default">{{_('Submit')}}</button> <a href="{{ url_for('show_book', book_id=book.id) }}" class="btn btn-default">{{_('Back')}}</a> </div> </form> {% endif %} {% endblock %} {% block modal %} {% if g.user.role_delete_books() %} <div class="modal fade" id="deleteModal" role="dialog" aria-labelledby="metaDeleteLabel"> <div class="modal-dialog"> <div class="modal-content"> <div class="modal-header bg-danger text-center"> <span>{{_('Are really you sure?')}}</span> </div> <div class="modal-body text-center" id="meta-info"> <span>{{_('Book will be deleted from Calibre database')}}</span> <span>{{_('and from hard disk')}}</span> </div> <div class="modal-footer"> <a href="{{ url_for('delete_book', book_id=book.id) }}" class="btn btn-danger">{{_('Delete')}}</a> <button type="button" class="btn btn-default" data-dismiss="modal">{{_('Back')}}</button> </div> </div> </div> </div> {% endif %} <div class="modal fade" id="metaModal" tabindex="-1" role="dialog" aria-labelledby="metaModalLabel"> <div class="modal-dialog" 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="metaModalLabel">{{_('Get metadata')}}</h4> <form class="form-inline"> <div class="form-group"> <label class="sr-only" for="keyword">{{_('Keyword')}}</label> <input type="text" class="form-control" id="keyword" placeholder="{{_(" Search keyword ")}}"> </div> <button type="button" class="btn btn-default" id="do-search">{{_("Go!")}}</button> <span>{{_('Click the cover to load metadata to the form')}}</span> </form> </div> <div class="modal-body" id="meta-info"> {{_("Loading...")}} </div> <div class="modal-footer"> <button type="button" class="btn btn-default" data-dismiss="modal">{{_('Close')}}</button> </div> </div> </div> </div> {% endblock %} {% block js %} <script> var i18nMsg = { 'loading': {{_('Loading...')|safe|tojson}}, 'search_error': {{_('Search error!')|safe|tojson}}, 'no_result': {{_('No Result! Please try anonther keyword.')|safe|tojson}}, 'author': {{_('Author')|safe|tojson}}, 'publisher': {{_('Publisher')|safe|tojson}}, 'description': {{_('Description')|safe|tojson}}, 'source': {{_('Source')|safe|tojson}}, }; var language = '{{ g.user.locale }}'; </script> <script src="{{ url_for('static', filename='js/libs/typeahead.bundle.js') }}"></script> <script src="{{ url_for('static', filename='js/libs/bootstrap-rating-input.min.js') }}"></script> <script src="{{ url_for('static', filename='js/get_meta.js') }}"></script> <script src="{{ url_for('static', filename='js/libs/tinymce/tinymce.min.js') }}"></script> <script src="{{ url_for('static', filename='js/libs/bootstrap-datepicker/bootstrap-datepicker.min.js') }}"></script> {% if not g.user.locale == 'en' %} <script src="{{ url_for('static', filename='js/libs/bootstrap-datepicker/locales/bootstrap-datepicker.' + g.user.locale + '.min.js') }}" charset="UTF-8"></script> {% endif %} <script src="{{ url_for('static', filename='js/edit_books.js') }}"></script> {% endblock %} {% block header %} <link href="{{ url_for('static', filename='css/libs/typeahead.css') }}" rel="stylesheet" media="screen"> <link href="{{ url_for('static', filename='css/libs/bootstrap-datepicker3.min.css') }}" rel="stylesheet" media="screen"> {% endblock %}