Compare commits
No commits in common. "3c37c2b9037a206a6238a9de4b4c1a5bb6f48268" and "09b7c8cbe3468351dd9f29aef4ac85d66624f6c0" have entirely different histories.
3c37c2b903
...
09b7c8cbe3
|
@ -11,8 +11,6 @@ use Illuminate\Contracts\View\Factory;
|
||||||
use Illuminate\Contracts\View\View;
|
use Illuminate\Contracts\View\View;
|
||||||
use Illuminate\Foundation\Application;
|
use Illuminate\Foundation\Application;
|
||||||
use Illuminate\Http\RedirectResponse;
|
use Illuminate\Http\RedirectResponse;
|
||||||
use Illuminate\Support\Facades\Auth;
|
|
||||||
use Illuminate\Support\Facades\Log;
|
|
||||||
use Illuminate\Support\Str;
|
use Illuminate\Support\Str;
|
||||||
|
|
||||||
class FacultyController extends Controller
|
class FacultyController extends Controller
|
||||||
|
@ -49,10 +47,6 @@ class FacultyController extends Controller
|
||||||
$faculty->educational_institution_id = $validated['educational_institution_id'];
|
$faculty->educational_institution_id = $validated['educational_institution_id'];
|
||||||
$faculty->save();
|
$faculty->save();
|
||||||
|
|
||||||
Log::channel('app')
|
|
||||||
->info('CREATE факультет {faculty} - user {user}',
|
|
||||||
['user' => Auth::user()->name, 'faculty' => $faculty->name, 'data' => $validated]);
|
|
||||||
|
|
||||||
return redirect()->route('faculties.index');
|
return redirect()->route('faculties.index');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -70,28 +64,19 @@ class FacultyController extends Controller
|
||||||
public function update(UpdateFacultyRequest $request, Faculty $faculty): RedirectResponse
|
public function update(UpdateFacultyRequest $request, Faculty $faculty): RedirectResponse
|
||||||
{
|
{
|
||||||
$validated = $request->validated();
|
$validated = $request->validated();
|
||||||
$oldData = $faculty->toArray();
|
|
||||||
|
|
||||||
$faculty->name = $validated['name'];
|
$faculty->name = $validated['name'];
|
||||||
$faculty->description = $validated['description'];
|
$faculty->description = $validated['description'];
|
||||||
$faculty->position = $validated['position'];
|
$faculty->position = $validated['position'];
|
||||||
$faculty->slug = $validated['slug'];
|
$faculty->slug = $validated['slug'];
|
||||||
$faculty->educational_institution_id = $validated['educational_institution_id'];
|
$faculty->educational_institution_id = $validated['educational_institution_id'];
|
||||||
|
|
||||||
Log::channel('app')
|
|
||||||
->info('UPDATE факультет {faculty} - user {user}',
|
|
||||||
['user' => Auth::user()->name, 'faculty' => $faculty->name, 'oldData' => $oldData, 'newData' => $validated]);
|
|
||||||
|
|
||||||
$faculty->save();
|
$faculty->save();
|
||||||
|
|
||||||
return redirect()->route('faculties.index');
|
return redirect()->route('faculties.index');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function destroy(Faculty $faculty): RedirectResponse
|
public function destroy(Faculty $faculty): RedirectResponse
|
||||||
{
|
{
|
||||||
Log::channel('app')
|
|
||||||
->info('DELETE факультет {faculty} - user {user}',
|
|
||||||
['user' => Auth::user()->name, 'faculty' => $faculty->name, 'data' => $faculty->toArray()]);
|
|
||||||
|
|
||||||
if ($faculty->departments()->exists()) {
|
if ($faculty->departments()->exists()) {
|
||||||
return back();
|
return back();
|
||||||
}
|
}
|
||||||
|
|
|
@ -18,7 +18,7 @@ class StoreFacultyRequest extends FormRequest
|
||||||
'position' => 'required|int|numeric|max:255',
|
'position' => 'required|int|numeric|max:255',
|
||||||
'name' => 'required|string|max:255|unique:faculties,name',
|
'name' => 'required|string|max:255|unique:faculties,name',
|
||||||
'description' => 'nullable|string',
|
'description' => 'nullable|string',
|
||||||
'slug' => 'nullable|string|max:255|unique:faculties,slug',
|
'slug' => 'nullable|string|max:255',
|
||||||
'educational_institution_id' => 'required|int|numeric|max:1000'
|
'educational_institution_id' => 'required|int|numeric|max:1000'
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
|
@ -18,7 +18,6 @@
|
||||||
"laravel/ui": "^4.5.0",
|
"laravel/ui": "^4.5.0",
|
||||||
"laravelcollective/html": "^6.4.1",
|
"laravelcollective/html": "^6.4.1",
|
||||||
"league/flysystem": "^3.25.0",
|
"league/flysystem": "^3.25.0",
|
||||||
"rap2hpoutre/laravel-log-viewer": "^2.3",
|
|
||||||
"twbs/bootstrap": "5.2.3"
|
"twbs/bootstrap": "5.2.3"
|
||||||
},
|
},
|
||||||
"require-dev": {
|
"require-dev": {
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
||||||
"This file is @generated automatically"
|
"This file is @generated automatically"
|
||||||
],
|
],
|
||||||
"content-hash": "b08e2f37cdd3c92cbf32d616488c1231",
|
"content-hash": "a8ef8e1a8cc4569e75864f1e869dcb34",
|
||||||
"packages": [
|
"packages": [
|
||||||
{
|
{
|
||||||
"name": "brick/math",
|
"name": "brick/math",
|
||||||
|
@ -3435,69 +3435,6 @@
|
||||||
],
|
],
|
||||||
"time": "2023-11-08T05:53:05+00:00"
|
"time": "2023-11-08T05:53:05+00:00"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "rap2hpoutre/laravel-log-viewer",
|
|
||||||
"version": "v2.3.0",
|
|
||||||
"source": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://github.com/rap2hpoutre/laravel-log-viewer.git",
|
|
||||||
"reference": "c4148ec364d78be13eb2ab81ce860946bfd91c4c"
|
|
||||||
},
|
|
||||||
"dist": {
|
|
||||||
"type": "zip",
|
|
||||||
"url": "https://api.github.com/repos/rap2hpoutre/laravel-log-viewer/zipball/c4148ec364d78be13eb2ab81ce860946bfd91c4c",
|
|
||||||
"reference": "c4148ec364d78be13eb2ab81ce860946bfd91c4c",
|
|
||||||
"shasum": ""
|
|
||||||
},
|
|
||||||
"require": {
|
|
||||||
"illuminate/support": "4.2.*|5.*|^6.0|^7.0|^8.0|^9.0|^10.0",
|
|
||||||
"php": ">=5.4.0"
|
|
||||||
},
|
|
||||||
"require-dev": {
|
|
||||||
"orchestra/testbench": "3.7.*|^7.0",
|
|
||||||
"phpunit/phpunit": "^7|^9.5.10"
|
|
||||||
},
|
|
||||||
"type": "laravel-package",
|
|
||||||
"extra": {
|
|
||||||
"laravel": {
|
|
||||||
"providers": [
|
|
||||||
"Rap2hpoutre\\LaravelLogViewer\\LaravelLogViewerServiceProvider"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"autoload": {
|
|
||||||
"psr-0": {
|
|
||||||
"Rap2hpoutre\\LaravelLogViewer\\": "src/"
|
|
||||||
},
|
|
||||||
"classmap": [
|
|
||||||
"src/controllers"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"notification-url": "https://packagist.org/downloads/",
|
|
||||||
"license": [
|
|
||||||
"MIT"
|
|
||||||
],
|
|
||||||
"authors": [
|
|
||||||
{
|
|
||||||
"name": "rap2hpoutre",
|
|
||||||
"email": "raphaelht@gmail.com"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"description": "A Laravel log reader",
|
|
||||||
"keywords": [
|
|
||||||
"laravel",
|
|
||||||
"log",
|
|
||||||
"log-reader",
|
|
||||||
"log-viewer",
|
|
||||||
"logging",
|
|
||||||
"lumen"
|
|
||||||
],
|
|
||||||
"support": {
|
|
||||||
"issues": "https://github.com/rap2hpoutre/laravel-log-viewer/issues",
|
|
||||||
"source": "https://github.com/rap2hpoutre/laravel-log-viewer/tree/v2.3.0"
|
|
||||||
},
|
|
||||||
"time": "2023-02-15T07:36:34+00:00"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "symfony/console",
|
"name": "symfony/console",
|
||||||
"version": "v6.4.4",
|
"version": "v6.4.4",
|
||||||
|
|
|
@ -58,14 +58,6 @@ return [
|
||||||
'ignore_exceptions' => false,
|
'ignore_exceptions' => false,
|
||||||
],
|
],
|
||||||
|
|
||||||
'app' => [
|
|
||||||
'driver' => 'single',
|
|
||||||
'path' => storage_path('logs/app.log'),
|
|
||||||
'level' => env('LOG_LEVEL', 'debug'),
|
|
||||||
'replace_placeholders' => true,
|
|
||||||
],
|
|
||||||
|
|
||||||
|
|
||||||
'single' => [
|
'single' => [
|
||||||
'driver' => 'single',
|
'driver' => 'single',
|
||||||
'path' => storage_path('logs/laravel.log'),
|
'path' => storage_path('logs/laravel.log'),
|
||||||
|
|
|
@ -1,334 +0,0 @@
|
||||||
<!DOCTYPE html>
|
|
||||||
<html lang="en">
|
|
||||||
<head>
|
|
||||||
<meta charset="utf-8">
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
|
||||||
<meta name="robots" content="noindex, nofollow">
|
|
||||||
<title>Laravel log viewer</title>
|
|
||||||
<link rel="stylesheet"
|
|
||||||
href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css"
|
|
||||||
integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm"
|
|
||||||
crossorigin="anonymous">
|
|
||||||
<link rel="stylesheet" type="text/css" href="https://cdn.datatables.net/1.10.16/css/dataTables.bootstrap4.min.css">
|
|
||||||
<style>
|
|
||||||
body {
|
|
||||||
padding: 25px;
|
|
||||||
}
|
|
||||||
|
|
||||||
h1 {
|
|
||||||
font-size: 1.5em;
|
|
||||||
margin-top: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
#table-log {
|
|
||||||
font-size: 0.85rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
.sidebar {
|
|
||||||
font-size: 0.85rem;
|
|
||||||
line-height: 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
.btn {
|
|
||||||
font-size: 0.7rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
.stack {
|
|
||||||
font-size: 0.85em;
|
|
||||||
}
|
|
||||||
|
|
||||||
.date {
|
|
||||||
min-width: 75px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.text {
|
|
||||||
word-break: break-all;
|
|
||||||
}
|
|
||||||
|
|
||||||
a.llv-active {
|
|
||||||
z-index: 2;
|
|
||||||
background-color: #f5f5f5;
|
|
||||||
border-color: #777;
|
|
||||||
}
|
|
||||||
|
|
||||||
.list-group-item {
|
|
||||||
word-break: break-word;
|
|
||||||
}
|
|
||||||
|
|
||||||
.folder {
|
|
||||||
padding-top: 15px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.div-scroll {
|
|
||||||
height: 80vh;
|
|
||||||
overflow: hidden auto;
|
|
||||||
}
|
|
||||||
.nowrap {
|
|
||||||
white-space: nowrap;
|
|
||||||
}
|
|
||||||
.list-group {
|
|
||||||
padding: 5px;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* DARK MODE CSS
|
|
||||||
*/
|
|
||||||
|
|
||||||
body[data-theme="dark"] {
|
|
||||||
background-color: #151515;
|
|
||||||
color: #cccccc;
|
|
||||||
}
|
|
||||||
|
|
||||||
[data-theme="dark"] a {
|
|
||||||
color: #4da3ff;
|
|
||||||
}
|
|
||||||
|
|
||||||
[data-theme="dark"] a:hover {
|
|
||||||
color: #a8d2ff;
|
|
||||||
}
|
|
||||||
|
|
||||||
[data-theme="dark"] .list-group-item {
|
|
||||||
background-color: #1d1d1d;
|
|
||||||
border-color: #444;
|
|
||||||
}
|
|
||||||
|
|
||||||
[data-theme="dark"] a.llv-active {
|
|
||||||
background-color: #0468d2;
|
|
||||||
border-color: rgba(255, 255, 255, 0.125);
|
|
||||||
color: #ffffff;
|
|
||||||
}
|
|
||||||
|
|
||||||
[data-theme="dark"] a.list-group-item:focus, [data-theme="dark"] a.list-group-item:hover {
|
|
||||||
background-color: #273a4e;
|
|
||||||
border-color: rgba(255, 255, 255, 0.125);
|
|
||||||
color: #ffffff;
|
|
||||||
}
|
|
||||||
|
|
||||||
[data-theme="dark"] .table td, [data-theme="dark"] .table th,[data-theme="dark"] .table thead th {
|
|
||||||
border-color:#616161;
|
|
||||||
}
|
|
||||||
|
|
||||||
[data-theme="dark"] .page-item.disabled .page-link {
|
|
||||||
color: #8a8a8a;
|
|
||||||
background-color: #151515;
|
|
||||||
border-color: #5a5a5a;
|
|
||||||
}
|
|
||||||
|
|
||||||
[data-theme="dark"] .page-link {
|
|
||||||
background-color: #151515;
|
|
||||||
border-color: #5a5a5a;
|
|
||||||
}
|
|
||||||
|
|
||||||
[data-theme="dark"] .page-item.active .page-link {
|
|
||||||
color: #fff;
|
|
||||||
background-color: #0568d2;
|
|
||||||
border-color: #007bff;
|
|
||||||
}
|
|
||||||
|
|
||||||
[data-theme="dark"] .page-link:hover {
|
|
||||||
color: #ffffff;
|
|
||||||
background-color: #0051a9;
|
|
||||||
border-color: #0568d2;
|
|
||||||
}
|
|
||||||
|
|
||||||
[data-theme="dark"] .form-control {
|
|
||||||
border: 1px solid #464646;
|
|
||||||
background-color: #151515;
|
|
||||||
color: #bfbfbf;
|
|
||||||
}
|
|
||||||
|
|
||||||
[data-theme="dark"] .form-control:focus {
|
|
||||||
color: #bfbfbf;
|
|
||||||
background-color: #212121;
|
|
||||||
border-color: #4a4a4a;
|
|
||||||
}
|
|
||||||
|
|
||||||
</style>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
function initTheme() {
|
|
||||||
const darkThemeSelected =
|
|
||||||
localStorage.getItem('darkSwitch') !== null &&
|
|
||||||
localStorage.getItem('darkSwitch') === 'dark';
|
|
||||||
darkSwitch.checked = darkThemeSelected;
|
|
||||||
darkThemeSelected ? document.body.setAttribute('data-theme', 'dark') :
|
|
||||||
document.body.removeAttribute('data-theme');
|
|
||||||
}
|
|
||||||
|
|
||||||
function resetTheme() {
|
|
||||||
if (darkSwitch.checked) {
|
|
||||||
document.body.setAttribute('data-theme', 'dark');
|
|
||||||
localStorage.setItem('darkSwitch', 'dark');
|
|
||||||
} else {
|
|
||||||
document.body.removeAttribute('data-theme');
|
|
||||||
localStorage.removeItem('darkSwitch');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
</script>
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
<div class="container-fluid">
|
|
||||||
<div class="row">
|
|
||||||
<div class="col sidebar mb-3">
|
|
||||||
<h1><i class="fa fa-calendar" aria-hidden="true"></i> Laravel Log Viewer</h1>
|
|
||||||
<p class="text-muted"><i>by Rap2h</i></p>
|
|
||||||
<p><a href="https://jsonbeautify.com/" target="_blank">Сайт для отображения данных</a></p>
|
|
||||||
<div class="custom-control custom-switch" style="padding-bottom:20px;">
|
|
||||||
<input type="checkbox" class="custom-control-input" id="darkSwitch">
|
|
||||||
<label class="custom-control-label" for="darkSwitch" style="margin-top: 6px;">Dark Mode</label>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="list-group div-scroll">
|
|
||||||
@foreach($folders as $folder)
|
|
||||||
<div class="list-group-item">
|
|
||||||
<?php
|
|
||||||
\Rap2hpoutre\LaravelLogViewer\LaravelLogViewer::DirectoryTreeStructure( $storage_path, $structure );
|
|
||||||
?>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
@endforeach
|
|
||||||
@foreach($files as $file)
|
|
||||||
<a href="?l={{ \Illuminate\Support\Facades\Crypt::encrypt($file) }}"
|
|
||||||
class="list-group-item @if ($current_file == $file) llv-active @endif">
|
|
||||||
{{$file}}
|
|
||||||
</a>
|
|
||||||
@endforeach
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="col-10 table-container">
|
|
||||||
@if ($logs === null)
|
|
||||||
<div>
|
|
||||||
Log file >50M, please download it.
|
|
||||||
</div>
|
|
||||||
@else
|
|
||||||
<table id="table-log" class="table table-striped" data-ordering-index="{{ $standardFormat ? 2 : 0 }}">
|
|
||||||
<thead>
|
|
||||||
<tr>
|
|
||||||
@if ($standardFormat)
|
|
||||||
<th>Level</th>
|
|
||||||
<th>Context</th>
|
|
||||||
<th>Date</th>
|
|
||||||
@else
|
|
||||||
<th>Line number</th>
|
|
||||||
@endif
|
|
||||||
<th>Content</th>
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
<tbody>
|
|
||||||
|
|
||||||
@foreach($logs as $key => $log)
|
|
||||||
<tr data-display="stack{{{$key}}}">
|
|
||||||
@if ($standardFormat)
|
|
||||||
<td class="nowrap text-{{{$log['level_class']}}}">
|
|
||||||
<span class="fa fa-{{{$log['level_img']}}}" aria-hidden="true"></span> {{$log['level']}}
|
|
||||||
</td>
|
|
||||||
<td class="text">{{$log['context']}}</td>
|
|
||||||
@endif
|
|
||||||
<td class="date">{{{$log['date']}}}</td>
|
|
||||||
<td class="text">
|
|
||||||
@if ($log['stack'])
|
|
||||||
<button type="button"
|
|
||||||
class="float-right expand btn btn-outline-dark btn-sm mb-2 ml-2"
|
|
||||||
data-display="stack{{{$key}}}">
|
|
||||||
<span class="fa fa-search"></span>
|
|
||||||
</button>
|
|
||||||
@endif
|
|
||||||
{{{$log['text']}}}
|
|
||||||
@if (isset($log['in_file']))
|
|
||||||
<br/>{{{$log['in_file']}}}
|
|
||||||
@endif
|
|
||||||
@if ($log['stack'])
|
|
||||||
<div class="stack" id="stack{{{$key}}}"
|
|
||||||
style="display: none; white-space: pre-wrap;">{{{ trim($log['stack']) }}}
|
|
||||||
</div>
|
|
||||||
@endif
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
@endforeach
|
|
||||||
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
@endif
|
|
||||||
{{-- <div class="p-3">--}}
|
|
||||||
{{-- @if($current_file)--}}
|
|
||||||
{{-- <a href="?dl={{ \Illuminate\Support\Facades\Crypt::encrypt($current_file) }}{{ ($current_folder) ? '&f=' . \Illuminate\Support\Facades\Crypt::encrypt($current_folder) : '' }}">--}}
|
|
||||||
{{-- <span class="fa fa-download"></span> Download file--}}
|
|
||||||
{{-- </a>--}}
|
|
||||||
{{-- ---}}
|
|
||||||
{{-- <a id="clean-log" href="?clean={{ \Illuminate\Support\Facades\Crypt::encrypt($current_file) }}{{ ($current_folder) ? '&f=' . \Illuminate\Support\Facades\Crypt::encrypt($current_folder) : '' }}">--}}
|
|
||||||
{{-- <span class="fa fa-sync"></span> Clean file--}}
|
|
||||||
{{-- </a>--}}
|
|
||||||
{{-- ---}}
|
|
||||||
{{-- <a id="delete-log" href="?del={{ \Illuminate\Support\Facades\Crypt::encrypt($current_file) }}{{ ($current_folder) ? '&f=' . \Illuminate\Support\Facades\Crypt::encrypt($current_folder) : '' }}">--}}
|
|
||||||
{{-- <span class="fa fa-trash"></span> Delete file--}}
|
|
||||||
{{-- </a>--}}
|
|
||||||
{{-- @if(count($files) > 1)--}}
|
|
||||||
{{-- ---}}
|
|
||||||
{{-- <a id="delete-all-log" href="?delall=true{{ ($current_folder) ? '&f=' . \Illuminate\Support\Facades\Crypt::encrypt($current_folder) : '' }}">--}}
|
|
||||||
{{-- <span class="fa fa-trash-alt"></span> Delete all files--}}
|
|
||||||
{{-- </a>--}}
|
|
||||||
{{-- @endif--}}
|
|
||||||
{{-- @endif--}}
|
|
||||||
{{-- </div>--}}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<!-- jQuery for Bootstrap -->
|
|
||||||
<script src="https://code.jquery.com/jquery-3.2.1.slim.min.js"
|
|
||||||
integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN"
|
|
||||||
crossorigin="anonymous"></script>
|
|
||||||
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js"
|
|
||||||
integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl"
|
|
||||||
crossorigin="anonymous"></script>
|
|
||||||
<!-- FontAwesome -->
|
|
||||||
<script defer src="https://use.fontawesome.com/releases/v5.0.6/js/all.js"></script>
|
|
||||||
<!-- Datatables -->
|
|
||||||
<script type="text/javascript" src="https://cdn.datatables.net/1.10.16/js/jquery.dataTables.min.js"></script>
|
|
||||||
<script type="text/javascript" src="https://cdn.datatables.net/1.10.16/js/dataTables.bootstrap4.min.js"></script>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
|
|
||||||
// dark mode by https://github.com/coliff/dark-mode-switch
|
|
||||||
const darkSwitch = document.getElementById('darkSwitch');
|
|
||||||
|
|
||||||
// this is here so we can get the body dark mode before the page displays
|
|
||||||
// otherwise the page will be white for a second...
|
|
||||||
initTheme();
|
|
||||||
|
|
||||||
window.addEventListener('load', () => {
|
|
||||||
if (darkSwitch) {
|
|
||||||
initTheme();
|
|
||||||
darkSwitch.addEventListener('change', () => {
|
|
||||||
resetTheme();
|
|
||||||
});
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
// end darkmode js
|
|
||||||
|
|
||||||
$(document).ready(function () {
|
|
||||||
$('.table-container tr').on('click', function () {
|
|
||||||
$('#' + $(this).data('display')).toggle();
|
|
||||||
});
|
|
||||||
$('#table-log').DataTable({
|
|
||||||
"order": [$('#table-log').data('orderingIndex'), 'desc'],
|
|
||||||
"stateSave": true,
|
|
||||||
"stateSaveCallback": function (settings, data) {
|
|
||||||
window.localStorage.setItem("datatable", JSON.stringify(data));
|
|
||||||
},
|
|
||||||
"stateLoadCallback": function (settings) {
|
|
||||||
var data = JSON.parse(window.localStorage.getItem("datatable"));
|
|
||||||
if (data) data.start = 0;
|
|
||||||
return data;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
$('#delete-log, #clean-log, #delete-all-log').click(function () {
|
|
||||||
return confirm('Are you sure?');
|
|
||||||
});
|
|
||||||
});
|
|
||||||
</script>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
|
@ -14,11 +14,8 @@ use App\Http\Controllers\admin\Catalog\EducationalInstitutionController;
|
||||||
use App\Http\Controllers\admin\Catalog\FacultyController;
|
use App\Http\Controllers\admin\Catalog\FacultyController;
|
||||||
use App\Http\Controllers\admin\DocumentController;
|
use App\Http\Controllers\admin\DocumentController;
|
||||||
use App\Http\Controllers\admin\UserController;
|
use App\Http\Controllers\admin\UserController;
|
||||||
use Rap2hpoutre\LaravelLogViewer\LogViewerController;
|
|
||||||
|
|
||||||
Route::middleware(['auth', 'verified'])->prefix('admin')->group(function () {
|
Route::middleware(['auth', 'verified'])->prefix('admin')->group(function () {
|
||||||
Route::get('/logs', [LogViewerController::class, 'index']);
|
|
||||||
|
|
||||||
Route::get('/dashboard', function () {
|
Route::get('/dashboard', function () {
|
||||||
return view('admin');
|
return view('admin');
|
||||||
})->name('dashboard');
|
})->name('dashboard');
|
||||||
|
|
Loading…
Reference in New Issue