Skip to content

A Star rating field to use in your Laravel Nova apps.

License

Notifications You must be signed in to change notification settings

miagg/nova-rating-field

 
 

Repository files navigation

Nova Rating field

A Star rating field to use in your Laravel Nova apps.

Uses vue-star-rating.

Latest Version on Packagist Total Downloads


Installation

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

composer require nikaia/nova-rating-field

Next you can use the Nikaia\Rating\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",
        ]);
}

About

A Star rating field to use in your Laravel Nova apps.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Vue 48.0%
  • PHP 40.5%
  • Shell 9.1%
  • JavaScript 2.3%
  • SCSS 0.1%