forked from MarseyWorld/MarseyWorld
216 lines
12 KiB
HTML
216 lines
12 KiB
HTML
{% set random = range(1, 13)|random() %}
|
|
|
|
<!-- This example requires Tailwind CSS v2.0+ -->
|
|
<nav class="fixed top-0 w-full bg-gray-700" style="z-index: 1030;">
|
|
<div class="w-full max-w-screen-2xl mx-auto grid grid-cols-12 px-4">
|
|
<div class="relative col-span-full flex items-center justify-between h-16 px-4 snowcaps">
|
|
<div class="absolute inset-y-0 left-0 flex items-center sm:hidden">
|
|
<!-- Mobile menu button-->
|
|
<button type="button" class="inline-flex items-center justify-center p-2 rounded-md text-gray-400 hover:text-white hover:bg-gray-700 focus:outline-none focus:ring-2 focus:ring-inset focus:ring-white" data-bs-toggle="offcanvas" data-bs-target="#offcanvasNavbar" aria-controls="offcanvasNavbar">
|
|
<span class="sr-only">Open main menu</span>
|
|
<!--
|
|
Icon when menu is closed.
|
|
|
|
Heroicon name: outline/menu
|
|
|
|
Menu open: "hidden", Menu closed: "block"
|
|
-->
|
|
<svg class="block h-6 w-6" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor" aria-hidden="true">
|
|
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 6h16M4 12h16M4 18h16" />
|
|
</svg>
|
|
<!--
|
|
Icon when menu is open.
|
|
|
|
Heroicon name: outline/x
|
|
|
|
Menu open: "block", Menu closed: "hidden"
|
|
-->
|
|
<svg class="hidden h-6 w-6" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor" aria-hidden="true">
|
|
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 18L18 6M6 6l12 12" />
|
|
</svg>
|
|
</button>
|
|
</div>
|
|
<div class="flex-1 flex items-center justify-center sm:items-stretch sm:justify-start">
|
|
<div class="flex-shrink-0 flex items-center">
|
|
<a href="{{ '/' if v else '/logged_out'}}">
|
|
<img class="block lg:hidden w-32 object-contain" src="/assets/images/logos/winter/logo-{{ random }}.png" alt="logo">
|
|
<img class="hidden lg:block w-32 object-contain" src="/assets/images/logos/winter/logo-{{ random }}.png" alt="logo">
|
|
</a>
|
|
</div>
|
|
<div class="relative hidden sm:flex flex-shrink-0 items-center sm:ml-6">
|
|
<form action="/search/posts/" method="get" class="relative mb-0">
|
|
<input placeholder="Search" class="w-full text-gray-500 focus:text-black rounded border border-gray-800 bg-black/20 focus:bg-white hover:bg-black/30 shadow-inner w-full px-2 py-1.5 pr-7" aria-label="Search" name="q" value="{{request.args.get('q', '')}}">
|
|
<i class="fas fa-search text-gray-600 absolute top-3 right-2"></i>
|
|
</form>
|
|
</div>
|
|
<div class="hidden lg:flex items-center sm:ml-4">
|
|
<!-- Current: "bg-gray-900 text-white", Default: "text-gray-300 hover:bg-gray-700 hover:text-white" -->
|
|
<a href="/" class="relative px-3 py-2.5 rounded text-sm leading-normal {{ 'text-gray-200 font-bold text-shadow' if request.path == '/' else 'text-gray-500 hover:text-gray-400' }}" aria-current="page">
|
|
<i class="fas fa-home-lg-alt fa-fw mr-2"></i>
|
|
Home
|
|
</a>
|
|
|
|
<a href="/comments" class="relative px-3 py-2.5 rounded text-sm leading-normal {{ 'text-gray-200 font-bold text-shadow' if request.path == '/comments' else 'text-gray-500 hover:text-gray-400' }}" aria-current="page">
|
|
<i class="fas fa-comments-alt fa-fw mr-2"></i>
|
|
Comments
|
|
</a>
|
|
|
|
<a href="/leaderboard" class="relative px-3 py-2.5 rounded text-sm leading-normal {{ 'text-gray-200 font-bold text-shadow' if request.path == '/leaderboard' else 'text-gray-500 hover:text-gray-400' }}" aria-current="page">
|
|
<i class="fas fa-trophy fa-fw mr-2"></i>
|
|
Leaderboard
|
|
</a>
|
|
|
|
{% include "/dropdowns/NavbarExtraLinks.html" %}
|
|
|
|
<a href="/shop" class="hidden xl:flex items-center relative px-3 py-2.5 rounded text-sm text-yellow-500 leading-normal {{ 'font-bold text-shadow' if request.path == '/shop' else 'font-medium' }}">
|
|
<img src="https://i.ibb.co/xFgG6yf/Coinfixed.gif" width="15px" height="12px" class="object-contain mr-2.5"/>
|
|
Holigay Emporium
|
|
</a>
|
|
|
|
</div>
|
|
</div>
|
|
<div class="absolute inset-y-0 right-0 flex items-center space-x-3 sm:static sm:inset-auto sm:ml-6 sm:pr-0">
|
|
<!-- Logged in -->
|
|
{% if v %}
|
|
<!-- Profile dropdown -->
|
|
<div class="ml-3 relative hidden sm:block">
|
|
{% include "/dropdowns/NavbarProfile.html" %}
|
|
</div>
|
|
{% if v.admin_level > 1 %}
|
|
<!-- Admin link -->
|
|
<a href="{{ '/admin' if v else '/signup?redirect={{request.path | urlencode}}' }}" class="bg-transparent p-1 rounded-full text-gray-500 hover:text-white focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-offset-gray-800 focus:ring-white">
|
|
<span class="sr-only">Admin tools</span>
|
|
<i class="fas fa-crown fa-fw"></i>
|
|
</a>
|
|
{% endif %}
|
|
<!-- Profile link -->
|
|
<a href="{{ '/me' if v else '/signup?redirect={{request.path | urlencode}}' }}" class="bg-transparent p-1 rounded-full text-gray-500 hover:text-white focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-offset-gray-800 focus:ring-white">
|
|
<span class="sr-only">My profile</span>
|
|
<i class="fas fa-user fa-fw"></i>
|
|
</a>
|
|
<!-- Notifications -->
|
|
<a href="/notifications{% if v.notifications_count and v.notifications_count == v.post_notifications_count %}?posts=true{% endif %}" class="block bg-transparent p-1 rounded-full text-gray-500 hover:text-white focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-offset-gray-800 focus:ring-white">
|
|
<span class="sr-only">View notifications</span>
|
|
<div class="relative">
|
|
<i class="fas fa-envelope fa-fw"></i>
|
|
<!-- Counter -->
|
|
{% if v.notifications_count %}
|
|
<div class="absolute -top-1.5 -right-3 {{ 'w-10' if v.notifications_count > 99 else 'w-6' }} h-6 rounded-full border-2 border-gray-700 flex items-center justify-center bg-red-600">
|
|
<span class="text-xs text-gray-100 font-bold leading-none">{{ v.notifications_count }}</span>
|
|
</div>
|
|
{% endif %}
|
|
</div>
|
|
</a>
|
|
<!-- Post Creation -->
|
|
<a href="{{ '/submit' if v else '/signup?redirect={{request.path | urlencode}}' }}" class="bg-transparent p-1 rounded-full text-gray-500 hover:text-white focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-offset-gray-800 focus:ring-white">
|
|
<span class="sr-only">Submit post</span>
|
|
<i class="fas fa-plus fa-fw"></i>
|
|
</a>
|
|
<!-- Not logged in -->
|
|
{% else %}
|
|
<!-- Login button -->
|
|
<a class="btn btn-gray" href="/login?redirect={{request.path | urlencode}}">
|
|
Login
|
|
</a>
|
|
<!-- Register button -->
|
|
<a class="hidden sm:block px-4 py-2 active:shadow-inner border rounded-md text-shadow-t shadow-inset-t-white-10 text-sm font-bold focus:outline-none disabled:opacity- hover:bg-gradient-to-t hover:from-gray-100 hover:to-gray-200 border-gray-300 text-gray-200 hover:text-gray-700 focus:text-gray-900" href="/signup?redirect={{request.path | urlencode}}">
|
|
Sign up
|
|
</a>
|
|
{% endif %}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Mobile menu, show/hide based on menu state. -->
|
|
<div class="offcanvas offcanvas-end bg-gray-200" tabindex="-1" id="offcanvasNavbar" aria-labelledby="offcanvasNavbarLabel">
|
|
<div class="relative flex w-full bg-gray-700 h-16 px-4 items-center snowcaps">
|
|
<a class="block" href="{{ '/' if v else '/logged_out'}}">
|
|
<img class="block lg:hidden w-32 object-contain" src="/assets/images/logos/winter/logo-{{ random }}.png" alt="logo">
|
|
<img class="hidden lg:block w-32 object-contain" src="/assets/images/logos/winter/logo-{{ random }}.png" alt="logo">
|
|
</a>
|
|
<button type="button" class="ml-auto close" data-bs-dismiss="offcanvas" aria-label="Close">
|
|
<span aria-hidden="true"><i class="far fa-times"></i></span>
|
|
</button>
|
|
</div>
|
|
<div class="offcanvas-body">
|
|
<!-- Search box -->
|
|
<form action="/search/posts/" method="get" class="relative mb-4">
|
|
<input placeholder="Search" class="block w-full rounded shadow-inner py-2 pl-2 pr-7 bg-white border border-gray-300 hover:border-gray-400 focus:border-blue-300 focus:ring focus:ring-blue-200 focus:ring-opacity-50" aria-label="Search" name="q" value="{{request.args.get('q', '')}}">
|
|
<i class="fas fa-search text-gray-400 absolute top-3 right-3"></i>
|
|
</form>
|
|
{% if v %}
|
|
<!-- Submit post link -->
|
|
<a href="/submit" class="w-full btn btn-red mb-4">
|
|
<i class="fas fa-pen fa-sm fa-fw mr-2"></i>
|
|
Create post
|
|
</a>
|
|
<!-- Meta links -->
|
|
<ul class="flex flex-col space-y-3 font-bold text-base text-gray-600">
|
|
<li>
|
|
<a class="inline-flex items-center" aria-current="page" href="/me">
|
|
<img src="{{ v.profile_url }}" class="w-14 h-14 p-[3px] bg-white border border-gray-300 object-cover"/>
|
|
<div class="pl-3">
|
|
<div class="text-base text-black leading-5">
|
|
{{ v.username }}
|
|
</div>
|
|
<div class="flex space-x-3 mt-1">
|
|
<small class="flex items-center block mt-1 text-gray-500">
|
|
<img data-bs-toggle="tooltip" data-bs-placement="bottom" src="/assets/images/emojis/marseycoin.webp" data-bs-original-title="{{'COINS_NAME' | app_config}}" aria-label="{{'COINS_NAME' | app_config}}" class="w-6 h-6 object-contain" alt="coin icon"/>
|
|
<span class="pl-1">{{v.coins}} {{'COINS_NAME' | app_config}}</span>
|
|
</small>
|
|
{% if v.procoins %}
|
|
<small class="flex items-center block mt-1 text-gray-500">
|
|
<img data-bs-toggle="tooltip" data-bs-placement="bottom" src="/assets/images/emojis/marseybux.webp" data-bs-original-title="{{'COINS_NAME' | app_config}}" aria-label="{{'COINS_NAME' | app_config}}" class="w-6 h-6 object-contain" alt="coin icon"/>
|
|
<span class="pl-1">{{v.procoins}} MarseyBux</span>
|
|
</small>
|
|
{% endif %}
|
|
</div>
|
|
</div>
|
|
</a>
|
|
</li>
|
|
<li>
|
|
<a class="text-gray-700 hover:text-gray-900" href="/@me">
|
|
<i class="fas fa-user fa-fw mr-2"></i>
|
|
My Profile
|
|
</a>
|
|
</li>
|
|
<li>
|
|
<a class="text-gray-700 hover:text-gray-900" href="/notifications{% if v.notifications_count and v.notifications_count == v.post_notifications_count %}?posts=true{% endif %}">
|
|
<i class="fas fa-envelope fa-fw mr-2"></i>
|
|
Inbox
|
|
{% if v.notifications_count %}
|
|
<span class="text-red-600">{{ v.notifications_count }}</span>
|
|
{% endif %}
|
|
</a>
|
|
</li>
|
|
<li>
|
|
<a class="text-gray-700 hover:text-gray-900" href="/settings">
|
|
<i class="fas fa-cog fa-fw mr-2"></i>
|
|
Settings
|
|
</a>
|
|
</li>
|
|
<li>
|
|
<button class="text-gray-700 hover:text-gray-900 font-bold" onclick="post_toast('/logout', '1')">
|
|
<i class="fas fa-power-off fa-fw mr-2"></i>
|
|
Log out
|
|
</button>
|
|
</li>
|
|
</ul>
|
|
{% else %}
|
|
<ul class="flex flex-col space-y-2">
|
|
<li>
|
|
<a class="btn btn-gray w-full" href="/login?redirect={{request.path | urlencode}}">
|
|
Login
|
|
</a>
|
|
</li>
|
|
<li>
|
|
<a class="btn btn-gray w-full" href="/signup?redirect={{request.path | urlencode}}">
|
|
Signup
|
|
</a>
|
|
</li>
|
|
</ul>
|
|
{% endif %}
|
|
</div>
|
|
</div>
|
|
</nav>
|