add setting: custom menu enable or not

This commit is contained in:
xiaomlove
2022-08-04 18:38:02 +08:00
parent 23804a0b14
commit 8fd5fa0df6
9 changed files with 69 additions and 36 deletions
+8 -3
View File
@@ -86,9 +86,14 @@ class Test extends Command
*/ */
public function handle() public function handle()
{ {
$menuRep = new MenuRepository(); add_filter('ttt', function ($d) {
$r = $menuRep->listItems()->toArray(); $d[] = 100;
dd($r); return $d;
});
$a = [];
$a[] = '1';
$a = apply_filter('ttt', $a);
dd($a);
} }
@@ -41,36 +41,7 @@ class EditSetting extends Page implements Forms\Contracts\HasForms
{ {
return [ return [
Forms\Components\Tabs::make('Heading') Forms\Components\Tabs::make('Heading')
->tabs([ ->tabs($this->getTabs())
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),
])
]; ];
} }
@@ -110,4 +81,46 @@ class EditSetting extends Page implements Forms\Contracts\HasForms
$this->notify('success', __('filament::resources/pages/edit-record.messages.saved')); $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;
}
} }
+3
View File
@@ -414,4 +414,7 @@ return array (
'max_uploaded' => 3, 'max_uploaded' => 3,
'not_seed_box_max_speed' => 10240, 'not_seed_box_max_speed' => 10240,
], ],
'menu' => [
'enabled' => 'no',
],
); );
+1 -1
View File
@@ -21,7 +21,7 @@ return [
'upload_speed' => 'Upload speed', 'upload_speed' => 'Upload speed',
'download_speed' => 'Download speed', 'download_speed' => 'Download speed',
'isp' => 'ISP', 'isp' => 'ISP',
'menu' => 'Menu', 'menu' => 'Custom menu',
], ],
'resources' => [ 'resources' => [
'agent_allow' => [ 'agent_allow' => [
+4
View File
@@ -195,6 +195,10 @@ return [
'ip_help' => 'Begin IP/End IP, IP(Block) Choose one', 'ip_help' => 'Begin IP/End IP, IP(Block) Choose one',
'status' => 'Status', 'status' => 'Status',
], ],
'menu' => [
'label' => 'Custom menu',
'enable_help' => 'Whether to enable custom menu',
],
'menu_item' => [ 'menu_item' => [
'label' => 'Menu items', 'label' => 'Menu items',
'url' => 'Link', 'url' => 'Link',
+1 -1
View File
@@ -21,7 +21,7 @@ return [
'upload_speed' => '上行带宽', 'upload_speed' => '上行带宽',
'download_speed' => '下行带宽', 'download_speed' => '下行带宽',
'isp' => 'ISP', 'isp' => 'ISP',
'menu' => '菜单', 'menu' => '自定义菜单',
], ],
'resources' => [ 'resources' => [
'agent_allow' => [ 'agent_allow' => [
+4
View File
@@ -198,6 +198,10 @@ return [
'ip_help' => '起始 IP/结束 IP、IP(段) 二选一', 'ip_help' => '起始 IP/结束 IP、IP(段) 二选一',
'status' => '状态', 'status' => '状态',
], ],
'menu' => [
'label' => '自定义菜单',
'enable_help' => '是否启用自定义菜单',
],
'menu_item' => [ 'menu_item' => [
'label' => '菜单项', 'label' => '菜单项',
'url' => '链接', 'url' => '链接',
+1 -1
View File
@@ -21,7 +21,7 @@ return [
'upload_speed' => '上行帶寬', 'upload_speed' => '上行帶寬',
'download_speed' => '下行帶寬', 'download_speed' => '下行帶寬',
'isp' => 'ISP', 'isp' => 'ISP',
'menu' => '菜單', 'menu' => '自定義菜單',
], ],
'resources' => [ 'resources' => [
'agent_allow' => [ 'agent_allow' => [
+4
View File
@@ -195,6 +195,10 @@ return [
'ip_help' => '起始 IP/結束 IP、IP(段) 二選一', 'ip_help' => '起始 IP/結束 IP、IP(段) 二選一',
'status' => '狀態', 'status' => '狀態',
], ],
'menu' => [
'label' => '自定義菜單',
'enable_help' => '是否啟用自定義菜單',
],
'menu_item' => [ 'menu_item' => [
'label' => '菜單項', 'label' => '菜單項',
'url' => '鏈接', 'url' => '鏈接',