diff --git a/app/Http/Controllers/Jobs/JobsIndexController.php b/app/Http/Controllers/Jobs/JobsIndexController.php index 57a5520..f71d036 100644 --- a/app/Http/Controllers/Jobs/JobsIndexController.php +++ b/app/Http/Controllers/Jobs/JobsIndexController.php @@ -4,6 +4,8 @@ use App\Actions\PageAction; use App\Http\Controllers\Controller; +use Illuminate\Http\RedirectResponse; +use Illuminate\Support\Str; use Illuminate\View\View; class JobsIndexController extends Controller @@ -11,10 +13,13 @@ class JobsIndexController extends Controller /** * Display the user's profile form. */ - public function __invoke(): View + public function __invoke(): View|RedirectResponse { - return view('app.jobs.index')->with([ - 'page' => (new PageAction(locale: null, routeName: 'jobs.index'))->default(), - ]); + return redirect()->route(Str::slug(app()->getLocale()).'.start.index'); + + // @todo Notification + /* return view('app.jobs.index')->with([ + 'page' => (new PageAction(locale: null, routeName: 'jobs.index'))->default(), + ]);*/ } } diff --git a/app/Http/Controllers/Legal/PrivacyIndexController.php b/app/Http/Controllers/Legal/PrivacyIndexController.php index 009baa9..f07f17b 100644 --- a/app/Http/Controllers/Legal/PrivacyIndexController.php +++ b/app/Http/Controllers/Legal/PrivacyIndexController.php @@ -4,6 +4,8 @@ use App\Actions\PageAction; use App\Http\Controllers\Controller; +use Illuminate\Http\RedirectResponse; +use Illuminate\Support\Str; use Illuminate\View\View; class PrivacyIndexController extends Controller @@ -11,10 +13,13 @@ class PrivacyIndexController extends Controller /** * Display the user's profile form. */ - public function __invoke(): View + public function __invoke(): View|RedirectResponse { - return view('app.legal.privacy.index')->with([ - 'page' => (new PageAction(locale: null, routeName: 'legal.privacy.index'))->default(), - ]); + return redirect()->route(Str::slug(app()->getLocale()).'.start.index'); + + // @todo Notification + /* return view('app.legal.privacy.index')->with([ + 'page' => (new PageAction(locale: null, routeName: 'legal.privacy.index'))->default(), + ]);*/ } } diff --git a/app/Http/Controllers/Legal/TermsIndexController.php b/app/Http/Controllers/Legal/TermsIndexController.php index a2cf40a..5f4395f 100644 --- a/app/Http/Controllers/Legal/TermsIndexController.php +++ b/app/Http/Controllers/Legal/TermsIndexController.php @@ -4,6 +4,8 @@ use App\Actions\PageAction; use App\Http\Controllers\Controller; +use Illuminate\Http\RedirectResponse; +use Illuminate\Support\Str; use Illuminate\View\View; class TermsIndexController extends Controller @@ -11,10 +13,13 @@ class TermsIndexController extends Controller /** * Display the user's profile form. */ - public function __invoke(): View + public function __invoke(): View|RedirectResponse { - return view('app.legal.terms.index')->with([ - 'page' => (new PageAction(locale: null, routeName: 'legal.terms.index'))->default(), - ]); + return redirect()->route(Str::slug(app()->getLocale()).'.start.index'); + + // @todo Notification + /* return view('app.legal.terms.index')->with([ + 'page' => (new PageAction(locale: null, routeName: 'legal.terms.index'))->default(), + ]);*/ } } diff --git a/app/Http/Controllers/Media/MediaIndexController.php b/app/Http/Controllers/Media/MediaIndexController.php index 0a2c65b..6bd4169 100644 --- a/app/Http/Controllers/Media/MediaIndexController.php +++ b/app/Http/Controllers/Media/MediaIndexController.php @@ -4,6 +4,8 @@ use App\Actions\PageAction; use App\Http\Controllers\Controller; +use Illuminate\Http\RedirectResponse; +use Illuminate\Support\Str; use Illuminate\View\View; class MediaIndexController extends Controller @@ -11,10 +13,13 @@ class MediaIndexController extends Controller /** * Display the user's profile form. */ - public function __invoke(): View + public function __invoke(): View|RedirectResponse { - return view('app.media.index')->with([ - 'page' => (new PageAction(locale: null, routeName: 'media.index'))->default(), - ]); + return redirect()->route(Str::slug(app()->getLocale()).'.start.index'); + + // @todo Notification + /* return view('app.media.index')->with([ + 'page' => (new PageAction(locale: null, routeName: 'media.index'))->default(), + ]);*/ } } diff --git a/app/Http/Controllers/OpenSource/OpenSoruceShowController.php b/app/Http/Controllers/OpenSource/OpenSoruceShowController.php new file mode 100644 index 0000000..1dda047 --- /dev/null +++ b/app/Http/Controllers/OpenSource/OpenSoruceShowController.php @@ -0,0 +1,26 @@ +with([ + 'page' => (new PageAction(locale: $locale))->product(product: $product), + 'name' => $product->name, + 'teaser' => $product->teaser, + 'content' => Str::of($product->content)->markdown(), + 'tags' => $product->tags, + ]); + } +} diff --git a/app/Http/Controllers/OpenSource/OpenSourceIndexController.php b/app/Http/Controllers/OpenSource/OpenSourceIndexController.php new file mode 100644 index 0000000..a34a761 --- /dev/null +++ b/app/Http/Controllers/OpenSource/OpenSourceIndexController.php @@ -0,0 +1,24 @@ +getLocale(); + + return view('app.products.index')->with([ + 'page' => (new PageAction(locale: null, routeName: 'products.index'))->default(), + 'products' => (new ViewDataAction)->products($locale), + ]); + } +} diff --git a/app/Http/Controllers/Sitemap/SitemapController.php b/app/Http/Controllers/Sitemap/SitemapController.php index 41962b5..f086be4 100644 --- a/app/Http/Controllers/Sitemap/SitemapController.php +++ b/app/Http/Controllers/Sitemap/SitemapController.php @@ -23,7 +23,10 @@ class SitemapController extends Controller 'products.index', 'services.index', 'contact.index', + 'legal.terms.index', 'legal.imprint.index', + 'legal.privacy.index', + 'jobs.index', ]; protected const array DEFAULT_LOCALES = [ diff --git a/app/Http/Controllers/Technologies/TechnologiesIndexController.php b/app/Http/Controllers/Technologies/TechnologiesIndexController.php new file mode 100644 index 0000000..ed76d36 --- /dev/null +++ b/app/Http/Controllers/Technologies/TechnologiesIndexController.php @@ -0,0 +1,24 @@ +getLocale(); + + return view('app.products.index')->with([ + 'page' => (new PageAction(locale: null, routeName: 'products.index'))->default(), + 'products' => (new ViewDataAction)->products($locale), + ]); + } +} diff --git a/app/Http/Controllers/Technologies/TechnologiesShowController.php b/app/Http/Controllers/Technologies/TechnologiesShowController.php new file mode 100644 index 0000000..d234bd4 --- /dev/null +++ b/app/Http/Controllers/Technologies/TechnologiesShowController.php @@ -0,0 +1,26 @@ +with([ + 'page' => (new PageAction(locale: $locale))->product(product: $product), + 'name' => $product->name, + 'teaser' => $product->teaser, + 'content' => Str::of($product->content)->markdown(), + 'tags' => $product->tags, + ]); + } +} diff --git a/app/Models/Configuration.php b/app/Models/Configuration.php index 0a7dacc..afc2906 100644 --- a/app/Models/Configuration.php +++ b/app/Models/Configuration.php @@ -4,16 +4,16 @@ use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; -use Spatie\Translatable\HasTranslations; class Configuration extends Model { use HasFactory; - use HasTranslations; - - public array $translatable = ['footer']; protected $casts = [ - 'footer' => 'json', + 'section_services' => 'boolean', + 'section_products' => 'boolean', + 'section_technologies' => 'boolean', + 'section_open_source' => 'boolean', + 'links' => 'json', ]; } diff --git a/app/Providers/AppServiceProvider.php b/app/Providers/AppServiceProvider.php index e6683db..37c4d3c 100644 --- a/app/Providers/AppServiceProvider.php +++ b/app/Providers/AppServiceProvider.php @@ -2,13 +2,16 @@ namespace App\Providers; +use App\Actions\ViewDataAction; use App\Checks\FailedJobsCheck; use App\Checks\FilesystemsDefaultCheck; use App\Checks\JobsCheck; +use App\Models\Configuration; use App\Models\News; use App\Models\Product; use App\Models\Service; use Illuminate\Database\Eloquent\Model; +use Illuminate\Support\Facades\View; use Illuminate\Support\ServiceProvider; use Spatie\Health\Checks\Checks\CacheCheck; use Spatie\Health\Checks\Checks\DebugModeCheck; @@ -41,6 +44,8 @@ public function boot(): void FailedJobsCheck::new(), SecurityAdvisoriesCheck::new()->lastDayOfMonth(), ]); + + View::share('configuration', $this->getConfiguration()); } private function multilanguage(): void @@ -49,4 +54,13 @@ private function multilanguage(): void Service::registerLocalizedBinding('service'); Product::registerLocalizedBinding('product'); } + + private function getConfiguration(): ?Configuration + { + try { + return (new ViewDataAction)->configuration(app()->getLocale()); + } catch (\Throwable) { + return null; + } + } } diff --git a/app/View/Components/AppLayout.php b/app/View/Components/AppLayout.php index 590a611..c569b48 100644 --- a/app/View/Components/AppLayout.php +++ b/app/View/Components/AppLayout.php @@ -17,7 +17,6 @@ public function render(): View $locale = app()->getLocale(); return view('layouts.app')->with([ - 'configuration' => (new ViewDataAction)->configuration($locale), 'locales' => LocaleEnum::cases(), 'locale' => Str::slug($locale), 'page' => $this->page, diff --git a/composer.json b/composer.json index 4f5997c..741cb68 100644 --- a/composer.json +++ b/composer.json @@ -23,7 +23,6 @@ "spatie/laravel-permission": "^6.7", "spatie/laravel-responsecache": "^7.6", "spatie/laravel-sitemap": "^7.3", - "spatie/laravel-translatable": "^6.11", "spatie/security-advisories-health-check": "^1.2" }, "require-dev": { diff --git a/composer.lock b/composer.lock index 0dbfa87..22a352b 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "6b5212ce6fcb14098a89c01797590ab2", + "content-hash": "1dd5f80b4b7f073ed3fceed6e2d193fa", "packages": [ { "name": "aws/aws-crt-php", @@ -62,16 +62,16 @@ }, { "name": "aws/aws-sdk-php", - "version": "3.346.2", + "version": "3.347.0", "source": { "type": "git", "url": "https://github.com/aws/aws-sdk-php.git", - "reference": "d1403b5a39af7ab7af4fc538deb33013c19c8d33" + "reference": "c66a35e650f077caddd7db8d3a1f58b2c2b8c78b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/d1403b5a39af7ab7af4fc538deb33013c19c8d33", - "reference": "d1403b5a39af7ab7af4fc538deb33013c19c8d33", + "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/c66a35e650f077caddd7db8d3a1f58b2c2b8c78b", + "reference": "c66a35e650f077caddd7db8d3a1f58b2c2b8c78b", "shasum": "" }, "require": { @@ -153,9 +153,9 @@ "support": { "forum": "https://github.com/aws/aws-sdk-php/discussions", "issues": "https://github.com/aws/aws-sdk-php/issues", - "source": "https://github.com/aws/aws-sdk-php/tree/3.346.2" + "source": "https://github.com/aws/aws-sdk-php/tree/3.347.0" }, - "time": "2025-06-20T18:10:21+00:00" + "time": "2025-06-23T18:12:15+00:00" }, { "name": "brick/math", @@ -4583,16 +4583,16 @@ }, { "name": "spatie/laravel-csp", - "version": "3.13.0", + "version": "3.13.1", "source": { "type": "git", "url": "https://github.com/spatie/laravel-csp.git", - "reference": "71fc02fb3517052d39957c1f0dc6f9586ae1c0c4" + "reference": "dccf75bee8556e1bd0ae13abf505497a141fccf7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/laravel-csp/zipball/71fc02fb3517052d39957c1f0dc6f9586ae1c0c4", - "reference": "71fc02fb3517052d39957c1f0dc6f9586ae1c0c4", + "url": "https://api.github.com/repos/spatie/laravel-csp/zipball/dccf75bee8556e1bd0ae13abf505497a141fccf7", + "reference": "dccf75bee8556e1bd0ae13abf505497a141fccf7", "shasum": "" }, "require": { @@ -4656,7 +4656,7 @@ "spatie" ], "support": { - "source": "https://github.com/spatie/laravel-csp/tree/3.13.0" + "source": "https://github.com/spatie/laravel-csp/tree/3.13.1" }, "funding": [ { @@ -4664,7 +4664,7 @@ "type": "custom" } ], - "time": "2025-05-23T09:15:14+00:00" + "time": "2025-06-23T13:39:38+00:00" }, { "name": "spatie/laravel-flash", @@ -5287,89 +5287,6 @@ ], "time": "2025-04-10T12:13:41+00:00" }, - { - "name": "spatie/laravel-translatable", - "version": "6.11.4", - "source": { - "type": "git", - "url": "https://github.com/spatie/laravel-translatable.git", - "reference": "032d85b28de315310dab2048b857016f1194f68b" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/spatie/laravel-translatable/zipball/032d85b28de315310dab2048b857016f1194f68b", - "reference": "032d85b28de315310dab2048b857016f1194f68b", - "shasum": "" - }, - "require": { - "illuminate/database": "^10.0|^11.0|^12.0", - "illuminate/support": "^10.0|^11.0|^12.0", - "php": "^8.0", - "spatie/laravel-package-tools": "^1.11" - }, - "require-dev": { - "friendsofphp/php-cs-fixer": "^3.64", - "mockery/mockery": "^1.4", - "orchestra/testbench": "^7.0|^8.0|^9.0|^10.0", - "pestphp/pest": "^1.20|^2.0|^3.0" - }, - "type": "library", - "extra": { - "aliases": { - "Translatable": "Spatie\\Translatable\\Facades\\Translatable" - }, - "laravel": { - "providers": [ - "Spatie\\Translatable\\TranslatableServiceProvider" - ] - } - }, - "autoload": { - "psr-4": { - "Spatie\\Translatable\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Freek Van der Herten", - "email": "freek@spatie.be", - "homepage": "https://spatie.be", - "role": "Developer" - }, - { - "name": "Sebastian De Deyne", - "email": "sebastian@spatie.be", - "homepage": "https://spatie.be", - "role": "Developer" - } - ], - "description": "A trait to make an Eloquent model hold translations", - "homepage": "https://github.com/spatie/laravel-translatable", - "keywords": [ - "eloquent", - "i8n", - "laravel-translatable", - "model", - "multilingual", - "spatie", - "translate" - ], - "support": { - "issues": "https://github.com/spatie/laravel-translatable/issues", - "source": "https://github.com/spatie/laravel-translatable/tree/6.11.4" - }, - "funding": [ - { - "url": "https://github.com/spatie", - "type": "github" - } - ], - "time": "2025-02-20T15:51:22+00:00" - }, { "name": "spatie/packagist-api", "version": "2.1.1", diff --git a/config/seeder.php b/config/seeder.php new file mode 100644 index 0000000..907587c --- /dev/null +++ b/config/seeder.php @@ -0,0 +1,8 @@ + [ + 'paperflakes' => env('SEEDER_PAPERFLAKES', false), + 'codebar' => env('SEEDER_CODEBAR', false), + ], +]; diff --git a/database/migrations/2025_06_23_225051_create_configurations_table.php b/database/migrations/2025_06_23_225051_create_configurations_table.php index 5bd9c03..567deb5 100644 --- a/database/migrations/2025_06_23_225051_create_configurations_table.php +++ b/database/migrations/2025_06_23_225051_create_configurations_table.php @@ -13,12 +13,18 @@ public function up(): void { Schema::create('configurations', function (Blueprint $table) { $table->id(); - $table->string('logo')->nullable(); - $table->json('contact')->nullable(); - $table->json('terms')->nullable(); - $table->json('imprint')->nullable(); - $table->json('privacy')->nullable(); - $table->json('footer')->nullable(); + + $table->string('company')->nullable(); + + $table->boolean('section_services')->default(false); + $table->boolean('section_products')->default(false); + $table->boolean('section_technologies')->default(false); + $table->boolean('section_open_source')->default(false); + + $table->string('key'); + + $table->json('links')->nullable(); + $table->timestamps(); }); } diff --git a/database/seeders/Codebar/ConfigurationsTableSeeder.php b/database/seeders/Codebar/ConfigurationsTableSeeder.php index 0886584..48f3fc6 100644 --- a/database/seeders/Codebar/ConfigurationsTableSeeder.php +++ b/database/seeders/Codebar/ConfigurationsTableSeeder.php @@ -2,7 +2,6 @@ namespace Database\Seeders\Codebar; -use App\Enums\LocaleEnum; use App\Models\Configuration; use Illuminate\Database\Seeder; @@ -14,9 +13,19 @@ class ConfigurationsTableSeeder extends Seeder public function run(): void { Configuration::updateOrCreate([], [ - 'logo' => 'layouts._logos._codebar', - 'footer' => [ - LocaleEnum::DE->value => 'codebar Solutions AG', + + 'company' => 'codebar Solutions AG', + + 'section_services' => false, + 'section_products' => false, + 'section_technologies' => true, + 'section_open_source' => true, + + 'key' => '_codebar', + + 'links' => [ + 'linkedin' => 'https://www.linkedin.com/company/codebarag', + 'github' => 'https://github.com/orgs/codebar-ag', ], ]); } diff --git a/database/seeders/Codebar/ContactsTableSeeder.php b/database/seeders/Codebar/ContactsTableSeeder.php new file mode 100644 index 0000000..fd7cbe9 --- /dev/null +++ b/database/seeders/Codebar/ContactsTableSeeder.php @@ -0,0 +1,82 @@ + 1], + [ + 'name' => 'Sebastian Bürgin-Fix', + 'published' => true, + 'sections' => [ + ContactSectionEnum::EMPLOYEE_SERVICES => [ + 'key' => ContactSectionEnum::EMPLOYEE_SERVICES, + 'role' => [ + 'de_CH' => 'Software-Architekt', + 'en_CH' => 'Software-Engineer', + ], + ], + ContactSectionEnum::BOARD_MEMBERS => [ + 'key' => ContactSectionEnum::BOARD_MEMBERS, + ], + ], + 'icons' => [ + 'email' => 'sebastian.buergin@codebar.ch', + 'linkedin' => 'https://www.linkedin.com/in/fix-sebastian/', + ], + 'image' => 'https://res.cloudinary.com/codebar/image/upload/w_400,h_400,f_auto,q_auto/www-paperflakes-ch/people/s_fix_e_background_removal_f_png.webp', + ] + ); + + Contact::updateOrCreate( + ['id' => 2], + [ + 'name' => 'Rhys Lees', + 'published' => true, + 'sections' => [ + ContactSectionEnum::EMPLOYEE_SERVICES => [ + 'key' => ContactSectionEnum::EMPLOYEE_SERVICES, + 'role' => [ + 'de_CH' => 'Entwickler', + 'en_CH' => 'Developer', + ], + ], + ], + 'icons' => [ + 'email' => 'rhys.leess@codebar.ch', + 'linkedin' => 'https://www.linkedin.com/in/rhys-lees', + ], + 'image' => 'https://res.cloudinary.com/codebar/image/upload/w_400,h_400,f_auto,q_auto/www-paperflakes-ch/people/r_lees_e_background_removal_f_png.webp', + ] + ); + + Contact::updateOrCreate( + ['id' => 7], + [ + 'name' => 'Sebastian Bürgin-Fix', + 'published' => true, + 'sections' => [ + ContactSectionEnum::COLLABORATIONS => [ + 'key' => ContactSectionEnum::COLLABORATIONS, + 'role' => [ + 'de_CH' => 'paperflakes AG', + 'en_CH' => 'paperflakes AG', + ], + ], + ], + 'icons' => [ + 'email' => 'info@paperflakes.ch', + 'website' => 'https://www.paperflakes.ch', + ], + 'image' => 'https://res.cloudinary.com/codebar/image/upload/w_400,h_400,f_auto,q_auto/www-paperflakes-ch/people/paperflakes.webp', + ] + ); + } +} diff --git a/database/seeders/CodebarSeeder.php b/database/seeders/CodebarSeeder.php index c202880..00ed26b 100644 --- a/database/seeders/CodebarSeeder.php +++ b/database/seeders/CodebarSeeder.php @@ -3,6 +3,7 @@ namespace Database\Seeders; use Database\Seeders\Codebar\ConfigurationsTableSeeder; +use Database\Seeders\Codebar\ContactsTableSeeder; use Illuminate\Cache\Console\ClearCommand; use Illuminate\Database\Seeder; use Illuminate\Support\Facades\Artisan; @@ -17,6 +18,7 @@ class CodebarSeeder extends Seeder public function run(): void { $this->call(ConfigurationsTableSeeder::class); + $this->call(ContactsTableSeeder::class); if (app()->isLocal()) { Artisan::call(ClearCommand::class); diff --git a/database/seeders/DatabaseSeeder.php b/database/seeders/DatabaseSeeder.php index 703de0f..2e78dce 100644 --- a/database/seeders/DatabaseSeeder.php +++ b/database/seeders/DatabaseSeeder.php @@ -7,6 +7,7 @@ use App\Models\User; use Database\Seeders\Paperflakes\RolesAndPermissionsSeeder; use Illuminate\Database\Seeder; +use Illuminate\Support\Facades\Config; // use Illuminate\Database\Console\Seeds\WithoutModelEvents; @@ -30,8 +31,12 @@ public function run(): void $user->assignRole(RoleEnum::ADMINISTRATOR, RoleEnum::USER); - $this->call(PaperflakesSeeder::class); - // $this->call(CodebarSeeder::class); + if (Config::get('seeder.seeder.paperflakes')) { + $this->call(PaperflakesSeeder::class); + } + if (Config::get('seeder.seeder.codebar')) { + $this->call(CodebarSeeder::class); + } } } diff --git a/database/seeders/Paperflakes/ConfigurationsTableSeeder.php b/database/seeders/Paperflakes/ConfigurationsTableSeeder.php index 4ff0188..9c371a0 100644 --- a/database/seeders/Paperflakes/ConfigurationsTableSeeder.php +++ b/database/seeders/Paperflakes/ConfigurationsTableSeeder.php @@ -2,7 +2,6 @@ namespace Database\Seeders\Paperflakes; -use App\Enums\LocaleEnum; use App\Models\Configuration; use Illuminate\Database\Seeder; @@ -14,10 +13,20 @@ class ConfigurationsTableSeeder extends Seeder public function run(): void { Configuration::updateOrCreate([], [ - 'logo' => 'layouts._logos._paperflakes', - 'footer' => [ - LocaleEnum::DE->value => 'paperflakes AG', + 'company' => 'paperflakes AG', + + 'section_services' => true, + 'section_products' => true, + 'section_technologies' => false, + 'section_open_source' => false, + + 'key' => '_paperflakes', + + 'links' => [ + 'linkedin' => 'https://www.linkedin.com/company/paperflakes', + 'github' => 'https://github.com/orgs/paperflakes-ag', ], + ]); } } diff --git a/database/seeders/Paperflakes/ContactsTableSeeder.php b/database/seeders/Paperflakes/ContactsTableSeeder.php index 09a25e2..5e2c0c5 100644 --- a/database/seeders/Paperflakes/ContactsTableSeeder.php +++ b/database/seeders/Paperflakes/ContactsTableSeeder.php @@ -52,6 +52,7 @@ public function run(): void 'key' => ContactSectionEnum::EMPLOYEE_SERVICES, 'role' => [ 'de_CH' => 'zunscan.ch', + 'en_CH' => 'zunscan.ch', ], ], ContactSectionEnum::BOARD_MEMBERS => [ @@ -157,6 +158,7 @@ public function run(): void 'key' => ContactSectionEnum::COLLABORATIONS, 'role' => [ 'de_CH' => 'codebar Solutions AG', + 'en_CH' => 'codebar Solutions AG', ], ], ], @@ -164,7 +166,7 @@ public function run(): void 'email' => 'info@codebar.ch', 'website' => 'https://www.codebar.ch', ], - 'image' => 'https://res.cloudinary.com/codebar/image/upload/w_400,h_400,f_auto,q_auto/www-paperflakes-ch/people/Zeichenfla%CC%88che_1.webp', + 'image' => 'https://res.cloudinary.com/codebar/image/upload/w_400,h_400,f_auto,q_auto/www-paperflakes-ch/people/codebar.webp', ] ); @@ -178,6 +180,7 @@ public function run(): void 'key' => ContactSectionEnum::COLLABORATIONS, 'role' => [ 'de_CH' => 'Wieland Business Solutions GmbH', + 'en_CH' => 'Wieland Business Solutions GmbH', ], ], ], diff --git a/lang/de_CH.json b/lang/de_CH.json index 17c9a9b..5cb7e7e 100644 --- a/lang/de_CH.json +++ b/lang/de_CH.json @@ -20,7 +20,7 @@ "Headquarter": "Hauptsitz", "Imprint": "Impressum", "Info(at)paperflakes.ch": "Info(at)paperflakes.ch", - "Jobs": "Jobs", + "Jobs": "Stellen", "Language": "Sprache", "Last updated at": "Zuletzt aktualisiert am", "Last updated at: :date": "Zuletzt aktualisiert am: :date", @@ -30,6 +30,7 @@ "Meta information": "Metainformationen", "News": "Neuigkeiten", "Office": "Büro", + "Open Source": "Open Source", "Partnerships": "Partnerschaften", "paperflakes AG": "paperflakes AG", "Phone": "Telefon", @@ -39,6 +40,7 @@ "Published at: :date": "Veröffentlicht am: :date", "Services": "Dienstleistungen", "Terms": "AGB", + "Technologies": "Technologien", "Update to english language": "Auf Englisch wechseln", "Update to german language": "Auf Deutsch wechseln", "Zefix": "Zefix" diff --git a/lang/en_CH.json b/lang/en_CH.json index 39ca383..5881f60 100644 --- a/lang/en_CH.json +++ b/lang/en_CH.json @@ -30,6 +30,7 @@ "Meta information": "Meta information", "News": "News", "Office": "Office", + "Open Source": "Open Source", "Partnerships": "Partnerships", "paperflakes AG": "paperflakes AG", "Phone": "Phone", @@ -39,6 +40,7 @@ "Published at: :date": "Published at: :date", "Services": "Services", "Terms": "Terms", + "Technologies": "Technologies", "Update to english language": "Update to english language", "Update to german language": "Update to german language", "Zefix": "Zefix" diff --git a/resources/views/app/about-us/index.blade.php b/resources/views/app/about-us/index.blade.php index 0fa36e0..c0ed588 100644 --- a/resources/views/app/about-us/index.blade.php +++ b/resources/views/app/about-us/index.blade.php @@ -7,7 +7,7 @@ - +
@if(!empty($contacts->employee_services) && $contacts->employee_services->count()) @@ -24,7 +24,7 @@ @endif - @if(!empty($contacts->employee_services) && $contacts->employee_services->count()) + @if(!empty($contacts->employee_products) && $contacts->employee_products->count()) @foreach($contacts->employee_products as $contact) diff --git a/resources/views/app/contact/_partials/_codebar.blade.php b/resources/views/app/contact/_partials/_codebar.blade.php new file mode 100644 index 0000000..702244c --- /dev/null +++ b/resources/views/app/contact/_partials/_codebar.blade.php @@ -0,0 +1,52 @@ + + + +
+ + +
+
+ + +
+
+ + + +
+
+
+

codebar Solutions AG

+

{{ __('Headquarter') }}

+

Haupstrasse 91

+

CH-4455 Zunzgen

+
+ + + + + +
+
+
+

codebar Solutions AG

+

{{__('Branch office')}}

+

Langegasse 39

+

CH-4104 Oberwil

+
+ + + + + + +
+
+
\ No newline at end of file diff --git a/resources/views/app/contact/_partials/_paperflakes.blade.php b/resources/views/app/contact/_partials/_paperflakes.blade.php new file mode 100644 index 0000000..c881830 --- /dev/null +++ b/resources/views/app/contact/_partials/_paperflakes.blade.php @@ -0,0 +1,52 @@ + + + +
+ + +
+
+ + +
+
+ + + +
+
+
+

paperflakes AG

+

{{ __('Headquarter') }}

+

Haupstrasse 91

+

CH-4455 Zunzgen

+
+ + + + + +
+
+
+

paperflakes AG

+

{{__('Branch office')}}

+

Langegasse 39

+

CH-4104 Oberwil

+
+ + + + + + +
+
+
\ No newline at end of file diff --git a/resources/views/app/contact/index.blade.php b/resources/views/app/contact/index.blade.php index 3a56068..c357578 100644 --- a/resources/views/app/contact/index.blade.php +++ b/resources/views/app/contact/index.blade.php @@ -1,55 +1,5 @@ - - - -
- - -
-
- - -
-
- - - -
-
-
-

paperflakes AG

-

{{ __('Headquarter') }}

-

Haupstrasse 91

-

CH-4455 Zunzgen

-
- - - - - -
-
-
-

paperflakes AG

-

{{__('Branch office')}}

-

Langegasse 39

-

CH-4104 Oberwil

-
- - - - - - -
-
-
- + @if(filled($configuration?->key)) + @include("app.contact._partials.{$configuration->key}") + @endif
\ No newline at end of file diff --git a/resources/views/app/legal/imprint/_partials/_codebar.blade.php b/resources/views/app/legal/imprint/_partials/_codebar.blade.php new file mode 100644 index 0000000..8621448 --- /dev/null +++ b/resources/views/app/legal/imprint/_partials/_codebar.blade.php @@ -0,0 +1,15 @@ + + + +
+

codebar Solutions AG

+

Mühlematten 12

+

CH-4455 Zunzgen

+

CHE-257.955.682

+
+ + + + + +
\ No newline at end of file diff --git a/resources/views/app/legal/imprint/_partials/_paperflakes.blade.php b/resources/views/app/legal/imprint/_partials/_paperflakes.blade.php new file mode 100644 index 0000000..008e81a --- /dev/null +++ b/resources/views/app/legal/imprint/_partials/_paperflakes.blade.php @@ -0,0 +1,15 @@ + + + +
+

paperflakes AG

+

Mühlematten 12

+

CH-4455 Zunzgen

+

CHE-432.585.498

+
+ + + + + +
\ No newline at end of file diff --git a/resources/views/app/legal/imprint/index.blade.php b/resources/views/app/legal/imprint/index.blade.php index 16513f0..896d214 100644 --- a/resources/views/app/legal/imprint/index.blade.php +++ b/resources/views/app/legal/imprint/index.blade.php @@ -1,17 +1,6 @@ - - - -
-

paperflakes AG

-

Mühlematten 12

-

CH-4455 Zunzgen

-

CHE-432.585.498

-
+ @if(filled($configuration?->key)) + @include("app.legal.imprint._partials.{$configuration->key}") + @endif +
- - - - - - \ No newline at end of file diff --git a/resources/views/app/legal/privacy/_partials/_codebar.blade.php b/resources/views/app/legal/privacy/_partials/_codebar.blade.php new file mode 100644 index 0000000..77edf1e --- /dev/null +++ b/resources/views/app/legal/privacy/_partials/_codebar.blade.php @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/resources/views/app/legal/privacy/_partials/_paperflakes.blade.php b/resources/views/app/legal/privacy/_partials/_paperflakes.blade.php new file mode 100644 index 0000000..77edf1e --- /dev/null +++ b/resources/views/app/legal/privacy/_partials/_paperflakes.blade.php @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/resources/views/app/legal/privacy/index.blade.php b/resources/views/app/legal/privacy/index.blade.php index b97cc2a..bc2c3b0 100644 --- a/resources/views/app/legal/privacy/index.blade.php +++ b/resources/views/app/legal/privacy/index.blade.php @@ -1,3 +1,5 @@ - + @if(filled($configuration?->key)) + @include("app.legal.privacy._partials.{$configuration->key}") + @endif \ No newline at end of file diff --git a/resources/views/app/legal/terms/_partials/_codebar.blade.php b/resources/views/app/legal/terms/_partials/_codebar.blade.php new file mode 100644 index 0000000..20dee71 --- /dev/null +++ b/resources/views/app/legal/terms/_partials/_codebar.blade.php @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/resources/views/app/legal/terms/_partials/_paperflakes.blade.php b/resources/views/app/legal/terms/_partials/_paperflakes.blade.php new file mode 100644 index 0000000..20dee71 --- /dev/null +++ b/resources/views/app/legal/terms/_partials/_paperflakes.blade.php @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/resources/views/app/legal/terms/index.blade.php b/resources/views/app/legal/terms/index.blade.php index 6249b71..8a5b8f5 100644 --- a/resources/views/app/legal/terms/index.blade.php +++ b/resources/views/app/legal/terms/index.blade.php @@ -1,3 +1,5 @@ - + @if(filled($configuration?->key)) + @include("app.legal.terms._partials.{$configuration->key}") + @endif \ No newline at end of file diff --git a/resources/views/app/open-source/index.blade.php b/resources/views/app/open-source/index.blade.php new file mode 100644 index 0000000..7451c06 --- /dev/null +++ b/resources/views/app/open-source/index.blade.php @@ -0,0 +1,14 @@ + + + + + @foreach($openSource as $entry) + + @endforeach + + + \ No newline at end of file diff --git a/resources/views/app/open-source/show.blade.php b/resources/views/app/open-source/show.blade.php new file mode 100644 index 0000000..ce207d0 --- /dev/null +++ b/resources/views/app/open-source/show.blade.php @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/resources/views/app/products/index.blade.php b/resources/views/app/products/index.blade.php index 2502913..abd01a6 100644 --- a/resources/views/app/products/index.blade.php +++ b/resources/views/app/products/index.blade.php @@ -2,12 +2,12 @@ - @foreach($products as $product) + @foreach($products as $entry) + :url="localized_route('products.show', ['locale' => app()->getLocale(),'product' => $entry])" + :title="$entry->name" + :teaser="$entry->teaser" + :tags="$entry->tags"/> @endforeach diff --git a/resources/views/app/services/index.blade.php b/resources/views/app/services/index.blade.php index f4c0ae4..fd01635 100644 --- a/resources/views/app/services/index.blade.php +++ b/resources/views/app/services/index.blade.php @@ -6,13 +6,13 @@ - @foreach($group as $service) + @foreach($group as $entry) + :url="$entry->url ?? localized_route('services.show',['locale' => app()->getLocale(),'service' => $entry])" + :title="$entry->name" + :teaser="$entry->teaser" + :tags="$entry->tags" + target="{{ $entry->url ? '_blank' : '_self' }}"/> @endforeach diff --git a/resources/views/app/technologies/index.blade.php b/resources/views/app/technologies/index.blade.php new file mode 100644 index 0000000..1e00fd6 --- /dev/null +++ b/resources/views/app/technologies/index.blade.php @@ -0,0 +1,14 @@ + + + + + @foreach($technologies as $entry) + + @endforeach + + + \ No newline at end of file diff --git a/resources/views/app/technologies/show.blade.php b/resources/views/app/technologies/show.blade.php new file mode 100644 index 0000000..ce207d0 --- /dev/null +++ b/resources/views/app/technologies/show.blade.php @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/resources/views/components/docuware-showme.blade.php b/resources/views/components/docuware-showme.blade.php index b13516d..fea5a67 100644 --- a/resources/views/components/docuware-showme.blade.php +++ b/resources/views/components/docuware-showme.blade.php @@ -1,46 +1,49 @@ -@use(App\Enums\LocaleEnum;use Illuminate\Support\Str) +@use(App\Enums\LocaleEnum;use Illuminate\Support\Facades\Config;use Illuminate\Support\Str) @php - $showme_url = match (app()->getLocale()) { - LocaleEnum::EN->value => 'https://showme.docuware.com/en-gb/interactive-tours', - default => 'https://showme.docuware.com/de/interactive-tours' - }; - $product_url = match (app()->getLocale()) { - LocaleEnum::EN->value => 'https://www.paperflakes.ch/services/en_CH/dms-ecm-docuware', - default => 'https://www.paperflakes.ch/dienstleistungen/de_CH/dms-ecm-docuware' - }; -@endphp + $display = Config::get('seeder.seeder.paperflakes'); - + $showme_url = match (app()->getLocale()) { + LocaleEnum::EN->value => 'https://showme.docuware.com/en-gb/interactive-tours', + default => 'https://showme.docuware.com/de/interactive-tours' + }; -
+ $product_url = match (app()->getLocale()) { + LocaleEnum::EN->value => 'https://www.paperflakes.ch/services/en_CH/dms-ecm-docuware', + default => 'https://www.paperflakes.ch/dienstleistungen/de_CH/dms-ecm-docuware' + }; +@endphp -
-
+
+@endif \ No newline at end of file diff --git a/resources/views/components/list-image-card.blade.php b/resources/views/components/list-image-card.blade.php index af05169..0ce39fb 100644 --- a/resources/views/components/list-image-card.blade.php +++ b/resources/views/components/list-image-card.blade.php @@ -54,7 +54,7 @@ class="text-gray-500 hover:text-gray-900"> @break @case('email') - - - + + - - + + - \ No newline at end of file diff --git a/resources/views/layouts/_partials/_footer.blade.php b/resources/views/layouts/_partials/_footer.blade.php index a2be1a6..8e12df8 100644 --- a/resources/views/layouts/_partials/_footer.blade.php +++ b/resources/views/layouts/_partials/_footer.blade.php @@ -2,37 +2,42 @@
diff --git a/resources/views/layouts/_partials/_navigation.blade.php b/resources/views/layouts/_partials/_navigation.blade.php index 5817c6c..8b47451 100644 --- a/resources/views/layouts/_partials/_navigation.blade.php +++ b/resources/views/layouts/_partials/_navigation.blade.php @@ -1,9 +1,9 @@