chore: code styling via pint
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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([
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -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');
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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([
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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([
|
||||
//
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -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');
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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([
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -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');
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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;
|
||||
}),
|
||||
])
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -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');
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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>';
|
||||
}
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
{
|
||||
|
||||
@@ -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'),
|
||||
];
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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']
|
||||
);
|
||||
})
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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(),
|
||||
]),
|
||||
]);
|
||||
}
|
||||
|
||||
@@ -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(),
|
||||
]),
|
||||
]);
|
||||
}
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user