ui: custom badge

This commit is contained in:
undefined committed 2021-08-31 20:18:29 +08:00
1 parent 255fba8339
commit 4bc8ba9af3
5 files changed
+86 -80

No files matched your search

+2 -2
View File
@@ -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 -1
View File
@@ -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>
+65 -65
View File
@@ -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>