starfolksoftware / laravel-dashboard-table-tile
A tile for displaying a table in spatie's laravel dashboard.
v2.1.1
2023-12-25 05:53 UTC
Requires
- php: ^8.2
- fakerphp/faker: ^1.19
- orchestra/testbench: ^8.0
- spatie/laravel-dashboard: ^3.0
Requires (Dev)
- nunomaduro/laravel-mojito: ^0.2.10
- pestphp/pest: ^2.0
README
A simple and straightforward table tile package.
This tile can be used on the Laravel Dashboard.
Installation
You can install the package via composer:
composer require starfolksoftware/laravel-dashboard-table-tile
Usage
In the dashboard config file, you can optionally add this configuration in the tiles key.
'tiles' => [ // ... 'tables' => [ 'refresh_interval_in_seconds' => 300, // Default: 300 seconds (5 minutes) ], ],
See a table example below:
<?php namespace App\Tables; use StarfolkSoftware\TableTile\Table; class ExampleTableTile extends Table { /** * Get the title of the table. * * @return string */ protected function getTitle() { return 'Example Table Tile'; } /** * Get the description of the table. * * @return string */ protected function getDescription() { return 'This is an example table tile.'; } /** * Get the columns to be displayed in the table. * * @return array */ protected function getColumns() { return [ 'name' => [ 'label' => 'Name', ], 'email' => [ 'label' => 'Email', ], 'gender' => [ 'label' => 'Gender', ], 'status' => [ 'label' => 'Status', ], ]; } /** * Get the rows to be displayed in the table. * * @return array */ protected function getRows() { $faker = \Faker\Factory::create(); return collect(range(1, 100))->map(function ($i) use ($faker) { return [ 'name' => $faker->name, 'email' => $faker->email, 'gender' => $faker->randomElement(['male', 'female']), 'status' => $faker->randomElement(['paid', 'unpaid']), ]; }); } /** * Get the filters to be applied to the table. * * @return array */ protected function getAvailableFilters() { return [ 'gender' => [ 'label' => 'Gender', 'values' => [ 'male', 'female', ], ], 'status' => [ 'label' => 'Status', 'values' => [ 'paid', 'unpaid' ], ] ]; } /** * Get the columns that can be searched. * * @return array */ protected function getSearchableColumns() { return ['name', 'email']; } }
In your dashboard view you use the livewire:table-tile
component.
<x-dashboard> <livewire:table-tile position="e7:e16" /> </x-dashboard>
Testing
composer test
Changelog
Please see CHANGELOG for more information on what has changed recently.
Contributing
Please see CONTRIBUTING for details.
Security
If you discover any security related issues, please email :author_email instead of using the issue tracker.
Credits
License
The MIT License (MIT). Please see License File for more information.