Merge branch 'main' into progress-modal
This commit is contained in:
@ -3,7 +3,7 @@
|
||||
<div class="columns">
|
||||
<div class="column is-narrow is-hidden-mobile">
|
||||
<figure class="block is-w-xl">
|
||||
<img src="{% if site.logo %}/images/{{ site.logo }}{% else %}{% static "images/logo.png" %}{% endif %}" alt="BookWyrm logo">
|
||||
<img src="{% if site.logo %}{% get_media_prefix %}{{ site.logo }}{% else %}{% static "images/logo.png" %}{% endif %}" alt="BookWyrm logo">
|
||||
</figure>
|
||||
</div>
|
||||
<div class="content">
|
||||
|
@ -2,7 +2,7 @@
|
||||
{% load utilities %}
|
||||
{% spaceless %}
|
||||
|
||||
{% if book.authors %}
|
||||
{% if book.authors.exists %}
|
||||
{% blocktrans trimmed with path=book.local_path title=book|book_title %}
|
||||
<a href="{{ path }}">{{ title }}</a> by
|
||||
{% endblocktrans %}
|
||||
|
@ -26,13 +26,37 @@ uuid: a unique identifier used to make html "id" attributes unique and clarify j
|
||||
<label class="label" for="progress_{{ uuid }}">{% trans "Progress:" %}</label>
|
||||
<div class="field has-addons mb-0">
|
||||
<div class="control">
|
||||
<input aria-label="{% if draft.progress_mode == 'PG' or readthrough.progress_mode == 'PG' %}Current page{% else %}Percent read{% endif %}" class="input" type="number" min="0" name="progress" size="3" value="{% firstof draft.progress readthrough.progress '' %}" id="progress_{{ uuid }}">
|
||||
<input
|
||||
aria-label="{% if draft.progress_mode == 'PG' or readthrough.progress_mode == 'PG' %}Current page{% else %}Percent read{% endif %}"
|
||||
class="input"
|
||||
type="number"
|
||||
min="0"
|
||||
name="progress"
|
||||
size="3"
|
||||
value="{% firstof draft.progress readthrough.progress '' %}"
|
||||
id="progress_{{ uuid }}"
|
||||
data-cache-draft="id_progress_comment_{{ book.id }}"
|
||||
>
|
||||
</div>
|
||||
<div class="control">
|
||||
<div class="select">
|
||||
<select name="progress_mode" aria-label="Progress mode">
|
||||
<option value="PG" {% if draft.progress_mode == 'PG' or readthrough.progress_mode == 'PG' %}selected{% endif %}>{% trans "pages" %}</option>
|
||||
<option value="PCT" {% if draft.progress_mode == 'PCT' or readthrough.progress_mode == 'PCT' %}selected{% endif %}>{% trans "percent" %}</option>
|
||||
<select
|
||||
name="progress_mode"
|
||||
aria-label="Progress mode"
|
||||
data-cache-draft="id_progress_mode_comment_{{ book.id }}"
|
||||
>
|
||||
<option
|
||||
value="PG"
|
||||
{% if draft.progress_mode == 'PG' or readthrough.progress_mode == 'PG' %}selected{% endif %}
|
||||
>
|
||||
{% trans "pages" %}
|
||||
</option>
|
||||
<option
|
||||
value="PCT"
|
||||
{% if draft.progress_mode == 'PCT' or readthrough.progress_mode == 'PCT' %}selected{% endif %}
|
||||
>
|
||||
{% trans "percent" %}
|
||||
</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -10,10 +10,11 @@ draft: an existing Status object that is providing default values for input fiel
|
||||
{% endcomment %}
|
||||
<textarea
|
||||
name="content"
|
||||
class="textarea"
|
||||
class="textarea save-draft"
|
||||
data-cache-draft="id_content_{{ type }}_{{ book.id }}{{ reply_parent.id }}"
|
||||
id="id_content_{{ type }}_{{ book.id }}{{ reply_parent.id }}"
|
||||
placeholder="{{ placeholder }}"
|
||||
aria-label="{% if reply_parent %}{% trans 'Reply' %}{% else %}{% trans 'Content' %}{% endif %}"
|
||||
{% if not optional and type != "quotation" %}required{% endif %}
|
||||
{% if not optional and type != "quotation" and type != "review" %}required{% endif %}
|
||||
>{% if reply_parent %}{{ reply_parent|mentions:request.user }}{% endif %}{% if mention %}@{{ mention|username }} {% endif %}{{ draft.content|default:'' }}</textarea>
|
||||
|
||||
|
@ -1,12 +1,22 @@
|
||||
{% load i18n %}
|
||||
<div class="control{% if not parent_status.content_warning and not draft.content_warning %} is-hidden{% endif %}" id="spoilers_{{ uuid }}">
|
||||
<label class="is-sr-only" for="id_content_warning_{{ uuid }}">{% trans "Spoiler alert:" %}</label>
|
||||
<div
|
||||
class="field{% if not reply_parent.content_warning and not draft.content_warning %} is-hidden{% endif %}"
|
||||
id="spoilers_{{ uuid }}{{ local_uuid }}"
|
||||
>
|
||||
<label
|
||||
class="label"
|
||||
for="id_content_warning_{{ uuid }}{{ local_uuid }}"
|
||||
>
|
||||
{% trans "Content warning:" %}
|
||||
</label>
|
||||
<input
|
||||
type="text"
|
||||
name="content_warning"
|
||||
maxlength="255"
|
||||
class="input"
|
||||
id="id_content_warning_{{ uuid }}"
|
||||
id="id_content_warning_{{ uuid }}{{ local_uuid }}"
|
||||
placeholder="{% trans 'Spoilers ahead!' %}"
|
||||
value="{% firstof draft.content_warning parent_status.content_warning '' %}">
|
||||
value="{% firstof draft.content_warning reply_parent.content_warning '' %}"
|
||||
data-cache-draft="id_content_warning_{{ book.id }}_{{ type }}"
|
||||
>
|
||||
</div>
|
||||
|
@ -1,8 +1,17 @@
|
||||
{% load i18n %}
|
||||
|
||||
<div class="control">
|
||||
<input type="checkbox" class="is-hidden" name="sensitive" id="id_show_spoilers_{{ uuid }}" {% if draft.content_warning or status.content_warning %}checked{% endif %} aria-hidden="true">
|
||||
<input
|
||||
type="checkbox"
|
||||
class="is-hidden"
|
||||
name="sensitive"
|
||||
id="id_show_spoilers_{{ uuid }}{{ local_uuid }}"
|
||||
{% if draft.content_warning or status.content_warning %}checked{% endif %}
|
||||
aria-hidden="true"
|
||||
data-cache-draft="id_sensitive_{{ book.id }}_{{ type }}{{ reply_parent.id }}"
|
||||
>
|
||||
{% trans "Include spoiler alert" as button_text %}
|
||||
{% firstof draft.content_warning status.content_warning as pressed %}
|
||||
{% include 'snippets/toggle/toggle_button.html' with text=button_text icon="warning is-size-4" controls_text="spoilers" controls_uid=uuid focus="id_content_warning" checkbox="id_show_spoilers" class="toggle-button" pressed=pressed %}
|
||||
{% firstof local_uuid '' as local_uuid %}
|
||||
{% include 'snippets/toggle/toggle_button.html' with text=button_text icon="warning is-size-4" controls_text="spoilers" controls_uid=uuid|add:local_uuid focus="id_content_warning" checkbox="id_show_spoilers" class="toggle-button" pressed=pressed %}
|
||||
</div>
|
||||
|
@ -14,7 +14,13 @@ reply_parent: the Status object this post will be in reply to, if applicable
|
||||
|
||||
{% block form_open %}
|
||||
{# default form tag syntax, can be overriddden #}
|
||||
<form class="is-flex-grow-1" name="{{ type }}" action="/post/{{ type }}" method="post" id="tab_{{ type }}_{{ book.id }}{{ reply_parent.id }}">
|
||||
<form
|
||||
class="is-flex-grow-1{% if not no_script %} submit-status{% endif %}"
|
||||
name="{{ type }}"
|
||||
action="/post/{{ type }}"
|
||||
method="post"
|
||||
id="tab_{{ type }}_{{ book.id }}{{ reply_parent.id }}"
|
||||
>
|
||||
{% endblock %}
|
||||
|
||||
{% csrf_token %}
|
||||
@ -25,23 +31,19 @@ reply_parent: the Status object this post will be in reply to, if applicable
|
||||
<input type="hidden" name="reply_parent" value="{% firstof draft.reply_parent.id reply_parent.id %}">
|
||||
{% endblock %}
|
||||
|
||||
{% include "snippets/create_status/content_warning_field.html" %}
|
||||
|
||||
{# fields that go between the content warnings and the content field (ie, quote) #}
|
||||
{% block pre_content_additions %}{% endblock %}
|
||||
|
||||
<label class="label" for="id_content_{{ type }}_{{ book.id }}{{ reply_parent.id }}">
|
||||
{% block content_label %}
|
||||
{% trans "Comment:" %}
|
||||
{% endblock %}
|
||||
</label>
|
||||
|
||||
<div class="field">
|
||||
<div class="control">
|
||||
{% include "snippets/create_status/content_warning_field.html" %}
|
||||
</div>
|
||||
|
||||
{# fields that go between the content warnings and the content field (ie, quote) #}
|
||||
{% block pre_content_additions %}{% endblock %}
|
||||
|
||||
<label class="label" for="id_content_{{ type }}_{{ book.id }}{{ reply_parent.id }}">
|
||||
{% block content_label %}
|
||||
{% trans "Comment:" %}
|
||||
{% endblock %}
|
||||
</label>
|
||||
|
||||
<div class="control">
|
||||
{% include "snippets/create_status/content_field.html" with placeholder=placeholder %}
|
||||
</div>
|
||||
{% include "snippets/create_status/content_field.html" with placeholder=placeholder %}
|
||||
</div>
|
||||
|
||||
{# additional fields that go after the content block (ie, progress) #}
|
||||
|
@ -16,7 +16,10 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="column is-narrow">
|
||||
<button class="button is-link" type="submit">{% trans "Post" %}</button>
|
||||
<button class="button is-link" type="submit">
|
||||
<span class="icon icon-spinner" aria-hidden="true"></span>
|
||||
<span>{% trans "Post" %}</span>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
@ -11,8 +11,6 @@ draft: the content of an existing Status object to be edited (used in delete and
|
||||
uuid: a unique identifier used to make html "id" attributes unique and clarify javascript controls
|
||||
{% endcomment %}
|
||||
|
||||
{% with type="quotation" %}
|
||||
|
||||
{% block pre_content_additions %}
|
||||
<div class="field">
|
||||
<label class="label" for="id_quote_{{ book.id }}_{{ type }}">
|
||||
@ -26,9 +24,48 @@ uuid: a unique identifier used to make html "id" attributes unique and clarify j
|
||||
id="id_quote_{{ book.id }}_{{ type }}"
|
||||
placeholder="{% blocktrans with book_title=book.title %}An excerpt from '{{ book_title }}'{% endblocktrans %}"
|
||||
required
|
||||
data-cache-draft="id_quote_{{ book.id }}_{{ type }}"
|
||||
>{{ draft.quote|default:'' }}</textarea>
|
||||
</div>
|
||||
</div>
|
||||
<div class="field">
|
||||
<label class="label" for="position_{{ uuid }}">{% trans "Position:" %}</label>
|
||||
<div class="field has-addons mb-0">
|
||||
<div class="control">
|
||||
<div class="select">
|
||||
<select
|
||||
name="position_mode"
|
||||
aria-label="Position mode"
|
||||
data-cache-draft="id_position_mode_{{ book.id }}_{{ type }}"
|
||||
>
|
||||
<option
|
||||
value="PG"
|
||||
{% if draft.position_mode == 'PG' or not draft %}selected{% endif %}
|
||||
>
|
||||
{% trans "On page:" %}
|
||||
</option>
|
||||
<option
|
||||
value="PCT"
|
||||
{% if draft.position_mode == 'PCT' %}selected{% endif %}
|
||||
>
|
||||
{% trans "At percent:" %}
|
||||
</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="control">
|
||||
<input
|
||||
aria-label="{% if draft.position_mode == 'PG' %}Page{% else %}Percent{% endif %}"
|
||||
class="input"
|
||||
type="number"
|
||||
min="0"
|
||||
name="position"
|
||||
size="3"
|
||||
value="{% firstof draft.position '' %}"
|
||||
id="position_{{ uuid }}"
|
||||
data-cache-draft="id_position_{{ book.id }}_{{ type }}"
|
||||
>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
||||
|
||||
{% endwith %}
|
||||
|
@ -11,13 +11,21 @@ draft: the content of an existing Status object to be edited (used in delete and
|
||||
uuid: a unique identifier used to make html "id" attributes unique and clarify javascript controls
|
||||
{% endcomment %}
|
||||
|
||||
{% with type="review" %}
|
||||
|
||||
{% block pre_content_additions %}
|
||||
<div class="field">
|
||||
<label class="label" for="id_name_{{ book.id }}">{% trans "Title:" %}</label>
|
||||
<div class="control">
|
||||
<input type="text" name="name" maxlength="255" class="input" required="" id="id_name_{{ book.id }}" placeholder="{% blocktrans with book_title=book.title %}Your review of '{{ book_title }}'{% endblocktrans %}" value="{% firstof draft.name ''%}">
|
||||
<input
|
||||
type="text"
|
||||
name="name"
|
||||
maxlength="255"
|
||||
class="input"
|
||||
required=""
|
||||
id="id_name_{{ book.id }}"
|
||||
placeholder="{% blocktrans with book_title=book.title %}Your review of '{{ book_title }}'{% endblocktrans %}"
|
||||
value="{% firstof draft.name ''%}"
|
||||
data-cache-draft="id_name_{{ book.id }}_{{ type }}"
|
||||
>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@ -31,5 +39,3 @@ uuid: a unique identifier used to make html "id" attributes unique and clarify j
|
||||
{% block content_label %}
|
||||
{% trans "Review:" %}
|
||||
{% endblock %}
|
||||
|
||||
{% endwith %}
|
||||
|
@ -1,5 +1,6 @@
|
||||
{% spaceless %}
|
||||
{% load i18n %}
|
||||
{% load stars %}
|
||||
|
||||
<div class="
|
||||
field is-grouped
|
||||
@ -20,6 +21,24 @@
|
||||
</label>
|
||||
|
||||
{% for i in '12345'|make_list %}
|
||||
<label
|
||||
class="is-sr-only"
|
||||
for="{{ type|slugify }}_book{{ book.id }}_star_{{ forloop.counter0 }}_half"
|
||||
>
|
||||
{% blocktranslate trimmed count rating=forloop.counter0 with half_rating=forloop.counter0|half_star %}
|
||||
{{ half_rating }} star
|
||||
{% plural %}
|
||||
{{ half_rating }} stars
|
||||
{% endblocktranslate %}
|
||||
</label>
|
||||
<input
|
||||
id="{{ type|slugify }}_book{{ book.id }}_star_{{ forloop.counter0 }}_half"
|
||||
class="is-sr-only half"
|
||||
type="radio"
|
||||
name="rating"
|
||||
value="{{ forloop.counter0 }}.5"
|
||||
{% if default_rating == forloop.counter %}checked{% endif %}
|
||||
/>
|
||||
<input
|
||||
id="{{ type|slugify }}_book{{ book.id }}_star_{{ forloop.counter }}"
|
||||
class="is-sr-only"
|
||||
@ -39,6 +58,7 @@
|
||||
{% endif %}
|
||||
"
|
||||
for="{{ type|slugify }}_book{{ book.id }}_star_{{ forloop.counter }}"
|
||||
data-for-half="{{ type|slugify }}_book{{ book.id }}_star_{{ forloop.counter0 }}_half"
|
||||
>
|
||||
<span class="is-sr-only">
|
||||
{% blocktranslate trimmed count rating=forloop.counter %}
|
||||
|
@ -1,5 +1,5 @@
|
||||
{% load i18n %}
|
||||
<form method="post" name="goal" action="{{ request.user.local_path }}/goal/{{ year }}">
|
||||
<form method="post" name="goal" action="{% url 'user-goal' request.user.localname year %}">
|
||||
{% csrf_token %}
|
||||
<input type="hidden" name="year" value="{% if goal %}{{ goal.year }}{% else %}{{ year }}{% endif %}">
|
||||
<input type="hidden" name="user" value="{{ request.user.id }}">
|
||||
|
@ -9,7 +9,7 @@ Finish "<em>{{ book_title }}</em>"
|
||||
{% endblock %}
|
||||
|
||||
{% block modal-form-open %}
|
||||
<form name="finish-reading" action="{% url 'reading-status' 'finish' book.id %}" method="post">
|
||||
<form name="finish-reading" action="{% url 'reading-status' 'finish' book.id %}" method="post" class="submit-status">
|
||||
{% csrf_token %}
|
||||
<input type="hidden" name="reading_status" value="read">
|
||||
{% endblock %}
|
||||
|
@ -12,4 +12,5 @@
|
||||
<input type="hidden" name="user" value="{{ request.user.id }}">
|
||||
<input type="hidden" name="mention_books" value="{{ book.id }}">
|
||||
<input type="hidden" name="book" value="{{ book.id }}">
|
||||
<input type="hidden" name="id" value="{{ readthrough.id }}">
|
||||
{% endblock %}
|
||||
|
@ -6,8 +6,7 @@
|
||||
{% endblock %}
|
||||
|
||||
{% block modal-form-open %}
|
||||
<form action="{% url 'edit-readthrough' %}" method="POST">
|
||||
{% csrf_token %}
|
||||
<form action="{% url 'edit-readthrough' %}" method="POST" class="submit-status">
|
||||
{% endblock %}
|
||||
|
||||
{% block reading-dates %}
|
||||
|
@ -9,7 +9,7 @@ Start "<em>{{ book_title }}</em>"
|
||||
{% endblock %}
|
||||
|
||||
{% block modal-form-open %}
|
||||
<form name="start-reading" action="{% url 'reading-status' 'start' book.id %}" method="post">
|
||||
<form name="start-reading" action="{% url 'reading-status' 'start' book.id %}" method="post" class="submit-status">
|
||||
<input type="hidden" name="reading_status" value="reading">
|
||||
{% csrf_token %}
|
||||
{% endblock %}
|
||||
|
@ -9,7 +9,7 @@ Want to Read "<em>{{ book_title }}</em>"
|
||||
{% endblock %}
|
||||
|
||||
{% block modal-form-open %}
|
||||
<form name="shelve" action="{% url 'reading-status' 'want' book.id %}" method="post">
|
||||
<form name="shelve" action="{% url 'reading-status' 'want' book.id %}" method="post" class="submit-status">
|
||||
<input type="hidden" name="reading_status" value="to-read">
|
||||
{% csrf_token %}
|
||||
{% endblock %}
|
||||
|
@ -6,7 +6,7 @@
|
||||
{% with book.id|uuid as uuid %}
|
||||
{% active_shelf book as active_shelf %}
|
||||
{% latest_read_through book request.user as readthrough %}
|
||||
<div class="field has-addons mb-0">
|
||||
<div class="field has-addons mb-0" data-shelve-button-book="{{ book.id }}">
|
||||
{% if switch_mode and active_shelf.book != book %}
|
||||
<div class="control">
|
||||
{% include 'snippets/switch_edition_button.html' with edition=book size='is-small' %}
|
||||
|
@ -7,5 +7,5 @@
|
||||
{% endblock %}
|
||||
|
||||
{% block dropdown-list %}
|
||||
{% include 'snippets/shelve_button/shelve_button_options.html' with active_shelf=active_shelf shelves=user_shelves dropdown=True class="shelf-option is-fullwidth is-small is-radiusless is-white" %}
|
||||
{% include 'snippets/shelve_button/shelve_button_dropdown_options.html' with active_shelf=active_shelf shelves=user_shelves dropdown=True class="shelf-option is-fullwidth is-small is-radiusless is-white" %}
|
||||
{% endblock %}
|
||||
|
@ -0,0 +1,69 @@
|
||||
{% load bookwyrm_tags %}
|
||||
{% load utilities %}
|
||||
{% load i18n %}
|
||||
|
||||
{% with next_shelf_identifier=active_shelf.shelf.identifier|next_shelf %}
|
||||
|
||||
{% for shelf in shelves %}
|
||||
{% comparison_bool shelf.identifier active_shelf.shelf.identifier as is_current %}
|
||||
<li role="menuitem" class="dropdown-item p-0">
|
||||
<div
|
||||
class="{% if next_shelf_identifier == shelf.identifier %}is-hidden{% endif %}"
|
||||
data-shelf-dropdown-identifier="{{ shelf.identifier }}"
|
||||
data-shelf-next="{{ shelf.identifier|next_shelf }}"
|
||||
>
|
||||
{% if shelf.identifier == 'reading' %}
|
||||
|
||||
{% trans "Start reading" as button_text %}
|
||||
{% url 'reading-status' 'start' book.id as fallback_url %}
|
||||
{% include 'snippets/toggle/toggle_button.html' with class=class text=button_text controls_text="start_reading" controls_uid=button_uuid focus="modal_title_start_reading" disabled=is_current fallback_url=fallback_url %}
|
||||
|
||||
{% elif shelf.identifier == 'read' %}
|
||||
|
||||
{% trans "Read" as button_text %}
|
||||
{% url 'reading-status' 'finish' book.id as fallback_url %}
|
||||
{% include 'snippets/toggle/toggle_button.html' with class=class text=button_text controls_text="finish_reading" controls_uid=button_uuid focus="modal_title_finish_reading" disabled=is_current fallback_url=fallback_url %}
|
||||
|
||||
{% elif shelf.identifier == 'to-read' %}
|
||||
|
||||
{% trans "Want to read" as button_text %}
|
||||
{% url 'reading-status' 'want' book.id as fallback_url %}
|
||||
{% include 'snippets/toggle/toggle_button.html' with class=class text=button_text controls_text="want_to_read" controls_uid=button_uuid focus="modal_title_want_to_read" disabled=is_current fallback_url=fallback_url %}
|
||||
|
||||
{% elif shelf.editable %}
|
||||
|
||||
<form name="shelve" action="/shelve/" method="post">
|
||||
{% csrf_token %}
|
||||
<input type="hidden" name="book" value="{{ active_shelf.book.id }}">
|
||||
<button class="button {{ class }}" name="shelf" type="submit" value="{{ shelf.identifier }}" {% if shelf in book.shelf_set.all %} disabled {% endif %}>
|
||||
<span>{{ shelf.name }}</span>
|
||||
</button>
|
||||
</form>
|
||||
|
||||
{% endif %}
|
||||
</div>
|
||||
</li>
|
||||
{% endfor %}
|
||||
|
||||
{% if readthrough and active_shelf.shelf.identifier != 'read' %}
|
||||
<li role="menuitem" class="dropdown-item p-0" data-extra-options>
|
||||
{% trans "Update progress" as button_text %}
|
||||
{% include 'snippets/toggle/toggle_button.html' with class=class text=button_text controls_text="progress_update" controls_uid=button_uuid focus="modal_title_progress_update" %}
|
||||
</li>
|
||||
{% endif %}
|
||||
|
||||
{% if active_shelf.shelf %}
|
||||
<li role="menuitem" class="dropdown-item p-0" data-extra-options>
|
||||
<form name="shelve" action="/unshelve/" method="post">
|
||||
{% csrf_token %}
|
||||
<input type="hidden" name="book" value="{{ active_shelf.book.id }}">
|
||||
<input type="hidden" name="shelf" value="{{ active_shelf.shelf.id }}">
|
||||
<button class="button is-fullwidth is-small{% if dropdown %} is-radiusless{% endif %} is-danger is-light" type="submit">
|
||||
{% blocktrans with name=active_shelf.shelf.name %}Remove from {{ name }}{% endblocktrans %}
|
||||
</button>
|
||||
</form>
|
||||
</li>
|
||||
{% endif %}
|
||||
|
||||
{% endwith %}
|
||||
|
@ -2,33 +2,43 @@
|
||||
{% load utilities %}
|
||||
{% load i18n %}
|
||||
|
||||
{% for shelf in shelves %}
|
||||
{% comparison_bool shelf.identifier active_shelf.shelf.identifier as is_current %}
|
||||
{% if dropdown %}<li role="menuitem" class="dropdown-item p-0">{% endif %}
|
||||
<div class="{% if not dropdown and active_shelf.shelf.identifier|next_shelf != shelf.identifier %}is-hidden{% endif %}">
|
||||
{% if shelf.identifier == 'reading' %}{% if not dropdown or active_shelf.shelf.identifier|next_shelf != shelf.identifier %}
|
||||
{% with next_shelf_identifier=active_shelf.shelf.identifier|next_shelf %}
|
||||
|
||||
{% trans "Start reading" as button_text %}
|
||||
{% url 'reading-status' 'start' book.id as fallback_url %}
|
||||
{% include 'snippets/toggle/toggle_button.html' with class=class text=button_text controls_text="start_reading" controls_uid=button_uuid focus="modal_title_start_reading" disabled=is_current fallback_url=fallback_url %}
|
||||
|
||||
{% endif %}{% elif shelf.identifier == 'read' and active_shelf.shelf.identifier == 'read' %}{% if not dropdown or active_shelf.shelf.identifier|next_shelf != shelf.identifier %}
|
||||
<div
|
||||
class="{% if next_shelf_identifier != 'complete' %}is-hidden{% endif %}"
|
||||
data-shelf-identifier="complete"
|
||||
>
|
||||
<button type="button" class="button {{ class }}" disabled>
|
||||
<span>{% trans "Read" %}</span>
|
||||
</button>
|
||||
{% endif %}{% elif shelf.identifier == 'read' %}{% if not dropdown or active_shelf.shelf.identifier|next_shelf != shelf.identifier %}
|
||||
</div>
|
||||
|
||||
{% trans "Finish reading" as button_text %}
|
||||
{% url 'reading-status' 'finish' book.id as fallback_url %}
|
||||
{% include 'snippets/toggle/toggle_button.html' with class=class text=button_text controls_text="finish_reading" controls_uid=button_uuid focus="modal_title_finish_reading" disabled=is_current fallback_url=fallback_url %}
|
||||
{% for shelf in shelves %}
|
||||
<div
|
||||
class="{% if next_shelf_identifier != shelf.identifier %}is-hidden{% endif %}"
|
||||
data-shelf-identifier="{{ shelf.identifier }}"
|
||||
data-shelf-next="{{ shelf.identifier|next_shelf }}"
|
||||
>
|
||||
{% if shelf.identifier == 'reading' %}
|
||||
|
||||
{% endif %}{% elif shelf.identifier == 'to-read' %}{% if not dropdown or active_shelf.shelf.identifier|next_shelf != shelf.identifier %}
|
||||
{% trans "Start reading" as button_text %}
|
||||
{% url 'reading-status' 'start' book.id as fallback_url %}
|
||||
{% include 'snippets/toggle/toggle_button.html' with class=class text=button_text controls_text="start_reading" controls_uid=button_uuid focus="modal_title_start_reading" fallback_url=fallback_url %}
|
||||
|
||||
{% trans "Want to read" as button_text %}
|
||||
{% url 'reading-status' 'want' book.id as fallback_url %}
|
||||
{% include 'snippets/toggle/toggle_button.html' with class=class text=button_text controls_text="want_to_read" controls_uid=button_uuid focus="modal_title_want_to_read" disabled=is_current fallback_url=fallback_url %}
|
||||
{% elif shelf.identifier == 'read' %}
|
||||
|
||||
{% trans "Finish reading" as button_text %}
|
||||
{% url 'reading-status' 'finish' book.id as fallback_url %}
|
||||
{% include 'snippets/toggle/toggle_button.html' with class=class text=button_text controls_text="finish_reading" controls_uid=button_uuid focus="modal_title_finish_reading" fallback_url=fallback_url %}
|
||||
|
||||
{% elif shelf.identifier == 'to-read' %}
|
||||
|
||||
{% trans "Want to read" as button_text %}
|
||||
{% url 'reading-status' 'want' book.id as fallback_url %}
|
||||
{% include 'snippets/toggle/toggle_button.html' with class=class text=button_text controls_text="want_to_read" controls_uid=button_uuid focus="modal_title_want_to_read" fallback_url=fallback_url %}
|
||||
|
||||
{% elif shelf.editable %}
|
||||
|
||||
{% endif %}{% elif shelf.editable %}
|
||||
<form name="shelve" action="/shelve/" method="post">
|
||||
{% csrf_token %}
|
||||
<input type="hidden" name="book" value="{{ active_shelf.book.id }}">
|
||||
@ -36,30 +46,9 @@
|
||||
<span>{{ shelf.name }}</span>
|
||||
</button>
|
||||
</form>
|
||||
|
||||
{% endif %}
|
||||
</div>
|
||||
{% if dropdown %}</li>{% endif %}
|
||||
{% endfor %}
|
||||
{% if dropdown %}
|
||||
|
||||
{% if readthrough and not readthrough.finish_date and active_shelf.shelf.identifier != 'read' %}
|
||||
<li role="menuitem" class="dropdown-item p-0">
|
||||
{% trans "Update progress" as button_text %}
|
||||
{% include 'snippets/toggle/toggle_button.html' with class=class text=button_text controls_text="progress_update" controls_uid=button_uuid focus="modal_title_progress_update" %}
|
||||
</li>
|
||||
{% endif %}
|
||||
|
||||
{% if active_shelf.shelf %}
|
||||
<li role="menuitem" class="dropdown-item p-0">
|
||||
<form name="shelve" action="/unshelve/" method="post">
|
||||
{% csrf_token %}
|
||||
<input type="hidden" name="book" value="{{ active_shelf.book.id }}">
|
||||
<input type="hidden" name="shelf" value="{{ active_shelf.shelf.id }}">
|
||||
<button class="button is-fullwidth is-small{% if dropdown %} is-radiusless{% endif %} is-danger is-light" type="submit">
|
||||
{% blocktrans with name=active_shelf.shelf.name %}Remove from {{ name }}{% endblocktrans %}
|
||||
</button>
|
||||
</form>
|
||||
</li>
|
||||
{% endif %}
|
||||
|
||||
{% endif %}
|
||||
{% endwith %}
|
||||
|
@ -2,6 +2,7 @@
|
||||
{% load markdown %}
|
||||
{% load i18n %}
|
||||
{% load static %}
|
||||
{% load humanize %}
|
||||
|
||||
{% with status_type=status.status_type %}
|
||||
<div
|
||||
@ -66,12 +67,18 @@
|
||||
{% endif %}
|
||||
|
||||
{% if status.content_warning %}
|
||||
<div>
|
||||
<p>{{ status.content_warning }}</p>
|
||||
<div class="notification p-2 is-clearfix is-warning is-light">
|
||||
<p class="is-pulled-left is-flex">
|
||||
{% trans "Content warning" as text %}
|
||||
<span class="icon icon-warning" title="{{ text }}">
|
||||
<span class="is-sr-only">{{ text }}</span>
|
||||
</span>
|
||||
{{ status.content_warning }}
|
||||
</p>
|
||||
|
||||
{% trans "Show more" as button_text %}
|
||||
{% trans "Show status" as button_text %}
|
||||
|
||||
{% with text=button_text class="is-small" controls_text="show_status_cw" controls_uid=status.id %}
|
||||
{% with text=button_text class="is-small is-pulled-right" icon_with_text="arrow-down" controls_text="show_status_cw" controls_uid=status.id %}
|
||||
{% include 'snippets/toggle/open_button.html' %}
|
||||
{% endwith %}
|
||||
</div>
|
||||
@ -83,19 +90,20 @@
|
||||
class="is-hidden"
|
||||
{% endif %}
|
||||
>
|
||||
{% if status.content_warning %}
|
||||
{% trans "Show less" as button_text %}
|
||||
|
||||
{% with text=button_text class="is-small" controls_text="show_status_cw" controls_uid=status.id %}
|
||||
{% include 'snippets/toggle/close_button.html' %}
|
||||
{% endwith %}
|
||||
{% endif %}
|
||||
|
||||
{% if status.quote %}
|
||||
<div class="quote block">
|
||||
<blockquote dir="auto" class="content mb-2">{{ status.quote|safe }}</blockquote>
|
||||
<blockquote dir="auto" class="content mb-2 preserve-whitespace">{{ status.quote|safe }}</blockquote>
|
||||
|
||||
<p> — {% include 'snippets/book_titleby.html' with book=status.book %}</p>
|
||||
<p>
|
||||
— {% include 'snippets/book_titleby.html' with book=status.book %}
|
||||
{% if status.position %}
|
||||
{% if status.position_mode == 'PG' %}
|
||||
{% blocktrans with page=status.position|intcomma %}(Page {{ page }}){% endblocktrans %}
|
||||
{% else %}
|
||||
{% blocktrans with percent=status.position %}({{ percent }}%){% endblocktrans %}
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
</p>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
@ -131,6 +139,14 @@
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
{% if status.content_warning %}
|
||||
{% trans "Hide status" as button_text %}
|
||||
|
||||
{% with text=button_text class="is-small" controls_text="show_status_cw" controls_uid=status.id icon_with_text="arrow-up" %}
|
||||
{% include 'snippets/toggle/close_button.html' %}
|
||||
{% endwith %}
|
||||
{% endif %}
|
||||
</div>
|
||||
</article>
|
||||
</div>
|
||||
|
@ -66,7 +66,7 @@
|
||||
{% block card-bonus %}
|
||||
{% if request.user.is_authenticated and not moderation_mode %}
|
||||
{% with status.id|uuid as uuid %}
|
||||
<section class="is-hidden" id="show_comment_{{ status.id }}">
|
||||
<section class="reply-panel is-hidden" id="show_comment_{{ status.id }}">
|
||||
<div class="card-footer">
|
||||
<div class="card-footer-item">
|
||||
{% include 'snippets/create_status/status.html' with type="reply" reply_parent=status book=None %}
|
||||
|
@ -10,7 +10,7 @@
|
||||
{% if not no_trim and trimmed != full %}
|
||||
<div id="hide_full_{{ uuid }}">
|
||||
<div class="content" id="trimmed_{{ uuid }}">
|
||||
<div dir="auto">{{ trimmed }}</div>
|
||||
<div dir="auto" class="preserve-whitespace">{{ trimmed }}</div>
|
||||
|
||||
<div>
|
||||
{% if not hide_more %}
|
||||
@ -25,6 +25,7 @@
|
||||
<div class="content">
|
||||
<div
|
||||
dir="auto"
|
||||
class="preserve-whitespace"
|
||||
{% if itemprop %}itemprop="{{ itemprop }}"{% endif %}
|
||||
>
|
||||
{{ full }}
|
||||
@ -41,6 +42,7 @@
|
||||
<div class="content">
|
||||
<div
|
||||
dir="auto"
|
||||
class="preserve-whitespace"
|
||||
{% if itemprop %}itemprop="{{ itemprop }}"{% endif %}
|
||||
>
|
||||
{{ full }}
|
||||
|
Reference in New Issue
Block a user