Add rank badge to profile modal and user detail modal (readonly)

This commit is contained in:
Kato
2026-09-04 19:58:46 +00:00
parent 72c1e89f6d
commit 8be1483e1d
2 changed files with 16 additions and 5 deletions
+8 -4
View File
@@ -134,13 +134,14 @@
<h3 class="hide-en">Your Profile</h3> <h3 class="hide-en">Your Profile</h3>
<div class="profile-form"> <div class="profile-form">
<div class="form-group"> <div class="form-group">
<div style="display: flex; align-items: center; gap: 8px; flex-wrap: wrap;"> <div id="profile-rank-row" style="display: flex; align-items: center; gap: 8px; flex-wrap: wrap;">
<span id="profile-username-display" class="username-display" style="margin: 0;"></span> <span id="profile-username-display" class="username-display" style="margin: 0;"></span>
<input type="checkbox" id="profile-publish" /> <span id="profile-rank-badge" class="rank-badge" style="position: relative; top: auto; right: auto; box-shadow: none;"></span>
</div>
<input type="checkbox" id="profile-publish" style="margin-top: 8px;" />
<label for="profile-publish" class="hide-de" style="display: inline; font-size: .85rem; font-weight: 600;">Veröffentlichen</label> <label for="profile-publish" class="hide-de" style="display: inline; font-size: .85rem; font-weight: 600;">Veröffentlichen</label>
<label for="profile-publish" class="hide-en" style="display: inline; font-size: .85rem; font-weight: 600;">Publish</label> <label for="profile-publish" class="hide-en" style="display: inline; font-size: .85rem; font-weight: 600;">Publish</label>
</div> </div>
</div>
<div id="profile-edit-fields" class="hidden"> <div id="profile-edit-fields" class="hidden">
<div class="form-group"> <div class="form-group">
<label for="profile-company" class="hide-de">Name der LLC / SRL</label> <label for="profile-company" class="hide-de">Name der LLC / SRL</label>
@@ -188,7 +189,10 @@
<span class="user-avatar-text" id="user-detail-initial">?</span> <span class="user-avatar-text" id="user-detail-initial">?</span>
</div> </div>
<div> <div>
<h2 id="user-detail-username">@username</h2> <div style="display:flex;align-items:center;gap:8px;flex-wrap:wrap;">
<h2 id="user-detail-username" style="margin:0;">@username</h2>
<span id="user-detail-rank-badge" class="rank-badge" style="position:relative;top:auto;right:auto;box-shadow:none;font-size:.6rem;"></span>
</div>
<p id="user-detail-company">Company</p> <p id="user-detail-company">Company</p>
</div> </div>
</div> </div>
+7
View File
@@ -304,6 +304,9 @@ async function openProfileModal() {
if (response.ok) { if (response.ok) {
const user = await response.json(); const user = await response.json();
document.getElementById('profile-username-display').textContent = user.username || ''; document.getElementById('profile-username-display').textContent = user.username || '';
const rank = getRank(user.posts || 0);
document.getElementById('profile-rank-badge').className = 'rank-badge rank-' + rank.level;
document.getElementById('profile-rank-badge').innerHTML = rank.emoji + ' ' + rank.title;
document.getElementById('profile-company').value = user.company || ''; document.getElementById('profile-company').value = user.company || '';
document.getElementById('profile-email').value = user.email || ''; document.getElementById('profile-email').value = user.email || '';
document.getElementById('profile-homepage').value = user.homepage || ''; document.getElementById('profile-homepage').value = user.homepage || '';
@@ -337,6 +340,10 @@ function openUserDetailModal(user) {
} }
document.getElementById('user-detail-username').textContent = '@' + (user.username || 'Unknown'); document.getElementById('user-detail-username').textContent = '@' + (user.username || 'Unknown');
const userRank = getRank(user.posts || 0);
const rankBadge = document.getElementById('user-detail-rank-badge');
rankBadge.className = 'rank-badge rank-' + userRank.level;
rankBadge.innerHTML = userRank.emoji + ' ' + userRank.title;
document.getElementById('user-detail-company').textContent = user.company || ''; document.getElementById('user-detail-company').textContent = user.company || '';
const emailEl = document.getElementById('user-detail-email'); const emailEl = document.getElementById('user-detail-email');
emailEl.innerHTML = user.email ? `<a href="mailto:${user.email}">${user.email}</a>` : '-'; emailEl.innerHTML = user.email ? `<a href="mailto:${user.email}">${user.email}</a>` : '-';