diff --git a/resources/content_server/browse/browse.css b/resources/content_server/browse/browse.css index e7242fce6d..03a3694eb4 100644 --- a/resources/content_server/browse/browse.css +++ b/resources/content_server/browse/browse.css @@ -482,5 +482,10 @@ h2.library_name { border: none } +.details #random_button { + display:block +} + + /* }}} */ diff --git a/resources/content_server/browse/browse.js b/resources/content_server/browse/browse.js index 6783f83a1d..c6914467fa 100644 --- a/resources/content_server/browse/browse.js +++ b/resources/content_server/browse/browse.js @@ -324,9 +324,15 @@ function show_details(a_dom) { function book() { hidesort(); $('.details .left img').load(function() { + var rb = $('#random_button'); + rb.button(); var img = $('.details .left img'); var height = $('#main').height(); - height = Math.max(height, img.height() + 100); + var bh = 0; + if (rb.length > 0) { + bh = rb.height(); + } + height = Math.max(height, img.height() + bh + 100); $('#main').height(height); }); } diff --git a/resources/content_server/browse/details.html b/resources/content_server/browse/details.html index bbcab841dc..af237a3e93 100644 --- a/resources/content_server/browse/details.html +++ b/resources/content_server/browse/details.html @@ -1,6 +1,7 @@
Cover of {title} + {random}
{formats}
diff --git a/src/calibre/library/server/browse.py b/src/calibre/library/server/browse.py index 697e725884..c520e42f34 100644 --- a/src/calibre/library/server/browse.py +++ b/src/calibre/library/server/browse.py @@ -5,7 +5,7 @@ __license__ = 'GPL v3' __copyright__ = '2010, Kovid Goyal ' __docformat__ = 'restructuredtext en' -import operator, os, json, re +import operator, os, json, re, time from binascii import hexlify, unhexlify from collections import OrderedDict @@ -819,7 +819,7 @@ class BrowseServer(object): raw = json.dumps('\n'.join(summs), ensure_ascii=True) return raw - def browse_render_details(self, id_): + def browse_render_details(self, id_, add_random_button=False): try: mi = self.db.get_metadata(id_, index_is_id=True) except: @@ -886,11 +886,18 @@ class BrowseServer(object): u'
%s
') % (xml(c[0]), c[1]) for c in comments] comments = u'
%s
'%('\n\n'.join(comments)) + random = '' + if add_random_button: + href = '%s/browse/random?v=%s'%( + self.opts.url_prefix, time.time()) + random = '%s' % ( + xml(href, True), xml(_('Choose another random book'), True), + xml(_('Another random book'))) return self.browse_details_template.format( id=id_, title=xml(mi.title, True), fields=fields, get_url=args['get_url'], fmt=args['fmt'], - formats=args['formats'], comments=comments) + formats=args['formats'], comments=comments, random=random) @Endpoint(mimetype='application/json; charset=utf-8') def browse_details(self, id=None): @@ -908,7 +915,7 @@ class BrowseServer(object): import random book_id = random.choice(self.db.search_getting_ids( '', self.search_restriction)) - ans = self.browse_render_details(book_id) + ans = self.browse_render_details(book_id, add_random_button=True) return self.browse_template('').format( title='', script='book();', main=ans)