import new

This commit is contained in:
salam committed 2026-04-15 15:59:56 +02:00
1 parent df55380236
commit 228927274d
12 files changed
+270 -205

No files matched your search

-16
View File
@@ -1,16 +0,0 @@
<?php
namespace App\Actions\Helper;
class LineEndings
{
public static function convert($string)
{
$string = preg_replace('~\R~', PHP_EOL, $string);
// Don't allow out-of-control blank lines.
// $string = preg_replace("/\n{3,}/", "\n\n", $string);
return $string;
}
}
@@ -0,0 +1,47 @@
<?php
namespace App\Filament\Imports;
use App\Models\ProjektAllgemeinflaechen;
use Filament\Notifications\Notification;
class ImportAllgemeinDirect
{
public static function run($data, $projekte_id)
{
$data = explode(PHP_EOL, $data['upload_data']);
$new = 0;
foreach ($data as $row) {
$row = str_replace(';', '|', $row);
$cells = explode('|', $row);
$geschoss = trim($cells[1]);
$raumart = trim($cells[2]);
$flaeche = (float) str_replace(',', '.', trim($cells[3]));
if (is_numeric($flaeche) && $flaeche > 0) {
$allgemein = new ProjektAllgemeinflaechen;
$allgemein->projekte_id = $projekte_id;
$allgemein->geschoss = $geschoss;
$allgemein->raumart = $raumart;
$allgemein->flaeche = $flaeche;
$allgemein->save();
$new++;
}
}
Notification::make()
->title('Allgemeinflächen wurden erfolgreich importiert')
->body($new.' wurden Flächen hinzugefügt')
->success()
->send();
$recipient = auth()->user();
Notification::make()
->title('Allgemeinflächen wurden erfolgreich importiert')
->body($new.' wurden Flächen hinzugefügt')
->success()
->sendToDatabase($recipient);
}
}
@@ -0,0 +1,99 @@
<?php
namespace App\Filament\Imports;
use App\Models\ProjektObjekte;
use App\Models\ProjektObjekteImDetail;
use Filament\Notifications\Notification;
use Illuminate\Support\HtmlString;
class ImportObjekteDirect
{
public static function run($data, $projekte_id)
{
$data = explode(PHP_EOL, $data['upload_data']);
$has_objekte = ProjektObjekte::where('projekte_id', $projekte_id)->count();
$has_detail = ProjektObjekteImDetail::where('projekte_id', $projekte_id)->count();
$new_objekte = 0;
$new_detail = 0;
$update_objekte = 0;
$update_detail = 0;
$projekt_objekte_check = 0;
foreach ($data as $row) {
$row = str_replace(';', '|', $row);
$cells = explode('|', $row);
$top_nummer = trim($cells[0]);
$geschoss = trim($cells[1]);
$raumart = trim($cells[2]);
$flaeche = (float) str_replace(',', '.', trim($cells[3]));
if (is_numeric($flaeche) && $flaeche > 0) {
$projekt_objekte = ProjektObjekte::firstOrCreate([
'projekte_id' => $projekte_id,
'top_nummer' => $top_nummer,
]);
if ($projekt_objekte->new) { // some way to check
if ($projekt_objekte_check != $projekt_objekte->id) {
$new_objekte++;
}
} else {
if ($projekt_objekte_check != $projekt_objekte->id) {
$update_objekte++;
}
}
$projekt_objekte_check = $projekt_objekte->id;
$prokectimdetail = ProjektObjekteImDetail::firstOrCreate(
['projekte_id' => $projekte_id, 'projekt_objekte_id' => $projekt_objekte->id, 'geschoss' => $geschoss, 'raumart' => $raumart],
['flaeche' => $flaeche]
);
if ($prokectimdetail->new) { // some way to check
$new_detail++;
} else {
$update_detail++;
}
}
}
Notification::make()
->title('Objekte im Detail wurden erfolgreich importiert')
->success()
->send();
$recipient = auth()->user();
Notification::make()
->title('Objekte im Detail wurden erfolgreich importiert')
->body(self::getBody($has_objekte, $has_detail, $new_objekte, $new_detail, $update_objekte, $update_detail))
->success()
->sendToDatabase($recipient);
}
public static function getBody($has_objekte, $has_detail, $new_objekte, $new_detail, $update_objekte, $update_detail)
{
return new HtmlString('<div class="grid grid-cols-2 gap-2 w-full">
<div class="col-span-2">Objekte</div>
<div>Bestehende</div>
<div>'.$has_objekte.'</div>
<div>Geänderte</div>
<div>'.$update_objekte.'</div>
<div>Neue</div>
<div>'.$new_objekte.'</div>
<div class="col-span-2">Objekte im Detail</div>
<div>Bestehende</div>
<div>'.$has_detail.'</div>
<div>Geänderte</div>
<div>'.$update_detail.'</div>
<div>Neue</div>
<div>'.$new_detail.'</div>
</div>');
}
}
@@ -3,25 +3,17 @@
namespace App\Filament\Resources\Projektes\Pages; namespace App\Filament\Resources\Projektes\Pages;
use App\Actions\Validation\GutachtenValidation; use App\Actions\Validation\GutachtenValidation;
use App\Filament\Imports\ProjektAllgemeinflaechenImporter;
use App\Filament\Imports\ProjektObjekteImDetailImporter;
use App\Filament\Resources\Projektes\ProjekteResource; use App\Filament\Resources\Projektes\ProjekteResource;
use App\Models\Konto; use App\Models\Konto;
use App\Models\ProjektAllgemeinflaechen;
use App\Models\Projekte; use App\Models\Projekte;
use App\Models\ProjektObjekte;
use App\Traits\HasBackUrl; use App\Traits\HasBackUrl;
use Carbon\Carbon; use Carbon\Carbon;
use Filament\Actions\Action; use Filament\Actions\Action;
use Filament\Actions\ActionGroup; use Filament\Actions\ActionGroup;
use Filament\Actions\DeleteAction; use Filament\Actions\DeleteAction;
use Filament\Actions\ImportAction;
use Filament\Forms\Components\Radio;
use Filament\Forms\Components\Textarea;
use Filament\Notifications\Notification; use Filament\Notifications\Notification;
use Filament\Resources\Pages\EditRecord; use Filament\Resources\Pages\EditRecord;
use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Auth;
use Illuminate\Validation\Rules\File;
use Livewire\Attributes\On; use Livewire\Attributes\On;
class EditProjekte extends EditRecord class EditProjekte extends EditRecord
@@ -36,122 +28,6 @@ class EditProjekte extends EditRecord
protected function getHeaderActions(): array protected function getHeaderActions(): array
{ {
return [ return [
/**
* IMPORT
*/
ActionGroup::make([
Action::make('fix_line_endings')
->icon('phosphor-file-text')
->modalIcon('phosphor-file-csv')
->label('Daten direkt hochladen')
->schema([
Radio::make('tabel_mode')
->label('Tabellen Art')
->inline()
->options([
'allgemein' => 'Allgemeinflächen',
'objekte_in_detail' => 'Objekte im Detail',
]),
Textarea::make('upload_data')
->label('Daten hier einfügen')
->extraInputAttributes(['onClick' => 'this.select()'])
->rows(5),
]),
ImportAction::make('import_allgemeinflaechen')
->hidden(fn ($record): bool => $record->bezahlt_am ? false : true)
->importer(ProjektAllgemeinflaechenImporter::class)
->csvDelimiter('|')
->modalIcon('phosphor-file-csv')
->modalHeading('Dokument Allgemeinflächen Import')
->modalContent(view('filament.pages.actions.import-allgemeinflaechen'))
->modalContentFooter(view('filament.pages.actions.footer-allgemeinflaechen'))
->label('Allgemeinflächen')
->icon('phosphor-upload')
->extraModalFooterActions([
Action::make('copy')
->tooltip('Kopiert die Spaltenname für die erste Zeile')
->color('success')
->label('Spalten Namen')
->action(function ($livewire) {
$livewire->js('window.navigator.clipboard.writeText("Geschoss|Raumart|Fläche");');
Notification::make()
->title('Spaltenname kopiert')
->success()
->send();
}),
Action::make('delete')
->label('Tabelle leeren')
->color('danger')
->requiresConfirmation()
->action(function ($record) {
ProjektAllgemeinflaechen::where('projekte_id', $record->id)->delete();
$this->record->refresh();
Notification::make()
->title('Tabelle geleert')
->success()
->send();
}),
])
->options(function ($record) {
return ['projekte_id' => $record->id];
})
->fileRules([
File::types(['csv', 'txt'])->max(1024),
]),
ImportAction::make('import_objekte')
->hidden(fn ($record): bool => $record->bezahlt_am ? false : true)
->importer(ProjektObjekteImDetailImporter::class)
->csvDelimiter('|')
->modalIcon('phosphor-file-csv')
->modalHeading('Dokument Objekte im Detail Import')
->modalContent(view('filament.pages.actions.import-objektemitraeumen'))
->modalContentFooter(view('filament.pages.actions.footer-allgemeinflaechen'))
->label('Objekte')
->icon('phosphor-upload')
->extraModalFooterActions([
Action::make('copy')
->tooltip('Kopiert die Spaltenname für die erste Zeile')
->color('success')
->label('Spalten Namen')
->action(function ($livewire) {
$livewire->js('window.navigator.clipboard.writeText("Top Nummer|Geschoss|Raumart|Fläche");');
Notification::make()
->title('Spaltenname kopiert')
->success()
->send();
}),
Action::make('delete')
->tooltip('Löscht alle Objekte für dieses Projekt')
->label('Tabellen leeren')
->color('danger')
->requiresConfirmation()
->action(function ($record) {
ProjektObjekte::where('projekte_id', $record->id)->delete();
$this->record->refresh();
Notification::make()
->title('Tabellen geleert')
->success()
->send();
}),
])
->options(function ($record) {
return ['projekte_id' => $record->id];
})
->fileRules([
File::types(['csv', 'txt'])->max(1024),
]),
])->label('Import')
->icon('phosphor-upload')
->color('info')
->button(),
/** /**
* FREISCHALTEN * FREISCHALTEN
* auth()->user()->konto->guthaben * auth()->user()->konto->guthaben
@@ -2,12 +2,17 @@
namespace App\Filament\Resources\Projektes\RelationManagers; namespace App\Filament\Resources\Projektes\RelationManagers;
use App\Filament\Imports\ImportAllgemeinDirect;
use App\Models\ProjektAllgemeinflaechen;
use Filament\Actions\Action;
use Filament\Actions\BulkActionGroup; use Filament\Actions\BulkActionGroup;
use Filament\Actions\CreateAction; use Filament\Actions\CreateAction;
use Filament\Actions\DeleteAction; use Filament\Actions\DeleteAction;
use Filament\Actions\DeleteBulkAction; use Filament\Actions\DeleteBulkAction;
use Filament\Actions\EditAction; use Filament\Actions\EditAction;
use Filament\Forms\Components\Textarea;
use Filament\Forms\Components\TextInput; use Filament\Forms\Components\TextInput;
use Filament\Notifications\Notification;
use Filament\Resources\RelationManagers\RelationManager; use Filament\Resources\RelationManagers\RelationManager;
use Filament\Schemas\Schema; use Filament\Schemas\Schema;
use Filament\Tables\Columns\Summarizers\Sum; use Filament\Tables\Columns\Summarizers\Sum;
@@ -53,7 +58,7 @@ class ProjektAllgemeinflaechensRelationManager extends RelationManager
public function table(Table $table): Table public function table(Table $table): Table
{ {
return $table return $table
->emptyStateDescription('Schalten Sie das Projekt frei und importieren Sie die Daten der Allgemeinflächen.') ->emptyStateDescription('Bitte Projekt zuerst freischalten und dann die Daten der Allgemeinflächen hochladen.')
->striped() ->striped()
->recordTitleAttribute('geschoss') ->recordTitleAttribute('geschoss')
->columns([ ->columns([
@@ -75,6 +80,37 @@ class ProjektAllgemeinflaechensRelationManager extends RelationManager
->searchable(), ->searchable(),
]) ])
->headerActions([ ->headerActions([
Action::make('import-text')
->icon('phosphor-upload')
->hidden(fn (): bool => $this->ownerRecord->bezahlt_am ? false : true)
->modalIcon('phosphor-file-csv')
->color('info')
->label('Hochladen')
->modalHeading('Allgemeinflächen hochladen')
->modalDescription(new HtmlString('<b>Objekte werden immer hinzugefügt!</b><br/>Spalten-Separator ist der Strichpunkt ";" oder die Pfeife "|"'))
->schema([
Textarea::make('upload_data')
->required()
->label('Text hier einfügen:')
->extraInputAttributes(['onClick' => 'this.select()'])
->rows(5),
])
->action(function (array $data): void {
ImportAllgemeinDirect::run($data, $this->ownerRecord->id);
}),
Action::make('leeren')
->action(function () {
ProjektAllgemeinflaechen::where('projekte_id', $this->ownerRecord->id)->delete();
})
->icon('phosphor-trash')
->color('danger')
->requiresConfirmation()
->successNotification(
Notification::make()
->success()
->title('Allgemeinflächen gelöscht'),
),
CreateAction::make() CreateAction::make()
->icon('phosphor-file-plus') ->icon('phosphor-file-plus')
->createAnother(false), ->createAnother(false),
@@ -2,6 +2,7 @@
namespace App\Filament\Resources\Projektes\RelationManagers; namespace App\Filament\Resources\Projektes\RelationManagers;
use App\Filament\Imports\ImportObjekteDirect;
use App\Models\ProjektObjekteImDetail; use App\Models\ProjektObjekteImDetail;
use Filament\Actions\Action; use Filament\Actions\Action;
use Filament\Actions\BulkActionGroup; use Filament\Actions\BulkActionGroup;
@@ -10,6 +11,7 @@ use Filament\Actions\DeleteAction;
use Filament\Actions\DeleteBulkAction; use Filament\Actions\DeleteBulkAction;
use Filament\Actions\EditAction; use Filament\Actions\EditAction;
use Filament\Forms\Components\Select; use Filament\Forms\Components\Select;
use Filament\Forms\Components\Textarea;
use Filament\Forms\Components\TextInput; use Filament\Forms\Components\TextInput;
use Filament\Resources\RelationManagers\RelationManager; use Filament\Resources\RelationManagers\RelationManager;
use Filament\Schemas\Schema; use Filament\Schemas\Schema;
@@ -68,7 +70,7 @@ class ProjektObjekteImDetailRelationManager extends RelationManager
public function table(Table $table): Table public function table(Table $table): Table
{ {
return $table return $table
->emptyStateDescription('Schalten Sie das Projekt frei und importieren Sie die Daten der Objekte.') ->emptyStateDescription('Bitte Projekt freischalten und Daten hochladen.')
->striped() ->striped()
->recordTitleAttribute('top_nummer') ->recordTitleAttribute('top_nummer')
->columns([ ->columns([
@@ -139,21 +141,41 @@ class ProjektObjekteImDetailRelationManager extends RelationManager
]) ])
->deferFilters(false) ->deferFilters(false)
->headerActions([ ->headerActions([
Action::make('import-text')
->icon('phosphor-upload')
->modalIcon('phosphor-file-csv')
->color('info')
->label('Hochladen')
->modalHeading('Objekte im Detail hochladen')
->modalDescription(new HtmlString('<b>Objekte werden immer hinzugefügt!</b><br/>Spalten-Separator ist der Strichpunkt ";" oder die Pfeife "|"'))
->schema([
Textarea::make('upload_data')
->required()
->label('Text hier einfügen:')
->extraInputAttributes(['onClick' => 'this.select()'])
->rows(5),
])
->action(function (array $data): void {
ImportObjekteDirect::run($data, $this->ownerRecord->id);
}),
CreateAction::make() CreateAction::make()
->icon('phosphor-file-plus') ->icon('phosphor-file-plus')
->createAnother(false), ->createAnother(false),
Action::make('nutzwerte') Action::make('nutzwerte')
->label('Nutzwerte') ->label('Nutzwerte')
->icon('phosphor-gear') ->icon('phosphor-calculator')
->action(function () { ->action(function () {
$res = ProjektObjekteImDetail::with('methode') $res = ProjektObjekteImDetail::with('methode')
->where('projekte_id', $this->getOwnerRecord()->id) ->where('projekte_id', $this->getOwnerRecord()->id)
->get(); ->get();
foreach ($res as $row) { foreach ($res as $row) {
if ($row->methode?->faktor || null) {
ProjektObjekteImDetail::where('id', $row->id) ProjektObjekteImDetail::where('id', $row->id)
->update(['nutzwert' => $row->flaeche * $row->methode->faktor]); ->update(['nutzwert' => $row->flaeche * $row->methode->faktor]);
} }
}
})->after(function (Component $livewire) { })->after(function (Component $livewire) {
$livewire->dispatch('refreshProjektObjekteImDetail'); $livewire->dispatch('refreshProjektObjekteImDetail');
@@ -58,7 +58,7 @@ class ProjektObjekteRelationManager extends RelationManager
return $table return $table
// ->striped() // ->striped()
->emptyStateDescription('Schalten Sie das Projekt frei und importieren Sie die Daten der Objekte.') ->emptyStateDescription(new HtmlString('Bitte Projekt freischalten und unter <b class="text-primary-600">Objekte im Detail</b> Daten hochladen.'))
->recordTitleAttribute('top_nummer') ->recordTitleAttribute('top_nummer')
->description(new HtmlString('<span class="flex gap-1.5">Orientierungen, Zu- und Abschläge, '.Blade::render('<x-lucide-locate-off class="w-3 h-3 mt-1" />').' Nicht in Orientierung</span>')) ->description(new HtmlString('<span class="flex gap-1.5">Orientierungen, Zu- und Abschläge, '.Blade::render('<x-lucide-locate-off class="w-3 h-3 mt-1" />').' Nicht in Orientierung</span>'))
->columns([ ->columns([
@@ -44,6 +44,7 @@ class AdminPanelProvider extends PanelProvider
->emailVerification() ->emailVerification()
->emailChangeVerification() ->emailChangeVerification()
->databaseNotifications() ->databaseNotifications()
->databaseNotificationsPolling('30s')
->profile(isSimple: false) ->profile(isSimple: false)
->default() ->default()
->registration(Register::class) ->registration(Register::class)
+5 -5
View File
@@ -1,7 +1,7 @@
<?php return array ( <?php return array (
'default' => 'default' =>
array ( array (
'/Users/hermanntelser/Sites/nutzwerte_fi4/resources/svg' => '/Users/salam/Sites/nutzwerte_fi4/resources/svg' =>
array ( array (
0 => 'excel', 0 => 'excel',
1 => 'logo', 1 => 'logo',
@@ -11,7 +11,7 @@
), ),
'heroicons' => 'heroicons' =>
array ( array (
'/Users/hermanntelser/Sites/nutzwerte_fi4/vendor/blade-ui-kit/blade-heroicons/src/../resources/svg' => '/Users/salam/Sites/nutzwerte_fi4/vendor/blade-ui-kit/blade-heroicons/src/../resources/svg' =>
array ( array (
0 => 'c-academic-cap', 0 => 'c-academic-cap',
1 => 'c-adjustments-horizontal', 1 => 'c-adjustments-horizontal',
@@ -1305,7 +1305,7 @@
), ),
'phosphor-icons' => 'phosphor-icons' =>
array ( array (
'/Users/hermanntelser/Sites/nutzwerte_fi4/vendor/codeat3/blade-phosphor-icons/src/../resources/svg' => '/Users/salam/Sites/nutzwerte_fi4/vendor/codeat3/blade-phosphor-icons/src/../resources/svg' =>
array ( array (
0 => 'acorn-bold', 0 => 'acorn-bold',
1 => 'acorn-duotone', 1 => 'acorn-duotone',
@@ -10383,7 +10383,7 @@
), ),
'filament' => 'filament' =>
array ( array (
'/Users/hermanntelser/Sites/nutzwerte_fi4/vendor/filament/support/src/../resources/svg' => '/Users/salam/Sites/nutzwerte_fi4/vendor/filament/support/src/../resources/svg' =>
array ( array (
0 => 'm-pencil-slash', 0 => 'm-pencil-slash',
1 => 'o-align-center', 1 => 'o-align-center',
@@ -10430,7 +10430,7 @@
), ),
'lucide' => 'lucide' =>
array ( array (
'/Users/hermanntelser/Sites/nutzwerte_fi4/vendor/mallardduck/blade-lucide-icons/src/../resources/svg' => '/Users/salam/Sites/nutzwerte_fi4/vendor/mallardduck/blade-lucide-icons/src/../resources/svg' =>
array ( array (
0 => 'a-arrow-down', 0 => 'a-arrow-down',
1 => 'a-arrow-up', 1 => 'a-arrow-up',
+22 -22
View File
@@ -70,9 +70,9 @@
), ),
'clusters' => 'clusters' =>
array ( array (
'/Users/hermanntelser/Sites/nutzwerte_fi4/app/Filament/Clusters/Administration/AdministrationCluster.php' => 'App\\Filament\\Clusters\\Administration\\AdministrationCluster', '/Users/salam/Sites/nutzwerte_fi4/app/Filament/Clusters/Administration/AdministrationCluster.php' => 'App\\Filament\\Clusters\\Administration\\AdministrationCluster',
'/Users/hermanntelser/Sites/nutzwerte_fi4/app/Filament/Clusters/Projekte/ProjekteCluster.php' => 'App\\Filament\\Clusters\\Projekte\\ProjekteCluster', '/Users/salam/Sites/nutzwerte_fi4/app/Filament/Clusters/Projekte/ProjekteCluster.php' => 'App\\Filament\\Clusters\\Projekte\\ProjekteCluster',
'/Users/hermanntelser/Sites/nutzwerte_fi4/app/Filament/Clusters/Verwaltung/VerwaltungCluster.php' => 'App\\Filament\\Clusters\\Verwaltung\\VerwaltungCluster', '/Users/salam/Sites/nutzwerte_fi4/app/Filament/Clusters/Verwaltung/VerwaltungCluster.php' => 'App\\Filament\\Clusters\\Verwaltung\\VerwaltungCluster',
), ),
'clusteredComponents' => 'clusteredComponents' =>
array ( array (
@@ -97,7 +97,7 @@
), ),
'clusterDirectories' => 'clusterDirectories' =>
array ( array (
0 => '/Users/hermanntelser/Sites/nutzwerte_fi4/app/Filament/Clusters', 0 => '/Users/salam/Sites/nutzwerte_fi4/app/Filament/Clusters',
), ),
'clusterNamespaces' => 'clusterNamespaces' =>
array ( array (
@@ -105,9 +105,9 @@
), ),
'pages' => 'pages' =>
array ( array (
'/Users/hermanntelser/Sites/nutzwerte_fi4/app/Filament/Clusters/Administration/AdministrationCluster.php' => 'App\\Filament\\Clusters\\Administration\\AdministrationCluster', '/Users/salam/Sites/nutzwerte_fi4/app/Filament/Clusters/Administration/AdministrationCluster.php' => 'App\\Filament\\Clusters\\Administration\\AdministrationCluster',
'/Users/hermanntelser/Sites/nutzwerte_fi4/app/Filament/Clusters/Projekte/ProjekteCluster.php' => 'App\\Filament\\Clusters\\Projekte\\ProjekteCluster', '/Users/salam/Sites/nutzwerte_fi4/app/Filament/Clusters/Projekte/ProjekteCluster.php' => 'App\\Filament\\Clusters\\Projekte\\ProjekteCluster',
'/Users/hermanntelser/Sites/nutzwerte_fi4/app/Filament/Clusters/Verwaltung/VerwaltungCluster.php' => 'App\\Filament\\Clusters\\Verwaltung\\VerwaltungCluster', '/Users/salam/Sites/nutzwerte_fi4/app/Filament/Clusters/Verwaltung/VerwaltungCluster.php' => 'App\\Filament\\Clusters\\Verwaltung\\VerwaltungCluster',
0 => 'Filament\\Pages\\Dashboard', 0 => 'Filament\\Pages\\Dashboard',
), ),
'pageConfigurations' => 'pageConfigurations' =>
@@ -115,7 +115,7 @@
), ),
'pageDirectories' => 'pageDirectories' =>
array ( array (
0 => '/Users/hermanntelser/Sites/nutzwerte_fi4/app/Filament/Pages', 0 => '/Users/salam/Sites/nutzwerte_fi4/app/Filament/Pages',
), ),
'pageNamespaces' => 'pageNamespaces' =>
array ( array (
@@ -123,18 +123,18 @@
), ),
'resources' => 'resources' =>
array ( array (
'/Users/hermanntelser/Sites/nutzwerte_fi4/app/Filament/Resources/Auftraggebers/AuftraggeberResource.php' => 'App\\Filament\\Resources\\Auftraggebers\\AuftraggeberResource', '/Users/salam/Sites/nutzwerte_fi4/app/Filament/Resources/Auftraggebers/AuftraggeberResource.php' => 'App\\Filament\\Resources\\Auftraggebers\\AuftraggeberResource',
'/Users/hermanntelser/Sites/nutzwerte_fi4/app/Filament/Resources/Gutachters/GutachterResource.php' => 'App\\Filament\\Resources\\Gutachters\\GutachterResource', '/Users/salam/Sites/nutzwerte_fi4/app/Filament/Resources/Gutachters/GutachterResource.php' => 'App\\Filament\\Resources\\Gutachters\\GutachterResource',
'/Users/hermanntelser/Sites/nutzwerte_fi4/app/Filament/Resources/Helps/HelpResource.php' => 'App\\Filament\\Resources\\Helps\\HelpResource', '/Users/salam/Sites/nutzwerte_fi4/app/Filament/Resources/Helps/HelpResource.php' => 'App\\Filament\\Resources\\Helps\\HelpResource',
'/Users/hermanntelser/Sites/nutzwerte_fi4/app/Filament/Resources/Inhaltsverzeichnis/InhaltsverzeichnisResource.php' => 'App\\Filament\\Resources\\Inhaltsverzeichnis\\InhaltsverzeichnisResource', '/Users/salam/Sites/nutzwerte_fi4/app/Filament/Resources/Inhaltsverzeichnis/InhaltsverzeichnisResource.php' => 'App\\Filament\\Resources\\Inhaltsverzeichnis\\InhaltsverzeichnisResource',
'/Users/hermanntelser/Sites/nutzwerte_fi4/app/Filament/Resources/KontoTextblocks/KontoTextblockResource.php' => 'App\\Filament\\Resources\\KontoTextblocks\\KontoTextblockResource', '/Users/salam/Sites/nutzwerte_fi4/app/Filament/Resources/KontoTextblocks/KontoTextblockResource.php' => 'App\\Filament\\Resources\\KontoTextblocks\\KontoTextblockResource',
'/Users/hermanntelser/Sites/nutzwerte_fi4/app/Filament/Resources/Kontos/KontoResource.php' => 'App\\Filament\\Resources\\Kontos\\KontoResource', '/Users/salam/Sites/nutzwerte_fi4/app/Filament/Resources/Kontos/KontoResource.php' => 'App\\Filament\\Resources\\Kontos\\KontoResource',
'/Users/hermanntelser/Sites/nutzwerte_fi4/app/Filament/Resources/Methodes/MethodeResource.php' => 'App\\Filament\\Resources\\Methodes\\MethodeResource', '/Users/salam/Sites/nutzwerte_fi4/app/Filament/Resources/Methodes/MethodeResource.php' => 'App\\Filament\\Resources\\Methodes\\MethodeResource',
'/Users/hermanntelser/Sites/nutzwerte_fi4/app/Filament/Resources/Orientierungs/OrientierungResource.php' => 'App\\Filament\\Resources\\Orientierungs\\OrientierungResource', '/Users/salam/Sites/nutzwerte_fi4/app/Filament/Resources/Orientierungs/OrientierungResource.php' => 'App\\Filament\\Resources\\Orientierungs\\OrientierungResource',
'/Users/hermanntelser/Sites/nutzwerte_fi4/app/Filament/Resources/Permissions/PermissionResource.php' => 'App\\Filament\\Resources\\Permissions\\PermissionResource', '/Users/salam/Sites/nutzwerte_fi4/app/Filament/Resources/Permissions/PermissionResource.php' => 'App\\Filament\\Resources\\Permissions\\PermissionResource',
'/Users/hermanntelser/Sites/nutzwerte_fi4/app/Filament/Resources/Projektes/ProjekteResource.php' => 'App\\Filament\\Resources\\Projektes\\ProjekteResource', '/Users/salam/Sites/nutzwerte_fi4/app/Filament/Resources/Projektes/ProjekteResource.php' => 'App\\Filament\\Resources\\Projektes\\ProjekteResource',
'/Users/hermanntelser/Sites/nutzwerte_fi4/app/Filament/Resources/Textblocks/TextblockResource.php' => 'App\\Filament\\Resources\\Textblocks\\TextblockResource', '/Users/salam/Sites/nutzwerte_fi4/app/Filament/Resources/Textblocks/TextblockResource.php' => 'App\\Filament\\Resources\\Textblocks\\TextblockResource',
'/Users/hermanntelser/Sites/nutzwerte_fi4/app/Filament/Resources/Users/UserResource.php' => 'App\\Filament\\Resources\\Users\\UserResource', '/Users/salam/Sites/nutzwerte_fi4/app/Filament/Resources/Users/UserResource.php' => 'App\\Filament\\Resources\\Users\\UserResource',
0 => 'BezhanSalleh\\FilamentShield\\Resources\\Roles\\RoleResource', 0 => 'BezhanSalleh\\FilamentShield\\Resources\\Roles\\RoleResource',
), ),
'resourceConfigurations' => 'resourceConfigurations' =>
@@ -142,7 +142,7 @@
), ),
'resourceDirectories' => 'resourceDirectories' =>
array ( array (
0 => '/Users/hermanntelser/Sites/nutzwerte_fi4/app/Filament/Resources', 0 => '/Users/salam/Sites/nutzwerte_fi4/app/Filament/Resources',
), ),
'resourceNamespaces' => 'resourceNamespaces' =>
array ( array (
@@ -155,7 +155,7 @@
), ),
'widgetDirectories' => 'widgetDirectories' =>
array ( array (
0 => '/Users/hermanntelser/Sites/nutzwerte_fi4/app/Filament/Widgets', 0 => '/Users/salam/Sites/nutzwerte_fi4/app/Filament/Widgets',
), ),
'widgetNamespaces' => 'widgetNamespaces' =>
array ( array (
+25 -25
View File
@@ -531,7 +531,7 @@ app('router')->setCompiledRoutes(
array ( array (
0 => 0 =>
array ( array (
'_route' => 'generated::rKcYFYxq66iyTy6k', '_route' => 'generated::zXj1OrHfdPedCq53',
), ),
1 => NULL, 1 => NULL,
2 => 2 =>
@@ -551,7 +551,7 @@ app('router')->setCompiledRoutes(
array ( array (
0 => 0 =>
array ( array (
'_route' => 'generated::yK5CVRfU8mVGKJ7y', '_route' => 'generated::6vcuPtD1iWunINoa',
), ),
1 => NULL, 1 => NULL,
2 => 2 =>
@@ -609,7 +609,7 @@ app('router')->setCompiledRoutes(
array ( array (
0 => 0 =>
array ( array (
'_route' => 'generated::OMFkFNUUPqJbGghK', '_route' => 'generated::Jzp5jufvkDuCKQqi',
), ),
1 => NULL, 1 => NULL,
2 => 2 =>
@@ -629,7 +629,7 @@ app('router')->setCompiledRoutes(
array ( array (
0 => 0 =>
array ( array (
'_route' => 'generated::T2CBeTJ3Y5au3fTB', '_route' => 'generated::xSdDkF8TLk6lZslQ',
), ),
1 => NULL, 1 => NULL,
2 => 2 =>
@@ -649,7 +649,7 @@ app('router')->setCompiledRoutes(
array ( array (
0 => 0 =>
array ( array (
'_route' => 'generated::q0ucPBmJRhhJdWJu', '_route' => 'generated::aaWpPcmhf1lZCeN3',
), ),
1 => NULL, 1 => NULL,
2 => 2 =>
@@ -669,7 +669,7 @@ app('router')->setCompiledRoutes(
array ( array (
0 => 0 =>
array ( array (
'_route' => 'generated::W3VAdnMOWclqaIzO', '_route' => 'generated::t6dwgim0taNT4YdB',
), ),
1 => NULL, 1 => NULL,
2 => 2 =>
@@ -689,7 +689,7 @@ app('router')->setCompiledRoutes(
array ( array (
0 => 0 =>
array ( array (
'_route' => 'generated::MSyQneC8KkRUCozm', '_route' => 'generated::1kMCzd5dwnR5hqVH',
), ),
1 => NULL, 1 => NULL,
2 => 2 =>
@@ -2757,7 +2757,7 @@ app('router')->setCompiledRoutes(
'waitSeconds' => NULL, 'waitSeconds' => NULL,
'withTrashed' => false, 'withTrashed' => false,
), ),
'generated::rKcYFYxq66iyTy6k' => 'generated::zXj1OrHfdPedCq53' =>
array ( array (
'methods' => 'methods' =>
array ( array (
@@ -2769,7 +2769,7 @@ app('router')->setCompiledRoutes(
array ( array (
'uses' => 'Livewire\\Mechanisms\\FrontendAssets\\FrontendAssets@returnJavaScriptAsFile', 'uses' => 'Livewire\\Mechanisms\\FrontendAssets\\FrontendAssets@returnJavaScriptAsFile',
'controller' => 'Livewire\\Mechanisms\\FrontendAssets\\FrontendAssets@returnJavaScriptAsFile', 'controller' => 'Livewire\\Mechanisms\\FrontendAssets\\FrontendAssets@returnJavaScriptAsFile',
'as' => 'generated::rKcYFYxq66iyTy6k', 'as' => 'generated::zXj1OrHfdPedCq53',
), ),
'fallback' => false, 'fallback' => false,
'defaults' => 'defaults' =>
@@ -2785,7 +2785,7 @@ app('router')->setCompiledRoutes(
'waitSeconds' => NULL, 'waitSeconds' => NULL,
'withTrashed' => false, 'withTrashed' => false,
), ),
'generated::yK5CVRfU8mVGKJ7y' => 'generated::6vcuPtD1iWunINoa' =>
array ( array (
'methods' => 'methods' =>
array ( array (
@@ -2797,7 +2797,7 @@ app('router')->setCompiledRoutes(
array ( array (
'uses' => 'Livewire\\Mechanisms\\FrontendAssets\\FrontendAssets@maps', 'uses' => 'Livewire\\Mechanisms\\FrontendAssets\\FrontendAssets@maps',
'controller' => 'Livewire\\Mechanisms\\FrontendAssets\\FrontendAssets@maps', 'controller' => 'Livewire\\Mechanisms\\FrontendAssets\\FrontendAssets@maps',
'as' => 'generated::yK5CVRfU8mVGKJ7y', 'as' => 'generated::6vcuPtD1iWunINoa',
), ),
'fallback' => false, 'fallback' => false,
'defaults' => 'defaults' =>
@@ -2899,7 +2899,7 @@ app('router')->setCompiledRoutes(
'waitSeconds' => NULL, 'waitSeconds' => NULL,
'withTrashed' => false, 'withTrashed' => false,
), ),
'generated::OMFkFNUUPqJbGghK' => 'generated::Jzp5jufvkDuCKQqi' =>
array ( array (
'methods' => 'methods' =>
array ( array (
@@ -2909,7 +2909,7 @@ app('router')->setCompiledRoutes(
'uri' => 'up', 'uri' => 'up',
'action' => 'action' =>
array ( array (
'uses' => 'O:55:"Laravel\\SerializableClosure\\UnsignedSerializableClosure":1:{s:12:"serializable";O:46:"Laravel\\SerializableClosure\\Serializers\\Native":5:{s:3:"use";a:0:{}s:8:"function";s:834:"function () { 'uses' => 'O:55:"Laravel\\SerializableClosure\\UnsignedSerializableClosure":1:{s:12:"serializable";O:46:"Laravel\\SerializableClosure\\Serializers\\Native":5:{s:3:"use";a:0:{}s:8:"function";s:826:"function () {
$exception = null; $exception = null;
try { try {
@@ -2924,11 +2924,11 @@ app('router')->setCompiledRoutes(
$exception = $e->getMessage(); $exception = $e->getMessage();
} }
return response(\\Illuminate\\Support\\Facades\\View::file(\'/Users/hermanntelser/Sites/nutzwerte_fi4/vendor/laravel/framework/src/Illuminate/Foundation/Configuration\'.\'/../resources/health-up.blade.php\', [ return response(\\Illuminate\\Support\\Facades\\View::file(\'/Users/salam/Sites/nutzwerte_fi4/vendor/laravel/framework/src/Illuminate/Foundation/Configuration\'.\'/../resources/health-up.blade.php\', [
\'exception\' => $exception, \'exception\' => $exception,
]), status: $exception ? 500 : 200); ]), status: $exception ? 500 : 200);
}";s:5:"scope";s:54:"Illuminate\\Foundation\\Configuration\\ApplicationBuilder";s:4:"this";N;s:4:"self";s:32:"000000000000103e0000000000000000";}}', }";s:5:"scope";s:54:"Illuminate\\Foundation\\Configuration\\ApplicationBuilder";s:4:"this";N;s:4:"self";s:32:"000000000000103e0000000000000000";}}',
'as' => 'generated::OMFkFNUUPqJbGghK', 'as' => 'generated::Jzp5jufvkDuCKQqi',
), ),
'fallback' => false, 'fallback' => false,
'defaults' => 'defaults' =>
@@ -2944,7 +2944,7 @@ app('router')->setCompiledRoutes(
'waitSeconds' => NULL, 'waitSeconds' => NULL,
'withTrashed' => false, 'withTrashed' => false,
), ),
'generated::T2CBeTJ3Y5au3fTB' => 'generated::xSdDkF8TLk6lZslQ' =>
array ( array (
'methods' => 'methods' =>
array ( array (
@@ -2966,7 +2966,7 @@ app('router')->setCompiledRoutes(
'where' => 'where' =>
array ( array (
), ),
'as' => 'generated::T2CBeTJ3Y5au3fTB', 'as' => 'generated::xSdDkF8TLk6lZslQ',
), ),
'fallback' => false, 'fallback' => false,
'defaults' => 'defaults' =>
@@ -2982,7 +2982,7 @@ app('router')->setCompiledRoutes(
'waitSeconds' => NULL, 'waitSeconds' => NULL,
'withTrashed' => false, 'withTrashed' => false,
), ),
'generated::q0ucPBmJRhhJdWJu' => 'generated::aaWpPcmhf1lZCeN3' =>
array ( array (
'methods' => 'methods' =>
array ( array (
@@ -3004,7 +3004,7 @@ app('router')->setCompiledRoutes(
'where' => 'where' =>
array ( array (
), ),
'as' => 'generated::q0ucPBmJRhhJdWJu', 'as' => 'generated::aaWpPcmhf1lZCeN3',
), ),
'fallback' => false, 'fallback' => false,
'defaults' => 'defaults' =>
@@ -3020,7 +3020,7 @@ app('router')->setCompiledRoutes(
'waitSeconds' => NULL, 'waitSeconds' => NULL,
'withTrashed' => false, 'withTrashed' => false,
), ),
'generated::W3VAdnMOWclqaIzO' => 'generated::t6dwgim0taNT4YdB' =>
array ( array (
'methods' => 'methods' =>
array ( array (
@@ -3042,7 +3042,7 @@ app('router')->setCompiledRoutes(
'where' => 'where' =>
array ( array (
), ),
'as' => 'generated::W3VAdnMOWclqaIzO', 'as' => 'generated::t6dwgim0taNT4YdB',
), ),
'fallback' => false, 'fallback' => false,
'defaults' => 'defaults' =>
@@ -3058,7 +3058,7 @@ app('router')->setCompiledRoutes(
'waitSeconds' => NULL, 'waitSeconds' => NULL,
'withTrashed' => false, 'withTrashed' => false,
), ),
'generated::MSyQneC8KkRUCozm' => 'generated::1kMCzd5dwnR5hqVH' =>
array ( array (
'methods' => 'methods' =>
array ( array (
@@ -3080,7 +3080,7 @@ app('router')->setCompiledRoutes(
'where' => 'where' =>
array ( array (
), ),
'as' => 'generated::MSyQneC8KkRUCozm', 'as' => 'generated::1kMCzd5dwnR5hqVH',
), ),
'fallback' => false, 'fallback' => false,
'defaults' => 'defaults' =>
@@ -3220,7 +3220,7 @@ app('router')->setCompiledRoutes(
'uri' => 'storage/{path}', 'uri' => 'storage/{path}',
'action' => 'action' =>
array ( array (
'uses' => 'O:55:"Laravel\\SerializableClosure\\UnsignedSerializableClosure":1:{s:12:"serializable";O:46:"Laravel\\SerializableClosure\\Serializers\\Native":5:{s:3:"use";a:3:{s:4:"disk";s:5:"local";s:6:"config";a:5:{s:6:"driver";s:5:"local";s:4:"root";s:60:"/Users/hermanntelser/Sites/nutzwerte_fi4/storage/app/private";s:5:"serve";b:1;s:5:"throw";b:0;s:6:"report";b:0;}s:12:"isProduction";b:0;}s:8:"function";s:323:"function (\\Illuminate\\Http\\Request $request, string $path) use ($disk, $config, $isProduction) { 'uses' => 'O:55:"Laravel\\SerializableClosure\\UnsignedSerializableClosure":1:{s:12:"serializable";O:46:"Laravel\\SerializableClosure\\Serializers\\Native":5:{s:3:"use";a:3:{s:4:"disk";s:5:"local";s:6:"config";a:5:{s:6:"driver";s:5:"local";s:4:"root";s:52:"/Users/salam/Sites/nutzwerte_fi4/storage/app/private";s:5:"serve";b:1;s:5:"throw";b:0;s:6:"report";b:0;}s:12:"isProduction";b:0;}s:8:"function";s:323:"function (\\Illuminate\\Http\\Request $request, string $path) use ($disk, $config, $isProduction) {
return (new \\Illuminate\\Filesystem\\ServeFile( return (new \\Illuminate\\Filesystem\\ServeFile(
$disk, $disk,
$config, $config,
@@ -3253,7 +3253,7 @@ app('router')->setCompiledRoutes(
'uri' => 'storage/{path}', 'uri' => 'storage/{path}',
'action' => 'action' =>
array ( array (
'uses' => 'O:55:"Laravel\\SerializableClosure\\UnsignedSerializableClosure":1:{s:12:"serializable";O:46:"Laravel\\SerializableClosure\\Serializers\\Native":5:{s:3:"use";a:3:{s:4:"disk";s:5:"local";s:6:"config";a:5:{s:6:"driver";s:5:"local";s:4:"root";s:60:"/Users/hermanntelser/Sites/nutzwerte_fi4/storage/app/private";s:5:"serve";b:1;s:5:"throw";b:0;s:6:"report";b:0;}s:12:"isProduction";b:0;}s:8:"function";s:325:"function (\\Illuminate\\Http\\Request $request, string $path) use ($disk, $config, $isProduction) { 'uses' => 'O:55:"Laravel\\SerializableClosure\\UnsignedSerializableClosure":1:{s:12:"serializable";O:46:"Laravel\\SerializableClosure\\Serializers\\Native":5:{s:3:"use";a:3:{s:4:"disk";s:5:"local";s:6:"config";a:5:{s:6:"driver";s:5:"local";s:4:"root";s:52:"/Users/salam/Sites/nutzwerte_fi4/storage/app/private";s:5:"serve";b:1;s:5:"throw";b:0;s:6:"report";b:0;}s:12:"isProduction";b:0;}s:8:"function";s:325:"function (\\Illuminate\\Http\\Request $request, string $path) use ($disk, $config, $isProduction) {
return (new \\Illuminate\\Filesystem\\ReceiveFile( return (new \\Illuminate\\Filesystem\\ReceiveFile(
$disk, $disk,
$config, $config,
Generated
+9 -9
View File
@@ -11554,16 +11554,16 @@
}, },
{ {
"name": "phpunit/php-code-coverage", "name": "phpunit/php-code-coverage",
"version": "12.5.5", "version": "12.5.6",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/sebastianbergmann/php-code-coverage.git", "url": "https://github.com/sebastianbergmann/php-code-coverage.git",
"reference": "a25bde1f8f83849f441ef5713c6466e470872a71" "reference": "876099a072646c7745f673d7aeab5382c4439691"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/a25bde1f8f83849f441ef5713c6466e470872a71", "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/876099a072646c7745f673d7aeab5382c4439691",
"reference": "a25bde1f8f83849f441ef5713c6466e470872a71", "reference": "876099a072646c7745f673d7aeab5382c4439691",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -11618,7 +11618,7 @@
"support": { "support": {
"issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues",
"security": "https://github.com/sebastianbergmann/php-code-coverage/security/policy", "security": "https://github.com/sebastianbergmann/php-code-coverage/security/policy",
"source": "https://github.com/sebastianbergmann/php-code-coverage/tree/12.5.5" "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/12.5.6"
}, },
"funding": [ "funding": [
{ {
@@ -11638,7 +11638,7 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2026-04-13T04:53:32+00:00" "time": "2026-04-15T08:23:17+00:00"
}, },
{ {
"name": "phpunit/php-file-iterator", "name": "phpunit/php-file-iterator",
@@ -13186,12 +13186,12 @@
], ],
"aliases": [], "aliases": [],
"minimum-stability": "stable", "minimum-stability": "stable",
"stability-flags": [], "stability-flags": {},
"prefer-stable": true, "prefer-stable": true,
"prefer-lowest": false, "prefer-lowest": false,
"platform": { "platform": {
"php": "^8.3" "php": "^8.3"
}, },
"platform-dev": [], "platform-dev": {},
"plugin-api-version": "2.6.0" "plugin-api-version": "2.9.0"
} }