From 5056a16ca7ba53e637ba4f726d1a648cc87197bd Mon Sep 17 00:00:00 2001 From: Stephen Cameron Date: Tue, 28 May 2019 20:47:57 +0200 Subject: [PATCH] WIP #2739 @10.5 --- .gitignore | 2 + app/Http/Kernel.php | 1 + app/Http/Middleware/GenerateMenus.php | 130 ++++ app/Providers/AppServiceProvider.php | 1 - composer.json | 2 + composer.lock | 814 ++++++++++++++++++-- resources/styles/common/links.styl | 65 +- resources/styles/components/navigation.styl | 61 +- resources/views/layouts/app.blade.php | 8 + resources/views/pages/home.blade.php | 4 + resources/views/pages/solutions.blade.php | 11 + resources/views/partials/header.blade.php | 2 +- resources/views/partials/nav.blade.php | 9 +- 13 files changed, 1005 insertions(+), 105 deletions(-) create mode 100644 app/Http/Middleware/GenerateMenus.php create mode 100644 resources/views/pages/solutions.blade.php diff --git a/.gitignore b/.gitignore index e5c4b70..db14d30 100644 --- a/.gitignore +++ b/.gitignore @@ -16,3 +16,5 @@ npm-debug.log yarn-error.log package-lock.json composer.lock +_ide_helper.php +.phpstorm.meta.php diff --git a/app/Http/Kernel.php b/app/Http/Kernel.php index 348665a..415c2d1 100644 --- a/app/Http/Kernel.php +++ b/app/Http/Kernel.php @@ -36,6 +36,7 @@ class Kernel extends HttpKernel \Illuminate\View\Middleware\ShareErrorsFromSession::class, \App\Http\Middleware\VerifyCsrfToken::class, \Illuminate\Routing\Middleware\SubstituteBindings::class, + \App\Http\Middleware\GenerateMenus::class, ], 'api' => [ diff --git a/app/Http/Middleware/GenerateMenus.php b/app/Http/Middleware/GenerateMenus.php new file mode 100644 index 0000000..6a7b289 --- /dev/null +++ b/app/Http/Middleware/GenerateMenus.php @@ -0,0 +1,130 @@ + [ + 'url' => 'products', + 'submenus' => [ + + // Left panel + [ + 'title' => 'Capteurs', + 'links' => [ + 'Force' => 'force', + 'Couple' => 'couple', + 'Déplacement' => 'deplacement', + 'Accélération' => 'acceleration', + 'Inclinaison' => 'inclinaison', + 'Pression' => 'pression', + ], + ], + + // Right panel + [ + 'title' => 'Systèmes de mesure', + 'links' => [ + 'Roue dynamométrique' => 'roue', + 'Contrôle de fermeture d’ouvrants' => 'cdfdo', + 'Contrôle de taraudage' => 'cdt', + 'Collecteurs tournant' => 'ct', + 'Télémétrie' => 'telemetrie', + 'Acquisition de données' => 'add', + ], + ], + ], + ], + + 'Solutions' => [ + 'url' => 'solutions', + 'submenus' => [ + [ + 'links' => [ + 'Énergie' => 'energie', + 'Aéronautique' => 'aero', + 'Ferroviaire' => 'ferroviaire', + 'Automobile' => 'auto', + 'Génie civil' => 'civil', + 'Industrie' => 'industrie', + ] + ], + ], + ], + + 'Services' => [ + 'url' => 'services', + 'submenus' => [ + [ + 'title' => null, + 'links' => [ + 'Location' => 'location', + 'Calibration' => 'calibration', + 'Développement OEM' => 'developpement-oem', + 'Custom Design' => 'custom-design', + 'Formation' => 'formation', + ], + ], + ], + ], + 'Support' => 'support', + 'Société' => 'company', + 'Contact' => 'contact', + ]; + + + \Menu::make('primary', function ($menu) use ($nav_items) { + + // Todo: figure out how we can have the home link included in the breadcrumb menu without needing to add it to the menu like this. Also find a way to stop the home breaking when this link is not in the menu... + $menu->add('Home', ''); + + foreach ($nav_items as $nav_label => $nav_item) { + + // Handle items with submenus + if (is_array($nav_item)) { + $parent = $menu->add($nav_label, $nav_item['url']); + + foreach ($nav_item['submenus'] as $submenu_data) { + + foreach ($submenu_data['links'] as $label => $url) { + $parent->add($label, $url); + } + + /* + $parent->add($submenu_data['title'] ?? 'SUBMENU'); + + $parent->group(['prefix' => $nav_item['url']], function ($submenu) use ($submenu_data) { + + foreach ($submenu_data['links'] as $label => $url) { + $submenu->add($label, $url); + } + + }); + */ + } + + // Simple nav items with no sub-menus + } else { + $menu->add($nav_label, $nav_item); + } + } + + + }); + + return $next($request); + } +} diff --git a/app/Providers/AppServiceProvider.php b/app/Providers/AppServiceProvider.php index 88faa47..6b78da7 100644 --- a/app/Providers/AppServiceProvider.php +++ b/app/Providers/AppServiceProvider.php @@ -3,7 +3,6 @@ namespace App\Providers; use Illuminate\Support\ServiceProvider; -use Illuminate\Support\Facades\Blade; use Spatie\BladeX\Facades\BladeX; class AppServiceProvider extends ServiceProvider diff --git a/composer.json b/composer.json index 6e0203b..6072051 100644 --- a/composer.json +++ b/composer.json @@ -15,6 +15,7 @@ "license": "proprietary", "require": { "cubist/cms-back": "dev-master", + "lavary/laravel-menu": "^1.7", "spatie/laravel-blade-x": "^2.2" }, "config": { @@ -56,6 +57,7 @@ ] }, "require-dev": { + "barryvdh/laravel-ide-helper": "^2.6", "filp/whoops": "^2.3" } } diff --git a/composer.lock b/composer.lock index 52b94f9..8c3e185 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": "d30d88039eb3603444dae6a76486df8e", + "content-hash": "598cd690dc62966911ca9a319210f278", "packages": [ { "name": "almasaeed2010/adminlte", @@ -2430,16 +2430,16 @@ }, { "name": "laravel/framework", - "version": "v5.8.18", + "version": "v5.8.19", "source": { "type": "git", "url": "https://github.com/laravel/framework.git", - "reference": "9f571be04435883dab6f23ecfadb204273b7f527" + "reference": "47bb1471b727a0c1497143dccf46aacf73c0ce6b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/framework/zipball/9f571be04435883dab6f23ecfadb204273b7f527", - "reference": "9f571be04435883dab6f23ecfadb204273b7f527", + "url": "https://api.github.com/repos/laravel/framework/zipball/47bb1471b727a0c1497143dccf46aacf73c0ce6b", + "reference": "47bb1471b727a0c1497143dccf46aacf73c0ce6b", "shasum": "" }, "require": { @@ -2573,7 +2573,7 @@ "framework", "laravel" ], - "time": "2019-05-21T16:40:34+00:00" + "time": "2019-05-28T13:19:37+00:00" }, { "name": "laravel/tinker", @@ -2638,6 +2638,58 @@ ], "time": "2018-10-12T19:39:35+00:00" }, + { + "name": "lavary/laravel-menu", + "version": "v1.7.5", + "source": { + "type": "git", + "url": "https://github.com/lavary/laravel-menu.git", + "reference": "d7406165939362da831ad2b47ddac9cebdfc3af4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/lavary/laravel-menu/zipball/d7406165939362da831ad2b47ddac9cebdfc3af4", + "reference": "d7406165939362da831ad2b47ddac9cebdfc3af4", + "shasum": "" + }, + "require": { + "illuminate/support": ">=5.0", + "illuminate/view": ">=5.0", + "php": ">=5.4.0" + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "Lavary\\Menu\\ServiceProvider" + ], + "aliases": { + "Menu": "Lavary\\Menu\\Facade" + } + } + }, + "autoload": { + "psr-0": { + "Lavary\\Menu\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Lavary", + "email": "mrl.8081@gmail.com" + } + ], + "description": "A quick way to create menus in Laravel 5", + "homepage": "https://github.com/lavary/laravel-menu", + "keywords": [ + "laravel" + ], + "time": "2019-04-11T23:15:53+00:00" + }, { "name": "league/flysystem", "version": "1.0.52", @@ -4732,16 +4784,16 @@ }, { "name": "symfony/console", - "version": "v4.2.8", + "version": "v4.2.9", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "e2840bb38bddad7a0feaf85931e38fdcffdb2f81" + "reference": "7a293c9a4587a92e6a0e81edb0bea54071b1b99d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/e2840bb38bddad7a0feaf85931e38fdcffdb2f81", - "reference": "e2840bb38bddad7a0feaf85931e38fdcffdb2f81", + "url": "https://api.github.com/repos/symfony/console/zipball/7a293c9a4587a92e6a0e81edb0bea54071b1b99d", + "reference": "7a293c9a4587a92e6a0e81edb0bea54071b1b99d", "shasum": "" }, "require": { @@ -4800,25 +4852,32 @@ ], "description": "Symfony Console Component", "homepage": "https://symfony.com", - "time": "2019-04-08T14:23:48+00:00" + "time": "2019-05-09T09:19:46+00:00" }, { "name": "symfony/contracts", - "version": "v1.1.0", + "version": "v1.1.1", "source": { "type": "git", "url": "https://github.com/symfony/contracts.git", - "reference": "d3636025e8253c6144358ec0a62773cae588395b" + "reference": "b6e291a08e6b002fb56aa6f3e2a2beb6674d2b2f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/contracts/zipball/d3636025e8253c6144358ec0a62773cae588395b", - "reference": "d3636025e8253c6144358ec0a62773cae588395b", + "url": "https://api.github.com/repos/symfony/contracts/zipball/b6e291a08e6b002fb56aa6f3e2a2beb6674d2b2f", + "reference": "b6e291a08e6b002fb56aa6f3e2a2beb6674d2b2f", "shasum": "" }, "require": { "php": "^7.1.3" }, + "replace": { + "symfony/cache-contracts": "self.version", + "symfony/event-dispatcher-contracts": "self.version", + "symfony/http-client-contracts": "self.version", + "symfony/service-contracts": "self.version", + "symfony/translation-contracts": "self.version" + }, "require-dev": { "psr/cache": "^1.0", "psr/container": "^1.0", @@ -4827,11 +4886,12 @@ "suggest": { "psr/cache": "When using the Cache contracts", "psr/container": "When using the Service contracts", - "symfony/cache-contracts-implementation": "", + "psr/event-dispatcher": "When using the EventDispatcher contracts", + "symfony/cache-implementation": "", "symfony/event-dispatcher-implementation": "", - "symfony/http-client-contracts-implementation": "", - "symfony/service-contracts-implementation": "", - "symfony/translation-contracts-implementation": "" + "symfony/http-client-implementation": "", + "symfony/service-implementation": "", + "symfony/translation-implementation": "" }, "type": "library", "extra": { @@ -4871,11 +4931,11 @@ "interoperability", "standards" ], - "time": "2019-04-27T14:29:50+00:00" + "time": "2019-05-28T07:50:59+00:00" }, { "name": "symfony/css-selector", - "version": "v4.2.8", + "version": "v4.2.9", "source": { "type": "git", "url": "https://github.com/symfony/css-selector.git", @@ -4928,16 +4988,16 @@ }, { "name": "symfony/debug", - "version": "v4.2.8", + "version": "v4.2.9", "source": { "type": "git", "url": "https://github.com/symfony/debug.git", - "reference": "2d279b6bb1d582dd5740d4d3251ae8c18812ed37" + "reference": "22b4d033e6bb6d94a928545a3456007b8d0da907" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/debug/zipball/2d279b6bb1d582dd5740d4d3251ae8c18812ed37", - "reference": "2d279b6bb1d582dd5740d4d3251ae8c18812ed37", + "url": "https://api.github.com/repos/symfony/debug/zipball/22b4d033e6bb6d94a928545a3456007b8d0da907", + "reference": "22b4d033e6bb6d94a928545a3456007b8d0da907", "shasum": "" }, "require": { @@ -4980,7 +5040,7 @@ ], "description": "Symfony Debug Component", "homepage": "https://symfony.com", - "time": "2019-04-11T11:27:41+00:00" + "time": "2019-05-20T16:15:26+00:00" }, { "name": "symfony/dom-crawler", @@ -5041,7 +5101,7 @@ }, { "name": "symfony/event-dispatcher", - "version": "v4.2.8", + "version": "v4.2.9", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher.git", @@ -5105,16 +5165,16 @@ }, { "name": "symfony/finder", - "version": "v4.2.8", + "version": "v4.2.9", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "e45135658bd6c14b61850bf131c4f09a55133f69" + "reference": "e0ff582c4b038567a7c6630f136488b1d793e6a9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/e45135658bd6c14b61850bf131c4f09a55133f69", - "reference": "e45135658bd6c14b61850bf131c4f09a55133f69", + "url": "https://api.github.com/repos/symfony/finder/zipball/e0ff582c4b038567a7c6630f136488b1d793e6a9", + "reference": "e0ff582c4b038567a7c6630f136488b1d793e6a9", "shasum": "" }, "require": { @@ -5150,20 +5210,20 @@ ], "description": "Symfony Finder Component", "homepage": "https://symfony.com", - "time": "2019-04-06T13:51:08+00:00" + "time": "2019-05-26T20:47:34+00:00" }, { "name": "symfony/http-foundation", - "version": "v4.2.8", + "version": "v4.2.9", "source": { "type": "git", "url": "https://github.com/symfony/http-foundation.git", - "reference": "1ea878bd3af18f934dedb8c0de60656a9a31a718" + "reference": "0d37a9bd2c7cbf887c29fee1a3301d74c73851dd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/1ea878bd3af18f934dedb8c0de60656a9a31a718", - "reference": "1ea878bd3af18f934dedb8c0de60656a9a31a718", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/0d37a9bd2c7cbf887c29fee1a3301d74c73851dd", + "reference": "0d37a9bd2c7cbf887c29fee1a3301d74c73851dd", "shasum": "" }, "require": { @@ -5204,20 +5264,20 @@ ], "description": "Symfony HttpFoundation Component", "homepage": "https://symfony.com", - "time": "2019-05-01T08:36:31+00:00" + "time": "2019-05-27T05:57:45+00:00" }, { "name": "symfony/http-kernel", - "version": "v4.2.8", + "version": "v4.2.9", "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "a7713bc522f1a1cdf0b39f809fa4542523fc3114" + "reference": "ca9c1fe747f9704afd5e3c9097b80db0e31d158f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/a7713bc522f1a1cdf0b39f809fa4542523fc3114", - "reference": "a7713bc522f1a1cdf0b39f809fa4542523fc3114", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/ca9c1fe747f9704afd5e3c9097b80db0e31d158f", + "reference": "ca9c1fe747f9704afd5e3c9097b80db0e31d158f", "shasum": "" }, "require": { @@ -5293,7 +5353,7 @@ ], "description": "Symfony HttpKernel Component", "homepage": "https://symfony.com", - "time": "2019-05-01T13:31:08+00:00" + "time": "2019-05-28T12:07:12+00:00" }, { "name": "symfony/polyfill-ctype", @@ -5590,16 +5650,16 @@ }, { "name": "symfony/process", - "version": "v4.2.8", + "version": "v4.2.9", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "8cf39fb4ccff793340c258ee7760fd40bfe745fe" + "reference": "57f11a07b34f009ef64a3f95ad218f895ad95374" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/8cf39fb4ccff793340c258ee7760fd40bfe745fe", - "reference": "8cf39fb4ccff793340c258ee7760fd40bfe745fe", + "url": "https://api.github.com/repos/symfony/process/zipball/57f11a07b34f009ef64a3f95ad218f895ad95374", + "reference": "57f11a07b34f009ef64a3f95ad218f895ad95374", "shasum": "" }, "require": { @@ -5635,20 +5695,20 @@ ], "description": "Symfony Process Component", "homepage": "https://symfony.com", - "time": "2019-04-10T16:20:36+00:00" + "time": "2019-05-26T20:47:34+00:00" }, { "name": "symfony/routing", - "version": "v4.2.8", + "version": "v4.2.9", "source": { "type": "git", "url": "https://github.com/symfony/routing.git", - "reference": "f4e43bb0dff56f0f62fa056c82d7eadcdb391bab" + "reference": "c5ce09ed9db079dded1017a2494dbf6820efd204" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/routing/zipball/f4e43bb0dff56f0f62fa056c82d7eadcdb391bab", - "reference": "f4e43bb0dff56f0f62fa056c82d7eadcdb391bab", + "url": "https://api.github.com/repos/symfony/routing/zipball/c5ce09ed9db079dded1017a2494dbf6820efd204", + "reference": "c5ce09ed9db079dded1017a2494dbf6820efd204", "shasum": "" }, "require": { @@ -5711,25 +5771,25 @@ "uri", "url" ], - "time": "2019-04-27T09:38:08+00:00" + "time": "2019-05-20T16:15:26+00:00" }, { "name": "symfony/translation", - "version": "v4.2.8", + "version": "v4.2.9", "source": { "type": "git", "url": "https://github.com/symfony/translation.git", - "reference": "181a426dd129cb496f12d7e7555f6d0b37a7615b" + "reference": "5fe4ec5ecc04fa43c34f8df033bf60e3729bfaee" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation/zipball/181a426dd129cb496f12d7e7555f6d0b37a7615b", - "reference": "181a426dd129cb496f12d7e7555f6d0b37a7615b", + "url": "https://api.github.com/repos/symfony/translation/zipball/5fe4ec5ecc04fa43c34f8df033bf60e3729bfaee", + "reference": "5fe4ec5ecc04fa43c34f8df033bf60e3729bfaee", "shasum": "" }, "require": { "php": "^7.1.3", - "symfony/contracts": "^1.0.2", + "symfony/contracts": "^1.1.1", "symfony/polyfill-mbstring": "~1.0" }, "conflict": { @@ -5738,7 +5798,7 @@ "symfony/yaml": "<3.4" }, "provide": { - "symfony/translation-contracts-implementation": "1.0" + "symfony/translation-implementation": "1.0" }, "require-dev": { "psr/log": "~1.0", @@ -5786,11 +5846,11 @@ ], "description": "Symfony Translation Component", "homepage": "https://symfony.com", - "time": "2019-05-01T12:55:36+00:00" + "time": "2019-05-28T09:07:12+00:00" }, { "name": "symfony/var-dumper", - "version": "v4.2.8", + "version": "v4.2.9", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", @@ -6355,6 +6415,431 @@ } ], "packages-dev": [ + { + "name": "barryvdh/laravel-ide-helper", + "version": "v2.6.2", + "source": { + "type": "git", + "url": "https://github.com/barryvdh/laravel-ide-helper.git", + "reference": "39c148ad4273f5b8c49d0a363ddbc0462f1f2eec" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/barryvdh/laravel-ide-helper/zipball/39c148ad4273f5b8c49d0a363ddbc0462f1f2eec", + "reference": "39c148ad4273f5b8c49d0a363ddbc0462f1f2eec", + "shasum": "" + }, + "require": { + "barryvdh/reflection-docblock": "^2.0.6", + "composer/composer": "^1.6", + "illuminate/console": "^5.5,<5.9", + "illuminate/filesystem": "^5.5,<5.9", + "illuminate/support": "^5.5,<5.9", + "php": ">=7" + }, + "require-dev": { + "doctrine/dbal": "~2.3", + "illuminate/config": "^5.1,<5.9", + "illuminate/view": "^5.1,<5.9", + "phpro/grumphp": "^0.14", + "phpunit/phpunit": "4.*", + "scrutinizer/ocular": "~1.1", + "squizlabs/php_codesniffer": "^3" + }, + "suggest": { + "doctrine/dbal": "Load information from the database about models for phpdocs (~2.3)" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.6-dev" + }, + "laravel": { + "providers": [ + "Barryvdh\\LaravelIdeHelper\\IdeHelperServiceProvider" + ] + } + }, + "autoload": { + "psr-4": { + "Barryvdh\\LaravelIdeHelper\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Barry vd. Heuvel", + "email": "barryvdh@gmail.com" + } + ], + "description": "Laravel IDE Helper, generates correct PHPDocs for all Facade classes, to improve auto-completion.", + "keywords": [ + "autocomplete", + "codeintel", + "helper", + "ide", + "laravel", + "netbeans", + "phpdoc", + "phpstorm", + "sublime" + ], + "time": "2019-03-26T10:38:22+00:00" + }, + { + "name": "barryvdh/reflection-docblock", + "version": "v2.0.6", + "source": { + "type": "git", + "url": "https://github.com/barryvdh/ReflectionDocBlock.git", + "reference": "6b69015d83d3daf9004a71a89f26e27d27ef6a16" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/barryvdh/ReflectionDocBlock/zipball/6b69015d83d3daf9004a71a89f26e27d27ef6a16", + "reference": "6b69015d83d3daf9004a71a89f26e27d27ef6a16", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "require-dev": { + "phpunit/phpunit": "~4.0,<4.5" + }, + "suggest": { + "dflydev/markdown": "~1.0", + "erusev/parsedown": "~1.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, + "autoload": { + "psr-0": { + "Barryvdh": [ + "src/" + ] + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Mike van Riel", + "email": "mike.vanriel@naenius.com" + } + ], + "time": "2018-12-13T10:34:14+00:00" + }, + { + "name": "composer/ca-bundle", + "version": "1.1.4", + "source": { + "type": "git", + "url": "https://github.com/composer/ca-bundle.git", + "reference": "558f321c52faeb4828c03e7dc0cfe39a09e09a2d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/composer/ca-bundle/zipball/558f321c52faeb4828c03e7dc0cfe39a09e09a2d", + "reference": "558f321c52faeb4828c03e7dc0cfe39a09e09a2d", + "shasum": "" + }, + "require": { + "ext-openssl": "*", + "ext-pcre": "*", + "php": "^5.3.2 || ^7.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.5", + "psr/log": "^1.0", + "symfony/process": "^2.5 || ^3.0 || ^4.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.x-dev" + } + }, + "autoload": { + "psr-4": { + "Composer\\CaBundle\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be", + "homepage": "http://seld.be" + } + ], + "description": "Lets you find a path to the system CA bundle, and includes a fallback to the Mozilla CA bundle.", + "keywords": [ + "cabundle", + "cacert", + "certificate", + "ssl", + "tls" + ], + "time": "2019-01-28T09:30:10+00:00" + }, + { + "name": "composer/composer", + "version": "1.8.5", + "source": { + "type": "git", + "url": "https://github.com/composer/composer.git", + "reference": "949b116f9e7d98d8d276594fed74b580d125c0e6" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/composer/composer/zipball/949b116f9e7d98d8d276594fed74b580d125c0e6", + "reference": "949b116f9e7d98d8d276594fed74b580d125c0e6", + "shasum": "" + }, + "require": { + "composer/ca-bundle": "^1.0", + "composer/semver": "^1.0", + "composer/spdx-licenses": "^1.2", + "composer/xdebug-handler": "^1.1", + "justinrainbow/json-schema": "^3.0 || ^4.0 || ^5.0", + "php": "^5.3.2 || ^7.0", + "psr/log": "^1.0", + "seld/jsonlint": "^1.4", + "seld/phar-utils": "^1.0", + "symfony/console": "^2.7 || ^3.0 || ^4.0", + "symfony/filesystem": "^2.7 || ^3.0 || ^4.0", + "symfony/finder": "^2.7 || ^3.0 || ^4.0", + "symfony/process": "^2.7 || ^3.0 || ^4.0" + }, + "conflict": { + "symfony/console": "2.8.38" + }, + "require-dev": { + "phpunit/phpunit": "^4.8.35 || ^5.7", + "phpunit/phpunit-mock-objects": "^2.3 || ^3.0" + }, + "suggest": { + "ext-openssl": "Enabling the openssl extension allows you to access https URLs for repositories and packages", + "ext-zip": "Enabling the zip extension allows you to unzip archives", + "ext-zlib": "Allow gzip compression of HTTP requests" + }, + "bin": [ + "bin/composer" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.8-dev" + } + }, + "autoload": { + "psr-4": { + "Composer\\": "src/Composer" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nils Adermann", + "email": "naderman@naderman.de", + "homepage": "http://www.naderman.de" + }, + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be", + "homepage": "http://seld.be" + } + ], + "description": "Composer helps you declare, manage and install dependencies of PHP projects, ensuring you have the right stack everywhere.", + "homepage": "https://getcomposer.org/", + "keywords": [ + "autoload", + "dependency", + "package" + ], + "time": "2019-04-09T15:46:48+00:00" + }, + { + "name": "composer/semver", + "version": "1.5.0", + "source": { + "type": "git", + "url": "https://github.com/composer/semver.git", + "reference": "46d9139568ccb8d9e7cdd4539cab7347568a5e2e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/composer/semver/zipball/46d9139568ccb8d9e7cdd4539cab7347568a5e2e", + "reference": "46d9139568ccb8d9e7cdd4539cab7347568a5e2e", + "shasum": "" + }, + "require": { + "php": "^5.3.2 || ^7.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.5 || ^5.0.5", + "phpunit/phpunit-mock-objects": "2.3.0 || ^3.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.x-dev" + } + }, + "autoload": { + "psr-4": { + "Composer\\Semver\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nils Adermann", + "email": "naderman@naderman.de", + "homepage": "http://www.naderman.de" + }, + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be", + "homepage": "http://seld.be" + }, + { + "name": "Rob Bast", + "email": "rob.bast@gmail.com", + "homepage": "http://robbast.nl" + } + ], + "description": "Semver library that offers utilities, version constraint parsing and validation.", + "keywords": [ + "semantic", + "semver", + "validation", + "versioning" + ], + "time": "2019-03-19T17:25:45+00:00" + }, + { + "name": "composer/spdx-licenses", + "version": "1.5.1", + "source": { + "type": "git", + "url": "https://github.com/composer/spdx-licenses.git", + "reference": "a1aa51cf3ab838b83b0867b14e56fc20fbd55b3d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/composer/spdx-licenses/zipball/a1aa51cf3ab838b83b0867b14e56fc20fbd55b3d", + "reference": "a1aa51cf3ab838b83b0867b14e56fc20fbd55b3d", + "shasum": "" + }, + "require": { + "php": "^5.3.2 || ^7.0 || ^8.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.8.35 || ^5.7 || 6.5 - 7" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.x-dev" + } + }, + "autoload": { + "psr-4": { + "Composer\\Spdx\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nils Adermann", + "email": "naderman@naderman.de", + "homepage": "http://www.naderman.de" + }, + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be", + "homepage": "http://seld.be" + }, + { + "name": "Rob Bast", + "email": "rob.bast@gmail.com", + "homepage": "http://robbast.nl" + } + ], + "description": "SPDX licenses list and validation library.", + "keywords": [ + "license", + "spdx", + "validator" + ], + "time": "2019-03-26T10:23:26+00:00" + }, + { + "name": "composer/xdebug-handler", + "version": "1.3.3", + "source": { + "type": "git", + "url": "https://github.com/composer/xdebug-handler.git", + "reference": "46867cbf8ca9fb8d60c506895449eb799db1184f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/46867cbf8ca9fb8d60c506895449eb799db1184f", + "reference": "46867cbf8ca9fb8d60c506895449eb799db1184f", + "shasum": "" + }, + "require": { + "php": "^5.3.2 || ^7.0", + "psr/log": "^1.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.5" + }, + "type": "library", + "autoload": { + "psr-4": { + "Composer\\XdebugHandler\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "John Stevenson", + "email": "john-stevenson@blueyonder.co.uk" + } + ], + "description": "Restarts a process without xdebug.", + "keywords": [ + "Xdebug", + "performance" + ], + "time": "2019-05-27T17:52:04+00:00" + }, { "name": "filp/whoops", "version": "2.3.1", @@ -6415,6 +6900,215 @@ "whoops" ], "time": "2018-10-23T09:00:00+00:00" + }, + { + "name": "justinrainbow/json-schema", + "version": "5.2.8", + "source": { + "type": "git", + "url": "https://github.com/justinrainbow/json-schema.git", + "reference": "dcb6e1006bb5fd1e392b4daa68932880f37550d4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/justinrainbow/json-schema/zipball/dcb6e1006bb5fd1e392b4daa68932880f37550d4", + "reference": "dcb6e1006bb5fd1e392b4daa68932880f37550d4", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "require-dev": { + "friendsofphp/php-cs-fixer": "~2.2.20", + "json-schema/json-schema-test-suite": "1.2.0", + "phpunit/phpunit": "^4.8.35" + }, + "bin": [ + "bin/validate-json" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "JsonSchema\\": "src/JsonSchema/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Bruno Prieto Reis", + "email": "bruno.p.reis@gmail.com" + }, + { + "name": "Justin Rainbow", + "email": "justin.rainbow@gmail.com" + }, + { + "name": "Igor Wiedler", + "email": "igor@wiedler.ch" + }, + { + "name": "Robert Schönthal", + "email": "seroscho@googlemail.com" + } + ], + "description": "A library to validate a json schema.", + "homepage": "https://github.com/justinrainbow/json-schema", + "keywords": [ + "json", + "schema" + ], + "time": "2019-01-14T23:55:14+00:00" + }, + { + "name": "seld/jsonlint", + "version": "1.7.1", + "source": { + "type": "git", + "url": "https://github.com/Seldaek/jsonlint.git", + "reference": "d15f59a67ff805a44c50ea0516d2341740f81a38" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Seldaek/jsonlint/zipball/d15f59a67ff805a44c50ea0516d2341740f81a38", + "reference": "d15f59a67ff805a44c50ea0516d2341740f81a38", + "shasum": "" + }, + "require": { + "php": "^5.3 || ^7.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0" + }, + "bin": [ + "bin/jsonlint" + ], + "type": "library", + "autoload": { + "psr-4": { + "Seld\\JsonLint\\": "src/Seld/JsonLint/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be", + "homepage": "http://seld.be" + } + ], + "description": "JSON Linter", + "keywords": [ + "json", + "linter", + "parser", + "validator" + ], + "time": "2018-01-24T12:46:19+00:00" + }, + { + "name": "seld/phar-utils", + "version": "1.0.1", + "source": { + "type": "git", + "url": "https://github.com/Seldaek/phar-utils.git", + "reference": "7009b5139491975ef6486545a39f3e6dad5ac30a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Seldaek/phar-utils/zipball/7009b5139491975ef6486545a39f3e6dad5ac30a", + "reference": "7009b5139491975ef6486545a39f3e6dad5ac30a", + "shasum": "" + }, + "require": { + "php": ">=5.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.x-dev" + } + }, + "autoload": { + "psr-4": { + "Seld\\PharUtils\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be" + } + ], + "description": "PHAR file format utilities, for when PHP phars you up", + "keywords": [ + "phra" + ], + "time": "2015-10-13T18:44:15+00:00" + }, + { + "name": "symfony/filesystem", + "version": "v4.2.8", + "source": { + "type": "git", + "url": "https://github.com/symfony/filesystem.git", + "reference": "e16b9e471703b2c60b95f14d31c1239f68f11601" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/e16b9e471703b2c60b95f14d31c1239f68f11601", + "reference": "e16b9e471703b2c60b95f14d31c1239f68f11601", + "shasum": "" + }, + "require": { + "php": "^7.1.3", + "symfony/polyfill-ctype": "~1.8" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.2-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\Filesystem\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Filesystem Component", + "homepage": "https://symfony.com", + "time": "2019-02-07T11:40:08+00:00" } ], "aliases": [], diff --git a/resources/styles/common/links.styl b/resources/styles/common/links.styl index 2fdd559..947d3ec 100644 --- a/resources/styles/common/links.styl +++ b/resources/styles/common/links.styl @@ -4,40 +4,41 @@ a @apply text-blue transition: color 0.3s - // Apply these styles only to links without any classes (default links) - // OR to those with the special class names in case we need to override it - &:not([class]), &.animated-underline, &.partial-underline - font-family: theme('fontFamily.display') - position: relative - padding-bottom: 2px +// Apply these styles only to links without any classes (default links) in the
+// OR to those with the special class names in case we need to override it +main a:not([class]), a.animated-underline, a.partial-underline + font-family: theme('fontFamily.display') + position: relative + padding-bottom: 2px + + &:before + content: '' + display: block + position: absolute + bottom: 0 + left: 0 + width: 100% + height: 2px + background-color: currentColor + transform: scaleX(0) + transform-origin: left + transition: transform 0.2s ease-out + + &:hover &:before - content: '' - display: block - position: absolute - bottom: 0 - left: 0 - width: 100% - height: 2px - background-color: currentColor - transform: scaleX(0) - transform-origin: left - transition: transform 0.2s ease-out - - &:hover - &:before - transform: scaleX(1) - - - // Partial underline hover effect - &.partial-underline - overflow: hidden + transform: scaleX(1) - &:before - constrain(width, 2.5vw) - &:hover > * - color: currentColor +// Partial underline hover effect +a.partial-underline + overflow: hidden + + &:before + constrain(width, 2.5vw) + + &:hover > * + color: currentColor - > * - transition: color 0.2s + > * + transition: color 0.2s diff --git a/resources/styles/components/navigation.styl b/resources/styles/components/navigation.styl index 454ee06..ab9b3f5 100644 --- a/resources/styles/components/navigation.styl +++ b/resources/styles/components/navigation.styl @@ -1,12 +1,67 @@ .nav-primary @apply flex mx-auto px-10 - &-item + // Top level items + > li + @apply relative py-4 + + &.active + @apply text-blue + &:not(:last-child) @apply mr-10 - &-link - @apply text-inherit + &:hover + .nav-submenu + display: block + + // Top level links + > li > a + @apply text-inherit cursor-pointer &:hover color: theme('colors.blue') + + +.nav-submenu + @apply bg-white text-base shadow-2xl + display: none + position: absolute + top: 100% + left: 0 + padding: 1em 0 + + // Submenu items + li + &:hover, &.active + a + @apply text-blue + transform: translateX(0) + + &:before + transform: scaleX(1) + + // Submenu links + a + @apply text-navy flex items-center w-full py-2 + white-space: nowrap + padding-right: 1.5em // Give space to translate into + padding-left: @padding-right + transform: translateX(-2em) + + // Animated dash before link + &:before + content: '' + width: 1.5em + height: 2px + margin-right: 0.5em + background: currentColor + transform: scaleX(0) + transform-origin: right + + // Set transition for links - same for both elements + a, a:before + transition: transform 0.3s ease-out + + + diff --git a/resources/views/layouts/app.blade.php b/resources/views/layouts/app.blade.php index b50a4ed..0f5c33f 100644 --- a/resources/views/layouts/app.blade.php +++ b/resources/views/layouts/app.blade.php @@ -10,6 +10,14 @@
@include('partials.header') + @section('breadcrumbs') + + + {!! Menu::get('primary')->crumbMenu()->asDiv(['class' => 'breadcrumbs flex'], [], ['class' => 'pr-4']) !!} + + + @show +
@yield('content')
diff --git a/resources/views/pages/home.blade.php b/resources/views/pages/home.blade.php index 875786b..3379602 100644 --- a/resources/views/pages/home.blade.php +++ b/resources/views/pages/home.blade.php @@ -1,5 +1,9 @@ @extends('layouts/app') +@section('breadcrumbs') + {{-- Breadcrumbs disabled on home... --}} +@endsection + @section('content') {{-- Slider --}} diff --git a/resources/views/pages/solutions.blade.php b/resources/views/pages/solutions.blade.php new file mode 100644 index 0000000..2544a5c --- /dev/null +++ b/resources/views/pages/solutions.blade.php @@ -0,0 +1,11 @@ +@extends('layouts/app') + +@section('content') + + + + Lorem ipsum dolor sit amet, consectetur adipisicing elit. At consequatur consequuntur deserunt impedit in ipsum, laboriosam molestias mollitia odio omnis, quaerat quas quisquam veritatis. A doloremque illum laborum obcaecati quo. + + + +@endsection diff --git a/resources/views/partials/header.blade.php b/resources/views/partials/header.blade.php index 3f88cbd..2ca342e 100644 --- a/resources/views/partials/header.blade.php +++ b/resources/views/partials/header.blade.php @@ -1,5 +1,5 @@