/browse: Show category being currently listed and hide sort combobox in newest book list

This commit is contained in:
Kovid Goyal 2010-10-15 19:57:41 -06:00
parent b0a29af29a
commit deaea30bc0
2 changed files with 12 additions and 7 deletions

View File

@ -193,7 +193,8 @@ function load_page(elem) {
elem.show(); elem.show();
} }
function booklist() { function booklist(hide_sort) {
if (hide_sort) $("#content > .sort_select").hide();
var test = $("#booklist #page0").html(); var test = $("#booklist #page0").html();
if (!test) { if (!test) {
$("#booklist").html(render_error("No books found")); $("#booklist").html(render_error("No books found"));

View File

@ -18,7 +18,7 @@ from calibre.utils.filenames import ascii_filename
from calibre.utils.config import prefs from calibre.utils.config import prefs
from calibre.library.comments import comments_to_html from calibre.library.comments import comments_to_html
def render_book_list(ids): # {{{ def render_book_list(ids, suffix=''): # {{{
pages = [] pages = []
num = len(ids) num = len(ids)
pos = 0 pos = 0
@ -49,7 +49,7 @@ def render_book_list(ids): # {{{
rpages = u'\n\n'.join(rpages) rpages = u'\n\n'.join(rpages)
templ = u'''\ templ = u'''\
<h3>{0}</h3> <h3>{0} {suffix}</h3>
<div id="booklist"> <div id="booklist">
<div class="listnav topnav"> <div class="listnav topnav">
{navbar} {navbar}
@ -76,7 +76,8 @@ def render_book_list(ids): # {{{
'''.format(first=_('First'), last=_('Last'), previous=_('Previous'), '''.format(first=_('First'), last=_('Last'), previous=_('Previous'),
next=_('Next'), num=num) next=_('Next'), num=num)
return templ.format(_('Browsing %d books')%num, pages=rpages, navbar=navbar) return templ.format(_('Browsing %d books')%num, suffix=suffix,
pages=rpages, navbar=navbar)
# }}} # }}}
@ -420,6 +421,7 @@ class BrowseServer(object):
raise raise
category_name = _('Newest') category_name = _('Newest')
hide_sort = 'false'
if category == 'search': if category == 'search':
which = unhexlify(cid) which = unhexlify(cid)
try: try:
@ -428,6 +430,7 @@ class BrowseServer(object):
raise cherrypy.HTTPError(404, 'Search: %r not understood'%which) raise cherrypy.HTTPError(404, 'Search: %r not understood'%which)
elif category == 'newest': elif category == 'newest':
ids = list(self.db.data.iterallids()) ids = list(self.db.data.iterallids())
hide_sort = 'true'
else: else:
ids = self.db.get_books_for_category(category, cid) ids = self.db.get_books_for_category(category, cid)
@ -436,10 +439,11 @@ class BrowseServer(object):
list_sort = 'timestamp' list_sort = 'timestamp'
sort = self.browse_sort_book_list(items, list_sort) sort = self.browse_sort_book_list(items, list_sort)
ids = [x[0] for x in items] ids = [x[0] for x in items]
html = render_book_list(ids) html = render_book_list(ids, suffix=_('in') + ' ' + category_name)
return self.browse_template(sort, category=False).format( return self.browse_template(sort, category=False).format(
title=_('Books in') + " " +category_name, title=_('Books in') + " " +category_name,
script='booklist();', main=html) script='booklist(%s);'%hide_sort, main=html)
@Endpoint(mimetype='application/json; charset=utf-8') @Endpoint(mimetype='application/json; charset=utf-8')
def browse_booklist_page(self, ids=None, sort=None): def browse_booklist_page(self, ids=None, sort=None):
@ -509,7 +513,7 @@ class BrowseServer(object):
items = [self.db.data._data[x] for x in ids] items = [self.db.data._data[x] for x in ids]
sort = self.browse_sort_book_list(items, list_sort) sort = self.browse_sort_book_list(items, list_sort)
ids = [x[0] for x in items] ids = [x[0] for x in items]
html = render_book_list(ids) html = render_book_list(ids, suffix=_('in search')+': '+query)
return self.browse_template(sort, category=False, initial_search=query).format( return self.browse_template(sort, category=False, initial_search=query).format(
title=_('Matching books'), title=_('Matching books'),
script='booklist();', main=html) script='booklist();', main=html)