cms/resources/views/layouts/admin.blade.php

128 lines
5.5 KiB
PHP
Raw Normal View History

<!DOCTYPE html>
<html lang="{{ str_replace('_', '-', app()->getLocale()) }}">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="csrf-token" content="{{ csrf_token() }}">
<title>{{ config('app.name', 'SiteWeaver CMS') }} - Admin</title>
<!-- SiteWeaver Core Assets -->
<script src="https://code.jquery.com/jquery-3.7.1.min.js"></script>
<link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/fomantic-ui@2.9.3/dist/semantic.min.css">
<script src="https://cdn.jsdelivr.net/npm/fomantic-ui@2.9.3/dist/semantic.min.js"></script>
<style>
.siteweaver-admin #siteweaver-content {
/* Remove opacity: 0 to avoid blank page if JS fails or isn't used */
transition: opacity 0.3s ease-in;
}
.siteweaver-admin #siteweaver-content.loaded {
opacity: 1;
}
</style>
@vite(['resources/css/app.css', 'resources/js/app.js'])
<script>
// Initialize Semantic UI components after full page load
window.addEventListener('load', () => {
if (typeof jQuery !== 'undefined') {
if (typeof jQuery.fn.dropdown === 'function') {
$('.ui.dropdown').dropdown();
}
// Fix for dismissible messages
$('.message .close').on('click', function() {
$(this).closest('.message').transition('fade');
});
} else {
console.error('jQuery not loaded.');
}
});
</script>
</head>
<body class="siteweaver-admin">
@auth
<!-- Top Menu -->
<div class="ui top fixed menu inverted">
<div class="ui container">
<a href="{{ route('admin.dashboard') }}" class="header item">
<img class="logo" src="/logo.png" alt="SiteWeaver" style="margin-right: 1.5em;">
SiteWeaver
</a>
@if(Auth::user()->hasPermission('view-pages'))
<a href="{{ route('admin.pages.index') }}" class="item">
<i class="file icon"></i> {{ t('admin.pages') }}
</a>
@endif
@if(Auth::user()->hasPermission('manage-navigation'))
<a href="{{ route('admin.navigation.index') }}" class="item">
<i class="sitemap icon"></i> {{ t('admin.navigation') }}
</a>
@endif
@if(Auth::user()->hasPermission('manage-translations'))
<a href="{{ route('admin.translations.index') }}" class="item">
<i class="language icon"></i> {{ t('admin.translations') }}
</a>
@endif
@if(Auth::user()->hasPermission('manage-settings'))
<a href="{{ route('admin.settings.index') }}" class="item">
<i class="setting icon"></i> {{ t('admin.settings') }}
</a>
@endif
@if(Auth::user()->hasPermission('view-users'))
<a href="{{ route('admin.users.index') }}" class="item">
<i class="users icon"></i> Users
</a>
@endif
@if(Auth::user()->hasPermission('view-themes'))
<a href="{{ route('admin.themes.index') }}" class="item">
<i class="paint brush icon"></i> Themes
</a>
@endif
@if(Auth::user()->hasPermission('edit-themes'))
<a href="{{ route('admin.themes.editor.index') }}" class="item">
<i class="code icon"></i> Theme Editor
</a>
@endif
@if(Auth::user()->hasPermission('view-media'))
<a href="{{ route('admin.media.index') }}" class="item">
<i class="images icon"></i> Media
</a>
@endif
@if(Auth::user()->hasPermission('manage-backups'))
<a href="{{ route('admin.backups.index') }}" class="item">
<i class="archive icon"></i> Backups
</a>
@endif
<div class="right menu">
<div class="ui dropdown item">
<i class="user icon"></i> {{ Auth::user()->name }} <i class="dropdown icon"></i>
<div class="menu">
<a href="{{ route('admin.profile.edit') }}" class="item">
<i class="settings icon"></i> Profile
</a>
<div class="divider"></div>
<form action="{{ route('logout') }}" method="POST" id="logout-form" style="display: none;">
@csrf
</form>
<a href="#" class="item" onclick="event.preventDefault(); document.getElementById('logout-form').submit();">
<i class="sign out icon"></i> Logout
</a>
</div>
</div>
</div>
</div>
</div>
<div id="siteweaver-content" style="padding-top: 5em;">
@yield('content')
</div>
@else
<div id="siteweaver-content">
@yield('content')
</div>
@endauth
</body>
</html>