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