From: Radek Czajka <radoslaw.czajka@nowoczesnapolska.org.pl> Date: Tue, 17 Apr 2012 14:22:06 +0000 (+0200) Subject: fix #2036, fix #2078: more audiobook links X-Git-Url: https://git.mdrn.pl/wolnelektury.git/commitdiff_plain/293deaa71a6e390517966f4ba9fa907562524636?ds=inline;hp=ba233a49e66a99626ca2a2f19d804e1bdd130977 fix #2036, fix #2078: more audiobook links --- diff --git a/apps/catalogue/static/player/openplayer.js b/apps/catalogue/static/player/openplayer.js new file mode 100644 index 000000000..e8da79c81 --- /dev/null +++ b/apps/catalogue/static/player/openplayer.js @@ -0,0 +1,18 @@ +(function($) { + $(function() { + + + +$('.open-player').click(function(event) { + event.preventDefault(); + window.open($(this).attr('href'), + 'player', + 'width=422, height=500' + ); +}); + + + + }); +})(jQuery); + diff --git a/apps/catalogue/static/player/player.css b/apps/catalogue/static/player/player.css index c449803e5..829a9a1c0 100644 --- a/apps/catalogue/static/player/player.css +++ b/apps/catalogue/static/player/player.css @@ -15,3 +15,7 @@ .play:hover { color: #0D7E85; } + +.daisy-list { + list-style: none; +} diff --git a/apps/catalogue/templates/catalogue/book_text.html b/apps/catalogue/templates/catalogue/book_text.html index 53a0c6a5f..e844c96c1 100644 --- a/apps/catalogue/templates/catalogue/book_text.html +++ b/apps/catalogue/templates/catalogue/book_text.html @@ -1,4 +1,5 @@ {% load i18n %} +{% load url from future %} {% load static from staticfiles %} {% load chunks compressed catalogue_tags %} <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" @@ -25,6 +26,10 @@ <li><a class="menu" href="#info">{% trans "Infobox" %}</a></li> <li><a href="{{ book.get_absolute_url }}">{% trans "Book's page" %}</a></li> <li><a class="menu" href="#download">{% trans "Download" %}</a></li> + {% if related.media.mp3 or related.media.ogg %} + <li><a class="open-player" target="_blank" href="{% url "book_player" book.slug %}"> + {% trans "Listen" %}</a></li> + {% endif %} </ul> </div> <div id="info"> @@ -35,16 +40,20 @@ {% if book.pdf_file %} <li><a href="{{ book.pdf_file.url}}">PDF</a> {% trans "to print" %}</li> {% endif %} - {% if book.epub_file %} + {% if book.epub_file %} <li><a href="{{ book.epub_file.url}}">EPUB</a> {% trans "for a reader" %}</li> {% endif %} - {% if book.mobi_file %} + {% if book.mobi_file %} <li><a href="{{ book.mobi_file.url}}">MOBI</a> {% trans "for Kindle" %}</li> {% endif %} - {% if book.txt_file %} + {% if book.txt_file %} <li><a href="{{ book.txt_file.url}}">TXT</a> {% trans "for advanced usage" %}</li> {% endif %} - <li><a href="{% url custom_pdf_form book.slug %}">{% trans "Download a custom PDF" %}</a></li> + <li><a href="{% url "custom_pdf_form" book.slug %}">{% trans "Download a custom PDF" %}</a></li> + {% if related.media.mp3 or related.media.ogg or related.media.daisy %} + <li>{% trans "Download all audiobooks for this book" %}: + {% download_audio book %}</li> + {% endif %} </ul> </div> <div id="header"> diff --git a/apps/catalogue/templates/catalogue/book_wide.html b/apps/catalogue/templates/catalogue/book_wide.html index ad588bd7e..921356003 100644 --- a/apps/catalogue/templates/catalogue/book_wide.html +++ b/apps/catalogue/templates/catalogue/book_wide.html @@ -1,6 +1,6 @@ {% extends "catalogue/book_short.html" %} {% load i18n %} -{% load tag_list from catalogue_tags %} +{% load download_audio tag_list from catalogue_tags %} {% load cite_promo from social_tags %} @@ -55,10 +55,9 @@ <h2 class="mono">{% trans "Download" %}</h2> <ul class="plain"> <li> - {% if related.media.mp3 or related.media.ogg %} - {% trans "Download all audiobooks for this book" %}: - {% if related.media.mp3 %}<a href="{% url download_zip_mp3 book.slug %}">MP3</a>{% endif %}{% if related.media.mp3 and related.media.ogg %},{% endif %} - {% if related.media.ogg %}<a href="{% url download_zip_ogg book.slug %}">OGG</a>{% endif %}. + {% if related.media.mp3 or related.media.ogg or related.media.daisy %} + {% trans "Download all audiobooks for this book" %}: + {% download_audio book %}. {% endif %} </li> <li> diff --git a/apps/catalogue/templates/catalogue/player.html b/apps/catalogue/templates/catalogue/player.html index 7ecf3e669..f32025b83 100755 --- a/apps/catalogue/templates/catalogue/player.html +++ b/apps/catalogue/templates/catalogue/player.html @@ -1,5 +1,6 @@ <!DOCTYPE html> <html> + {% load static from staticfiles %} {% load i18n compressed %} {% load catalogue_tags %} {% load thumbnail %} @@ -31,10 +32,7 @@ <div class="player-info normal-text"> <p><a target="_blank" href="{{ book.get_absolute_url }}">{% trans "Book's page" %}</a>.</p> - <p>{% trans "Download as" %} - <a href="{% url download_zip_mp3 book.slug %}">MP3</a>{% if have_oggs %}, - <a href="{% url download_zip_ogg book.slug %}">Ogg Vorbis</a>{% endif %}. - </p> + <p>{% trans "Download as" %} {% download_audio book False %}.</p> {% if book.has_daisy_file %} <p>DAISY:</p> diff --git a/apps/catalogue/templatetags/catalogue_tags.py b/apps/catalogue/templatetags/catalogue_tags.py index 78ce04ab5..fdd0a73d2 100644 --- a/apps/catalogue/templatetags/catalogue_tags.py +++ b/apps/catalogue/templatetags/catalogue_tags.py @@ -14,7 +14,7 @@ from django.utils.translation import ugettext as _ from catalogue import forms from catalogue.utils import split_tags -from catalogue.models import Book, Fragment, Tag +from catalogue.models import Book, BookMedia, Fragment, Tag register = template.Library() @@ -387,3 +387,22 @@ def tag_url(category, slug): return reverse('catalogue.views.tagged_object_list', args=[ '/'.join((Tag.categories_dict[category], slug)) ]) + + +@register.simple_tag +def download_audio(book, daisy=True): + related = book.related_info() + links = [] + if related['media'].get('mp3'): + links.append("<a href='%s'>%s</a>" % + (reverse('download_zip_mp3', args=[book.slug]), + BookMedia.formats['mp3'].name)) + if related['media'].get('ogg'): + links.append("<a href='%s'>%s</a>" % + (reverse('download_zip_ogg', args=[book.slug]), + BookMedia.formats['ogg'].name)) + if daisy and related['media'].get('daisy'): + for dsy in book.get_media('daisy'): + links.append("<a href='%s'>%s</a>" % + (dsy.file.url, BookMedia.formats['daisy'].name)) + return ", ".join(links) diff --git a/apps/catalogue/views.py b/apps/catalogue/views.py index 9687db6fd..599fde1cb 100644 --- a/apps/catalogue/views.py +++ b/apps/catalogue/views.py @@ -265,6 +265,7 @@ def book_text(request, slug): book_themes = book_themes.items() book_themes.sort(key=lambda s: s[0].sort_key) + related = book.related_info() return render_to_response('catalogue/book_text.html', locals(), context_instance=RequestContext(request)) diff --git a/apps/wolnelektury_core/static/js/base.js b/apps/wolnelektury_core/static/js/base.js index 77315e6f7..d43f1f23e 100755 --- a/apps/wolnelektury_core/static/js/base.js +++ b/apps/wolnelektury_core/static/js/base.js @@ -97,15 +97,6 @@ $('#themes-list-toggle').click(function(event) { }); -$('.open-player').click(function(event) { - event.preventDefault(); - window.open($(this).attr('href'), - 'player', - 'width=422, height=500' - ); -}); - - $('.book-list-index').click(function(){ $('.book-list-show-index').hide('slow'); if($(this).parent().next('ul:not(:hidden)').length == 0){ diff --git a/wolnelektury/settings/static.py b/wolnelektury/settings/static.py index 8dcdf8f3b..e1e859442 100644 --- a/wolnelektury/settings/static.py +++ b/wolnelektury/settings/static.py @@ -79,6 +79,7 @@ PIPELINE_JS = { 'js/base.js', 'pdcounter/pdcounter.js', 'sponsors/js/sponsors.js', + 'player/openplayer.js', 'js/search.js', ), @@ -93,7 +94,13 @@ PIPELINE_JS = { 'output_filename': 'js/player.min.js', }, 'book': { - 'source_filenames': ('js/jquery.eventdelegation.js', 'js/jquery.scrollto.js', 'js/jquery.highlightfade.js', 'js/book.js',), + 'source_filenames': [ + 'js/jquery.eventdelegation.js', + 'js/jquery.scrollto.js', + 'js/jquery.highlightfade.js', + 'js/book.js', + 'player/openplayer.js', + ], 'output_filename': 'js/book.min.js', }, 'book_ie': {