diff --git a/app/Filament/Pages/ManageSolutions.php b/app/Filament/Pages/ManageSolutions.php index e21655a..99c214c 100644 --- a/app/Filament/Pages/ManageSolutions.php +++ b/app/Filament/Pages/ManageSolutions.php @@ -7,6 +7,7 @@ use Filament\Forms\Components\FileUpload; use Filament\Forms\Components\Grid; use Filament\Forms\Components\Repeater; use Filament\Forms\Components\Section; +use Filament\Forms\Components\Select; use Filament\Forms\Components\TextInput; use Filament\Forms\Form; use Filament\Pages\SettingsPage; @@ -58,11 +59,12 @@ class ManageSolutions extends SettingsPage Repeater::make('solution_items') ->label('Solution Items') ->schema([ - TextInput::make('icon_class') + Select::make('icon_class') ->label('Icon Class') + ->searchable() ->helperText('e.g., flaticon-it-department. Refer to Flaticon for available icons.') ->required() - ->maxLength(100), + ->options(self::getIconOptions()), TextInput::make('title') ->label('Title') ->required() @@ -86,6 +88,268 @@ class ManageSolutions extends SettingsPage ->statePath('data'); } + private static function getIconOptions(): array + { + return [ + "microsoft-word" => "microsoft-word", + "text-box" => "text-box", + "document-1" => "document-1", + "layers-1" => "layers-1", + "folder-1" => "folder-1", + "contract" => "contract", + "layer" => "layer", + "download-pdf" => "download-pdf", + "pdf" => "pdf", + "cloud-computing" => "cloud-computing", + "downloads" => "downloads", + "layers" => "layers", + "document" => "document", + "light-bulb-1" => "light-bulb-1", + "idea-2" => "idea-2", + "light-bulb" => "light-bulb", + "idea-1" => "idea-1", + "solution-2" => "solution-2", + "lightbulb" => "lightbulb", + "menus" => "menus", + "support-1" => "support-1", + "swipe-left" => "swipe-left", + "development" => "development", + "domain" => "domain", + "pets" => "pets", + "diagram" => "diagram", + "targeting" => "targeting", + "business-intelligence" => "business-intelligence", + "menu-6" => "menu-6", + "high-quality" => "high-quality", + "campaign" => "campaign", + "brain" => "brain", + "software-application" => "software-application", + "apps" => "apps", + "wrench-1" => "wrench-1", + "social-media-marketing-1" => "social-media-marketing-1", + "category-1" => "category-1", + "trophy-3" => "trophy-3", + "email-marketing" => "email-marketing", + "setting" => "setting", + "more" => "more", + "menu-5" => "menu-5", + "menu-4" => "menu-4", + "medical" => "medical", + "sparkle" => "sparkle", + "menu-3" => "menu-3", + "technology-2" => "technology-2", + "process" => "process", + "hearth-1" => "hearth-1", + "hearth" => "hearth", + "technology-1" => "technology-1", + "category" => "category", + "customer-care" => "customer-care", + "folder" => "folder", + "portfolio-1" => "portfolio-1", + "report" => "report", + "thinking" => "thinking", + "fingerprint" => "fingerprint", + "clock-2" => "clock-2", + "award" => "award", + "paper-plane" => "paper-plane", + "repair" => "repair", + "email-5" => "email-5", + "strategy" => "strategy", + "portfolio" => "portfolio", + "web-design" => "web-design", + "email-4" => "email-4", + "down-arrow-1" => "down-arrow-1", + "location-2" => "location-2", + "phone-call-2" => "phone-call-2", + "telephone-call" => "telephone-call", + "teamwork" => "teamwork", + "up-arrow-1" => "up-arrow-1", + "menu-2" => "menu-2", + "developing" => "developing", + "money-bag" => "money-bag", + "thumbs-up" => "thumbs-up", + "profits" => "profits", + "location-1" => "location-1", + "help-1" => "help-1", + "online-chat" => "online-chat", + "worker" => "worker", + "smart-home" => "smart-home", + "customer-service-1" => "customer-service-1", + "internet" => "internet", + "cash-flow" => "cash-flow", + "monitor" => "monitor", + "search-1" => "search-1", + "wrench" => "wrench", + "coin" => "coin", + "cash" => "cash", + "analyst" => "analyst", + "dashboard-1" => "dashboard-1", + "digital" => "digital", + "searching" => "searching", + "email-3" => "email-3", + "star-1" => "star-1", + "touch" => "touch", + "medal" => "medal", + "world-wide-web-1" => "world-wide-web-1", + "phone" => "phone", + "social-media" => "social-media", + "24-7" => "24-7", + "hard-work" => "hard-work", + "star" => "star", + "plus" => "plus", + "minus-2" => "minus-2", + "menu-1" => "menu-1", + "cloud" => "cloud", + "handshake" => "handshake", + "people" => "people", + "ai" => "ai", + "save-money" => "save-money", + "shopping-online" => "shopping-online", + "profit-1" => "profit-1", + "blockchain" => "blockchain", + "sales" => "sales", + "back-in-time" => "back-in-time", + "clock-1" => "clock-1", + "user-3" => "user-3", + "user-2" => "user-2", + "pawprint" => "pawprint", + "payment-method" => "payment-method", + "world-wide-web" => "world-wide-web", + "minus-1" => "minus-1", + "add-1" => "add-1", + "management" => "management", + "help" => "help", + "chip" => "chip", + "artificial-intelligence" => "artificial-intelligence", + "group" => "group", + "money-1" => "money-1", + "conversation" => "conversation", + "email-2" => "email-2", + "rating" => "rating", + "placeholder" => "placeholder", + "trophy-2" => "trophy-2", + "cpu" => "cpu", + "home" => "home", + "right-arrow-1" => "right-arrow-1", + "like" => "like", + "mail" => "mail", + "briefcase" => "briefcase", + "money" => "money", + "up-arrow" => "up-arrow", + "trophy-1" => "trophy-1", + "user-1" => "user-1", + "question" => "question", + "team-1" => "team-1", + "user" => "user", + "email-1" => "email-1", + "price-tag-1" => "price-tag-1", + "tag" => "tag", + "loupe" => "loupe", + "right-arrow" => "right-arrow", + "left-arrow-1" => "left-arrow-1", + "down-arrow" => "down-arrow", + "price-tag" => "price-tag", + "stars" => "stars", + "search" => "search", + "phone-call-1" => "phone-call-1", + "award-symbol" => "award-symbol", + "christmas-stars" => "christmas-stars", + "minus" => "minus", + "add" => "add", + "cancel-1" => "cancel-1", + "checked" => "checked", + "cyber-security" => "cyber-security", + "data-protection" => "data-protection", + "hosting" => "hosting", + "brand-awareness" => "brand-awareness", + "ux-design" => "ux-design", + "influencer" => "influencer", + "online-advertising" => "online-advertising", + "web-management" => "web-management", + "seo-1" => "seo-1", + "computer" => "computer", + "software-development" => "software-development", + "coding-1" => "coding-1", + "coding" => "coding", + "app-development" => "app-development", + "content-marketing" => "content-marketing", + "social-media-marketing" => "social-media-marketing", + "analysis-1" => "analysis-1", + "twitter" => "twitter", + "repairing" => "repairing", + "data-visualization" => "data-visualization", + "information-technology" => "information-technology", + "statistics-1" => "statistics-1", + "exploration" => "exploration", + "project-1" => "project-1", + "cross-mark" => "cross-mark", + "search-analysis" => "search-analysis", + "system" => "system", + "hashtag-1" => "hashtag-1", + "hashtag" => "hashtag", + "it-department" => "it-department", + "creative" => "creative", + "online-analytical" => "online-analytical", + "secure-data" => "secure-data", + "slash" => "slash", + "creative-thinking" => "creative-thinking", + "right-up" => "right-up", + "dashboard" => "dashboard", + "profit" => "profit", + "project" => "project", + "phone-call" => "phone-call", + "seo" => "seo", + "prototype" => "prototype", + "creative-process" => "creative-process", + "growth" => "growth", + "technical-support" => "technical-support", + "technology" => "technology", + "solution-1" => "solution-1", + "creative-tools" => "creative-tools", + "data-science" => "data-science", + "costumer" => "costumer", + "cooperation" => "cooperation", + "next" => "next", + "back" => "back", + "brand" => "brand", + "right-arrows" => "right-arrows", + "idea" => "idea", + "design-thinking" => "design-thinking", + "check" => "check", + "cross" => "cross", + "right" => "right", + "link" => "link", + "server" => "server", + "analysis" => "analysis", + "support" => "support", + "project-management" => "project-management", + "networking" => "networking", + "team" => "team", + "check-mark" => "check-mark", + "consultation" => "consultation", + "solution" => "solution", + "success" => "success", + "customer-review" => "customer-review", + "select" => "select", + "statistics" => "statistics", + "machine-learning" => "machine-learning", + "vector" => "vector", + "trophy" => "trophy", + "data" => "data", + "clock" => "clock", + "cancel" => "cancel", + "customer-service" => "customer-service", + "digital-marketing" => "digital-marketing", + "email" => "email", + "stats" => "stats", + "menu" => "menu", + "location" => "location", + "tick" => "tick", + "left-arrow" => "left-arrow", + "dots-menu" => "dots-menu", + ]; + } + public static function getNavigationGroup(): ?string { return __('CMS'); diff --git a/app/Filament/Pages/ManageSuccess.php b/app/Filament/Pages/ManageSuccess.php index 2955864..5f0aaa7 100644 --- a/app/Filament/Pages/ManageSuccess.php +++ b/app/Filament/Pages/ManageSuccess.php @@ -8,6 +8,7 @@ use Filament\Forms\Components\Repeater; use Filament\Forms\Components\Section; use Filament\Forms\Components\Textarea; use Filament\Forms\Components\TextInput; +use Filament\Forms\Components\FileUpload; use Filament\Forms\Form; use Filament\Pages\SettingsPage; use Illuminate\Contracts\Support\Htmlable; @@ -50,6 +51,11 @@ class ManageSuccess extends SettingsPage ->maxLength(255) ->url(), ])->columns(2), + FileUpload::make('success_image') + ->label('Image') + ->directory('cms') + ->image() + ->required(), ]), Section::make('Skill Items') ->description('Manage the skill items with their names and percentages.') diff --git a/app/Settings/SuccessSettings.php b/app/Settings/SuccessSettings.php index 30a5bee..966ff91 100644 --- a/app/Settings/SuccessSettings.php +++ b/app/Settings/SuccessSettings.php @@ -18,6 +18,8 @@ class SuccessSettings extends Settings public array $skill_items; + public string $success_image; + public static function group(): string { return 'cms_success'; diff --git a/database/seeders/NewsTableSeeder.php b/database/seeders/NewsTableSeeder.php index fbacffa..d700987 100644 --- a/database/seeders/NewsTableSeeder.php +++ b/database/seeders/NewsTableSeeder.php @@ -13,6 +13,6 @@ class NewsTableSeeder extends Seeder */ public function run(): void { - News::factory()->count(20)->create(); + News::factory()->count(12)->create(); } } \ No newline at end of file diff --git a/database/settings/2025_07_28_131333_create_solution_settings.php b/database/settings/2025_07_28_131333_create_solution_settings.php index 2db7666..6b7f2d2 100644 --- a/database/settings/2025_07_28_131333_create_solution_settings.php +++ b/database/settings/2025_07_28_131333_create_solution_settings.php @@ -10,12 +10,12 @@ return new class extends SettingsMigration $this->migrator->add('cms_solutions.solutions_header', 'Provide Quality Services'); $this->migrator->add('cms_solutions.solutions_button_text', 'more Services'); $this->migrator->add('cms_solutions.solutions_image', 'http://192.168.1.180:8000/web/assets/img/page/services.jpg'); - $this->migrator->add('cms_solutions.solutions_button_url', 'services.html'); + $this->migrator->add('cms_solutions.solutions_button_url', 'http://gujurly.com'); $this->migrator->add('cms_solutions.solution_items', [ - ['icon_class' => 'flaticon-it-department', 'title' => 'Flooring Installation', 'link' => '#'], - ['icon_class' => 'flaticon-project', 'title' => 'Building Architecture', 'link' => '#'], - ['icon_class' => 'flaticon-design-thinking', 'title' => 'Interior Design', 'link' => '#'], - ['icon_class' => 'flaticon-data', 'title' => 'House Renovation', 'link' => '#'], + ['icon_class' => 'flaticon-it-department', 'title' => 'Flooring Installation', 'link' => 'http://gujurly.com'], + ['icon_class' => 'flaticon-project', 'title' => 'Building Architecture', 'link' => 'http://gujurly.com'], + ['icon_class' => 'flaticon-design-thinking', 'title' => 'Interior Design', 'link' => 'http://gujurly.com'], + ['icon_class' => 'flaticon-data', 'title' => 'House Renovation', 'link' => 'http://gujurly.com'], ]); } }; diff --git a/database/settings/2025_07_28_151014_create_success_settings.php b/database/settings/2025_07_28_151014_create_success_settings.php index e6d2b74..cc25c5b 100644 --- a/database/settings/2025_07_28_151014_create_success_settings.php +++ b/database/settings/2025_07_28_151014_create_success_settings.php @@ -15,5 +15,6 @@ return new class extends SettingsMigration ['name' => 'Building Construction', 'percentage' => 89], ['name' => 'Interiors Design', 'percentage' => 70], ]); + $this->migrator->add('cms_success.success_image', 'cms/skill.jpg'); } }; diff --git a/resources/views/web/pages/home/index.blade.php b/resources/views/web/pages/home/index.blade.php index 7f814d2..8390386 100644 --- a/resources/views/web/pages/home/index.blade.php +++ b/resources/views/web/pages/home/index.blade.php @@ -179,7 +179,7 @@
- image + image
@foreach($successSettings->skill_items as $skill)