77 lines
2.6 KiB
Django/Jinja
77 lines
2.6 KiB
Django/Jinja
{% from "button.jinja" import button %}
|
|
<div class="navbar">
|
|
<div class="left">
|
|
<a href="/" class="left">
|
|
<img src="/images/lizard.png" class="logo-img">
|
|
<span class="logo-text">Komodo Hub</span>
|
|
</a>
|
|
</div>
|
|
|
|
<div class="links">
|
|
{% if user %}
|
|
{% if user["account_type"] == "admin" %}
|
|
<div class="dropdown">
|
|
<a class="dropbtn">Devtools ▾</a>
|
|
<div class="dropdown-content">
|
|
<a href="/about">About</a>
|
|
<a href="/species/portal">Add Species</a>
|
|
<a href="/species">View Species</a>
|
|
<a href="/species_search">Search Species</a>
|
|
<a href="/login">Login</a>
|
|
<a href="/register">Register new user</a>
|
|
<a href="/dashboard">Dashboard</a>
|
|
</div>
|
|
</div>
|
|
{# <a href="/admin">Admin</a> #}
|
|
{% endif %}
|
|
|
|
<a href="/game">Game</a>
|
|
<a href="/about">About</a>
|
|
|
|
<div class="dropdown">
|
|
<a class="dropbtn">{{user["username"]}} ▾</a>
|
|
<div class="dropdown-content">
|
|
<a href="/messages">Messages
|
|
<span id="unread-badge" style="
|
|
background: #e74c3c;
|
|
color: white;
|
|
border-radius: 10px;
|
|
padding: 2px 6px;
|
|
font-size: 0.7rem;
|
|
margin-left: 5px;
|
|
display: none;
|
|
">0</span></a>
|
|
<a href="/dashboard">Dashboard</a>
|
|
<a href="/settings">Settings</a>
|
|
<a href="/logout">Logout</a>
|
|
</div>
|
|
</div>
|
|
{% else %}
|
|
{{ button(url='/login', button_text='Login', extra_classes='') }}
|
|
{{ button(url='/register', button_text='Register', extra_classes='') }}
|
|
{% endif %}
|
|
</div>
|
|
</div>
|
|
|
|
<script>
|
|
function updateUnreadCount() {
|
|
fetch('/messages/unread-count')
|
|
.then(response => response.json())
|
|
.then(data => {
|
|
const badge = document.getElementById('unread-badge');
|
|
if (data.count > 0) {
|
|
badge.textContent = data.count;
|
|
badge.style.display = 'inline-block';
|
|
} else {
|
|
badge.style.display = 'none';
|
|
}
|
|
})
|
|
.catch(error => console.error('Error fetching unread count:', error));
|
|
}
|
|
|
|
// Update immediately on page load
|
|
updateUnreadCount();
|
|
|
|
// Then update every 30 seconds
|
|
setInterval(updateUnreadCount, 30000);
|
|
</script> |