Merge pull request #50 from EbookFoundation/styleboys

Styleboys
pull/51/head
Nicholas Antonov 2018-01-30 16:41:40 -05:00 committed by GitHub
commit 156f21b02c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 247 additions and 566 deletions

View File

@ -5,7 +5,7 @@
{% load purchased %} {% load purchased %}
{% load lib_acqs %} {% load lib_acqs %}
{% load sass_tags %} {% load sass_tags %}
{% block title %}— {% block title %}—
{% if work.is_free %} {% if work.is_free %}
{{ work.title }} is a Free eBook. {% for fmt in work.formats %}[{{ fmt }}]{% endfor %} {{ work.title }} is a Free eBook. {% for fmt in work.formats %}[{{ fmt }}]{% endfor %}
{% else %} {% else %}
@ -22,503 +22,100 @@
<link href="{% sass_src 'scss/bookview.scss' %}" rel="stylesheet" type="text/css" /> <link href="{% sass_src 'scss/bookview.scss' %}" rel="stylesheet" type="text/css" />
{% endblock %} {% endblock %}
{% block extra_js %} {% block content %}
<script type="text/javascript" src="{{ jquery_ui_home }}"></script>
<script type="text/javascript" src="/static/js/wishlist.js"></script>
<script type="text/javascript" src="/static/js/tabs4.js"></script>
<script type="text/javascript" src="/static/js/widgets.js"></script>
<script type="text/javascript" src="/static/js/counter.js"></script>
<script type="text/javascript" src="/static/js/embed.js"></script>
{% if user.is_staff or user in work.last_campaign.managers.all %}
{{ kwform.media.js }}
{% endif %}
<!-- needed for DeGruyter seed description hack
makes template vars accessible in JS
-->
<script type="text/javascript">
var numWishers = {{ wishers }};
{% if request.user.id in work.last_campaign.supporters %}
var isSupporter = true;
{% else %}
var isSupporter = false;
{% endif %}
</script>
{% endblock %}
{% block topsection %}
{% if work.last_campaign.status == 'ACTIVE' %}
{% if request.user in work.last_campaign.managers.all %}
<div class="launch_top pale">Hi, {{ request.user.username }}. Since you're a manager for this campaign, you can <a href="{% url 'manage_campaign' id=work.last_campaign.id %}">edit this campaign</a>.</div>
{% endif %}
{% elif not work.user_with_rights %}
{% if request.user.rights_holder.all %}
<div class="launch_top pale">Hi, {{ request.user.username }}. Since you're an authorized Unglue.it rights holder, if you own the worldwide electronic rights to this work, you may claim it through the More... tab. Need help? Check out the <a href="{% url 'rightsholders' %}">rights holder tools page</a>.</div>
{% endif %}
{% elif request.user == work.user_with_rights %}
{% if work.last_campaign.status != 'SUCCESSFUL' %}
<div class="launch_top pale">Hi, {{ request.user.username }}. Since you're a rights holder for this work, you can <a href="{% url 'rightsholders' %}">launch a campaign</a>.</div>
{% endif %}
{% endif %}
{% endblock %}
{% block content %}
{% purchased %}
{% lib_acqs %}
{% with work.last_campaign_status as status %}
{% with work.id as work_id %} {% with work.id as work_id %}
<div id="main-container" itemscope itemtype="http://schema.org/Book"> <div class="wrapper">
<div class="js-main"> <div class="bookImage">
<div id="js-leftcol"> {% if work.uses_google_cover %}
{% include "explore.html" %} <a href="{{ work.googlebooks_url }}">
</div> <img src="{{ work.cover_image_thumbnail }}" alt="Find {{ work.title }} at Google Books" title="Find {{ work.title }} at Google Books" width="131" height="192" />
<div id="js-maincol"> </a>
<div class="js-maincol-inner"> {% else %}
<div id="content-block"> <img itemprop="image" src="{{ work.cover_image_thumbnail }}" alt="{{ work.title }}" title="{{ work.title }}" width="131" height="192" />
<div class="book-detail"> {% endif %}
{% if work.uses_google_cover %} </div>
<div class="book-cover" id="book-detail-img"> <div class="bookDescription">
<a href="{{ work.googlebooks_url }}"> <div class="layout">
<img src="{{ work.cover_image_thumbnail }}" alt="Find {{ work.title }} at Google Books" title="Find {{ work.title }} at Google Books" width="131" height="192" /></a> <h2 class="book-name" itemprop="name">{{ work.title }}</h2>
</div> <div>
{% else %} <div class="pubinfo">
<div id="book-detail-img" class="book-cover" > <h3 class="book-author">
<img itemprop="image" src="{{ work.cover_image_thumbnail }}" alt="{{ work.title }}" title="{{ work.title }}" width="131" height="192" /> <span itemprop="author"><a href="{% url 'search' %}?q={{ work.relators.0.author.name|urlencode }}&amp;ty=au" />{{ work.relators.0.name }}</a></span>{% if work.authors.count == 2 %}
</div> and <span itemprop="author"><a href="{% url 'search' %}?q={{ work.relators.1.author.name|urlencode }}&amp;ty=au" />{{ work.relators.1.name }}</a></span>
{% endif %} {% endif %}{% if work.relators.count > 2 %}{% for author in work.relators %}{% if not forloop.first %}, <span itemprop="author"><a href="{% url 'search' %}?q={{ author.author.name|urlencode }}&amp;ty=au" />{{ author.name }}</a></span>{% endif %}{% endfor %}
<div class="book-detail-info">
<div class="layout">
<h2 class="book-name" itemprop="name">{{ work.title }}</h2>
<div>
<div class="pubinfo">
<h3 class="book-author">
<span itemprop="author"><a href="{% url 'search' %}?q={{ work.relators.0.author.name|urlencode }}&amp;ty=au" />{{ work.relators.0.name }}</a></span>{% if work.authors.count == 2 %}
and <span itemprop="author"><a href="{% url 'search' %}?q={{ work.relators.1.author.name|urlencode }}&amp;ty=au" />{{ work.relators.1.name }}</a></span>
{% endif %}{% if work.relators.count > 2 %}{% for author in work.relators %}{% if not forloop.first %}, <span itemprop="author"><a href="{% url 'search' %}?q={{ author.author.name|urlencode }}&amp;ty=au" />{{ author.name }}</a></span>{% endif %}{% endfor %}
{% endif %}
</h3>
<h3 class="book-year">
{% if work.last_campaign.publisher %}
<span itemprop="publisher"><a href="{% url 'bypubname_list' work.last_campaign.publisher.name.id %}">{{ work.last_campaign.publisher }}</a></span>
{% endif %}
<span itemprop="datePublished">{{ work.publication_date }}</span>
<meta itemprop="inLanguage" content="work.language" />
<meta itemprop="typicalAgeRange" content="work.age_range" />
</h3>
</div>
</div>
</div>
{% if status == 'ACTIVE' %}
{% if work.last_campaign.type != 3 %}
<div class="thermometer" title="{{ work.percent_of_goal }}% of goal">
<div class="cover" style="width: {{ cover_width }}%;">
</div>
<span>{{ work.percent_of_goal }}% of goal</span>
</div>
{% endif %}
<div class="pledged-info noborder">
<div class="campaign-status-info">
{% if work.last_campaign.type == 1 %}
<span>${{ work.last_campaign.current_total|floatformat:0|intcomma }}</span> pledged
{% endif %}
{% if work.last_campaign.type == 2 %}
current ungluing date:
{% endif %}
{% if work.last_campaign.type == 3 %}
<span>${{ work.last_campaign.current_total|floatformat:0|intcomma }}</span> of thanks from
{% endif %}
</div>
<div class="campaign-status-info explainer">
{% if work.last_campaign.type == 1 %}
<span>${{ work.last_campaign.target|floatformat:0|intcomma }}</span> goal
{% endif %}
{% if work.last_campaign.type == 2 %}
<span class="current_cc_date ">{{ work.last_campaign.cc_date|date:"M j, Y" }}</span>
<span class="explanation">After {{ work.last_campaign.cc_date|date:"M j, Y" }} this book will be available for free to anyone, anywhere. Every purchase before then brings that date closer.</span>
{% endif %}
{% if work.last_campaign.type != 3 %}
</div>
<div class="campaign-status-info">
{% endif %}
{% if work.last_campaign.supporters_count == 1 %}
<span>1</span> ungluer
{% else %}
<span>{{ work.last_campaign.supporters_count }}</span> ungluers
{% endif %}
{% if work.last_campaign.type == 3 %}
<br />
{% if work.last_campaign.anon_count == 1 %}
<span>1</span> other
{% else %}
<span>{{ work.last_campaign.anon_count }}</span> others
{% endif %}
{% endif %}
</div>
{% if work.last_campaign.type == 2 %}
<div class="campaign-status-info">
{% if work.lib_acqs.count == 1 %}
<span>1</span> copy in a library
{% else %}
<span>{{ work.lib_acqs.count }}</span> in libraries
{% endif %}
</div>
{% endif %}
{% if work.last_campaign.type != 3 %}
<div class="campaign-status-info explainer">
{% if work.last_campaign.type == 1 %}
<span>{{ work.last_campaign.countdown }}</span> to go
{% else %}
<span>${{ work.last_campaign.left|floatformat:0|intcomma }}</span> to go
<span class="explanation">${{ work.last_campaign.left|floatformat:0|intcomma }} is the amount it would take to make this ebook free to the world tomorrow.</span>
{% endif %}
</div>
{% endif %}
</div>
{% else %}
{% if status == 'SUCCESSFUL' %}
<div class="thermometer successful">
This campaign succeeded on {{ work.last_campaign.success_date|date:"M j, Y" }}.
</div>
<div class="pledged-info noborder">
<div class="campaign-status-info">
{% if work.last_campaign.supporters_count == 1 %}
<span>1</span> ungluer
{% else %}
<span>{{ work.last_campaign.supporters_count }}</span> ungluers
{% endif %}
</div>
<div class="campaign-status-info">
<span>${{ work.last_campaign.current_total|floatformat:0|intcomma }}</span> raised
</div>
<div class="campaign-status-info">
<span>${{ work.last_campaign.target|floatformat:0|intcomma }}</span> goal
</div>
<div class="campaign-status-info">
<span>Unglued!</span>
</div>
</div>
{% endif %}
<div class="pledged-info">
{% if wishers == 1 %}
1 Ungluer has
{% else %}
{{ wishers }} Ungluers have
{% endif %} Faved this Work
</div>
{% endif %}
<div class="find-book">
<label>Learn more at...</label>
<div class="find-link">
{% if work.googlebooks_id %}
<a id="find-google" href="{{ work.googlebooks_url }}"><img src="/static/images/supporter_icons/googlebooks_square.png" title="Find on Google Books" alt="Find on Google Books" /></a>
{% endif %}
{% if work.first_oclc %}
<a rel="nofollow" id="find-oclc" href="https://www.worldcat.org/oclc/{{ work.first_oclc }}"><img src="/static/images/supporter_icons/worldcat_square.png" title="Find on Worldcat" alt="Find on Worldcat" /></a>
{% endif %}
<a rel="nofollow" class="find-openlibrary" href="{% url 'work_openlibrary' work_id %}"><img src="/static/images/supporter_icons/openlibrary_square.png" title="Find on OpenLibrary" alt="Find on OpenLibrary" /></a>
<a rel="nofollow" class="find-goodreads" href="{% url 'work_goodreads' work_id %}"><img src="/static/images/supporter_icons/goodreads_square.png" title="Find on GoodReads" alt="Find on GoodReads" /></a>
<a rel="nofollow" class="find-librarything" href="{% url 'work_librarything' work_id %}"><img src="/static/images/supporter_icons/librarything_square.png" title="Find on LibraryThing" alt="Find on LibraryThing" /></a>
</div>
</div>
<div class="btn_wishlist" id="wishlist_actions">
{% if request.user.is_anonymous %}
<div class="create-account">
<span title="{% url 'work' work_id %}">Login to Fave</span>
</div>
{% elif request.user.id in work.last_campaign.supporters %}
<div class="add-wishlist">
<span class="on-wishlist">Faved!</span>
</div>
{% elif work in request.user.wishlist.works.all %}
<div class="remove-wishlist-workpage">
<span id="w{{ work_id }}">Remove from My Faves</span>
</div>
{% else %}
<div class="add-wishlist">
<span class="work_id" id="w{{ work_id }}">Add to My Faves</span>
</div>
{% endif %}
</div>
</div>
</div>
{% get_comment_count for work as comment_count %}
{% if action == 'editions' %}
<div class="content-block-heading" id="tabs">
<ul class="tabs">
<li class="tabs1"><a href="{% url 'work' work.id %}?tab=1">{% if status == 'ACTIVE' %}Campaign{% else %}Description{% endif %}</a></li>
<li class="tabs2"><a href="{% url 'work' work.id %}?tab=2">Comments {% if comment_count > 0 %}({{ comment_count }}){% endif %}</a></li>
<li class="tabs3" id="supporters"><a href="{% url 'work' work.id %}?tab=3">Ungluers {% if wishers > 0 %}<br />({{ wishers }}){% endif %}</a></li>
<li class="tabs4 active"><a href="#">Editions</a></li>
</ul>
</div>
{% else %}
<div class="content-block-heading" id="tabs">
<ul class="tabs">
<li class="tabs1 {% if activetab == '1' %}active{% endif %}"><a href="#">{% if status == 'ACTIVE' %}Campaign{% else %}Description{% endif %}</a></li>
<li class="tabs2 {% if activetab == '2' %}active{% endif %}"><a href="#">Comments {% if comment_count > 0 %}({{ comment_count }}){% endif %}</a></li>
<li class="tabs3 {% if activetab == '3' %}active{% endif %}" id="supporters"><a href="#">Ungluers {% if wishers > 0 %}<br />({{ wishers }}){% endif %}</a></li>
<li class="tabs4 {% if activetab == '4' %}active{% endif %}"><a href="#">More...</a></li>
</ul>
</div>
{% endif %} {% endif %}
<div id="content-block-content"> </h3>
<div id="tabs-1" class="tabs {% if activetab == '1' %}active{% endif %}"> <h3 class="book-year">
<div class="tabs-content"> {% if work.last_campaign.publisher %}
<div itemprop="description"> <span itemprop="publisher"><a href="{% url 'bypubname_list' work.last_campaign.publisher.name.id %}">{{ work.last_campaign.publisher }}</a></span>
{% if status == 'ACTIVE' %} {% endif %}
{% if work.last_campaign.type != 3 %} <span itemprop="datePublished">{{ work.publication_date }}</span>
{{ work.last_campaign.description|safe }} <meta itemprop="inLanguage" content="work.language" />
{% else %} <meta itemprop="typicalAgeRange" content="work.age_range" />
{{ work.description|safe }} </h3>
{% endif %} </div>
{% elif work.description %}
{{ work.description|safe }}
{% else %}
{{ work.last_campaign.description|safe }}
{% endif %}
</div>
<div>
{% for work_rel in work.works_related_to.all %}
{% if work_rel.from_work.language != 'xx' and work.language != 'xx' %}
<p>
This work is a {{ work_rel.relation }} of <a href="{% url 'work' work_rel.from_work.id %}">{{ work_rel.from_work }}</a>.
</p>
{% endif %}
{% endfor %}
{% for work_rel in work.works_related_from.all %}
{% if work.language != 'xx' and work_rel.to_work.language != 'xx' %}
<p>
<a href="{% url 'work' work_rel.to_work.id %}">{{ work_rel.to_work }}</a> is a {{ work_rel.relation }} of this work.
</p>
{% endif %}
{% endfor %}
{% if work.doab %}
<p>
This book is included in <a href="http://www.doabooks.org/doab?func=search&query=rid%3A{{ work.doab }}">DOAB</a>.
</p>
{% endif %}
{% if work.gtbg %}
<p>
This book is included in <a href="https://www.gutenberg.org/ebooks/{{ work.gtbg }}">Project Gutenberg</a>.
</p>
{% endif %}
</div>
</div>
</div>
<div id="tabs-2" class="tabs {% if activetab == '2' %}active{% endif %}">
<h3>Why {% if work.ebooks.all %}read{% else %}unglue{% endif %} this book? Have your say.</h3>
<div class="tabs-content">
{% render_comment_list for work %}
{% if user.is_authenticated %}
{% render_comment_form for work %}
{% else %}
<p>You must be <a href="{% url 'superlogin' %}?next={{ request.get_full_path|urlencode }}">logged in</a> to comment.</p>
{% endif %}
</div>
</div>
<div id="tabs-3" class="tabs {% if activetab == '3' %}active{% endif %}">
<div class="tabs-content">
{% if request.user.is_staff or request.user in work.last_campaign.managers.all %}
<form id="contact_form" method="POST" action="#" >
{% csrf_token %}
<input type="hidden" name="work" value="{{ work.id }}" />
{% for wish in work.wishes.all reversed %}
{% with wish.wishlist.user as supporter %}
<div class="work_supporter_wide">
<a href="{% url 'supporter' supporter %}">
<span class="work_supporter_avatar">
<img class="user-avatar" src="{{ supporter.profile.avatar_url }}" height="50" width="50" alt="Avatar for {{ supporter }}" title="{{ supporter }}" />
</span>
</a>
<div class="show_supporter_contact_form" >
<img src="/static/images/icons/email.png" title="contact supporter" />
</div>
<div class="info_for_managers">
{{ supporter }}<br />
Wished: {{ wish.created }}<br />
{% if supporter.id in work.last_campaign.supporters %}Pledged!</br />{% endif %}
{% if supporter in work.last_campaign.ungluers.all %}Supported!</br />{% endif %}
</div>
</div>
<div class="supporter_contact_form" ></div>
<input class="supporter_contact_form" type="submit" name="msg_{{supporter.id}}" value="Send Message to {{ supporter.username }}" />
{% endwith %}
{% endfor %}
</form>
{% else %}
{% for wish in work.wishes.all reversed %}
{% with wish.wishlist.user as supporter %}
<div class="work_supporter_nocomment" itemscope itemtype="http://schema.org/Person">
<a itemprop="url" href="{% url 'supporter' supporter %}">
<span class="work_supporter_avatar">
<img class="user-avatar" src="{{ supporter.profile.avatar_url }}" height="50" width="50" alt="Avatar for {{ supporter }}" title="{{ supporter }}" />
</span>
<span class="work_supporter_name">{{ supporter }}</span>
</a>
</div>
{% endwith %}
{% endfor %}
{% endif %}
</div>
</div>
<div id="tabs-4" class="tabs {% if activetab == '4' %}active{% endif %}">
<div class="tabs-content">
{% if action == 'display' %}
{% if status == 'ACTIVE' %}
{% if work.last_campaign.type == 1 %}
<h3 class="tabcontent-title">A campaign is running to unglue <i>{{work.title}}</i>!</h3>
<p>The rights holder, {% for claim in work.claim.all %}
{% if claim.status == 'active' %}
{{ claim.rights_holder.rights_holder_name }}
{% endif %}
{% endfor %}
, has agreed to release <i>{{work.title}}</i> to the world as a Creative Commons licensed ebook (<a href="{{ work.last_campaign.license_url }}">{{ work.last_campaign.license }}</a>) if ungluers can join together to raise ${{ work.last_campaign.target|floatformat:0|intcomma }} by {{ work.last_campaign.deadline }}.
You can help!</p>
{% endif %}
{% if work.last_campaign.type == 2 %}
<h3 class="tabcontent-title">A Buy-to-Unglue Campaign is running to unglue <i>{{work.title}}</i>!</h3>
<p>The rights holder, {% for claim in work.claim.all %}
{% if claim.status == 'active' %}
{{ claim.rights_holder.rights_holder_name }}
{% endif %}
{% endfor %}
, has agreed to release <i>{{work.title}}</i> to the world as a Creative Commons licensed ebook (<a href="{{ work.last_campaign.license_url }}">{{ work.last_campaign.license }}</a>) on {{ work.last_campaign.cc_date }}. For every copy that ungluers purchase, that date gets sooner. ${{ work.last_campaign.left|floatformat:0|intcomma }} of sales will unglue the book <i>TODAY</i>.
You can help!</p>
{% endif %}
{% if work.last_campaign.type == 3 %}
<h3 class="tabcontent-title">A Thanks-for-Ungluing Campaign is running to reward the creators of <i>{{work.title}}</i>!</h3>
<p>The rights holder, {% for claim in work.claim.all %}
{% if claim.status == 'active' %}
{{ claim.rights_holder.rights_holder_name }}
{% endif %}
{% endfor %}
, has released <i>{{work.title}}</i> to the world as a Creative Commons licensed ebook (<a href="{{ work.last_campaign.license_url }}">{{ work.last_campaign.license }}</a>) .
You can help us say "Thank You!" so that other creators will do the same.</p>
{% endif %}
<h4>Campaign details: the fine print</h4>
{{ work.last_campaign.details|safe }}
{% endif %}
{% if status == 'SUCCESSFUL' %}
<h3 class="tabcontent-title">A campaign has succeeded to unglue <i>{{work.title}}</i>!</h3>
<p>The rights holder, {% for claim in work.claim.all %}
{% if claim.status == 'active' %}
{{ claim.rights_holder.rights_holder_name }}
{% endif %}
{% endfor %}
, has agreed to release <i>{{work.title}}</i> to the world as a Creative Commons licensed ebook (<a href="{{ work.last_campaign.license_url }}">{{ work.last_campaign.license }}</a>) thanks to the efforts of ungluers like you.</p>
<h4>Campaign details: the fine print</h4>
{{ work.last_campaign.details|safe }}
{% endif %}
{% if status != 'ACTIVE' and status != 'SUCCESSFUL' %}
<h4> Rights Information </h4>
{% if claimstatus == 'one_active' %}
<p>This work has been claimed by {{ rights_holder_name }}.</p>
{% else %}
{% if claimstatus == 'disputed' %}
<p>Rights claims are pending.</p>
{% else %}
{% if claimstatus == 'one_pending' %}
<p>A claim for this work by {{ rights_holder_name }} is pending.</p>
{% else %}
{% if request.user.rights_holder.all.count %}
Is this work yours? Claim it: <br /><br />
<form method="GET" action="{% url 'claim' %}">
{% csrf_token %}
{{ claimform.user }}
{{ claimform.work }}
{{ claimform.rights_holder }}
<input type="submit" name="submit" value="Claim" />
</form><br />
{% else %}
Are you the author or publisher of this work? If so, you can claim it as yours by <a href="{% url 'rightsholders' %}">registering as an Unglue.it rights holder</a>.
{% endif %}
{% endif %}
{% endif %}
{% endif %}
{% endif %}
{% if work.is_free %}
<h4>Downloads</h4>
<div class="pledged-info">
This work has been downloaded {{ work.download_count }} times via unglue.it ebook links.
<ol>
{% for ebook in work.ebooks.all %}
<li>{{ ebook.download_count }} - {{ ebook.format }} {% if ebook.version_label %} ({{ ebook.version_label }}) {% endif %}({{ ebook.rights }}) at {{ ebook.provider }}. </li>
{% endfor %}
</ol>
</div>
{% if user.is_staff %}
<p>
<a href="{% url 'feature' work.id %}">Feature this work today.</a>
</p>
{% endif %}
{% endif %}
{% if user.is_staff %}
<h4>Related Works</h4>
<div><a href="{% url 'merge' work_id %}">Merge other works into this one</a></div>
{% endif %}
<h4>Keywords</h4>
{% if work.subjects.all.count > 0 %}
<ul id="kw_list">
{% for subject in work.subjects.all %}
<li itemprop="keywords">{{ subject.name }}
{% if user.is_staff or user in work.last_campaign.managers.all %}
<span class="deletebutton" data="{{ subject.name }}">x</span>
{% endif %}
</li>
{% endfor %}
</ul>
{% else %}
No keywords yet.
<ul id="kw_list"></ul>
{% endif %}
{% if user_can_edit_work %}
<form method="POST" id="kw_add_form">{% csrf_token %}
{{ kwform.add_kw }}<input type="hidden" name="kw_add" value="true"> <input type="submit" name="kw_add_fake" value="add keyword" id="kw_add_form_submit" />
</form>
{% endif %}
{% endif %}
<h4>Editions</h4>
{% if alert %}
<div class="yikes"><br />{{ alert }}</div>
{% endif %}
{% if user_can_edit_work %}
<div><a href="{% url 'new_edition' work_id edition.id %}">Create a new edition for this work</a><br /><br /></div>
{% endif %}
{% if action == 'editions' %}
{% include 'split.html' %}
{% else %}
{% with work.preferred_edition as edition %}
{% include 'edition_display.html' %}
{% endwith %}
{% if not campaign %}
{% for edition in editions %}
{% if edition != work.preferred_edition %}
{% include 'edition_display.html' %}
{% endif %}
{% endfor %}
{% endif %}
<div><a href="{% url 'work_editions' work_id %}">All editions for this work.</a></div>
{% endif %}
</div>
</div>
</div>
</div>
</div> </div>
</div> </div>
<div id="js-rightcol"> <div itemprop="description">
{% include 'work_action.html' %} {% if status == 'ACTIVE' %}
{% if work.last_campaign.type != 3 %}
{{ work.last_campaign.description|safe }}
{% else %}
{{ work.description|safe }}
{% endif %}
{% elif work.description %}
{{ work.description|safe }}
{% else %}
{{ work.last_campaign.description|safe }}
{% endif %}
</div> </div>
</div> </div>
<div class="bookSidebar">
<div class="book-sidebar-item">
<div class="btn_wishlist" id="wishlist_actions">
{% if request.user.is_anonymous %}
<div class="create-account">
<span title="{% url 'work' work_id %}">Login to Fave</span>
</div>
{% elif request.user.id in work.last_campaign.supporters %}
<div class="add-wishlist">
<span class="on-wishlist">Faved!</span>
</div>
{% elif work in request.user.wishlist.works.all %}
<div class="remove-wishlist-workpage">
<span id="w{{ work_id }}">Remove from My Faves</span>
</div>
{% else %}
<div class="add-wishlist">
<span class="work_id" id="w{{ work_id }}">Add to My Faves</span>
</div>
{% endif %}
</div>
</div>
<div class="book-sidebar-item">
<a rel="nofollow" class="find-goodreads" href="{% url 'work_goodreads' work_id %}"><img src="/static/images/supporter_icons/goodreads_square.png" title="Find on GoodReads" alt="Find on GoodReads" /></a>
<span>GoodReads</span>
</div>
<div class="book-sidebar-item">
<a rel="nofollow" class="find-librarything" href="{% url 'work_librarything' work_id %}"><img src="/static/images/supporter_icons/librarything_square.png" title="Find on LibraryThing" alt="Find on LibraryThing" /></a>
<span>LibraryThing</span>
</div>
<div class="bookDownload">
<button>Download</button>
</div>
<div class="bookDonate">
<button>Donate</button>
</div>
</div>
<div class="bookComments">
<h2>Comments</h2>
{% render_comment_list for work %}
{% if user.is_authenticated %}
{% render_comment_form for work %}
{% else %}
<p>You must be <a href="{% url 'superlogin' %}?next={{ request.get_full_path|urlencode }}">logged in</a> to comment.</p>
{% endif %}
</div>
</div> </div>
{% endwith %} {% endwith %}
{% endwith %}
{% endblock %} {% endblock %}

View File

@ -13,7 +13,7 @@
float: left; float: left;
margin-right:10px; margin-right:10px;
width:151px; width:151px;
img { img {
.mediaborder; .mediaborder;
} }
@ -47,7 +47,7 @@
font-weight:normal; font-weight:normal;
color:@link-color; color:@link-color;
} }
> div { > div {
width:100%; width:100%;
clear:both; clear:both;
@ -56,50 +56,46 @@
border-top:1px solid @pale-blue; border-top:1px solid @pale-blue;
padding:10px 0; padding:10px 0;
} }
> div.layout { > div.layout {
border: none; border: none;
padding: 0; padding: 0;
div.pubinfo { div.pubinfo {
float: left; float: left;
width: auto; width: auto;
padding-bottom: 7px; padding-bottom: 7px;
} }
} }
.btn_wishlist span {
text-align: right;
}
.find-book label { .find-book label {
float:left; float:left;
line-height:31px; line-height:31px;
} }
.find-link { .find-link {
float:right; float:right;
img { img {
padding: 2px; padding: 2px;
.one-border-radius(5px); .one-border-radius(5px);
} }
} }
.pledged-info { .pledged-info {
padding:10px 0; padding:10px 0;
position: relative; position: relative;
&.noborder { &.noborder {
border-top: none; border-top: none;
padding-top: 0; padding-top: 0;
} }
.campaign-status-info { .campaign-status-info {
float: left; float: left;
width: 50%; width: 50%;
margin-top: @font-size-default; margin-top: @font-size-default;
span { span {
font-size: @font-size-larger; font-size: @font-size-larger;
color: @medium-blue; color: @medium-blue;
@ -107,7 +103,7 @@
} }
} }
} }
.thermometer { .thermometer {
.one-border-radius(10px); .one-border-radius(10px);
border: solid 2px @blue-grey; border: solid 2px @blue-grey;
@ -118,22 +114,22 @@
/* looks better if we start the gradient a little closer to the success color */ /* looks better if we start the gradient a little closer to the success color */
@greener-than-alert: #CF6944; @greener-than-alert: #CF6944;
background: -webkit-gradient(linear, left top, right top, from(@call-to-action), to(@greener-than-alert)); background: -webkit-gradient(linear, left top, right top, from(@call-to-action), to(@greener-than-alert));
background: -webkit-linear-gradient(left, @greener-than-alert, @call-to-action); background: -webkit-linear-gradient(left, @greener-than-alert, @call-to-action);
background: -moz-linear-gradient(left, @greener-than-alert, @call-to-action); background: -moz-linear-gradient(left, @greener-than-alert, @call-to-action);
background: -ms-linear-gradient(left, @greener-than-alert, @call-to-action); background: -ms-linear-gradient(left, @greener-than-alert, @call-to-action);
background: -o-linear-gradient(left, @greener-than-alert, @call-to-action); background: -o-linear-gradient(left, @greener-than-alert, @call-to-action);
background: linear-gradient(left, @greener-than-alert, @call-to-action); background: linear-gradient(left, @greener-than-alert, @call-to-action);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='@alert', endColorstr='@call-to-action'); /* IE6 & IE7 */ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='@alert', endColorstr='@call-to-action'); /* IE6 & IE7 */
-ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr='@alert', endColorstr='@call-to-action')"; /* IE8+ */ -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr='@alert', endColorstr='@call-to-action')"; /* IE8+ */
&.successful { &.successful {
border-color: @bright-blue; border-color: @bright-blue;
background: @pale-blue; background: @pale-blue;
} }
.cover { .cover {
position: absolute; position: absolute;
right: 0; right: 0;
@ -143,11 +139,11 @@
margin-top: -7px; margin-top: -7px;
background: lighten(@blue-grey, 10%); background: lighten(@blue-grey, 10%);
} }
span { span {
display: none; display: none;
} }
&:hover span { &:hover span {
display: block; display: block;
position: absolute; position: absolute;
@ -166,7 +162,7 @@
span.explanation{ span.explanation{
display: none; display: none;
} }
&:hover span.explanation { &:hover span.explanation {
display: block; display: block;
position: absolute; position: absolute;
@ -181,7 +177,7 @@
.one-border-radius(10px); .one-border-radius(10px);
padding: 5px; padding: 5px;
} }
} }
.status { .status {
position: absolute; position: absolute;
@ -190,5 +186,5 @@
height: 25px; height: 25px;
margin-top: -12px; margin-top: -12px;
} }
} }

View File

@ -24,7 +24,7 @@
border:none; border:none;
margin:0; margin:0;
line-height: 16px; line-height: 16px;
/* Bubble in upper left looks different depending on campaign status */ /* Bubble in upper left looks different depending on campaign status */
&.ACTIVE { &.ACTIVE {
background: @green; background: @green;
@ -33,7 +33,7 @@
font-weight: normal; font-weight: normal;
line-height: 20px; line-height: 20px;
} }
&.No.campaign.yet { &.No.campaign.yet {
background: @orange; background: @orange;
color: white; color: white;
@ -42,15 +42,15 @@
span { span {
display: inline-block; display: inline-block;
vertical-align: middle; vertical-align: middle;
&.spacer { &.spacer {
visibility: none; visibility: none;
} }
&.findtheungluers { &.findtheungluers {
cursor: pointer; cursor: pointer;
} }
} }
} }
} }
@ -60,7 +60,7 @@
} }
#js-slide .jsmodule { #js-slide .jsmodule {
width: 660px !important; width: 660px !important;
} }
#js-search { #js-search {
@ -74,14 +74,14 @@
text-align: left; text-align: left;
font-weight: normal; font-weight: normal;
font-size: @font-size-default; font-size: @font-size-default;
> li { > li {
margin-bottom: 14px; margin-bottom: 14px;
} }
.errorlist { .errorlist {
margin-top: 7px; margin-top: 7px;
li { li {
width: auto; width: auto;
height: auto; height: auto;
@ -98,7 +98,7 @@
width:470px; width:470px;
margin:0 10px; margin:0 10px;
div#content-block { div#content-block {
background: none; background: none;
padding:0; padding:0;
} }
@ -113,13 +113,13 @@
.add-wishlist, .add-wishlist-workpage, &.remove-wishlist-workpage, .remove-wishlist, &.on-wishlist, &.create-account { .add-wishlist, .add-wishlist-workpage, &.remove-wishlist-workpage, .remove-wishlist, &.on-wishlist, &.create-account {
float: right; float: right;
cursor: pointer; cursor: pointer;
span { span {
font-weight:normal; font-weight:normal;
color:@text-blue; color:@text-blue;
text-transform: none; text-transform: none;
padding-left:20px; padding-left:20px;
&.on-wishlist { &.on-wishlist {
background:url("@{image-base}checkmark_small.png") left center no-repeat; background:url("@{image-base}checkmark_small.png") left center no-repeat;
cursor: default; cursor: default;
@ -138,15 +138,15 @@
/* Center - tabs and content below them */ /* Center - tabs and content below them */
div#content-block-content { div#content-block-content {
padding-left: 5px; padding-left: 5px;
a { a {
color: @medium-blue; color: @medium-blue;
} }
#tabs-1 img { #tabs-1 img {
.mediaborder; .mediaborder;
} }
#tabs-3 { #tabs-3 {
margin-left: -5px; margin-left: -5px;
} }
@ -154,15 +154,15 @@ div#content-block-content {
.tabs-content { .tabs-content {
padding-right: 5px; padding-right: 5px;
iframe { iframe {
.mediaborder; .mediaborder;
} }
form { form {
margin-left: -5px; margin-left: -5px;
} }
.clearfix { .clearfix {
margin-bottom: 10px; margin-bottom: 10px;
border-bottom: 2px solid @blue-grey; border-bottom: 2px solid @blue-grey;
@ -179,12 +179,12 @@ div#content-block-content {
.work_supporter_avatar { .work_supporter_avatar {
float: left; float: left;
margin-right: 5px; margin-right: 5px;
img { img {
.one-border-radius(5px); .one-border-radius(5px);
} }
} }
.work_supporter_name { .work_supporter_name {
.height(50px); .height(50px);
float: left; float: left;
@ -197,13 +197,13 @@ div#content-block-content {
min-width: 235px; min-width: 235px;
float: left; float: left;
} }
.show_supporter_contact_form .show_supporter_contact_form
{ {
display:block; display:block;
margin-left: 5px; margin-left: 5px;
float: right; float: right;
} }
.supporter_contact_form .supporter_contact_form
{ {
display:none; display:none;
margin-left: 5px; margin-left: 5px;
@ -243,24 +243,24 @@ div#content-block-content {
margin-left: -5px; margin-left: -5px;
} }
.editions { .editions {
div { div {
float:left; float:left;
padding-bottom: 5px; padding-bottom: 5px;
margin-bottom: 5px; margin-bottom: 5px;
} }
.image { .image {
width: 60px; width: 60px;
overflow: hidden; overflow: hidden;
} }
.metadata { .metadata {
display:block; display:block;
overflow: hidden; overflow: hidden;
margin-left: 5px; margin-left: 5px;
} }
a:hover { a:hover {
text-decoration: underline; text-decoration: underline;
} }
@ -273,7 +273,7 @@ div#content-block-content {
.show_more_edition { .show_more_edition {
text-align: right; text-align: right;
&:hover { &:hover {
text-decoration: underline; text-decoration: underline;
} }
@ -283,7 +283,7 @@ div#content-block-content {
display:none; display:none;
clear: both; clear: both;
padding-bottom: 10px; padding-bottom: 10px;
padding-left: 60px; padding-left: 60px;
} }
.more_ebooks { .more_ebooks {
@ -300,7 +300,7 @@ div#content-block-content {
.add-wishlist, .on-wishlist, .create-account { .add-wishlist, .on-wishlist, .create-account {
float: none; float: none;
} }
.on-wishlist { .on-wishlist {
margin-left: 20px; margin-left: 20px;
} }
@ -310,7 +310,7 @@ div#content-block-content {
float:right; float:right;
width:235px; width:235px;
margin-bottom: 20px; margin-bottom: 20px;
h3.jsmod-title { h3.jsmod-title {
background:@medium-blue-grey; background:@medium-blue-grey;
.one-border-radius(10px); .one-border-radius(10px);
@ -320,7 +320,7 @@ div#content-block-content {
font-size: @font-size-larger; font-size: @font-size-larger;
margin:0 0 10px 0; margin:0 0 10px 0;
color: white; color: white;
span { span {
padding:0; padding:0;
color:#fff; color:#fff;
@ -331,11 +331,11 @@ div#content-block-content {
.jsmodule { .jsmodule {
margin-bottom:10px; margin-bottom:10px;
a:hover { a:hover {
text-decoration: none; text-decoration: none;
} }
} }
} }
#pledge-rightcol { #pledge-rightcol {
@ -346,7 +346,7 @@ div#content-block-content {
border:1px solid @blue-grey; border:1px solid @blue-grey;
.one-border-radius(10px); .one-border-radius(10px);
padding:10px; padding:10px;
} }
#widgetcode { #widgetcode {
display: none; display: none;
@ -366,18 +366,18 @@ ul.support li {
&.last { &.last {
border-bottom: none; border-bottom: none;
} }
span { span {
display:block; display:block;
padding-right:10px; padding-right:10px;
&.menu-item-price { &.menu-item-price {
font-size: @font-size-header; font-size: @font-size-header;
float: left; float: left;
display: inline; display: inline;
margin-bottom: 3px; margin-bottom: 3px;
} }
&.menu-item-desc { &.menu-item-desc {
float: none; float: none;
clear: both; clear: both;
@ -386,7 +386,7 @@ ul.support li {
line-height: @font-size-larger*1.3; line-height: @font-size-larger*1.3;
} }
} }
&:hover { &:hover {
color: #fff; color: #fff;
background:@call-to-action url("@{image-base}icons/pledgearrow-hover.png") 98% center no-repeat; background:@call-to-action url("@{image-base}icons/pledgearrow-hover.png") 98% center no-repeat;
@ -417,7 +417,7 @@ ul.support li {
margin: 20px auto; margin: 20px auto;
} }
div#libtools { div#libtools {
border:1px solid @blue-grey; border:1px solid @blue-grey;
.one-border-radius(10px); .one-border-radius(10px);
padding:10px; padding:10px;
@ -436,4 +436,4 @@ div#libtools {
input[type="submit"]{ input[type="submit"]{
margin-left: 4em; margin-left: 4em;
} }
} }

View File

@ -1,3 +1,91 @@
* { * {
color: pink !important; // color: red !important;
} }
@media screen and (max-width: 480px) {
.wrapper {
display: grid;
grid-template-columns: fit-content 1fr 20%;
grid-template-rows: auto auto;
grid-template-areas: "bookImage bookImage bookImage"
"bookSidebar bookSidebar bookSidebar"
"bookDescription bookDescription bookDescription"
"bookComments bookComments bookComments";
}
.bookImage {
display: flex;
justify-content: center;
}
.bookSidebar {
flex-direction: row;
}
.book-sidebar-item {
flex: auto;
}
.book-sidebar-item span {
display: none;
}
.bookDownload {
flex: 100%;
}
.bookDonate {
flex: 100%;
}
}
@media screen and (min-width: 480px) {
.wrapper {
display: grid;
grid-template-columns: fit-content 1fr 20%;
grid-template-rows: auto auto;
grid-template-areas: "bookImage bookDescription bookSidebar"
"bookComments bookComments bookComments";
margin-left: auto;
margin-right: auto;
max-width: 1000px;
}
.bookDescription {
padding-right: 15px;
}
.bookSidebar {
flex-direction: column;
}
}
.bookImage {
grid-area: bookImage;
}
.bookImage div {
float:right;
}
.bookDescription {
grid-area: bookDescription;
}
.bookSidebar {
display: flex;
grid-area: bookSidebar;
}
.bookComments {
grid-area: bookComments;
}
.btn_wishlist span{
text-align: right;
}
//TODO remove me
.btn_wishlist div{
float: none;
}

View File

@ -1,3 +1,3 @@
@import 'settings/settings'; @import 'settings/settings';
@import 'foundation'; @import 'foundation';
@include foundation-everything; @include foundation-everything;