Files
freedit/templates/user_list.html
2025-12-27 19:05:59 +08:00

197 lines
11 KiB
HTML

{% extends "layout.html" %}
{% block content %}
<div class="level is-mobile px-3">
<div class="level-left">
<div class="tabs is-small is-toggle is-toggle-rounded">
<ul>
{% match filter.as_deref() %} {% when Some with ("followers") %}
<li><a href="/user/list">{{ "users"|l10n(page_data.lang) }}</a></li>
<li class="is-active"><a href="/user/list?filter=followers&id={{info.0}}">{{ "followers"|l10n(page_data.lang) }}</a></li>
{% when Some with ("following") %}
<li><a href="/user/list">{{ "users"|l10n(page_data.lang) }}</a></li>
<li class="is-active"><a href="/user/list?filter=following&id={{info.0}}">{{ "following"|l10n(page_data.lang) }}</a></li>
{% when Some with ("inn") %}
<li><a href="/user/list">{{ "users"|l10n(page_data.lang) }}</a></li>
<li class="is-active"><a href="/user/list?filter=inn&id={{info.0}}">⚓ {{info.1}}</a></li>
{% else %}
<li class="is-active"><a href="/user/list">{{ "users"|l10n(page_data.lang) }}</a></li>
{% endmatch %}
</ul>
</div>
</div>
<div class="level-right">
{% match filter.as_deref() %} {% when Some with ("inn") %}
<div class="dropdown is-hoverable is-right">
<div class="dropdown-trigger">
<button class="button is-small is-rounded">
<span>
{% match role %}{% when Some(10) %} {{ "super"|l10n(page_data.lang) }}
{% when Some(7) %} {{ "mod"|l10n(page_data.lang) }}
{% when Some(5) %} {{ "fellow"|l10n(page_data.lang) }}
{% when Some(4) %} {{ "intern"|l10n(page_data.lang) }}
{% when Some(3) %} {{ "limited"|l10n(page_data.lang) }}
{% when Some(2) %} {{ "rejected"|l10n(page_data.lang) }}
{% when Some(1) %} {{ "pending"|l10n(page_data.lang) }}
{% else %} Inn {{ "role"|l10n(page_data.lang) }} {% endmatch %}
</span>
</button>
</div>
<div class="dropdown-menu">
<div class="dropdown-content">
{% if info.2 %}
<a href="/user/list?filter=inn&id={{info.0}}&role=1" class="dropdown-item">{{ "pending"|l10n(page_data.lang) }}</a>
<a href="/user/list?filter=inn&id={{info.0}}&role=2" class="dropdown-item">{{ "rejected"|l10n(page_data.lang) }}</a>
{% endif %}
<a href="/user/list?filter=inn&id={{info.0}}&role=3" class="dropdown-item">{{ "limited"|l10n(page_data.lang) }}</a>
<a href="/user/list?filter=inn&id={{info.0}}&role=4" class="dropdown-item">{{ "intern"|l10n(page_data.lang) }}</a>
<a href="/user/list?filter=inn&id={{info.0}}&role=5" class="dropdown-item">{{ "fellow"|l10n(page_data.lang) }}</a>
<a href="/user/list?filter=inn&id={{info.0}}&role=7" class="dropdown-item">{{ "mod"|l10n(page_data.lang) }}</a>
<a href="/user/list?filter=inn&id={{info.0}}&role=10" class="dropdown-item">{{ "super"|l10n(page_data.lang) }}</a>
<hr class="dropdown-divider">
<a href="/user/list?filter=inn&id={{info.0}}" class="dropdown-item">{{ "all"|l10n(page_data.lang) }}</a>
</div>
</div>
</div>
{% when None %}
<div class="dropdown is-hoverable is-right">
<div class="dropdown-trigger">
<button class="button is-small is-rounded">
<span>
{% match role %}{% when Some(255) %} {{ "admin"|l10n(page_data.lang) }}
{% when Some(100) %} {{ "senior"|l10n(page_data.lang) }}
{% when Some(10) %} {{ "standard"|l10n(page_data.lang) }}
{% when Some(0) %} {{ "banned"|l10n(page_data.lang) }}
{% else %} {{ "role"|l10n(page_data.lang) }} {% endmatch %}
</span>
</button>
</div>
<div class="dropdown-menu">
<div class="dropdown-content">
<a href="/user/list?role=255" class="dropdown-item">{{ "admin"|l10n(page_data.lang) }}</a>
<a href="/user/list?role=100" class="dropdown-item">{{ "senior"|l10n(page_data.lang) }}</a>
<a href="/user/list?role=10" class="dropdown-item">{{ "standard"|l10n(page_data.lang) }}</a>
<a href="/user/list?role=0" class="dropdown-item">{{ "banned"|l10n(page_data.lang) }}</a>
<hr class="dropdown-divider">
<a href="/user/list" class="dropdown-item">{{ "all"|l10n(page_data.lang) }}</a>
</div>
</div>
</div>
{% else %}
<figure>
<p class="image is-48x48">
<a href="/user/{{info.0}}"><img src="/static/avatars/{{info.0}}.png" alt="{{info.1}}"></a>
</p>
</figure>
{% endmatch %}
</div>
</div>
<div class="list has-visible-pointer-controls has-overflow-ellipsis box">
{% for user in users %}
<div class="list-item">
<div class="list-item-image">
<figure class="image is-64x64">
<a href="/user/{{user.uid}}"><img src="/static/avatars/{{user.uid}}.png"></a>
</figure>
</div>
<div class="list-item-content">
<div class="list-item-title"><a href="/user/{{user.uid}}">{{user.username}}</a></div>
<div class="list-item-description">{{user.about}}</div>
</div>
<div class="list-item-controls">
{% if is_admin %}
{% match filter.as_deref() %} {% when Some with ("inn") %}
<form id="role" action="/role/{{info.0}}/{{user.uid}}" method="post">
<fieldset>
<div class="field has-addons">
<p class="control">
<span class="select is-small">
<select name="role" required autocomplete="off">
{% if info.2 %}
<option value="Pending" {% if user.role == 1 %} selected {% endif %}>{{ "pending"|l10n(page_data.lang) }}</option>
<option value="Rejected" {% if user.role == 2 %} selected {% endif %}>{{ "rejected"|l10n(page_data.lang) }}</option>
{% endif %}
<option value="Limited" {% if user.role == 3 %} selected {% endif %}>{{ "limited"|l10n(page_data.lang) }}</option>
<option value="Intern" {% if user.role == 4 %} selected {% endif %}>{{ "intern"|l10n(page_data.lang) }}</option>
<option value="Fellow" {% if user.role == 5 %} selected {% endif %}>{{ "fellow"|l10n(page_data.lang) }}</option>
<option value="Mod" {% if user.role == 7 %} selected {% endif %}>{{ "mod"|l10n(page_data.lang) }}</option>
<option value="Super" {% if user.role == 10 %} selected {% endif %}>{{ "super"|l10n(page_data.lang) }}</option>
</select>
</span>
</p>
<div class="control">
<button type="submit" class="button is-success is-small">{{ "save"|l10n(page_data.lang) }}</button>
</div>
</div>
</fieldset>
</form>
{% when None %}
<form id="role" action="/role/{{info.0}}/{{user.uid}}" method="post">
<fieldset>
<div class="field has-addons">
<p class="control">
<span class="select is-small">
<select name="role" required autocomplete="off">
<option value="Admin" {% if user.role == 255 %} selected {% endif %}>{{ "admin"|l10n(page_data.lang) }}</option>
<option value="Senior" {% if user.role == 100 %} selected {% endif %}>{{ "senior"|l10n(page_data.lang) }}</option>
<option value="Standard" {% if user.role == 10 %} selected {% endif %}>{{ "standard"|l10n(page_data.lang) }}</option>
<option value="Banned" {% if user.role == 0 %} selected {% endif %}>{{ "banned"|l10n(page_data.lang) }}</option>
</select>
</span>
</p>
<div class="control">
<button type="submit" class="button is-success is-small">{{ "save"|l10n(page_data.lang) }}</button>
</div>
</div>
</fieldset>
</form>
{% else %}
<span class="tag is-info">{{user.role_desc}}</span>
{% endmatch %}
{% else %}
<span class="tag is-info">{{user.role_desc}}</span>
{% endif %}
</div>
</div>
{% endfor %}
</div>
<nav class="pagination">
{% if anchor < n %}
<a class="pagination-previous" disabled>{{ "prev"|l10n(page_data.lang) }}</a>
{% else %}
{% match role %} {% when Some with (val) %}
{% match filter %} {% when Some with (filter) %}
<a class="pagination-previous" href="/user/list?anchor={{anchor- n}}&is_desc={{is_desc}}&filter={{filter}}&id={{info.0}}&role={{val}}">{{ "prev"|l10n(page_data.lang) }}</a>
{% else %}
<a class="pagination-previous" href="/user/list?anchor={{anchor- n}}&is_desc={{is_desc}}&role={{val}}">{{ "prev"|l10n(page_data.lang) }}</a>
{% endmatch %}
{% else %}
{% match filter %} {% when Some with (filter) %}
<a class="pagination-previous" href="/user/list?anchor={{anchor- n}}&is_desc={{is_desc}}&filter={{filter}}&id={{info.0}}">{{ "prev"|l10n(page_data.lang) }}</a>
{% else %}
<a class="pagination-previous" href="/user/list?anchor={{anchor- n}}&is_desc={{is_desc}}">{{ "prev"|l10n(page_data.lang) }}</a>
{% endmatch %}
{% endmatch %}
{% endif %}
{% if users.len() < n %}
<a class="pagination-next" disabled >{{ "next"|l10n(page_data.lang) }}</a>
{% else %}
{% match role %} {% when Some with (val) %}
{% match filter %} {% when Some with (filter) %}
<a class="pagination-next" href="/user/list?anchor={{anchor + n}}&is_desc={{is_desc}}&filter={{filter}}&id={{info.0}}&role={{val}}">{{ "next"|l10n(page_data.lang) }}</a>
{% else %}
<a class="pagination-next" href="/user/list?anchor={{anchor + n}}&is_desc={{is_desc}}&role={{val}}">{{ "next"|l10n(page_data.lang) }}</a>
{% endmatch %}
{% else %}
{% match filter %} {% when Some with (filter) %}
<a class="pagination-next" href="/user/list?anchor={{anchor + n}}&is_desc={{is_desc}}&filter={{filter}}&id={{info.0}}">{{ "next"|l10n(page_data.lang) }}</a>
{% else %}
<a class="pagination-next" href="/user/list?anchor={{anchor + n}}&is_desc={{is_desc}}">{{ "next"|l10n(page_data.lang) }}</a>
{% endmatch %}
{% endmatch %}
{% endif %}
</nav>
{% endblock %}