HEX
Server: nginx/1.28.3
System: Linux lightweb-s1 5.15.0-173-generic #183-Ubuntu SMP Fri Mar 6 13:29:34 UTC 2026 x86_64
User: drdrivek-71 (1047)
PHP: 8.3.30
Disabled: NONE
Upload Files
File: /home/eslinced-103/brise-edu.or.kr/app/Amuz/NovaTools/AmuzTool.php
<?php

namespace App\Amuz\NovaTools;

use App\Nova\Central\Activity;
use Illuminate\Http\Request;

use Illuminate\Support\Facades\Storage;
use Laravel\Nova\Menu\Menu;
use Laravel\Nova\Menu\MenuItem;
use Laravel\Nova\Menu\MenuSection;
use Laravel\Nova\Nova;

use Laravel\Nova\Tool as NovaTool;
use Vyuldashev\NovaPermission\NovaPermissionTool;

class AmuzTool extends NovaTool
{
    public function boot(){
//        Nova::script('novassport', __DIR__ . '/../dist/js/tool.js');
//        Nova::style('novassport', __DIR__ . '/../dist/css/tool.css');
        if (!tenancy()->initialized) {
            Nova::resources([
//                OauthMyApps::class,
            ]);
        }
    }
    /**
     * Build the menu that renders the navigation links for the tool.
     *
     * @param Request $request
     * @return mixed
     */
    public function menu(Request $request) :void
    {
        Nova::mainMenu(function(Request $request, Menu $menu){
            $permissionTool = new NovaPermissionTool();
            $menu = new Menu();

            $packages = $this->getAmuzPackages();
            $advancedSection = new MenuSection(__('Advance Settings'), [],'cog');
            $advancedSection->items->add(MenuItem::make(__('Scheduled Jobs'))->path('/nova-scheduled-jobs'));
            $advancedSection->items->add(MenuItem::resource(Activity::class));

            $advancedSection->items->add(MenuItem::externalLink(__('Documentation'), 'https://cms.amuz.co.kr/documentation')
                ->openInNewTab());

            $advancedSection->collapsable();

            foreach($packages as $package){
                $classPath = base_path(sprintf('AmuzPackages/%s/NovaMainMenu.php',$package));
                if(!file_exists($classPath)) continue;

                $className = sprintf("AmuzPackages\%s\NovaMainMenu",$package);
                $novaMainMenu = new $className();
                if (tenancy()->initialized) {
                    if (method_exists($novaMainMenu, "makeTenancyNovaMainMenu")) {
                        $novaMainMenu->makeTenancyNovaMainMenu($request, $menu, $permissionTool);
                    }
                }else{
                    if(method_exists($novaMainMenu,"makeCentralNovaMainMenu")){
                        $novaMainMenu->makeCentralNovaMainMenu($request, $menu, $permissionTool);
                    }
                }

                if(method_exists($novaMainMenu,"makeAdvancedMenu")){
                    $novaMainMenu->makeAdvancedMenu($request, $advancedSection);
                }
            }

            $settingsMenu = (new \Outl1ne\NovaSettings\NovaSettings)->menu($request);
            if($settingsMenu !== null){
                $menu->append($settingsMenu);
            }

            $menu->append($advancedSection);
            return $menu;
        });
    }

    private function getAmuzPackages(): array
    {
        return Storage::disk('package')->directories();
    }
}