[FastAPI] Modularize homepage and add side panel

This puts one more toward completion of the homepage
overall; we'll need to still implement the authenticated
user dashboard after this.

Signed-off-by: Kevin Morris <kevr@0cost.org>
This commit is contained in:
Kevin Morris 2021-07-28 13:28:17 -07:00
parent 9e73936c4e
commit d9cdd5faef
No known key found for this signature in database
GPG key ID: F7E46DED420788F3
10 changed files with 500 additions and 102 deletions

View file

@ -0,0 +1,14 @@
<div id="pkgsearch" class="widget">
<form id="pkgsearch-form" method="get" action="/packages/">
<fieldset>
<label for="pkgsearch-field">{{ "Package Search" | tr }}:</label>
<input type="hidden" name="O" value="0" />
<input id="pkgsearch-field"
type="text"
name="K"
size="30"
maxlength="35"
autocomplete="off" />
</fieldset>
</form>
</div>

View file

@ -0,0 +1,55 @@
<div id="pkg-stats" class="widget box">
<h3>{{ "Statistics" | tr }}</h3>
<table>
<tr>
<td class="stat-desc">{{ "Packages" | tr }}</td>
<td>{{ package_count }}</td>
</tr>
<tr>
<td class="stat-desc">{{ "Orphan Packages" | tr }}</td>
<td>{{ orphan_count }}</td>
</tr>
<tr>
<td class="stat-desc">
{{ "Packages added in the past 7 days" | tr }}
</td>
<td>{{ seven_days_old_added }}</td>
</tr>
<tr>
<td class="stat-desc">
{{ "Packages updated in the past 7 days" | tr }}
</td>
<td>{{ seven_days_old_updated }}</td>
</tr>
<tr>
<td class="stat-desc">
{{ "Packages updated in the past year" | tr }}
</td>
<td>{{ year_old_updated }}</td>
</tr>
<tr>
<td class="stat-desc">
{{ "Packages never updated" | tr }}
</td>
<td>{{ never_updated }}</td>
</tr>
<tr>
<td class="stat-desc">
{{ "Registered Users" | tr }}
</td>
<td>{{ user_count }}</td>
</tr>
<tr>
<td class="stat-desc">
{{ "Trusted Users" | tr }}
</td>
<td>{{ trusted_user_count }}</td>
</tr>
</table>
</div>
{% if request.user.is_authenticated() %}
<!-- Include "My Statistics" -->
{% include 'partials/widgets/statistics.html' %}
{% endif %}

View file

@ -0,0 +1,35 @@
<div id="pkg-updates" class="widget box">
<h3>
{{ "Recent Updates" | tr }}
<span class="more">
(<a href="/packages/?SB=l&SO=d">{{ "more" | tr }}</a>)
</span>
</h3>
<a class="rss-icon latest" href="/rss/"
title="AUR Latest Packages RSS Feed">
<img src="/static/images/rss.svg" alt="RSS Feed" />
</a>
<a class="rss-icon" href="/rss/modified"
title="AUR Modified Packages RSS Feed">
<img src="/static/images/rss.svg" alt="RSS Feed" />
</a>
<table>
<tbody>
{% for pkg in package_updates %}
<tr>
<td class="pkg-name">
<a href="/packages/{{ pkg.Name }}">
{{ pkg.Name }} {{ pkg.Version }}
</a>
</td>
<td class="pkg-date">
{% set modified = pkg.PackageBase.ModifiedTS | dt | as_timezone(timezone) %}
{{ modified.strftime("%Y-%m-%d %H:%M") }}
</td>
</tr>
{% endfor %}
</tbody>
</table>
</div>