neverything
neverything
FFilament
Created by neverything on 12/11/2024 in #❓┊help
Import CSV with array column and urls with commas
The solution was to use castStateUsing on the ImportColumn:

ImportColumn::make('extra_images')
->rules(['nullable', 'array', 'max:20'])
->castStateUsing(function (?string $state): array {
if (blank($state)) {
return [];
}

preg_match_all('/https?:\/\/[^\s,]+/', $state, $matches);

$filtered = array_filter($matches[0] ?? [], function ($url) {
return filter_var($url, FILTER_VALIDATE_URL);
});

return array_unique($filtered);
}),

ImportColumn::make('extra_images')
->rules(['nullable', 'array', 'max:20'])
->castStateUsing(function (?string $state): array {
if (blank($state)) {
return [];
}

preg_match_all('/https?:\/\/[^\s,]+/', $state, $matches);

$filtered = array_filter($matches[0] ?? [], function ($url) {
return filter_var($url, FILTER_VALIDATE_URL);
});

return array_unique($filtered);
}),
4 replies
FFilament
Created by Harold on 11/14/2024 in #❓┊help
How to disable the previous button on Wizard Form
I did it like this for now: $wizard->previousAction(fn (StaticAction $action) => $action->extraAttributes(['style' => 'display: none;']));
2 replies
FFilament
Created by neverything on 12/8/2023 in #❓┊help
Question about tenants with jetstream teams and multiple resources
You will have to take care of team settings and roles, user invites, two factor auth and api tokens yourself, if you don’t use Jetstream.
29 replies
FFilament
Created by neverything on 12/8/2023 in #❓┊help
Question about tenants with jetstream teams and multiple resources
As mentioned by @toeknee, going forward I'll be phasing out most of the Jetstream stuff as I don't need it anymore and want to use the stuff Filament provides more.
29 replies
FFilament
Created by neverything on 12/8/2023 in #❓┊help
Question about tenants with jetstream teams and multiple resources
I do use Jetstream, leaving out most of the UI. The login is Filament, but I added the team settings page and user profile page from Jetstream using a customized version of https://github.com/stephenjude/filament-jetstream
29 replies
FFilament
Created by neverything on 12/8/2023 in #❓┊help
Question about tenants with jetstream teams and multiple resources
Funny that you mention that, I'm going to do the same soon
29 replies
FFilament
Created by neverything on 12/8/2023 in #❓┊help
Question about tenants with jetstream teams and multiple resources
Yes, this was from the first version using Livewire and Jetstream directly. Now it uses the tenant menu from Filament
29 replies
FFilament
Created by neverything on 12/8/2023 in #❓┊help
Question about tenants with jetstream teams and multiple resources
We have single login for the teams which goes to the main Filament admin panel.
29 replies
FFilament
Created by neverything on 12/8/2023 in #❓┊help
Question about tenants with jetstream teams and multiple resources
Not sure I understand your question. Yes, I’m using Jetstream teams as tenant in my Filament app in production.
29 replies
FFilament
Created by Bart - EffectConnect on 8/31/2024 in #❓┊help
Laravel Spark Stripe and Filament - subscriptions per user
<div>
@if ($status)
@if ($status['type'] === 'on-trial')
<x-filament::badge tag="a" tooltip="Get a paid subscription to keep using the app." href="{{ $billingPortalUrl }}" color="warning">
{{ $status['message'] }}
</x-filament::badge>
@elseif ($status['type'] === 'active')
<x-filament::badge tag="a" tooltip="You are awesome! Thank you for being a paying customer." href="{{ $billingPortalUrl }}" color="success">
{{ $status['message'] }}
</x-filament::badge>
@elseif ($status['type'] === 'needs-subscription')
<x-filament::badge tag="a" tooltip="You need an active subscription to use all the features." href="{{ $billingPortalUrl }}" color="danger">
{{ $status['message'] }}
</x-filament::badge>
@elseif ($status['type'] === 'free')
<x-filament::badge tooltip="Thank you for testing this little app." color="gray">
{{ $status['message'] }}
</x-filament::badge>
@endif
@endif
</div>
<div>
@if ($status)
@if ($status['type'] === 'on-trial')
<x-filament::badge tag="a" tooltip="Get a paid subscription to keep using the app." href="{{ $billingPortalUrl }}" color="warning">
{{ $status['message'] }}
</x-filament::badge>
@elseif ($status['type'] === 'active')
<x-filament::badge tag="a" tooltip="You are awesome! Thank you for being a paying customer." href="{{ $billingPortalUrl }}" color="success">
{{ $status['message'] }}
</x-filament::badge>
@elseif ($status['type'] === 'needs-subscription')
<x-filament::badge tag="a" tooltip="You need an active subscription to use all the features." href="{{ $billingPortalUrl }}" color="danger">
{{ $status['message'] }}
</x-filament::badge>
@elseif ($status['type'] === 'free')
<x-filament::badge tooltip="Thank you for testing this little app." color="gray">
{{ $status['message'] }}
</x-filament::badge>
@endif
@endif
</div>
11 replies
FFilament
Created by Bart - EffectConnect on 8/31/2024 in #❓┊help
Laravel Spark Stripe and Filament - subscriptions per user
<?php

namespace App\Livewire\Project;

use App\Models\Project;
use Filament\Facades\Filament;
use Livewire\Component;

class SubscriptionStatus extends Component
{
protected ?Project $project;

public ?array $status;

public ?string $billingPortalUrl;

public function mount(): void
{
$this->project = Filament::getTenant();
$this->status = $this->project->subscription_status;
$this->billingPortalUrl = Filament::getTenantBillingUrl();
}

public function render()
{
return view('livewire.project.subscription-status');
}
}
<?php

namespace App\Livewire\Project;

use App\Models\Project;
use Filament\Facades\Filament;
use Livewire\Component;

class SubscriptionStatus extends Component
{
protected ?Project $project;

public ?array $status;

public ?string $billingPortalUrl;

public function mount(): void
{
$this->project = Filament::getTenant();
$this->status = $this->project->subscription_status;
$this->billingPortalUrl = Filament::getTenantBillingUrl();
}

public function render()
{
return view('livewire.project.subscription-status');
}
}
`
11 replies
FFilament
Created by Bart - EffectConnect on 8/31/2024 in #❓┊help
Laravel Spark Stripe and Filament - subscriptions per user
Maybe this helps to render a banner
11 replies
FFilament
Created by Bart - EffectConnect on 8/31/2024 in #❓┊help
Laravel Spark Stripe and Filament - subscriptions per user
On the admin panel, I use a render hook, to display the subscription status: ->renderHook('panels::global-search.before', fn (): string => Blade::render('@livewire('project.subscription-status')'))
11 replies
FFilament
Created by Bart - EffectConnect on 8/31/2024 in #❓┊help
Laravel Spark Stripe and Filament - subscriptions per user
Might be useful in general to see what you can do, I set this up, not per user, but it's totally doable: https://silvanhagen.com/writing/free-users-filament-laravel-spark/
11 replies
FFilament
Created by Nicole on 8/30/2024 in #❓┊help
Display Tenant Profile Page
And my blade template looks like this:
<x-filament-panels::page>
<x-filament-panels::form id="form" wire:submit="save">
{{ $this->form }}

<x-filament-panels::form.actions
:actions="$this->getCachedFormActions()"
:full-width="$this->hasFullWidthFormActions()"
/>
</x-filament-panels::form>
</x-filament-panels::page>
<x-filament-panels::page>
<x-filament-panels::form id="form" wire:submit="save">
{{ $this->form }}

<x-filament-panels::form.actions
:actions="$this->getCachedFormActions()"
:full-width="$this->hasFullWidthFormActions()"
/>
</x-filament-panels::form>
</x-filament-panels::page>
11 replies
FFilament
Created by Nicole on 8/30/2024 in #❓┊help
Display Tenant Profile Page
Did you add it to your panel provider? I have ->tenantProfile(EditProjectProfile::class) with EditProjectProfile being my tenant profile page.
11 replies
FFilament
Created by Nicole on 8/30/2024 in #❓┊help
Display Tenant Profile Page
Hey, what seems to be missing?
11 replies
FFilament
Created by PabloZagni on 8/14/2024 in #❓┊help
Show file uploaded in Infolist
I would probably do it with a custom entry, you will get access to the record and can use the Laravel storage helpers for download buttons and such: https://filamentphp.com/docs/3.x/infolists/entries/custom
14 replies
FFilament
Created by Luiz on 7/26/2024 in #❓┊help
image upload using URL
You could write a custom artisan command to import the images into the Spatie Media Library, that's probably what I would do.
11 replies
FFilament
Created by Luiz on 7/26/2024 in #❓┊help
image upload using URL
11 replies