shaan
shaan
Explore posts from servers
TLCTuto's Laravel Corner
Created by shaan on 7/1/2024 in #💡filament
https://discord.com/channels/883083792112300104/1257389318503268362
Please help me to solve this
2 replies
FFilament
Created by shaan on 7/1/2024 in #❓┊help
Slow Query - Slow Endpoints in Filamentphp v3
No description
4 replies
FFilament
Created by shaan on 6/25/2024 in #❓┊help
Pdf generation and sending Database notifications takes too much time.
Pdf generation and sending Database notifications takes too much time. like 5 to 6s. I have created a Job too. still its taking same amount of time. Here is my code for Job
php class ProcessLetterApproval implements ShouldQueue
{

protected $letter;

protected $userId;

public function __construct(Letter $letter, $userId)
{
$this->letter = $letter;
$this->userId = $userId;
}

public function handle()
{
$this->letter->update([
'status' => 'approved',
]);

$pdf = PDF::loadView('letter-template', ['letter' => $this->letter]);

$fileName = 'letter_'.$this->letter->id.'_'.time().'.pdf';

Storage::put('public/letters/'.$fileName, $pdf->output());


$this->letter->update(['file_path' => 'letters/'.$fileName]);
}

protected function sendNotification()
{
$recipient = User::find($this->letter->user_id);

Notification::make()
->body("Your {$this->letter->template->name} Letter Request has been changed")
->actions([
Action::make('index')
->url(LetterResource::getUrl('index',
['record' => $this->letter])),
])
->sendToDatabase($recipient);
}
}
php class ProcessLetterApproval implements ShouldQueue
{

protected $letter;

protected $userId;

public function __construct(Letter $letter, $userId)
{
$this->letter = $letter;
$this->userId = $userId;
}

public function handle()
{
$this->letter->update([
'status' => 'approved',
]);

$pdf = PDF::loadView('letter-template', ['letter' => $this->letter]);

$fileName = 'letter_'.$this->letter->id.'_'.time().'.pdf';

Storage::put('public/letters/'.$fileName, $pdf->output());


$this->letter->update(['file_path' => 'letters/'.$fileName]);
}

protected function sendNotification()
{
$recipient = User::find($this->letter->user_id);

Notification::make()
->body("Your {$this->letter->template->name} Letter Request has been changed")
->actions([
Action::make('index')
->url(LetterResource::getUrl('index',
['record' => $this->letter])),
])
->sendToDatabase($recipient);
}
}
And Here is the LetterEdit
php protected function getHeaderActions(): array
{
return [
Action::make('approve')
->action(function (Letter $record) {
$this->record->update([
'status' => 'approved',
'approved_at' => now(),
'approved_by' => auth()->user()->id,
]);
ProcessLetterApproval::dispatch($record, auth()->id());
$this->redirect(static::getResource()::getUrl('index'));
})
];
}
php protected function getHeaderActions(): array
{
return [
Action::make('approve')
->action(function (Letter $record) {
$this->record->update([
'status' => 'approved',
'approved_at' => now(),
'approved_by' => auth()->user()->id,
]);
ProcessLetterApproval::dispatch($record, auth()->id());
$this->redirect(static::getResource()::getUrl('index'));
})
];
}
16 replies
FFilament
Created by shaan on 6/20/2024 in #❓┊help
Issues with Assigning multiple roles
php Forms\Components\Select::make('roles')
->inlineLabel()
->searchable()
->multiple()
->visible(fn () => auth()->user()->can('approveAny', User::class))
->options(Role::all()->pluck('description', 'id')->toArray())
->afterStateHydrated(fn ($set, $record) => $set('roles',
$record?->roles->pluck('id')->toArray()))
->preload(),
php Forms\Components\Select::make('roles')
->inlineLabel()
->searchable()
->multiple()
->visible(fn () => auth()->user()->can('approveAny', User::class))
->options(Role::all()->pluck('description', 'id')->toArray())
->afterStateHydrated(fn ($set, $record) => $set('roles',
$record?->roles->pluck('id')->toArray()))
->preload(),
this is the code in UserResource, and
php private function assignRole(User $user, UserData $user_data): void
{
$has_permission = auth()->user()->can('approveAny', User::class);
if ($has_permission && $user_data->role) {
$user->assignRole($user_data->role);
return;
}

$this->revertToGuestRole($user);
}

private function revertToGuestRole(User $user): void
{
$guest_role = config('defaults.guest_role_id') ?: -1;
$guest_role = Role::find($guest_role);

if ($guest_role) {
$user->roles()->sync([$guest_role]);
}
}
php private function assignRole(User $user, UserData $user_data): void
{
$has_permission = auth()->user()->can('approveAny', User::class);
if ($has_permission && $user_data->role) {
$user->assignRole($user_data->role);
return;
}

$this->revertToGuestRole($user);
}

private function revertToGuestRole(User $user): void
{
$guest_role = config('defaults.guest_role_id') ?: -1;
$guest_role = Role::find($guest_role);

if ($guest_role) {
$user->roles()->sync([$guest_role]);
}
}
these are methods in UserServices, that i use to assign. However, i could not track the issue. This is the error it give while i try to save after selecting multiple roles. trying to implement multiple() https://flareapp.io/share/LPdv3Mg5
1 replies
FFilament
Created by shaan on 6/17/2024 in #❓┊help
Editor js or full featured editor for filament
Is there any? which one is the best?
4 replies
FFilament
Created by shaan on 6/7/2024 in #❓┊help
is there any titleCase() for filament tables?
to display the table values in title case
6 replies
TLCTuto's Laravel Corner
Created by shaan on 10/30/2023 in #💡filament
Old value after failed validation
No description
3 replies
TLCTuto's Laravel Corner
Created by shaan on 10/6/2023 in #🚀laravel
n+1
public function index(Request $request) { $search_query = $request->get('search'); $nebulizations = Nebulization::query(); if ($search_query){ $nebulizations->search($search_query); } $nebulizations = $nebulizations->with(['patient','nurse','medicineNebulizations'])->latest()->paginate(10)->withQueryString(); return view('nebulizations.index', compact('nebulizations')); } this gives me 10queries, and it takes 1s to load a single record. the medicine relations are coming from MedicineNebulization
14 replies
TLCTuto's Laravel Corner
Created by shaan on 8/29/2023 in #🚀laravel
Fetch data from API and fill form
is there anyway to achieve this in filament? a form with a text input, and a fetch button. enter user's social security number, and fetch all other data and fill the form automatically.
7 replies