From d912119e8fcc8b1d6bd46bc2e0c63789d6f691eb Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Thu, 27 Sep 2018 11:17:55 +0530 Subject: [PATCH] Content server: When editing metadata add a button to remove the existing cover. Note that after removing the cover a auto-generated cover is displayed instead. You might need to hit refresh in your browser to see the change. Fixes #1794123 [[Enhancement] Content Server: add option to remove cover and/or generate default cover](https://bugs.launchpad.net/calibre/+bug/1794123) --- src/pyj/book_list/edit_metadata.pyj | 26 ++++++++++++++++++++------ 1 file changed, 20 insertions(+), 6 deletions(-) diff --git a/src/pyj/book_list/edit_metadata.pyj b/src/pyj/book_list/edit_metadata.pyj index 0c69a6c1a7..ef13d39cb6 100644 --- a/src/pyj/book_list/edit_metadata.pyj +++ b/src/pyj/book_list/edit_metadata.pyj @@ -557,10 +557,20 @@ def cover_chosen(top_container_id, book_id, container_id, files): cover_chosen.counter = 0 +def remove_cover(top_container_id, book_id): + nonlocal has_changes + changes.cover = '--remove--' + has_changes = True + on_close(top_container_id) + + def cover_edit(container_id, book_id, field, fm, div, mi): upload_files_widget(div, cover_chosen.bind(None, container_id, book_id), _( 'Change the cover by selecting the cover image or drag and drop of the cover image here.'), single_file=True, accept_extensions='png jpeg jpg') + div.appendChild(E.div( + style='padding: 1rem', + create_button(_('Remove existing cover'), action=remove_cover.bind(None, container_id, book_id)))) # }}} @@ -818,12 +828,16 @@ def render_metadata(mi, table, container_id, book_id): # {{{ style='max-width: 300px; max-height: 400px', ) if changes.cover: - r = FileReader() - r.onload = def(evt): - img.src = evt.target.result - changes.cover = evt.target.result - r.readAsDataURL(changes.cover) - v'delete changes.cover' + if changes.cover is '--remove--': + img.removeAttribute('src') + changes.cover = None + else: + r = FileReader() + r.onload = def(evt): + img.src = evt.target.result + changes.cover = evt.target.result + r.readAsDataURL(changes.cover) + v'delete changes.cover' else: img.src = cover_url(book_id) table.lastChild.lastChild.appendChild(img)