ui: optimize user_priv page layout

This commit is contained in:
undefined committed 2024-07-25 00:17:33 +08:00
1 parent 510d119069
commit 41a949348b
2 files changed
+54 -31

No files matched your search

@@ -18,7 +18,7 @@
{% endif %}
{% if levelbadge and udoc.level %}
{% set level = udoc.level %}
<a class="user-profile-badge v-center badge--lv{{ level }}" href="{{ url('user_detail', uid=udoc._id) }}" data-tooltip="LV {{ level }}: Top {{ model.builtin.LEVELS[level]|default('N/A') }}%">LV {{ level }}</a>
<a class="user-profile-badge v-center badge--lv{{ level }}" href="{{ url('user_detail', uid=udoc._id) }}" data-tooltip="{{ _('LV '+ level) }}: Top {{ model.builtin.LEVELS[level]|default('N/A') }}%">{{ _('LV '+ level) }}</a>
{% endif %}
{% if modbadge %}
{% if udoc.hasPriv(PRIV.PRIV_MOD_BADGE) %}
@@ -1,4 +1,21 @@
{% import "components/user.html" as user with context %}
{% macro show_priv(upriv) %}
{%- if upriv == 0 -%}
PRIV_NONE
{%- elif upriv == -1 -%}
PRIV_ALL
{%- else -%}
{%- for name, priv in Priv -%}
{%- if priv|bitand(upriv) and not priv|bitand(defaultPriv) -%}
<p class="priv_plus">+{{ name }}</p>
{%- elif priv|bitand(defaultPriv) and not priv|bitand(upriv) -%}
<p class="priv_minus">-{{ name }}</p>
{%- endif -%}
{%- endfor -%}
{%- endif -%}
{% endmacro %}
<tbody data-fragment-id="user_priv-tbody">
<tr data-uid="{{ udoc._id }}">
<td class="col--uid">
@@ -21,35 +38,41 @@
<a name="set_priv" data-uid="default" data-priv="{{ defaultPriv }}">{{ _('Edit') }}</a>
</td>
</tr>
{%- for udoc in udocs -%}
<tr data-uid="{{ udoc._id }}">
<td class="col--uid">
{{ udoc._id }}
</td>
<td class="col--user">
{{ user.render_inline(udoc, badge=false) }}
</td>
<td class="col--priv_info">
{%- if udoc.priv == 0 -%}
PRIV_NONE
{%- elif udoc.priv == -1 -%}
PRIV_ALL
{%- else -%}
{%- for name, priv in Priv -%}
{%- if priv|bitand(udoc.priv) and not priv|bitand(defaultPriv) -%}
<p class="priv_plus">+{{ name }}</p>
{%- elif priv|bitand(defaultPriv) and not priv|bitand(udoc.priv) -%}
<p class="priv_minus">-{{ name }}</p>
{%- endif -%}
{%- endfor -%}
{%- endif -%}
</td>
<td class="col--priv" title="{{ udoc.priv }}">
{{ udoc.priv }}
</td>
<td class="col--actions">
<a name="set_priv" data-uid="{{ udoc._id }}" data-priv="{{ udoc.priv }}">{{ _('Edit') }}</a>
</td>
</tr>
{%- for priv, gudocs in udocs|groupby('priv') -%}
{%- if gudocs|length > 50 -%}
<tr>
<td colspan="3" style="text-wrap: wrap;">
<div style="max-height: 300px; overflow-y: auto">
{%- for udoc in gudocs -%}
[{{udoc._id}}]{{ user.render_inline(udoc, avatar=false, badge=false) }}
<a name="set_priv" data-uid="{{ udoc._id }}" data-priv="{{ udoc.priv }}">{{ _('Edit') }}</a>&nbsp;&nbsp;&nbsp;
{%- endfor -%}
</td>
<td colspan="2">
{{ priv }}<br/>
{{ show_priv(priv) }}
</td>
</tr>
{%- else -%}
{%- for udoc in gudocs -%}
<tr data-uid="{{ udoc._id }}">
<td class="col--uid">
{{ udoc._id }}
</td>
<td class="col--user">
{{ user.render_inline(udoc, badge=false) }}
</td>
<td class="col--priv_info">
{{ show_priv(udoc.priv) }}
</td>
<td class="col--priv" title="{{ udoc.priv }}">
{{ udoc.priv }}
</td>
<td class="col--actions">
<a name="set_priv" data-uid="{{ udoc._id }}" data-priv="{{ udoc.priv }}">{{ _('Edit') }}</a>
</td>
</tr>
{%- endfor -%}
{%- endif -%}
{%- endfor -%}
</tbody>