ikinci temizlik tamamlandı

This commit is contained in:
Ümit Tunç
2026-04-28 21:15:09 +03:00
parent f80443aec0
commit 37e7296527
8313 changed files with 2400677 additions and 0 deletions
+151
View File
@@ -0,0 +1,151 @@
<?php if(!isset($col)) {
$col = "col-6 col-md-4 col-lg-2";
} ?>
<div class="{{$col}}" id="t{{$a->id}}" id2="{{$a->id}}">
<form action="{{url('admin-ajax/cover-upload')}}" id="f{{$a->id}}" class="d-none" enctype="multipart/form-data" method="post">
<input type="file" name="cover" id="c{{$a->id}}" onchange="$('#f{{$a->id}}').submit();" required />
<input type="hidden" name="id" value="{{$a->id}}" />
<input type="hidden" name="slug" value="{{$a->slug}}" />
{{csrf_field()}}
</form>
<div class="block main-block block-rounded block-bordered block-link-shadow text-center" >
<div class="block-header block-header-default">
<h3 class="block-title">
<input type="text" name="title" value="{{$a->title}}" placeholder="{{e2("Başlık Giriniz")}}" table="contents"data-id="{{$a->id}}" class="title{{$a->id}} form-control edit" />
</h3>
<div class="block-options">
<?php if(isset($a->slug)) { ?>
<a class="btn-block-option d-none" href="{{ url($a->slug) }}" target="_blank" title="{{e2("Web'de Gör")}}">
<i class="fa fa-globe"></i>
</a>
<?php } ?>
<a class="btn-block-option" href="{{ url("admin/contents/".$a->id."") }}" target="_blank" title="{{$a->title}} {{e2("Düzenle")}}">
<i class="fa fa-pen"></i>
</a>
<a class="btn-block-option d-none" href="{{ url('admin-ajax/content-duplicate?cid='. $a->id ) }}"title="{{$a->title}} {{__('Çoğalt')}}">
<i class="fa fa-copy"></i>
</a>
<a class="btn-block-option" href="{{ url('admin/contents/'. $a->id .'/delete') }}" ajax="#t{{$a->id}}" teyit="{{$a->title}} {{__('içeriğini silmek istediğinizden emin misiniz?')}}" title="{{$a->title}} {{__('Silinecek!')}}">
<i class="fa fa-times"></i>
</a>
</div>
</div>
<div class="block-content">
<p class="mt-5">
@if($a->cover!='')
<a href="{{ url('admin/contents/'. $a->id) }}" >
<img src="{{url('cache/small/'.$a->cover)}}" alt="" />
</a>
@else
<?php foreach($types AS $t) {
if($t->title==$a->type) {
?>
<a href="{{ url('admin/contents/'. $a->id) }}">
<i class="fa fa-{{$t->icon}} fa-4x content-icon"></i>
</a>
<?php } } ?>
@endif
</p>
<p class="font-size-h1">
<strong>
</strong>
</p>
<p class="font-w600">
</p>
</div>
<div class="mb-10">
<div class="block-options">
<div class="btn-group float-left">
<button type="button" class="btn-block-option" onclick="$('#c{{$a->id}}').trigger('click');" title="{{__('Resim Yükle')}}"><i class="fa fa-upload"></i></button>
@if($a->cover!='')
<a teyit="{{__('Resmi kaldırmak istediğinizden emin misiniz')}}" title="Resmi kaldır" href="{{url('admin-ajax/cover-delete?id='.$a->id)}}" class="btn-block-option"><i class="fa fa-times"></i></a>
<a title="{{__('Resmi indir')}}" href="{{url('cache/download/'.$a->cover)}}" class="btn-block-option"><i class="fa fa-download"></i></a>
@endif
</div>
<label class="css-control css-control-sm css-control-primary css-switch" title="{{e2("Yayınla/Yayından Kaldır")}}">
<input type="checkbox" class="css-control-input yayinla"data-id="{{$a->id}}" @if($a->y==1)checked=""@endif>
<span class="css-control-indicator"></span>
</label>
</div>
</div>
</div>
</div>
@@ -0,0 +1,73 @@
<script src="//cdn.ckeditor.com/4.22.1/full-all/ckeditor.js"></script>
<script>
CKEDITOR.plugins.add('customTool', {
icons: 'custom-tool',
init: function (editor) {
editor.addCommand('openDialog', new CKEDITOR.dialogCommand('customToolDialog'));
editor.ui.addButton('CustomTool', {
label: 'Insert Custom Tool',
command: 'openDialog',
toolbar: 'insert'
});
CKEDITOR.dialog.add('customToolDialog', this.path + 'dialogs/customTool.js');
}
});
CKEDITOR.dialog.add('customToolDialog', function (editor) {
return {
title: 'Insert Custom Tool',
minWidth: 400,
minHeight: 200,
contents: [
{
id: 'info',
elements: [
{
type: 'text',
id: 'type',
label: 'Type',
validate: CKEDITOR.dialog.validate.notEmpty("Type cannot be empty.")
},
{
type: 'text',
id: 'column_name',
label: 'Column Name',
validate: CKEDITOR.dialog.validate.notEmpty("Column Name cannot be empty.")
}
]
}
],
onOk: function () {
var dialog = this,
type = dialog.getValueOf('info', 'type'),
columnName = dialog.getValueOf('info', 'column_name'),
formattedText = '{' + type + '.' + columnName + '}';
editor.insertText(formattedText);
}
};
});
</script>
<script>
CKEDITOR.replace('html', {
extraPlugins: 'customTool',
height: 1000,
}
);
CKEDITOR.editorConfig = function( config ) {
// Define changes to default configuration here. For example:
// config.language = 'fr';
// config.uiColor = '#AADC6E';
config.extraPlugins = 'customTool';
}
</script>
<style>
.cke_notifications_area {
display:none !important;
}
</style>
@@ -0,0 +1,38 @@
<!-- Feedback Modal -->
<div class="modal fade" id="feedbackModal" tabindex="-1" role="dialog" aria-labelledby="feedbackModalLabel" aria-hidden="true">
<div class="modal-dialog modal-lg" role="document">
<div class="modal-content">
<div class="modal-header bg-primary-dark text-white">
<h5 class="modal-title" id="feedbackModalLabel">💬 Feeedback</h5>
<button type="button" class="close text-white" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
<form id="feedbackForm" enctype="multipart/form-data">
@csrf
<div class="form-group">
<label for="feedbackTitle">Title</label>
<input type="text" class="form-control" id="feedbackTitle" name="title" required>
</div>
<div class="form-group">
<label for="feedbackDescription">Explanation</label>
<textarea class="form-control" id="feedbackDescription" name="description" rows="4" required></textarea>
</div>
<div class="form-group">
<label for="feedbackScreenshot">Screenshot</label><br>
<button type="button" class="btn btn-sm btn-secondary" id="takeScreenshot">📸 Take Screenshot</button>
<input type="hidden" name="screenshot" id="screenshotInput">
<div id="screenshotPreview" class="mt-3"></div>
</div>
</form>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-alt-secondary" data-dismiss="modal">Close</button>
<button type="button" class="btn btn-alt-success" id="sendFeedback">Send</button>
</div>
</div>
</div>
</div>
+174
View File
@@ -0,0 +1,174 @@
<?php
$j = json_decode($c->json,true);
?>
@if($fields!=null)
@foreach(@$fields AS $a => $d)
{{__($a)}}
@if($d['type']=="textarea")
<textarea name="{{$a}}" id="" cols="30" fields="10" class="form-control">{{json_field($j,$a)}}</textarea>
@elseif($d['type']=="select")
<select name="{{$a}}" id="" class="form-control select2">
<option value="">Seçiniz</option>
@foreach($d['values'] AS $v)
<option value="{{$v}}" @if($v ==json_field($j,$a)) selected @endif>{{$v}}</option>
@endforeach
</select>
@elseif($d['type']=="select-dynamic")
@php
$db_and_type = explode(":",$d['values'][0]);
$sorgu = DB::table($db_and_type[0])
->where("type",$db_and_type[1])
->get();
$title = explode("-",$d['values'][1]);
@endphp
<select name="{{$a}}" id="" class="form-control select2">
<option value="">Seçiniz</option>
@foreach($sorgu AS $s)
@php
$value = $s->{$d['values'][2]};
@endphp
<option value="{{ $value }}" @if($value ==json_field($j,$a)) selected @endif>
@foreach($title AS $t)
{{ $s->{$t} }}
@endforeach
</option>
@endforeach
</select>
@elseif($d['type']=="select-multiple-dynamic")
@php
$db_and_type = explode(":",$d['values'][0]);
$sorgu = DB::table($db_and_type[0])
->where("type",$db_and_type[1])
->get();
$title = explode("-",$d['values'][1]);
@endphp
<select name="{{$a}}[]" id="" class="form-control select2" multiple>
<option value="">Seçiniz</option>
@foreach($sorgu AS $s)
@php
$value = $s->{$d['values'][2]};
@endphp
<option value="{{ $value }}" @if(@in_array($value,json_field($j,$a))) selected @endif>
@foreach($title AS $t)
{{ $s->{$t} }}
@endforeach
</option>
@endforeach
</select>
@elseif($d['type']=="select-multiple")
<select name="{{$a}}[]" id="" class="form-control select2" multiple>
<option value="">Seçiniz</option>
@foreach($d['values'] AS $v)
@if($v!="")
<option value="{{$v}}" @if(@in_array($v,json_field($j,$a))) selected @endif>{{$v}}</option>
@endif
@endforeach
@if(is_array(json_field($j,$a)))
@foreach(json_field($j,$a) AS $v)
<option value="{{$v}}" selected>{{$v}}</option>
@endforeach
@endif
</select>
@elseif($d['type']=="radio") <br />
@foreach($d['values'] AS $v)
<label><input type="{{$d['type']}}" name="{{$a}}" value="{{$v}}" @if($v ==json_field($j,$a)) checked @endif id="" /> {{$v}}</label> <br />
@endforeach
@elseif($d['type']=="checkbox") <br />
@foreach($d['values'] AS $v)
<label><input type="{{$d['type']}}" name="{{$a}}[]" value="{{$v}}" @if(@in_array($v,json_field($j,$a))) checked @endif id="" /> {{$v}}</label> <br />
@endforeach
@else
<input type="{{$d['type']}}" step="any" class="form-control" name="{{$a}}" value="{{json_field($j,$a)}}" id="" />
@endif
@endforeach
@endif
+129
View File
@@ -0,0 +1,129 @@
<?php
use App\Types;
use App\Content;
use App\Fields;
?>
<form action="{{url('admin-ajax/content-update?back')}}" method="post">
{{csrf_field()}}
<div class="row">
<div class="col-md-9">
{{__('Başlık')}}
<input type="hiddendata-id="{{"id" value="{{@$c->id}}" />
<input type="hidden" name="kid" value="{{@$c->kid}}" />
<input type="hidden" name="oldslug" value="{{@$c->slug}}" />
<input type="text" name="title" id="title" value="{{@$c->title}}" class="form-control" />
{{__('URL')}} <div class="btn btn-default" onclick="$.get('{{url('admin-ajax/slug?title='.@$c->breadcrumb)}}'+$('#title').val(),function(d){
$('#slug').val(d)
})"><i class="si si-refresh"></i></div>
<input type="text" name="slug" id="slug" value="{{@$c->slug}}" class="form-control" />
{{__('İçerik Tipi')}}
<select name="type" id="{{@$c->id}}" class="form-control edit" table="contents" >
<option value="">Tip Seçiniz</option>
@foreach(@$types AS $t)
<option value="{{$t->title}}" @if($t->title==@$c->type) selected @endif>{{$t->title}}</option>
@endforeach
</select>
{{__('İçerik')}}
<textarea class="" id="editor" name="html">{{@$c->html}}</textarea>
@include("admin.inc.fields")
</div>
<div class="col-md-3 text-center">
@if(@$c->cover!='')
<div class="js-gallery">
<a href="{{url('cache/large/'.@$c->cover)}}" class="img-link img-link-zoom-in img-thumb img-lightbox" target="_blank" >
<img src="{{url('cache/small/'.@$c->cover)}}" alt="" />
</a>
</div>
<hr />
@else
<i class="fa fa-image" style=" display: block;
font-size: 150px;
color: #f3f3f3;"></i>
@endif
<div class="btn-group">
<button type="button" class="btn btn-secondary btn-sm" onclick="$('#c{{@$c->id}}').trigger('click');" title="{{__('Resim Yükle')}}"><i class="fa fa-upload"></i> {{__('Kapak Resmi Yükle')}}</button>
@if(@$c->cover!='')
<a teyit="{{__('Resmi kaldırmak istediğinizden emin misiniz')}}" title="{{__('Resmi kaldır')}}" href="{{url('admin-ajax/cover-delete?id='.@$c->id)}}" class="btn btn-secondary btn-sm "><i class="fa fa-times"></i></a>
<a title="{{__('Resmi indir')}}" href="{{url('cache/download/'.@$c->cover)}}" class="btn btn-secondary btn-sm"><i class="fa fa-download"></i></a>
@endif
</div>
</div>
</div>
<hr />
<div class="">
<a href="{{url(@$c->slug)}}" target="_blank" class="btn btn-danger"><i class="fa fa-globe"></i> {{__(@$c->title)}} {{__('İçeriğini Web\'de Gör')}}</a>
<button class="btn btn-primary">{{__('Değişiklikleri Kaydet')}}</button>
</div>
</form>
+366
View File
@@ -0,0 +1,366 @@
<header id="page-header" class="{{setting("header_color")}}">
<!-- Header Content -->
<div class="content-header">
<!-- Left Section -->
<div class="content-header-section">
<!-- Toggle Sidebar -->
<button type="button" class="btn btn-circle btn-dual-secondary" data-toggle="layout" data-action="sidebar_toggle">
<i class="fas fa-bars"></i>
</button>
<!-- END Toggle Sidebar -->
<!-- Open Search Section -->
<button type="button" class="btn btn-circle btn-dual-secondary" data-toggle="layout" data-action="header_search_on">
<i class="fas fa-search"></i>
</button>
<!-- END Open Search Section -->
<!-- Project Info (Visible on large screens) -->
<div class="d-none d-lg-inline-block ml-10">
<span class="font-w700 text-white text-uppercase">{{setting("project_number")}}</span>
<span class="text-white-op "
style="max-width:30%; display:inline-block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; vertical-align:bottom; text-align:center; cursor:pointer;"
data-toggle="popover"
data-placement="bottom"
data-html="true"
data-original-title="{{ setting("project_name") }}"
data-content='{{ setting("project_name_ru") }}'>
- {{ setting("project_name") }} / {{ setting("project_name_ru") }}
</span>
</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>
+214
View File
@@ -0,0 +1,214 @@
<?php use App\Translate; ?>
<?php use App\Types; ?>
<?php $types = Types::whereNull("kid")->where("enabled", true)->orderBy("s","ASC")->get();
?>
<div class="content-side content-side-full">
<input type="text" name="" placeholder="{{e2("Search Module")}}" id="search-module" class="form-control">
<script>
$(function(){
$("#search-module").on("keyup", function() {
var value = $(this).val().toLowerCase();
$(".nav-main li ul li ").hide();
$(".nav-main li").hide().removeClass("open");
$(".nav-main li ul li ").filter(function() {
var result = $(this).text().toLowerCase().indexOf(value);
//console.log(result);
if(result>-1) {
$(this).show();
$(this).parent().parent().show().addClass("open");
}
});
});
});
</script>
<ul class="nav-main">
<li class="d-none">
<a class="active" href="{{url('admin/')}}"><i class="si si-cup"></i><span
class="sidebar-mini-hide">Dashboard</span></a>
</li>
<?php
$u = u();
$level = str_slug($u->level); ?>
@if(View::exists("admin.inc.menu.$level"))
@include("admin.inc.menu.$level")
@endif
<li class="nav-main-heading d-none"><span class="sidebar-mini-visible">UI</span><span
class="sidebar-mini-hidden">{{e2('Content Types')}}</span></li>
@foreach($types AS $c)
@if(in_array($c->title, $permissions) || in_array($c->slug,$permissions))
<li class="{{$c->slug}}">
<?php $alt = Types::where("kid",$c->slug)->where("enabled", true)->orderBy("s", "ASC")->get(); ?>
<a <?php if(varmi($alt)) { ?>class="nav-submenu" data-toggle="nav-submenu"<?php } ?>
@if($c->slug == 'feedback-reports') id="feedback-link" class="d-flex align-items-center" @endif
href="{{ url('admin/types/'. $c->slug) }}">
<i>
<img src="{{url("assets/icons/".$c->icon . ".png")}}" width="24" alt="">
</i>
@if($c->slug == 'feedback-reports')
<span class="ml-2">{{e2($c->title)}}</span>
@php $unreadFeedbackCount = \App\Models\FeedbackReport::where('status', 'submitted')->count(); @endphp
<span id="feedback-badge" class="badge badge-danger ml-2 flex-shrink-0" style="{{ $unreadFeedbackCount > 0 ? '' : 'display:none;' }}">{{ $unreadFeedbackCount }}</span>
@else
<span class="ml-2">{{e2($c->title)}}</span>
@endif
</a>
<?php if(varmi($alt)) { ?>
<ul>
<?php foreach($alt AS $a) { ?>
@if(in_array($a->title,$permissions))
<li class="{{$a->slug}}">
<a href="{{ url('admin/types/'. $a->slug) }}">
<i>
<img src="{{url("assets/icons/".$a->icon . ".png")}}" class="sub-menu-icon" width="16" alt="">
</i>
<span class="ml-2 sub-menu-text">{{e2($a->title)}}</span>
</a>
</li>
@endif
<?php } ?>
</ul>
<?php } ?>
</li>
@endif
@endforeach
@if(isAdmin())
<li class="nav-main-heading"><span class="sidebar-mini-visible">UI</span><span
class="sidebar-mini-hidden">{{e2('User Guide')}}</span></li>
<li>
<a href="{{url('admin/user-guide')}}"><i class="fa fa-book"></i><span
class="sidebar-mini-hide">{{e2("User Guide")}}</span></a>
</li>
<li>
<a class="nav-submenu" href="{{url('admin/users')}}"><i class="si si-users"></i><span
class="sidebar-mini-hide">{{e2("Users")}}</span></a>
</li>
@endif
<?php
$onlyShowProjectUrls = [
'Admin',
'Manager (Center Office)',
'Manager (PTO)',
'Manager (Lead)',
];
if(in_array($u->level, $onlyShowProjectUrls)) {
$projects = j(setting("project-app-urls")) ?>
@if(!is_null($projects))
<li class="nav-main-heading"><span class="sidebar-mini-visible">UI</span><span
class="sidebar-mini-hidden">{{e2('Project Links')}}</span></li>
<?php foreach($projects AS $project) { ?>
@if(isset($project['url']))
@if($project['url']!="")
<li>
<a target="_blank" href="{{$project['url']}}">
<i class="material-symbols-outlined">
display_settings
</i>
<span>{{$project['project_name']}}</span></a>
</li>
@endif
@endif
<?php } ?>
@endif
<?php } ?>
@if(isAdmin())
<li class="nav-main-heading"><span class="sidebar-mini-visible">UI</span><span
class="sidebar-mini-hidden">{{e2('Language Settings')}}</span></li>
<?php $diller = languages(); foreach($diller AS $d) { ?>
<li>
<a href="{{ url('admin/languages/'. $d) }}">
<i class="material-symbols-outlined">
language
</i>
<span>{{e2($d)}}</span></a>
</li>
<?php } ?>
@endif
@if(in_array("contents",$permissions))
<li class="nav-main-heading d-none "><span class="sidebar-mini-visible">UI</span><span
class="sidebar-mini-hidden">Contents Tree</span></li>
<ol class="tree d-none">
@foreach($contents AS $c)
@if($c->title!="")
<li>
<label for="menu-<?php echo($c->id) ?>" ajax=".content-ajax" onclick="location.href='{{url("admin/contents/".$c->id)}}'"><?php echo e2($c->title) ?></label>
<input type="checkbox" slug="<?php echo e2($c->slug); ?>" class="kategori-tree" id="menu-<?php echo($c->id) ?>" />
<ol>
</ol>
</li>
@endif
@endforeach
</ol>
<script type="text/javascript">
$(function(){
$(".kategori-tree").on("click",function(){
console.log("ok");
var bu = $(this);
bu.parent().children("ol").html("{{e2('Loading...')}}");
$.get('{{url('admin-ajax/contents-tree?id=')}}'+$(this).attr("slug"),function(d){
bu.parent().children("ol").html(d);
});
//return false;
});
});
</script>
<style type="text/css">
.contents-tree * {
cursor:pointer;
}
</style>
@endif
@if(isAdmin())
<li class="nav-main-heading "><span class="sidebar-mini-visible">UI</span><span
class="sidebar-mini-hidden">{{e2('Content Management')}}</span></li>
<li class="d-none">
<a class="nav-submenu" href="{{url('admin/new/contents')}}"><i class="si si-grid"></i><span
class="sidebar-mini-hide">{{e2("Contents")}}</span></a>
</li>
<li>
<a class="nav-submenu" href="{{ url('admin/new/types') }}"><i
class="si si-layers"></i><span class="sidebar-mini-hide">{{e2('Modules')}}</span></a>
</li>
<li>
<a class="nav-submenu" href="{{ url('admin/new/artisan') }}"><i
class="fa fa-code"></i><span class="sidebar-mini-hide">{{e2('Artisan')}}</span></a>
</li>
<li class="d-none">
<a class="nav-submenu" href="{{url('admin/fields')}}"><i class="si si-list"></i><span
class="sidebar-mini-hide">{{e2('Columns')}}</span></a>
</li>
@endif
</ul>
</div>
@@ -0,0 +1,14 @@
<li>
<a href="?t=new-submission">
<i class="material-symbols-outlined">
add_circle
</i>
<span class="sidebar-mini-hide">Start a new submission</span></a>
</li>
<li>
<a href="?t=submissions">
<i class="material-symbols-outlined">
article
</i>
<span class="sidebar-mini-hide">Submissions</span></a>
</li>
@@ -0,0 +1,40 @@
<div class="block">
<div class="block-header block-header-default">
<h3 class="block-title">{{__('Çoklu İçerik Ekle')}}</h3>
<div class="block-options">
<button type="button" class="btn-block-option" onclick="$('.coklu').toggleClass('hidden');">
<i class="si si-eye"></i>
</button>
</div>
</div>
<div class="block-content block-content-full coklu">
<form action="{{url('admin-ajax/content-multi-add?kid='.$c->slug)}}" method="post">
@csrf
<div class="row">
<div class="col-md-6">
{{__('Bu kutuya birden fazla başlık yazarak bu alana çoklu olarak içerik ekleyebilirsiniz:')}}
<select name="contents[]" id="" class="select2 form-control" multiple>
<option value=""></option>
</select>
+331
View File
@@ -0,0 +1,331 @@
<!-- Page JS Plugins CSS -->
<link rel="stylesheet" href="{{ asset('assets/admin/js/plugins/bootstrap-datepicker/css/bootstrap-datepicker3.min.css') }}">
<link rel="stylesheet" href="{{ asset('assets/admin/js/plugins/bootstrap-colorpicker/css/bootstrap-colorpicker.min.css') }}">
<link href="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.9/css/select2.min.css" rel="stylesheet" />
<link rel="stylesheet" href="{{ asset('assets/admin/js/plugins/jquery-tags-input/jquery.tagsinput.min.css') }}">
<link rel="stylesheet" href="{{ asset('assets/admin/js/plugins/jquery-auto-complete/jquery.auto-complete.min.css') }}">
<link rel="stylesheet" href="{{ asset('assets/admin/js/plugins/ion-rangeslider/css/ion.rangeSlider.css') }}">
<link rel="stylesheet" href="{{ asset('assets/admin/js/plugins/ion-rangeslider/css/ion.rangeSlider.skinHTML5.css') }}">
<link rel="stylesheet" href="{{ asset('assets/admin/js/plugins/dropzonejs/dist/dropzone.css') }}">
<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200" />
<link rel="stylesheet" id="css-main" href="{{ asset('assets/admin/css/pelinom6.min.css') }}?v=1.3">
<link rel="stylesheet" id="css-main" href="{{ asset('assets/admin/css/themes/pulse.min.css') }}">
<link rel="stylesheet" id="css-main" href="{{ asset('assets/admin/css/stellar.css?'.rand()) }}">
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Muli:300,400,400i,600,700">
<link href="https://fonts.googleapis.com/css?family=Oswald&display=swap" rel="stylesheet">
<link href="https://fonts.googleapis.com/css?family=Saira+Semi+Condensed:100,300,400,700,900&display=swap&subset=latin-ext" rel="stylesheet">
<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css" crossorigin="anonymous" referrerpolicy="no-referrer" />
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/v4-shims.min.css" crossorigin="anonymous" referrerpolicy="no-referrer" />
<style>
/* Font Awesome 4 to 6 Compatibility Fixes */
.fa, .fas, .far, .fab {
font-family: "Font Awesome 6 Free", "Font Awesome 6 Brands", sans-serif;
}
/* Ensure outline icons use the correct font family and weight (Regular) */
.fa-clock-o:before,
.fa-star-o:before,
.fa-trash-o:before,
.fa-file-o:before,
.fa-check-circle-o:before,
.fa-circle-o:before,
.fa-square-o:before,
.fa-bookmark-o:before,
.fa-comment-o:before,
.fa-envelope-o:before,
.fa-folder-o:before,
.fa-folder-open-o:before,
.fa-hdd-{}o:before,
.fa-keyboard-o:before,
.fa-lemon-o:before,
.fa-lightbulb-o:before,
.fa-moon-o:before,
.fa-paper-plane-o:before,
.fa-play-circle-o:before,
.fa-question-circle-o:before,
.fa-sun-o:before,
.fa-times-circle-o:before,
.fa-calendar-o:before,
.fa-check-square-o:before,
.fa-hand-o-down:before,
.fa-hand-o-left:before,
.fa-hand-o-right:before,
.fa-hand-o-up:before,
.fa-heart-o:before,
.fa-thumbs-o-down:before,
.fa-thumbs-o-up:before {
font-family: "Font Awesome 6 Free" !important;
font-weight: 400 !important;
}
@media (min-width: 1200px) {
.modal-xl {
max-width: 95% !important;
}
}
.modal-full {
max-width: 98% !important;
margin: 10px auto;
}
iframe.pdf-preview {
background: #eee;
}
</style>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/jquery-datetimepicker/2.5.4/jquery.datetimepicker.min.css" />
<script src="{{ asset('assets/admin/js/pelinom6.core.min.js') }}" ></script>
<script src="{{ asset('assets/admin/js/pelinom6.app.min.js') }}"></script>
<script src="{{ asset('assets/admin/js/store.js') }}"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/html2canvas/1.4.1/html2canvas.min.js" integrity="sha512-BNaRQnYJYiPSqHHDb58B0yaPfCu+Wgds8Gp/gU33kqBtgNS4tSPHuGibyoeqMV/TJlSKda6FXzoEyYGjTe+vXA==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jspdf/1.3.2/jspdf.min.js"></script>
<script src="{{url("assets/datagridxl/datagridxl/datagridxl2.js")}}"></script>
<script src="https://cdn.jsdelivr.net/npm/fuse.js/dist/fuse.min.js"></script>
<!--
<script src="{{ asset('assets/admin/js/resizable.js') }}"></script>
<link rel="stylesheet" href="{{ asset('assets/admin/js/resizable.css') }}">
<script>
$(function(){
$("table").resizableColumns({
store: store
});
});
</script>
-->
<link href="https://cdn.datatables.net/v/bs4/dt-1.13.4/datatables.min.css" rel="stylesheet"/>
<script src="https://cdn.datatables.net/v/bs4/dt-1.13.4/datatables.min.js"></script>
<script src="https://cdn.datatables.net/buttons/1.6.2/js/dataTables.buttons.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.53/vfs_fonts.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.53/pdfmake.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jszip/3.1.3/jszip.min.js"></script>
<script src="https://cdn.datatables.net/buttons/1.6.2/js/buttons.html5.min.js"></script>
<script src="https://cdn.datatables.net/fixedcolumns/3.3.1/js/dataTables.fixedColumns.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.18.1/moment.min.js"></script>
<script type="text/javascript" src="https://cdn.datatables.net/plug-ins/1.10.19/sorting/datetime-moment.js"></script>
<script type="text/javascript" src="https://cdn.datatables.net/plug-ins/1.10.21/sorting/date-de.js"></script>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clusterize.js/0.18.0/clusterize.min.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/clusterize.js/0.18.0/clusterize.min.css" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.9/js/select2.full.min.js"></script>
<script src="{{ asset('assets/admin/js/plugins/dropzonejs/dropzone.min.js') }}"></script>
<script type="text/javascript" src="https://unpkg.com/xlsx@0.15.1/dist/xlsx.full.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
<script src="https://code.jquery.com/ui/1.13.2/jquery-ui.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery.mask/1.14.16/jquery.mask.min.js"></script>
<!--
use the latest version -->
<script src="https://cdn.jsdelivr.net/npm/sweetalert2@11"></script>
<script>
function ExportToExcel(type, fn, dl) {
var elt = document.getElementById('excel');
window.setTimeout(function(){
var wb = XLSX.utils.table_to_book(elt, { sheet: "sheet1" });
return dl ?
XLSX.write(wb, { bookType: type, bookSST: true, type: 'base64' }) :
XLSX.writeFile(wb, fn || ('{!! trim(strip_tags($__env->yieldContent('title'))) !!}.' + (type || 'xlsx')));
}, 500);
}
</script>
<div class="script-zone">
<script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
<script src="{{ asset('assets/admin/js/plugins/slick/slick.min.js') }}"></script>
<!-- include summernote css/js -->
<script src="{{ asset('assets/admin/js/plugins/summernote/summernote-bs4.min.js') }}"></script>
<link rel="stylesheet" href="{{ asset('assets/admin/js/plugins/summernote/summernote-bs4.css') }}">
<script src="{{ asset('assets/admin/js/plugins/magnific-popup/jquery.magnific-popup.min.js') }}"></script>
<link rel="stylesheet" href="{{ asset('assets/admin/js/plugins/magnific-popup/magnific-popup.css') }}">
<link rel="stylesheet" href="{{ asset('assets/admin/js/plugins/slick/slick.css') }}">
<link rel="stylesheet" href="{{ asset('assets/admin/js/plugins/slick/slick.css') }}">
<!-- Page JS Plugins -->
<!--<script src="{{ asset('assets/admin/js/plugins/bootstrap-datepicker/js/bootstrap-datepicker.min.js') }}"></script>-->
<script src="{{ asset('assets/admin/js/plugins/bootstrap-colorpicker/js/bootstrap-colorpicker.min.js') }}"></script>
<script src="{{ asset('assets/admin/js/plugins/bootstrap-maxlength/bootstrap-maxlength.min.js') }}"></script>
<script src="{{ asset('assets/admin/js/plugins/jquery-tags-input/jquery.tagsinput.min.js') }}"></script>
<script src="{{ asset('assets/admin/js/plugins/jquery-auto-complete/jquery.auto-complete.min.js') }}"></script>
<script src="{{ asset('assets/admin/js/plugins/masked-inputs/jquery.maskedinput.min.js') }}"></script>
<script src="{{ asset('assets/admin/js/plugins/ion-rangeslider/js/ion.rangeSlider.min.js') }}"></script>
<script src="{{ asset('assets/admin/js/plugins/pwstrength-bootstrap/pwstrength-bootstrap.min.js') }}"></script>
<script src="{{ asset('assets/admin/js/plugins/bootstrap-notify/bootstrap-notify.min.js') }}"></script>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jquery-datetimepicker/2.5.4/build/jquery.datetimepicker.full.min.js"></script>
<!-- Latest compiled and minified CSS -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-select@1.13.9/dist/css/bootstrap-select.min.css">
<!-- Latest compiled and minified JavaScript -->
<script src="https://cdn.jsdelivr.net/npm/bootstrap-select@1.13.9/dist/js/bootstrap-select.min.js"></script>
<script src="https://code.jquery.com/ui/1.13.2/jquery-ui.js"></script>
<script src="{{url("assets/admin/js/json-to-table.js")}}"></script>
</div>
<script>
const Stellar = {
get_welder_id(text) {
var welder = text;
var regex = /\[([A-Z0-9]+)\]/;
var result = welder.match(regex);
if(result) {
welder = result[1];
}
return welder;
}
}
</script>
{{datagrid_scripts()}}
<style>
.timeline {
border-left: 3px solid rgb(245, 58, 58);
border-bottom-right-radius: 4px;
border-top-right-radius: 4px;
background: rgb(255, 255, 255);
margin: 0 auto;
letter-spacing: 0.2px;
position: relative;
line-height: 1.4em;
font-size: 1.03em;
padding: 50px;
list-style: none;
text-align: left;
max-width: 75%;
}
@media (max-width: 767px) {
.timeline {
max-width: 98%;
padding: 25px;
}
}
.timeline h1 {
font-weight: 300;
font-size: 1.4em;
}
.timeline h2,
.timeline h3 {
font-weight: 600;
font-size: 1rem;
margin-bottom: 10px;
}
.timeline .event {
border-bottom: 1px dashed #e8ebf1;
padding-bottom: 25px;
margin-bottom: 25px;
position: relative;
background: #8080801f;
padding: 15px;
}
@media (max-width: 767px) {
.timeline .event {
padding-top: 30px;
}
}
.timeline .event:last-of-type {
padding-bottom: 0;
margin-bottom: 0;
border: none;
}
.timeline .event:before,
.timeline .event:after {
position: absolute;
display: block;
top: 0;
}
.timeline .event:before {
left: -207px;
content: attr(data-date);
text-align: right;
font-weight: 100;
font-size: 0.9em;
min-width: 120px;
}
@media (max-width: 767px) {
.timeline .event:before {
left: 0px;
text-align: left;
}
}
.timeline .event:after {
-webkit-box-shadow: 0 0 0 3px rgb(206, 10, 10);
box-shadow: 0 0 0 3px rgb(206, 10, 10);
left: -55.8px;
background: #fff;
border-radius: 50%;
height: 9px;
width: 9px;
content: "";
top: 5px;
}
@media (max-width: 767px) {
.timeline .event:after {
left: -31.8px;
}
}
.rtl .timeline {
border-left: 0;
text-align: right;
border-bottom-right-radius: 0;
border-top-right-radius: 0;
border-bottom-left-radius: 4px;
border-top-left-radius: 4px;
border-right: 3px solid #727cf5;
}
.rtl .timeline .event::before {
left: 0;
right: -170px;
}
.rtl .timeline .event::after {
left: 0;
right: -55.8px;
}
</style>
@@ -0,0 +1,81 @@
<style>
/*
.profile-update .new-password, .profile-update .reemail {
display:none;
}
*/
</style>
<script>
$(function() {
$(".profile-update .new-password, .profile-update .reemail").remove();
<?php $user = u()->toArray();
unset($user['password']);
unset($user['json']);
foreach($user AS $name => $value) {
?>
<?php if(!is_array($value)) {
?>
$(".profile-update [name='{{$name}}']").val("<?php echo $value ?>");
<?php
}
}
?>
$(".profile-update [name='name']").attr("disabled","disabled");
// $(".profile-update [name='prefix']").attr("disabled","disabled");
$(".profile-update [name='surname']").attr("disabled","disabled");
$(".profile-update [name='email']").attr("disabled","disabled");
});
</script>
<div class="block-content profile-update">
<div class="result-ajax"></div>
<form action="?<?php if(getisset("t")) echo "t=".get("t") . '&'; ?>ajax=profile-update" method="post" class="serialize">
@csrf
@include("admin.users.form")
<div class="form-group row border-t pt-20 mt-20">
<div class="col-12">
<h5 class="font-w600 text-muted mb-10">{{__('Change Password')}}</h5>
<p class="text-muted font-size-sm mb-15">{{__("If you don't want to change it, leave it blank.")}}</p>
</div>
<div class="col-12 mb-10">
<label for="password">{{__('New Password')}}</label>
<input type="password" name="password" id="password" onblur="
if($(this).val()!='') {
$('#password2').attr('required','required');
} else {
$('#password2').removeAttr('required');
}" class="form-control" placeholder="{{__('Enter new password')}}" value="" />
</div>
<div class="col-12 mb-10">
<label for="password2">{{e2("Retype Password")}}</label>
<input type="password" name="" onkeyup="
if($(this).val()!='') {
if($(this).val()!=$('#password').val()) {
$('.submit').addClass('d-none');
$('.notmatch').removeClass('d-none');
} else {
$('.submit').removeClass('d-none');
$('.notmatch').addClass('d-none');
}
}
" id="password2" class="form-control" placeholder="{{__('Confirm new password')}}" value="" />
</div>
<div class="col-12">
<div class="alert alert-danger d-none notmatch mb-0">{{__('Passwords do not match')}}</div>
</div>
</div>
<div class="form-group row">
<div class="col-12">
<button type="submit" class="btn btn-alt-primary btn-block submit">
<i class="fa fa-check mr-5"></i> {{__('Update Profile')}}
</button>
</div>
</div>
</form>
</div>
+519
View File
@@ -0,0 +1,519 @@
<script>
function copyToClipboard(text) {
navigator.clipboard.writeText(text).then(() => {
Swal.fire({
title: '{{e2("Copied!")}}',
text: text,
icon: 'success',
toast: true,
position: 'top-end',
showConfirmButton: false,
timer: 2000
});
}).catch(err => {
console.error('Failed to copy text: ', err);
});
}
</script>
<script>
$.fn.hasAttr = function(name) {
return this.attr(name) !== undefined;
};
</script>
@foreach (glob(base_path() . '/resources/views/scripts/*.blade.php') as $file)
@include('scripts.' . basename(str_replace('.blade.php', '', $file)))
@endforeach
<?php seri(); // serialize form
?>
<script>
function printFrame() {
var iframe = document.getElementById('show_pdf');
var iframeWindow = iframe.contentWindow;
if (iframeWindow) {
iframeWindow.focus();
iframeWindow.print();
} else {
console.error('Could not access iframe content window');
}
}
</script>
<script type="text/javascript">
<?php
if(oturumisset("full-screen-block")) {
?>
$("#{{oturum("full-screen-block")}}").addClass('block-mode-fullscreen');
<?php
}
?>
$('.auto-complete').autocomplete({
source: function( request, response ) {
$.ajax( {
url: "{{url("admin/autocomplete/welding_methods/ru_short_name")}}",
dataType: "jsonp",
data: {
term: request.term
},
success: function( data ) {
response( data );
}
} );
},
minLength: 2,
select: function( event, ui ) {
log( "Selected: " + ui.item.value + " aka " + ui.item.id );
}
} );
$(".editable").on("click",function(){
$(this).attr("contenteditable",true);
$(this).prop("contenteditable",true);
});
$(".cevapla-soru").on("click",function(){
var bu = $(this);
var id = bu.attr("data-soru");
bu.html("Kaydediliyor...");
$.post("{{url("admin-ajax/cevap-soru")}}",{
soru_id : id,
_token : "{{csrf_token()}}",
cevap : $("#soru"+id).val(),
tak_duzey : $("#tak"+id).val()
},function(d){
console.log(d);
bu.html("Kaydedildi");
});
});
$(".serialize").unbind();
$(".serialize").on("submit",function(){
for (var i in CKEDITOR.instances) {
CKEDITOR.instances[i].updateElement();
};
var bu = $(this);
var html = bu.find("[type='submit']").html();
bu.find(".right-fixed button").html("Processing...");
bu.find("[type='submit']").html("Processing...");
$.ajax({
type : $(this).attr("method"),
url : $(this).attr("action"),
data : $(this).serialize(),
success: function(d){
bu.find(".right-fixed button").html(html);
bu.find("[type='submit']").html(html);
$(".result-ajax").html(d);
}
});
return false;
});
</script>
<script>
$( function() {
$('[data-toggle="popover"]').popover();
$(".nav-ajax a").on("click",function(){
var id = $(this).attr("href");
var path = $(this).parent().parent().attr("path");
var url = id.replace("#","");
console.log(path);
$(id).html('<i class="fa fa-spin fa-spinner"></i>').load("?ajax2="+path+"."+url);
});
$(".nav-ajax li:eq(0) a").trigger("click");
/*
$("[type='number']").on("keypress",function(e){
console.log(e.keyCode);
if(e.keyCode==48) {
if($(this).val().length==0) {
return false;
}
}
if(e.keyCode==46) {
return false;
}
});
*/
$('.date').mask('9999-99-99', {reverse: true});
// $("[name='Tonnage']").attr("type","text").prop("type","text").mask('#,0000', {reverse: true});
$("[name='Tonnage']")
.attr("pattern","[0-9]+([\.,][0-9]+)?")
.prop("pattern","[0-9]+([\.,][0-9]+)?")
.attr("min","0")
.prop("min","0")
.attr("step","0.0001")
.prop("step","0.0001");
$("[name='Tonnage']").focusout(function(){
var inputVal = this.value;
if(inputVal.indexOf(',') != -1){
var num = inputVal.split(',');
this.value = parseInt(num)+","+num[1];
} else if(inputVal.indexOf('.') != -1){
var num = inputVal.split('.');
this.value = parseInt(num)+"."+num[1];
}
});
$("[name='week']").css("min-width","50px");
$(".nav-link.active").trigger("click");
$('form').attr('autocomplete','off');
$( ".sortable" ).sortable({
stop: function(evt, ui) {
var k = 0;
var data = [];
$(".sortable > *").each(function(){
//console.log($(this).attr("id2"));
data.push([k,$(this).attr("id2")]);
k++;
});
data = JSON.stringify(data);
console.log(data);
$.post("{{url('admin-ajax/content-sort')}}",{
data : data,
_token : "{{ csrf_token() }}"
});
}
});
$( ".draggable" ).draggable();
$( "ul, li" ).disableSelection();
} );
</script>
<script>jQuery(function(){ Codebase.helpers('magnific-popup','notify','datepicker', 'colorpicker', 'maxlength', 'select2', 'masked-inputs', 'rangeslider', 'tags-inputs'); });</script>
<script type="text/javascript">
$(document).ready(function() {
//$('.table').DataTable();
@if (\Session::has('mesaj'))
Codebase.helpers('notify', {
align: 'center', // 'right', 'left', 'center'
from: 'bottom', // 'top', 'bottom'
type: 'info', // 'info', 'success', 'warning', 'danger'
icon: 'fa fa-info mr-5', // Icon class
message: '{!! __(\Session::get('mesaj')) !!}'
});
@endif
@if (\Session::has('hata'))
Codebase.helpers('notify', {
align: 'center', // 'right', 'left', 'center'
from: 'bottom', // 'top', 'bottom'
type: 'danger', // 'info', 'success', 'warning', 'danger'
icon: 'fa fa-info mr-5', // Icon class
message: "{!! __(\Session::get('hata')) !!}"
});
@endif
$('#summernote,.editor').summernote({
height: 200,
width:800
});
function trigger() {
$(".ajax_modal").unbind();
$(".ajax_modal").on("click",function(){
$("#modal-popin .modal-dialog").addClass("modal-lg");
$("#modal-popin .block-title").html($(this).attr("title"));
$("#modal-popin .block-content").html("{{e2("Yükleniyor...")}}").load($(this).attr("href"));
$(".modal-footer").hide();
$("#modal-popin").modal();
return false;
});
$("[teyit]").unbind();
$("[teyit]").on("click",function(){
$("#modal-popin .block-title").html($(this).attr("title"));
$("#modal-popin .block-content").html($(this).attr("teyit"));
$("#modal-popin .modal-dialog").removeClass("modal-lg");
$(".modal-footer").show();
var ajax = $(this).attr("ajax");
var url = $(this).attr("href");
if(ajax==undefined) {
$("#modal-popin .tamam").prop("href",url).removeAttr("data-dismiss");
} else {
console.log(ajax);
$("#modal-popin .tamam").unbind();
$("#modal-popin .tamam").on("click",function(){
$(ajax).fadeOut();
$.get(url,function(){
});
});
}
$("#modal-popin").modal();
return false;
});
}
trigger();
/*
$("[ajax]").on("click",function(){
var yer = $(this).attr("ajax");
$(yer).html("{{e2("Yükleniyor...")}}").load($(this).href("href"));
return false;
});
*/
/*
$("[data-ajax]").each(function(){
var ajax = $(this).attr("data-ajax");
// alert(ajax);
if(ajax!="") {
$(this).load("{{e2("Loading")}}").load("?ajax2="+ajax);
}
});
*/
$(".yayinla").on("click",function(){
var y;
if($(this).is(":checked")) {
y=1;
} else {
y=0;
}
var bu = $(this);
bu.prop("disabled",true);
$.post("{{ url('admin-ajax/input-edit') }}",{
table : "contents",
value : y,
_token : "{{ csrf_token() }}",
id : bu.attr("id"),
name : "y"
},function(){
bu.prop("disabled",false);
});
});
$(".edit").on("blur",function(){
var bu = $(this);
bu.prop("disabled",true);
$.post("{{ url('admin-ajax/input-edit') }}",{
table : bu.attr("table"),
key : bu.attr("key"),
value : bu.val(),
_token : "{{ csrf_token() }}",
id : bu.attr("data-id"),
name : bu.attr("name")
},function(){
bu.prop("disabled",false);
});
});
$(".tags").tagsInput();
$(".select2").select2({
tags: true
});
/*
$("form").on("submit",function(event){
// Codebase.layout('header_loader_on')
$(this).find(":submit").html("{{__('Processing...')}}").prop("disabled",true);
});
*/
$(".ajax-form").on("submit", "form", function(event)
{
alert("ok");
event.preventDefault();
var url=$(this).attr("action");
$.ajax({
url: url,
type: $(this).attr("method"),
dataType: "JSON",
data: new FormData(this),
processData: false,
contentType: false,
success: function (data, status)
{
},
error: function (xhr, desc, err)
{
}
});
});
/*
$(".btn")
.addClass("btn-noborder")
.addClass("btn-rounded");
*/
$(".input-group-append .btn, .input-group-prepend .btn")
.removeClass("btn-noborder")
.removeClass("btn-rounded");
function loadDoc(url, cFunction) {
var xhttp;
xhttp=new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
$("body").html(xhttp.responseText);
window.history.pushState('url',Math.random() , url);
cFunction(this);
}
};
xhttp.open("GET", url, true);
xhttp.send();
}
$("a").on("click",function(){
/*
loadDoc($(this).attr("href"),sonuc);
return false;
*/
});
function sonuc() {
console.log("sonuc");
}
});
</script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/html2canvas/1.4.1/html2canvas.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/cropperjs/1.5.13/cropper.min.js"></script>
<link href="https://cdnjs.cloudflare.com/ajax/libs/cropperjs/1.5.13/cropper.min.css" rel="stylesheet" />
<script>
document.addEventListener('DOMContentLoaded', function () {
const openFeedbackBtn = document.getElementById('openFeedback');
const screenshotInput = document.getElementById('screenshotInput');
const screenshotPreview = document.getElementById('screenshotPreview');
const overlay = document.getElementById('screenshotOverlay');
const overlayPreview = document.getElementById('overlayPreview');
const useCroppedBtn = document.getElementById('useCropped');
const cancelCropBtn = document.getElementById('cancelCrop');
const sendFeedbackBtn = document.getElementById('sendFeedback');
let cropper = null;
let lastScreenshot = null;
// Take Screenshot
if (openFeedbackBtn) {
openFeedbackBtn.addEventListener('click', async (e) => {
e.preventDefault();
try {
if (cropper) cropper.destroy();
const target = document.querySelector('#main-content') || document.body;
// Create screenshot
const canvas = await html2canvas(target, {
backgroundColor: "#fff",
scale: 0.8,
useCORS: true
});
// Convert to base64 JPEG
const dataUrl = canvas.toDataURL("image/jpeg", 0.8);
lastScreenshot = dataUrl;
// Show crop overlay
overlay.style.display = "block";
overlayPreview.innerHTML = `<img id="cropImage" src="${dataUrl}" style="max-width:100%;" />`;
const cropImage = document.getElementById("cropImage");
// Initialize CropperJS
cropper = new Cropper(cropImage, {
aspectRatio: NaN,
viewMode: 1,
background: false,
autoCrop: false,
autoCropArea: 0,
ready() {
cropper.clear();
}
});
} catch (err) {
Swal.fire("Error", "Screenshot error: " + err.message, "error");
}
});
}
// Use cropped image
useCroppedBtn.addEventListener('click', function () {
let finalImage = lastScreenshot;
if (cropper) {
finalImage = cropper.getCroppedCanvas().toDataURL("image/jpeg", 0.8);
}
screenshotInput.value = finalImage;
screenshotPreview.innerHTML = `<img src="${finalImage}" style="max-width:100%;border:1px solid #ccc" />`;
overlay.style.display = "none";
$('#feedbackModal').modal('show');
});
// Cancel crop
cancelCropBtn.addEventListener('click', function () {
overlay.style.display = "none";
if (cropper) cropper.destroy();
});
// Send Feedback
if (sendFeedbackBtn) {
sendFeedbackBtn.addEventListener('click', () => {
const form = document.getElementById('feedbackForm');
const formData = new FormData(form);
fetch('?ajax=save-feedback', {
method: 'POST',
headers: {
'X-CSRF-TOKEN': document
.querySelector('meta[name="csrf-token"]')
.getAttribute('content')
},
body: formData
})
.then(res => res.json())
.then(data => {
if (data.status === "success") {
const badge = document.getElementById('feedback-badge');
if (badge) {
let currentText = badge.textContent || badge.innerText || '0';
let count = parseInt(currentText.trim());
if(isNaN(count)) count = 0;
badge.textContent = count + 1;
badge.style.display = 'inline-block';
} else if (typeof $ !== 'undefined') {
let $badge = $('#feedback-badge');
if($badge.length) {
let count = parseInt($badge.text().trim()) || 0;
$badge.text(count + 1).show().css('display', 'inline-block');
}
}
Swal.fire({
icon: 'success',
title: 'Success!',
text: data.message
}).then(() => {
$('#feedbackModal').modal('hide');
form.reset();
screenshotPreview.innerHTML = "";
});
} else {
Swal.fire("Error", data.message, "error");
}
})
.catch(err => Swal.fire("Error", err.message, "error"));
});
}
});
</script>
@@ -0,0 +1,27 @@
<div class="content-side">
<div class="block pull-r-l">
<div class="block-header bg-body-light">
<h3 class="block-title">
<i class="fas fa-user-edit mr-5"></i>
{{__('Profile Settings')}}
</h3>
<div class="block-options">
<button type="button" class="btn-block-option" data-toggle="block-option" data-action="content_toggle"><i class="si si-arrow-up"></i></button>
</div>
</div>
<div class="block-content block-content-full text-center bg-body-light">
<img class="" src="{{asset('assets/logo.svg')}}" alt="">
<div class="mt-10 font-w600">{{ Auth::user()->name }} {{ Auth::user()->surname }}</div>
<div class="pt-10">
<span class="badge badge-success">{{ Auth::user()->level }}</span>
<span class="badge badge-info">{{ Auth::user()->subcontructer }}</span>
</div>
</div>
@include("admin.inc.profile-info")
<div class="block-content block-content-full">
<a class="btn btn-block btn-alt-danger" href="{{url('logout')}}">
<i class="si si-logout mr-5"></i> {{__('Sign Out')}}
</a>
</div>
</div>
</div>
@@ -0,0 +1,236 @@
<div class="block">
<div class="block-header block-header-default">
<h3 class="block-title">{{$c->title}} {{__('Contents')}}</h3>
<div class="block-options">
<div class="block-options-item">
<a href="{{ url('admin/contents/'. $c->slug.'/add') }}" class="btn-block-option"><i class="fa fa-plus"></i></a>
</div>
</div>
</div>
<div class="block-content">
<div class="js-gallery ">
<div class="table-responsive">
<a name="alt"></a>
<table class="table table-striped table-hover table-bordered table-vcenter">
<thead>
<tr>
<th class="text-center" style="width: 50px;">{{__("Cover")}}</th>
<th>{{__("Title")}}</th>
<th>{{__("ID")}}</th>
<th>{{__("Category")}}</th>
<th class="d-none d-sm-table-cell" style="width: 15%;">{{__("Type")}}</th>
<th class="d-none d-sm-table-cell" style="width: 15%;">{{__("Columns")}}</th>
<th>{{__("Status")}}</th>
<th>{{__("Order")}}</th>
<th class="text-center" style="width: 100px;">{{__("Transactions")}}</th>
</tr>
</thead>
<tbody>
<?php if($alt->count()==0) {
?>
<script>
$(function(){
$('.ana-icerik').removeClass("hidden");
});
</script>
<?php
} ?>
@foreach($alt AS $a)
<tr class="" id="t{{$a->id}}">
<th class="text-center cover" scope="row">
@if($a->cover!='')
<a href="{{url('cache/large/'.$a->cover)}}" class="img-link img-link-zoom-in img-thumb img-lightbox" target="_blank" >
<img src="{{url('cache/small/'.$a->cover)}}" alt="" />
</a>
<hr />
@endif
<div class="btn-group">
<button type="button" class="btn btn-secondary btn-sm" onclick="$('#c{{$a->id}}').trigger('click');" title="{{__('Resim Yükle')}}"><i class="fa fa-upload"></i></button>
@if($a->cover!='')
<a teyit="{{__('Resmi kaldırmak istediğinizden emin misiniz')}}" title="Resmi kaldır" href="{{url('admin-ajax/cover-delete?id='.$a->id)}}" class="btn btn-secondary btn-sm "><i class="fa fa-times"></i></a>
<a title="{{__('Resmi indir')}}" href="{{url('cache/download/'.$a->cover)}}" class="btn btn-secondary btn-sm"><i class="fa fa-download"></i></a>
@endif
</div>
<form action="{{url('admin-ajax/cover-upload')}}" id="f{{$a->id}}" class="hidden-upload" enctype="multipart/form-data" method="post">
<input type="file" name="cover" id="c{{$a->id}}" onchange="$('#f{{$a->id}}').submit();" required />
<input type="hidden" name="id" value="{{$a->id}}" />
<input type="hidden" name="slug" value="{{$a->slug}}" />
{{csrf_field()}}
</form>
</th>
<td><input type="text" name="title" value="{{$a->title}}" table="contents"data-id="{{$a->id}}" class="title{{$a->id}} form-control edit" /></td>
<td>
<div class="input-group">
<div class="input-group-prepend">
<div class="btn btn-default" onclick="$.get('{{url('admin-ajax/slug?title='.$a->breadcrumb)}}'+encodeURI($('.title{{$a->id}}').val()),function(d){
$('.slug{{$a->id}}').val(d).blur();
})"><i class="si si-refresh"></i></div>
</div>
<input type="text" name="slug" value="{{$a->slug}}" table="contents"data-id="{{$a->id}}" class="slug{{$a->id}} form-control edit" />
</div>
</td>
<td><input type="text" name="kid" value="{{$a->kid}}" table="contents" data-id="{{$a->id}}" class="form-control edit" /></td>
<td class="d-none d-sm-table-cell">
<select name="type" data-id="{{$a->id}}" class="form-control edit" table="contents" >
@foreach(@$types AS $t)
<option value="{{$t->title}}" @if($t->title==$a->type) selected @endif>{{$t->title}}</option>
@endforeach
</select>
</td>
<td>
<input type="text" name="fields" value="{{$a->fields}}" table="contents" data-id="{{$a->id}}" class="form-control edit" />
</td>
<td>
<select name="y" data-id="{{$a->id}}" class="form-control edit" table="contents" >
<option value="0" @if($a->y==0) selected @endif>{{__("Disabled")}}</option>
<option value="1" @if($a->y==1) selected @endif>{{__("Enabled")}}</option>
</select>
</td>
<td><input type="number" name="s" value="{{$a->s}}" table="contents" data-id="{{$a->id}}" class="form-control edit" /></td>
<td class="text-center">
<div class="btn-group">
<a href="{{ url('admin/contents/'. $a->id) }}" class="btn btn-secondary js-tooltip-enabled" data-toggle="tooltip" title="" data-original-title="Edit">
<i class="fa fa-edit"></i>
</a>
<?php if($a->slug!="") { ?>
<a title="{{$a->title}} preview its content" href="{{ url($a->slug) }}" target="_blank" class="btn btn-secondary js-tooltip-enabled d-none" data-toggle="tooltip" title="" data-original-title="Edit">
<i class="fa fa-eye"></i>
</a>
<?php } ?>
<a href="{{ url('admin/contents/'. $a->id .'/delete') }}" ajax="#t{{$a->id}}" teyit="{{$a->title}} Are you sure you want to delete its content?" title="{{$a->title}} {{__('To be deleted!')}}" class=" btn btn-secondary js-tooltip-enabled" data-toggle="tooltip" title="" data-original-title="Delete">
<i class="fa fa-times"></i>
</a>
</div>
</td>
</tr>
@endforeach
</tbody>
</table>
{{$alt->fragment('alt')->links() }}
</div>
</div>
</div>
</div>
@@ -0,0 +1,199 @@
<div class="block-content">
<div class="table-responsive">
<?php if(count($query['col'])>0) { ?>
<table class="table table-striped table-bordered table-hover">
<thead>
<?php if(in_array("setupTime",$query['col'])) { ?>
<tr>
<td></td>
<th colspan="2" class="text-center" width="20%"><?php e2("Rüst") ?></th>
<th colspan="2" class="text-center" width="20%"><?php e2("Ausfallzeiten") ?></th>
<td colspan="2"></td>
</tr>
<?php } ?>
<tr>
<?php foreach($query['col'] AS $a) {
if($a!="id") {
if($a=="setupTime" || $a=="downTime") {
$a = "Von";
}
?>
<th class="text-center">{{e2($a)}}</th>
<?php } ?>
<?php } ?>
<th>{{e2("Process")}}</th>
</tr>
</thead>
<tbody>
<?php foreach($query['row'] AS $r) {
$id = $r->id;
unset($r->id);
$class="";
if(isset($r->setupTime)) {
if($r->setupTime!="") {
$class="table-success";
} else {
$class="table-danger";
}
}
?>
<tr id="t{{$id}}" class="{{$class}}">
<?php
foreach($r AS $a) { ?>
<td>{{$a}}</td>
<?php } ?>
<td><a href="{{url('admin-ajax/delete-row?id='.$id.'&table='.$query['table'])}}" teyit="{{e2("Are you sure delete this item?")}}" ajax="#t{{$id}}" class="btn btn-primary"><i class="fa fa-times"></i></a></td>
</tr>
<?php } ?>
</tbody>
</table>
{{$query['links']}}
<?php } else {
bilgi("No results found");
} ?>
</div>
</div>
<script type="text/javascript">
$(function(){
$("[rel='next'],[rel='prev']").on("click",function(){
var parent = $(this).parent().parent().parent().parent().parent().parent();
var ajax = parent.attr("ajax2");
var url = $(this).attr("href").split("?");
console.log(url);
if(ajax!=undefined) {
console.log(ajax);
parent.load("{{url('admin?ajax2=')}}"+ajax+"&"+url[1]);
}
return false;
});
$("[teyit]").on("click",function(){
$("#modal-popin .block-title").html($(this).attr("title"));
$("#modal-popin .block-content").html($(this).attr("teyit"));
$("#modal-popin .modal-dialog").removeClass("modal-lg");
$(".modal-footer").show();
var ajax = $(this).attr("ajax");
var url = $(this).attr("href");
if(ajax==undefined) {
$("#modal-popin .tamam").prop("href",url).removeAttr("data-dismiss");
} else {
console.log(ajax);
$("#modal-popin .tamam").on("click",function(){
$(ajax).fadeOut();
$.get(url,function(){
});
});
}
$("#modal-popin").modal();
return false;
});
});
</script>
@@ -0,0 +1,29 @@
<div class="row">
<div class="col-2">
<?php $dizi = array(5,10,15,20,25,30,50,100) ?>
<select onchange="location.href='?m='+$(this).val();" name="" id="" class="form-control ">
<?php foreach($dizi AS $d) { ?>
<option value="<?php echo $d ?>" <?php if($miktar==$d) echo("selected"); ?>>{{__('On every page')}} <?php echo $d ?> {{__('Row')}}</option>
<?php } ?>
</select>
</div>
<div class="col-md-3 ml-auto">
<form action="" method="get">
<input type="text" name="q" id="" placeholder="Search..." value="<?php echo get("q") ?>" class="form-control" />
</form>
</div>
</div>
<br />
@@ -0,0 +1,41 @@
<?php use App\Translate ?><div class="block ">
<div class="block-header block-header-default">
<h3 class="block-title">{{__('Çeviriler')}}</h3>
<div class="block-options">
<button type="button" class="btn-block-option" onclick="$('.ceviriler').toggleClass('hidden');">
<i class="si si-eye"></i>
</button>
</div>
</div>
<div class="block-content block-content-full ceviriler">
<?php $diller = explode(",",__('Diller')); foreach($diller AS $d) { ?>
<?php $ceviri = Translate::where("dil",$d)->where("kr",md5($c->html))->first();
if(!$ceviri) {
$tr = new Translate;
$tr->icerik = $c->html;
$tr->kr = md5($c->html);
$tr->dil = $d;
$tr->ceviri = $c->html;