OwlCyberSecurity - MANAGER
Edit File: SiteOfferResource.php
<?php namespace App\Filament\Resources; use App\Filament\Resources\SiteOfferResource\Pages; use App\Filament\Resources\SiteOfferResource\RelationManagers; use App\Models\SiteOffer; use Filament\Forms; use Filament\Forms\Form; use Filament\Resources\Resource; use Filament\Tables; use Filament\Tables\Columns\IconColumn; use Filament\Tables\Filters\SelectFilter; use Filament\Tables\Table; use Illuminate\Database\Eloquent\Builder; use Illuminate\Database\Eloquent\SoftDeletingScope; use Filament\Tables\Columns\TextColumn; use Filament\Forms\Components\Select; use Filament\Forms\Components\TextInput; use Filament\Forms\Components\FileUpload; use Filament\Forms\Components\Repeater; use Filament\Forms\Components\Toggle; class SiteOfferResource extends Resource { protected static ?string $model = SiteOffer::class; protected static ?string $navigationIcon = 'heroicon-o-rectangle-stack'; protected static ?string $slug = 'sites-offer'; protected static ?string $modelLabel = 'برند ها'; protected static ?string $pluralModelLabel = 'برندهای پیشنهادی'; protected static ?int $navigationSort = 2; protected static ?string $navigationGroup = 'پیشنهاد ها'; public static function form(Form $form): Form { return $form ->schema([ Select::make('shoping_sites_id') ->label('سایت مورد نظر') ->relationship('shoppingSite', 'site') ->required(), TextInput::make('name') ->label('نام فارسی') ->required() ->maxLength(255), FileUpload::make('image_name') ->image() ->label('تصویر شاخص') ->imageEditor()->required(), FileUpload::make('banner_name') ->image() ->label('بنر نوشته') ->imageEditor()->required(), Repeater::make('url') ->label('اسم و لینک') ->schema([ TextInput::make('Name') ->label('اسم لینک') ->required(), TextInput::make('url') ->label('لینک') ->url() ->required(), ]) ->minItems(1) ->maxItems(5) ->columns(2) ->required(), Toggle::make('is_active')->label('فعال')->required(), ]); } public static function table(Table $table): Table { return $table ->columns([ TextColumn::make('shoppingSite.site')->label('سایت مرجع')->sortable(), TextColumn::make('name')->label('اسم سایت')->sortable(), TextColumn::make('created_at')->label('درست شده در')->dateTime()->sortable(), IconColumn::make('is_active')->label('وضعیت نمایش')->boolean()->sortable(), ]) ->filters([ SelectFilter::make('is_active')->label('وضعیت نمایش')->options(['1' => 'بله', '0' => 'خیر']), ]) ->actions([ Tables\Actions\EditAction::make(), ]) ->bulkActions([ // Tables\Actions\BulkActionGroup::make([ // Tables\Actions\DeleteBulkAction::make(), // ]), ])->defaultSort('updated_at', 'desc'); } public static function getRelations(): array { return [ // ]; } public static function getPages(): array { return [ 'index' => Pages\ListSiteOffers::route('/'), 'create' => Pages\CreateSiteOffer::route('/create'), 'edit' => Pages\EditSiteOffer::route('/{record}/edit'), ]; } public static function canViewAny(): bool { return auth()->user()->can('sites-offer::view'); } }