{"id":21504418,"url":"https://github.com/dcasia/nova-mega-filter","last_synced_at":"2025-04-06T00:08:40.194Z","repository":{"id":36340776,"uuid":"223608205","full_name":"dcasia/nova-mega-filter","owner":"dcasia","description":"Allows you to control the columns and filters shown on any Nova resource index","archived":false,"fork":false,"pushed_at":"2024-06-20T04:50:11.000Z","size":1353,"stargazers_count":86,"open_issues_count":7,"forks_count":19,"subscribers_count":8,"default_branch":"main","last_synced_at":"2025-03-29T22:10:03.328Z","etag":null,"topics":["big-filter","filters","friendly-filter","laravel","nova"],"latest_commit_sha":null,"homepage":"","language":"Vue","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dcasia.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":"milewski","patreon":null,"open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"lfx_crowdfunding":null,"custom":null}},"created_at":"2019-11-23T15:12:51.000Z","updated_at":"2025-03-28T12:39:54.000Z","dependencies_parsed_at":"2023-01-17T01:15:47.228Z","dependency_job_id":"29f7d6fd-83f9-4cba-aeef-b9436e5e66ca","html_url":"https://github.com/dcasia/nova-mega-filter","commit_stats":{"total_commits":43,"total_committers":7,"mean_commits":6.142857142857143,"dds":0.5116279069767442,"last_synced_commit":"a92842f8409840f80a73af53ef857d8ebba6c443"},"previous_names":[],"tags_count":29,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dcasia%2Fnova-mega-filter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dcasia%2Fnova-mega-filter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dcasia%2Fnova-mega-filter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dcasia%2Fnova-mega-filter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dcasia","download_url":"https://codeload.github.com/dcasia/nova-mega-filter/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247415967,"owners_count":20935387,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["big-filter","filters","friendly-filter","laravel","nova"],"created_at":"2024-11-23T18:59:44.828Z","updated_at":"2025-04-06T00:08:40.179Z","avatar_url":"https://github.com/dcasia.png","language":"Vue","funding_links":["https://github.com/sponsors/milewski"],"categories":[],"sub_categories":[],"readme":"# Nova Mega Filter\n\n[![Latest Version on Packagist](https://img.shields.io/packagist/v/digital-creative/nova-mega-filter)](https://packagist.org/packages/digital-creative/nova-mega-filter)\n[![Total Downloads](https://img.shields.io/packagist/dt/digital-creative/nova-mega-filter)](https://packagist.org/packages/digital-creative/nova-mega-filter)\n[![License](https://img.shields.io/packagist/l/digital-creative/nova-mega-filter)](https://github.com/dcasia/nova-mega-filter/blob/main/LICENSE)\n\nDisplay all your filters in a card instead of a tiny dropdown!\n\n\u003cpicture\u003e\n  \u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"https://raw.githubusercontent.com/dcasia/nova-mega-filter/main/screenshots/dark.png\"\u003e\n  \u003cimg alt=\"Nova Mega Filter in Action\" src=\"https://raw.githubusercontent.com/dcasia/nova-mega-filter/main/screenshots/light.png\"\u003e\n\u003c/picture\u003e\n\n# Installation\n\nYou can install the package via composer:\n\n```shell\ncomposer require digital-creative/nova-mega-filter\n```\n\n## Basic Usage\n\nBasic demo showing the power of this package:\n\n```php\nuse DigitalCreative\\MegaFilter\\MegaFilter;\nuse DigitalCreative\\MegaFilter\\MegaFilterTrait;\n\nclass ExampleNovaResource extends Resource {\n\n    use MegaFilterTrait;\n\n    public function filters(RequestRequest $request): array\n    {\n        return [\n            MegaFilter::make([\n                DateOfBirthFilter::make(),\n                UserTypeFilter::make(),\n            ]),\n        ];\n    }\n\n}\n```\n\nAnd you are done!\n\nPreviously this package also had the ability to toggle columns, but since the nova 4 upgrade this functionality has been\nmoved away to its own package: https://github.com/dcasia/column-toggler\n\n---\n\nYou can also add other fields alongside your Mega Filters, they will be rendered as usual:\n\n```php\nuse DigitalCreative\\MegaFilter\\MegaFilter;\nuse DigitalCreative\\MegaFilter\\MegaFilterTrait;\n\nclass ExampleNovaResource extends Resource {\n\n    use MegaFilterTrait;\n\n    public function filters(NovaRequest $request): array\n    {\n        return [\n            MegaFilter::make([ ... ]),\n            \n            // These will be rendered as normal on the usual tiny filter dropdown\n            DateOfBirthFilter::make(),\n            UserTypeFilter::make(),\n        ];\n    }\n\n}\n```\n\nYou can also set how many columns you want to display your filters:\n\n```php\npublic function filters(NovaRequest $request): array\n{\n    return [\n        MegaFilter::make([ ... ])-\u003ecolumns(3),\n    ];\n}\n```\n\nBy default, the filter section is collapsed. If you want it to open or expanded initially, you can do:\n\n```php\npublic function filters(NovaRequest $request): array\n{\n    return [\n        MegaFilter::make([ ... ])-\u003eopen(),\n    ];\n}\n```\n\n\u003e Note: At the moment this package only works with a single Mega Filter per resource, adding multiple on the same resource may result in unexpected behavior.\n\n## ⭐️ Show Your Support\n\nPlease give a ⭐️ if this project helped you!\n\n### Other Packages You Might Like\n\n- [Nova Dashboard](https://github.com/dcasia/nova-dashboard) - The missing dashboard for Laravel Nova!\n- [Nova Welcome Card](https://github.com/dcasia/nova-welcome-card) - A configurable version of the `Help card` that comes with Nova.\n- [Icon Action Toolbar](https://github.com/dcasia/icon-action-toolbar) - Replaces the default boring action menu with an inline row of icon-based actions.\n- [Expandable Table Row](https://github.com/dcasia/expandable-table-row) - Provides an easy way to append extra data to each row of your resource tables.\n- [Collapsible Resource Manager](https://github.com/dcasia/collapsible-resource-manager) - Provides an easy way to order and group your resources on the sidebar.\n- [Resource Navigation Tab](https://github.com/dcasia/resource-navigation-tab) - Organize your resource fields into tabs.\n- [Resource Navigation Link](https://github.com/dcasia/resource-navigation-link) - Create links to internal or external resources.\n- [Nova Mega Filter](https://github.com/dcasia/nova-mega-filter) - Display all your filters in a card instead of a tiny dropdown!\n- [Nova Pill Filter](https://github.com/dcasia/nova-pill-filter) - A Laravel Nova filter that renders into clickable pills.\n- [Nova Slider Filter](https://github.com/dcasia/nova-slider-filter) - A Laravel Nova filter for picking range between a min/max value.\n- [Nova Range Input Filter](https://github.com/dcasia/nova-range-input-filter) - A Laravel Nova range input filter.\n- [Nova FilePond](https://github.com/dcasia/nova-filepond) - A Nova field for uploading File, Image and Video using Filepond.\n- [Custom Relationship Field](https://github.com/dcasia/custom-relationship-field) - Emulate HasMany relationship without having a real relationship set between resources.\n- [Column Toggler](https://github.com/dcasia/column-toggler) - A Laravel Nova package that allows you to hide/show columns in the index view.\n- [Batch Edit Toolbar](https://github.com/dcasia/batch-edit-toolbar) - Allows you to update a single column of a resource all at once directly from the index page.\n\n## License\n\nThe MIT License (MIT). Please see [License File](https://raw.githubusercontent.com/dcasia/nova-mega-filter/master/LICENSE) for more information.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdcasia%2Fnova-mega-filter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdcasia%2Fnova-mega-filter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdcasia%2Fnova-mega-filter/lists"}