eom-plus/nova-rating-field

A Laravel Rating Nova field.

Fund package maintenance!
operativeit

Installs: 4 912

Dependents: 0

Suggesters: 0

Security: 0

Stars: 1

Watchers: 1

Forks: 0

Open Issues: 1

Language:Vue

dev-master 2023-10-19 21:47 UTC

This package is auto-updated.

Last update: 2024-05-19 23:04:19 UTC


README

A Star rating field to use in your Laravel Nova apps. This package is highly based on nikaia/nova-rating-field thas is incompatible with Nova4 and looks unmaintained for a while.

This README was written by the original author and we just copy it here and change the package and field name.

Uses vue-star-rating.

Latest Version on Packagist Total Downloads GitHub forks GitHub issues License

image

Installation

You can install the package in to a Laravel app that uses Nova via composer:

composer require eom-plus/nova-rating-field

Next you can use the Eom-Plus\NovaRatingField\Rating field in your Nova resource.

Usage

public function fields(Request $request)
{
    return [
        // ...

        Rating::make('Rating')->min(0)->max(5)->increment(0.5)->hideFromIndex(),
        
        // Defining a custom style for the index page.
        Rating::make('Rating')->min(0)->max(5)->increment(0.5)->hideRating()
            ->withStyles([
                'star-size' => 15,
                'rounded-corners' => true,
            ])->onlyOnIndex()->sortable(),

        // ...    
        
    ];
}

Defining properties

public function fields(Request $request)
{
    Rating::make('Rating')
    
        // Miniumum rating (default: 0)
        ->min(0) 
        
        // Maximum rating (default: 5)
        // This is how the component knows how many stars it should display.
        ->max(5)
        
        // Incremet (default: 1)
        // Can be float. The underlying eloquent colum must be defined as float in that case.
        // ie. 0.5 for half stars or 0.01 for fluid stars.
        ->increment(0.5)
        
        // Show rating value next to the stars
        ->hideRating()
        
}

Customizing styles

You can style the component using withStyles method. Options are passed to the the underlying vue component style props.

Default values are :

public function fields(Request $request)
{
    Rating::make('Rating')
        ->withStyles([
            'star-size' => 30,
            'active-color' => 'var(--primary)', // Primary nova theme color.
            'inactive-color' => '#d8d8d8',
            'border-color' => 'var(--60)',
            'border-width' => 0,
            'padding' => 10,
            'rounded-corners' => false,
            'inline' => false,
            'glow' => 0,
            'glow-color' => '#fff',
            'text-class' => 'inline-block text-80 h-9 pt-2',
        ]);
}

⭐️ Show Your Support

Please give a ⭐️ if this project helped you!

Other Packages You Might Like

Take a look to our Github repositories as we have a lot of forked nova components with fixes that are still not merge into main owner branch.

License

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