diff --git a/app/Filament/Pages/HomePageSettings.php b/app/Filament/Pages/HomePageSettings.php index d4af328..b6b1c8d 100644 --- a/app/Filament/Pages/HomePageSettings.php +++ b/app/Filament/Pages/HomePageSettings.php @@ -15,6 +15,10 @@ use Illuminate\Contracts\Support\Htmlable; class HomePageSettings extends SettingsPage { + protected static ?string $navigationGroup = 'Home'; + + protected static ?string $navigationIcon = 'heroicon-o-home'; + protected static string $settings = HomeSettings::class; public function form(Form $form): Form @@ -267,12 +271,12 @@ class HomePageSettings extends SettingsPage public static function getNavigationGroup(): ?string { - return __('CMS'); + return __('Home'); } public static function getNavigationLabel(): string { - return __('Home'); + return __('Home Page Settings'); } public function getTitle(): string|Htmlable diff --git a/app/Filament/Pages/ManageCtaSettings.php b/app/Filament/Pages/ManageCtaSettings.php index d9c4233..86bb839 100644 --- a/app/Filament/Pages/ManageCtaSettings.php +++ b/app/Filament/Pages/ManageCtaSettings.php @@ -11,11 +11,16 @@ use Filament\Forms\Components\FileUpload; class ManageCtaSettings extends SettingsPage { protected static ?string $navigationGroup = 'CMS'; - protected static ?string $navigationLabel = 'Call To Action'; + protected static ?string $navigationIcon = 'heroicon-o-megaphone'; protected static string $settings = CtaSettings::class; + public static function getNavigationLabel(): string + { + return 'Call To Action'; + } + public function form(Form $form): Form { return $form diff --git a/app/Filament/Pages/ManagePortfolio.php b/app/Filament/Pages/ManagePortfolio.php index 2687c70..38f2254 100644 --- a/app/Filament/Pages/ManagePortfolio.php +++ b/app/Filament/Pages/ManagePortfolio.php @@ -14,6 +14,8 @@ use Illuminate\Contracts\Support\Htmlable; class ManagePortfolio extends SettingsPage { + protected static ?string $navigationGroup = 'Home'; + protected static ?string $navigationIcon = 'heroicon-o-briefcase'; protected static string $settings = PortfolioSettings::class; @@ -84,7 +86,7 @@ class ManagePortfolio extends SettingsPage public static function getNavigationGroup(): ?string { - return __('CMS'); + return __('Home'); } public static function getNavigationLabel(): string diff --git a/app/Filament/Pages/ManageSite.php b/app/Filament/Pages/ManageSite.php index 15a85e7..e74bbd9 100644 --- a/app/Filament/Pages/ManageSite.php +++ b/app/Filament/Pages/ManageSite.php @@ -10,6 +10,8 @@ use Illuminate\Contracts\Support\Htmlable; class ManageSite extends SettingsPage { + protected static ?string $navigationGroup = 'Settings'; + protected static ?string $navigationIcon = 'heroicon-o-globe-alt'; protected static string $settings = SiteSettings::class; diff --git a/app/Filament/Pages/ManageSiteSocialSettings.php b/app/Filament/Pages/ManageSiteSocialSettings.php index d601a4c..c3e3c1f 100644 --- a/app/Filament/Pages/ManageSiteSocialSettings.php +++ b/app/Filament/Pages/ManageSiteSocialSettings.php @@ -10,7 +10,7 @@ use Illuminate\Contracts\Support\Htmlable; class ManageSiteSocialSettings extends SettingsPage { - protected static ?int $navigationSort = 4; + protected static ?string $navigationGroup = 'Settings'; protected static ?string $navigationIcon = 'heroicon-o-share'; diff --git a/app/Filament/Pages/ManageSolutions.php b/app/Filament/Pages/ManageSolutions.php index 99c214c..92c68ee 100644 --- a/app/Filament/Pages/ManageSolutions.php +++ b/app/Filament/Pages/ManageSolutions.php @@ -15,6 +15,8 @@ use Illuminate\Contracts\Support\Htmlable; class ManageSolutions extends SettingsPage { + protected static ?string $navigationGroup = 'Home'; + protected static ?string $navigationIcon = 'heroicon-o-wrench-screwdriver'; protected static string $settings = SolutionSettings::class; @@ -352,12 +354,12 @@ class ManageSolutions extends SettingsPage public static function getNavigationGroup(): ?string { - return __('CMS'); + return __('Home'); } public static function getNavigationLabel(): string { - return __('Solutions'); + return __('Manage Solutions'); } public function getTitle(): string|Htmlable diff --git a/app/Filament/Pages/ManageSuccess.php b/app/Filament/Pages/ManageSuccess.php index 5f0aaa7..5692367 100644 --- a/app/Filament/Pages/ManageSuccess.php +++ b/app/Filament/Pages/ManageSuccess.php @@ -15,6 +15,8 @@ use Illuminate\Contracts\Support\Htmlable; class ManageSuccess extends SettingsPage { + protected static ?string $navigationGroup = 'Home'; + protected static ?string $navigationIcon = 'heroicon-o-check-circle'; protected static string $settings = SuccessSettings::class; @@ -89,7 +91,7 @@ class ManageSuccess extends SettingsPage public static function getNavigationGroup(): ?string { - return __('CMS'); + return __('Home'); } public static function getNavigationLabel(): string diff --git a/app/Filament/Resources/BrandResource.php b/app/Filament/Resources/BrandResource.php index 3bdd5ec..2a61224 100644 --- a/app/Filament/Resources/BrandResource.php +++ b/app/Filament/Resources/BrandResource.php @@ -19,7 +19,7 @@ class BrandResource extends Resource { protected static ?string $model = Brand::class; - protected static ?string $navigationIcon = 'heroicon-o-rectangle-stack'; + protected static ?string $navigationIcon = 'heroicon-o-tag'; public static function form(Form $form): Form { diff --git a/app/Filament/Resources/SolutionResource.php b/app/Filament/Resources/SolutionResource.php new file mode 100644 index 0000000..41811f8 --- /dev/null +++ b/app/Filament/Resources/SolutionResource.php @@ -0,0 +1,85 @@ +schema([ + Forms\Components\TextInput::make('title') + ->required() + ->maxLength(255), + Forms\Components\TextInput::make('slug') + ->required() + ->maxLength(255), + Forms\Components\RichEditor::make('description') + ->required() + ->columnSpanFull(), + ]); + } + + public static function table(Table $table): Table + { + return $table + ->columns([ + Tables\Columns\TextColumn::make('title') + ->searchable(), + Tables\Columns\TextColumn::make('slug') + ->searchable(), + Tables\Columns\TextColumn::make('created_at') + ->dateTime() + ->sortable() + ->toggleable(isToggledHiddenByDefault: true), + Tables\Columns\TextColumn::make('updated_at') + ->dateTime() + ->sortable() + ->toggleable(isToggledHiddenByDefault: true), + ]) + ->filters([ + // + ]) + ->actions([ + Tables\Actions\EditAction::make(), + ]) + ->bulkActions([ + Tables\Actions\BulkActionGroup::make([ + Tables\Actions\DeleteBulkAction::make(), + ]), + ]); + } + + public static function getRelations(): array + { + return [ + // + ]; + } + + public static function getPages(): array + { + return [ + 'index' => Pages\ListSolutions::route('/'), + 'create' => Pages\CreateSolution::route('/create'), + 'edit' => Pages\EditSolution::route('/{record}/edit'), + ]; + } +} \ No newline at end of file diff --git a/app/Filament/Resources/SolutionResource/Pages/CreateSolution.php b/app/Filament/Resources/SolutionResource/Pages/CreateSolution.php new file mode 100644 index 0000000..539c6db --- /dev/null +++ b/app/Filament/Resources/SolutionResource/Pages/CreateSolution.php @@ -0,0 +1,12 @@ +addSettingsToViews(); + $this->addSolutionsToViews(); // logDB(); } @@ -41,4 +43,14 @@ class AppServiceProvider extends ServiceProvider $view->with('socialMedia', app(SiteSocialSettings::class)); }); } + + /** + * Add solutions to views + */ + public function addSolutionsToViews(): void + { + ViewFacade::composer(['web.layouts.navigation.header'], function (View $view) { + $view->with('solutions', Solution::query()->latest()->get()); + }); + } } diff --git a/database/migrations/2025_07_28_115525_create_solutions_table.php b/database/migrations/2025_07_28_115525_create_solutions_table.php index e78a1e1..4d36947 100644 --- a/database/migrations/2025_07_28_115525_create_solutions_table.php +++ b/database/migrations/2025_07_28_115525_create_solutions_table.php @@ -13,6 +13,9 @@ return new class extends Migration { Schema::create('solutions', function (Blueprint $table) { $table->id(); + $table->string('title'); + $table->text('description'); + $table->string('slug')->unique(); $table->timestamps(); }); } diff --git a/resources/views/web/layouts/navigation/header.blade.php b/resources/views/web/layouts/navigation/header.blade.php index be0d11e..e6e8ffd 100644 --- a/resources/views/web/layouts/navigation/header.blade.php +++ b/resources/views/web/layouts/navigation/header.blade.php @@ -20,12 +20,9 @@