Files
citrus-cms/resources/views/admin/inc/header.blade.php
T

393 lines
15 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<header id="page-header" class="{{setting("header_color")}}">
<!-- Header Content -->
<div class="content-header">
<!-- Left Section -->
<div class="content-header-section">
@if (isset($c) && $c->icon)
<div class="mr-15 d-flex align-items-center justify-content-center"
style="width: 36px; height: 36px; background: #f8fafc; border-radius: 10px; border: 1px solid #f1f5f9;">
<img src="{{ url($c->icon) }}" alt="" style="width: 20px; height: 20px; object-fit: contain;">
</div>
@endif
<!-- Page Title & Breadcrumbs -->
<div class="d-flex flex-column justify-content-center">
<div class="font-size-md font-w700 text-dark mb-0" style="line-height: 1.2;">@yield('title')</div>
<nav class="breadcrumb bg-transparent p-0 mb-0 font-size-xs" style="line-height: 1;">
<a class="breadcrumb-item text-muted" href="{{url('admin')}}">Projects</a>
@if (isset($c) && $c->parent)
<?php $parent = DB::table('types')->where('id', $c->parent)->first(); ?>
@if ($parent)
<a class="breadcrumb-item text-muted" href="javascript:void(0)">{{ $parent->title }}</a>
@endif
@endif
<span class="breadcrumb-item active text-muted">@yield('title')</span>
</nav>
</div>
</div>
<!-- END Left Section -->
<!-- Right Section -->
<div class="content-header-section">
<!-- Feedback Button -->
<button type="button" class="btn btn-rounded btn-dual-secondary" id="openFeedback" title="Feedback">
<i class="fas fa-comment-dots"></i>
</button>
@if($u->level == "Admin")
<!-- Admin Tools Dropdown -->
<div class="btn-group" role="group">
<button type="button" class="btn btn-rounded btn-dual-secondary" id="page-header-admin-dropdown"
data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
<i class="fa fa-wrench"></i>
</button>
<div class="dropdown-menu dropdown-menu-right min-width-200"
aria-labelledby="page-header-admin-dropdown">
<h5 class="h6 text-center py-10 mb-5 border-b text-uppercase">Admin Tools</h5>
<a class="dropdown-item" href="javascript:void(0)" onclick="
Swal.fire('', 'Cronjob is Started', 'success');
$.get('{{url("cron")}}', function(d){
Swal.fire('', 'Cronjob is OK', 'success')
});">
<i class="fa fa-cog mr-5"></i> {{e2("Run CronJOB")}}
</a>
<a class="dropdown-item" href="javascript:void(0)" onclick="$.get('{{url("clear-cache")}}',function(d) {
Swal.fire('', 'Cache is Cleared!', 'success')
});">
<i class="fa fa-sync mr-5"></i> {{__('Clear cache')}}
</a>
</div>
</div>
@endif
<!-- Language Dropdown -->
<div class="btn-group" role="group">
<button type="button" class="btn btn-rounded btn-dual-secondary" id="page-header-language-dropdown"
data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
<i class="fa fa-globe"></i>
<span class="d-none d-sm-inline-block ml-5">{{e2(App::getLocale())}}</span>
</button>
<div class="dropdown-menu dropdown-menu-right min-width-200"
aria-labelledby="page-header-language-dropdown">
<h5 class="h6 text-center py-10 mb-5 border-b text-uppercase">{{ e2("Change Language") }}</h5>
<div class="dropdown-divider"></div>
<?php $dil = languages();
foreach ($dil as $d) { ?>
<a class="dropdown-item" href="javascript:void(0)"
onclick="$.get('?ajax=set-locale&l={{$d}}',function(){location.reload()})">
<i class="fa fa-language mr-5"></i> {{e2($d)}}
</a>
<?php } ?>
</div>
</div>
<!-- Notifications -->
<div class="btn-group" role="group">
<button type="button" class="btn btn-rounded btn-dual-secondary" id="notification-dropdown"
data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" onclick="loadNotifications()">
<i class="fa fa-bell"></i>
<span class="badge badge-primary badge-pill" id="notification-count" style="display:none;">0</span>
</button>
<div class="dropdown-menu dropdown-menu-right" style="width: 380px; padding: 0;"
aria-labelledby="notification-dropdown">
<div class="block block-rounded block-bordered mb-0" style="border: none; border-radius: 0.375rem;">
<div class="block-header block-header-default">
<h3 class="block-title">
<i class="fa fa-bell mr-5"></i> {{ e2("Notifications") }}
<span class="badge badge-primary ml-5"
id="notification-unread-indicator">{{ e2("Loading") }}</span>
</h3>
<div class="block-options">
<button type="button" class="btn-block-option" onclick="markAllAsRead(); return false;"
title="{{e2('Mark All Read')}}">
<i class="si si-check"></i>
</button>
</div>
</div>
<div class="block-content p-0">
<div id="notification-scroll-area" style="max-height: 400px; overflow-y: auto;">
<ul id="notification-list" class="list-unstyled mb-0">
<li class="text-center py-20 text-muted">
<i class="fa fa-spinner fa-spin fa-2x mb-10"></i>
<div>{{ e2("Loading...") }}</div>
</li>
</ul>
</div>
</div>
<div class="block-content block-content-full block-content-sm bg-body-light text-center">
<a class="btn btn-sm btn-alt-primary" href="{{url('/admin/types/my-notifications')}}">
<i class="fa fa-list mr-5"></i> {{e2("View All")}}
</a>
</div>
</div>
</div>
</div>
<!-- User Dropdown -->
<div class="btn-group" role="group">
<button type="button" class="btn btn-rounded btn-dual-secondary" id="page-header-user-dropdown"
data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
<i class="fa fa-user d-sm-none"></i>
<span class="d-none d-sm-inline-block ml-5">{{ Auth::user()->name }}
{{ Auth::user()->surname }}</span>
<i class="fa fa-angle-down ml-5"></i>
</button>
<div class="dropdown-menu dropdown-menu-right min-width-200"
aria-labelledby="page-header-user-dropdown">
<h5 class="h6 text-center py-10 mb-5 border-b text-uppercase">User</h5>
<a class="dropdown-item" href="javascript:void(0)" data-toggle="layout"
data-action="side_overlay_toggle">
<i class="si si-wrench mr-5"></i> {{e2("Account Settings")}}
</a>
<div class="dropdown-divider"></div>
<a class="dropdown-item" href="{{url('logout')}}">
<i class="si si-logout mr-5"></i> {{__('Sign Out')}}
</a>
</div>
</div>
</div>
<!-- END Right Section -->
</div>
<!-- END Header Content -->
<!-- Header Search -->
<div id="page-header-search" class="overlay-header">
<div class="content-header content-header-fullrow">
<form action="{{url('admin/search')}}" method="get">
<div class="input-group">
<div class="input-group-prepend">
<button type="button" class="btn btn-secondary" data-toggle="layout"
data-action="header_search_off">
<i class="fas fa-times"></i>
</button>
</div>
<input type="text" class="form-control" placeholder="Search..." name="q">
<div class="input-group-append">
<button type="submit" class="btn btn-secondary">
<i class="fas fa-search"></i>
</button>
</div>
</div>
</form>
</div>
</div>
<!-- END Header Search -->
<div class="d-flex justify-content-center py-3 mini-header">
@yield("title")
</div>
<!-- Header Loader -->
<div id="page-header-loader" class="overlay-header bg-primary">
<div class="content-header content-header-fullrow text-center">
<div class="content-header-item">
<i class="fa fa-sun-o fa-spin text-white"></i>
</div>
</div>
</div>
<!-- END Header Loader -->
<style>
/* Mini Header Custom Styles */
.mini-header {
display: flex;
align-items: center;
justify-content: center;
gap: 5px;
/* Image ve title arası mesafe */
transition: all 0.3s ease;
/* Hem mobilde hem desktopta akışı bozmaması için absolute */
position: absolute;
left: 0;
top: 0;
width: 100%;
height: 100%;
z-index: 1000;
/* En üstte */
pointer-events: none;
/* Arkadaki butonlara tıklanabilsin */
color: white !important;
/* Her durumda beyaz */
}
.mini-header img {
height: 33px;
width: auto;
display: block;
filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.2));
}
/* Geniş Ekran (Desktop) Ayarları */
@media (min-width: 992px) {
.mini-header {
font-size: 20px;
top: 3px;
/* Özel istek */
height: auto;
}
.mini-header img {
height: 33px;
}
}
/* Mobil Ekran Ayarları */
@media (max-width: 991.98px) {
.mini-header {
font-size: 16px;
/* Mobilde tam ortada kalsın */
}
.mini-header img {
height: 28px;
}
}
/* Print Styles */
.yesprint {
display: none;
}
@media print {
.sidebar,
.noprint {
display: none;
}
body {
background: white;
}
.yesprint {
display: block;
}
}
/* Notification Item Styles */
.notification-item {
display: flex;
align-items: flex-start;
padding: 12px 15px;
border-bottom: 1px solid #e9ecef;
transition: all 0.2s ease;
cursor: pointer;
position: relative;
}
.notification-item:last-child {
border-bottom: none;
}
.notification-item:hover {
background-color: #f8f9fa;
}
.notification-item.unread {
background-color: #f0f8ff;
border-left: 3px solid #42a5f5;
}
.notification-item.unread:hover {
background-color: #e3f2fd;
}
.notification-item .icon {
width: 40px;
height: 40px;
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
color: #fff;
margin-right: 12px;
flex-shrink: 0;
font-size: 16px;
}
.notification-item.unread .icon {
background: linear-gradient(135deg, #42a5f5 0%, #2196f3 100%);
}
.notification-item .content {
flex: 1;
min-width: 0;
}
.notification-item .content .title {
font-size: 14px;
font-weight: 600;
color: #2c3e50;
margin-bottom: 4px;
line-height: 1.4;
}
.notification-item .content .message {
font-size: 13px;
color: #6c757d;
line-height: 1.5;
margin-bottom: 6px;
word-wrap: break-word;
}
.notification-item .content .meta {
font-size: 11px;
color: #adb5bd;
display: flex;
align-items: center;
}
.notification-item .content .meta i {
margin-right: 4px;
font-size: 10px;
}
.notification-placeholder {
text-align: center;
padding: 40px 20px;
color: #6c757d;
}
.notification-placeholder i {
font-size: 48px;
margin-bottom: 15px;
opacity: 0.5;
}
.notification-placeholder .font-weight-bold {
font-size: 16px;
color: #495057;
margin-bottom: 8px;
}
.notification-placeholder .small {
font-size: 13px;
}
/* Scrollbar Styling */
#notification-scroll-area::-webkit-scrollbar {
width: 6px;
}
#notification-scroll-area::-webkit-scrollbar-track {
background: #f1f1f1;
}
#notification-scroll-area::-webkit-scrollbar-thumb {
background: #c1c1c1;
border-radius: 3px;
}
#notification-scroll-area::-webkit-scrollbar-thumb:hover {
background: #a8a8a8;
}
</style>
</header>