81 lines
2.5 KiB
PHP
81 lines
2.5 KiB
PHP
<?php
|
|
|
|
namespace App\Providers;
|
|
|
|
use Illuminate\Support\ServiceProvider;
|
|
use Laravel\Nova\Nova;
|
|
use Laravel\Nova\Menu\MenuItem;
|
|
use Laravel\Nova\Menu\MenuSection;
|
|
use App\Nova\Dashboards\WorkshopDashboard;
|
|
use App\Models\RepairOrder;
|
|
use App\Models\Vehicle;
|
|
use App\Models\Part;
|
|
use App\Observers\RepairOrderObserver;
|
|
use App\Observers\VehicleObserver;
|
|
use App\Observers\PartObserver;
|
|
|
|
class WorkshopServiceProvider extends ServiceProvider
|
|
{
|
|
/**
|
|
* Register any application services.
|
|
*
|
|
* @return void
|
|
*/
|
|
public function register()
|
|
{
|
|
// Register workshop config
|
|
$this->mergeConfigFrom(
|
|
__DIR__ . '/../../config/workshop.php', 'workshop'
|
|
);
|
|
}
|
|
|
|
/**
|
|
* Bootstrap any application services.
|
|
*
|
|
* @return void
|
|
*/
|
|
public function boot()
|
|
{
|
|
// Register observers
|
|
RepairOrder::observe(RepairOrderObserver::class);
|
|
Vehicle::observe(VehicleObserver::class);
|
|
Part::observe(PartObserver::class);
|
|
|
|
// Publish config
|
|
$this->publishes([
|
|
__DIR__ . '/../../config/workshop.php' => config_path('workshop.php'),
|
|
], 'workshop-config');
|
|
|
|
// Configure Nova menu
|
|
Nova::mainMenu(function () {
|
|
return [
|
|
MenuSection::dashboard(WorkshopDashboard::class)->icon('chart-bar'),
|
|
|
|
MenuSection::make('Fleet Management', [
|
|
MenuItem::resource('App\Nova\Vehicle'),
|
|
MenuItem::resource('App\Nova\MaintenanceSchedule'),
|
|
MenuItem::link('Vehicles Due Maintenance', '/resources/vehicles/lens/vehicles-due-for-maintenance'),
|
|
])->icon('truck')->collapsable(),
|
|
|
|
MenuSection::make('Repairs', [
|
|
MenuItem::resource('App\Nova\RepairOrder'),
|
|
MenuItem::resource('App\Nova\RepairTask'),
|
|
])->icon('wrench')->collapsable(),
|
|
|
|
MenuSection::make('Inventory', [
|
|
MenuItem::resource('App\Nova\Part'),
|
|
MenuItem::link('Low Stock Parts', '/resources/parts/lens/low-inventory-parts'),
|
|
])->icon('archive')->collapsable(),
|
|
|
|
MenuSection::make('Staff', [
|
|
MenuItem::resource('App\Nova\Technician'),
|
|
])->icon('user-group')->collapsable(),
|
|
|
|
MenuSection::make('Documents', [
|
|
MenuItem::resource('App\Nova\Document'),
|
|
])->icon('document-text')->collapsable(),
|
|
];
|
|
});
|
|
}
|
|
}
|