2022-11-05 20:17:27 +00:00
|
|
|
{% extends "base.html" %}
|
2023-05-12 23:43:26 +00:00
|
|
|
{% load activity_tags %}
|
2022-11-05 20:17:27 +00:00
|
|
|
|
|
|
|
{% block title %}{{ identity }}{% endblock %}
|
|
|
|
|
2022-12-26 17:39:33 +00:00
|
|
|
{% block opengraph %}
|
|
|
|
{% include "_opengraph.html" with opengraph_local=identity.to_opengraph_dict %}
|
|
|
|
{% endblock %}
|
|
|
|
|
2022-12-04 17:17:43 +00:00
|
|
|
{% block extra_head %}
|
|
|
|
{% if identity.local %}
|
|
|
|
<link rel="alternate" type="application/rss+xml" title="RSS feed for {{ identity.name }}" href="rss/" />
|
|
|
|
{% endif %}
|
|
|
|
{% endblock %}
|
|
|
|
|
2022-11-05 20:17:27 +00:00
|
|
|
{% block content %}
|
2023-05-04 04:42:37 +00:00
|
|
|
<section class="identity">
|
|
|
|
{% if identity.local_image_url %}
|
|
|
|
<img src="{{ identity.local_image_url.relative }}" class="banner">
|
|
|
|
{% endif %}
|
2022-11-18 01:52:00 +00:00
|
|
|
|
2023-05-04 04:42:37 +00:00
|
|
|
<span
|
|
|
|
_="on click halt the event then call imageviewer.show(me)"
|
|
|
|
>
|
|
|
|
<img src="{{ identity.local_icon_url.relative }}" class="icon"
|
|
|
|
data-original-url="{{ identity.local_icon_url.relative }}"
|
|
|
|
alt="Profile image for {{ identity.name }}"
|
2023-02-24 10:54:58 +00:00
|
|
|
>
|
2023-05-04 04:42:37 +00:00
|
|
|
</span>
|
|
|
|
|
|
|
|
<div class="inline follow">
|
|
|
|
<div class="actions" role="menubar">
|
|
|
|
{% if request.user in identity.users.all %}
|
|
|
|
<a href="{% url "settings_profile" handle=identity.handle %}" class="button" title="Edit Profile">
|
|
|
|
<i class="fa-solid fa-user-edit"></i> Settings
|
|
|
|
</a>
|
2023-02-05 04:33:01 +00:00
|
|
|
{% endif %}
|
2023-05-04 04:42:37 +00:00
|
|
|
{% if request.user.admin or request.user.moderator %}
|
|
|
|
<a href="{% url "settings_profile" handle=identity.handle %}" class="button danger" title="View in Admin">
|
|
|
|
<i class="fa-solid fa-screwdriver-wrench"></i> Admin
|
|
|
|
</a>
|
2023-01-30 18:24:15 +00:00
|
|
|
{% endif %}
|
2023-05-04 04:42:37 +00:00
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<h1>{{ identity.html_name_or_handle }}</h1>
|
|
|
|
<small>
|
|
|
|
@{{ identity.handle }}
|
|
|
|
<a title="Copy handle"
|
|
|
|
class="copy"
|
|
|
|
tabindex="0"
|
|
|
|
_="on click or keyup[key is 'Enter']
|
|
|
|
writeText('@{{ identity.handle }}') into the navigator's clipboard
|
|
|
|
then add .copied
|
|
|
|
wait 2s
|
|
|
|
then remove .copied">
|
|
|
|
<i class="fa-solid fa-copy"></i>
|
|
|
|
</a>
|
|
|
|
</small>
|
|
|
|
{% if identity.summary %}
|
|
|
|
<div class="bio">
|
|
|
|
{{ identity.safe_summary }}
|
|
|
|
</div>
|
2023-01-15 20:35:45 +00:00
|
|
|
{% endif %}
|
2023-05-04 04:42:37 +00:00
|
|
|
</section>
|
|
|
|
|
|
|
|
<section class="invisible identity-metadata">
|
|
|
|
{% if identity.metadata %}
|
|
|
|
{% for entry in identity.safe_metadata %}
|
|
|
|
<div class="metadata-pair">
|
|
|
|
<span class="metadata-name">{{ entry.name }}</span>
|
|
|
|
<span class="metadata-value">{{ entry.value }}</span>
|
|
|
|
</div>
|
|
|
|
{% endfor %}
|
|
|
|
{% endif %}
|
|
|
|
</section>
|
|
|
|
|
|
|
|
{% if not identity.local %}
|
|
|
|
<section class="system-note">
|
|
|
|
{% if identity.outdated and not identity.name %}
|
|
|
|
The system is still fetching this profile. Refresh to see updates.
|
|
|
|
{% else %}
|
|
|
|
This is a member of another server.
|
|
|
|
<a href="{{ identity.profile_uri|default:identity.actor_uri }}">See their original profile ➔</a>
|
|
|
|
{% endif %}
|
|
|
|
</section>
|
|
|
|
{% else %}
|
|
|
|
|
|
|
|
{% include "identity/_tabs.html" %}
|
2022-12-01 16:56:41 +00:00
|
|
|
|
2023-01-15 20:35:45 +00:00
|
|
|
{% block subcontent %}
|
|
|
|
|
2023-05-06 06:04:20 +00:00
|
|
|
<div class="page-content">
|
2023-05-13 16:01:27 +00:00
|
|
|
{% for post in pinned_posts %}
|
|
|
|
<div class="pinned-post-banner">
|
|
|
|
Pinned post
|
|
|
|
</div>
|
|
|
|
{% include "activities/_post.html" %}
|
|
|
|
{% endfor %}
|
2023-05-12 23:43:26 +00:00
|
|
|
{% for event in page_obj %}
|
|
|
|
{% if event.type == "post" %}
|
|
|
|
{% include "activities/_post.html" with post=event.subject_post %}
|
|
|
|
{% elif event.type == "boost" %}
|
|
|
|
<div class="boost-banner">
|
|
|
|
<a href="{{ event.subject_identity.urls.view }}">
|
|
|
|
{{ event.subject_identity.html_name_or_handle }}
|
|
|
|
</a> boosted
|
|
|
|
<time>
|
|
|
|
{{ event.subject_post_interaction.published | timedeltashort }} ago
|
|
|
|
</time>
|
|
|
|
</div>
|
|
|
|
{% include "activities/_post.html" with post=event.subject_post %}
|
|
|
|
{% endif %}
|
2023-05-06 06:04:20 +00:00
|
|
|
{% empty %}
|
|
|
|
<span class="empty">
|
|
|
|
{% if identity.local %}
|
|
|
|
No posts yet.
|
|
|
|
{% else %}
|
|
|
|
No posts have been received by this server yet.
|
|
|
|
|
|
|
|
{% if identity.profile_uri %}
|
|
|
|
You may find historical posts at
|
|
|
|
<a href="{{ identity.profile_uri }}">their original profile ➔</a>
|
|
|
|
{% endif %}
|
2023-01-15 20:35:45 +00:00
|
|
|
{% endif %}
|
2023-05-06 06:04:20 +00:00
|
|
|
</span>
|
|
|
|
{% endfor %}
|
2022-11-23 01:39:15 +00:00
|
|
|
|
2023-05-06 06:04:20 +00:00
|
|
|
<div class="pagination">
|
|
|
|
{% if page_obj.has_previous and not request.htmx %}
|
|
|
|
<a class="button" href=".?page={{ page_obj.previous_page_number }}">Previous Page</a>
|
|
|
|
{% endif %}
|
2023-01-20 06:09:01 +00:00
|
|
|
|
2023-05-06 06:04:20 +00:00
|
|
|
{% if page_obj.has_next %}
|
|
|
|
<a class="button" href=".?page={{ page_obj.next_page_number }}" hx-boost="true" hx-select=".page-content" hx-target=".pagination" hx-swap="outerHTML">Next Page</a>
|
|
|
|
{% endif %}
|
|
|
|
</div>
|
2023-01-20 06:09:01 +00:00
|
|
|
</div>
|
2022-12-21 20:36:10 +00:00
|
|
|
|
2023-01-15 20:35:45 +00:00
|
|
|
{% endblock %}
|
|
|
|
{% endif %}
|
2022-11-05 20:17:27 +00:00
|
|
|
{% endblock %}
|