digital-creative/column-toggler

A Laravel Nova package that allows you to hide/show columns in the index view.

Fund package maintenance!
milewski

Installs: 67 448

Dependents: 0

Suggesters: 0

Security: 0

Stars: 45

Watchers: 2

Forks: 5

Open Issues: 2

Language:Vue

v0.2.3 2024-01-07 07:28 UTC

This package is auto-updated.

Last update: 2024-12-07 09:43:46 UTC


README

Latest Version on Packagist Total Downloads License

This package provides the ability to toggle columns in the index view of any resource.

Installation

You can install the package via composer:

composer require digital-creative/column-toggler

Basic Usage

Add the DigitalCreative\ColumnToggler\ColumnTogglerTrait to all your resources. The best way to do it is to add it directly to your App\Nova\Resource class.

namespace App\Nova\Resources;

use DigitalCreative\ColumnToggler\ColumnTogglerTrait;
use Laravel\Nova\Resource as NovaResource;

abstract class Resource extends NovaResource
{
    use ColumnTogglerTrait;
}

By default, all columns will be selected/visible on the first page load, however you can define which should be hidden by calling ->hideByDefault() on any nova field.

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

        Text::make('First Name', 'first_name')
            ->sortable(),

        Text::make('Last Name', 'last_name')
            ->sortable(),

        Text::make('Favorite Color', 'favorite_color')
            ->sortable()
            ->hideByDefault(),

        Boolean::make('Active', 'active')
            ->hideByDefault(),
    ];
}

Done, now a new icon will appear in the top right corner of any table resource.

Configuration

You can enable / disable column sorting by adding the following to your config/nova.php file:

// config/nova.php

'vendors' => [
    'column_toggler' => [
        'enable_sorting' => false,
    ]
]

⭐️ Show Your Support

Please give a ⭐️ if this project helped you!

Other Packages You Might Like

License

The MIT License (MIT). Please see License File for more information.