HEX
Server: Apache
System: Linux server2.voipitup.com.au 4.18.0-553.104.1.lve.el8.x86_64 #1 SMP Tue Feb 10 20:07:30 UTC 2026 x86_64
User: posscale (1027)
PHP: 8.2.29
Disabled: exec,passthru,shell_exec,system
Upload Files
File: //home/posscale/www/printmanager/app/Filament/Resources/ModelResource.php
<?php

namespace App\Filament\Resources;

use App\Enums\ColourEnum;
use App\Enums\PageSizeEnum;
use App\Enums\TonerorinkEnum;
use App\Enums\TypeEnum;
use App\Filament\Resources\ModelResource\Pages;
use App\Filament\Resources\ModelResource\RelationManagers;
use App\Models\Make;
use App\Models\Models;
use Filament\Forms;
use Filament\Forms\Components\Select;
use Filament\Forms\Components\TextInput;
use Filament\Forms\Form;
use Filament\Resources\Resource;
use Filament\Tables;
use Filament\Tables\Columns\TextColumn;
use Filament\Tables\Table;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\SoftDeletingScope;

class ModelResource extends Resource
{
    use Forms\Concerns\InteractsWithForms;

    protected static ?string $model = Models::class;
    
    protected static ?string $navigationIcon = 'heroicon-o-cube';
    protected static ?string $navigationGroup = "Printer Parts";
    protected static ?int $navigationSort = 5;

    public static function canViewAny(): bool
    {
        if (app()->request->getHost() === env('APP_CENTRAL_DOMAIN')) {
            return true;
        }
        return false;
    }

    public static function form(Form $form): Form
    {
        return $form
            ->schema([
                TextInput::make('name')->label('Model')->required(true),
                Select::make('make_id')
                    ->label('Make')
                    ->options(Make::all()->pluck('name', 'id'))
                    ->searchable(), 
                Select::make('type')
                    ->label('Type')
                    ->options(TypeEnum::options())
                    ->native(false)
                     ->required(true)   ->preload(),  
                Select::make('colour')
                    ->label('Colour')
                     ->native(false)
                    ->options(ColourEnum::options()) ->required(true), 
                Select::make('pagesize')
                    ->label('Page Size')
                    ->options(PageSizeEnum::options())
                     ->native(false)
                    ->required(true),
                Select::make('tonerorink')
                    ->label('Toner Or Ink')
                     ->native(false)
                    ->options(TonerorinkEnum::options())->required(true),   
                TextInput::make('numslots')->integer()->label('Num Slots')->required(true),
                TextInput::make('tonerinkcolors')->label('Toner Ink Colors')->required(true),      
                TextInput::make('optionalaccessories')->label('Optional Accessories')->required(true),                      

                TextInput::make('drum_unit')->label('Drum Unit')->required(true),  
                TextInput::make('fuser_unit')->label('Fuser Unit')->required(true),  
                TextInput::make('paper_tray')->label('Paper Tray')->required(true),  
                TextInput::make('paper_feed_rollers')->label('Paper Feed Rollers')->required(true),  
                TextInput::make('duplex_unit')->label('Duplex Unit')->required(true),  
                TextInput::make('transfer_belt')->label('Transfer Belt')->required(true),  
                TextInput::make('toner_discreptions')->label('Toner Discreptions')->required(true),  
            ]);
    }

    public static function table(Table $table): Table
    {
        return $table
            ->columns([
                TextColumn::make('name')->sortable()->searchable(),
                TextColumn::make('make.name'),
                TextColumn::make('type'),
                TextColumn::make('colour'),
                TextColumn::make('pagesize'),
                 
            ])
            ->filters([
                //
            ])
            ->actions([
                Tables\Actions\EditAction::make(),
            ])
            ->bulkActions([
                Tables\Actions\DeleteBulkAction::make(),
            ]);
    }
    
    public static function getRelations(): array
    {
        return [
            //
        ];
    }
    
    public static function getPages(): array
    {
        return [
            'index' => Pages\ListModels::route('/'),
            'create' => Pages\CreateModel::route('/create'),
            'edit' => Pages\EditModel::route('/{record}/edit'),
        ];
    }    
}