mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
Start work on button to fetch more books
This commit is contained in:
parent
07c9d1bb58
commit
29bf9b022d
@ -19,8 +19,8 @@ class BooksView:
|
|||||||
nonlocal bv_counter
|
nonlocal bv_counter
|
||||||
bv_counter += 1
|
bv_counter += 1
|
||||||
self.interface_data = interface_data
|
self.interface_data = interface_data
|
||||||
self.search_result = interface_data['search_result']
|
self.is_fetching = False
|
||||||
self.metadata_map = interface_data['metadata']
|
self.shown_book_ids = {}
|
||||||
self.container_id = 'books-view-' + bv_counter
|
self.container_id = 'books-view-' + bv_counter
|
||||||
style = build_rule('#' + self.container_id + ' .cover_grid img:hover', transform='scale(1.2)')
|
style = build_rule('#' + self.container_id + ' .cover_grid img:hover', transform='scale(1.2)')
|
||||||
style += build_rule('#' + self.container_id + ' .cover_grid img:active', transform='scale(2.0)')
|
style += build_rule('#' + self.container_id + ' .cover_grid img:active', transform='scale(2.0)')
|
||||||
@ -28,15 +28,24 @@ class BooksView:
|
|||||||
id=self.container_id, style='display:block',
|
id=self.container_id, style='display:block',
|
||||||
E.style(style),
|
E.style(style),
|
||||||
E.div(),
|
E.div(),
|
||||||
E.div(id='get-more-books')
|
E.div()
|
||||||
)
|
)
|
||||||
document.body.appendChild(div)
|
document.body.appendChild(div)
|
||||||
self.set_view_mode(get_session_data().get('view_mode'))
|
self.set_view_mode(get_session_data().get('view_mode'))
|
||||||
|
self.create_more_button(div)
|
||||||
|
|
||||||
|
def create_more_button(self, div):
|
||||||
more = div.lastChild
|
more = div.lastChild
|
||||||
more.appendChild(create_button(
|
more.appendChild(create_button(
|
||||||
_('Show more books'), 'cloud-download'
|
_('Show more books'), 'cloud-download', def():self.get_more_books()
|
||||||
))
|
))
|
||||||
|
set_css(more.firstChild, display='block', margin_left='auto', margin_right='auto')
|
||||||
set_css(more, font_size='1.5rem', padding_top='1.5rem', margin_bottom='1.5rem', width='100%', text_align='center')
|
set_css(more, font_size='1.5rem', padding_top='1.5rem', margin_bottom='1.5rem', width='100%', text_align='center')
|
||||||
|
more.appendChild(E.div(
|
||||||
|
E.i(class_='fa fa-lg fa-cloud-download'), '\xa0' + _('Fetching metadata for more books, please wait') + '…',
|
||||||
|
style='margin-left:auto; margin-right:auto; display:none')
|
||||||
|
)
|
||||||
|
self.update_fetching_status()
|
||||||
|
|
||||||
def set_view_mode(self, mode='cover_grid'):
|
def set_view_mode(self, mode='cover_grid'):
|
||||||
if self.mode == mode:
|
if self.mode == mode:
|
||||||
@ -76,6 +85,34 @@ class BooksView:
|
|||||||
c.insertBefore(E.div(), c.lastChild)
|
c.insertBefore(E.div(), c.lastChild)
|
||||||
self.init_grid()
|
self.init_grid()
|
||||||
|
|
||||||
|
def render_ids(self):
|
||||||
|
book_ids = self.interface_data['search_result']['book_ids']
|
||||||
|
self.shown_book_ids = {}
|
||||||
|
div = self.grid
|
||||||
|
for book_id in book_ids:
|
||||||
|
div.appendChild(self.render_book(book_id))
|
||||||
|
self.shown_book_ids[book_id] = True
|
||||||
|
|
||||||
|
def on_resize(self):
|
||||||
|
if self.resize_grid:
|
||||||
|
self.resize_grid()
|
||||||
|
|
||||||
|
def update_fetching_status(self):
|
||||||
|
c = self.container
|
||||||
|
more = c.lastChild
|
||||||
|
if self.is_fetching:
|
||||||
|
more.firstChild.style.display = 'none'
|
||||||
|
more.lastChild.style.display = 'block'
|
||||||
|
elif self.interface_data['search_result']['total_num'] > self.interface_data['search_result']['book_ids'].length:
|
||||||
|
more.firstChild.style.display = 'block'
|
||||||
|
more.lastChild.style.display = 'none'
|
||||||
|
else:
|
||||||
|
more.firstChild.style.display = 'none'
|
||||||
|
more.lastChild.style.display = 'none'
|
||||||
|
|
||||||
|
def get_more_books(self):
|
||||||
|
self.update_fetching_status()
|
||||||
|
|
||||||
# Cover grid {{{
|
# Cover grid {{{
|
||||||
|
|
||||||
def init_cover_grid(self):
|
def init_cover_grid(self):
|
||||||
@ -117,13 +154,4 @@ class BooksView:
|
|||||||
|
|
||||||
# }}}
|
# }}}
|
||||||
|
|
||||||
def render_ids(self, book_ids=None):
|
|
||||||
if book_ids is None:
|
|
||||||
book_ids = self.search_result['book_ids']
|
|
||||||
div = self.grid
|
|
||||||
for book_id in book_ids:
|
|
||||||
div.appendChild(self.render_book(book_id))
|
|
||||||
|
|
||||||
def on_resize(self):
|
|
||||||
if self.resize_grid:
|
|
||||||
self.resize_grid()
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user