AdminPanelProvider.php 3.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. <?php
  2. namespace App\Providers\Filament;
  3. use App\Filament\Pages\Integrations\KnowledgeGraphExplorer;
  4. use App\Filament\Pages\Integrations\KnowledgeGraphIntegration;
  5. use App\Filament\Pages\KnowledgePoints;
  6. use App\Filament\Pages\KnowledgeMindmap;
  7. use App\Filament\Pages\QuestionManagement;
  8. use App\Filament\Pages\PromptManagement;
  9. use App\Filament\Pages\RecommendationList;
  10. use App\Filament\Pages\Statistics\KnowledgePointStats;
  11. use App\Filament\Pages\StudentDashboard;
  12. use App\Filament\Pages\StudentManagement;
  13. use App\Filament\Pages\StudentKnowledgeGraphPage;
  14. use App\Filament\Widgets\DashboardQuickLinks;
  15. use Filament\Http\Middleware\Authenticate;
  16. use Filament\Http\Middleware\AuthenticateSession;
  17. use Filament\Http\Middleware\DisableBladeIconComponents;
  18. use Filament\Http\Middleware\DispatchServingFilamentEvent;
  19. use Filament\Pages\Dashboard;
  20. use Filament\Panel;
  21. use Filament\PanelProvider;
  22. use App\Filament\Auth\Pages\CustomLogin;
  23. use Filament\Support\Colors\Color;
  24. use Filament\Widgets\AccountWidget;
  25. use Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse;
  26. use Illuminate\Cookie\Middleware\EncryptCookies;
  27. use Illuminate\Foundation\Http\Middleware\VerifyCsrfToken;
  28. use Illuminate\Routing\Middleware\SubstituteBindings;
  29. use Illuminate\Session\Middleware\StartSession;
  30. use Illuminate\View\Middleware\ShareErrorsFromSession;
  31. class AdminPanelProvider extends PanelProvider
  32. {
  33. public function panel(Panel $panel): Panel
  34. {
  35. return $panel
  36. ->default()
  37. ->id('admin')
  38. ->path('admin')
  39. ->login(CustomLogin::class)
  40. ->colors([
  41. 'primary' => Color::hex('#4163ff'),
  42. ])
  43. ->defaultAvatarProvider(\App\Providers\Filament\AvatarProviders\DiceBearAvatarProvider::class)
  44. ->discoverResources(in: app_path('Filament/Resources'), for: 'App\Filament\Resources')
  45. ->discoverPages(in: app_path('Filament/Pages'), for: 'App\Filament\Pages')
  46. ->pages([
  47. Dashboard::class,
  48. StudentManagement::class,
  49. StudentDashboard::class,
  50. StudentKnowledgeGraphPage::class,
  51. KnowledgePoints::class,
  52. KnowledgeMindmap::class,
  53. QuestionManagement::class,
  54. PromptManagement::class,
  55. RecommendationList::class,
  56. KnowledgePointStats::class,
  57. KnowledgeGraphIntegration::class,
  58. KnowledgeGraphExplorer::class,
  59. ])
  60. ->discoverWidgets(in: app_path('Filament/Widgets'), for: 'App\Filament\Widgets')
  61. ->widgets([
  62. DashboardQuickLinks::class,
  63. AccountWidget::class,
  64. ])
  65. ->renderHook('panels::head.end', fn (): string =>
  66. view('filament.layout.vite-styles')->render() . view('filament.layout.vite-scripts')->render()
  67. )
  68. ->renderHook('global::head.start', fn (): string => view('filament.layout.vite-styles')->render())
  69. ->renderHook('panels::body.end', fn (): string => view('filament.layout.math-renderer')->render())
  70. ->middleware([
  71. EncryptCookies::class,
  72. AddQueuedCookiesToResponse::class,
  73. StartSession::class,
  74. AuthenticateSession::class,
  75. ShareErrorsFromSession::class,
  76. VerifyCsrfToken::class,
  77. SubstituteBindings::class,
  78. DisableBladeIconComponents::class,
  79. DispatchServingFilamentEvent::class,
  80. ])
  81. ->authMiddleware([
  82. Authenticate::class,
  83. ]);
  84. }
  85. }