mirror of
https://gitcode.com/gh_mirrors/hy/Hydro.git
synced 2026-10-20 01:38:19 +08:00
ui: custom badge
This commit is contained in:
1 parent
255fba8339
commit
4bc8ba9af3
5 files changed
+86
-80
No files matched your search
@@ -133,6 +133,7 @@ AccountSetting(
|
|||||||
Setting('setting_storage', 'unreadMsg', 0, 'number', 'Unread Message Count', null, FLAG_DISABLED | FLAG_HIDDEN),
|
Setting('setting_storage', 'unreadMsg', 0, 'number', 'Unread Message Count', null, FLAG_DISABLED | FLAG_HIDDEN),
|
||||||
Setting('setting_storage', 'checkincnt', 0, 'number', 'Check In Counter', null, FLAG_DISABLED | FLAG_HIDDEN),
|
Setting('setting_storage', 'checkincnt', 0, 'number', 'Check In Counter', null, FLAG_DISABLED | FLAG_HIDDEN),
|
||||||
Setting('setting_storage', 'lastcheckin', 0, 'number', 'Last checkin time', null, FLAG_DISABLED | FLAG_HIDDEN),
|
Setting('setting_storage', 'lastcheckin', 0, 'number', 'Last checkin time', null, FLAG_DISABLED | FLAG_HIDDEN),
|
||||||
|
Setting('setting_storage', 'badge', '', 'text', 'badge info', null, FLAG_DISABLED | FLAG_HIDDEN),
|
||||||
);
|
);
|
||||||
|
|
||||||
DomainSetting(
|
DomainSetting(
|
||||||
@@ -172,7 +173,6 @@ SystemSetting(
|
|||||||
Setting('setting_smtp', 'smtp.secure', false, 'boolean', 'smtp.secure', 'SSL'),
|
Setting('setting_smtp', 'smtp.secure', false, 'boolean', 'smtp.secure', 'SSL'),
|
||||||
Setting('setting_smtp', 'smtp.verify', true, 'boolean', 'smtp.verify', 'Verify register email'),
|
Setting('setting_smtp', 'smtp.verify', true, 'boolean', 'smtp.verify', 'Verify register email'),
|
||||||
Setting('setting_server', 'server.center', 'https://hydro.undefined.moe:8443/center', 'text', 'server.center', '', FLAG_HIDDEN),
|
Setting('setting_server', 'server.center', 'https://hydro.undefined.moe:8443/center', 'text', 'server.center', '', FLAG_HIDDEN),
|
||||||
Setting('setting_server', 'server.proxy', false, 'boolean', 'server.proxy', 'Use hydro center proxy to send problems'),
|
|
||||||
Setting('setting_server', 'server.name', 'Hydro', 'text', 'server.name', 'Server Name'),
|
Setting('setting_server', 'server.name', 'Hydro', 'text', 'server.name', 'Server Name'),
|
||||||
Setting('setting_server', 'server.displayName', 'Hydro', 'text', 'server.name', 'Server Name (Global Display)', FLAG_PRO),
|
Setting('setting_server', 'server.displayName', 'Hydro', 'text', 'server.name', 'Server Name (Global Display)', FLAG_PRO),
|
||||||
Setting('setting_server', 'server.worker', 1, 'number', 'server.worker', 'Server Workers Number', FLAG_PRO),
|
Setting('setting_server', 'server.worker', 1, 'number', 'server.worker', 'Server Workers Number', FLAG_PRO),
|
||||||
@@ -200,7 +200,7 @@ SystemSetting(
|
|||||||
Setting('setting_basic', 'pagination.training', 10, 'number', 'pagination.training', 'Trainings per page'),
|
Setting('setting_basic', 'pagination.training', 10, 'number', 'pagination.training', 'Trainings per page'),
|
||||||
Setting('setting_basic', 'pagination.reply', 50, 'number', 'pagination.reply', 'Replies per page'),
|
Setting('setting_basic', 'pagination.reply', 50, 'number', 'pagination.reply', 'Replies per page'),
|
||||||
Setting('setting_session', 'session.keys', [String.random(32)], 'text', 'session.keys', 'session.keys', FLAG_HIDDEN),
|
Setting('setting_session', 'session.keys', [String.random(32)], 'text', 'session.keys', 'session.keys', FLAG_HIDDEN),
|
||||||
Setting('setting_session', 'session.secure', false, 'boolean', 'session.secure', 'session.secure'),
|
Setting('setting_session', 'session.secure', false, 'boolean', 'session.secure', 'session.secure', FLAG_HIDDEN),
|
||||||
Setting('setting_session', 'session.saved_expire_seconds', 3600 * 24 * 30,
|
Setting('setting_session', 'session.saved_expire_seconds', 3600 * 24 * 30,
|
||||||
'number', 'session.saved_expire_seconds', 'Saved session expire seconds'),
|
'number', 'session.saved_expire_seconds', 'Saved session expire seconds'),
|
||||||
Setting('setting_session', 'session.unsaved_expire_seconds', 3600 * 3,
|
Setting('setting_session', 'session.unsaved_expire_seconds', 3600 * 3,
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@hydrooj/ui-default",
|
"name": "@hydrooj/ui-default",
|
||||||
"version": "4.18.13",
|
"version": "4.18.14",
|
||||||
"author": "undefined <i@undefined.moe>",
|
"author": "undefined <i@undefined.moe>",
|
||||||
"license": "AGPL-3.0",
|
"license": "AGPL-3.0",
|
||||||
"main": "hydro.js",
|
"main": "hydro.js",
|
||||||
|
|||||||
@@ -12,8 +12,14 @@
|
|||||||
{% endif %}
|
{% endif %}
|
||||||
</a>
|
</a>
|
||||||
{% if badge %}
|
{% if badge %}
|
||||||
{% set level = udoc.level|default(0) %}
|
{% if udoc.badge %}
|
||||||
<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>
|
{% set _badge = udoc.badge.split('#') %}
|
||||||
|
<span class="user-profile-badge v-center" style="background-color:#{{ _badge[1] }}{% if _badge[2] %};color:#{{ _badge[2] }}{% endif %}">{{ _badge[0] }}</span>
|
||||||
|
{% endif %}
|
||||||
|
{% if 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>
|
||||||
|
{% endif %}
|
||||||
{% if modbadge %}
|
{% if modbadge %}
|
||||||
{% if udoc.hasPriv(PRIV.PRIV_MOD_BADGE) %}
|
{% if udoc.hasPriv(PRIV.PRIV_MOD_BADGE) %}
|
||||||
<span class="user-profile-badge v-center badge--su" data-tooltip="{{ _('SuperUser') }}">SU</span>
|
<span class="user-profile-badge v-center badge--su" data-tooltip="{{ _('SuperUser') }}">SU</span>
|
||||||
|
|||||||
@@ -7,96 +7,96 @@
|
|||||||
<form method="post">
|
<form method="post">
|
||||||
<div class="row">
|
<div class="row">
|
||||||
{{ form.form_select({
|
{{ form.form_select({
|
||||||
columns:3,
|
columns:3,
|
||||||
label:'Rule',
|
label:'Rule',
|
||||||
name:'rule',
|
name:'rule',
|
||||||
options:rules,
|
options:rules,
|
||||||
value:tdoc['rule']|default(''),
|
value:tdoc['rule']|default(''),
|
||||||
row:false
|
row:false
|
||||||
}) }}
|
}) }}
|
||||||
{{ form.form_text({
|
{{ form.form_text({
|
||||||
columns:4,
|
columns:4,
|
||||||
label:'Title',
|
label:'Title',
|
||||||
name:'title',
|
name:'title',
|
||||||
placeholder:_('title'),
|
placeholder:_('title'),
|
||||||
value:tdoc.title|default(''),
|
value:tdoc.title|default(''),
|
||||||
autofocus:true,
|
autofocus:true,
|
||||||
row:false
|
row:false
|
||||||
}) }}
|
}) }}
|
||||||
{{ form.form_text({
|
{{ form.form_text({
|
||||||
columns:3,
|
columns:3,
|
||||||
label:'Invitation Code',
|
label:'Invitation Code',
|
||||||
name:'code',
|
name:'code',
|
||||||
placeholder:_('(leave blank if none)'),
|
placeholder:_('(leave blank if none)'),
|
||||||
value:tdoc._code|default(''),
|
value:tdoc._code|default(''),
|
||||||
row:false
|
row:false
|
||||||
}) }}
|
}) }}
|
||||||
{{ form.form_checkbox({
|
{{ form.form_checkbox({
|
||||||
columns:2,
|
columns:2,
|
||||||
label:'Rated',
|
label:'Rated',
|
||||||
name:'rated',
|
name:'rated',
|
||||||
placeholder:_('Is rated'),
|
placeholder:_('Is rated'),
|
||||||
value:tdoc.rated|default(true),
|
value:tdoc.rated|default(true),
|
||||||
row:false
|
row:false
|
||||||
}) }}
|
}) }}
|
||||||
</div>
|
</div>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
{{ form.form_text({
|
{{ form.form_text({
|
||||||
columns:4,
|
columns:4,
|
||||||
label:'Begin Date',
|
label:'Begin Date',
|
||||||
name:'beginAtDate',
|
name:'beginAtDate',
|
||||||
placeholder:'YYYY-mm-dd',
|
placeholder:'YYYY-mm-dd',
|
||||||
value:date_text,
|
value:date_text,
|
||||||
date:true,
|
date:true,
|
||||||
row:false
|
row:false
|
||||||
}) }}
|
}) }}
|
||||||
{{ form.form_text({
|
{{ form.form_text({
|
||||||
columns:4,
|
columns:4,
|
||||||
label:'Begin Time',
|
label:'Begin Time',
|
||||||
name:'beginAtTime',
|
name:'beginAtTime',
|
||||||
placeholder:'HH:MM',
|
placeholder:'HH:MM',
|
||||||
value:time_text,
|
value:time_text,
|
||||||
time:true,
|
time:true,
|
||||||
row:false
|
row:false
|
||||||
}) }}
|
}) }}
|
||||||
{{ form.form_text({
|
{{ form.form_text({
|
||||||
columns:4,
|
columns:4,
|
||||||
label:'Duration (hours)',
|
label:'Duration (hours)',
|
||||||
name:'duration',
|
name:'duration',
|
||||||
value:duration|default('3'),
|
value:duration|default('3'),
|
||||||
row:false
|
row:false
|
||||||
}) }}
|
}) }}
|
||||||
</div>
|
</div>
|
||||||
{{ form.form_text({
|
{{ form.form_text({
|
||||||
columns:null,
|
columns:null,
|
||||||
label:'Problems',
|
label:'Problems',
|
||||||
name:'pids',
|
name:'pids',
|
||||||
value:pids,
|
value:pids,
|
||||||
placeholder:_("Seperated with ','")
|
placeholder:_("Seperated with ','")
|
||||||
}) }}
|
}) }}
|
||||||
{{ form.form_textarea({
|
{{ form.form_textarea({
|
||||||
columns:null,
|
columns:null,
|
||||||
label:'Content',
|
label:'Content',
|
||||||
name:'content',
|
name:'content',
|
||||||
value:tdoc['content']|default(''),
|
value:tdoc['content']|default(''),
|
||||||
markdown:true
|
markdown:true
|
||||||
}) }}
|
}) }}
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="columns">
|
<div class="columns">
|
||||||
<input type="hidden" name="csrfToken" value="{{ handler.csrfToken }}">
|
<input type="hidden" name="csrfToken" value="{{ handler.csrfToken }}">
|
||||||
{% if page_name == 'contest_edit' %}
|
{% if page_name == 'contest_edit' %}
|
||||||
<button type="submit" class="rounded primary button">
|
<button type="submit" class="rounded primary button">
|
||||||
{{ _('Update') }}
|
{{ _('Update') }}
|
||||||
</button>
|
</button>
|
||||||
{% if handler.user.own(tdoc) or handler.user.hasPerm(perm.PERM_EDIT_CONTEST) %}
|
{% if handler.user.own(tdoc) or handler.user.hasPerm(perm.PERM_EDIT_CONTEST) %}
|
||||||
<button name="operation" value="delete" type="submit" class="rounded button">
|
<button name="operation" value="delete" type="submit" class="rounded button">
|
||||||
{{ _('Delete') }}
|
{{ _('Delete') }}
|
||||||
</button>
|
</button>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% else %}
|
{% else %}
|
||||||
<button type="submit" class="rounded primary button">
|
<button type="submit" class="rounded primary button">
|
||||||
{{ _('Create') }}
|
{{ _('Create') }}
|
||||||
</button>
|
</button>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
<button type="button" class="rounded button" onclick="window.history.go(-1)">
|
<button type="button" class="rounded button" onclick="window.history.go(-1)">
|
||||||
{{ _('Cancel') }}
|
{{ _('Cancel') }}
|
||||||
|
|||||||
@@ -6,16 +6,16 @@
|
|||||||
<div class="section__body">
|
<div class="section__body">
|
||||||
<form method="post">
|
<form method="post">
|
||||||
{% include "partials/discussion_edit_form.html" %}
|
{% include "partials/discussion_edit_form.html" %}
|
||||||
<div class="row"><div class="columns">
|
<div class="row"><div class="columns">
|
||||||
<input type="hidden" name="csrfToken" value="{{ handler.csrfToken }}">
|
<input type="hidden" name="csrfToken" value="{{ handler.csrfToken }}">
|
||||||
<button name="operation" value="update" type="submit" class="rounded primary button">
|
<button name="operation" value="update" type="submit" class="rounded primary button">
|
||||||
{{ _('Update') }} (Ctrl+Enter)
|
{{ _('Update') }} (Ctrl+Enter)
|
||||||
</button>
|
</button>
|
||||||
{% if handler.user.own(ddoc) or handler.user.hasPerm(perm.PERM_DELETE_DISCUSSION) %}
|
{% if handler.user.own(ddoc) or handler.user.hasPerm(perm.PERM_DELETE_DISCUSSION) %}
|
||||||
<button name="operation" value="delete" type="submit" class="rounded button">
|
<button name="operation" value="delete" type="submit" class="rounded button">
|
||||||
{{ _('Delete') }}
|
{{ _('Delete') }}
|
||||||
</button>
|
</button>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
<button type="button" class="rounded button" onclick="window.history.go(-1)">
|
<button type="button" class="rounded button" onclick="window.history.go(-1)">
|
||||||
{{ _('Cancel') }}
|
{{ _('Cancel') }}
|
||||||
</button>
|
</button>
|
||||||
|
|||||||
Reference in new issue
Block a user