Add marketing demo toggle and tolerate string flags
This commit is contained in:
@@ -97,6 +97,10 @@ class EventResource extends Resource
|
||||
Toggle::make('is_active')
|
||||
->label(__('admin.events.fields.is_active'))
|
||||
->default(true),
|
||||
Toggle::make('settings.marketing_demo')
|
||||
->label(__('admin.events.fields.marketing_demo'))
|
||||
->helperText(__('admin.events.fields.marketing_demo_help'))
|
||||
->default(false),
|
||||
KeyValue::make('settings')
|
||||
->label(__('admin.events.fields.settings'))
|
||||
->keyLabel(__('admin.common.key'))
|
||||
|
||||
@@ -419,7 +419,15 @@ class MarketingController extends Controller
|
||||
public function demo()
|
||||
{
|
||||
$event = Event::query()
|
||||
->where('settings->marketing_demo', true)
|
||||
->where(function ($query) {
|
||||
$query
|
||||
->where('settings->marketing_demo', true)
|
||||
->orWhere('settings->marketing_demo', 'true')
|
||||
->orWhere('settings->marketing_demo', '1')
|
||||
->orWhere('settings->demo', true)
|
||||
->orWhere('settings->demo', 'true')
|
||||
->orWhere('settings->demo', '1');
|
||||
})
|
||||
->latest('id')
|
||||
->first();
|
||||
$joinToken = null;
|
||||
|
||||
@@ -364,6 +364,8 @@ return [
|
||||
'type' => 'Eventtyp',
|
||||
'default_locale' => 'Standardsprache',
|
||||
'is_active' => 'Aktiv',
|
||||
'marketing_demo' => 'Marketing-Demo',
|
||||
'marketing_demo_help' => 'Markiert dieses Event als Demo-Event für die Marketing-Seite.',
|
||||
'settings' => 'Einstellungen',
|
||||
'join_link' => 'Einladungslink',
|
||||
],
|
||||
|
||||
@@ -363,6 +363,9 @@ return [
|
||||
'date' => 'Event Date',
|
||||
'type' => 'Event Type',
|
||||
'default_locale' => 'Default Locale',
|
||||
'is_active' => 'Active',
|
||||
'marketing_demo' => 'Marketing demo',
|
||||
'marketing_demo_help' => 'Marks this event as the demo event for the marketing page.',
|
||||
'settings' => 'Settings',
|
||||
'join_link' => 'Invitation Link',
|
||||
],
|
||||
|
||||
@@ -30,6 +30,30 @@ class DemoPageTest extends TestCase
|
||||
);
|
||||
}
|
||||
|
||||
public function test_demo_page_accepts_string_demo_flags(): void
|
||||
{
|
||||
$eventA = Event::factory()->create([
|
||||
'settings' => ['marketing_demo' => 'true'],
|
||||
]);
|
||||
|
||||
$eventB = Event::factory()->create([
|
||||
'settings' => ['demo' => 'true'],
|
||||
]);
|
||||
|
||||
$joinToken = $eventB->joinTokens()->latest('id')->first();
|
||||
|
||||
$this->assertNotNull($eventA);
|
||||
$this->assertNotNull($joinToken);
|
||||
|
||||
$response = $this->get('/de/demo');
|
||||
|
||||
$response->assertOk();
|
||||
$response->assertInertia(fn (Assert $page) => $page
|
||||
->component('marketing/Demo')
|
||||
->where('demoToken', $joinToken->token)
|
||||
);
|
||||
}
|
||||
|
||||
public function test_demo_page_renders_without_marketing_demo_event(): void
|
||||
{
|
||||
$response = $this->get('/de/demo');
|
||||
|
||||
Reference in New Issue
Block a user