chore: code styling via pint

This commit is contained in:
idevakk
2025-11-14 01:51:35 -08:00
parent 3892c48ef2
commit 90ab79b3a2
121 changed files with 1003 additions and 892 deletions

View File

@@ -2,35 +2,39 @@
namespace App\Filament\Pages;
use Illuminate\Database\Eloquent\Builder;
use Filament\Actions\BulkAction;
use App\Models\ActivationKey;
use App\Models\Plan;
use Filament\Actions\BulkAction;
use Filament\Forms\Components\Select;
use Filament\Forms\Components\TextInput;
use Filament\Forms\Concerns\InteractsWithForms;
use Filament\Forms\Contracts\HasForms;
use Filament\Notifications\Notification;
use Filament\Pages\Page;
use Filament\Tables\Columns\BooleanColumn;
use Filament\Tables\Columns\TextColumn;
use Filament\Tables\Concerns\InteractsWithTable;
use Filament\Tables\Contracts\HasTable;
use Filament\Tables\Filters\SelectFilter;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Support\Collection;
use Response;
use Str;
use Filament\Notifications\Notification;
class GenerateActivationKeys extends Page implements HasForms, HasTable
{
use InteractsWithForms, InteractsWithTable;
protected static string | \BackedEnum | null $navigationIcon = 'heroicon-o-key';
protected static string|\BackedEnum|null $navigationIcon = 'heroicon-o-key';
protected string $view = 'filament.pages.generate-activation-keys';
protected static string | \UnitEnum | null $navigationGroup = 'Admin';
protected static string|\UnitEnum|null $navigationGroup = 'Admin';
protected static ?string $title = 'Activation Keys';
public $plan_id;
public $quantity = 1;
public function mount(): void
@@ -97,10 +101,10 @@ class GenerateActivationKeys extends Page implements HasForms, HasTable
->label('Interval')
->getStateUsing(function ($record) {
$isMonthly = Plan::where('pricing_id', $record->price_id)->value('monthly_billing');
return $isMonthly ? 'Monthly' : 'Yearly';
}),
TextColumn::make('created_at')
->dateTime(),
];
@@ -136,12 +140,12 @@ class GenerateActivationKeys extends Page implements HasForms, HasTable
{
$text = $records->pluck('activation_key')->implode("\n");
$filename = 'activation_keys_' . now()->timestamp . '.txt';
$filename = 'activation_keys_'.now()->timestamp.'.txt';
// Store the file in the 'public' directory or a subdirectory within 'public'
$path = public_path("activation/{$filename}");
// Make sure the 'activation' folder exists, create it if it doesn't
if (!file_exists(public_path('activation'))) {
if (! file_exists(public_path('activation'))) {
mkdir(public_path('activation'), 0777, true);
}
@@ -151,5 +155,4 @@ class GenerateActivationKeys extends Page implements HasForms, HasTable
// Return the response that allows users to download the file directly
return response()->download($path)->deleteFileAfterSend(true);
}
}

View File

@@ -2,13 +2,10 @@
namespace App\Filament\Pages;
use Filament\Schemas\Schema;
use Filament\Schemas\Components\Section;
use Exception;
use App\Models\Setting;
use App\Models\ZEmail;
use Artisan;
use Ddeboer\Imap\Server;
use Exception;
use Filament\Forms\Components\Checkbox;
use Filament\Forms\Components\KeyValue;
use Filament\Forms\Components\Repeater;
@@ -19,6 +16,8 @@ use Filament\Forms\Concerns\InteractsWithForms;
use Filament\Forms\Contracts\HasForms;
use Filament\Notifications\Notification;
use Filament\Pages\Page;
use Filament\Schemas\Components\Section;
use Filament\Schemas\Schema;
class Settings extends Page implements HasForms
{
@@ -26,11 +25,11 @@ class Settings extends Page implements HasForms
public ?array $data = [];
protected static string | \BackedEnum | null $navigationIcon = 'heroicon-o-cog-6-tooth';
protected static string|\BackedEnum|null $navigationIcon = 'heroicon-o-cog-6-tooth';
protected string $view = 'filament.pages.settings';
protected static string | \UnitEnum | null $navigationGroup = 'Web Master';
protected static string|\UnitEnum|null $navigationGroup = 'Web Master';
public function mount(): void
{
@@ -51,7 +50,7 @@ class Settings extends Page implements HasForms
]);
$this->applyDefaults($configurationSettings, [
'cron_password' => fn() => $this->generateRandomString(20),
'cron_password' => fn () => $this->generateRandomString(20),
'date_format' => 'd M Y h:i A',
'after_last_email_delete' => 'redirect_to_homepage',
]);
@@ -92,7 +91,6 @@ class Settings extends Page implements HasForms
'ads_settings' => $adsSettings,
]);
} else {
$this->form->fill([
'app_admin' => $auth_email,
@@ -142,13 +140,12 @@ class Settings extends Page implements HasForms
->collapsed()
->schema([
Repeater::make('app_social')
->statePath('app_social')
->schema([
TextInput::make('icon')->label('Icon')->required()->maxLength(100),
TextInput::make('url')->label('URL')->url()->required()->maxLength(255),
])
]),
]),
@@ -161,7 +158,7 @@ class Settings extends Page implements HasForms
Select::make('imap_settings.encryption')->options([
'none' => 'None',
'ssl' => 'SSL',
'tls' => 'TLS'
'tls' => 'TLS',
]),
Checkbox::make('imap_settings.validate_cert')->label('Validate Encryption Certificate')->default(false),
TextInput::make('imap_settings.username')->label('Username')->required(),
@@ -180,7 +177,7 @@ class Settings extends Page implements HasForms
Select::make('imap_settings.premium_encryption')->options([
'none' => 'None',
'ssl' => 'SSL',
'tls' => 'TLS'
'tls' => 'TLS',
]),
Checkbox::make('imap_settings.premium_validate_cert')->label('Validate Encryption Certificate')->default(false),
TextInput::make('imap_settings.premium_username')->label('Username')->required(),
@@ -197,64 +194,64 @@ class Settings extends Page implements HasForms
Section::make('General Configuration')
->columns(2)
->schema([
Checkbox::make('configuration_settings.enable_masking_external_link')
->label('Enable URL Masking of External URL')
->default(false)
->columnSpan(1)
->helperText('If you enable this, then we will use href.li to remove your site footprint being passed-on to external link.'),
Checkbox::make('configuration_settings.disable_mailbox_slug')
->label('Disable Mailbox Slug')
->default(false)
->columnSpan(1)
->helperText('If you enable this, then we will disable mailbox slug.'),
Checkbox::make('configuration_settings.enable_create_from_url')
->label('Enable Mail ID Creation from URL')
->default(true)
->columnSpan(1)
->helperText('If you enable this, then users will be able to create email ID from URL.'),
Checkbox::make('configuration_settings.enable_ad_block_detector')
->label('Enable Ad Block Detector')
->default(true)
->columnSpan(1)
->helperText('If you enable this, then we block all the users from using when that have Ad Blocker enabled.'),
KeyValue::make('configuration_settings.font_family')
->label('Font Family')
->columnSpan(2)
->helperText('Use Google Fonts with exact name.')
]),
Checkbox::make('configuration_settings.enable_masking_external_link')
->label('Enable URL Masking of External URL')
->default(false)
->columnSpan(1)
->helperText('If you enable this, then we will use href.li to remove your site footprint being passed-on to external link.'),
Checkbox::make('configuration_settings.disable_mailbox_slug')
->label('Disable Mailbox Slug')
->default(false)
->columnSpan(1)
->helperText('If you enable this, then we will disable mailbox slug.'),
Checkbox::make('configuration_settings.enable_create_from_url')
->label('Enable Mail ID Creation from URL')
->default(true)
->columnSpan(1)
->helperText('If you enable this, then users will be able to create email ID from URL.'),
Checkbox::make('configuration_settings.enable_ad_block_detector')
->label('Enable Ad Block Detector')
->default(true)
->columnSpan(1)
->helperText('If you enable this, then we block all the users from using when that have Ad Blocker enabled.'),
KeyValue::make('configuration_settings.font_family')
->label('Font Family')
->columnSpan(2)
->helperText('Use Google Fonts with exact name.'),
]),
Select::make('configuration_settings.default_language')->options([
'ar' => 'Arabic',
'de' => 'German',
'en' => 'English',
'fr' => 'French',
'hi' => 'Hindi',
'pl' => 'Polish',
'ru' => 'Russian',
'es' => 'Spanish',
'vi' => 'Viet',
'tr' => 'Turkish',
'no' => 'Norwegian',
'id' => 'Indonesian',
'ar' => 'Arabic',
'de' => 'German',
'en' => 'English',
'fr' => 'French',
'hi' => 'Hindi',
'pl' => 'Polish',
'ru' => 'Russian',
'es' => 'Spanish',
'vi' => 'Viet',
'tr' => 'Turkish',
'no' => 'Norwegian',
'id' => 'Indonesian',
]),
Section::make('Domains & Gmail Usernames')
->collapsed()
->columns(2)
->schema([
Repeater::make('configuration_settings.domains')
->statePath('configuration_settings.domains')
->columnSpan(1)
->schema([
TextInput::make('domain')->label('Domain')->required()->maxLength(30),
]),
Repeater::make('configuration_settings.gmailUsernames')
->statePath('configuration_settings.gmailUsernames')
->columnSpan(1)
->schema([
TextInput::make('gmailUsername')->label('Gmail Username')->required()->maxLength(30),
]),
]),
Repeater::make('configuration_settings.domains')
->statePath('configuration_settings.domains')
->columnSpan(1)
->schema([
TextInput::make('domain')->label('Domain')->required()->maxLength(30),
]),
Repeater::make('configuration_settings.gmailUsernames')
->statePath('configuration_settings.gmailUsernames')
->columnSpan(1)
->schema([
TextInput::make('gmailUsername')->label('Gmail Username')->required()->maxLength(30),
]),
]),
Section::make('Premium Domains & Gmail Usernames')
->collapsed()
@@ -356,7 +353,6 @@ class Settings extends Page implements HasForms
->statePath('data');
}
public function flushCache(): void
{
try {
@@ -378,7 +374,7 @@ class Settings extends Page implements HasForms
try {
$data = $this->form->getState();
if (!$this->testIMAP($data['imap_settings'])) {
if (! $this->testIMAP($data['imap_settings'])) {
return;
} else {
Notification::make()
@@ -389,9 +385,9 @@ class Settings extends Page implements HasForms
foreach ([
'protocol' => 'imap',
'default_account' => 'default',
'premium_protocol' => 'imap',
'premium_default_account' => 'default',
] as $key => $default) {
'premium_protocol' => 'imap',
'premium_default_account' => 'default',
] as $key => $default) {
$data['imap_settings'][$key] ??= $default;
}
@@ -403,7 +399,7 @@ class Settings extends Page implements HasForms
'outlookUsernames' => 'outlookUsername',
'premium_outlookUsernames' => 'premium_outlookUsername',
'forbidden_ids' => 'forbidden_id',
'blocked_domains' => 'blocked_domain'
'blocked_domains' => 'blocked_domain',
];
foreach ($pluckMap as $key => $subKey) {
@@ -423,13 +419,13 @@ class Settings extends Page implements HasForms
$app_admin = $setting->app_admin;
if ($app_admin == $auth_email) {
$update_res = $setting->update($data);
if($update_res) {
if ($update_res) {
Notification::make()
->title('Saved successfully')
->success()
->send();
}
} else {
} else {
Notification::make()
->title('Please Login With Administrator Credentials')
->danger()
@@ -453,7 +449,7 @@ class Settings extends Page implements HasForms
];
$create_res = Setting::create(array_merge($data));
if($create_res) {
if ($create_res) {
Notification::make()
->title('Saved successfully')
->success()
@@ -476,10 +472,12 @@ class Settings extends Page implements HasForms
for ($i = 0; $i < $length; $i++) {
$randomString .= $characters[rand(0, $charactersLength - 1)];
}
return $randomString;
}
private function applyDefaults(array &$target, array $defaults): void {
private function applyDefaults(array &$target, array $defaults): void
{
foreach ($defaults as $key => $value) {
$target[$key] ??= is_callable($value) ? $value() : $value;
}
@@ -489,16 +487,18 @@ class Settings extends Page implements HasForms
{
try {
// First check if IMAP extension is available
if (!function_exists('imap_open')) {
if (! function_exists('imap_open')) {
Notification::make()
->title('IMAP Extension Not Available')
->body('The PHP IMAP extension is not loaded in your web server. Please check your Herd PHP configuration or restart your server.')
->danger()
->send();
return false;
}
ZEmail::connectMailBox($imap);
return true;
} catch (Exception $exception) {
$errorMessage = $exception->getMessage();
@@ -509,9 +509,10 @@ class Settings extends Page implements HasForms
}
Notification::make()
->title('IMAP Error: ' . $errorMessage)
->title('IMAP Error: '.$errorMessage)
->danger()
->send();
return false;
}
}

View File

@@ -2,52 +2,45 @@
namespace App\Filament\Resources;
use Filament\Schemas\Schema;
use Filament\Schemas\Components\Section;
use Filament\Schemas\Components\Utilities\Set;
use Filament\Actions\ViewAction;
use Filament\Actions\EditAction;
use Filament\Actions\DeleteAction;
use Filament\Actions\Action;
use Filament\Actions\BulkActionGroup;
use Filament\Actions\DeleteBulkAction;
use App\Filament\Resources\BlogResource\Pages\ListBlogs;
use App\Filament\Resources\BlogResource\Pages\CreateBlog;
use App\Filament\Resources\BlogResource\Pages\EditBlog;
use App\Filament\Resources\BlogResource\Pages;
use App\Filament\Resources\BlogResource\RelationManagers;
use App\Filament\Resources\BlogResource\Pages\ListBlogs;
use App\Models\Blog;
use App\Models\Category;
use Filament\Forms;
use Filament\Actions\Action;
use Filament\Actions\BulkActionGroup;
use Filament\Actions\DeleteAction;
use Filament\Actions\DeleteBulkAction;
use Filament\Actions\EditAction;
use Filament\Actions\ViewAction;
use Filament\Forms\Components\FileUpload;
use Filament\Forms\Components\KeyValue;
use Filament\Forms\Components\Repeater;
use Filament\Forms\Components\RichEditor;
use Filament\Forms\Components\Select;
use Filament\Forms\Components\Textarea;
use Filament\Forms\Components\TextInput;
use Filament\Resources\RelationManagers\RelationManager;
use Filament\Resources\Resource;
use Filament\Tables;
use Filament\Tables\Table;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\SoftDeletingScope;
use Filament\Schemas\Components\Section;
use Filament\Schemas\Components\Utilities\Set;
use Filament\Schemas\Schema;
use Filament\Tables\Columns\IconColumn;
use Filament\Tables\Columns\TextColumn;
use Filament\Tables\Filters\SelectFilter;
use Filament\Tables\Table;
use Illuminate\Support\Str;
class BlogResource extends Resource
{
protected static ?string $model = Blog::class;
protected static string | \BackedEnum | null $navigationIcon = 'heroicon-m-newspaper';
protected static string|\BackedEnum|null $navigationIcon = 'heroicon-m-newspaper';
protected static string | \UnitEnum | null $navigationGroup = 'Content';
protected static string|\UnitEnum|null $navigationGroup = 'Content';
public static function form(Schema $schema): Schema
{
$categories = Category::pluck('name', 'id')->toArray();
return $schema
->components([
Section::make('Post Information')
@@ -74,7 +67,7 @@ class BlogResource extends Resource
Select::make('is_published')
->options([
0 => 'Draft',
1 => 'Published'
1 => 'Published',
])
->searchable()
->default(1)
@@ -107,7 +100,6 @@ class BlogResource extends Resource
->valuePlaceholder('Content'),
Textarea::make('custom_header')->rows(6)->label('Custom Header (Optional)'),
]),
]);
@@ -141,7 +133,7 @@ class BlogResource extends Resource
->label('Toggle Published')
->icon('heroicon-o-eye')
->action(function (Blog $record) {
$record->update(['is_published' => !$record->is_published]);
$record->update(['is_published' => ! $record->is_published]);
}),
])
->toolbarActions([

View File

@@ -3,7 +3,6 @@
namespace App\Filament\Resources\BlogResource\Pages;
use App\Filament\Resources\BlogResource;
use Filament\Actions;
use Filament\Notifications\Notification;
use Filament\Resources\Pages\CreateRecord;

View File

@@ -2,9 +2,8 @@
namespace App\Filament\Resources\BlogResource\Pages;
use Filament\Actions\DeleteAction;
use App\Filament\Resources\BlogResource;
use Filament\Actions;
use Filament\Actions\DeleteAction;
use Filament\Notifications\Notification;
use Filament\Resources\Pages\EditRecord;
@@ -18,6 +17,7 @@ class EditBlog extends EditRecord
DeleteAction::make(),
];
}
protected function getRedirectUrl(): ?string
{
return $this->getResource()::getUrl('index');

View File

@@ -2,9 +2,8 @@
namespace App\Filament\Resources\BlogResource\Pages;
use Filament\Actions\CreateAction;
use App\Filament\Resources\BlogResource;
use Filament\Actions;
use Filament\Actions\CreateAction;
use Filament\Resources\Pages\ListRecords;
class ListBlogs extends ListRecords

View File

@@ -2,39 +2,33 @@
namespace App\Filament\Resources;
use Filament\Schemas\Schema;
use Filament\Schemas\Components\Utilities\Set;
use Filament\Actions\ViewAction;
use Filament\Actions\EditAction;
use Filament\Actions\DeleteAction;
use Filament\Actions\Action;
use Filament\Actions\BulkActionGroup;
use Filament\Actions\DeleteBulkAction;
use App\Filament\Resources\CategoryResource\Pages\ListCategories;
use App\Filament\Resources\CategoryResource\Pages\CreateCategory;
use App\Filament\Resources\CategoryResource\Pages\EditCategory;
use App\Filament\Resources\CategoryResource\Pages;
use App\Filament\Resources\CategoryResource\RelationManagers;
use App\Filament\Resources\CategoryResource\Pages\ListCategories;
use App\Models\Category;
use Filament\Forms;
use Filament\Actions\Action;
use Filament\Actions\BulkActionGroup;
use Filament\Actions\DeleteAction;
use Filament\Actions\DeleteBulkAction;
use Filament\Actions\EditAction;
use Filament\Actions\ViewAction;
use Filament\Forms\Components\Select;
use Filament\Forms\Components\TextInput;
use Filament\Resources\Resource;
use Filament\Tables;
use Filament\Tables\Table;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\SoftDeletingScope;
use Filament\Schemas\Components\Utilities\Set;
use Filament\Schemas\Schema;
use Filament\Tables\Columns\IconColumn;
use Filament\Tables\Columns\TextColumn;
use Filament\Tables\Table;
use Illuminate\Support\Str;
class CategoryResource extends Resource
{
protected static ?string $model = Category::class;
protected static string | \BackedEnum | null $navigationIcon = 'heroicon-o-ticket';
protected static string|\BackedEnum|null $navigationIcon = 'heroicon-o-ticket';
protected static string | \UnitEnum | null $navigationGroup = 'Content';
protected static string|\UnitEnum|null $navigationGroup = 'Content';
public static function form(Schema $schema): Schema
{
@@ -52,7 +46,7 @@ class CategoryResource extends Resource
])
->columnSpanFull()
->required()
->default(1)
->default(1),
]);
}
@@ -80,7 +74,7 @@ class CategoryResource extends Resource
->label('Toggle Status')
->icon('heroicon-o-power')
->action(function (Category $record) {
$record->update(['is_active' => !$record->is_active]);
$record->update(['is_active' => ! $record->is_active]);
}),
])
->toolbarActions([

View File

@@ -3,7 +3,6 @@
namespace App\Filament\Resources\CategoryResource\Pages;
use App\Filament\Resources\CategoryResource;
use Filament\Actions;
use Filament\Resources\Pages\CreateRecord;
class CreateCategory extends CreateRecord

View File

@@ -2,9 +2,8 @@
namespace App\Filament\Resources\CategoryResource\Pages;
use Filament\Actions\DeleteAction;
use App\Filament\Resources\CategoryResource;
use Filament\Actions;
use Filament\Actions\DeleteAction;
use Filament\Resources\Pages\EditRecord;
class EditCategory extends EditRecord

View File

@@ -2,9 +2,8 @@
namespace App\Filament\Resources\CategoryResource\Pages;
use Filament\Actions\CreateAction;
use App\Filament\Resources\CategoryResource;
use Filament\Actions;
use Filament\Actions\CreateAction;
use Filament\Resources\Pages\ListRecords;
class ListCategories extends ListRecords

View File

@@ -2,41 +2,36 @@
namespace App\Filament\Resources;
use Filament\Schemas\Schema;
use Filament\Actions\ViewAction;
use Filament\Actions\EditAction;
use Filament\Actions\DeleteAction;
use Filament\Actions\BulkActionGroup;
use Filament\Actions\DeleteBulkAction;
use App\Filament\Resources\MenuResource\Pages\ListMenus;
use App\Filament\Resources\MenuResource\Pages\CreateMenu;
use App\Filament\Resources\MenuResource\Pages\EditMenu;
use App\Filament\Resources\MenuResource\Pages;
use App\Filament\Resources\MenuResource\RelationManagers;
use App\Filament\Resources\MenuResource\Pages\ListMenus;
use App\Models\Menu;
use Filament\Forms;
use Filament\Actions\BulkActionGroup;
use Filament\Actions\DeleteAction;
use Filament\Actions\DeleteBulkAction;
use Filament\Actions\EditAction;
use Filament\Actions\ViewAction;
use Filament\Forms\Components\Select;
use Filament\Forms\Components\TextInput;
use Filament\Forms\Components\Toggle;
use Filament\Resources\Resource;
use Filament\Tables;
use Filament\Schemas\Schema;
use Filament\Tables\Columns\IconColumn;
use Filament\Tables\Columns\TextColumn;
use Filament\Tables\Table;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\SoftDeletingScope;
class MenuResource extends Resource
{
protected static ?string $model = Menu::class;
protected static string | \BackedEnum | null $navigationIcon = 'heroicon-o-bars-3-bottom-left';
protected static string|\BackedEnum|null $navigationIcon = 'heroicon-o-bars-3-bottom-left';
protected static string | \UnitEnum | null $navigationGroup = 'Content';
protected static string|\UnitEnum|null $navigationGroup = 'Content';
public static function form(Schema $schema): Schema
{
$menus = Menu::Pluck('name', 'id')->toArray();
return $schema
->components([
TextInput::make('name')
@@ -65,7 +60,7 @@ class MenuResource extends Resource
TextColumn::make('name')->sortable(),
TextColumn::make('url')->label('URL'),
TextColumn::make('parentname.name')->label('Parent Name'),
IconColumn::make('new_tab')->label('Open in New Tab')->boolean()
IconColumn::make('new_tab')->label('Open in New Tab')->boolean(),
])
->filters([
//

View File

@@ -3,7 +3,6 @@
namespace App\Filament\Resources\MenuResource\Pages;
use App\Filament\Resources\MenuResource;
use Filament\Actions;
use Filament\Notifications\Notification;
use Filament\Resources\Pages\CreateRecord;

View File

@@ -2,9 +2,8 @@
namespace App\Filament\Resources\MenuResource\Pages;
use Filament\Actions\DeleteAction;
use App\Filament\Resources\MenuResource;
use Filament\Actions;
use Filament\Actions\DeleteAction;
use Filament\Notifications\Notification;
use Filament\Resources\Pages\EditRecord;
@@ -18,6 +17,7 @@ class EditMenu extends EditRecord
DeleteAction::make(),
];
}
protected function getRedirectUrl(): ?string
{
return $this->getResource()::getUrl('index');

View File

@@ -2,9 +2,8 @@
namespace App\Filament\Resources\MenuResource\Pages;
use Filament\Actions\CreateAction;
use App\Filament\Resources\MenuResource;
use Filament\Actions;
use Filament\Actions\CreateAction;
use Filament\Resources\Pages\ListRecords;
class ListMenus extends ListRecords

View File

@@ -2,48 +2,39 @@
namespace App\Filament\Resources;
use Filament\Schemas\Schema;
use Filament\Schemas\Components\Section;
use Filament\Schemas\Components\Utilities\Set;
use Filament\Tables\Filters\SelectFilter;
use Filament\Actions\ViewAction;
use Filament\Actions\EditAction;
use Filament\Actions\DeleteAction;
use Filament\Actions\Action;
use Filament\Actions\BulkActionGroup;
use Filament\Actions\DeleteBulkAction;
use App\Filament\Resources\PageResource\Pages\ListPages;
use App\Filament\Resources\PageResource\Pages\CreatePage;
use App\Filament\Resources\PageResource\Pages\EditPage;
use App\Filament\Resources\PageResource\Pages;
use App\Filament\Resources\PageResource\RelationManagers;
use App\Filament\Resources\PageResource\Pages\ListPages;
use App\Models\Page;
use Filament\Forms;
use Filament\Actions\Action;
use Filament\Actions\BulkActionGroup;
use Filament\Actions\DeleteAction;
use Filament\Actions\DeleteBulkAction;
use Filament\Actions\EditAction;
use Filament\Actions\ViewAction;
use Filament\Forms\Components\FileUpload;
use Filament\Forms\Components\KeyValue;
use Filament\Forms\Components\Repeater;
use Filament\Forms\Components\RichEditor;
use Filament\Forms\Components\Select;
use Filament\Forms\Components\Textarea;
use Filament\Forms\Components\TextInput;
use Filament\Forms\Components\Toggle;
use Illuminate\Support\Str;
use Filament\Resources\Resource;
use Filament\Tables;
use Filament\Schemas\Components\Section;
use Filament\Schemas\Components\Utilities\Set;
use Filament\Schemas\Schema;
use Filament\Tables\Columns\IconColumn;
use Filament\Tables\Columns\TextColumn;
use Filament\Tables\Filters\SelectFilter;
use Filament\Tables\Table;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\SoftDeletingScope;
use Symfony\Contracts\Service\Attribute\Required;
use Illuminate\Support\Str;
class PageResource extends Resource
{
protected static ?string $model = Page::class;
protected static string | \BackedEnum | null $navigationIcon = 'heroicon-o-document';
protected static string|\BackedEnum|null $navigationIcon = 'heroicon-o-document';
protected static string | \UnitEnum | null $navigationGroup = 'Content';
protected static string|\UnitEnum|null $navigationGroup = 'Content';
public static function form(Schema $schema): Schema
{
@@ -64,7 +55,7 @@ class PageResource extends Resource
Select::make('is_published')
->options([
0 => 'Draft',
1 => 'Published'
1 => 'Published',
])
->default(1)
->required()
@@ -94,8 +85,6 @@ class PageResource extends Resource
Textarea::make('custom_header')->rows(6)->label('Custom Header (Optional)'),
]),
]);
}
@@ -126,7 +115,7 @@ class PageResource extends Resource
->label('Toggle Published')
->icon('heroicon-o-eye')
->action(function (Page $record) {
$record->update(['is_published' => !$record->is_published]);
$record->update(['is_published' => ! $record->is_published]);
}),
])
->toolbarActions([

View File

@@ -3,7 +3,6 @@
namespace App\Filament\Resources\PageResource\Pages;
use App\Filament\Resources\PageResource;
use Filament\Actions;
use Filament\Notifications\Notification;
use Filament\Resources\Pages\CreateRecord;

View File

@@ -2,9 +2,8 @@
namespace App\Filament\Resources\PageResource\Pages;
use Filament\Actions\DeleteAction;
use App\Filament\Resources\PageResource;
use Filament\Actions;
use Filament\Actions\DeleteAction;
use Filament\Notifications\Notification;
use Filament\Resources\Pages\EditRecord;
@@ -18,6 +17,7 @@ class EditPage extends EditRecord
DeleteAction::make(),
];
}
protected function getRedirectUrl(): ?string
{
return $this->getResource()::getUrl('index');

View File

@@ -2,9 +2,8 @@
namespace App\Filament\Resources\PageResource\Pages;
use Filament\Actions\CreateAction;
use App\Filament\Resources\PageResource;
use Filament\Actions;
use Filament\Actions\CreateAction;
use Filament\Resources\Pages\ListRecords;
class ListPages extends ListRecords

View File

@@ -2,45 +2,33 @@
namespace App\Filament\Resources;
use Filament\Schemas\Schema;
use Filament\Schemas\Components\Section;
use Filament\Tables\Filters\SelectFilter;
use Filament\Actions\ViewAction;
use Filament\Actions\EditAction;
use Filament\Actions\DeleteAction;
use Filament\Actions\BulkActionGroup;
use Filament\Actions\DeleteBulkAction;
use App\Filament\Resources\PlanResource\Pages\ListPlans;
use App\Filament\Resources\PlanResource\Pages\CreatePlan;
use App\Filament\Resources\PlanResource\Pages\EditPlan;
use App\Filament\Resources\PlanResource\Pages;
use App\Filament\Resources\PlanResource\RelationManagers;
use App\Filament\Resources\PlanResource\Pages\ListPlans;
use App\Models\Plan;
use Filament\Forms;
use Filament\Forms\Components\FileUpload;
use Filament\Actions\BulkActionGroup;
use Filament\Actions\DeleteAction;
use Filament\Actions\DeleteBulkAction;
use Filament\Actions\EditAction;
use Filament\Actions\ViewAction;
use Filament\Forms\Components\KeyValue;
use Filament\Forms\Components\RichEditor;
use Filament\Forms\Components\Select;
use Filament\Forms\Components\TextInput;
use Filament\Forms\Set;
use Filament\Resources\Resource;
use Filament\Tables;
use Filament\Schemas\Components\Section;
use Filament\Schemas\Schema;
use Filament\Tables\Columns\BooleanColumn;
use Filament\Tables\Columns\TextColumn;
use Filament\Tables\Filters\SelectFilter;
use Filament\Tables\Table;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\SoftDeletingScope;
use Illuminate\Support\Str;
use phpDocumentor\Reflection\Types\Boolean;
class PlanResource extends Resource
{
protected static ?string $model = Plan::class;
protected static string | \BackedEnum | null $navigationIcon = 'heroicon-o-rectangle-stack';
protected static string | \UnitEnum | null $navigationGroup = 'Web Master';
protected static string|\BackedEnum|null $navigationIcon = 'heroicon-o-rectangle-stack';
protected static string|\UnitEnum|null $navigationGroup = 'Web Master';
public static function form(Schema $schema): Schema
{
@@ -114,6 +102,7 @@ class PlanResource extends Resource
return $query->where('accept_oxapay', true);
}
}
return $query;
}),
])

View File

@@ -3,7 +3,6 @@
namespace App\Filament\Resources\PlanResource\Pages;
use App\Filament\Resources\PlanResource;
use Filament\Actions;
use Filament\Notifications\Notification;
use Filament\Resources\Pages\CreateRecord;

View File

@@ -2,9 +2,8 @@
namespace App\Filament\Resources\PlanResource\Pages;
use Filament\Actions\DeleteAction;
use App\Filament\Resources\PlanResource;
use Filament\Actions;
use Filament\Actions\DeleteAction;
use Filament\Notifications\Notification;
use Filament\Resources\Pages\EditRecord;
@@ -18,6 +17,7 @@ class EditPlan extends EditRecord
DeleteAction::make(),
];
}
protected function getRedirectUrl(): ?string
{
return $this->getResource()::getUrl('index');

View File

@@ -2,9 +2,8 @@
namespace App\Filament\Resources\PlanResource\Pages;
use Filament\Actions\CreateAction;
use App\Filament\Resources\PlanResource;
use Filament\Actions;
use Filament\Actions\CreateAction;
use Filament\Resources\Pages\ListRecords;
class ListPlans extends ListRecords

View File

@@ -2,50 +2,44 @@
namespace App\Filament\Resources;
use Filament\Schemas\Schema;
use Filament\Actions\ViewAction;
use Filament\Actions\EditAction;
use Filament\Actions\DeleteAction;
use Filament\Actions\Action;
use Filament\Actions\BulkActionGroup;
use Filament\Actions\DeleteBulkAction;
use Filament\Actions\BulkAction;
use Illuminate\Support\Collection;
use Illuminate\Support\Facades\Mail;
use App\Mail\TicketResponseNotification;
use App\Filament\Resources\TicketResource\RelationManagers\ResponsesRelationManager;
use App\Filament\Resources\TicketResource\Pages\ListTickets;
use App\Filament\Resources\TicketResource\Pages\CreateTicket;
use App\Filament\Resources\TicketResource\Pages\EditTicket;
use App\Filament\Resources\TicketResource\Pages;
use App\Filament\Resources\TicketResource\RelationManagers;
use App\Filament\Resources\TicketResource\Pages\ListTickets;
use App\Filament\Resources\TicketResource\RelationManagers\ResponsesRelationManager;
use App\Mail\TicketResponseNotification;
use App\Models\Ticket;
use App\Models\TicketResponse;
use Filament\Forms;
use Filament\Actions\Action;
use Filament\Actions\BulkAction;
use Filament\Actions\BulkActionGroup;
use Filament\Actions\DeleteAction;
use Filament\Actions\DeleteBulkAction;
use Filament\Actions\EditAction;
use Filament\Actions\ViewAction;
use Filament\Forms\Components\DatePicker;
use Filament\Forms\Components\Repeater;
use Filament\Forms\Components\Select;
use Filament\Forms\Components\Textarea;
use Filament\Forms\Components\TextInput;
use Filament\Notifications\Notification;
use Filament\Resources\Resource;
use Filament\Schemas\Schema;
use Filament\Tables;
use Filament\Tables\Columns\BadgeColumn;
use Filament\Tables\Columns\TextColumn;
use Filament\Tables\Filters\Filter;
use Filament\Tables\Filters\SelectFilter;
use Filament\Tables\Table;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\SoftDeletingScope;
use Illuminate\Support\Collection;
use Illuminate\Support\Facades\Mail;
use Illuminate\Support\HtmlString;
class TicketResource extends Resource
{
protected static ?string $model = Ticket::class;
protected static string | \BackedEnum | null $navigationIcon = 'heroicon-o-ticket';
protected static string | \UnitEnum | null $navigationGroup = 'Support';
protected static string|\BackedEnum|null $navigationIcon = 'heroicon-o-ticket';
protected static string|\UnitEnum|null $navigationGroup = 'Support';
public static function form(Schema $schema): Schema
{
@@ -99,7 +93,7 @@ class TicketResource extends Resource
->colors([
'success' => fn ($state) => $state === 'open',
'warning' => fn ($state) => $state === 'pending',
'danger' => fn ($state) => $state === 'closed',
'danger' => fn ($state) => $state === 'closed',
])
->sortable(),
TextColumn::make('created_at')
@@ -165,8 +159,8 @@ class TicketResource extends Resource
// Ticket Subject & Message
$html .= '<div class="bg-gray-100 dark:bg-gray-900 border p-2 rounded-md">';
$html .= '<h6 class="xs font-semibold text-gray-800 dark:text-gray-100">Subject: ' . e($ticket->subject) . '</h6>';
$html .= '<p class="mt-1 text-gray-700 dark:text-gray-300">Message: ' . nl2br(e($ticket->message)) . '</p>';
$html .= '<h6 class="xs font-semibold text-gray-800 dark:text-gray-100">Subject: '.e($ticket->subject).'</h6>';
$html .= '<p class="mt-1 text-gray-700 dark:text-gray-300">Message: '.nl2br(e($ticket->message)).'</p>';
$html .= '</div>';
// Responses Section
@@ -175,10 +169,10 @@ class TicketResource extends Resource
foreach ($ticket->responses as $response) {
$html .= '<div class="rounded-md border p-2 bg-gray-50 dark:bg-gray-800">';
$html .= '<div class="text-xs text-gray-600 dark:text-gray-300">';
$html .= '<strong>' . e($response->user->name) . '</strong>';
$html .= '<span class="ml-2 text-[11px] text-gray-500">' . e($response->created_at->diffForHumans()) . '</span>';
$html .= '<strong>'.e($response->user->name).'</strong>';
$html .= '<span class="ml-2 text-[11px] text-gray-500">'.e($response->created_at->diffForHumans()).'</span>';
$html .= '</div>';
$html .= '<p class="mt-1 text-gray-800 dark:text-gray-100">' . nl2br(e($response->response)) . '</p>';
$html .= '<p class="mt-1 text-gray-800 dark:text-gray-100">'.nl2br(e($response->response)).'</p>';
$html .= '</div>';
}

View File

@@ -3,7 +3,6 @@
namespace App\Filament\Resources\TicketResource\Pages;
use App\Filament\Resources\TicketResource;
use Filament\Actions;
use Filament\Resources\Pages\CreateRecord;
class CreateTicket extends CreateRecord

View File

@@ -2,9 +2,8 @@
namespace App\Filament\Resources\TicketResource\Pages;
use Filament\Actions\DeleteAction;
use App\Filament\Resources\TicketResource;
use Filament\Actions;
use Filament\Actions\DeleteAction;
use Filament\Resources\Pages\EditRecord;
class EditTicket extends EditRecord

View File

@@ -2,9 +2,8 @@
namespace App\Filament\Resources\TicketResource\Pages;
use Filament\Actions\CreateAction;
use App\Filament\Resources\TicketResource;
use Filament\Actions;
use Filament\Actions\CreateAction;
use Filament\Resources\Pages\ListRecords;
class ListTickets extends ListRecords

View File

@@ -2,22 +2,17 @@
namespace App\Filament\Resources\TicketResource\RelationManagers;
use Filament\Schemas\Schema;
use Filament\Actions\CreateAction;
use Filament\Actions\EditAction;
use Filament\Actions\DeleteAction;
use Filament\Actions\BulkActionGroup;
use Filament\Actions\CreateAction;
use Filament\Actions\DeleteAction;
use Filament\Actions\DeleteBulkAction;
use Filament\Forms;
use Filament\Actions\EditAction;
use Filament\Forms\Components\Select;
use Filament\Forms\Components\Textarea;
use Filament\Forms\Components\TextInput;
use Filament\Resources\RelationManagers\RelationManager;
use Filament\Tables;
use Filament\Schemas\Schema;
use Filament\Tables\Columns\TextColumn;
use Filament\Tables\Table;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\SoftDeletingScope;
class ResponsesRelationManager extends RelationManager
{

View File

@@ -2,45 +2,38 @@
namespace App\Filament\Resources;
use Filament\Schemas\Schema;
use Filament\Actions\EditAction;
use Filament\Actions\BulkActionGroup;
use Filament\Actions\DeleteBulkAction;
use Filament\Actions\BulkAction;
use Exception;
use App\Filament\Resources\UserResource\Pages\ListUsers;
use App\Filament\Resources\UserResource\Pages\CreateUser;
use App\Filament\Resources\UserResource\Pages\EditUser;
use App\Filament\Resources\UserResource\Pages;
use App\Filament\Resources\UserResource\Pages\ListUsers;
use App\Filament\Resources\UserResource\RelationManagers\LogsRelationManager;
use App\Filament\Resources\UserResource\RelationManagers\UsageLogsRelationManager;
use App\Models\User;
use DB;
use Filament\Actions\Action;
use Filament\Forms;
use Exception;
use Filament\Actions\BulkAction;
use Filament\Actions\BulkActionGroup;
use Filament\Actions\DeleteBulkAction;
use Filament\Actions\EditAction;
use Filament\Forms\Components\DatePicker;
use Filament\Forms\Components\Select;
use Filament\Forms\Components\TextInput;
use Filament\Notifications\Notification;
use Filament\Resources\Resource;
use Filament\Tables;
use Filament\Schemas\Schema;
use Filament\Tables\Columns\BadgeColumn;
use Filament\Tables\Columns\IconColumn;
use Filament\Tables\Columns\TextColumn;
use Filament\Tables\Filters\SelectFilter;
use Filament\Tables\Table;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\Collection;
use Illuminate\Database\Eloquent\SoftDeletingScope;
use Illuminate\Support\Facades\Response;
class UserResource extends Resource
{
protected static ?string $model = User::class;
protected static string | \BackedEnum | null $navigationIcon = 'heroicon-o-users';
protected static string|\BackedEnum|null $navigationIcon = 'heroicon-o-users';
protected static string | \UnitEnum | null $navigationGroup = 'Admin';
protected static string|\UnitEnum|null $navigationGroup = 'Admin';
public static function form(Schema $schema): Schema
{
@@ -58,7 +51,7 @@ class UserResource extends Resource
->label('Email Verification Status')
->disabled()
->formatStateUsing(fn ($record) => $record->email_verified_at ?? ''
? 'Verified at ' . $record->email_verified_at->toDateTimeString()
? 'Verified at '.$record->email_verified_at->toDateTimeString()
: 'Not Verified')
->helperText('Shows whether the user has verified their email address.'),
TextInput::make('stripe_id')
@@ -103,7 +96,7 @@ class UserResource extends Resource
->falseIcon('heroicon-o-x-circle')
->trueColor('success')
->falseColor('danger')
->getStateUsing(fn ($record) => !is_null($record->email_verified_at))
->getStateUsing(fn ($record) => ! is_null($record->email_verified_at))
->sortable(),
BadgeColumn::make('level')
->label('User Level')
@@ -118,7 +111,7 @@ class UserResource extends Resource
->colors([
'success' => fn ($state) => $state === 'Normal User',
'danger' => fn ($state) => $state === 'Banned',
'warning' => fn ($state) => $state === 'Super Admin',
'warning' => fn ($state) => $state === 'Super Admin',
])
->sortable(),
TextColumn::make('stripe_id')->label('Stripe ID')->copyable(),
@@ -179,7 +172,6 @@ class UserResource extends Resource
->whereIn('id', $records->pluck('id'))
->update(['level' => $newLevel]);
Notification::make()
->title('User Level Updated')
->body('The selected users\' levels have been updated successfully.')
@@ -219,6 +211,4 @@ class UserResource extends Resource
'edit' => EditUser::route('/{record}/edit'),
];
}
}

View File

@@ -3,7 +3,6 @@
namespace App\Filament\Resources\UserResource\Pages;
use App\Filament\Resources\UserResource;
use Filament\Actions;
use Filament\Resources\Pages\CreateRecord;
class CreateUser extends CreateRecord

View File

@@ -2,11 +2,10 @@
namespace App\Filament\Resources\UserResource\Pages;
use Filament\Actions\DeleteAction;
use App\Filament\Resources\UserResource;
use App\Models\User;
use Filament\Actions;
use Filament\Actions\Action;
use Filament\Actions\DeleteAction;
use Filament\Resources\Pages\EditRecord;
use Illuminate\Support\Facades\Response;
@@ -79,7 +78,7 @@ class EditUser extends EditRecord
function () use ($csvContent) {
echo $csvContent;
},
"user_{$record->id}_report_" . now()->format('Ymd_His') . '.csv',
"user_{$record->id}_report_".now()->format('Ymd_His').'.csv',
['Content-Type' => 'text/csv']
);
})

View File

@@ -2,9 +2,8 @@
namespace App\Filament\Resources\UserResource\Pages;
use Filament\Actions\CreateAction;
use App\Filament\Resources\UserResource;
use Filament\Actions;
use Filament\Actions\CreateAction;
use Filament\Resources\Pages\ListRecords;
class ListUsers extends ListRecords

View File

@@ -2,19 +2,16 @@
namespace App\Filament\Resources\UserResource\RelationManagers;
use Filament\Tables\Columns\TextColumn;
use Filament\Actions\BulkActionGroup;
use Filament\Forms;
use Filament\Forms\Form;
use Filament\Resources\RelationManagers\RelationManager;
use Filament\Tables;
use Filament\Tables\Columns\TextColumn;
use Filament\Tables\Table;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\SoftDeletingScope;
class LogsRelationManager extends RelationManager
{
protected static string $relationship = 'logs';
protected static ?string $title = 'General Logs';
public function table(Table $table): Table
@@ -37,15 +34,15 @@ class LogsRelationManager extends RelationManager
//
])
->headerActions([
//Tables\Actions\CreateAction::make(),
// Tables\Actions\CreateAction::make(),
])
->recordActions([
//Tables\Actions\EditAction::make(),
//Tables\Actions\DeleteAction::make(),
// Tables\Actions\EditAction::make(),
// Tables\Actions\DeleteAction::make(),
])
->toolbarActions([
BulkActionGroup::make([
//Tables\Actions\DeleteBulkAction::make(),
// Tables\Actions\DeleteBulkAction::make(),
]),
]);
}

View File

@@ -2,15 +2,11 @@
namespace App\Filament\Resources\UserResource\RelationManagers;
use Filament\Tables\Columns\TextColumn;
use Filament\Actions\BulkActionGroup;
use Filament\Forms;
use Filament\Forms\Form;
use Filament\Resources\RelationManagers\RelationManager;
use Filament\Tables;
use Filament\Tables\Columns\TextColumn;
use Filament\Tables\Table;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\SoftDeletingScope;
class UsageLogsRelationManager extends RelationManager
{
@@ -42,15 +38,15 @@ class UsageLogsRelationManager extends RelationManager
//
])
->headerActions([
//Tables\Actions\CreateAction::make(),
// Tables\Actions\CreateAction::make(),
])
->recordActions([
//Tables\Actions\EditAction::make(),
//Tables\Actions\DeleteAction::make(),
// Tables\Actions\EditAction::make(),
// Tables\Actions\DeleteAction::make(),
])
->toolbarActions([
BulkActionGroup::make([
//Tables\Actions\DeleteBulkAction::make(),
// Tables\Actions\DeleteBulkAction::make(),
]),
]);
}

View File

@@ -79,6 +79,7 @@ class StatsOverview extends BaseWidget
if ($today == $yesterday) {
return null;
}
return $today > $yesterday ? 'heroicon-o-arrow-up' : 'heroicon-o-arrow-down';
}
@@ -87,6 +88,7 @@ class StatsOverview extends BaseWidget
if ($today == $yesterday) {
return 'gray';
}
return $today > $yesterday ? 'success' : 'danger';
}
@@ -95,6 +97,7 @@ class StatsOverview extends BaseWidget
if ($period === 'yesterday') {
return User::where('created_at', '<', Carbon::today('UTC')->startOfDay())->count();
}
return User::count();
}
@@ -111,6 +114,7 @@ class StatsOverview extends BaseWidget
if ($period === 'yesterday') {
return Log::where('created_at', '<', Carbon::today('UTC')->startOfDay())->count();
}
return Log::count();
}
@@ -131,6 +135,7 @@ class StatsOverview extends BaseWidget
->where('created_at', '<', Carbon::today('UTC')->startOfDay())
->count();
}
return User::whereNotNull('stripe_id')->count();
}
@@ -139,6 +144,7 @@ class StatsOverview extends BaseWidget
if ($period === 'yesterday') {
return PremiumEmail::where('created_at', '<', Carbon::today('UTC')->startOfDay())->count();
}
return PremiumEmail::count();
}