PHP code example of almirhodzic / nova-toggle-5

1. Go to this page and download the library: Download almirhodzic/nova-toggle-5 library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

almirhodzic / nova-toggle-5 example snippets


use AlmirHodzic\NovaToggle5\Toggle;

public function fields(NovaRequest $request)
{
    return [
        Toggle::make('Active', 'is_active'),
    ];
}

Toggle::make('Active', 'is_active')
    ->onColor('#00d5be', '#009689')  // Light mode, Dark mode
    ->offColor('#e5e5e5', '#323f57');

Toggle::make('Active', 'is_active')
    ->onBullet('white')           // Same for both modes
    ->offBullet('white', 'grey'); // Light mode, Dark mode

Toggle::make('Active', 'is_active')
    ->valueLabelText('ON', 'OFF');  // ON label, OFF label

Toggle::make('Active', 'is_active')
    ->valueLabelText('ON', 'OFF')
    ->valueLabelOnColors('#ffffff')              // ON label color
    ->valueLabelOffColors('#a1a1a1', '#737373'); // OFF label colors (light, dark)

Toggle::make('Show', 'show')
    ->toastLabelKey('question'); // Uses $model->question instead of default

Toggle::make('Active', 'is_active')
    ->toastShow(false); // No toast notification on toggle



namespace App\Nova\Filters;

use Illuminate\Contracts\Database\Eloquent\Builder;
use Laravel\Nova\Filters\Filter;
use Laravel\Nova\Http\Requests\NovaRequest;

class IsActiveFilter extends Filter
{
    public $name = 'Active Status';

    public $component = 'select-filter';

    public function apply(NovaRequest $request, Builder $query, mixed $value): Builder
    {
        if ($value === 'active') {
            return $query->where('is_active', true);
        }

        if ($value === 'inactive') {
            return $query->where('is_active', false);
        }

        return $query;
    }

    public function options(NovaRequest $request): array
    {
        return [
            'Active' => 'active',
            'Inactive' => 'inactive',
        ];
    }
}

use App\Nova\Filters\IsActiveFilter;

public function filters(NovaRequest $request): array
{
    return [
        new IsActiveFilter,
    ];
}



namespace App\Nova\Filters;

use Illuminate\Contracts\Database\Eloquent\Builder;
use Laravel\Nova\Filters\BooleanFilter;
use Laravel\Nova\Http\Requests\NovaRequest;

class IsActiveFilter extends BooleanFilter
{
    public $name = 'Active Status';

    public function apply(NovaRequest $request, Builder $query, mixed $value): Builder
    {
        if (isset($value['active'])) {
            return $query->where('is_active', $value['active']);
        }

        if (isset($value['inactive'])) {
            return $query->where('is_active', !$value['inactive']);
        }

        return $query;
    }

    public function options(NovaRequest $request): array
    {
        return [
            'Active' => 'active',
            'Inactive' => 'inactive',
        ];
    }
}

Toggle::make('Active', 'is_active')
    ->filterable()
    ...

Toggle::make('Active', 'is_active')
    ->helpOnIndex('Toggle to activate/deactivate')
    ->helpOnForm('Enable this option to activate the feature')
    ->helpOnDetail('Current activation status');

Toggle::make('Active', 'is_active')
    ->hideWhen(function ($request, $resource) {
        return $resource->status === 'archived';
    });

Toggle::make('Active', 'is_active')
    ->readonlyWhen(function ($request, $resource) {
        return !$request->user()->isAdmin();
    });

use AlmirHodzic\NovaToggle5\Toggle;
use App\Nova\Filters\IsActiveFilter;

public function fields(NovaRequest $request)
{
    return [
        ID::make()->sortable(),

        Text::make('Name'),

        Toggle::make('Active', 'is_active')
            ->filterable()
            ->onColor('#10b981', '#059669')
            ->offColor('#ef4444', '#dc2626')
            ->onBullet('#ffffff')
            ->offBullet('#ffffff')
            ->valueLabelText('ON', 'OFF')
            ->valueLabelOnColors('#ffffff')
            ->valueLabelOffColors('#fecaca', '#fca5a5')
            ->helpOnIndex('Click to toggle status')
            ->helpOnForm('Enable to make this item visible')
            ->toastShow(true)
            ->readonlyWhen(function ($request, $resource) {
                return !$request->user()->can('edit', $resource);
            }),

        Toggle::make('Featured', 'is_featured')
            ->onColor('#f59e0b')
            ->offColor('#6b7280')
            ->valueLabelText('★', '☆')
            ->toastShow(false)
            ->hideWhen(function ($request, $resource) {
                return !$resource->is_active;
            }),

        Toggle::make('Show FAQ', 'show')
            ->toastLabelKey('question') // Uses $faq->question for toast message
            ->helpOnIndex('Toggle visibility'),
    ];
}

public function filters(NovaRequest $request): array
{
    return [
        new IsActiveFilter,
    ];
}
bash
php artisan nova:filter IsActiveFilter