This commit is contained in:
2024-09-01 18:54:23 +05:00
parent 76d18365a5
commit 061f09eca1
1597 changed files with 109451 additions and 1 deletions

View File

@@ -0,0 +1,36 @@
<?php
namespace Laravel\Nova\Tools;
use Illuminate\Http\Request;
use Laravel\Nova\Menu\MenuSection;
use Laravel\Nova\Nova;
use Laravel\Nova\Tool;
class Dashboard extends Tool
{
/**
* Build the menu that renders the navigation links for the tool.
*
* @param \Illuminate\Http\Request $request
* @return mixed
*/
public function menu(Request $request)
{
$dashboards = collect(Nova::availableDashboards($request));
if ($dashboards->count() > 1) {
return MenuSection::make(Nova::__('Dashboards'), $dashboards->map(function ($dashboard) use ($request) {
return $dashboard->menu($request);
}))
->collapsable()
->icon('view-grid');
}
if ($dashboards->count() == 1) {
return MenuSection::make($dashboards->first()->label(), $dashboards)
->path("/dashboards/{$dashboards->first()->uriKey()}")
->icon('view-grid');
}
}
}

View File

@@ -0,0 +1,81 @@
<?php
namespace Laravel\Nova\Tools;
use Illuminate\Http\Request;
use Laravel\Nova\HasMenu;
use Laravel\Nova\Menu\MenuGroup;
use Laravel\Nova\Menu\MenuItem;
use Laravel\Nova\Menu\MenuSection;
use Laravel\Nova\Nova;
use Laravel\Nova\Tool;
class ResourceManager extends Tool implements HasMenu
{
/**
* Perform any tasks that need to happen on tool registration.
*
* @return void
*/
public function boot()
{
//
}
/**
* Build the menu that renders the navigation links for the tool.
*
* @param \Illuminate\Http\Request $request
* @return mixed
*/
public function menu(Request $request)
{
return with(Nova::groupedResourcesForNavigation($request), function ($resources) use ($request) {
$resources = $resources->count() > 1
? $this->groupedMenu($resources, $request)
: $this->unGroupedMenu($resources, $request);
return tap(MenuSection::make(Nova::__('Resources'), $resources), function ($section) use ($resources) {
if ($resources->count() > 1) {
$section->collapsable();
}
});
});
}
/**
* Return an ungrouped set of menu items.
*
* @param \Illuminate\Support\Collection $resources
* @return \Illuminate\Support\Collection
*/
public function unGroupedMenu($resources, Request $request)
{
return $resources->flatten()->map(function ($resource) use ($request) {
if (method_exists($resource, 'menu')) {
return (new $resource)->menu($request);
}
return MenuItem::resource($resource);
});
}
/**
* Return a grouped set of menu items.
*
* @param \Illuminate\Support\Collection $resources
* @return \Illuminate\Support\Collection
*/
public function groupedMenu($resources, Request $request)
{
return $resources->map(function ($group, $key) use ($request) {
return MenuGroup::make($key, $group->map(function ($resource) use ($request) {
if (method_exists($resource, 'menu')) {
return (new $resource)->menu($request);
}
return MenuItem::resource($resource);
}))->collapsable();
});
}
}