2022-05-04 23:09:46 +00:00
{% for u in users %}
2022-09-06 03:51:55 +00:00
< div class = "col-12 col-sm-6 col-md-6 col-lg-4 col-xl-3 mb-4" >
< div id = "user-{{u.id}}" class = "card h-100" >
2023-09-15 11:01:04 +00:00
< div style = "position: relative" >
2022-09-06 03:51:55 +00:00
< img loading = "lazy" src = "{{u.banner_url}}" class = "card-img-top" alt = "@{{u.username}} user banner" height = 175 style = "object-fit: cover" >
2023-09-15 11:01:04 +00:00
< div class = "profile-pic-50-wrapper" style = "position: absolute; left: 15px; bottom: 15px; box-sizing: content-box" >
2022-10-29 21:42:30 +00:00
< img loading = "lazy" src = "{{u.profile_url}}" class = "profile-pic-50" >
2022-12-24 22:21:49 +00:00
{% if u.hat_active(v)[0] -%}
2023-12-22 20:14:21 +00:00
< img id = "profile-pic-50-hat" class = "profile-pic-50-hat hat" loading = "lazy" src = "{{u.hat_active(v)[0]}}?x=7" data-bs-toggle = "tooltip" data-bs-placement = "bottom" title = "{{u.hat_active(v)[1]}}" >
2022-09-06 03:51:55 +00:00
{%- endif %}
< / div >
< / div >
2023-09-15 11:01:04 +00:00
< div class = "card-body" style = "word-wrap: break-word" >
2022-07-14 17:21:27 +00:00
< div class = "d-flex flex-wrap justify-content-between align-items-center mb-1" >
2022-05-04 23:09:46 +00:00
2024-02-03 18:03:46 +00:00
< a class = "card-title stretched-link mb-0" href = "{{u.url}}" > < h5 > @{{u.username}}< / h5 > < / a >
2022-05-04 23:09:46 +00:00
{% if v %}
2023-01-24 03:56:31 +00:00
{% if v.id != u.id %}
2023-10-29 00:07:53 +00:00
< div id = "button-sub-{{u.id}}" style = "z-index: 2" class = "{% if u.has_follower(v) %}d-none{% endif %}" > < button type = "button" class = "btn btn-primary" data-nonce = "{{g.nonce}}" data-onclick = "postToastSwitch(this,'/follow/{{u.username}}','button-sub-{{u.id}}','button-unsub-{{u.id}}','d-none')" > Follow< / button > < / div >
2022-05-04 23:09:46 +00:00
2023-10-29 00:07:53 +00:00
< div id = "button-unsub-{{u.id}}" style = "z-index: 2" class = "{% if not u.has_follower(v) %} d-none{% endif %}" > < button type = "button" class = "btn btn-secondary" data-nonce = "{{g.nonce}}" data-onclick = "postToastSwitch(this,'/unfollow/{{u.username}}','button-sub-{{u.id}}','button-unsub-{{u.id}}','d-none')" > Unfollow< / button > < / div >
2022-05-04 23:09:46 +00:00
{% endif %}
{% else %}
2022-11-19 21:33:59 +00:00
< div id = "button-sub-{{u.id}}" style = "z-index: 2" > < a class = "btn btn-primary" href = "/signup?redirect={{request.full_path | urlencode}}" > Follow< / a > < / div >
2022-05-04 23:09:46 +00:00
{% endif %}
< / div >
2022-09-18 17:27:16 +00:00
< div id = "profile--joined" > Joined on < span id = "profile--joined--time" data-time = "{{u.created_utc}}" > < / span > < / div >
2022-07-14 17:21:27 +00:00
2022-10-06 06:27:34 +00:00
{% if v.admin_level >= PERMS['VIEW_LAST_ACTIVE'] -%}
2022-09-18 17:27:16 +00:00
< div id = "profile--lastactive" class = "mt-3" > Last active on < span id = "profile--lastactive--time" data-time = "{{u.last_active}}" > < / span > < / div >
2022-07-14 17:21:27 +00:00
{%- endif %}
2023-10-05 10:09:58 +00:00
{% if FEATURES['USERS_PROFILE_BODYTEXT'] and not hide_bios and u.bio_html and can_see(v, u) %}
2023-08-06 07:26:58 +00:00
< div class = "card-text user-card-bio mt-3" > {{u.bio_html | safe}}< / div >
2022-05-04 23:09:46 +00:00
{% endif %}
< / div >
< / div >
< / div >
2022-10-28 20:08:32 +00:00
{% endfor %}