Merge branch 'master' into development
# Conflicts: # cps/static/css/libs/bootstrap-table.min.css # cps/static/js/libs/bootstrap-table/bootstrap-table-editable.min.js # cps/static/js/libs/bootstrap-table/bootstrap-table.min.js # cps/static/js/libs/bootstrap-table/locale/bootstrap-table-af-ZA.min.js # cps/static/js/libs/bootstrap-table/locale/bootstrap-table-ar-SA.min.js # cps/static/js/libs/bootstrap-table/locale/bootstrap-table-bg-BG.min.js # cps/static/js/libs/bootstrap-table/locale/bootstrap-table-ca-ES.min.js # cps/static/js/libs/bootstrap-table/locale/bootstrap-table-cs-CZ.min.js # cps/static/js/libs/bootstrap-table/locale/bootstrap-table-da-DK.min.js # cps/static/js/libs/bootstrap-table/locale/bootstrap-table-de-DE.min.js # cps/static/js/libs/bootstrap-table/locale/bootstrap-table-el-GR.min.js # cps/static/js/libs/bootstrap-table/locale/bootstrap-table-en-US.min.js # cps/static/js/libs/bootstrap-table/locale/bootstrap-table-es-AR.min.js # cps/static/js/libs/bootstrap-table/locale/bootstrap-table-es-CL.min.js # cps/static/js/libs/bootstrap-table/locale/bootstrap-table-es-CR.min.js # cps/static/js/libs/bootstrap-table/locale/bootstrap-table-es-ES.min.js # cps/static/js/libs/bootstrap-table/locale/bootstrap-table-es-MX.min.js # cps/static/js/libs/bootstrap-table/locale/bootstrap-table-es-NI.min.js # cps/static/js/libs/bootstrap-table/locale/bootstrap-table-es-SP.min.js # cps/static/js/libs/bootstrap-table/locale/bootstrap-table-et-EE.min.js # cps/static/js/libs/bootstrap-table/locale/bootstrap-table-eu-EU.min.js # cps/static/js/libs/bootstrap-table/locale/bootstrap-table-fa-IR.min.js # cps/static/js/libs/bootstrap-table/locale/bootstrap-table-fi-FI.min.js # cps/static/js/libs/bootstrap-table/locale/bootstrap-table-fr-BE.min.js # cps/static/js/libs/bootstrap-table/locale/bootstrap-table-fr-CH.min.js # cps/static/js/libs/bootstrap-table/locale/bootstrap-table-fr-FR.min.js # cps/static/js/libs/bootstrap-table/locale/bootstrap-table-fr-LU.min.js # cps/static/js/libs/bootstrap-table/locale/bootstrap-table-he-IL.min.js # cps/static/js/libs/bootstrap-table/locale/bootstrap-table-hr-HR.min.js # cps/static/js/libs/bootstrap-table/locale/bootstrap-table-hu-HU.min.js # cps/static/js/libs/bootstrap-table/locale/bootstrap-table-id-ID.min.js # cps/static/js/libs/bootstrap-table/locale/bootstrap-table-it-IT.min.js # cps/static/js/libs/bootstrap-table/locale/bootstrap-table-ja-JP.min.js # cps/static/js/libs/bootstrap-table/locale/bootstrap-table-ka-GE.min.js # cps/static/js/libs/bootstrap-table/locale/bootstrap-table-ko-KR.min.js # cps/static/js/libs/bootstrap-table/locale/bootstrap-table-ms-MY.min.js # cps/static/js/libs/bootstrap-table/locale/bootstrap-table-nb-NO.min.js # cps/static/js/libs/bootstrap-table/locale/bootstrap-table-nl-BE.min.js # cps/static/js/libs/bootstrap-table/locale/bootstrap-table-nl-NL.min.js # cps/static/js/libs/bootstrap-table/locale/bootstrap-table-pl-PL.min.js # cps/static/js/libs/bootstrap-table/locale/bootstrap-table-pt-BR.min.js # cps/static/js/libs/bootstrap-table/locale/bootstrap-table-pt-PT.min.js # cps/static/js/libs/bootstrap-table/locale/bootstrap-table-ro-RO.min.js # cps/static/js/libs/bootstrap-table/locale/bootstrap-table-ru-RU.min.js # cps/static/js/libs/bootstrap-table/locale/bootstrap-table-sk-SK.min.js # cps/static/js/libs/bootstrap-table/locale/bootstrap-table-sr-Cyrl-RS.min.js # cps/static/js/libs/bootstrap-table/locale/bootstrap-table-sr-Latn-RS.min.js # cps/static/js/libs/bootstrap-table/locale/bootstrap-table-sv-SE.min.js # cps/static/js/libs/bootstrap-table/locale/bootstrap-table-th-TH.min.js # cps/static/js/libs/bootstrap-table/locale/bootstrap-table-tr-TR.min.js # cps/static/js/libs/bootstrap-table/locale/bootstrap-table-uk-UA.min.js # cps/static/js/libs/bootstrap-table/locale/bootstrap-table-ur-PK.min.js # cps/static/js/libs/bootstrap-table/locale/bootstrap-table-uz-Latn-UZ.min.js # cps/static/js/libs/bootstrap-table/locale/bootstrap-table-vi-VN.min.js # cps/static/js/libs/bootstrap-table/locale/bootstrap-table-zh-CN.min.js # cps/static/js/libs/bootstrap-table/locale/bootstrap-table-zh-TW.min.js
This commit is contained in:
commit
91b9370a21
|
@ -970,7 +970,7 @@ def _configuration_ldap_helper(to_save, gdrive_error):
|
||||||
return reboot_required, _configuration_result(_('LDAP User Object Filter Has Unmatched Parenthesis'),
|
return reboot_required, _configuration_result(_('LDAP User Object Filter Has Unmatched Parenthesis'),
|
||||||
gdrive_error)
|
gdrive_error)
|
||||||
|
|
||||||
if to_save["ldap_import_user_filter"] == '0':
|
if "ldap_import_user_filter" in to_save and to_save["ldap_import_user_filter"] == '0':
|
||||||
config.config_ldap_member_user_object = ""
|
config.config_ldap_member_user_object = ""
|
||||||
else:
|
else:
|
||||||
if config.config_ldap_member_user_object.count("%s") != 1:
|
if config.config_ldap_member_user_object.count("%s") != 1:
|
||||||
|
|
|
@ -1045,24 +1045,41 @@ def convert_bookformat(book_id):
|
||||||
def edit_list_book(param):
|
def edit_list_book(param):
|
||||||
vals = request.form.to_dict()
|
vals = request.form.to_dict()
|
||||||
book = calibre_db.get_book(vals['pk'])
|
book = calibre_db.get_book(vals['pk'])
|
||||||
|
ret = ""
|
||||||
if param =='series_index':
|
if param =='series_index':
|
||||||
edit_book_series_index(vals['value'], book)
|
edit_book_series_index(vals['value'], book)
|
||||||
|
ret = Response(json.dumps({'success':True, 'newValue': book.series_index}), mimetype='application/json')
|
||||||
elif param =='tags':
|
elif param =='tags':
|
||||||
edit_book_tags(vals['value'], book)
|
edit_book_tags(vals['value'], book)
|
||||||
|
ret = Response(json.dumps({'success':True, 'newValue': ', '.join([tag.name for tag in book.tags])}),
|
||||||
|
mimetype='application/json')
|
||||||
elif param =='series':
|
elif param =='series':
|
||||||
edit_book_series(vals['value'], book)
|
edit_book_series(vals['value'], book)
|
||||||
|
ret = Response(json.dumps({'success':True, 'newValue': ', '.join([serie.name for serie in book.series])}),
|
||||||
|
mimetype='application/json')
|
||||||
elif param =='publishers':
|
elif param =='publishers':
|
||||||
vals['publisher'] = vals['value']
|
vals['publisher'] = vals['value']
|
||||||
edit_book_publisher(vals, book)
|
edit_book_publisher(vals, book)
|
||||||
|
ret = Response(json.dumps({'success':True, 'newValue': book.publishers}),
|
||||||
|
mimetype='application/json')
|
||||||
elif param =='languages':
|
elif param =='languages':
|
||||||
edit_book_languages(vals['value'], book)
|
edit_book_languages(vals['value'], book)
|
||||||
|
# ToDo: Not working
|
||||||
|
ret = Response(json.dumps({'success':True, 'newValue': ', '.join([lang.name for lang in book.languages])}),
|
||||||
|
mimetype='application/json')
|
||||||
elif param =='author_sort':
|
elif param =='author_sort':
|
||||||
book.author_sort = vals['value']
|
book.author_sort = vals['value']
|
||||||
|
ret = Response(json.dumps({'success':True, 'newValue': book.author_sort}),
|
||||||
|
mimetype='application/json')
|
||||||
elif param =='title':
|
elif param =='title':
|
||||||
book.title = vals['value']
|
book.title = vals['value']
|
||||||
helper.update_dir_stucture(book.id, config.config_calibre_dir)
|
helper.update_dir_stucture(book.id, config.config_calibre_dir)
|
||||||
|
ret = Response(json.dumps({'success':True, 'newValue': book.title}),
|
||||||
|
mimetype='application/json')
|
||||||
elif param =='sort':
|
elif param =='sort':
|
||||||
book.sort = vals['value']
|
book.sort = vals['value']
|
||||||
|
ret = Response(json.dumps({'success':True, 'newValue': book.sort}),
|
||||||
|
mimetype='application/json')
|
||||||
# ToDo: edit books
|
# ToDo: edit books
|
||||||
elif param =='authors':
|
elif param =='authors':
|
||||||
input_authors = vals['value'].split('&')
|
input_authors = vals['value'].split('&')
|
||||||
|
@ -1080,9 +1097,11 @@ def edit_list_book(param):
|
||||||
if book.author_sort != sort_authors:
|
if book.author_sort != sort_authors:
|
||||||
book.author_sort = sort_authors
|
book.author_sort = sort_authors
|
||||||
helper.update_dir_stucture(book.id, config.config_calibre_dir, input_authors[0])
|
helper.update_dir_stucture(book.id, config.config_calibre_dir, input_authors[0])
|
||||||
|
ret = Response(json.dumps({'success':True, 'newValue': ', '.join([author.name for author in book.authors])}),
|
||||||
|
mimetype='application/json')
|
||||||
book.last_modified = datetime.utcnow()
|
book.last_modified = datetime.utcnow()
|
||||||
calibre_db.session.commit()
|
calibre_db.session.commit()
|
||||||
return ""
|
return ret
|
||||||
|
|
||||||
@editbook.route("/ajax/sort_value/<field>/<int:bookid>")
|
@editbook.route("/ajax/sort_value/<field>/<int:bookid>")
|
||||||
@login_required
|
@login_required
|
||||||
|
|
|
@ -577,10 +577,6 @@ body.shelforder > div.container-fluid > div.row-fluid > div.col-sm-10:before {
|
||||||
color: hsla(0, 0%, 100%, .7)
|
color: hsla(0, 0%, 100%, .7)
|
||||||
}
|
}
|
||||||
|
|
||||||
div.btn-group[role=group][aria-label="Download, send to Kindle, reading"] > .downloadBtn {
|
|
||||||
border-left: 2px solid rgba(0, 0, 0, .15)
|
|
||||||
}
|
|
||||||
|
|
||||||
div[aria-label="Edit/Delete book"] > .btn {
|
div[aria-label="Edit/Delete book"] > .btn {
|
||||||
width: 50px;
|
width: 50px;
|
||||||
height: 60px;
|
height: 60px;
|
||||||
|
@ -2936,8 +2932,9 @@ body > div.container-fluid > div > div.col-sm-10 > div > div > div.col-sm-3.col-
|
||||||
}
|
}
|
||||||
|
|
||||||
#bookDetailsModal > .modal-dialog.modal-lg > .modal-content > .modal-body > div > div > div > div.col-sm-3.col-lg-3.col-xs-5 > div.cover, body > div.container-fluid > div > div.col-sm-10 > div > div > div.col-sm-3.col-lg-3.col-xs-5 > div.cover {
|
#bookDetailsModal > .modal-dialog.modal-lg > .modal-content > .modal-body > div > div > div > div.col-sm-3.col-lg-3.col-xs-5 > div.cover, body > div.container-fluid > div > div.col-sm-10 > div > div > div.col-sm-3.col-lg-3.col-xs-5 > div.cover {
|
||||||
margin: 0;
|
margin: auto;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
|
max-width: 200px;
|
||||||
}
|
}
|
||||||
|
|
||||||
#bookDetailsModal > .modal-dialog.modal-lg > .modal-content > .modal-body > div > div > div > div.col-sm-3.col-lg-3.col-xs-5 > div.cover > img, body > div.container-fluid > div > div.col-sm-10 > div > div > div.col-sm-3.col-lg-3.col-xs-5 > div.cover > img {
|
#bookDetailsModal > .modal-dialog.modal-lg > .modal-content > .modal-body > div > div > div > div.col-sm-3.col-lg-3.col-xs-5 > div.cover > img, body > div.container-fluid > div > div.col-sm-10 > div > div > div.col-sm-3.col-lg-3.col-xs-5 > div.cover > img {
|
||||||
|
@ -3145,6 +3142,10 @@ div.btn-group[role=group][aria-label="Download, send to Kindle, reading"] > div.
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
padding: 0
|
padding: 0
|
||||||
}
|
}
|
||||||
|
#readbtn {
|
||||||
|
height: 100%;
|
||||||
|
padding: 16px;
|
||||||
|
}
|
||||||
|
|
||||||
#add-to-shelf > span.caret, #btnGroupDrop1 > span.caret, #read-in-browser > span.caret, .btn-toolbar > .btn-group > #btnGroupDrop2 > span.caret, .btn-toolbar > .btn-group > .btn-group > #btnGroupDrop2 > span.caret {
|
#add-to-shelf > span.caret, #btnGroupDrop1 > span.caret, #read-in-browser > span.caret, .btn-toolbar > .btn-group > #btnGroupDrop2 > span.caret, .btn-toolbar > .btn-group > .btn-group > #btnGroupDrop2 > span.caret {
|
||||||
padding-bottom: 5px
|
padding-bottom: 5px
|
||||||
|
|
4
cps/static/css/libs/bootstrap-table.min.css
vendored
4
cps/static/css/libs/bootstrap-table.min.css
vendored
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -313,6 +313,8 @@ $(function() {
|
||||||
$loadMore.on( "append.infiniteScroll", function( event, response, path, data ) {
|
$loadMore.on( "append.infiniteScroll", function( event, response, path, data ) {
|
||||||
if ($("body").hasClass("blur")) {
|
if ($("body").hasClass("blur")) {
|
||||||
$(".pagination").addClass("hidden").html(() => $(response).find(".pagination").html());
|
$(".pagination").addClass("hidden").html(() => $(response).find(".pagination").html());
|
||||||
|
$(" a:not(.dropdown-toggle) ")
|
||||||
|
.removeAttr("data-toggle");
|
||||||
}
|
}
|
||||||
$(".load-more .row").isotope( "appended", $(data), null );
|
$(".load-more .row").isotope( "appended", $(data), null );
|
||||||
});
|
});
|
||||||
|
|
|
@ -94,6 +94,10 @@ $(function() {
|
||||||
editable: {
|
editable: {
|
||||||
mode: "inline",
|
mode: "inline",
|
||||||
emptytext: "<span class='glyphicon glyphicon-plus'></span>",
|
emptytext: "<span class='glyphicon glyphicon-plus'></span>",
|
||||||
|
success: function (response, __) {
|
||||||
|
if(!response.success) return response.msg;
|
||||||
|
return {newValue: response.newValue};
|
||||||
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -140,7 +144,6 @@ $(function() {
|
||||||
field: key,
|
field: key,
|
||||||
value: data[key]
|
value: data[key]
|
||||||
});
|
});
|
||||||
// console.log(data);
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
@ -1693,7 +1693,7 @@ msgstr "Speicherort der Calibre-Datenbank"
|
||||||
|
|
||||||
#: cps/templates/config_edit.html:29
|
#: cps/templates/config_edit.html:29
|
||||||
msgid "To activate serverside filepicker start Calibre-Web with -f option"
|
msgid "To activate serverside filepicker start Calibre-Web with -f option"
|
||||||
msgstr "Calibre-Web mit -f option starten um die serverseiten Dateiauswahl zu aktivieren"
|
msgstr "Calibre-Web mit -f Option starten um die serverseitige Dateiauswahl zu aktivieren"
|
||||||
|
|
||||||
#: cps/templates/config_edit.html:35
|
#: cps/templates/config_edit.html:35
|
||||||
msgid "Use Google Drive?"
|
msgid "Use Google Drive?"
|
||||||
|
|
Loading…
Reference in New Issue
Block a user