clrghouz/resources/views/layouts/partials/topmenu.blade.php
Deon George 2908589eea
Some checks are pending
Create Docker Image / Final Docker Image Manifest (push) Blocked by required conditions
Create Docker Image / Build Docker Image (x86_64) (push) Successful in 38s
Create Docker Image / Build Docker Image (arm64) (push) Successful in 1m42s
is not always defined
2024-05-05 22:12:24 +10:00

182 lines
6.1 KiB
PHP

<div id="nav-menu">
<h1>{{ $title ?? config('app.name') }}</h1>
<ul id="navlist-desktop">
<li><a href="{{ url($user ? 'dashboard' : '/') }}" class="@if(preg_match('#^([dashboard]?[/]?)+$#',request()->path()))thispage disabled @endif"><span>Home</span></a></li>
<li><a href="{{ url('about') }}" class="@if(preg_match('#^about#',request()->path()))thispage disabled @endif"><span>About</span></a></li>
<li>
<a class="@if(preg_match('#[domain|system]/list#',request()->path()))thispage @endif" type="button" data-bs-toggle="collapse" data-bs-target="#dropdown-list" aria-controls="dropdown-list" aria-expanded="false" aria-label="Toggle Lists">
<span>Lists</span>
</a>
<div class="collapse navbar-collapse" id="dropdown-list">
<ul class="dropdown-menu dropdown-menu-dark">
<li><a class="dropdown-item @if(preg_match('#^system/list#',request()->path()))thispage disabled @endif" href="{{ url('system/list') }}">BBS List</a></li>
<li><a class="dropdown-item @if(preg_match('#^domain/list#',request()->path()))thispage disabled @endif" href="{{ url('domain/list') }}">FTN List</a></li>
</ul>
</div>
</li>
@if(preg_match('#^domain/#',request()->path()) && isset($o) && ($o instanceof \App\Models\Domain) && $o->can_accept_app)
<li><a href="{{ url('join') }}" id="join_top" class="@if(preg_match('#^join#',request()->path()))thispage @endif"><span>Join</span></a></li>
@else
<li><a href="{{ url('status') }}" class="@if(preg_match('#^status#',request()->path()))thispage disabled @endif"><span>Status</span></a></li>
@endif
</ul>
<ul class="float-end">
@auth
<li>
<a class="{{ $user->switched ? 'switched' : '' }}" type="button" data-bs-toggle="collapse" data-bs-target="#user-menu-list" aria-controls="navbarNavDarkDropdown" aria-expanded="false" aria-label="Toggle navigation">
<span>{{ $user->name }}</span>
</a>
<div class="collapse navbar-collapse" id="user-menu-list">
<ul class="dropdown-menu dropdown-menu-dark">
<li><a class="dropdown-item" href="{{ url('user/addedit',$user->id) }}">Account Settings</a></li>
<li><a class="dropdown-item" href="{{ url('user/system/register') }}">Register/Link System</a></li>
@can('admin')
<li><a class="dropdown-item @if(preg_match('#^setup#',request()->path()))thispage @endif" href="{{ url('setup') }}">Setup</a></li>
@endcan
@if($user->switched)
<li><a class="dropdown-item" href="{{ url('admin/switch/stop') }}">Switch Back</a></li>
@else
<li><a class="dropdown-item" href="{{ url('logout') }}">Logout</a></li>
@endif
</ul>
</div>
</li>
@endauth
@guest
<li><a href="{{ url('login') }}"><span>Login</span></a></li>
@endguest
</ul>
@auth
<ul class="float-end" id="searchbar">
<li><input type="text" class="ps-2" id="q" name="search" placeholder="Search..."><i class="bi bi-search"></i><div id="search_results"></div></li>
</ul>
@endauth
{{--
<div id="fontwidget">
<span id="row1">
Text mode font:
</span>
<span id="row2">
<a id="togglefonts" class="on" href="#-" onclick="toggleFonts();">[]</a>
<a id="selectfont1" class="on" href="#-" onclick="switchFont(1);">1</a>
<a id="selectfont2" href="#-" onclick="switchFont(2);" class="on">2</a>
<a id="selectfont3" href="#-" onclick="switchFont(3);" class="on">3</a>
<a id="selectfont4" href="#-" onclick="switchFont(4);" class="on">4</a>
<a id="selectfont5" href="#-" onclick="switchFont(5);" class="on">5</a>
<a id="selectfont6" href="#-" onclick="switchFont(6);" class="on">6</a>
</span>
<span id="currentfont">
IBM VGA 8x16
</span>
</div>
--}}
{{--
@todo Get rid of the CSS values if they arenot used, then delete this
<noscript>
<div id="fontwidget-no-js">
<div class="grn">Enable JavaScript for full functionality of all site features.</div>
</div>
</noscript>
--}}
{{--
@todo Is this required?
<div id="mobile-nav-content">
<ul>
<li>Oldschool PC Fonts:</li>
<li class="nobullet"><a href="../"><span>Home</span></a></li>
<li><a class="thispage"><span>Fonts</span></a></li>
<li><a href="../readme/"><span>Readme</span></a></li>
<li><a href="../showcase/"><span>Showcase</span></a></li>
<li><a href="../download/"><span>Download</span></a></li>
</ul>
<div class="mobile-button" id="mobile-button-burger" onclick="toggleSidebar();"> </div>
<div class="mobile-button" id="mobile-button-fontwidget" onclick="toggleFontWidget();">Aa</div>
</div>
--}}
<div id="sidebar">
@include('layouts.partials.sidebar')
</div>
</div>
@section('page-scripts')
<style>
/* Solid border */
div.typeahead.dropdown-menu > .dropdown-header {
color: #000000;
text-align: left;
}
</style>
<script type="text/javascript">
$(document).ready(function() {
$("input[id=q]").typeahead({
autoSelect: false,
scrollHeight: 10,
theme: 'bootstrap5',
delay: 500,
minLength: 2,
items: {{ $search_limit ?? 100 }},
fitToElement: false,
selectOnBlur: false,
appendTo: "#search_results",
source: function (query,process) {
search('{{ url('search') }}',query,process);
},
matcher: function () { return true; },
// Disable sorting and just return the items (items should by the ajax method)
sorter: function(items) {
return items;
},
updater: function (item) {
window.parent.location.href = item.value;
},
})
.on('keyup keypress', function(event) {
var key = event.keyCode || event.which;
if (key === 13) {
event.preventDefault();
return false;
}
});
});
var c=0;
var search = _.debounce(function(url,query,process,icon){
$.ajax({
url : url,
type : 'GET',
data : 'term=' + query,
dataType : 'JSON',
async : true,
cache : false,
beforeSend : function() {
if (c++ === 0) {
$('i.bi-search').addClass('spinner-grow spinner-grow-sm');
}
},
success : function(data) {
// if json is null, means no match, won't do again.
if(data==null || (data.length===0)) return;
process(data);
},
complete : function() {
if (--c === 0) {
$('i.bi-search').removeClass('spinner-grow spinner-grow-sm');
}
}
})
}, 500);
</script>
@append