Replace emoji UI icons with a shared SVG icon system.

Add an icons sprite and helpers so nav, actions, and protocol cards use consistent stroke icons.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
orohi
2026-07-26 04:58:06 +03:00
co-authored by Cursor
parent 30ae4d476c
commit 16d14a7256
12 changed files with 398 additions and 149 deletions
+7 -6
View File
@@ -1,10 +1,11 @@
{% extends "base.html" %}
{% from "macros/icons.html" import icon %}
{% block title_extra %} — {{ _('nav_settings') }}{% endblock %}
{% block content %}
<div class="section-title">
<span class="icon">⚙️</span>
<span class="icon">{{ icon('settings') }}</span>
{{ _('settings_title') }}
</div>
@@ -65,7 +66,7 @@
<input type="text" class="form-input" id="guest_link_display" readonly
value="{% if settings.guest.token %}{{ request.url.scheme }}://{{ request.url.netloc }}/guest/{{ settings.guest.token }}{% endif %}"
placeholder="{{ _('guest_link_placeholder') }}">
<button type="button" class="btn btn-secondary btn-sm" onclick="copyGuestLink()">📋</button>
<button type="button" class="btn btn-secondary btn-sm btn-icon" onclick="copyGuestLink()" title="{{ _('copy') }}">{{ icon('copy') }}</button>
<button type="button" class="btn btn-secondary btn-sm" onclick="regenGuestToken()" title="{{ _('guest_regen_token') }}">🔄</button>
</div>
<input type="hidden" id="guest_token" value="{{ settings.guest.token or '' }}">
@@ -376,7 +377,7 @@
</button>
<button type="button" class="btn btn-danger btn-sm" onclick="deleteSyncRemnawave()"
id="syncDelBtn">
<span id="syncDelBtnText">🗑 {{ _('delete_sync_btn') }}</span>
<span id="syncDelBtnText">{{ icon('trash') }} {{ _('delete_sync_btn') }}</span>
<div class="spinner hidden" id="syncDelSpinner" style="width:14px; height:14px;"></div>
</button>
</div>
@@ -452,7 +453,7 @@
<div style="display:flex; align-items:center; justify-content:space-between; margin-bottom: var(--space-md);">
<h3 class="card-title" style="margin:0;">🔑 {{ _('api_tokens_title') }}</h3>
<button type="button" class="btn btn-primary btn-sm" onclick="openCreateTokenModal()">
<span></span> {{ _('api_tokens_create') }}
{{ icon('plus') }} {{ _('api_tokens_create') }}
</button>
</div>
<p class="form-hint" style="margin-bottom: var(--space-md);">
@@ -546,7 +547,7 @@
curl -H "Authorization: Bearer &lt;your_token&gt;" {{ request.url.scheme }}://{{ request.url.netloc }}/api/users
</div>
<div class="modal-footer">
<button class="btn btn-secondary" onclick="copyNewToken()">📋 {{ _('copy') }}</button>
<button class="btn btn-secondary" onclick="copyNewToken()">{{ icon('copy') }} {{ _('copy') }}</button>
<button class="btn btn-primary" onclick="closeModal('newTokenModal')">{{ _('done') }}</button>
</div>
</div>
@@ -838,7 +839,7 @@
showToast(`${_('error')}: ` + err.message, 'error');
} finally {
btn.disabled = false;
text.textContent = `🗑 ${_('delete_sync_btn')}`;
text.innerHTML = `${uiIcon('trash')} ${_('delete_sync_btn')}`;
spinner.classList.add('hidden');
}
}