From 8fd5fa0df6a429227cd5ca0b8f3b324edc78ac9d Mon Sep 17 00:00:00 2001 From: xiaomlove Date: Thu, 4 Aug 2022 18:38:02 +0800 Subject: [PATCH] add setting: custom menu enable or not --- app/Console/Commands/Test.php | 11 ++- .../SettingResource/Pages/EditSetting.php | 73 +++++++++++-------- nexus/Install/settings.default.php | 3 + resources/lang/en/admin.php | 2 +- resources/lang/en/label.php | 4 + resources/lang/zh_CN/admin.php | 2 +- resources/lang/zh_CN/label.php | 4 + resources/lang/zh_TW/admin.php | 2 +- resources/lang/zh_TW/label.php | 4 + 9 files changed, 69 insertions(+), 36 deletions(-) diff --git a/app/Console/Commands/Test.php b/app/Console/Commands/Test.php index a249fa86..b82cac61 100644 --- a/app/Console/Commands/Test.php +++ b/app/Console/Commands/Test.php @@ -86,9 +86,14 @@ class Test extends Command */ public function handle() { - $menuRep = new MenuRepository(); - $r = $menuRep->listItems()->toArray(); - dd($r); + add_filter('ttt', function ($d) { + $d[] = 100; + return $d; + }); + $a = []; + $a[] = '1'; + $a = apply_filter('ttt', $a); + dd($a); } diff --git a/app/Filament/Resources/System/SettingResource/Pages/EditSetting.php b/app/Filament/Resources/System/SettingResource/Pages/EditSetting.php index 502fcace..0b6bcedb 100644 --- a/app/Filament/Resources/System/SettingResource/Pages/EditSetting.php +++ b/app/Filament/Resources/System/SettingResource/Pages/EditSetting.php @@ -41,36 +41,7 @@ class EditSetting extends Page implements Forms\Contracts\HasForms { return [ Forms\Components\Tabs::make('Heading') - ->tabs([ - Forms\Components\Tabs\Tab::make(__('label.setting.hr.tab_header')) - ->schema([ - Forms\Components\Radio::make('hr.mode')->options(HitAndRun::listModes(true))->inline(true)->label(__('label.setting.hr.mode')), - Forms\Components\TextInput::make('hr.inspect_time')->helperText(__('label.setting.hr.inspect_time_help'))->label(__('label.setting.hr.inspect_time'))->integer(), - Forms\Components\TextInput::make('hr.seed_time_minimum')->helperText(__('label.setting.hr.seed_time_minimum_help'))->label(__('label.setting.hr.seed_time_minimum'))->integer(), - Forms\Components\TextInput::make('hr.ignore_when_ratio_reach')->helperText(__('label.setting.hr.ignore_when_ratio_reach_help'))->label(__('label.setting.hr.ignore_when_ratio_reach'))->integer(), - Forms\Components\TextInput::make('hr.ban_user_when_counts_reach')->helperText(__('label.setting.hr.ban_user_when_counts_reach_help'))->label(__('label.setting.hr.ban_user_when_counts_reach'))->integer(), - ])->columns(2), - Forms\Components\Tabs\Tab::make(__('label.setting.backup.tab_header')) - ->schema([ - Forms\Components\Radio::make('backup.enabled')->options(self::$yesOrNo)->inline(true)->label(__('label.enabled'))->helperText(__('label.setting.backup.enabled_help')), - Forms\Components\Radio::make('backup.frequency')->options(['daily' => 'daily', 'hourly' => 'hourly'])->inline(true)->label(__('label.setting.backup.frequency'))->helperText(__('label.setting.backup.frequency_help')), - Forms\Components\Select::make('backup.hour')->options(range(0, 23))->label(__('label.setting.backup.hour'))->helperText(__('label.setting.backup.hour_help')), - Forms\Components\Select::make('backup.minute')->options(range(0, 59))->label(__('label.setting.backup.minute'))->helperText(__('label.setting.backup.minute_help')), - Forms\Components\TextInput::make('backup.google_drive_client_id')->label(__('label.setting.backup.google_drive_client_id')), - Forms\Components\TextInput::make('backup.google_drive_client_secret')->label(__('label.setting.backup.google_drive_client_secret')), - Forms\Components\TextInput::make('backup.google_drive_refresh_token')->label(__('label.setting.backup.google_drive_refresh_token')), - Forms\Components\TextInput::make('backup.google_drive_folder_id')->label(__('label.setting.backup.google_drive_folder_id')), - Forms\Components\Radio::make('backup.via_ftp')->options(self::$yesOrNo)->inline(true)->label(__('label.setting.backup.via_ftp'))->helperText(__('label.setting.backup.via_ftp_help')), - Forms\Components\Radio::make('backup.via_sftp')->options(self::$yesOrNo)->inline(true)->label(__('label.setting.backup.via_sftp'))->helperText(__('label.setting.backup.via_sftp_help')), - ])->columns(2), - Forms\Components\Tabs\Tab::make(__('label.setting.seed_box.tab_header')) - ->schema([ - Forms\Components\Radio::make('seed_box.enabled')->options(self::$yesOrNo)->inline(true)->label(__('label.enabled'))->helperText(__('label.setting.seed_box.enabled_help')), - Forms\Components\TextInput::make('seed_box.not_seed_box_max_speed')->label(__('label.setting.seed_box.not_seed_box_max_speed'))->helperText(__('label.setting.seed_box.not_seed_box_max_speed_help'))->integer(), - Forms\Components\Radio::make('seed_box.no_promotion')->options(self::$yesOrNo)->inline(true)->label(__('label.setting.seed_box.no_promotion'))->helperText(__('label.setting.seed_box.no_promotion_help')), - Forms\Components\TextInput::make('seed_box.max_uploaded')->label(__('label.setting.seed_box.max_uploaded'))->helperText(__('label.setting.seed_box.max_uploaded_help'))->integer(), - ])->columns(2), - ]) + ->tabs($this->getTabs()) ]; } @@ -110,4 +81,46 @@ class EditSetting extends Page implements Forms\Contracts\HasForms $this->notify('success', __('filament::resources/pages/edit-record.messages.saved')); } + private function getTabs(): array + { + $tabs = []; + $tabs[] = Forms\Components\Tabs\Tab::make(__('label.setting.hr.tab_header')) + ->id('hr') + ->schema([ + Forms\Components\Radio::make('hr.mode')->options(HitAndRun::listModes(true))->inline(true)->label(__('label.setting.hr.mode')), + Forms\Components\TextInput::make('hr.inspect_time')->helperText(__('label.setting.hr.inspect_time_help'))->label(__('label.setting.hr.inspect_time'))->integer(), + Forms\Components\TextInput::make('hr.seed_time_minimum')->helperText(__('label.setting.hr.seed_time_minimum_help'))->label(__('label.setting.hr.seed_time_minimum'))->integer(), + Forms\Components\TextInput::make('hr.ignore_when_ratio_reach')->helperText(__('label.setting.hr.ignore_when_ratio_reach_help'))->label(__('label.setting.hr.ignore_when_ratio_reach'))->integer(), + Forms\Components\TextInput::make('hr.ban_user_when_counts_reach')->helperText(__('label.setting.hr.ban_user_when_counts_reach_help'))->label(__('label.setting.hr.ban_user_when_counts_reach'))->integer(), + ])->columns(2); + + $tabs[] = Forms\Components\Tabs\Tab::make(__('label.setting.backup.tab_header')) + ->id('backup') + ->schema([ + Forms\Components\Radio::make('backup.enabled')->options(self::$yesOrNo)->inline(true)->label(__('label.enabled'))->helperText(__('label.setting.backup.enabled_help')), + Forms\Components\Radio::make('backup.frequency')->options(['daily' => 'daily', 'hourly' => 'hourly'])->inline(true)->label(__('label.setting.backup.frequency'))->helperText(__('label.setting.backup.frequency_help')), + Forms\Components\Select::make('backup.hour')->options(range(0, 23))->label(__('label.setting.backup.hour'))->helperText(__('label.setting.backup.hour_help')), + Forms\Components\Select::make('backup.minute')->options(range(0, 59))->label(__('label.setting.backup.minute'))->helperText(__('label.setting.backup.minute_help')), + Forms\Components\TextInput::make('backup.google_drive_client_id')->label(__('label.setting.backup.google_drive_client_id')), + Forms\Components\TextInput::make('backup.google_drive_client_secret')->label(__('label.setting.backup.google_drive_client_secret')), + Forms\Components\TextInput::make('backup.google_drive_refresh_token')->label(__('label.setting.backup.google_drive_refresh_token')), + Forms\Components\TextInput::make('backup.google_drive_folder_id')->label(__('label.setting.backup.google_drive_folder_id')), + Forms\Components\Radio::make('backup.via_ftp')->options(self::$yesOrNo)->inline(true)->label(__('label.setting.backup.via_ftp'))->helperText(__('label.setting.backup.via_ftp_help')), + Forms\Components\Radio::make('backup.via_sftp')->options(self::$yesOrNo)->inline(true)->label(__('label.setting.backup.via_sftp'))->helperText(__('label.setting.backup.via_sftp_help')), + ])->columns(2); + + $tabs[] = Forms\Components\Tabs\Tab::make(__('label.setting.seed_box.tab_header')) + ->id('seed_box') + ->schema([ + Forms\Components\Radio::make('seed_box.enabled')->options(self::$yesOrNo)->inline(true)->label(__('label.enabled'))->helperText(__('label.setting.seed_box.enabled_help')), + Forms\Components\TextInput::make('seed_box.not_seed_box_max_speed')->label(__('label.setting.seed_box.not_seed_box_max_speed'))->helperText(__('label.setting.seed_box.not_seed_box_max_speed_help'))->integer(), + Forms\Components\Radio::make('seed_box.no_promotion')->options(self::$yesOrNo)->inline(true)->label(__('label.setting.seed_box.no_promotion'))->helperText(__('label.setting.seed_box.no_promotion_help')), + Forms\Components\TextInput::make('seed_box.max_uploaded')->label(__('label.setting.seed_box.max_uploaded'))->helperText(__('label.setting.seed_box.max_uploaded_help'))->integer(), + ])->columns(2); + + $tabs = apply_filter('nexus_setting_tabs', $tabs); +// return $tabs; + return $tabs; + } + } diff --git a/nexus/Install/settings.default.php b/nexus/Install/settings.default.php index 31b07cbc..cf35589c 100644 --- a/nexus/Install/settings.default.php +++ b/nexus/Install/settings.default.php @@ -414,4 +414,7 @@ return array ( 'max_uploaded' => 3, 'not_seed_box_max_speed' => 10240, ], + 'menu' => [ + 'enabled' => 'no', + ], ); diff --git a/resources/lang/en/admin.php b/resources/lang/en/admin.php index 17631b68..5b2fd58a 100644 --- a/resources/lang/en/admin.php +++ b/resources/lang/en/admin.php @@ -21,7 +21,7 @@ return [ 'upload_speed' => 'Upload speed', 'download_speed' => 'Download speed', 'isp' => 'ISP', - 'menu' => 'Menu', + 'menu' => 'Custom menu', ], 'resources' => [ 'agent_allow' => [ diff --git a/resources/lang/en/label.php b/resources/lang/en/label.php index d79f7df5..2efcf7b5 100644 --- a/resources/lang/en/label.php +++ b/resources/lang/en/label.php @@ -195,6 +195,10 @@ return [ 'ip_help' => 'Begin IP/End IP, IP(Block) Choose one', 'status' => 'Status', ], + 'menu' => [ + 'label' => 'Custom menu', + 'enable_help' => 'Whether to enable custom menu', + ], 'menu_item' => [ 'label' => 'Menu items', 'url' => 'Link', diff --git a/resources/lang/zh_CN/admin.php b/resources/lang/zh_CN/admin.php index 31c7cbaa..a308eb57 100644 --- a/resources/lang/zh_CN/admin.php +++ b/resources/lang/zh_CN/admin.php @@ -21,7 +21,7 @@ return [ 'upload_speed' => '上行带宽', 'download_speed' => '下行带宽', 'isp' => 'ISP', - 'menu' => '菜单', + 'menu' => '自定义菜单', ], 'resources' => [ 'agent_allow' => [ diff --git a/resources/lang/zh_CN/label.php b/resources/lang/zh_CN/label.php index 832cb37d..d1d83452 100644 --- a/resources/lang/zh_CN/label.php +++ b/resources/lang/zh_CN/label.php @@ -198,6 +198,10 @@ return [ 'ip_help' => '起始 IP/结束 IP、IP(段) 二选一', 'status' => '状态', ], + 'menu' => [ + 'label' => '自定义菜单', + 'enable_help' => '是否启用自定义菜单', + ], 'menu_item' => [ 'label' => '菜单项', 'url' => '链接', diff --git a/resources/lang/zh_TW/admin.php b/resources/lang/zh_TW/admin.php index b04f1a81..a17e9694 100644 --- a/resources/lang/zh_TW/admin.php +++ b/resources/lang/zh_TW/admin.php @@ -21,7 +21,7 @@ return [ 'upload_speed' => '上行帶寬', 'download_speed' => '下行帶寬', 'isp' => 'ISP', - 'menu' => '菜單', + 'menu' => '自定義菜單', ], 'resources' => [ 'agent_allow' => [ diff --git a/resources/lang/zh_TW/label.php b/resources/lang/zh_TW/label.php index 409ddb5f..1401255a 100644 --- a/resources/lang/zh_TW/label.php +++ b/resources/lang/zh_TW/label.php @@ -195,6 +195,10 @@ return [ 'ip_help' => '起始 IP/結束 IP、IP(段) 二選一', 'status' => '狀態', ], + 'menu' => [ + 'label' => '自定義菜單', + 'enable_help' => '是否啟用自定義菜單', + ], 'menu_item' => [ 'label' => '菜單項', 'url' => '鏈接',