From 02d94e193eb83ca752ba776244ea5bf04db7ad9e Mon Sep 17 00:00:00 2001 From: Nurmuhammet Allanov Date: Thu, 23 Oct 2025 01:15:59 +0500 Subject: [PATCH] card state --- .../Settings/CardStates/CardStateResource.php | 132 ++++++++++++++++++ .../CardStates/Pages/ManageCardStates.php | 19 +++ .../Resources/CardTypes/CardTypeResource.php | 83 +++++++++++ .../CardTypes/Pages/ManageCardTypes.php | 19 +++ lang/tk.json | 3 +- 5 files changed, 255 insertions(+), 1 deletion(-) create mode 100644 app/Filament/Clusters/Settings/CardStates/CardStateResource.php create mode 100644 app/Filament/Clusters/Settings/CardStates/Pages/ManageCardStates.php create mode 100644 app/Filament/Resources/CardTypes/CardTypeResource.php create mode 100644 app/Filament/Resources/CardTypes/Pages/ManageCardTypes.php diff --git a/app/Filament/Clusters/Settings/CardStates/CardStateResource.php b/app/Filament/Clusters/Settings/CardStates/CardStateResource.php new file mode 100644 index 0000000..474e868 --- /dev/null +++ b/app/Filament/Clusters/Settings/CardStates/CardStateResource.php @@ -0,0 +1,132 @@ +columns(2) + ->components([ + TranslatableTabs::make('nam') + ->schema([ + TextInput::make('name') + ->label(__('Card state')) + ->columnSpan(1) + ->required(), + ]), + + Section::make(__('General')) + ->columns(6) + ->schema([ + TextInput::make('price') + ->label(__('Price')) + ->columnSpan(4) + ->required(), + + Toggle::make('active') + ->label(__('Active')) + ->default(true) + ->inline(false) + ->columnSpan(2) + ->required(), + + TextInput::make('notes') + ->label(__('Notes')) + ->columnSpanFull() + ->default(null), + ]), + + ]); + } + + public static function table(Table $table): Table + { + return $table + ->columns([ + TextColumn::make('name') + ->searchable(), + + TextColumn::make('price') + ->searchable(), + + TextColumn::make('notes'), + + IconColumn::make('active') + ->boolean(), + + TextColumn::make('created_at') + ->dateTime() + ->sortable() + ->toggleable(isToggledHiddenByDefault: true), + TextColumn::make('updated_at') + ->dateTime() + ->sortable() + ->toggleable(isToggledHiddenByDefault: true), + ]) + ->filters([ + // + ]) + ->recordActions([ + EditAction::make(), + DeleteAction::make(), + ]) + ->toolbarActions([ + BulkActionGroup::make([ + DeleteBulkAction::make(), + ]), + ]); + } + + public static function getPages(): array + { + return [ + 'index' => ManageCardStates::route('/'), + ]; + } +} diff --git a/app/Filament/Clusters/Settings/CardStates/Pages/ManageCardStates.php b/app/Filament/Clusters/Settings/CardStates/Pages/ManageCardStates.php new file mode 100644 index 0000000..a697dc0 --- /dev/null +++ b/app/Filament/Clusters/Settings/CardStates/Pages/ManageCardStates.php @@ -0,0 +1,19 @@ +components([ + Textarea::make('name') + ->required() + ->columnSpanFull(), + TextInput::make('price') + ->default(null), + TextInput::make('notes') + ->default(null), + Toggle::make('active') + ->required(), + ]); + } + + public static function table(Table $table): Table + { + return $table + ->columns([ + TextColumn::make('price') + ->searchable(), + TextColumn::make('notes') + ->searchable(), + IconColumn::make('active') + ->boolean(), + TextColumn::make('created_at') + ->dateTime() + ->sortable() + ->toggleable(isToggledHiddenByDefault: true), + TextColumn::make('updated_at') + ->dateTime() + ->sortable() + ->toggleable(isToggledHiddenByDefault: true), + ]) + ->filters([ + // + ]) + ->recordActions([ + EditAction::make(), + DeleteAction::make(), + ]) + ->toolbarActions([ + BulkActionGroup::make([ + DeleteBulkAction::make(), + ]), + ]); + } + + public static function getPages(): array + { + return [ + 'index' => ManageCardTypes::route('/'), + ]; + } +} diff --git a/app/Filament/Resources/CardTypes/Pages/ManageCardTypes.php b/app/Filament/Resources/CardTypes/Pages/ManageCardTypes.php new file mode 100644 index 0000000..7acc61c --- /dev/null +++ b/app/Filament/Resources/CardTypes/Pages/ManageCardTypes.php @@ -0,0 +1,19 @@ +