255 lines
9.2 KiB
Svelte
255 lines
9.2 KiB
Svelte
<script>
|
|
import { link } from "svelte-routing";
|
|
|
|
// core components
|
|
import NotificationDropdown from "components/Dropdowns/NotificationDropdown.svelte";
|
|
import UserDropdown from "components/Dropdowns/UserDropdown.svelte";
|
|
|
|
let collapseShow = "hidden";
|
|
export let collapseshow;
|
|
|
|
function toggleCollapseShow(classes) {
|
|
collapseshow = classes;
|
|
}
|
|
|
|
|
|
export let location;
|
|
</script>
|
|
|
|
<nav
|
|
class="md:left-0 md:block md:fixed md:top-0 md:bottom-0 md:overflow-y-auto md:flex-row md:flex-nowrap md:overflow-hidden shadow-xl bg-white flex flex-wrap items-center justify-between relative md:w-64 z-10 py-4 px-6"
|
|
>
|
|
<div
|
|
class="md:flex-col md:items-stretch md:min-h-full md:flex-nowrap px-0 flex flex-wrap items-center justify-between w-full mx-auto {collapseshow} "
|
|
>
|
|
<!-- Toggler -->
|
|
<button
|
|
class="cursor-pointer text-black opacity-50 md:hidden px-3 py-1 text-xl leading-none bg-transparent rounded border border-solid border-transparent"
|
|
type="button"
|
|
on:click={() => toggleCollapseShow('bg-white m-2 py-3 px-6')}
|
|
>
|
|
<i class="fas fa-bars"></i>
|
|
</button>
|
|
<!-- Brand -->
|
|
<a
|
|
use:link
|
|
class="md:block text-left md:pb-2 text-blueGray-600 mr-0 inline-block whitespace-nowrap text-sm uppercase font-bold p-4 px-0"
|
|
href="/"
|
|
>
|
|
Notus Svelte
|
|
</a>
|
|
<!-- User -->
|
|
<ul class="md:hidden items-center flex flex-wrap list-none">
|
|
<li class="inline-block relative">
|
|
<NotificationDropdown />
|
|
</li>
|
|
<li class="inline-block relative">
|
|
<UserDropdown />
|
|
</li>
|
|
</ul>
|
|
<!-- Collapse -->
|
|
<div
|
|
class="md:flex md:flex-col md:items-stretch md:opacity-100 md:relative md:mt-4 md:shadow-none shadow absolute top-0 left-0 right-0 z-40 overflow-y-auto overflow-x-hidden h-auto items-center flex-1 rounded {collapseShow}"
|
|
>
|
|
<!-- Collapse header -->
|
|
<div
|
|
class="md:min-w-full md:hidden block pb-4 mb-4 border-b border-solid border-blueGray-200"
|
|
>
|
|
<div class="flex flex-wrap">
|
|
<div class="w-6/12">
|
|
<a
|
|
use:link
|
|
class="md:block text-left md:pb-2 text-blueGray-600 mr-0 inline-block whitespace-nowrap text-sm uppercase font-bold p-4 px-0"
|
|
href="/"
|
|
>
|
|
Notus Svelte
|
|
</a>
|
|
</div>
|
|
<div class="w-6/12 flex justify-end">
|
|
<button
|
|
type="button"
|
|
class="cursor-pointer text-black opacity-50 md:hidden px-3 py-1 text-xl leading-none bg-transparent rounded border border-solid border-transparent"
|
|
on:click={() => toggleCollapseShow('hidden')}
|
|
>
|
|
<i class="fas fa-times"></i>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<!-- Form -->
|
|
<form class="mt-6 mb-4 md:hidden">
|
|
<div class="mb-3 pt-0">
|
|
<input
|
|
type="text"
|
|
placeholder="Search"
|
|
class="border-0 px-3 py-2 h-12 border border-solid border-blueGray-500 placeholder-blueGray-300 text-blueGray-600 bg-white rounded text-base leading-snug shadow-none outline-none focus:outline-none w-full font-normal"
|
|
/>
|
|
</div>
|
|
</form>
|
|
|
|
<!-- Divider -->
|
|
<hr class="my-4 md:min-w-full" />
|
|
<!-- Heading -->
|
|
<h6
|
|
class="md:min-w-full text-blueGray-500 text-xs uppercase font-bold block pt-1 pb-4 no-underline"
|
|
>
|
|
Admin Layout Pages
|
|
</h6>
|
|
<!-- Navigation -->
|
|
|
|
<ul class="md:flex-col md:min-w-full flex flex-col list-none">
|
|
<li class="items-center">
|
|
<a
|
|
use:link
|
|
href="/admin/dashboard"
|
|
class="text-xs uppercase py-3 font-bold block {location.href.indexOf('/admin/dashboard') !== -1 ? 'text-red-500 hover:text-red-600':'text-blueGray-700 hover:text-blueGray-500'}"
|
|
>
|
|
<i
|
|
class="fas fa-tv mr-2 text-sm {location.href.indexOf('/admin/dashboard') !== -1 ? 'opacity-75' : 'text-blueGray-300'}"
|
|
></i>
|
|
Dashboard
|
|
</a>
|
|
</li>
|
|
|
|
<li class="items-center">
|
|
<a
|
|
use:link
|
|
href="/admin/wgProfiles"
|
|
class="text-xs uppercase py-3 font-bold block {location.href.indexOf('/admin/tables') !== -1 ? 'text-red-500 hover:text-red-600':'text-blueGray-700 hover:text-blueGray-500'}"
|
|
>
|
|
<i
|
|
class="fas fa-table mr-2 text-sm {location.href.indexOf('/admin/tables') !== -1 ? 'opacity-75' : 'text-blueGray-300'}"
|
|
></i>
|
|
WireGuard Profiles
|
|
</a>
|
|
</li>
|
|
|
|
<li class="items-center">
|
|
<a
|
|
use:link
|
|
href="/admin/wgLogs"
|
|
class="text-xs uppercase py-3 font-bold block {location.href.indexOf('/admin/tables') !== -1 ? 'text-red-500 hover:text-red-600':'text-blueGray-700 hover:text-blueGray-500'}"
|
|
>
|
|
<i
|
|
class="fas fa-table mr-2 text-sm {location.href.indexOf('/admin/tables') !== -1 ? 'opacity-75' : 'text-blueGray-300'}"
|
|
></i>
|
|
WireGuard Logs
|
|
</a>
|
|
</li>
|
|
|
|
<li class="items-center">
|
|
<a
|
|
use:link
|
|
href="/admin/wgCRUD"
|
|
class="text-xs uppercase py-3 font-bold block {location.href.indexOf('/admin/tables') !== -1 ? 'text-red-500 hover:text-red-600':'text-blueGray-700 hover:text-blueGray-500'}"
|
|
>
|
|
<i
|
|
class="fas fa-table mr-2 text-sm {location.href.indexOf('/admin/tables') !== -1 ? 'opacity-75' : 'text-blueGray-300'}"
|
|
></i>
|
|
WireGuard CRUD
|
|
</a>
|
|
</li>
|
|
|
|
<li class="items-center">
|
|
<a
|
|
use:link
|
|
href="/admin/wgNetGraph"
|
|
class="text-xs uppercase py-3 font-bold block {location.href.indexOf('/admin/tables') !== -1 ? 'text-red-500 hover:text-red-600':'text-blueGray-700 hover:text-blueGray-500'}"
|
|
>
|
|
<i
|
|
class="fas fa-table mr-2 text-sm {location.href.indexOf('/admin/tables') !== -1 ? 'opacity-75' : 'text-blueGray-300'}"
|
|
></i>
|
|
WireGuard Net Graph
|
|
</a>
|
|
</li>
|
|
|
|
<li class="items-center">
|
|
<a
|
|
use:link
|
|
href="/admin/wgBlast"
|
|
class="text-xs uppercase py-3 font-bold block {location.href.indexOf('/admin/tables') !== -1 ? 'text-red-500 hover:text-red-600':'text-blueGray-700 hover:text-blueGray-500'}"
|
|
>
|
|
<i
|
|
class="fas fa-table mr-2 text-sm {location.href.indexOf('/admin/tables') !== -1 ? 'opacity-75' : 'text-blueGray-300'}"
|
|
></i>
|
|
WireGuard Blast
|
|
</a>
|
|
</li>
|
|
<li class="items-center">
|
|
<a
|
|
use:link
|
|
href="/admin/settings"
|
|
class="text-xs uppercase py-3 font-bold block {location.href.indexOf('/admin/settings') !== -1 ? 'text-red-500 hover:text-red-600':'text-blueGray-700 hover:text-blueGray-500'}"
|
|
>
|
|
<i
|
|
class="fas fa-tools mr-2 text-sm {location.href.indexOf('/admin/settings') !== -1 ? 'opacity-75' : 'text-blueGray-300'}"
|
|
></i>
|
|
Settings
|
|
</a>
|
|
</li>
|
|
|
|
<li class="items-center">
|
|
<a
|
|
use:link
|
|
href="/admin/tables"
|
|
class="text-xs uppercase py-3 font-bold block {location.href.indexOf('/admin/tables') !== -1 ? 'text-red-500 hover:text-red-600':'text-blueGray-700 hover:text-blueGray-500'}"
|
|
>
|
|
<i
|
|
class="fas fa-table mr-2 text-sm {location.href.indexOf('/admin/tables') !== -1 ? 'opacity-75' : 'text-blueGray-300'}"
|
|
></i>
|
|
Tables
|
|
</a>
|
|
</li>
|
|
|
|
<li class="items-center">
|
|
<a
|
|
use:link
|
|
href="/admin/maps"
|
|
class="text-xs uppercase py-3 font-bold block {location.href.indexOf('/admin/maps') !== -1 ? 'text-red-500 hover:text-red-600':'text-blueGray-700 hover:text-blueGray-500'}"
|
|
>
|
|
<i
|
|
class="fas fa-map-marked mr-2 text-sm {location.href.indexOf('/admin/maps') !== -1 ? 'opacity-75' : 'text-blueGray-300'}"
|
|
></i>
|
|
Maps
|
|
</a>
|
|
</li>
|
|
</ul>
|
|
|
|
<!-- Divider -->
|
|
<hr class="my-4 md:min-w-full" />
|
|
<!-- Heading -->
|
|
<h6
|
|
class="md:min-w-full text-blueGray-500 text-xs uppercase font-bold block pt-1 pb-4 no-underline"
|
|
>
|
|
Auth Layout Pages
|
|
</h6>
|
|
<!-- Navigation -->
|
|
|
|
<ul class="md:flex-col md:min-w-full flex flex-col list-none md:mb-4">
|
|
<li class="items-center">
|
|
<a
|
|
use:link
|
|
class="text-blueGray-700 hover:text-blueGray-500 text-xs uppercase py-3 font-bold block"
|
|
href="/auth/login"
|
|
>
|
|
<i class="fas fa-fingerprint text-blueGray-300 mr-2 text-sm"></i>
|
|
Login
|
|
</a>
|
|
</li>
|
|
|
|
<li class="items-center">
|
|
<a
|
|
use:link
|
|
class="text-blueGray-700 hover:text-blueGray-500 text-xs uppercase py-3 font-bold block"
|
|
href="/auth/register"
|
|
>
|
|
<i class="fas fa-clipboard-list text-blueGray-300 mr-2 text-sm"></i>
|
|
Register
|
|
</a>
|
|
</li>
|
|
</ul>
|
|
|
|
</div>
|
|
</div>
|
|
</nav>
|