Company Search added

This commit is contained in:
2025-10-17 09:20:35 +02:00
parent 3ce0181b25
commit d0574f4d91
10 changed files with 59 additions and 10 deletions
+1 -1
View File
@@ -13,7 +13,7 @@
"/Applications/Herd.app/Contents/Resources/herd-mcp.phar" "/Applications/Herd.app/Contents/Resources/herd-mcp.phar"
], ],
"env": { "env": {
"SITE_PATH": "/Users/bobmolitor/Herd/trusted_ai" "SITE_PATH": "/Users/sebastianfrohlich/Herd/frontend"
} }
} }
} }
+2 -2
View File
@@ -11,7 +11,7 @@ The Laravel Boost guidelines are specifically curated by Laravel maintainers for
## Foundational Context ## Foundational Context
This application is a Laravel application and its main Laravel ecosystems package & versions are below. You are an expert with them all. Ensure you abide by these specific packages & versions. This application is a Laravel application and its main Laravel ecosystems package & versions are below. You are an expert with them all. Ensure you abide by these specific packages & versions.
- php - 8.4.13 - php - 8.4.1
- laravel/fortify (FORTIFY) - v1 - laravel/fortify (FORTIFY) - v1
- laravel/framework (LARAVEL) - v12 - laravel/framework (LARAVEL) - v12
- laravel/prompts (PROMPTS) - v0 - laravel/prompts (PROMPTS) - v0
@@ -213,7 +213,7 @@ avatar, badge, brand, breadcrumbs, button, callout, checkbox, dropdown, field, h
## Livewire Core ## Livewire Core
- Use the `search-docs` tool to find exact version specific documentation for how to write Livewire & Livewire tests. - Use the `search-docs` tool to find exact version specific documentation for how to write Livewire & Livewire tests.
- Use the `php artisan make:livewire [Posts\\CreatePost]` artisan command to create new components - Use the `php artisan make:livewire [Posts\CreatePost]` artisan command to create new components
- State should live on the server, with the UI reflecting it. - State should live on the server, with the UI reflecting it.
- All Livewire requests hit the Laravel backend, they're like regular HTTP requests. Always validate form data, and run authorization checks in Livewire actions. - All Livewire requests hit the Laravel backend, they're like regular HTTP requests. Always validate form data, and run authorization checks in Livewire actions.
+1 -1
View File
@@ -13,7 +13,7 @@
"/Applications/Herd.app/Contents/Resources/herd-mcp.phar" "/Applications/Herd.app/Contents/Resources/herd-mcp.phar"
], ],
"env": { "env": {
"SITE_PATH": "/Users/bobmolitor/Herd/trusted_ai" "SITE_PATH": "/Users/sebastianfrohlich/Herd/frontend"
} }
} }
} }
+2 -2
View File
@@ -8,7 +8,7 @@ The Laravel Boost guidelines are specifically curated by Laravel maintainers for
## Foundational Context ## Foundational Context
This application is a Laravel application and its main Laravel ecosystems package & versions are below. You are an expert with them all. Ensure you abide by these specific packages & versions. This application is a Laravel application and its main Laravel ecosystems package & versions are below. You are an expert with them all. Ensure you abide by these specific packages & versions.
- php - 8.4.13 - php - 8.4.1
- laravel/fortify (FORTIFY) - v1 - laravel/fortify (FORTIFY) - v1
- laravel/framework (LARAVEL) - v12 - laravel/framework (LARAVEL) - v12
- laravel/prompts (PROMPTS) - v0 - laravel/prompts (PROMPTS) - v0
@@ -210,7 +210,7 @@ avatar, badge, brand, breadcrumbs, button, callout, checkbox, dropdown, field, h
## Livewire Core ## Livewire Core
- Use the `search-docs` tool to find exact version specific documentation for how to write Livewire & Livewire tests. - Use the `search-docs` tool to find exact version specific documentation for how to write Livewire & Livewire tests.
- Use the `php artisan make:livewire [Posts\\CreatePost]` artisan command to create new components - Use the `php artisan make:livewire [Posts\CreatePost]` artisan command to create new components
- State should live on the server, with the UI reflecting it. - State should live on the server, with the UI reflecting it.
- All Livewire requests hit the Laravel backend, they're like regular HTTP requests. Always validate form data, and run authorization checks in Livewire actions. - All Livewire requests hit the Laravel backend, they're like regular HTTP requests. Always validate form data, and run authorization checks in Livewire actions.
+2 -3
View File
@@ -1,13 +1,12 @@
{ {
"agents": [ "agents": [
"claude_code",
"codex", "codex",
"cursor", "cursor"
"phpstorm"
], ],
"editors": [ "editors": [
"claude_code", "claude_code",
"cursor", "cursor",
"phpstorm",
"vscode" "vscode"
], ],
"guidelines": [], "guidelines": [],
+1 -1
View File
@@ -1,5 +1,5 @@
{ {
"name": "trusted_ai", "name": "frontend",
"lockfileVersion": 3, "lockfileVersion": 3,
"requires": true, "requires": true,
"packages": { "packages": {
+28
View File
@@ -0,0 +1,28 @@
<x-layouts.app :title="__('Unternehmensauskunft')">
<div class="flex h-full w-full flex-1 flex-col gap-4 rounded-xl">
<div class="mb-4">
<flux:heading size="xl" class="mb-2">{{ __('Unternehmensauskunft') }}</flux:heading>
<flux:text>{{ __('Suchen Sie nach Unternehmensinformationen') }}</flux:text>
</div>
<div class="mb-6">
<flux:input
type="search"
placeholder="{{ __('Unternehmen suchen...') }}"
class="w-full"
/>
</div>
<div class="grid auto-rows-min gap-4 md:grid-cols-2">
<div class="relative aspect-video overflow-hidden rounded-xl border border-neutral-200 dark:border-neutral-700">
<x-placeholder-pattern class="absolute inset-0 size-full stroke-gray-900/20 dark:stroke-neutral-100/20" />
</div>
<div class="relative aspect-video overflow-hidden rounded-xl border border-neutral-200 dark:border-neutral-700">
<x-placeholder-pattern class="absolute inset-0 size-full stroke-gray-900/20 dark:stroke-neutral-100/20" />
</div>
</div>
<div class="relative h-full flex-1 overflow-hidden rounded-xl border border-neutral-200 dark:border-neutral-700">
<x-placeholder-pattern class="absolute inset-0 size-full stroke-gray-900/20 dark:stroke-neutral-100/20" />
</div>
</div>
</x-layouts.app>
@@ -14,6 +14,7 @@
<flux:navlist variant="outline"> <flux:navlist variant="outline">
<flux:navlist.group :heading="__('Platform')" class="grid"> <flux:navlist.group :heading="__('Platform')" class="grid">
<flux:navlist.item icon="home" :href="route('dashboard')" :current="request()->routeIs('dashboard')" wire:navigate>{{ __('Dashboard') }}</flux:navlist.item> <flux:navlist.item icon="home" :href="route('dashboard')" :current="request()->routeIs('dashboard')" wire:navigate>{{ __('Dashboard') }}</flux:navlist.item>
<flux:navlist.item icon="magnifying-glass" :href="route('company-search')" :current="request()->routeIs('company-search')" wire:navigate>{{ __('Unternehmensauskunft') }}</flux:navlist.item>
</flux:navlist.group> </flux:navlist.group>
</flux:navlist> </flux:navlist>
+4
View File
@@ -12,6 +12,10 @@ Route::view('dashboard', 'dashboard')
->middleware(['auth', 'verified']) ->middleware(['auth', 'verified'])
->name('dashboard'); ->name('dashboard');
Route::view('company-search', 'company-search')
->middleware(['auth', 'verified'])
->name('company-search');
Route::middleware(['auth'])->group(function () { Route::middleware(['auth'])->group(function () {
Route::redirect('settings', 'settings/profile'); Route::redirect('settings', 'settings/profile');
+17
View File
@@ -0,0 +1,17 @@
<?php
use App\Models\User;
test('guests are redirected to the login page', function () {
$response = $this->get(route('company-search'));
$response->assertRedirect(route('login'));
});
test('authenticated users can visit the company search page', function () {
$user = User::factory()->create();
$this->actingAs($user);
$response = $this->get(route('company-search'));
$response->assertSuccessful();
$response->assertSee('Unternehmensauskunft');
});