sparclex/nova-import-card

This package is abandoned and no longer maintained. The author suggests using the anaseqal/nova-import package instead.

A card which lets you batch import resources

v2.0.0 2019-03-12 22:34 UTC

README

Latest Stable Version Total Downloads Latest Unstable Version License StyleCI TravisCi codecov

A customizable import card for laravel nova. This package is more or less just a UI for laravel-excel import. It is however not an official package from Maatwebsite.

Nova Import Card Screenshot

Installation

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

composer require sparclex/nova-import-card

Next up, you must register the card. This is typically done in the card method of the corresponding resource or the NovaServiceProvider.

// in app/Providers/NovaServiceProvider.php or app/Nova/<Resource>.php

// ...

public function card()
{
    return [
        // ...
        new \Sparclex\NovaImportCard\NovaImportCard(\App\Nova\User::class),
    ];
}

Customization

To customize the import process create a new importer class. The importer class is basically just an import implementation of the laravel-excel package. The easiest way to get started is to extend Sparclex\NovaImportCard\BasicImporter and overwrite the different methods. During the import process you may throw an exception of the type Sparclex\NovaImportCard\ImportException with an error message visible for the user. You may also add a message(): String method to customize the success message.

The custom importer class can be registered on global or resource basis.

// app/Nova/User.php

class User extends Resource
{

    public static $importer = CustomImporter::class;
    
    // ...
}

// or app/config/nova-import-card.php

return [
    'importer' => CustomImporter::class,
    
    // ...
]

Testing

composer test

Changelog

Please see CHANGELOG for more information on what has changed recently.

Contributing

Please see CONTRIBUTING for details.

License

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