mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
Content server viewer: Allow editing bookmarks. Fixes #1966872 [[Enhancement] - Edit bookmarks](https://bugs.launchpad.net/calibre/+bug/1966872)
This commit is contained in:
parent
19a9346296
commit
49fb93a5ff
@ -150,6 +150,17 @@ class AnnotationsManager: # {{{
|
||||
self.sync_annots_to_server('bookmarks')
|
||||
return changed
|
||||
|
||||
def edit_bookmark(self, title, new_title):
|
||||
changed = False
|
||||
for b in self.bookmarks:
|
||||
if b.title is title:
|
||||
b.title = new_title
|
||||
b.timestamp = Date().toISOString()
|
||||
changed = True
|
||||
if changed:
|
||||
self.sync_annots_to_server('bookmarks')
|
||||
return changed
|
||||
|
||||
def default_bookmark_title(self):
|
||||
all_titles = {bm.title:True for bm in self.bookmarks if not bm.removed}
|
||||
base_default_title = _('Bookmark')
|
||||
|
@ -23,6 +23,13 @@ def remove_bookmark(annotations_manager, title, list_dom_node):
|
||||
)
|
||||
|
||||
|
||||
def edit_bookmark(annotations_manager, title, list_dom_node):
|
||||
new_title = window.prompt(_('Enter new title for bookmark:'), title)
|
||||
if new_title:
|
||||
if annotations_manager.edit_bookmark(title, new_title):
|
||||
console.log(list_dom_node)
|
||||
list_dom_node.querySelector('.item-title').textContent = new_title
|
||||
|
||||
|
||||
def create_bookmarks_list(annotations_manager, onclick):
|
||||
bookmarks = sorted(annotations_manager.all_bookmarks(), key=def(x): return x.title.toLowerCase();)
|
||||
@ -30,10 +37,11 @@ def create_bookmarks_list(annotations_manager, onclick):
|
||||
for bookmark in bookmarks:
|
||||
if not bookmark.removed:
|
||||
sa = create_side_action('trash', remove_bookmark.bind(None, annotations_manager, bookmark.title), _('Remove this bookmark'))
|
||||
ea = create_side_action('edit', edit_bookmark.bind(None, annotations_manager, bookmark.title), _('Edit this bookmark'))
|
||||
items.push(create_item(
|
||||
bookmark.title, data=bookmark.pos,
|
||||
action=onclick.bind(None, goto_cfi.bind(None, bookmark.pos)),
|
||||
side_actions=[sa]
|
||||
side_actions=[sa, ea]
|
||||
))
|
||||
c = E.div(style='margin-top: 1ex')
|
||||
build_list(c, items)
|
||||
|
Loading…
x
Reference in New Issue
Block a user