From 7ac3209dfb267b40ee75df0852f1096c20512c3f Mon Sep 17 00:00:00 2001 From: Sebastian Fix Date: Wed, 30 Jul 2025 02:25:51 +0200 Subject: [PATCH 1/5] wip --- database/files/intro/codebar_intro_de.md | 2 +- database/seeders/Codebar/ConfigurationsTableSeeder.php | 2 +- resources/views/app/start/index.blade.php | 2 ++ 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/database/files/intro/codebar_intro_de.md b/database/files/intro/codebar_intro_de.md index ce4e505..d422003 100644 --- a/database/files/intro/codebar_intro_de.md +++ b/database/files/intro/codebar_intro_de.md @@ -1,5 +1,5 @@

Wer wir sind

-

Das Team von **codebar** versteht es, innovative Ideen mit digitalen Hilfsmitteln zum Leben zu erwecken. Wir denken wirtschaftlich, arbeiten gerne konzeptionell und setzen auf offene Technologien und Standards. Das alles ermöglicht es uns, Software zu entwickeln, die sich an den Bedürfnissen der Nutzer:innen orientiert – und dir echten Mehrwert bietet.

+

Das Team von codebar versteht es, innovative Ideen mit digitalen Hilfsmitteln zum Leben zu erwecken. Wir denken wirtschaftlich, arbeiten gerne konzeptionell und setzen auf offene Technologien und Standards. Das alles ermöglicht es uns, Software zu entwickeln, die sich an den Bedürfnissen der Nutzer:innen orientiert – und dir echten Mehrwert bietet.

Wie wir arbeiten

Am Anfang hören wir dir zu. Denn um effiziente Software zu entwickeln, muss man zunächst im Detail verstehen, wofür sie gedacht ist. Anschliessend erarbeiten wir gemeinsam ein Konzept, das sich an den Anforderungen der künftigen Nutzer:innen orientiert. Fällt der definierte Lösungsansatz in unseren Kompetenzbereich, unterstützen wir dich gerne auch bei der Realisierung. Andernfalls freuen wir uns, wenn andere unsere Pläne in die Tat umsetzen.

diff --git a/database/seeders/Codebar/ConfigurationsTableSeeder.php b/database/seeders/Codebar/ConfigurationsTableSeeder.php index c289849..72b7b44 100644 --- a/database/seeders/Codebar/ConfigurationsTableSeeder.php +++ b/database/seeders/Codebar/ConfigurationsTableSeeder.php @@ -26,7 +26,7 @@ public function run(): void 'section_news' => false, 'section_services' => false, 'section_products' => false, - 'section_technologies' => true, + 'section_technologies' => false, 'section_open_source' => true, 'key' => '_codebar', diff --git a/resources/views/app/start/index.blade.php b/resources/views/app/start/index.blade.php index 2113691..c88feec 100644 --- a/resources/views/app/start/index.blade.php +++ b/resources/views/app/start/index.blade.php @@ -2,6 +2,7 @@ + @if($configuration?->section_news) @@ -14,6 +15,7 @@ @endforeach + @endif From aef2b0a4ed4de824fac0f53a4ed09822a8c63a1f Mon Sep 17 00:00:00 2001 From: Sebastian Fix Date: Wed, 30 Jul 2025 02:50:12 +0200 Subject: [PATCH 2/5] wip --- .../Codebar/ConfigurationsTableSeeder.php | 2 +- .../seeders/Codebar/OpenSourceTableSeeder.php | 341 +++++++++++++++++- database/seeders/CodebarSeeder.php | 2 +- .../components/list-image-card.blade.php | 106 +++--- 4 files changed, 386 insertions(+), 65 deletions(-) diff --git a/database/seeders/Codebar/ConfigurationsTableSeeder.php b/database/seeders/Codebar/ConfigurationsTableSeeder.php index 72b7b44..cf442f0 100644 --- a/database/seeders/Codebar/ConfigurationsTableSeeder.php +++ b/database/seeders/Codebar/ConfigurationsTableSeeder.php @@ -27,7 +27,7 @@ public function run(): void 'section_services' => false, 'section_products' => false, 'section_technologies' => false, - 'section_open_source' => true, + 'section_open_source' => false, 'key' => '_codebar', diff --git a/database/seeders/Codebar/OpenSourceTableSeeder.php b/database/seeders/Codebar/OpenSourceTableSeeder.php index 504f340..f97dacc 100644 --- a/database/seeders/Codebar/OpenSourceTableSeeder.php +++ b/database/seeders/Codebar/OpenSourceTableSeeder.php @@ -5,7 +5,6 @@ use App\Models\OpenSource; use Illuminate\Database\Seeder; use Illuminate\Support\Arr; -use Illuminate\Support\Str; class OpenSourceTableSeeder extends Seeder { @@ -37,28 +36,354 @@ public function run(): void version: 'v12.0.1', ); + $this->seed( + identifier: 'codebar-ag/laravel-prerender', + sharedSlug: 'Laravel Prerender', + localizedData: [ + 'de_CH' => [ + 'title' => 'Laravel Prerender', + 'teaser' => '', + 'image' => 'https://res.cloudinary.com/codebar/image/upload/c_scale,dpr_2.0,f_auto,q_auto,w_1200/www-paperflakes-ch/seo/seo_paperflakes.webp', + 'content' => null, + 'tags' => ['Laravel', 'Prerender'], + ], + 'en_CH' => [ + 'title' => 'Laravel Prerender', + 'teaser' => '', + 'image' => 'https://res.cloudinary.com/codebar/image/upload/c_scale,dpr_2.0,f_auto,q_auto,w_1200/www-paperflakes-ch/seo/seo_paperflakes.webp', + 'content' => null, + 'tags' => ['Laravel', 'Prerender'], + ], + ], + link: 'https://github.com/codebar-ag/prerender-middleware-for-prerendering-javascript-rendered-pages-on-the-fly-for-seo', + downloads: 154600, + version: 'v12.1.0', + ); + $this->seed( + sharedSlug: 'packagist-v1220-downloads-212k-laravel,-docuware,-codebar-ag,-docuware,-codebar-solutions-ag,-ricoh-schweiz-ag,-docu-ware', + localizedData: [ + 'de_CH' => [ + 'title' => 'packagist', + 'teaser' => '', + 'image' => 'https://res.cloudinary.com/codebar/image/upload/c_scale,dpr_2.0,f_auto,q_auto,w_1200/www-paperflakes-ch/seo/seo_paperflakes.webp', + 'content' => null, + 'tags' => ['Laravel flysystem cloudinary\ncloudinary flysystem v1 integration with laravel'], + ], + 'en_CH' => [ + 'title' => 'packagist', + 'teaser' => '', + 'image' => 'https://res.cloudinary.com/codebar/image/upload/c_scale,dpr_2.0,f_auto,q_auto,w_1200/www-paperflakes-ch/seo/seo_paperflakes.webp', + 'content' => null, + 'tags' => ['Laravel flysystem cloudinary\ncloudinary flysystem v1 integration with laravel'], + ], + ], + link: 'https://github.com/codebar-ag/packagist-v1220-downloads-212k-laravel,-docuware,-codebar-ag,-docuware,-codebar-solutions-ag,-ricoh-schweiz-ag,-docu-ware', + downloads: 0, + version: '', + ); + $this->seed( + sharedSlug: 'default-boilerplate-integration-for-projects-at-codebar-solutions-ag', + localizedData: [ + 'de_CH' => [ + 'title' => 'Laravel Default', + 'teaser' => 'Integration von Laravel Default in deine Laravel-Anwendung.', + 'image' => 'https://res.cloudinary.com/codebar/image/upload/c_scale,dpr_2.0,f_auto,q_auto,w_1200/www-paperflakes-ch/seo/seo_paperflakes.webp', + 'content' => null, + 'tags' => ['Packagist\nv12.2.0\ndownloads\n14.4k\nlaravel', 'Laravel-default', 'Codebar-ag'], + ], + 'en_CH' => [ + 'title' => 'Laravel Default', + 'teaser' => 'Integrate Laravel Default into your Laravel application.', + 'image' => 'https://res.cloudinary.com/codebar/image/upload/c_scale,dpr_2.0,f_auto,q_auto,w_1200/www-paperflakes-ch/seo/seo_paperflakes.webp', + 'content' => null, + 'tags' => ['Packagist\nv12.2.0\ndownloads\n14.4k\nlaravel', 'Laravel-default', 'Codebar-ag'], + ], + ], + link: 'https://github.com/codebar-ag/default-boilerplate-integration-for-projects-at-codebar-solutions-ag', + downloads: 13, + version: 'v4.0', + ); + $this->seed( + sharedSlug: 'packagist-v20-downloads-135k-security,-headers,-laravel,-feature-policy,-feature-policy,-codebar-ag', + localizedData: [ + 'de_CH' => [ + 'title' => 'packagist', + 'teaser' => 'Integration von packagist in deine Laravel-Anwendung.', + 'image' => 'https://res.cloudinary.com/codebar/image/upload/c_scale,dpr_2.0,f_auto,q_auto,w_1200/www-paperflakes-ch/seo/seo_paperflakes.webp', + 'content' => null, + 'tags' => ['Laravel default nova\nboilerplate integration for laravel nova projects at codebar solutions ag.'], + ], + 'en_CH' => [ + 'title' => 'packagist', + 'teaser' => 'Integrate packagist into your Laravel application.', + 'image' => 'https://res.cloudinary.com/codebar/image/upload/c_scale,dpr_2.0,f_auto,q_auto,w_1200/www-paperflakes-ch/seo/seo_paperflakes.webp', + 'content' => null, + 'tags' => ['Laravel default nova\nboilerplate integration for laravel nova projects at codebar solutions ag.'], + ], + ], + link: 'https://github.com/codebar-ag/packagist-v20-downloads-135k-security,-headers,-laravel,-feature-policy,-feature-policy,-codebar-ag', + downloads: 0, + version: '', + ); + $this->seed( + sharedSlug: 'flysystem-cloudinary-nova-this-is-my-package-flysystem-cloudinary-nova', + localizedData: [ + 'de_CH' => [ + 'title' => 'Laravel Flysystem Cloudinary Nova', + 'teaser' => 'Integration von Laravel Flysystem Cloudinary Nova in deine Laravel-Anwendung.', + 'image' => 'https://res.cloudinary.com/codebar/image/upload/c_scale,dpr_2.0,f_auto,q_auto,w_1200/www-paperflakes-ch/seo/seo_paperflakes.webp', + 'content' => null, + 'tags' => ['Packagist\nv1.0\ndownloads\n10.4k\nlaravel', 'Laravel-flysystem-cloudinary-nova', 'Codebar-ag'], + ], + 'en_CH' => [ + 'title' => 'Laravel Flysystem Cloudinary Nova', + 'teaser' => 'Integrate Laravel Flysystem Cloudinary Nova into your Laravel application.', + 'image' => 'https://res.cloudinary.com/codebar/image/upload/c_scale,dpr_2.0,f_auto,q_auto,w_1200/www-paperflakes-ch/seo/seo_paperflakes.webp', + 'content' => null, + 'tags' => ['Packagist\nv1.0\ndownloads\n10.4k\nlaravel', 'Laravel-flysystem-cloudinary-nova', 'Codebar-ag'], + ], + ], + link: 'https://github.com/codebar-ag/flysystem-cloudinary-nova-this-is-my-package-flysystem-cloudinary-nova', + downloads: 9, + version: 'v12.2.0', + ); + $this->seed( + sharedSlug: 'packagist-v1301-downloads-55k-laravel,-codebarag,-filament-json-field', + localizedData: [ + 'de_CH' => [ + 'title' => 'packagist', + 'teaser' => 'Integration von packagist in deine Laravel-Anwendung.', + 'image' => 'https://res.cloudinary.com/codebar/image/upload/c_scale,dpr_2.0,f_auto,q_auto,w_1200/www-paperflakes-ch/seo/seo_paperflakes.webp', + 'content' => null, + 'tags' => ['Laravel filament json field\na laravel filament json field integration with codemirror support'], + ], + 'en_CH' => [ + 'title' => 'packagist', + 'teaser' => 'Integrate packagist into your Laravel application.', + 'image' => 'https://res.cloudinary.com/codebar/image/upload/c_scale,dpr_2.0,f_auto,q_auto,w_1200/www-paperflakes-ch/seo/seo_paperflakes.webp', + 'content' => null, + 'tags' => ['Laravel filament json field\na laravel filament json field integration with codemirror support'], + ], + ], + link: 'https://github.com/codebar-ag/packagist-v1301-downloads-55k-laravel,-codebarag,-filament-json-field', + downloads: 0, + version: '', + ); + $this->seed( + sharedSlug: 'zammad-zammad-integration-with-laravel', + localizedData: [ + 'de_CH' => [ + 'title' => 'Laravel Zammad', + 'teaser' => 'Integration von Laravel Zammad in deine Laravel-Anwendung.', + 'image' => 'https://res.cloudinary.com/codebar/image/upload/c_scale,dpr_2.0,f_auto,q_auto,w_1200/www-paperflakes-ch/seo/seo_paperflakes.webp', + 'content' => null, + 'tags' => ['Zammad', 'Packagist\nv13.0.1\ndownloads\n5.1k\nlaravel', 'Codebar-ag', 'Laravel-zammad'], + ], + 'en_CH' => [ + 'title' => 'Laravel Zammad', + 'teaser' => 'Integrate Laravel Zammad into your Laravel application.', + 'image' => 'https://res.cloudinary.com/codebar/image/upload/c_scale,dpr_2.0,f_auto,q_auto,w_1200/www-paperflakes-ch/seo/seo_paperflakes.webp', + 'content' => null, + 'tags' => ['Zammad', 'Packagist\nv13.0.1\ndownloads\n5.1k\nlaravel', 'Codebar-ag', 'Laravel-zammad'], + ], + ], + link: 'https://github.com/codebar-ag/zammad-zammad-integration-with-laravel', + downloads: 4, + version: 'v12.2.0', + ); + $this->seed( + sharedSlug: 'packagist-v30-downloads-33k-laravel,-postfinance,-b2b,-codebar-ag,-postfinance-b2b', + localizedData: [ + 'de_CH' => [ + 'title' => 'packagist', + 'teaser' => 'Integration von packagist in deine Laravel-Anwendung.', + 'image' => 'https://res.cloudinary.com/codebar/image/upload/c_scale,dpr_2.0,f_auto,q_auto,w_1200/www-paperflakes-ch/seo/seo_paperflakes.webp', + 'content' => null, + 'tags' => ['Laravel auth\nthis is my package laravel-auth'], + ], + 'en_CH' => [ + 'title' => 'packagist', + 'teaser' => 'Integrate packagist into your Laravel application.', + 'image' => 'https://res.cloudinary.com/codebar/image/upload/c_scale,dpr_2.0,f_auto,q_auto,w_1200/www-paperflakes-ch/seo/seo_paperflakes.webp', + 'content' => null, + 'tags' => ['Laravel auth\nthis is my package laravel-auth'], + ], + ], + link: 'https://github.com/codebar-ag/packagist-v30-downloads-33k-laravel,-postfinance,-b2b,-codebar-ag,-postfinance-b2b', + downloads: 0, + version: '', + ); + $this->seed( + sharedSlug: 'bexio-bexio-integration-with-laravel', + localizedData: [ + 'de_CH' => [ + 'title' => 'Laravel Bexio', + 'teaser' => 'Integration von Laravel Bexio in deine Laravel-Anwendung.', + 'image' => 'https://res.cloudinary.com/codebar/image/upload/c_scale,dpr_2.0,f_auto,q_auto,w_1200/www-paperflakes-ch/seo/seo_paperflakes.webp', + 'content' => null, + 'tags' => ['Packagist\nv11.0\ndownloads\n2.8k\nlaravel', 'Bexio', 'Laravel-bexio', 'Codebar-ag'], + ], + 'en_CH' => [ + 'title' => 'Laravel Bexio', + 'teaser' => 'Integrate Laravel Bexio into your Laravel application.', + 'image' => 'https://res.cloudinary.com/codebar/image/upload/c_scale,dpr_2.0,f_auto,q_auto,w_1200/www-paperflakes-ch/seo/seo_paperflakes.webp', + 'content' => null, + 'tags' => ['Packagist\nv11.0\ndownloads\n2.8k\nlaravel', 'Bexio', 'Laravel-bexio', 'Codebar-ag'], + ], + ], + link: 'https://github.com/codebar-ag/bexio-bexio-integration-with-laravel', + downloads: 2, + version: 'v13.0.1', + ); + $this->seed( + sharedSlug: 'packagist-v1210-downloads-17k-package,-php,-laravel,-filament', + localizedData: [ + 'de_CH' => [ + 'title' => 'packagist', + 'teaser' => 'Integration von packagist in deine Laravel-Anwendung.', + 'image' => 'https://res.cloudinary.com/codebar/image/upload/c_scale,dpr_2.0,f_auto,q_auto,w_1200/www-paperflakes-ch/seo/seo_paperflakes.webp', + 'content' => null, + 'tags' => ['Laravel twilio verify\ntwilio verify integration with laravel'], + ], + 'en_CH' => [ + 'title' => 'packagist', + 'teaser' => 'Integrate packagist into your Laravel application.', + 'image' => 'https://res.cloudinary.com/codebar/image/upload/c_scale,dpr_2.0,f_auto,q_auto,w_1200/www-paperflakes-ch/seo/seo_paperflakes.webp', + 'content' => null, + 'tags' => ['Laravel twilio verify\ntwilio verify integration with laravel'], + ], + ], + link: 'https://github.com/codebar-ag/packagist-v1210-downloads-17k-package,-php,-laravel,-filament', + downloads: 0, + version: '', + ); + $this->seed( + sharedSlug: 'microsoft-planner-this-is-my-package-microsoft-planner', + localizedData: [ + 'de_CH' => [ + 'title' => 'Laravel Microsoft Planner', + 'teaser' => 'Integration von Laravel Microsoft Planner in deine Laravel-Anwendung.', + 'image' => 'https://res.cloudinary.com/codebar/image/upload/c_scale,dpr_2.0,f_auto,q_auto,w_1200/www-paperflakes-ch/seo/seo_paperflakes.webp', + 'content' => null, + 'tags' => ['Laravel-microsoft-planner', 'Packagist\nv13.0.1\ndownloads\n1k\nlaravel', 'Codebar-ag'], + ], + 'en_CH' => [ + 'title' => 'Laravel Microsoft Planner', + 'teaser' => 'Integrate Laravel Microsoft Planner into your Laravel application.', + 'image' => 'https://res.cloudinary.com/codebar/image/upload/c_scale,dpr_2.0,f_auto,q_auto,w_1200/www-paperflakes-ch/seo/seo_paperflakes.webp', + 'content' => null, + 'tags' => ['Laravel-microsoft-planner', 'Packagist\nv13.0.1\ndownloads\n1k\nlaravel', 'Codebar-ag'], + ], + ], + link: 'https://github.com/codebar-ag/microsoft-planner-this-is-my-package-microsoft-planner', + downloads: 1000, + version: 'v12.0', + ); + $this->seed( + sharedSlug: 'packagist-v1201-downloads-865-laravel,-codebar-ag,-flatfox,-flatfox', + localizedData: [ + 'de_CH' => [ + 'title' => 'packagist', + 'teaser' => 'Integration von packagist in deine Laravel-Anwendung.', + 'image' => 'https://res.cloudinary.com/codebar/image/upload/c_scale,dpr_2.0,f_auto,q_auto,w_1200/www-paperflakes-ch/seo/seo_paperflakes.webp', + 'content' => null, + 'tags' => ['Laravel zendesk\nzendesk integration with laravel'], + ], + 'en_CH' => [ + 'title' => 'packagist', + 'teaser' => 'Integrate packagist into your Laravel application.', + 'image' => 'https://res.cloudinary.com/codebar/image/upload/c_scale,dpr_2.0,f_auto,q_auto,w_1200/www-paperflakes-ch/seo/seo_paperflakes.webp', + 'content' => null, + 'tags' => ['Laravel zendesk\nzendesk integration with laravel'], + ], + ], + link: 'https://github.com/codebar-ag/packagist-v1201-downloads-865-laravel,-codebar-ag,-flatfox,-flatfox', + downloads: 0, + version: '', + ); + $this->seed( + sharedSlug: 'instagram-this-is-my-package-instagram', + localizedData: [ + 'de_CH' => [ + 'title' => 'Laravel Instagram', + 'teaser' => 'Integration von Laravel Instagram in deine Laravel-Anwendung.', + 'image' => 'https://res.cloudinary.com/codebar/image/upload/c_scale,dpr_2.0,f_auto,q_auto,w_1200/www-paperflakes-ch/seo/seo_paperflakes.webp', + 'content' => null, + 'tags' => ['Packagist\nv12.0.1\ndownloads\n336\nlaravel', 'Codebar solutions ag', 'Laravel-instagram'], + ], + 'en_CH' => [ + 'title' => 'Laravel Instagram', + 'teaser' => 'Integrate Laravel Instagram into your Laravel application.', + 'image' => 'https://res.cloudinary.com/codebar/image/upload/c_scale,dpr_2.0,f_auto,q_auto,w_1200/www-paperflakes-ch/seo/seo_paperflakes.webp', + 'content' => null, + 'tags' => ['Packagist\nv12.0.1\ndownloads\n336\nlaravel', 'Codebar solutions ag', 'Laravel-instagram'], + ], + ], + link: 'https://github.com/codebar-ag/instagram-this-is-my-package-instagram', + downloads: 192, + version: 'v12.1.0', + ); + $this->seed( + sharedSlug: 'packagist-v1301-downloads-109-laravel,-pwa,-codebar-solutions-ag', + localizedData: [ + 'de_CH' => [ + 'title' => 'packagist', + 'teaser' => 'Integration von packagist in deine Laravel-Anwendung.', + 'image' => 'https://res.cloudinary.com/codebar/image/upload/c_scale,dpr_2.0,f_auto,q_auto,w_1200/www-paperflakes-ch/seo/seo_paperflakes.webp', + 'content' => null, + 'tags' => ['Filament revealable field\nthis is my package laravel-filament-revealable-field'], + ], + 'en_CH' => [ + 'title' => 'packagist', + 'teaser' => 'Integrate packagist into your Laravel application.', + 'image' => 'https://res.cloudinary.com/codebar/image/upload/c_scale,dpr_2.0,f_auto,q_auto,w_1200/www-paperflakes-ch/seo/seo_paperflakes.webp', + 'content' => null, + 'tags' => ['Filament revealable field\nthis is my package laravel-filament-revealable-field'], + ], + ], + link: 'https://github.com/codebar-ag/packagist-v1301-downloads-109-laravel,-pwa,-codebar-solutions-ag', + downloads: 0, + version: '', + ); + $this->seed( + sharedSlug: 'beekeeper-this-is-my-package-beekeeper', + localizedData: [ + 'de_CH' => [ + 'title' => 'Laravel Beekeeper', + 'teaser' => 'Integration von Laravel Beekeeper in deine Laravel-Anwendung.', + 'image' => 'https://res.cloudinary.com/codebar/image/upload/c_scale,dpr_2.0,f_auto,q_auto,w_1200/www-paperflakes-ch/seo/seo_paperflakes.webp', + 'content' => null, + 'tags' => ['Packagist\nv12.1.0\ndownloads\n1\nlaravel', 'Laravel-beekeeper', 'Codebar solutions ag'], + ], + 'en_CH' => [ + 'title' => 'Laravel Beekeeper', + 'teaser' => 'Integrate Laravel Beekeeper into your Laravel application.', + 'image' => 'https://res.cloudinary.com/codebar/image/upload/c_scale,dpr_2.0,f_auto,q_auto,w_1200/www-paperflakes-ch/seo/seo_paperflakes.webp', + 'content' => null, + 'tags' => ['Laravel-beekeeper', 'Codebar solutions ag'], + ], + ], + ); } - private function seed(string $sharedSlug, array $localizedData, string $link, int $downloads, string $version): void + private function seed(string $identifier, array $localizedData): void { - $entries = collect($localizedData)->map(function ($data, $locale) use ($sharedSlug, $link, $downloads) { - $slug = Str::slug($sharedSlug, '-', $locale); + $entries = collect($localizedData)->map(function ($data, $locale) use ($identifier) { return OpenSource::updateOrCreate( [ 'locale' => $locale, - 'slug' => $slug, + 'identifier' => $identifier, + ], [ + 'slug' => $slug, 'published' => true, 'title' => Arr::get($data, 'title'), 'teaser' => Arr::get($data, 'teaser'), 'image' => Arr::get($data, 'image'), 'tags' => Arr::get($data, 'tags', []), 'content' => Arr::get($data, 'content'), - 'link' => $link, - 'downloads' => $downloads, - 'version' => $downloads, ] ); }); diff --git a/database/seeders/CodebarSeeder.php b/database/seeders/CodebarSeeder.php index 69e2fb3..227dcd7 100644 --- a/database/seeders/CodebarSeeder.php +++ b/database/seeders/CodebarSeeder.php @@ -19,7 +19,7 @@ public function run(): void { $this->call(ConfigurationsTableSeeder::class); $this->call(ContactsTableSeeder::class); - $this->call(OpenSourceTableSeeder::class); + // $this->call(OpenSourceTableSeeder::class); $this->call(TechnologiesTableSeeder::class); if (app()->isLocal()) { diff --git a/resources/views/components/list-image-card.blade.php b/resources/views/components/list-image-card.blade.php index 0ce39fb..ff7d105 100644 --- a/resources/views/components/list-image-card.blade.php +++ b/resources/views/components/list-image-card.blade.php @@ -1,14 +1,9 @@ -@props([ - 'image', - 'imageContainerClassAttributes' => null, - 'name', - 'role' => null, - 'icons' => [], -]) +@props(['image', 'imageContainerClassAttributes' => null, 'name', 'role' => null, 'icons' => []])
- {{ $name }} + {{ $name }}
@@ -16,7 +11,7 @@ {{ $name }}
- @if(!blank($role)) + @if (!blank($role))
{{ $role }}
@@ -24,61 +19,62 @@ @php $icons = collect($icons); @endphp - @if($icons->isNotEmpty()) + @if ($icons->isNotEmpty())
- @foreach($icons as $type => $url) - @switch($type) - @case('linkedin') - - - - - - - + @foreach ($icons as $type => $url) + @if (filled($url)) + @switch($type) + @case('linkedin') + + + + + + + @break - @case('github') - - - - - - + @case('github') + + + + + + @break - @case('email') - - - - - - + @case('email') + + + + + + @break - @case('website') - - - - - - + @case('website') + + + + + + @break - @endswitch + @endswitch + @endif @endforeach
@endif
- \ No newline at end of file + From c440a15dac3ccd1541a3c10911fac86793a9cf08 Mon Sep 17 00:00:00 2001 From: Sebastian Fix Date: Wed, 30 Jul 2025 03:04:19 +0200 Subject: [PATCH 3/5] wip --- public/.htaccess | 2 ++ resources/views/components/intro.blade.php | 5 +++-- vite.config.js | 22 +--------------------- 3 files changed, 6 insertions(+), 23 deletions(-) diff --git a/public/.htaccess b/public/.htaccess index 3aec5e2..9322998 100644 --- a/public/.htaccess +++ b/public/.htaccess @@ -19,3 +19,5 @@ RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^ index.php [L] + + diff --git a/resources/views/components/intro.blade.php b/resources/views/components/intro.blade.php index 7101194..1a787cc 100644 --- a/resources/views/components/intro.blade.php +++ b/resources/views/components/intro.blade.php @@ -3,6 +3,7 @@ @php $locale = app()->getLocale(); $color = $configuration?->company_primary_color; + $team_url = match ($locale) { LocaleEnum::EN->value => route(Str::slug(LocaleEnum::EN->value) . '.about-us.index'), default => route(Str::slug(LocaleEnum::DE->value) . '.about-us.index'), @@ -26,8 +27,8 @@ diff --git a/vite.config.js b/vite.config.js index f02842e..3e8fd96 100644 --- a/vite.config.js +++ b/vite.config.js @@ -15,25 +15,5 @@ export default defineConfig({ server: { cors: true, }, - build: { - // Optimize build performance - target: 'esnext', - // Use default minification instead of terser - minify: 'esbuild', - rollupOptions: { - output: { - manualChunks: { - alpine: ['@alpinejs/csp'], - }, - }, - }, - // Enable source maps for debugging - sourcemap: false, - // Optimize chunk size - chunkSizeWarningLimit: 1000, - }, - // Optimize development server - optimizeDeps: { - include: ['@alpinejs/csp'], - }, + }); From 3baef0ebbe35d1a3e0513d03333fe4b3e7317aae Mon Sep 17 00:00:00 2001 From: Sebastian Fix Date: Wed, 30 Jul 2025 03:05:36 +0200 Subject: [PATCH 4/5] wip --- public/.htaccess | 2 -- 1 file changed, 2 deletions(-) diff --git a/public/.htaccess b/public/.htaccess index 9322998..3aec5e2 100644 --- a/public/.htaccess +++ b/public/.htaccess @@ -19,5 +19,3 @@ RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^ index.php [L] - - From 4db33f9fc171b0214e3a3d4d0031303fa7a56490 Mon Sep 17 00:00:00 2001 From: Sebastian Fix Date: Wed, 30 Jul 2025 03:13:44 +0200 Subject: [PATCH 5/5] wip --- public/favicon.ico | 0 public/favicons/codebar/apple-touch-icon.png | Bin 0 -> 5325 bytes public/favicons/codebar/favicon-96x96.png | Bin 0 -> 2774 bytes public/favicons/codebar/favicon.ico | Bin 0 -> 15086 bytes public/favicons/codebar/favicon.svg | 3 +++ .../favicons/{ => codebar}/site.webmanifest | 0 .../codebar/web-app-manifest-192x192.png | Bin 0 -> 5849 bytes .../codebar/web-app-manifest-512x512.png | Bin 0 -> 22430 bytes .../{ => paperflakes}/apple-touch-icon.png | Bin .../{ => paperflakes}/favicon-96x96.png | Bin public/favicons/{ => paperflakes}/favicon.ico | Bin public/favicons/{ => paperflakes}/favicon.svg | 0 public/favicons/paperflakes/site.webmanifest | 21 +++++++++++++++++ .../web-app-manifest-192x192.png | Bin .../web-app-manifest-512x512.png | Bin .../layouts/_partials/_favicons.blade.php | 22 ++++++++++++------ 16 files changed, 39 insertions(+), 7 deletions(-) delete mode 100644 public/favicon.ico create mode 100644 public/favicons/codebar/apple-touch-icon.png create mode 100644 public/favicons/codebar/favicon-96x96.png create mode 100644 public/favicons/codebar/favicon.ico create mode 100644 public/favicons/codebar/favicon.svg rename public/favicons/{ => codebar}/site.webmanifest (100%) create mode 100644 public/favicons/codebar/web-app-manifest-192x192.png create mode 100644 public/favicons/codebar/web-app-manifest-512x512.png rename public/favicons/{ => paperflakes}/apple-touch-icon.png (100%) rename public/favicons/{ => paperflakes}/favicon-96x96.png (100%) rename public/favicons/{ => paperflakes}/favicon.ico (100%) rename public/favicons/{ => paperflakes}/favicon.svg (100%) create mode 100644 public/favicons/paperflakes/site.webmanifest rename public/favicons/{ => paperflakes}/web-app-manifest-192x192.png (100%) rename public/favicons/{ => paperflakes}/web-app-manifest-512x512.png (100%) diff --git a/public/favicon.ico b/public/favicon.ico deleted file mode 100644 index e69de29..0000000 diff --git a/public/favicons/codebar/apple-touch-icon.png b/public/favicons/codebar/apple-touch-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..773e0e846c775cf55a5a4a01322e911b81fea3fe GIT binary patch literal 5325 zcmbVQ=U)@g*QEpqJ)wRHy>}^61c^can$o36HS{JTy-4W2h7Qs}kP<); z1XP+5nxLW(5q|4G@Vt0l?9P66XYQRlJ9E#uC*H(Zmyr%eM@B}*sIRAu0$TjP3rr2% z;ZxL#Ktt|}(nXNfPxBDT$k<}_wYAIx9S-bi{9cZ5yvD@}#Nn}zqEIZ{7HJ%sRa%6HO`#tz0%*Eh4o^8VD?*432uU-W#D*#!s||P|(7^J>8^-KTr)1I6M#e zrWT^PT5vi2q_3d&s&66Hpfg%7|X%*f4iw0$XD~(D#};$Wx4oybYvo@ zXJA0L*5!Y@_tD3mstem;1;B2~dIs^y*YWh&p5ETaeF+@02C490|FKJ%$I-D#XciV0 zzEpkefb{4=jX(WM^6&E5rV|wxogEq0CVhPszVof`vfQk~cy>HpoOpV?>34A+Bp3qA zgdkjUi-~;-mi2b#Ef0;{2u0)zRc5h;!Ml=3yYuVdJbG!xH+jM|vzL}zNqmeioXdb3|-UT0EtA2c)xwAcyVb<`W)!hsTqe>?k zwza*zJ&dvb171z1q+ud7^j#RZFV^DLx}VJBZpH5WB+grNFA?t0<9OxmfU#AcD{XG< zVduwVRfai=p!ZRUj!2p`WDd$pydgjwe? z%-Q#CeBiOucCKBQ-}n--w4wt-y5iRuM9;ub3d|2xW{~kNUVAq!*SFwgtLKHGzpUx#=}W|na!n3bI}h$}#!gddkJ9REYlA%3x-zaf z^k5Rzy5TtPcMW$!Nx#Z~g^>(jUfcS<{TA=BtO&dMFiD+G$$mAHfJ|V+tq;YTwLe-j zY{!X`HcuaK#X;E=o?eUGDopD=ZuQ;ME_-Z0#Zk3u0N7e zQb8e&U8GGwN#!XVfxxVu9@lQ9TU&o{dH``w&RZOKMq{htvl!Dtg
i$t0>IgK>O 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 GjQSq}tL_*8 literal 0 HcmV?d00001 diff --git a/public/favicons/codebar/favicon-96x96.png b/public/favicons/codebar/favicon-96x96.png new file mode 100644 index 0000000000000000000000000000000000000000..ea34dca3346141175e3c8438d4258285fe52c710 GIT binary patch literal 2774 zcmZuzc{J2*8~%+L`!<%zFlekpw#FMJS%-$PjI0?MWGNvTOpzwNw$C0hWo@iwP{Lcb zNFOs~?Aa-@tL##iZ{Bm>^ZoOEe?0en&UNnRx$gVi&$-T(U~6s8&jaHD0DvEJ$<&UO z34b3hFe}bd!gW~*6k=y?3{)|tmH~h#4P$C#PrCZejT7rIChj&G(O$K$l2x4&Iz*s4 z&yK#_t4?Vq1icDhoG{=CZsGA7QI1x-L3_2A70(f2ggX_62B~I*LXsXXi7;D!v~Y$i zY4}Yy|6Xex(f1x%WRn#ae^Ls9@&bdzYH&TE>2xd(D6Y=1wX(I|t=wSaHF3gj- zy*Y1*Zy<8V3CeVA%ykOi-ajK96E`FbWg&`0`>1cuXS6g5`xj@Sc+(2BWW=S#GB80M4ze}!;RCkWP z@)DMo4ovlcx5KRzpsJ2o@e^h!p+s;inwG+9fWKB zO@wg{<4@Fs-y`c^+Kno%Wb<(r+Lc&1{}l-D%0w2aRC37UoI2)KHaS9 zla_FzwWN&otJXI*w6^IIaCl`(^Z~w!BIuPE_G~DC# zrfNAi-wnOimAPCt?*)|E6kODe*rmM*x0fPksa=uPR940WJylEYgKI_|knoLR{MGL7 z>O=Q+X0|*+-ZoIfzKv6Kg7SHM#}QTg`T6;8LRYiiY@VxE2JlfSQs)rAcDIH$*2YlS zr`p_6QBn2VJA*U6j9iJM`-d@~DqZDFV)Q(BTB&UDPc#X~$}2nGitCXxrB;%4Lzu>bIaPB$^5okP)e|u} zFWH+Dl1!}x1@Uig8Aaz=Nhi_yVY)(JgoRZgtmWwC>|Mgkf&rZug@v-|MM|lZ3?&;! za~Ezeb7P#@h7gGSU`JxG%xjyXg$SM!QL-*{YYbCidpwC@C(~SBd+w|Z`;FC<)VKWX z2>&q+_aCYHBl2)q+>!i%3&27rYrJ_?oT_MQ1MP8w4qYC(=!%}cHi>w^_LV1ko>a74 zZ7HINZTp6JE{Z^BIbG2bH@@%a`&o66vcZmix_vGn8y*iTm7v`{hra+-@@P~Ne@!lTn ziBi>4c?gKyEtq}EZDpid=HT#jIhk!u9(dec&T5HJKlVt$(wWW)?dENzbO}R+;4#8?>)o}ny3mfxLVIk{gz7c+fM*$WLq2lt z^}!dlnXKm&ahdn0J4*bN^pVd{UfT*&qp?3yGeD0MH zb7I2v?Q@s6>X|H z;bsU>Uiyn}ly^0N)G>R;Cc|giZb%#z^kh>I?N@ITGhQOOj(a|QDJJ@ydL#J$ec%4x zjM&m6c>y5C%UskkBYbTXXXiM02W@5+%`}F^+ey2c0EMNLDtZU$ASXAz8=fe%d^nFC zRA>hZ30Rl140V@bp3aWhC}&E|fKA@{l8XBhK}&nZg`po&yDXWld-%t=jmk&zbKOXF zw=+brt*+wQz}a&5cP&*kfe?dlkSj|N59fAJ;U^NrRaVLUJM$`~jKkh=hCO>4l3US5UA^<0v9~ z>~wQtFLSbf(;waMpm~ihBxXVg2{f1QkR1(7K38FeUcf#91$X%%peUrXNUH)P{k+O% zIQVGsTP5tSrE}9vL>rbv)>@fKHcN&fonDXi98&T+OJzT9e)jPv`ox+5LY(XmSO57c60?QZ?A3<+XJ0HnmiJy9kq*` z+!Nq$g`RT5XAbOp>}t!o4o^+tcC+1Wn@GX)K^Em^Pp+pVt)6LRD#Idd`?7mgBF#P} zP2w}e0D~>fB;rQ^Bt(0 WWYGxwPY2=Z(;*0_O^<< z9~8l|qF^_6h%NSBV~dGr-|xC_h~u00ro7SlFc*e5^V&W4oOA!Dj>F+}6m%pdIkaPf zV{0vkqp8E;NJ#kqcZ|bvQ#%)<9l1Ux!r_>&-B4G%M|;HatM=i%$q?;Y_!H(qSO>y7 zV5kEH3KWon1q+JP=`_3^O85b-l`2(|PMtc*^y$-O#flZOZQC~4v15m9+_+H|E?g*s z2M?CS#QIXSXwi^ZPh@1IBqSurfB^$!-@bkF`0-=O&CM0F@$TI_Ie-4VOq(`M>ev6e zmLDx2cwN1Eb@~1GX>#Vw8Ts(xgBi(&*FJy#EVpjmlEsS`OT&f@rBIEKi<1aVI0--*4W$k>SIK3pyE$eO;_r zF_}1VqP%+bDqvbYz2N=(_cDI`c!`dVwsj4K3m2B5Lx%>Hc709v?%k7)9Xr~FxnM)f zmMzs@)8`20@!7Ly(xXQY+vqP|ytwS#xl{7;^1LRSJ&8U)dh}S}=l%Ql<;9B^^6Aqj z(|5dl`BElNo-9R*6tPWz`t<1|+1c5q^XeCKa&qL-rAxAO=~5XqXpp3&w3DVyn@Woo zEfi1F)Blu{Cr`@9k013%T*rqGAIiv)BWN|h?M@=jl4Ajf9Snkn2c69D@VdxJj|$XvmAwp+Ju0-l)-{D=k(8iX9}@N>wJ zA(ptAk#Rxd;^IP%e*Cm?cFIbR^3y{sLrg$Sb@%RFdGO$Y@}=DA&i@SGpFVx6 z^oqUVjedA@4>IW7xw9pfy3^wCZ!p`Jz2warz@n*Br&`)$e`(JDTvk?=v}x1Ew)}&> zzS!6}nKy5qrB9Tf7GJ*;%Z(T@B53((_STdsQ&eumSK6%ZC)OZmVK)Zp{MV28%V6Dw z3m3F}&bK&XMWfMm_B5E(y?b|6>(J*3<`MroF)>l$_|>adzr#Z#I^EAfcV=d$%%4AB zz02F&g`Mk)iYlV=J>)-*9XqCSY*sjnj-NVpN+wL0Aa(23wKZQA$l9oL;Y*_jvu4eb zRjXFX_U+qM{b>FA^-5OgU7b30LNaDET03jv6N>(|5xwDa;eL#;4*W13&{!QFKZ^tO zX(ec%6zvo4)B0gLZ(CfZiOs8b5xf)~s10(#4gyPwXy9XfQ7{rmT;+yuEj;%NF=a&z<4k>8vrPNpv>DJjX8+DUwTyewO` zOx5D>i>-W6u0soP{piu71M=s{@fboF!y?5{4fMQZ; zAm(q}xUpCItm`8>J!#S;m815wZoLkVyvbM5C**!F=l1N`BeAiuKFwdXYE_~BYSb5i z4p2v@--P@V`cB^$d6cbNx4QD`2x7equS<;8#h!;soxi@BRz&jwHbI{zI=I~^w=L7Q&T$|&JV_eNB+FimuKi3FyjBU zYuBV^&6+`{Ce)s>YxzfB-WU1%?|)PdAAB_8DR@9W6dMf| z7~Nxi&M9eWX@>b!>?^hq9+8K3#~*AZHt+iN>#}z3S}9xBKMVk4s5==N z!e?1fTfo0E>c{d#llyu2haUoetmXc_&q?o$-plH4Tixe!|IOU=#r^i%lz{v}dVQ!h zf(h7ss{x((U)1gBtF)tDLQgk6FJLfqAXof=ul^@KXs((wJNuog`Js30K~MYCA6f7W zdmEi6zqw(<2Ko2jqsmqvI&?@@u3RZYw7wR4Ym-+kJ) zZR_fD&&bG7|EV#$&(k^jN%bCo{-=U%@N}=yd1^w$qtH)pM*H^d|EKjUj#<%9OpJ`- zG5mwi$P)hH6VWS+&2HVgwPDPS{NOFN3AytQk%Q6moI^gu \ No newline at end of file diff --git a/public/favicons/site.webmanifest b/public/favicons/codebar/site.webmanifest similarity index 100% rename from public/favicons/site.webmanifest rename to public/favicons/codebar/site.webmanifest diff --git a/public/favicons/codebar/web-app-manifest-192x192.png b/public/favicons/codebar/web-app-manifest-192x192.png new file mode 100644 index 0000000000000000000000000000000000000000..5a732094d1c210db78e88194e67aed4499ac809f GIT binary patch literal 5849 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 LXyqD3OxXVb@ArON literal 0 HcmV?d00001 diff --git a/public/favicons/codebar/web-app-manifest-512x512.png b/public/favicons/codebar/web-app-manifest-512x512.png new file mode 100644 index 0000000000000000000000000000000000000000..65258394f024fd8d4ed15730253c2f0e848aeda5 GIT binary patch literal 22430 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 UcgaAYZx@5{_T27q+dVY(Z;#Ykn*aa+ literal 0 HcmV?d00001 diff --git a/public/favicons/apple-touch-icon.png b/public/favicons/paperflakes/apple-touch-icon.png similarity index 100% rename from public/favicons/apple-touch-icon.png rename to public/favicons/paperflakes/apple-touch-icon.png diff --git a/public/favicons/favicon-96x96.png b/public/favicons/paperflakes/favicon-96x96.png similarity index 100% rename from public/favicons/favicon-96x96.png rename to public/favicons/paperflakes/favicon-96x96.png diff --git a/public/favicons/favicon.ico b/public/favicons/paperflakes/favicon.ico similarity index 100% rename from public/favicons/favicon.ico rename to public/favicons/paperflakes/favicon.ico diff --git a/public/favicons/favicon.svg b/public/favicons/paperflakes/favicon.svg similarity index 100% rename from public/favicons/favicon.svg rename to public/favicons/paperflakes/favicon.svg diff --git a/public/favicons/paperflakes/site.webmanifest b/public/favicons/paperflakes/site.webmanifest new file mode 100644 index 0000000..ccf313a --- /dev/null +++ b/public/favicons/paperflakes/site.webmanifest @@ -0,0 +1,21 @@ +{ + "name": "MyWebSite", + "short_name": "MySite", + "icons": [ + { + "src": "/web-app-manifest-192x192.png", + "sizes": "192x192", + "type": "image/png", + "purpose": "maskable" + }, + { + "src": "/web-app-manifest-512x512.png", + "sizes": "512x512", + "type": "image/png", + "purpose": "maskable" + } + ], + "theme_color": "#ffffff", + "background_color": "#ffffff", + "display": "standalone" +} \ No newline at end of file diff --git a/public/favicons/web-app-manifest-192x192.png b/public/favicons/paperflakes/web-app-manifest-192x192.png similarity index 100% rename from public/favicons/web-app-manifest-192x192.png rename to public/favicons/paperflakes/web-app-manifest-192x192.png diff --git a/public/favicons/web-app-manifest-512x512.png b/public/favicons/paperflakes/web-app-manifest-512x512.png similarity index 100% rename from public/favicons/web-app-manifest-512x512.png rename to public/favicons/paperflakes/web-app-manifest-512x512.png diff --git a/resources/views/layouts/_partials/_favicons.blade.php b/resources/views/layouts/_partials/_favicons.blade.php index 8898837..a66588e 100644 --- a/resources/views/layouts/_partials/_favicons.blade.php +++ b/resources/views/layouts/_partials/_favicons.blade.php @@ -1,11 +1,19 @@ @props(['manifest' => asset('manifest.json'), 'path' => asset('favicons'), 'color' => '#ffffff']) - - - - - +@php + $prefix = match($configuration?->key) { + '_paperflakes' => 'paperflakes', + '_codebar' => 'codebar', + default => $configuration?->key + }; +@endphp + + + + + + - - \ No newline at end of file + +