wip zuabschlaege pdf
This commit is contained in:
1 parent
88d561675d
commit
7917777b93
23 files changed
+510
-604
No files matched your search
+11
-7
@@ -30,6 +30,7 @@ use Filament\Support\Icons\Heroicon;
|
||||
use Filament\Tables\Columns\IconColumn;
|
||||
use Filament\Tables\Columns\TextColumn;
|
||||
use Filament\Tables\Table;
|
||||
use Illuminate\Support\HtmlString;
|
||||
|
||||
class ProjektInhaltsverzeichnisRelationManager extends RelationManager
|
||||
{
|
||||
@@ -50,7 +51,7 @@ class ProjektInhaltsverzeichnisRelationManager extends RelationManager
|
||||
Tabs::make('Tabs')
|
||||
->tabs([
|
||||
Tab::make('Überschrift')
|
||||
->hidden(fn ($record) => $record->name == 'DECKBLATT' ? true : false)
|
||||
->hidden(fn ($record) => $record?->name == 'DECKBLATT' ? true : false)
|
||||
->schema([
|
||||
Checkbox::make('neue_seite')
|
||||
->label('Start neuer Seite'),
|
||||
@@ -86,13 +87,15 @@ class ProjektInhaltsverzeichnisRelationManager extends RelationManager
|
||||
->columnSpan(1),
|
||||
]),
|
||||
Tab::make('Textblock')
|
||||
->hidden(fn ($record) => in_array($record?->name, ['INHALTSVERZEICHNIS']) ? true : false)
|
||||
->schema([
|
||||
Grid::make()
|
||||
->columns(6)
|
||||
->schema([
|
||||
TextInput::make('konto_textblock_id')->hidden(),
|
||||
RichEditor::make('textblock')
|
||||
->aboveLabel('Ausgabe Textblock vor Tabelle')
|
||||
->hiddenLabel()
|
||||
->aboveLabel(fn ($record): string => $record?->tabellen_id != 0 ? 'Ausgabe Textblock vor Tabelle' : '')
|
||||
->columnSpan(5)
|
||||
->extraInputAttributes(['style' => 'min-height: 20rem; max-height: 50vh; overflow-y: auto;'])
|
||||
->toolbarButtons([
|
||||
@@ -124,11 +127,11 @@ class ProjektInhaltsverzeichnisRelationManager extends RelationManager
|
||||
TextInput::make('name')->required()
|
||||
->label('Ändern sie gegebeben Falls den Namen')
|
||||
->default(function ($record) {
|
||||
return KontoTextblock::where('id', $record['konto_textblock_id'])->pluck('name')->first();
|
||||
return KontoTextblock::where('id', $record?->konto_textblock_id)->pluck('name')->first();
|
||||
}),
|
||||
])
|
||||
->hidden(function ($record) {
|
||||
return (bool) ! $record['konto_textblock_id'];
|
||||
return (bool) ! $record?->konto_textblock_id;
|
||||
})
|
||||
->action(function (array $mountedActions, array $data) {
|
||||
$record = $mountedActions[0]->getRawData();
|
||||
@@ -144,7 +147,7 @@ class ProjektInhaltsverzeichnisRelationManager extends RelationManager
|
||||
TextInput::make('name')->required()
|
||||
->label('Geben sie der Vorlage einen eindeutigen Namen')
|
||||
->default(function ($record) {
|
||||
return $record['name'];
|
||||
return $record?->name;
|
||||
}),
|
||||
])
|
||||
->modalSubmitActionLabel('Sichern')
|
||||
@@ -185,12 +188,12 @@ class ProjektInhaltsverzeichnisRelationManager extends RelationManager
|
||||
]),
|
||||
]),
|
||||
Tab::make('Tabellen')
|
||||
->hidden(fn ($record) => in_array($record?->name, ['DECKBLATT']) ? true : false)
|
||||
->schema([
|
||||
Select::make('tabellen_id')->label('Tabelle')
|
||||
->aboveLabel('Ausgabe Textblock vor Tabelle')
|
||||
->prefixIcon('phosphor-table')
|
||||
->prefixIconColor(
|
||||
fn ($record): string => $record->tabellen_id == 0 ? 'gray' : 'primary'
|
||||
fn ($record): string => $record?->tabellen_id == 0 ? 'gray' : 'primary'
|
||||
)
|
||||
->default(0)
|
||||
->options(function () {
|
||||
@@ -250,6 +253,7 @@ class ProjektInhaltsverzeichnisRelationManager extends RelationManager
|
||||
IconColumn::make('textblock')
|
||||
->alignCenter()
|
||||
->icon('phosphor-article')
|
||||
->tooltip(fn ($record): HtmlString => new HtmlString($record->textblock))
|
||||
->color(fn (string $state): string => match ($state) {
|
||||
'0' => 'gray',
|
||||
default => 'info',
|
||||
|
||||
+19
-2
@@ -10,6 +10,7 @@ use Filament\Actions\BulkAction;
|
||||
use Filament\Actions\BulkActionGroup;
|
||||
use Filament\Forms\Components\Select;
|
||||
use Filament\Forms\Components\TextInput;
|
||||
use Filament\Notifications\Notification;
|
||||
use Filament\Resources\RelationManagers\RelationManager;
|
||||
use Filament\Tables\Columns\SelectColumn;
|
||||
use Filament\Tables\Columns\TextColumn;
|
||||
@@ -19,6 +20,7 @@ use Filament\Tables\Filters\TernaryFilter;
|
||||
use Filament\Tables\Table;
|
||||
use Illuminate\Database\Eloquent\Builder;
|
||||
use Illuminate\Database\Eloquent\Collection;
|
||||
use Illuminate\Support\HtmlString;
|
||||
use Livewire\Component;
|
||||
|
||||
class ProjektMethodesRelationManager extends RelationManager
|
||||
@@ -90,11 +92,26 @@ class ProjektMethodesRelationManager extends RelationManager
|
||||
->action(fn (CreateProjektMethoden $createProjektMethoden) => $createProjektMethoden->create($this->ownerRecord))
|
||||
->requiresConfirmation()
|
||||
->modalHeading('Raum Methoden erstellen')
|
||||
->modalDescription('Alle bestehenden Daten in dieser Tabelle werden vorher gelöscht.')
|
||||
->modalDescription(new HtmlString('Daten werden aus der Tabelle "Objekte im Detail" generiert. Änderungen werden übernommen nicht mehr verwendete Objekte gelöscht. <br>Um die Tabelle neu zu generieren bitte die Tabelle vorher leeren.'))
|
||||
->modalSubmitActionLabel('Generieren')
|
||||
->label('Generieren')
|
||||
->tooltip('Daten werden aus "Räume Alle" Tabelle gefiltert.')
|
||||
->tooltip('Daten werden aus der Tabelle "Objekte im Detail" generiert.')
|
||||
->icon('heroicon-o-cog-8-tooth')
|
||||
->extraModalFooterActions([
|
||||
Action::make('delete')
|
||||
->label('Leeren')
|
||||
->color('danger')
|
||||
->requiresConfirmation()
|
||||
->action(function () {
|
||||
|
||||
ProjektMethode::where('projekte_id', $this->ownerRecord->id)->delete();
|
||||
|
||||
Notification::make()
|
||||
->title('Tabelle "Raum Methode" wurde geleert')
|
||||
->success()
|
||||
->send();
|
||||
}),
|
||||
])
|
||||
->after(function (Component $livewire) {
|
||||
$livewire->dispatch('refreshMethods');
|
||||
}),
|
||||
|
||||
+14
-8
@@ -44,13 +44,17 @@ class ProjektObjekteImDetailRelationManager extends RelationManager
|
||||
Select::make('projekt_objekte_id')
|
||||
->relationship('top_nummer', 'top_nummer', fn (Builder $query) => $query->where('projekte_id', $this->getOwnerRecord()->id))
|
||||
->required()
|
||||
->searchable(),
|
||||
TextInput::make('geschoss')
|
||||
->required()
|
||||
->maxLength(255),
|
||||
->searchable()
|
||||
->columnSpan(3),
|
||||
TextInput::make('raumart')
|
||||
->required()
|
||||
->maxLength(255),
|
||||
->maxLength(255)
|
||||
->columnSpan(3),
|
||||
TextInput::make('geschoss')
|
||||
->required()
|
||||
->maxLength(255)
|
||||
->suffixIcon('phosphor-building')
|
||||
->columnSpan(2),
|
||||
TextInput::make('flaeche')
|
||||
->suffix(new HtmlString(' m²'))
|
||||
->rules(['required', 'flaeche' => 'decimal:2'])
|
||||
@@ -61,7 +65,8 @@ class ProjektObjekteImDetailRelationManager extends RelationManager
|
||||
])
|
||||
->afterStateUpdated(function (Component $livewire) {
|
||||
$livewire->dispatch('refreshProjektAllgemeinflaechen');
|
||||
}),
|
||||
})
|
||||
->columnSpan(2),
|
||||
TextInput::make('faktor')
|
||||
->suffixIcon('phosphor-function')
|
||||
->rules(['required', 'faktor' => 'decimal:0,2'])
|
||||
@@ -70,8 +75,9 @@ class ProjektObjekteImDetailRelationManager extends RelationManager
|
||||
})->validationMessages([
|
||||
'required' => 'Die Eingabe eines Faktors ist erforderlich.',
|
||||
'decimal' => 'Für den Faktors sind zwei Dezimalstellen erforderlich.',
|
||||
]),
|
||||
]);
|
||||
])
|
||||
->columnSpan(2),
|
||||
])->columns(6);
|
||||
}
|
||||
|
||||
public function table(Table $table): Table
|
||||
|
||||
+24
-21
@@ -2,34 +2,34 @@
|
||||
|
||||
namespace App\Filament\Resources\Projektes\RelationManagers;
|
||||
|
||||
use Livewire\Component;
|
||||
use App\Actions\Create\CreateProjektObjekte;
|
||||
use App\Models\Merkmale;
|
||||
use Filament\Tables\Table;
|
||||
use App\Models\Orientierung;
|
||||
use Filament\Actions\Action;
|
||||
use Filament\Schemas\Schema;
|
||||
use App\Models\ProjektObjekte;
|
||||
use Filament\Actions\Action;
|
||||
use Filament\Actions\BulkAction;
|
||||
use Filament\Actions\EditAction;
|
||||
use Filament\Support\Enums\Width;
|
||||
use Filament\Actions\BulkActionGroup;
|
||||
use Filament\Actions\CreateAction;
|
||||
use Filament\Actions\DeleteAction;
|
||||
use Illuminate\Support\HtmlString;
|
||||
use Filament\Actions\EditAction;
|
||||
use Filament\Forms\Components\Radio;
|
||||
use Filament\Actions\BulkActionGroup;
|
||||
use Filament\Forms\Components\Select;
|
||||
use Illuminate\Support\Facades\Blade;
|
||||
use Filament\Support\Enums\FontWeight;
|
||||
use Filament\Tables\Columns\TextColumn;
|
||||
use Filament\Forms\Components\TextInput;
|
||||
use Filament\Tables\Columns\SelectColumn;
|
||||
use Filament\Tables\Filters\TernaryFilter;
|
||||
use Filament\Tables\Columns\CheckboxColumn;
|
||||
use App\Actions\Create\CreateProjektObjekte;
|
||||
use Filament\Tables\Columns\Summarizers\Sum;
|
||||
use Filament\Tables\Columns\TextInputColumn;
|
||||
use Illuminate\Database\Eloquent\Collection;
|
||||
use Filament\Resources\RelationManagers\RelationManager;
|
||||
use Filament\Schemas\Schema;
|
||||
use Filament\Support\Enums\FontWeight;
|
||||
use Filament\Support\Enums\Width;
|
||||
use Filament\Tables\Columns\CheckboxColumn;
|
||||
use Filament\Tables\Columns\SelectColumn;
|
||||
use Filament\Tables\Columns\Summarizers\Sum;
|
||||
use Filament\Tables\Columns\TextColumn;
|
||||
use Filament\Tables\Columns\TextInputColumn;
|
||||
use Filament\Tables\Filters\TernaryFilter;
|
||||
use Filament\Tables\Table;
|
||||
use Illuminate\Database\Eloquent\Collection;
|
||||
use Illuminate\Support\Facades\Blade;
|
||||
use Illuminate\Support\HtmlString;
|
||||
use Livewire\Component;
|
||||
|
||||
class ProjektObjekteRelationManager extends RelationManager
|
||||
{
|
||||
@@ -48,9 +48,10 @@ class ProjektObjekteRelationManager extends RelationManager
|
||||
return $schema
|
||||
->components([
|
||||
TextInput::make('top_nummer')
|
||||
->label('Top Nummer')
|
||||
->required()
|
||||
->maxLength(255),
|
||||
]);
|
||||
])->columns(1);
|
||||
}
|
||||
|
||||
public function table(Table $table): Table
|
||||
@@ -62,7 +63,7 @@ class ProjektObjekteRelationManager extends RelationManager
|
||||
// ->striped()
|
||||
->emptyStateDescription('Schalten Sie das Projekt frei und importieren Sie die Daten der Objekte.')
|
||||
->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([
|
||||
TextColumn::make('top_nummer')
|
||||
->alignCenter()
|
||||
@@ -248,6 +249,8 @@ class ProjektObjekteRelationManager extends RelationManager
|
||||
])
|
||||
->headerActions([
|
||||
CreateAction::make()
|
||||
->modalHeading('Objekt erstellen')
|
||||
->modalDescription('Die dazugehörigen Räume werde in "Objekte im Detail" erstellt.')
|
||||
->icon('phosphor-file-plus')
|
||||
->createAnother(false),
|
||||
Action::make('merkmale')
|
||||
@@ -268,7 +271,7 @@ class ProjektObjekteRelationManager extends RelationManager
|
||||
// ->modalDescription('Alle bestehenden Daten in dieser Tabelle werden vorher gelöscht.')
|
||||
// ->modalSubmitActionLabel('Generieren')
|
||||
// ->label('Generieren')
|
||||
// ->tooltip('Daten werden aus "Räume Alle" gefiltert.')
|
||||
// ->tooltip('Daten werden aus "Objekte im Detail" gefiltert.')
|
||||
// ->icon('heroicon-o-cog-8-tooth')
|
||||
// ->after(function (Component $livewire) {
|
||||
// $livewire->dispatch('refreshOrientierung');
|
||||
|
||||
Reference in new issue
Block a user