mirror of https://github.com/logos-co/open-law.git
book list component styling #175
This commit is contained in:
parent
15fc3cc43a
commit
9e92acea86
|
@ -79,6 +79,9 @@ def create_app(environment="development"):
|
||||||
has_permission,
|
has_permission,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
app.jinja_env.globals["type"] = type
|
||||||
|
app.jinja_env.globals["m"] = m
|
||||||
|
|
||||||
app.jinja_env.globals["Access"] = m.Permission.Access
|
app.jinja_env.globals["Access"] = m.Permission.Access
|
||||||
app.jinja_env.globals["EntityType"] = m.Permission.Entity
|
app.jinja_env.globals["EntityType"] = m.Permission.Entity
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,8 @@
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
|
|
||||||
from app import db
|
from sqlalchemy import and_
|
||||||
|
|
||||||
|
from app import db, models as m
|
||||||
from app.models.utils import BaseModel
|
from app.models.utils import BaseModel
|
||||||
|
|
||||||
|
|
||||||
|
@ -43,3 +45,79 @@ class BookVersion(BaseModel):
|
||||||
for collection in self.root_collection.children
|
for collection in self.root_collection.children
|
||||||
if not collection.is_deleted
|
if not collection.is_deleted
|
||||||
]
|
]
|
||||||
|
|
||||||
|
@property
|
||||||
|
def approved_comments(self):
|
||||||
|
comments = (
|
||||||
|
db.session.query(
|
||||||
|
m.Comment,
|
||||||
|
)
|
||||||
|
.filter(
|
||||||
|
and_(
|
||||||
|
m.BookVersion.id == self.id,
|
||||||
|
m.Section.version_id == m.BookVersion.id,
|
||||||
|
m.Collection.id == m.Section.collection_id,
|
||||||
|
m.Interpretation.section_id == m.Section.id,
|
||||||
|
m.Comment.interpretation_id == m.Interpretation.id,
|
||||||
|
m.Comment.approved.is_(True),
|
||||||
|
m.Comment.is_deleted.is_(False),
|
||||||
|
m.BookVersion.is_deleted.is_(False),
|
||||||
|
m.Interpretation.is_deleted.is_(False),
|
||||||
|
m.Section.is_deleted.is_(False),
|
||||||
|
m.Collection.is_deleted.is_(False),
|
||||||
|
),
|
||||||
|
)
|
||||||
|
.order_by(m.Comment.created_at.desc())
|
||||||
|
.all()
|
||||||
|
)
|
||||||
|
|
||||||
|
return comments
|
||||||
|
|
||||||
|
@property
|
||||||
|
def approved_interpretations(self):
|
||||||
|
interpretations = (
|
||||||
|
db.session.query(
|
||||||
|
m.Interpretation,
|
||||||
|
)
|
||||||
|
.filter(
|
||||||
|
and_(
|
||||||
|
m.BookVersion.id == self.id,
|
||||||
|
m.Section.version_id == m.BookVersion.id,
|
||||||
|
m.Collection.id == m.Section.collection_id,
|
||||||
|
m.Interpretation.section_id == m.Section.id,
|
||||||
|
m.Interpretation.approved.is_(True),
|
||||||
|
m.BookVersion.is_deleted.is_(False),
|
||||||
|
m.Interpretation.is_deleted.is_(False),
|
||||||
|
m.Section.is_deleted.is_(False),
|
||||||
|
m.Collection.is_deleted.is_(False),
|
||||||
|
),
|
||||||
|
)
|
||||||
|
.order_by(m.Interpretation.created_at.desc())
|
||||||
|
.all()
|
||||||
|
)
|
||||||
|
|
||||||
|
return interpretations
|
||||||
|
|
||||||
|
@property
|
||||||
|
def interpretations(self):
|
||||||
|
interpretations = (
|
||||||
|
db.session.query(
|
||||||
|
m.Interpretation,
|
||||||
|
)
|
||||||
|
.filter(
|
||||||
|
and_(
|
||||||
|
m.BookVersion.id == self.id,
|
||||||
|
m.Section.version_id == m.BookVersion.id,
|
||||||
|
m.Collection.id == m.Section.collection_id,
|
||||||
|
m.Interpretation.section_id == m.Section.id,
|
||||||
|
m.BookVersion.is_deleted.is_(False),
|
||||||
|
m.Interpretation.is_deleted.is_(False),
|
||||||
|
m.Section.is_deleted.is_(False),
|
||||||
|
m.Collection.is_deleted.is_(False),
|
||||||
|
),
|
||||||
|
)
|
||||||
|
.order_by(m.Interpretation.created_at.desc())
|
||||||
|
.all()
|
||||||
|
)
|
||||||
|
|
||||||
|
return interpretations
|
||||||
|
|
File diff suppressed because one or more lines are too long
149299
app/static/js/main.js
149299
app/static/js/main.js
File diff suppressed because one or more lines are too long
|
@ -0,0 +1,60 @@
|
||||||
|
<dl class=" bg-white dark:bg-gray-900 max-w-full p-5 text-gray-900 divide-y divide-gray-200 dark:text-white dark:divide-gray-700 m-3 border-2 border-gray-200 border-solid rounded-lg dark:border-gray-700">
|
||||||
|
<dt class="flex mb-4">
|
||||||
|
{% if not hide_fork_label and book.original_book %}
|
||||||
|
<a href="{{ url_for('book.collection_view', book_id=book.original_book.id ) }}" target="_blank" class="flex pb-4">
|
||||||
|
<span class="flex items-center space-x-1 mr-2 bg-fuchsia-400 dark:!text-black rounded text-center px-1">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="w-4 h-4"> <path stroke-linecap="round" stroke-linejoin="round" d="M13.19 8.688a4.5 4.5 0 011.242 7.244l-4.5 4.5a4.5 4.5 0 01-6.364-6.364l1.757-1.757m13.35-.622l1.757-1.757a4.5 4.5 0 00-6.364-6.364l-4.5 4.5a4.5 4.5 0 001.242 7.244" /> </svg>
|
||||||
|
<p>Fork</p>
|
||||||
|
</span>
|
||||||
|
</a>
|
||||||
|
{% endif %}
|
||||||
|
<a class="flex font-bold text-base" href="{{url_for('book.collection_view',book_id=book.id)}}">
|
||||||
|
{% if not hide_contributing_label and book.user_id != current_user.id %}
|
||||||
|
<span class="mr-2 bg-blue-400 dark:!text-black font-normal rounded text-center px-1">Contributing</span>
|
||||||
|
{% endif %}
|
||||||
|
{{label or book.label}}
|
||||||
|
</a>
|
||||||
|
</dt>
|
||||||
|
<dd
|
||||||
|
class="flex flex-col md:flex-row text-gray-500 dark:text-gray-400"
|
||||||
|
>
|
||||||
|
{% if type(book) == m.BookVersion %}
|
||||||
|
{% set owner = book.book.owner %}
|
||||||
|
{% set updated_at = book.updated_at %}
|
||||||
|
{% else %}
|
||||||
|
{% set owner = book.owner %}
|
||||||
|
{% set updated_at = book.active_version.updated_at %}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% if type(book) == m.BookVersion or book.active_version %}
|
||||||
|
<span class="flex items-center">
|
||||||
|
<p class="text-sm">
|
||||||
|
Last updated by
|
||||||
|
<a
|
||||||
|
href="{{ url_for('user.profile',user_id=owner.id) }}"
|
||||||
|
class="text-blue-500 {% if owner.is_deleted %}line-through{% endif %}"
|
||||||
|
>
|
||||||
|
{{owner.username}}
|
||||||
|
</a>
|
||||||
|
on {{updated_at.strftime('%B %d, %Y')}}
|
||||||
|
</p>
|
||||||
|
</span>
|
||||||
|
{% endif %}
|
||||||
|
<div class="flex ml-auto align-center justify-center space-x-3 text-lg font-semibold md:text-lg">
|
||||||
|
{% if not hide_stars %}
|
||||||
|
<span class="book-star-block space-x-0.5 flex items-center">
|
||||||
|
<svg class="star-btn cursor-pointer w-4 h-4 inline-flex mr-1 {% if book.current_user_has_star %}fill-yellow-300{% endif %}" data-book-id={{ book.id }} xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 22 22" stroke-width="1" stroke="currentColor"> <path stroke-linecap="round" stroke-linejoin="round" d="M11.48 3.499a.562.562 0 011.04 0l2.125 5.111a.563.563 0 00.475.345l5.518.442c.499.04.701.663.321.988l-4.204 3.602a.563.563 0 00-.182.557l1.285 5.385a.562.562 0 01-.84.61l-4.725-2.885a.563.563 0 00-.586 0L6.982 20.54a.562.562 0 01-.84-.61l1.285-5.386a.562.562 0 00-.182-.557l-4.204-3.602a.563.563 0 01.321-.988l5.518-.442a.563.563 0 00.475-.345L11.48 3.5z" /> </svg>
|
||||||
|
<a href="{{ url_for('book.statistic_view', book_id=book.id ) }}" class="total-stars">{{ book.stars|length }}</a>
|
||||||
|
</span>
|
||||||
|
{% endif %}
|
||||||
|
<span class="space-x-0.5 flex items-center">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 22 22" stroke-width="1" stroke="currentColor" class="w-4 h-4 inline-flex mr-1"> <path stroke-linecap="round" stroke-linejoin="round" d="M3.75 13.5l10.5-11.25L12 10.5h8.25L9.75 21.75 12 13.5H3.75z" /> </svg>
|
||||||
|
<p>{{ book.interpretations|length }}</p>
|
||||||
|
</span>
|
||||||
|
<span class="space-x-0.5 flex items-center">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 22 22" stroke-width="1" stroke="currentColor" class="w-4 h-4 inline-flex mr-1"> <path stroke-linecap="round" stroke-linejoin="round" d="M19.5 14.25v-2.625a3.375 3.375 0 00-3.375-3.375h-1.5A1.125 1.125 0 0113.5 7.125v-1.5a3.375 3.375 0 00-3.375-3.375H8.25m0 12.75h7.5m-7.5 3H12M10.5 2.25H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 00-9-9z" /> </svg>
|
||||||
|
<p>{{ book.approved_comments|length }}</p>
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
</dd>
|
||||||
|
</dl>
|
|
@ -29,33 +29,11 @@
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</div>
|
</div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{% for book in books %}
|
{% for book in books %}
|
||||||
<!-- prettier-ignore -->
|
{% include 'book/components/book_list_item.html' %}
|
||||||
<dl class="bg-white dark:bg-gray-900 h-max p-5 text-gray-900 divide-y divide-gray-200 dark:text-white dark:divide-gray-700 m-3 border-2 border-gray-200 border-solid rounded-lg dark:border-gray-700">
|
|
||||||
<dt class="mb-2"><a class="flex flex-col pb-4" href="{{url_for('book.collection_view',book_id=book.id)}}">{{book.label}}</a></dt>
|
|
||||||
<dd class="flex flex-col md:flex-row text-lg font-semibold text-gray-500 md:text-lg dark:text-gray-400">
|
|
||||||
{% if book.versions %}
|
|
||||||
<p>
|
|
||||||
Last updated on {{book.active_version.updated_at.strftime('%B %d, %Y')}}
|
|
||||||
</p>
|
|
||||||
{% endif %}
|
|
||||||
<div class="flex ml-auto align-center justify-center space-x-3">
|
|
||||||
<span class="book-star-block space-x-0.5 flex items-center">
|
|
||||||
<svg class="star-btn cursor-pointer w-4 h-4 inline-flex mr-1 {% if book.current_user_has_star %}fill-yellow-300{% endif %}" data-book-id={{ book.id }} xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 22 22" stroke-width="1" stroke="currentColor"> <path stroke-linecap="round" stroke-linejoin="round" d="M11.48 3.499a.562.562 0 011.04 0l2.125 5.111a.563.563 0 00.475.345l5.518.442c.499.04.701.663.321.988l-4.204 3.602a.563.563 0 00-.182.557l1.285 5.385a.562.562 0 01-.84.61l-4.725-2.885a.563.563 0 00-.586 0L6.982 20.54a.562.562 0 01-.84-.61l1.285-5.386a.562.562 0 00-.182-.557l-4.204-3.602a.563.563 0 01.321-.988l5.518-.442a.563.563 0 00.475-.345L11.48 3.5z" /> </svg>
|
|
||||||
<a href="{{ url_for('book.statistic_view', book_id=book.id ) }}" class="total-stars">{{ book.stars|length }}</a>
|
|
||||||
</span>
|
|
||||||
<span class="space-x-0.5 flex items-center">
|
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 22 22" stroke-width="1" stroke="currentColor" class="w-4 h-4 inline-flex mr-1"> <path stroke-linecap="round" stroke-linejoin="round" d="M3.75 13.5l10.5-11.25L12 10.5h8.25L9.75 21.75 12 13.5H3.75z" /> </svg>
|
|
||||||
<p>{{ book.interpretations|length }}</p>
|
|
||||||
</span>
|
|
||||||
<span class="space-x-0.5 flex items-center">
|
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 22 22" stroke-width="1" stroke="currentColor" class="w-4 h-4 inline-flex mr-1"> <path stroke-linecap="round" stroke-linejoin="round" d="M19.5 14.25v-2.625a3.375 3.375 0 00-3.375-3.375h-1.5A1.125 1.125 0 0113.5 7.125v-1.5a3.375 3.375 0 00-3.375-3.375H8.25m0 12.75h7.5m-7.5 3H12M10.5 2.25H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 00-9-9z" /> </svg>
|
|
||||||
<p>{{ book.approved_comments|length }}</p>
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
</dd>
|
|
||||||
</dl>
|
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
|
||||||
{% if current_user.is_authenticated and page.pages > 1 %}
|
{% if current_user.is_authenticated and page.pages > 1 %}
|
||||||
<div class="container content-center mt-3 flex bg-white dark:bg-gray-800">
|
<div class="container content-center mt-3 flex bg-white dark:bg-gray-800">
|
||||||
<nav aria-label="Page navigation example" class="mx-auto">
|
<nav aria-label="Page navigation example" class="mx-auto">
|
||||||
|
|
|
@ -46,46 +46,7 @@
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{% for book in books if not book.is_deleted %}
|
{% for book in books if not book.is_deleted %}
|
||||||
<!-- prettier-ignore -->
|
{% include 'book/components/book_list_item.html' %}
|
||||||
<dl class="bg-white dark:bg-gray-900 h-max p-5 text-gray-900 divide-y divide-gray-200 dark:text-white dark:divide-gray-700 m-3 border-2 border-gray-200 border-solid rounded-lg dark:border-gray-700">
|
|
||||||
<dt class="mb-2 flex">
|
|
||||||
{% if book.original_book %}
|
|
||||||
<a href="{{ url_for('book.collection_view', book_id=book.original_book.id ) }}" target="_blank" class="flex pb-4">
|
|
||||||
<span class="flex items-center space-x-1 mr-2 bg-fuchsia-400 dark:!text-black rounded text-center px-1">
|
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="w-4 h-4"> <path stroke-linecap="round" stroke-linejoin="round" d="M13.19 8.688a4.5 4.5 0 011.242 7.244l-4.5 4.5a4.5 4.5 0 01-6.364-6.364l1.757-1.757m13.35-.622l1.757-1.757a4.5 4.5 0 00-6.364-6.364l-4.5 4.5a4.5 4.5 0 001.242 7.244" /> </svg>
|
|
||||||
<p>Fork</p>
|
|
||||||
</span>
|
|
||||||
</a>
|
|
||||||
{% endif %}
|
|
||||||
<a class="flex pb-4" href="{{url_for('book.collection_view',book_id=book.id)}}">
|
|
||||||
{% if book.user_id != current_user.id %}
|
|
||||||
<span class="mr-2 bg-blue-400 dark:!text-black rounded text-center px-1">Contributing</span>
|
|
||||||
{% endif %}
|
|
||||||
{{book.label}}
|
|
||||||
</a>
|
|
||||||
</dt>
|
|
||||||
<dd class="flex flex-col md:flex-row text-lg font-semibold text-gray-500 md:text-lg dark:text-gray-400">
|
|
||||||
{% if book.versions %}
|
|
||||||
<p>
|
|
||||||
Last updated on {{book.active_version.updated_at.strftime('%B %d, %Y')}}
|
|
||||||
</p>
|
|
||||||
{% endif %}
|
|
||||||
<div class="flex ml-auto align-center justify-center space-x-3">
|
|
||||||
<span class="book-star-block space-x-0.5 flex items-center">
|
|
||||||
<svg class="star-btn cursor-pointer w-4 h-4 inline-flex mr-1 {% if book.current_user_has_star %}fill-yellow-300{% endif %}" data-book-id={{ book.id }} xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 22 22" stroke-width="1" stroke="currentColor"> <path stroke-linecap="round" stroke-linejoin="round" d="M11.48 3.499a.562.562 0 011.04 0l2.125 5.111a.563.563 0 00.475.345l5.518.442c.499.04.701.663.321.988l-4.204 3.602a.563.563 0 00-.182.557l1.285 5.385a.562.562 0 01-.84.61l-4.725-2.885a.563.563 0 00-.586 0L6.982 20.54a.562.562 0 01-.84-.61l1.285-5.386a.562.562 0 00-.182-.557l-4.204-3.602a.563.563 0 01.321-.988l5.518-.442a.563.563 0 00.475-.345L11.48 3.5z" /> </svg>
|
|
||||||
<a href='{{ url_for("book.statistic_view", book_id=book.id ) }}' class="total-stars">{{ book.stars|length }}</a>
|
|
||||||
</span>
|
|
||||||
<span class="space-x-0.5 flex items-center">
|
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 22 22" stroke-width="1" stroke="currentColor" class="w-4 h-4 inline-flex mr-1"> <path stroke-linecap="round" stroke-linejoin="round" d="M3.75 13.5l10.5-11.25L12 10.5h8.25L9.75 21.75 12 13.5H3.75z" /> </svg>
|
|
||||||
<p>{{ book.interpretations|length }}</p>
|
|
||||||
</span>
|
|
||||||
<span class="space-x-0.5 flex items-center">
|
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 22 22" stroke-width="1" stroke="currentColor" class="w-4 h-4 inline-flex mr-1"> <path stroke-linecap="round" stroke-linejoin="round" d="M19.5 14.25v-2.625a3.375 3.375 0 00-3.375-3.375h-1.5A1.125 1.125 0 0113.5 7.125v-1.5a3.375 3.375 0 00-3.375-3.375H8.25m0 12.75h7.5m-7.5 3H12M10.5 2.25H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 00-9-9z" /> </svg>
|
|
||||||
<p>{{ book.approved_comments|length }}</p>
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
</dd>
|
|
||||||
</dl>
|
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
|
||||||
<!-- prettier-ignore -->
|
<!-- prettier-ignore -->
|
||||||
|
|
|
@ -76,32 +76,16 @@
|
||||||
</div>
|
</div>
|
||||||
<div class="hidden p-4 rounded-lg bg-gray-50 dark:bg-gray-800" id="version" role="tabpanel" aria-labelledby="version-tab">
|
<div class="hidden p-4 rounded-lg bg-gray-50 dark:bg-gray-800" id="version" role="tabpanel" aria-labelledby="version-tab">
|
||||||
{% for version in book.actual_versions %}
|
{% for version in book.actual_versions %}
|
||||||
<dl class=" bg-white dark:bg-gray-900 max-w-full p-5 text-gray-900 divide-y divide-gray-200 dark:text-white dark:divide-gray-700 m-3 border-2 border-gray-200 border-solid rounded-lg dark:border-gray-700">
|
{% with
|
||||||
<dt class="mb-2">
|
book=version,
|
||||||
<a class="flex flex-col pb-4" href="{{url_for('book.collection_view',book_id=book.id,version_index=loop.index)}}">
|
label=version.semver,
|
||||||
{{version.semver}}
|
hide_fork_label=True,
|
||||||
</a>
|
hide_contributing_label=True,
|
||||||
</dt>
|
hide_stars=True
|
||||||
<dd class="flex flex-col md:flex-row text-lg font-semibold text-gray-500 md:text-lg dark:text-gray-400">
|
%}
|
||||||
{% if book.versions %}
|
{% include 'book/components/book_list_item.html' %}
|
||||||
<p> Created by <a href="{{url_for('user.profile',user_id=version.user.id)}}" class=" text-blue-500 {% if book.owner.is_deleted %}line-through{% endif %}">{{version.book.owner.username}}</a> on {{version.created_at.strftime('%B %d, %Y')}} </p>
|
{% endwith %}
|
||||||
{% endif %}
|
|
||||||
<div class="flex ml-auto align-center justify-center space-x-3">
|
|
||||||
<span class="book-star-block space-x-0.5 flex items-center">
|
|
||||||
<svg class="star-btn cursor-pointer w-4 h-4 inline-flex mr-1 {% if book.current_user_has_star %}fill-yellow-300{% endif %}" data-book-id={{ book.id }} xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 22 22" stroke-width="1" stroke="currentColor"> <path stroke-linecap="round" stroke-linejoin="round" d="M11.48 3.499a.562.562 0 011.04 0l2.125 5.111a.563.563 0 00.475.345l5.518.442c.499.04.701.663.321.988l-4.204 3.602a.563.563 0 00-.182.557l1.285 5.385a.562.562 0 01-.84.61l-4.725-2.885a.563.563 0 00-.586 0L6.982 20.54a.562.562 0 01-.84-.61l1.285-5.386a.562.562 0 00-.182-.557l-4.204-3.602a.563.563 0 01.321-.988l5.518-.442a.563.563 0 00.475-.345L11.48 3.5z" /> </svg>
|
|
||||||
<span class="total-stars">{{ book.stars|length }}</span>
|
|
||||||
</span>
|
|
||||||
<span class="space-x-0.5 flex items-center">
|
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 22 22" stroke-width="1" stroke="currentColor" class="w-4 h-4 inline-flex mr-1"> <path stroke-linecap="round" stroke-linejoin="round" d="M3.75 13.5l10.5-11.25L12 10.5h8.25L9.75 21.75 12 13.5H3.75z" /> </svg>
|
|
||||||
<p>{{ book.interpretations|length }}</p>
|
|
||||||
</span>
|
|
||||||
<span class="space-x-0.5 flex items-center">
|
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 22 22" stroke-width="1" stroke="currentColor" class="w-4 h-4 inline-flex mr-1"> <path stroke-linecap="round" stroke-linejoin="round" d="M19.5 14.25v-2.625a3.375 3.375 0 00-3.375-3.375h-1.5A1.125 1.125 0 0113.5 7.125v-1.5a3.375 3.375 0 00-3.375-3.375H8.25m0 12.75h7.5m-7.5 3H12M10.5 2.25H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 00-9-9z" /> </svg>
|
|
||||||
<p>{{ book.approved_comments|length }}</p>
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
</dd>
|
|
||||||
</dl>
|
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</div>
|
</div>
|
||||||
<!-- prettier-ignore -->
|
<!-- prettier-ignore -->
|
||||||
|
@ -111,36 +95,9 @@
|
||||||
</button>
|
</button>
|
||||||
|
|
||||||
{% for fork in book.active_forks %}
|
{% for fork in book.active_forks %}
|
||||||
<dl class=" bg-white dark:bg-gray-900 max-w-full p-5 text-gray-900 divide-y divide-gray-200 dark:text-white dark:divide-gray-700 m-3 border-2 border-gray-200 border-solid rounded-lg dark:border-gray-700">
|
{% with book=fork, hide_fork_label=True, hide_contributing_label=True %}
|
||||||
<dt class="mb-2">
|
{% include 'book/components/book_list_item.html' %}
|
||||||
<a class="flex flex-col pb-4" href="{{url_for('book.collection_view',book_id=fork.id)}}">
|
{% endwith %}
|
||||||
{{fork.label}}
|
|
||||||
</a>
|
|
||||||
</dt>
|
|
||||||
<dd class="flex flex-col md:flex-row text-lg font-semibold text-gray-500 md:text-lg dark:text-gray-400">
|
|
||||||
<p>
|
|
||||||
Created by
|
|
||||||
<a href="{{url_for('user.profile',user_id=fork.owner.id)}}" class=" text-blue-500 {% if fork.owner.is_deleted %}line-through{% endif %}">
|
|
||||||
{{fork.owner.username}}
|
|
||||||
</a>
|
|
||||||
on {{fork.created_at.strftime('%B %d, %Y')}}
|
|
||||||
</p>
|
|
||||||
<div class="flex ml-auto align-center justify-center space-x-3">
|
|
||||||
<span class="book-star-block space-x-0.5 flex items-center">
|
|
||||||
<svg class="star-btn cursor-pointer w-4 h-4 inline-flex mr-1 {% if fork.current_user_has_star %}fill-yellow-300{% endif %}" data-book-id={{ fork.id }} xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 22 22" stroke-width="1" stroke="currentColor"> <path stroke-linecap="round" stroke-linejoin="round" d="M11.48 3.499a.562.562 0 011.04 0l2.125 5.111a.563.563 0 00.475.345l5.518.442c.499.04.701.663.321.988l-4.204 3.602a.563.563 0 00-.182.557l1.285 5.385a.562.562 0 01-.84.61l-4.725-2.885a.563.563 0 00-.586 0L6.982 20.54a.562.562 0 01-.84-.61l1.285-5.386a.562.562 0 00-.182-.557l-4.204-3.602a.563.563 0 01.321-.988l5.518-.442a.563.563 0 00.475-.345L11.48 3.5z" /> </svg>
|
|
||||||
<span class="total-stars">{{ fork.stars|length }}</span>
|
|
||||||
</span>
|
|
||||||
<span class="space-x-0.5 flex items-center">
|
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 22 22" stroke-width="1" stroke="currentColor" class="w-4 h-4 inline-flex mr-1"> <path stroke-linecap="round" stroke-linejoin="round" d="M3.75 13.5l10.5-11.25L12 10.5h8.25L9.75 21.75 12 13.5H3.75z" /> </svg>
|
|
||||||
<p>{{ fork.interpretations|length }}</p>
|
|
||||||
</span>
|
|
||||||
<span class="space-x-0.5 flex items-center">
|
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 22 22" stroke-width="1" stroke="currentColor" class="w-4 h-4 inline-flex mr-1"> <path stroke-linecap="round" stroke-linejoin="round" d="M19.5 14.25v-2.625a3.375 3.375 0 00-3.375-3.375h-1.5A1.125 1.125 0 0113.5 7.125v-1.5a3.375 3.375 0 00-3.375-3.375H8.25m0 12.75h7.5m-7.5 3H12M10.5 2.25H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 00-9-9z" /> </svg>
|
|
||||||
<p>{{ fork.approved_comments|length }}</p>
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
</dd>
|
|
||||||
</dl>
|
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -48,30 +48,9 @@
|
||||||
class="hidden md:block text-l ml-4 w-1/2 mt-2 text-gray-500 text-center md:text-left dark:text-gray-400">
|
class="hidden md:block text-l ml-4 w-1/2 mt-2 text-gray-500 text-center md:text-left dark:text-gray-400">
|
||||||
Books not found!
|
Books not found!
|
||||||
</p>
|
</p>
|
||||||
{% endif %} {% for book in books if not book.is_deleted %}
|
|
||||||
<!-- prettier-ignore -->
|
|
||||||
<dl class=" bg-white dark:bg-gray-900 max-w-full p-5 text-gray-900 divide-y divide-gray-200 dark:text-white dark:divide-gray-700 m-3 border-2 border-gray-200 border-solid rounded-lg dark:border-gray-700">
|
|
||||||
<dt class="mb-2"><a class="flex flex-col" href="{{url_for('book.collection_view',book_id=book.id)}}">{{book.label}}</a></dt>
|
|
||||||
<dd class="flex flex-col md:flex-row text-lg font-semibold text-gray-500 md:text-lg dark:text-gray-400">
|
|
||||||
{% if book.versions %}
|
|
||||||
<p> Last updated by <a href="{{url_for('user.profile',user_id=book.owner.id)}}" class=" text-blue-500 {% if book.owner.is_deleted %}line-through{% endif %}">{{book.owner.username}}</a> on {{book.active_version.updated_at.strftime('%B %d, %Y')}} </p>
|
|
||||||
{% endif %}
|
{% endif %}
|
||||||
<div class="flex ml-auto align-center justify-center space-x-3">
|
{% for book in books if not book.is_deleted %}
|
||||||
<span class="book-star-block space-x-0.5 flex items-center">
|
{% include 'book/components/book_list_item.html' %}
|
||||||
<svg class="star-btn cursor-pointer w-4 h-4 inline-flex mr-1 {% if book.current_user_has_star %}fill-yellow-300{% endif %}" data-book-id={{ book.id }} xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 22 22" stroke-width="1" stroke="currentColor"> <path stroke-linecap="round" stroke-linejoin="round" d="M11.48 3.499a.562.562 0 011.04 0l2.125 5.111a.563.563 0 00.475.345l5.518.442c.499.04.701.663.321.988l-4.204 3.602a.563.563 0 00-.182.557l1.285 5.385a.562.562 0 01-.84.61l-4.725-2.885a.563.563 0 00-.586 0L6.982 20.54a.562.562 0 01-.84-.61l1.285-5.386a.562.562 0 00-.182-.557l-4.204-3.602a.563.563 0 01.321-.988l5.518-.442a.563.563 0 00.475-.345L11.48 3.5z" /> </svg>
|
|
||||||
<a href="{{ url_for('book.statistic_view', book_id=book.id ) }}" class="total-stars">{{ book.stars|length }}</a>
|
|
||||||
</span>
|
|
||||||
<span class="space-x-0.5 flex items-center">
|
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 22 22" stroke-width="1" stroke="currentColor" class="w-4 h-4 inline-flex mr-1"> <path stroke-linecap="round" stroke-linejoin="round" d="M3.75 13.5l10.5-11.25L12 10.5h8.25L9.75 21.75 12 13.5H3.75z" /> </svg>
|
|
||||||
<p>{{ book.interpretations|length }}</p>
|
|
||||||
</span>
|
|
||||||
<span class="space-x-0.5 flex items-center">
|
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 22 22" stroke-width="1" stroke="currentColor" class="w-4 h-4 inline-flex mr-1"> <path stroke-linecap="round" stroke-linejoin="round" d="M19.5 14.25v-2.625a3.375 3.375 0 00-3.375-3.375h-1.5A1.125 1.125 0 0113.5 7.125v-1.5a3.375 3.375 0 00-3.375-3.375H8.25m0 12.75h7.5m-7.5 3H12M10.5 2.25H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 00-9-9z" /> </svg>
|
|
||||||
<p>{{ book.approved_comments|length }}</p>
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
</dd>
|
|
||||||
</dl>
|
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -44,35 +44,16 @@
|
||||||
</div>
|
</div>
|
||||||
<!-- prettier-ignore -->
|
<!-- prettier-ignore -->
|
||||||
<div class="p-4 rounded-lg bg-gray-50 dark:bg-gray-800" id="books" role="tabpanel" aria-labelledby="books-tab">
|
<div class="p-4 rounded-lg bg-gray-50 dark:bg-gray-800" id="books" role="tabpanel" aria-labelledby="books-tab">
|
||||||
{% if count<1 %}
|
{% if not count %}
|
||||||
<h1 class="hidden md:inline font-extrabold text-lg dark:text-white ml-4 mt-5">No {{query}} in any book name or included content, try another search query.</h1>
|
<h1 class="hidden md:inline font-extrabold text-lg dark:text-white ml-4 mt-5">No {{query}} in any book name or included content, try another search query.</h1>
|
||||||
{% else %}
|
{% else %}
|
||||||
|
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{% for book in books if not book.is_deleted %}
|
{% for book in books if not book.is_deleted %}
|
||||||
<!-- prettier-ignore -->
|
{% include 'book/components/book_list_item.html' %}
|
||||||
<dl class=" bg-white dark:bg-gray-900 max-w-full p-5 text-gray-900 divide-y divide-gray-200 dark:text-white dark:divide-gray-700 m-3 border-2 border-gray-200 border-solid rounded-lg dark:border-gray-700">
|
|
||||||
<dt class="mb-2"><a class="flex flex-col pb-4" href="{{url_for('book.collection_view',book_id=book.id)}}">{{book.label}}</a></dt>
|
|
||||||
<dd class="flex flex-col md:flex-row text-lg font-semibold text-gray-500 md:text-lg dark:text-gray-400">
|
|
||||||
{% if book.versions %}
|
|
||||||
<p> Last updated by <a href="{{url_for('user.profile',user_id=book.owner.id)}}" class=" text-blue-500 {% if book.owner.is_deleted %}line-through{% endif %}">{{book.owner.username}}</a> on {{book.active_version.updated_at.strftime('%B %d, %Y')}} </p>
|
|
||||||
{% endif %}
|
|
||||||
<div class="flex ml-auto align-center justify-center space-x-3">
|
|
||||||
<span class="book-star-block space-x-0.5 flex items-center">
|
|
||||||
<svg class="star-btn cursor-pointer w-4 h-4 inline-flex mr-1 {% if book.current_user_has_star %}fill-yellow-300{% endif %}" data-book-id={{ book.id }} xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 22 22" stroke-width="1" stroke="currentColor"> <path stroke-linecap="round" stroke-linejoin="round" d="M11.48 3.499a.562.562 0 011.04 0l2.125 5.111a.563.563 0 00.475.345l5.518.442c.499.04.701.663.321.988l-4.204 3.602a.563.563 0 00-.182.557l1.285 5.385a.562.562 0 01-.84.61l-4.725-2.885a.563.563 0 00-.586 0L6.982 20.54a.562.562 0 01-.84-.61l1.285-5.386a.562.562 0 00-.182-.557l-4.204-3.602a.563.563 0 01.321-.988l5.518-.442a.563.563 0 00.475-.345L11.48 3.5z" /> </svg>
|
|
||||||
<a href={{ url_for('book.statistic_view', book_id=book.id ) }} class="total-stars">{{ book.stars|length }}</a>
|
|
||||||
</span>
|
|
||||||
<span class="space-x-0.5 flex items-center">
|
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 22 22" stroke-width="1" stroke="currentColor" class="w-4 h-4 inline-flex mr-1"> <path stroke-linecap="round" stroke-linejoin="round" d="M3.75 13.5l10.5-11.25L12 10.5h8.25L9.75 21.75 12 13.5H3.75z" /> </svg>
|
|
||||||
<p>{{ book.interpretations|length }}</p>
|
|
||||||
</span>
|
|
||||||
<span class="space-x-0.5 flex items-center">
|
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 22 22" stroke-width="1" stroke="currentColor" class="w-4 h-4 inline-flex mr-1"> <path stroke-linecap="round" stroke-linejoin="round" d="M19.5 14.25v-2.625a3.375 3.375 0 00-3.375-3.375h-1.5A1.125 1.125 0 0113.5 7.125v-1.5a3.375 3.375 0 00-3.375-3.375H8.25m0 12.75h7.5m-7.5 3H12M10.5 2.25H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 00-9-9z" /> </svg>
|
|
||||||
<p>{{ book.approved_comments|length }}</p>
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
</dd>
|
|
||||||
</dl>
|
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
|
||||||
<!-- prettier-ignore -->
|
<!-- prettier-ignore -->
|
||||||
{% if page.pages > 1 %}
|
{% if page.pages > 1 %}
|
||||||
<div class="container content-center mt-3 flex bg-white dark:bg-gray-800">
|
<div class="container content-center mt-3 flex bg-white dark:bg-gray-800">
|
||||||
|
|
|
@ -47,31 +47,7 @@
|
||||||
<!-- prettier-ignore -->
|
<!-- prettier-ignore -->
|
||||||
<div class="hidden p-4 rounded-lg bg-gray-50 dark:bg-gray-800" id="library" role="tabpanel" aria-labelledby="library-tab">
|
<div class="hidden p-4 rounded-lg bg-gray-50 dark:bg-gray-800" id="library" role="tabpanel" aria-labelledby="library-tab">
|
||||||
{% for book in user.books if not book.is_deleted %}
|
{% for book in user.books if not book.is_deleted %}
|
||||||
<!-- prettier-ignore -->
|
{% include 'book/components/book_list_item.html' %}
|
||||||
<dl class="bg-white dark:bg-gray-900 h-max w-full p-5 text-gray-900 divide-y divide-gray-200 dark:text-white dark:divide-gray-700 m-3 border-2 border-gray-200 border-solid rounded-lg dark:border-gray-700">
|
|
||||||
<dt class="mb-2"><a class="flex flex-col pb-4" href="{{url_for('book.collection_view',book_id=book.id)}}">{{book.label}}</a></dt>
|
|
||||||
<dd class="flex flex-col md:flex-row text-lg font-semibold text-gray-500 md:text-lg dark:text-gray-400">
|
|
||||||
{% if book.versions %}
|
|
||||||
<p>
|
|
||||||
Last updated on {{book.active_version.updated_at.strftime('%B %d, %Y')}}
|
|
||||||
</p>
|
|
||||||
{% endif %}
|
|
||||||
<div class="flex ml-auto align-center justify-center space-x-3">
|
|
||||||
<span class="book-star-block space-x-0.5 flex items-center">
|
|
||||||
<svg class="star-btn cursor-pointer w-4 h-4 inline-flex mr-1 {% if book.current_user_has_star %}fill-yellow-300{% endif %}" data-book-id={{ book.id }} xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 22 22" stroke-width="1" stroke="currentColor"> <path stroke-linecap="round" stroke-linejoin="round" d="M11.48 3.499a.562.562 0 011.04 0l2.125 5.111a.563.563 0 00.475.345l5.518.442c.499.04.701.663.321.988l-4.204 3.602a.563.563 0 00-.182.557l1.285 5.385a.562.562 0 01-.84.61l-4.725-2.885a.563.563 0 00-.586 0L6.982 20.54a.562.562 0 01-.84-.61l1.285-5.386a.562.562 0 00-.182-.557l-4.204-3.602a.563.563 0 01.321-.988l5.518-.442a.563.563 0 00.475-.345L11.48 3.5z" /> </svg>
|
|
||||||
<a href={{ url_for('book.statistic_view', book_id=book.id ) }} class="total-stars">{{ book.stars|length }}</a>
|
|
||||||
</span>
|
|
||||||
<span class="space-x-0.5 flex items-center">
|
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 22 22" stroke-width="1" stroke="currentColor" class="w-4 h-4 inline-flex mr-1"> <path stroke-linecap="round" stroke-linejoin="round" d="M3.75 13.5l10.5-11.25L12 10.5h8.25L9.75 21.75 12 13.5H3.75z" /> </svg>
|
|
||||||
<p>{{ book.interpretations|length }}</p>
|
|
||||||
</span>
|
|
||||||
<span class="space-x-0.5 flex items-center">
|
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 22 22" stroke-width="1" stroke="currentColor" class="w-4 h-4 inline-flex mr-1"> <path stroke-linecap="round" stroke-linejoin="round" d="M19.5 14.25v-2.625a3.375 3.375 0 00-3.375-3.375h-1.5A1.125 1.125 0 0113.5 7.125v-1.5a3.375 3.375 0 00-3.375-3.375H8.25m0 12.75h7.5m-7.5 3H12M10.5 2.25H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 00-9-9z" /> </svg>
|
|
||||||
<p>{{ book.approved_comments|length }}</p>
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
</dd>
|
|
||||||
</dl>
|
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</div>
|
</div>
|
||||||
<!-- prettier-ignore -->
|
<!-- prettier-ignore -->
|
||||||
|
|
|
@ -7,7 +7,11 @@ module.exports = {
|
||||||
'./node_modules/flowbite/**/*.js',
|
'./node_modules/flowbite/**/*.js',
|
||||||
],
|
],
|
||||||
theme: {
|
theme: {
|
||||||
extend: {},
|
extend: {
|
||||||
|
fontSize: {
|
||||||
|
20: '2rem',
|
||||||
|
},
|
||||||
|
},
|
||||||
},
|
},
|
||||||
plugins: [require('flowbite/plugin')],
|
plugins: [require('flowbite/plugin')],
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in New Issue