misuzu/templates/user/macros.twig

111 lines
5.1 KiB
Twig

{% macro user_card(user, profile_url, rank_url, actions) %}
<div class="usercard" {% if user.user_colour is defined %}style="{{ user.user_colour|html_colour('--accent-colour') }}"{% endif %}>
<a href="{{ profile_url|default('/profile.php?u=%d')|format(user.user_id) }}"
class="usercard__background" title="{{ user.username }}"></a>
<div class="usercard__container">
<div class="usercard__main">
<div class="avatar usercard__avatar"
style="background-image:url('/profile.php?u={{ user.user_id }}&amp;m=avatar')">
</div>
<div class="usercard__details">
<div class="usercard__name">
{{ user.username }}
</div>
<div class="usercard__info">
{% if user.user_country is defined %}
<div class="flag flag--{{ user.user_country|lower }} usercard__item usercard__item--country usercard__item--active" title="{{ user.user_country|country_name }}">
{{ user.user_country }}
</div>
{% endif %}
{% if user.user_title is defined %}
<a class="usercard__item usercard__item--title{% if user.role_id is defined %} usercard__item--active{% endif %}"{% if user.role_id is defined %} href="{{ rank_url|default('/members.php?r=%d')|format(user.role_id) }}"{% endif %} title="{{ user.user_title }}">
{{ user.user_title }}
</a>
{% endif %}
</div>
</div>
</div>
{% if actions is iterable %}
<div class="usercard__actions">
{% for action in actions %}
<a class="usercard__action"
{% if action.href is defined %}href="{{ action.href }}"{% endif %}
{% if action.onclick is defined %}onclick="{{ action.onclick }}"{% endif %}>
{{ action.text }}
</a>
{% endfor %}
</div>
{% endif %}
</div>
</div>
{% endmacro %}
{% macro user_session(session, is_current_session) %}
{% from '_layout/input.twig' import input_hidden, input_csrf, input_checkbox_raw %}
{% set browser = get_browser(session.user_agent) %}
<div class="settings__session{% if is_current_session %} settings__session--current{% endif %}" id="session-{{ session.session_id }}">
<div class="settings__session__important">
<div class="flag flag--{{ session.session_country|lower }} settings__session__flag"></div>
<div class="settings__session__description">
{{ browser.browser }} on {{ browser.platform }}
</div>
<form class="settings__session__actions" method="post" action="/settings.php">
{{ input_csrf('settings') }}
{{ input_hidden('session[]', session.session_id) }}
<button class="settings__session__action" title="{{ is_current_session ? 'Logout' : 'End Session' }}">
{% if is_current_session %}
<i class="fas fa-sign-out-alt"></i>
{% else %}
<i class="fas fa-times-circle"></i>
{% endif %}
</button>
</form>
</div>
<div class="settings__session__details">
<div class="settings__session__detail">
<div class="settings__session__detail__title">
IP Address
</div>
<div class="settings__session__detail__value">
{{ session.session_ip_decoded }}
</div>
</div>
<div class="settings__session__detail" title="{{ session.created_at|date('r') }}">
<div class="settings__session__detail__title">
Created
</div>
<time class="settings__session__detail__value" datetime="{{ session.created_at|date('c') }}">
{{ session.created_at|time_diff }}
</time>
</div>
<div class="settings__session__detail" title="{{ session.expires_on|date('r') }}">
<div class="settings__session__detail__title">
Expires
</div>
<time class="settings__session__detail__value" datetime="{{ session.expires_on|date('c') }}">
{{ session.expires_on|time_diff }}
</time>
</div>
<div class="settings__session__detail">
<div class="settings__session__detail__title">
User Agent
</div>
<div class="settings__session__detail__value">
{{ session.user_agent|length > 0 ? session.user_agent : 'None' }}
</div>
</div>
</div>
</div>
{% endmacro %}