feat: implement admin dashboard UI and utility functions for plugin management
This commit is contained in:
@@ -11,6 +11,8 @@ use Illuminate\Support\Facades\Auth;
|
||||
use Illuminate\Support\Facades\Hash;
|
||||
use Illuminate\Support\Facades\Mail;
|
||||
use Illuminate\Support\Facades\App;
|
||||
use App\Fields;
|
||||
|
||||
|
||||
|
||||
function differentValues($dizi)
|
||||
@@ -1529,12 +1531,13 @@ function diger_ayarlar()
|
||||
|
||||
}
|
||||
|
||||
function fields()
|
||||
function fields($content_type = [])
|
||||
{
|
||||
$fields = Fields::get();
|
||||
$fields = json_decode($fields, true);
|
||||
$fields2 = array();
|
||||
foreach (@$fields as $r) {
|
||||
|
||||
if (in_array($r['title'], $content_type)) {
|
||||
$fields2[$r['title']] = array(
|
||||
"values" => explode(",", $r['values']),
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
.table-sm td, .table-sm th {
|
||||
.table-sm td,
|
||||
.table-sm th {
|
||||
padding: 2px;
|
||||
text-align: left;
|
||||
white-space: nowrap;
|
||||
@@ -6,75 +7,93 @@
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
|
||||
.table-sm input, .table-sm select, .table-sm .select2-selection {
|
||||
.table-sm input,
|
||||
.table-sm select,
|
||||
.table-sm .select2-selection {
|
||||
padding: 0px 10px;
|
||||
height:30px;
|
||||
border:none;
|
||||
height: 30px;
|
||||
border: none;
|
||||
background: transparent;
|
||||
}
|
||||
|
||||
.table-sm .select2 {
|
||||
min-width:200px;
|
||||
min-width: 200px;
|
||||
}
|
||||
|
||||
.table-sm td {
|
||||
min-width:10%;
|
||||
min-width: 10%;
|
||||
}
|
||||
|
||||
.sidebar-inverse #sidebar img {
|
||||
filter: contrast(0) brightness(2);
|
||||
}
|
||||
|
||||
.sidebar-inverse #sidebar input {
|
||||
|
||||
background:transparent;
|
||||
background: transparent;
|
||||
|
||||
margin-bottom:10px;
|
||||
margin-bottom: 10px;
|
||||
|
||||
color: white;
|
||||
color: white;
|
||||
}
|
||||
|
||||
.sidebar-inverse i img {
|
||||
filter: invert(1) !important;
|
||||
width: 33px;
|
||||
}
|
||||
.table-sm td:hover{
|
||||
|
||||
.table-sm td:hover {
|
||||
/*min-width: 200px;*/
|
||||
overflow:none !important;
|
||||
overflow: none !important;
|
||||
}
|
||||
|
||||
.rc-handle:hover {
|
||||
background: #e0e0e0;
|
||||
width: 5px;
|
||||
margin-left: -2px;
|
||||
}
|
||||
|
||||
.table-responsive {
|
||||
min-height:500px
|
||||
min-height: 500px
|
||||
}
|
||||
|
||||
.table-sm .dropdown-item input {
|
||||
height:initial;
|
||||
height: initial;
|
||||
}
|
||||
|
||||
.table-sm .dropdown-item {
|
||||
font-size: 11px;
|
||||
padding:3px
|
||||
padding: 3px
|
||||
}
|
||||
|
||||
.table-sm .dropdown-toggle {
|
||||
background: none;
|
||||
}
|
||||
|
||||
.table-sm .dropdown-menu {
|
||||
max-height: 226px;
|
||||
overflow: auto;
|
||||
}
|
||||
|
||||
.data-tables input, .data-tables select, .data-tables .select2-selection {
|
||||
.data-tables input,
|
||||
.data-tables select,
|
||||
.data-tables .select2-selection {
|
||||
padding: 0px 10px;
|
||||
height:30px;
|
||||
border:none;
|
||||
height: 30px;
|
||||
border: none;
|
||||
background: transparent;
|
||||
}
|
||||
|
||||
.data-tables td, .data-tables th {
|
||||
.data-tables td,
|
||||
.data-tables th {
|
||||
padding: 2px;
|
||||
text-align: center;
|
||||
white-space: nowrap;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
|
||||
.new-form td, .new-form th {
|
||||
.new-form td,
|
||||
.new-form th {
|
||||
padding: 2px;
|
||||
text-align: center;
|
||||
white-space: nowrap;
|
||||
@@ -82,29 +101,34 @@ color: white;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
|
||||
.new-form input, .new-form select, .new-form .select2-selection {
|
||||
.new-form input,
|
||||
.new-form select,
|
||||
.new-form .select2-selection {
|
||||
padding: 0px 10px;
|
||||
height:30px;
|
||||
height: 30px;
|
||||
|
||||
}
|
||||
|
||||
.new-form .select2 {
|
||||
min-width:200px;
|
||||
}
|
||||
.new-form td {
|
||||
min-width:10%;
|
||||
min-width: 200px;
|
||||
}
|
||||
|
||||
.new-form td:hover{
|
||||
.new-form td {
|
||||
min-width: 10%;
|
||||
}
|
||||
|
||||
.new-form td:hover {
|
||||
/*min-width: 200px;*/
|
||||
overflow:none !important;
|
||||
overflow: none !important;
|
||||
}
|
||||
|
||||
.new-form .dropdown-item input {
|
||||
height:initial;
|
||||
height: initial;
|
||||
}
|
||||
|
||||
.new-form .dropdown-item {
|
||||
font-size: 11px;
|
||||
padding:3px
|
||||
padding: 3px
|
||||
}
|
||||
|
||||
.new-form .dropdown-menu {
|
||||
@@ -116,12 +140,13 @@ color: white;
|
||||
height: 30px;
|
||||
}
|
||||
|
||||
table .filter-list > button {
|
||||
table .filter-list>button {
|
||||
padding: 3px;
|
||||
height: 12px;
|
||||
}
|
||||
table .filter-list > button:after {
|
||||
margin:0px;
|
||||
|
||||
table .filter-list>button:after {
|
||||
margin: 0px;
|
||||
vertical-align: text-top;
|
||||
margin-top: 1px;
|
||||
}
|
||||
@@ -131,42 +156,56 @@ table .filter-list > button:after {
|
||||
height: 150px;
|
||||
overflow: auto;
|
||||
}
|
||||
|
||||
.filter-list {
|
||||
position:absolute;
|
||||
top:3px;
|
||||
right:3px;
|
||||
position: absolute;
|
||||
top: 3px;
|
||||
right: 3px;
|
||||
z-index: 1000;
|
||||
}
|
||||
.filter-list > button {
|
||||
|
||||
.filter-list>button {
|
||||
background: white !important;
|
||||
}
|
||||
|
||||
.table-sm thead th {
|
||||
position:relative;
|
||||
position: relative;
|
||||
}
|
||||
.dx-datagrid td, .table-bordered, .table-bordered td, .table-bordered th {
|
||||
|
||||
.dx-datagrid td,
|
||||
.table-bordered,
|
||||
.table-bordered td,
|
||||
.table-bordered th {
|
||||
border-color: #a4a3a3 !important;
|
||||
}
|
||||
|
||||
.sub-menu-text {
|
||||
position: relative;
|
||||
left: 40px;
|
||||
}
|
||||
|
||||
.sub-menu-icon {
|
||||
width: 22px !important;
|
||||
}
|
||||
|
||||
.tab-pane {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.tab-pane.active {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.tab-pane.active .select2-container {
|
||||
width: 100% !important;
|
||||
}
|
||||
|
||||
.modal-content {
|
||||
border-radius: 15px;
|
||||
border: none; /* Optional: Cleaner look */
|
||||
border: none;
|
||||
/* Optional: Cleaner look */
|
||||
}
|
||||
|
||||
.modal-header {
|
||||
border-radius: 15px 15px 0 0;
|
||||
}
|
||||
@@ -177,7 +216,8 @@ table .filter-list > button:after {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
gap: 0.5rem; /* Space between icon and text */
|
||||
gap: 0.5rem;
|
||||
/* Space between icon and text */
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
@@ -185,12 +225,22 @@ table .filter-list > button:after {
|
||||
.btn .material-icons,
|
||||
.btn .material-symbols-outlined,
|
||||
.btn svg {
|
||||
font-size: 1.1em; /* Slightly larger icons usually look better */
|
||||
font-size: 1.1em;
|
||||
/* Slightly larger icons usually look better */
|
||||
line-height: 1;
|
||||
margin: 0; /* Reset margins */
|
||||
margin: 0;
|
||||
/* Reset margins */
|
||||
}
|
||||
|
||||
/* Reset existing specific fix to rely on flexbox */
|
||||
.btn .material-symbols-outlined {
|
||||
top: 0;
|
||||
}
|
||||
|
||||
.content-header .btn {
|
||||
color: white;
|
||||
}
|
||||
|
||||
.content-header .btn:hover {
|
||||
color: black;
|
||||
}
|
||||
@@ -1,7 +1,9 @@
|
||||
<!-- 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 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') }}">
|
||||
@@ -10,25 +12,33 @@
|
||||
<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"
|
||||
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/citrus-core.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" id="css-main" href="{{ asset('assets/admin/css/citrus.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/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" />
|
||||
<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 {
|
||||
.fa,
|
||||
.fas,
|
||||
.far,
|
||||
.fab {
|
||||
font-family: "Font Awesome 6 Free", "Font Awesome 6 Brands", sans-serif;
|
||||
}
|
||||
|
||||
@@ -45,7 +55,9 @@
|
||||
.fa-envelope-o:before,
|
||||
.fa-folder-o:before,
|
||||
.fa-folder-open-o:before,
|
||||
.fa-hdd-{}o:before,
|
||||
.fa-hdd- {}
|
||||
|
||||
o:before,
|
||||
.fa-keyboard-o:before,
|
||||
.fa-lemon-o:before,
|
||||
.fa-lightbulb-o:before,
|
||||
@@ -73,23 +85,28 @@
|
||||
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>
|
||||
<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/citrus-core.core.min.js') }}"></script>
|
||||
|
||||
<script src="{{ asset('assets/admin/js/pelinom6.app.min.js') }}"></script>
|
||||
<script src="{{ asset('assets/admin/js/citrus-core.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="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>
|
||||
|
||||
@@ -108,7 +125,7 @@
|
||||
</script>
|
||||
-->
|
||||
|
||||
<link href="https://cdn.datatables.net/v/bs4/dt-1.13.4/datatables.min.css" rel="stylesheet"/>
|
||||
<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>
|
||||
|
||||
@@ -121,7 +138,8 @@
|
||||
<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>
|
||||
<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>
|
||||
@@ -143,16 +161,16 @@ use the latest version -->
|
||||
|
||||
|
||||
<script>
|
||||
function ExportToExcel(type, fn, dl) {
|
||||
function ExportToExcel(type, fn, dl) {
|
||||
var elt = document.getElementById('excel');
|
||||
window.setTimeout(function(){
|
||||
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>
|
||||
|
||||
|
||||
@@ -182,15 +200,17 @@ function ExportToExcel(type, fn, dl) {
|
||||
<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>
|
||||
<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">
|
||||
<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>
|
||||
<!-- 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 = {
|
||||
@@ -198,7 +218,7 @@ function ExportToExcel(type, fn, dl) {
|
||||
var welder = text;
|
||||
var regex = /\[([A-Z0-9]+)\]/;
|
||||
var result = welder.match(regex);
|
||||
if(result) {
|
||||
if (result) {
|
||||
welder = result[1];
|
||||
}
|
||||
return welder;
|
||||
@@ -328,4 +348,4 @@ function ExportToExcel(type, fn, dl) {
|
||||
left: 0;
|
||||
right: -55.8px;
|
||||
}
|
||||
</style>
|
||||
</style>
|
||||
@@ -73,7 +73,7 @@
|
||||
<!-- Row #2 -->
|
||||
<div class="col-xl-4">
|
||||
<a class="block block-transparent bg-image d-flex align-items-stretch" href="javascript:void(0)"
|
||||
style="background-image: url('assets/media/photos/photo24@2x.jpg');">
|
||||
style="background-image: url('assets/admin/media/photos/photo24@2x.jpg');">
|
||||
<div class="block-content block-sticky-options pt-100 bg-black-op">
|
||||
<div class="block-options block-options-left text-white">
|
||||
<div class="block-options-item">
|
||||
@@ -95,7 +95,7 @@
|
||||
</div>
|
||||
<div class="col-sm-6 col-xl-4">
|
||||
<a class="block block-transparent bg-image d-flex align-items-stretch" href="javascript:void(0)"
|
||||
style="background-image: url('assets/media/photos/photo32@2x.jpg');">
|
||||
style="background-image: url('assets/admin/media/photos/photo32@2x.jpg');">
|
||||
<div class="block-content block-sticky-options pt-100 bg-primary-dark-op">
|
||||
<div class="block-options block-options-left text-white">
|
||||
<div class="block-options-item">
|
||||
@@ -117,7 +117,7 @@
|
||||
</div>
|
||||
<div class="col-sm-6 col-xl-4">
|
||||
<a class="block block-transparent bg-image d-flex align-items-stretch" href="javascript:void(0)"
|
||||
style="background-image: url('assets/media/photos/photo10@2x.jpg');">
|
||||
style="background-image: url('assets/admin/media/photos/photo10@2x.jpg');">
|
||||
<div class="block-content block-sticky-options pt-100 bg-primary-op">
|
||||
<div class="block-options block-options-left text-white">
|
||||
<div class="block-options-item">
|
||||
@@ -143,7 +143,7 @@
|
||||
<!-- Row #3 -->
|
||||
<div class="col-xl-8 d-flex align-items-stretch">
|
||||
<div class="block block-themed block-mode-loading-inverse block-transparent bg-image w-100"
|
||||
style="background-image: url('assets/media/photos/photo34@2x.jpg');">
|
||||
style="background-image: url('assets/admin/media/photos/photo34@2x.jpg');">
|
||||
<div class="block-header bg-black-op">
|
||||
<h3 class="block-title">
|
||||
Sales <small>This week</small>
|
||||
|
||||
Reference in New Issue
Block a user