routes and bo

Squashed commit of the following:

commit f4329fa095d9b2049d0c771caa4fa4a924f870c3
Author: Olivier Legat <olivier.legat@ldc.fr>
Date:   Tue Feb 16 20:35:54 2021 +0100

    auth and bo skeleton

commit 1b9d61724bc6734e480a3601c42eaa5bb6491615
Author: Olivier Legat <olivier.legat@ldc.fr>
Date:   Mon Feb 15 15:45:03 2021 +0100

    syntax

commit fa105067a1794fc230b5a7c2cf6e0cca58a01c25
Author: Olivier Legat <olivier.legat@ldc.fr>
Date:   Mon Feb 15 15:42:28 2021 +0100

    restore app blade

commit fb16200ed13433d4889ce59d9dad86d5fb257ba6
Author: Olivier Legat <olivier.legat@ldc.fr>
Date:   Mon Feb 15 15:30:43 2021 +0100

    front routes
This commit is contained in:
Olivier Legat 2021-02-16 20:37:53 +01:00
parent 1b560cd4bd
commit 9b209d741f
52 changed files with 114912 additions and 248 deletions

View file

@ -0,0 +1,62 @@
<?php
namespace App\Console\Commands;
use App\Models\User;
use Illuminate\Console\Command;
use Illuminate\Support\Facades\Hash;
class CreateAdmin extends Command
{
/**
* The name and signature of the console command.
*
* @var string
*/
protected $signature = 'create:admin';
/**
* The console command description.
*
* @var string
*/
protected $description = 'Command description';
/**
* Create a new command instance.
*
* @return void
*/
public function __construct()
{
parent::__construct();
}
/**
* Execute the console command.
*
* @return int
*/
public function handle()
{
$pwd = $this->secret('What is the password?');
$user = new User();
$user->civility = 1;
$user->firstname = "Informatique";
$user->lastname = "Internet";
$user->birth_date = now();
$user->email = "informatique.internet@ldc.fr";
$user->password = Hash::make($pwd);
$user->address = "-";
$user->town = "Le Mans";
$user->postal_code = "72000";
$user->country = "France";
$user->email_verify_token = "-";
$user->email_verified = 1;
$user->role = 1;
$user->save();
$this->info('User created.');
}
}

View file

@ -8,6 +8,6 @@ class AboutUsController extends Controller
{
public function index(Request $request)
{
return view('wait');
return view('front.aboutus');
}
}

View file

@ -3,7 +3,11 @@
namespace App\Http\Controllers\Bo;
use App\Http\Controllers\Controller;
use App\Models\User;
use Carbon\Carbon;
use Illuminate\Http\Request;
use Illuminate\Support\Str;
use Illuminate\Support\Facades\Hash;
class UsersController extends Controller
{
@ -14,7 +18,8 @@ class UsersController extends Controller
*/
public function index()
{
//
$users = User::get();
return view('bo.users.index',compact('users'));
}
/**
@ -24,7 +29,7 @@ class UsersController extends Controller
*/
public function create()
{
//
return view('bo.users.create');
}
/**
@ -35,7 +40,67 @@ class UsersController extends Controller
*/
public function store(Request $request)
{
//
$request->validate([
'lastname' => 'required|string|max:255',
'firstname' => 'required|string|max:255',
'birth_date' => 'max:10',
'email' => 'required|string|email|max:255|unique:users',
'password' => 'required|string|min:8',
'address' => 'max:255',
'address2' => 'max:255',
'town' => 'max:255',
'postal_code' => 'max:255',
'country' => 'max:255'
]);
$civility = $request->civility;
$lastname = filter_var($request->lastname, FILTER_SANITIZE_STRING);
$firstname = filter_var($request->firstname, FILTER_SANITIZE_STRING);
$birthDate = $request->birth_date;
$email = filter_var($request->email, FILTER_SANITIZE_EMAIL);
$password = $request->password;
$address = filter_var($request->address, FILTER_SANITIZE_STRING);
$address2 = $request->address2 !== null ? filter_var($request->address2, FILTER_SANITIZE_STRING) : null;
$town = filter_var($request->town, FILTER_SANITIZE_STRING);
$postalCode = filter_var($request->postal_code, FILTER_SANITIZE_STRING);
$country = filter_var($request->country, FILTER_SANITIZE_STRING);
$tokenMail = Str::uuid();
if ($this->isSQLDate($birthDate)){
$d = Carbon::createFromFormat('Y-m-d', $birthDate);
}elseif ($this->isFormDate($birthDate)){
$d = Carbon::createFromFormat('d/m/Y', $birthDate);
$birthDate = $d->toDateString();
}else{
if(!empty($birthDate)){
return back()
->withInput($request->except('password'))
->withErrors("Erreur sur le champs : date de naissance.");
}
}
$crmId = null;
$user = new User();
$user->crm_id = $crmId;
$user->civility = $civility;
$user->firstname = $firstname;
$user->lastname = $lastname;
$user->birth_date = $birthDate;
$user->email = $email;
$user->password = Hash::make($password);
$user->address = $address;
$user->address2 = $address2;
$user->town = $town;
$user->postal_code = $postalCode;
$user->country = ucfirst($country);
$user->email_verify_token = $tokenMail;
$success = $user->save();
var_dump($success);
return redirect()->route('bo.users.index')
->with('success', "utilisateur créé.");
}
/**
@ -82,4 +147,16 @@ class UsersController extends Controller
{
//
}
private function isSQLDate($date){
if (preg_match("/^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])$/", $date))
return true;
return false;
}
private function isFormDate($date){
if (preg_match("/^(0[1-9]|[1-2][0-9]|3[0-1])\/(0[1-9]|1[0-2])\/[0-9]{4}$/", $date))
return true;
return false;
}
}

View file

@ -6,5 +6,8 @@ use Illuminate\Http\Request;
class CSRController extends Controller
{
//
public function index(Request $request)
{
return view('front.csr');
}
}

View file

@ -6,5 +6,8 @@ use Illuminate\Http\Request;
class ContactUsController extends Controller
{
//
public function index(Request $request)
{
return view('front.contactus');
}
}

View file

@ -0,0 +1,13 @@
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class LegalNoticeController extends Controller
{
public function index(Request $request)
{
return view('front.legalnotice');
}
}

View file

@ -6,5 +6,8 @@ use Illuminate\Http\Request;
class NewsController extends Controller
{
//
public function index(Request $request)
{
return view('front.news');
}
}

View file

@ -6,5 +6,8 @@ use Illuminate\Http\Request;
class OurTradeController extends Controller
{
//
public function index(Request $request)
{
return view('front.ourtrade');
}
}

View file

@ -0,0 +1,13 @@
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class PrivacyPolicyController extends Controller
{
public function index(Request $request)
{
return view('front.privacypolicy');
}
}

View file

@ -58,6 +58,8 @@ class Kernel extends HttpKernel
'cache.headers' => \Illuminate\Http\Middleware\SetCacheHeaders::class,
'can' => \Illuminate\Auth\Middleware\Authorize::class,
'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
'is-admin' => \App\Http\Middleware\isAdmin::class,
'secu-bo' => \App\Http\Middleware\LdcSecureBo::class,
'password.confirm' => \Illuminate\Auth\Middleware\RequirePassword::class,
'signed' => \Illuminate\Routing\Middleware\ValidateSignature::class,
'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,

View file

@ -0,0 +1,24 @@
<?php
namespace App\Http\Middleware;
use Closure;
use Illuminate\Support\Facades\Auth;
class isAdmin
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
$role = Auth::user()->role;
if ($role === 1)
return $next($request);
abort(404, "Cette page n'existe pas.");
}
}

View file

@ -17,9 +17,20 @@ class User extends Authenticatable
* @var array
*/
protected $fillable = [
'name',
'crm_id',
'civility',
'firstname',
'lastname',
'birth_date',
'email',
'password',
'address',
'address2',
'town',
'postal_code',
'country',
'email_verify_token',
'email_verified'
];
/**

86
composer.lock generated
View file

@ -3362,7 +3362,7 @@
},
{
"name": "symfony/polyfill-ctype",
"version": "v1.22.0",
"version": "v1.22.1",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-ctype.git",
@ -3421,7 +3421,7 @@
"portable"
],
"support": {
"source": "https://github.com/symfony/polyfill-ctype/tree/v1.22.0"
"source": "https://github.com/symfony/polyfill-ctype/tree/v1.22.1"
},
"funding": [
{
@ -3441,16 +3441,16 @@
},
{
"name": "symfony/polyfill-iconv",
"version": "v1.22.0",
"version": "v1.22.1",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-iconv.git",
"reference": "b34bfb8c4c22650ac080d2662ae3502e5f2f4ae6"
"reference": "06fb361659649bcfd6a208a0f1fcaf4e827ad342"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/polyfill-iconv/zipball/b34bfb8c4c22650ac080d2662ae3502e5f2f4ae6",
"reference": "b34bfb8c4c22650ac080d2662ae3502e5f2f4ae6",
"url": "https://api.github.com/repos/symfony/polyfill-iconv/zipball/06fb361659649bcfd6a208a0f1fcaf4e827ad342",
"reference": "06fb361659649bcfd6a208a0f1fcaf4e827ad342",
"shasum": ""
},
"require": {
@ -3501,7 +3501,7 @@
"shim"
],
"support": {
"source": "https://github.com/symfony/polyfill-iconv/tree/v1.22.0"
"source": "https://github.com/symfony/polyfill-iconv/tree/v1.22.1"
},
"funding": [
{
@ -3517,20 +3517,20 @@
"type": "tidelift"
}
],
"time": "2021-01-07T16:49:33+00:00"
"time": "2021-01-22T09:19:47+00:00"
},
{
"name": "symfony/polyfill-intl-grapheme",
"version": "v1.22.0",
"version": "v1.22.1",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-intl-grapheme.git",
"reference": "267a9adeb8ecb8071040a740930e077cdfb987af"
"reference": "5601e09b69f26c1828b13b6bb87cb07cddba3170"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/267a9adeb8ecb8071040a740930e077cdfb987af",
"reference": "267a9adeb8ecb8071040a740930e077cdfb987af",
"url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/5601e09b69f26c1828b13b6bb87cb07cddba3170",
"reference": "5601e09b69f26c1828b13b6bb87cb07cddba3170",
"shasum": ""
},
"require": {
@ -3582,7 +3582,7 @@
"shim"
],
"support": {
"source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.22.0"
"source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.22.1"
},
"funding": [
{
@ -3598,20 +3598,20 @@
"type": "tidelift"
}
],
"time": "2021-01-07T16:49:33+00:00"
"time": "2021-01-22T09:19:47+00:00"
},
{
"name": "symfony/polyfill-intl-idn",
"version": "v1.22.0",
"version": "v1.22.1",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-intl-idn.git",
"reference": "0eb8293dbbcd6ef6bf81404c9ce7d95bcdf34f44"
"reference": "2d63434d922daf7da8dd863e7907e67ee3031483"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/0eb8293dbbcd6ef6bf81404c9ce7d95bcdf34f44",
"reference": "0eb8293dbbcd6ef6bf81404c9ce7d95bcdf34f44",
"url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/2d63434d922daf7da8dd863e7907e67ee3031483",
"reference": "2d63434d922daf7da8dd863e7907e67ee3031483",
"shasum": ""
},
"require": {
@ -3669,7 +3669,7 @@
"shim"
],
"support": {
"source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.22.0"
"source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.22.1"
},
"funding": [
{
@ -3685,20 +3685,20 @@
"type": "tidelift"
}
],
"time": "2021-01-07T16:49:33+00:00"
"time": "2021-01-22T09:19:47+00:00"
},
{
"name": "symfony/polyfill-intl-normalizer",
"version": "v1.22.0",
"version": "v1.22.1",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-intl-normalizer.git",
"reference": "6e971c891537eb617a00bb07a43d182a6915faba"
"reference": "43a0283138253ed1d48d352ab6d0bdb3f809f248"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/6e971c891537eb617a00bb07a43d182a6915faba",
"reference": "6e971c891537eb617a00bb07a43d182a6915faba",
"url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/43a0283138253ed1d48d352ab6d0bdb3f809f248",
"reference": "43a0283138253ed1d48d352ab6d0bdb3f809f248",
"shasum": ""
},
"require": {
@ -3753,7 +3753,7 @@
"shim"
],
"support": {
"source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.22.0"
"source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.22.1"
},
"funding": [
{
@ -3769,20 +3769,20 @@
"type": "tidelift"
}
],
"time": "2021-01-07T17:09:11+00:00"
"time": "2021-01-22T09:19:47+00:00"
},
{
"name": "symfony/polyfill-mbstring",
"version": "v1.22.0",
"version": "v1.22.1",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-mbstring.git",
"reference": "f377a3dd1fde44d37b9831d68dc8dea3ffd28e13"
"reference": "5232de97ee3b75b0360528dae24e73db49566ab1"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/f377a3dd1fde44d37b9831d68dc8dea3ffd28e13",
"reference": "f377a3dd1fde44d37b9831d68dc8dea3ffd28e13",
"url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/5232de97ee3b75b0360528dae24e73db49566ab1",
"reference": "5232de97ee3b75b0360528dae24e73db49566ab1",
"shasum": ""
},
"require": {
@ -3833,7 +3833,7 @@
"shim"
],
"support": {
"source": "https://github.com/symfony/polyfill-mbstring/tree/v1.22.0"
"source": "https://github.com/symfony/polyfill-mbstring/tree/v1.22.1"
},
"funding": [
{
@ -3849,11 +3849,11 @@
"type": "tidelift"
}
],
"time": "2021-01-07T16:49:33+00:00"
"time": "2021-01-22T09:19:47+00:00"
},
{
"name": "symfony/polyfill-php72",
"version": "v1.22.0",
"version": "v1.22.1",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-php72.git",
@ -3909,7 +3909,7 @@
"shim"
],
"support": {
"source": "https://github.com/symfony/polyfill-php72/tree/v1.22.0"
"source": "https://github.com/symfony/polyfill-php72/tree/v1.22.1"
},
"funding": [
{
@ -3929,7 +3929,7 @@
},
{
"name": "symfony/polyfill-php73",
"version": "v1.22.0",
"version": "v1.22.1",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-php73.git",
@ -3988,7 +3988,7 @@
"shim"
],
"support": {
"source": "https://github.com/symfony/polyfill-php73/tree/v1.22.0"
"source": "https://github.com/symfony/polyfill-php73/tree/v1.22.1"
},
"funding": [
{
@ -4008,7 +4008,7 @@
},
{
"name": "symfony/polyfill-php80",
"version": "v1.22.0",
"version": "v1.22.1",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-php80.git",
@ -4071,7 +4071,7 @@
"shim"
],
"support": {
"source": "https://github.com/symfony/polyfill-php80/tree/v1.22.0"
"source": "https://github.com/symfony/polyfill-php80/tree/v1.22.1"
},
"funding": [
{
@ -5060,16 +5060,16 @@
},
{
"name": "facade/ignition",
"version": "2.5.11",
"version": "2.5.12",
"source": {
"type": "git",
"url": "https://github.com/facade/ignition.git",
"reference": "e91d67353054bf827c64687fcac5ea44e4dcec54"
"reference": "be73521836f978106b3c3cf57de7eaeb261af520"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/facade/ignition/zipball/e91d67353054bf827c64687fcac5ea44e4dcec54",
"reference": "e91d67353054bf827c64687fcac5ea44e4dcec54",
"url": "https://api.github.com/repos/facade/ignition/zipball/be73521836f978106b3c3cf57de7eaeb261af520",
"reference": "be73521836f978106b3c3cf57de7eaeb261af520",
"shasum": ""
},
"require": {
@ -5133,7 +5133,7 @@
"issues": "https://github.com/facade/ignition/issues",
"source": "https://github.com/facade/ignition"
},
"time": "2021-02-05T12:52:11+00:00"
"time": "2021-02-15T07:55:43+00:00"
},
{
"name": "facade/ignition-contracts",

View file

@ -46,6 +46,11 @@ return [
'provider' => 'users',
'hash' => false,
],
'customer' => [
'driver' => 'session',
'provider' => 'customers',
],
],
/*
@ -71,6 +76,11 @@ return [
'model' => App\Models\User::class,
],
'customers' => [
'driver' => 'eloquent',
'model' => App\Models\Customers::class,
]
// 'users' => [
// 'driver' => 'database',
// 'table' => 'users',

View file

@ -22,11 +22,14 @@ class UserFactory extends Factory
*/
public function definition()
{
$gender = $this->faker->randomElement(['male', 'female']);
return [
'name' => $this->faker->name,
'firstname' => $this->faker->firstName($gender),
'lastname' => $this->faker->lastName,
'email' => $this->faker->unique()->safeEmail,
'email_verified_at' => now(),
'password' => '$2y$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi', // password
'role' => $this->faker->randomDigit,
'remember_token' => Str::random(10),
];
}

View file

@ -15,10 +15,23 @@ class CreateUsersTable extends Migration
{
Schema::create('users', function (Blueprint $table) {
$table->id();
$table->string('name');
$table->integer('crm_id')->nullable();
$table->integer('civility')->nullable();
$table->string('firstname');
$table->string('lastname');
$table->date('birth_date')->nullable();
$table->string('email')->unique();
$table->timestamp('email_verified_at')->nullable();
$table->string('password');
$table->string('address')->nullable();
$table->string('address2')->nullable();
$table->string('town');
$table->string('postal_code');
$table->string('country');
$table->string('phone')->nullable();
$table->string('email_verify_token')->nullable();
$table->boolean('email_verified')->default(0);
$table->string('password_token')->nullable();
$table->integer('role')->default(2);
$table->rememberToken();
$table->timestamps();
});

View file

@ -13,6 +13,6 @@ class DatabaseSeeder extends Seeder
*/
public function run()
{
// \App\Models\User::factory(10)->create();
\App\Models\User::factory(10)->create();
}
}

11198
package-lock.json generated Normal file

File diff suppressed because it is too large Load diff

View file

@ -11,8 +11,24 @@
},
"devDependencies": {
"axios": "^0.21",
"bootstrap": "^4.0.0",
"jquery": "^3.5",
"laravel-mix": "^6.0.6",
"lodash": "^4.17.19",
"postcss": "^8.1.14"
"popper.js": "^1.12",
"postcss": "^8.1.14",
"resolve-url-loader": "^3.1.2",
"sass": "^1.20.1",
"sass-loader": "^8.0.0",
"vue": "^2.5.17",
"vue-loader": "^15.9.5",
"vue-template-compiler": "^2.6.10"
},
"dependencies": {
"chart.js": "^2.9.4",
"jquery": "^3.5.1",
"popper.js": "^1.16.1",
"v-clipboard": "^2.2.3",
"vue": "^2.6.12"
}
}

10096
public/css/app.css vendored Normal file

File diff suppressed because it is too large Load diff

92649
public/js/app.js vendored Normal file

File diff suppressed because it is too large Load diff

4
public/mix-manifest.json Normal file
View file

@ -0,0 +1,4 @@
{
"/js/app.js": "/js/app.js",
"/css/app.css": "/css/app.css"
}

6
resources/js/app.js vendored
View file

@ -1 +1,7 @@
/**
* First we will load all of this project's JavaScript dependencies which
* includes Vue and other libraries. It is a great starting point when
* building robust, powerful web applications using Vue and Laravel.
*/
require('./bootstrap');

View file

@ -1,5 +1,19 @@
window._ = require('lodash');
/**
* We'll load jQuery and the Bootstrap jQuery plugin which provides support
* for JavaScript based Bootstrap features such as modals and tabs. This
* code may be modified to fit the specific needs of your application.
*/
try {
window.Popper = require('popper.js').default;
window.$ = window.jQuery = require('jquery');
require('bootstrap');
} catch (e) {}
/**
* We'll load the axios HTTP library which allows us to easily issue requests
* to our Laravel back-end. This library automatically handles sending the

0
resources/js/main.js vendored Normal file
View file

19
resources/sass/_variables.scss vendored Normal file
View file

@ -0,0 +1,19 @@
// Body
$body-bg: #f8fafc;
// Typography
$font-family-sans-serif: 'Nunito', sans-serif;
$font-size-base: 0.9rem;
$line-height-base: 1.6;
// Colors
$blue: #3490dc;
$indigo: #6574cd;
$purple: #9561e2;
$pink: #f66d9b;
$red: #e3342f;
$orange: #f6993f;
$yellow: #ffed4a;
$green: #38c172;
$teal: #4dc0b5;
$cyan: #6cb2eb;

11
resources/sass/app.scss vendored Normal file
View file

@ -0,0 +1,11 @@
// Fonts
@import url('https://fonts.googleapis.com/css?family=Nunito');
// Variables
@import 'variables';
// Bootstrap
@import '~bootstrap/scss/bootstrap';
// CSS custom
@import 'app_custom';

59
resources/sass/app_custom.scss vendored Normal file
View file

@ -0,0 +1,59 @@
/* Switch */
.onoffswitch {
position: relative; width: 80px;
-webkit-user-select:none; -moz-user-select:none; -ms-user-select: none;
}
.onoffswitch-checkbox {
position: absolute;
opacity: 0;
pointer-events: none;
}
.onoffswitch-label {
display: block; overflow: hidden; cursor: pointer;
border: 2px solid #999999; border-radius: 8px;
}
.onoffswitch-inner {
display: block; width: 200%; margin-left: -100%;
transition: margin 0.3s ease-in 0s;
}
.onoffswitch-inner:before, .onoffswitch-inner:after {
display: block; float: left; width: 50%; height: 35px; padding: 0; line-height: 35px;
font-size: 15px; color: white; font-family: Trebuchet, Arial, sans-serif; font-weight: bold;
box-sizing: border-box;
}
.onoffswitch-inner:before {
content: "Oui";
padding-left: 10px;
background-color: #2196F3; color: #FFFFFF;
}
.onoffswitch-inner:after {
content: "Non";
padding-right: 10px;
background-color: #CCCCCC; color: #999999;
text-align: right;
}
.onoffswitch-switch {
display: block; width: 22px; margin: 6.5px;
background: #FFFFFF;
position: absolute; top: 0; bottom: 0;
right: 41px;
border: 2px solid #999999; border-radius: 8px;
transition: all 0.3s ease-in 0s;
}
.onoffswitch-checkbox:checked + .onoffswitch-label .onoffswitch-inner {
margin-left: 0;
}
.onoffswitch-checkbox:checked + .onoffswitch-label .onoffswitch-switch {
right: 0px;
}
/* Fin du switch */
.required-asterisk {
color: red;
}
.game-name {
text-align: center;
font-size: large;
}

0
resources/sass/main.scss vendored Normal file
View file

View file

@ -0,0 +1,91 @@
@extends('layouts.app')
@section('content')
<div class="container v-50 vertical-center justify-content-center">
<main class="form-signin">
<form method="POST" action="{{ route('login') }}">
@csrf
<img class="mb-4" src="{{ asset('images/logo-lgl-3f.svg') }}" alt="__Jeusselin__">
<input type="email" id="inputEmail" class="form-control" placeholder="Adresse email" name="email" value="{{ old('email') }}" required autofocus>
<input type="password" id="inputPassword" class="form-control" placeholder="Mot de passe" name="password" required>
<div class="checkbox mb-3">
<label>
<input type="checkbox" value="remember"> Se souvenir de moi
</label>
</div>
<button class="w-100 btn btn-lg btn-primary" type="submit">Connexion</button>
<p class="mt-5 mb-3 text-muted">&copy; __Jeusselin__ {{ date('Y') }}</p>
</form>
</main>
</div>
@endsection
{{-- <div class="container">
<div class="row justify-content-center">
<div class="col-md-8">
<div class="card">
<div class="card-header">{{ __('Login') }}</div>
<div class="card-body">
<form method="POST" action="{{ route('login') }}">
@csrf
<div class="form-group row">
<label for="email" class="col-md-4 col-form-label text-md-right">{{ __('E-Mail Address') }}</label>
<div class="col-md-6">
<input id="email" type="email" class="form-control @error('email') is-invalid @enderror" name="email" value="{{ old('email') }}" required autocomplete="email" autofocus>
@error('email')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
</div>
</div>
<div class="form-group row">
<label for="password" class="col-md-4 col-form-label text-md-right">{{ __('Password') }}</label>
<div class="col-md-6">
<input id="password" type="password" class="form-control @error('password') is-invalid @enderror" name="password" required autocomplete="current-password">
@error('password')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
</div>
</div>
<div class="form-group row">
<div class="col-md-6 offset-md-4">
<div class="form-check">
<input class="form-check-input" type="checkbox" name="remember" id="remember" {{ old('remember') ? 'checked' : '' }}>
<label class="form-check-label" for="remember">
{{ __('Remember Me') }}
</label>
</div>
</div>
</div>
<div class="form-group row mb-0">
<div class="col-md-8 offset-md-4">
<button type="submit" class="btn btn-primary">
{{ __('Login') }}
</button>
@if (Route::has('password.request'))
<a class="btn btn-link" href="{{ route('password.request') }}">
{{ __('Forgot Your Password?') }}
</a>
@endif
</div>
</div>
</form>
</div>
</div>
</div>
</div>
</div> --}}

View file

@ -0,0 +1,49 @@
@extends('layouts.app')
@section('content')
<div class="container">
<div class="row justify-content-center">
<div class="col-md-8">
<div class="card">
<div class="card-header">{{ __('Confirm Password') }}</div>
<div class="card-body">
{{ __('Please confirm your password before continuing.') }}
<form method="POST" action="{{ route('password.confirm') }}">
@csrf
<div class="form-group row">
<label for="password" class="col-md-4 col-form-label text-md-right">{{ __('Password') }}</label>
<div class="col-md-6">
<input id="password" type="password" class="form-control @error('password') is-invalid @enderror" name="password" required autocomplete="current-password">
@error('password')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
</div>
</div>
<div class="form-group row mb-0">
<div class="col-md-8 offset-md-4">
<button type="submit" class="btn btn-primary">
{{ __('Confirm Password') }}
</button>
@if (Route::has('password.request'))
<a class="btn btn-link" href="{{ route('password.request') }}">
{{ __('Forgot Your Password?') }}
</a>
@endif
</div>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
@endsection

View file

@ -0,0 +1,47 @@
@extends('layouts.app')
@section('content')
<div class="container">
<div class="row justify-content-center">
<div class="col-md-8">
<div class="card">
<div class="card-header">{{ __('Reset Password') }}</div>
<div class="card-body">
@if (session('status'))
<div class="alert alert-success" role="alert">
{{ session('status') }}
</div>
@endif
<form method="POST" action="{{ route('password.email') }}">
@csrf
<div class="form-group row">
<label for="email" class="col-md-4 col-form-label text-md-right">{{ __('E-Mail Address') }}</label>
<div class="col-md-6">
<input id="email" type="email" class="form-control @error('email') is-invalid @enderror" name="email" value="{{ old('email') }}" required autocomplete="email" autofocus>
@error('email')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
</div>
</div>
<div class="form-group row mb-0">
<div class="col-md-6 offset-md-4">
<button type="submit" class="btn btn-primary">
{{ __('Send Password Reset Link') }}
</button>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
@endsection

View file

@ -0,0 +1,65 @@
@extends('layouts.app')
@section('content')
<div class="container">
<div class="row justify-content-center">
<div class="col-md-8">
<div class="card">
<div class="card-header">{{ __('Reset Password') }}</div>
<div class="card-body">
<form method="POST" action="{{ route('password.update') }}">
@csrf
<input type="hidden" name="token" value="{{ $token }}">
<div class="form-group row">
<label for="email" class="col-md-4 col-form-label text-md-right">{{ __('E-Mail Address') }}</label>
<div class="col-md-6">
<input id="email" type="email" class="form-control @error('email') is-invalid @enderror" name="email" value="{{ $email ?? old('email') }}" required autocomplete="email" autofocus>
@error('email')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
</div>
</div>
<div class="form-group row">
<label for="password" class="col-md-4 col-form-label text-md-right">{{ __('Password') }}</label>
<div class="col-md-6">
<input id="password" type="password" class="form-control @error('password') is-invalid @enderror" name="password" required autocomplete="new-password">
@error('password')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
</div>
</div>
<div class="form-group row">
<label for="password-confirm" class="col-md-4 col-form-label text-md-right">{{ __('Confirm Password') }}</label>
<div class="col-md-6">
<input id="password-confirm" type="password" class="form-control" name="password_confirmation" required autocomplete="new-password">
</div>
</div>
<div class="form-group row mb-0">
<div class="col-md-6 offset-md-4">
<button type="submit" class="btn btn-primary">
{{ __('Reset Password') }}
</button>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
@endsection

View file

@ -0,0 +1,77 @@
@extends('layouts.app')
@section('content')
<div class="container">
<div class="row justify-content-center">
<div class="col-md-8">
<div class="card">
<div class="card-header">{{ __('Register') }}</div>
<div class="card-body">
<form method="POST" action="{{ route('register') }}">
@csrf
<div class="form-group row">
<label for="name" class="col-md-4 col-form-label text-md-right">{{ __('Name') }}</label>
<div class="col-md-6">
<input id="name" type="text" class="form-control @error('name') is-invalid @enderror" name="name" value="{{ old('name') }}" required autocomplete="name" autofocus>
@error('name')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
</div>
</div>
<div class="form-group row">
<label for="email" class="col-md-4 col-form-label text-md-right">{{ __('E-Mail Address') }}</label>
<div class="col-md-6">
<input id="email" type="email" class="form-control @error('email') is-invalid @enderror" name="email" value="{{ old('email') }}" required autocomplete="email">
@error('email')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
</div>
</div>
<div class="form-group row">
<label for="password" class="col-md-4 col-form-label text-md-right">{{ __('Password') }}</label>
<div class="col-md-6">
<input id="password" type="password" class="form-control @error('password') is-invalid @enderror" name="password" required autocomplete="new-password">
@error('password')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
</div>
</div>
<div class="form-group row">
<label for="password-confirm" class="col-md-4 col-form-label text-md-right">{{ __('Confirm Password') }}</label>
<div class="col-md-6">
<input id="password-confirm" type="password" class="form-control" name="password_confirmation" required autocomplete="new-password">
</div>
</div>
<div class="form-group row mb-0">
<div class="col-md-6 offset-md-4">
<button type="submit" class="btn btn-primary">
{{ __('Register') }}
</button>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
@endsection

View file

@ -0,0 +1,28 @@
@extends('layouts.app')
@section('content')
<div class="container">
<div class="row justify-content-center">
<div class="col-md-8">
<div class="card">
<div class="card-header">{{ __('Verify Your Email Address') }}</div>
<div class="card-body">
@if (session('resent'))
<div class="alert alert-success" role="alert">
{{ __('A fresh verification link has been sent to your email address.') }}
</div>
@endif
{{ __('Before proceeding, please check your email for a verification link.') }}
{{ __('If you did not receive the email') }},
<form class="d-inline" method="POST" action="{{ route('verification.resend') }}">
@csrf
<button type="submit" class="btn btn-link p-0 m-0 align-baseline">{{ __('click here to request another') }}</button>.
</form>
</div>
</div>
</div>
</div>
</div>
@endsection

View file

@ -8,26 +8,60 @@
</div>
<div class="card-body">
@if ($errors->any())
<div class="alert alert-danger">
<ul>
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
@endif
<form action="{{route('bo.users.store')}}" method="POST">
@csrf
<div class="row">
<div class="col-md-6 offset-md-3">
<div class="form-group">
<div class="row">
<div class="col-md-6">
<input type="text" class="form-control" name="firstname" placeholder="Prénom" required>
<div class="col-md-3">
<select name="civility" class="custom-select">
<option value="1" @if (old('civility') == 1)selected @endif>Mr</option>
<option value="2" @if (old('civility') == 2)selected @endif>Mme</option>
<option value="3" @if (old('civility') == 3)selected @endif>Mlle</option>
</select>
</div>
<div class="col-md-6">
<input type="text" class="form-control" name="lastname" placeholder="Nom" required>
<div class="col-md-4">
<input type="text" class="form-control" name="firstname" value="{{ old('firstname') }}" placeholder="Prénom" required>
</div>
<div class="col-md-5">
<input type="text" class="form-control" name="lastname" value="{{ old('lastname') }}" placeholder="Nom" required>
</div>
</div>
</div>
<div class="form-group">
<input type="date" name="birth_date" class="form-control" placeholder="Date de naissance" value="{{ old('birth_date') }}">
</div>
<div class="form-group">
<input type="email" class="form-control" name="email" placeholder="Email" required>
</div>
<div class="form-group">
<input type="password" class="form-control" name="password" placeholder="Mot de passe" minlength="8" required>
</div>
<div class="form-group">
<input type="text" name="address" class="form-control" placeholder="Adresse" value="{{ old('address') }}">
</div>
<div class="form-group">
<input type="text" name="address2" class="form-control" placeholder="Adresse complémentaire" value="{{ old('address2') }}">
</div>
<div class="form-group">
<input type="text" name="town" class="form-control" placeholder="Ville" value="{{ old('town') }}">
</div>
<div class="form-group">
<input type="text" name="postal_code" class="form-control" placeholder="Code postal" value="{{ old('postal_code') }}">
</div>
<div class="form-group">
<input type="text" name="country" class="form-control" placeholder="Pays" value="{{ old('country') }}">
</div>
<div class="form-group">
<label for="role">Rôle :</label>
<select id="role" name="role" class="form-control" required>

View file

@ -0,0 +1,5 @@
@extends('layouts.front')
@section('content')
<img src="{{ asset('images/home/under-construction.png') }}">
@endsection

View file

@ -0,0 +1,5 @@
@extends('layouts.app')
@section('content')
<img src="{{ asset('images/home/under-construction.png') }}">
@endsection

View file

@ -0,0 +1,5 @@
@extends('layouts.app')
@section('content')
<img src="{{ asset('images/home/under-construction.png') }}">
@endsection

View file

@ -0,0 +1,5 @@
@extends('layouts.app')
@section('content')
<img src="{{ asset('images/home/under-construction.png') }}">
@endsection

View file

@ -0,0 +1,5 @@
@extends('layouts.app')
@section('content')
<img src="{{ asset('images/home/under-construction.png') }}">
@endsection

View file

@ -0,0 +1,5 @@
@extends('layouts.app')
@section('content')
<img src="{{ asset('images/home/under-construction.png') }}">
@endsection

View file

@ -9,7 +9,7 @@
<h1 class="post-title">Notre lien c’est le grain !</h1>
<p>Jeusselin vous conseille et vous accompagne dans vos achats et ventes de vos céréales et oleo protéagineux. Jeusselin, une équipe technique cultures à l’écoute de tous nos partenaires. Notre expertise, notre implantation locale et nos savoir-faire vous permettent de rester informés en temps réel des cours du marché pour la meilleure valorisation possible de vos produits.</p>
<div>
<a href="#" class="second-btn">En savoir plus sur notre entreprise</a>
<a href="{{ route('aboutus') }}" class="second-btn">En savoir plus sur notre entreprise</a>
</div>
</div>
<div class="slider-container">
@ -17,7 +17,7 @@
<div class="swiper-wrapper">
<div class="swiper-slide flex">
<div class="img-slide">
<img src="./assets/images/plats-cuisines.jpg" alt="">
<img src="{{ asset('images/plats-cuisines.jpg') }}" alt="">
</div>
<div class="txt-slide flex">
<h2 class="post-subtitle">De délicieux plats préparés disponibles en Clik&Collect</h2>
@ -29,7 +29,7 @@
</div>
<div class="swiper-slide flex">
<div class="img-slide">
<img src="./assets/images/plats-cuisines.jpg" alt="">
<img src="{{ asset('images/plats-cuisines.jpg') }}" alt="">
</div>
<div class="txt-slide flex">
<h2 class="post-subtitle">De merveilleux plats préparés disponibles en Clik&Collect</h2>
@ -41,7 +41,7 @@
</div>
<div class="swiper-slide flex">
<div class="img-slide">
<img src="./assets/images/plats-cuisines.jpg" alt="">
<img src="{{ asset('images/plats-cuisines.jpg') }}" alt="">
</div>
<div class="txt-slide flex">
<h2 class="post-subtitle">De superbes plats préparés disponibles en Clik&Collect</h2>
@ -58,7 +58,7 @@
</div>
</section>
<!--
<section class="video flex container">
<div class="title-section flex">
<h2 class="post-subtitle">Titre de la section vidéo</h2>
@ -68,38 +68,38 @@
</div>
<div class="content-video flex">
<div class="player-bloc">
<img src="./assets/images/play.png" class="icon-play" alt="">
<img src="./assets/images/silo-marolles.jpg" alt="">
<img src="{{ asset('images/play.png') }}" class="icon-play" alt="">
<img src="{{ asset('images/silo-marolles.jpg') }}" alt="">
</div>
<div class="video-diapo flex">
<a href="#" class="screenplay">
<img src="./assets/images/play.png" class="icon-play" alt="">
<img src="./assets/images/silo-marolles-petite.jpg" alt="">
<img src="{{ asset('images/play.png') }}" class="icon-play" alt="">
<img src="{{ asset('images/silo-marolles-petite.jpg') }}" alt="">
<p>Marolles</p>
</a>
<a href="#" class="screenplay">
<img src="./assets/images/play.png" class="icon-play" alt="">
<img src="./assets/images/silo-cherre.jpg" alt="">
<img src="{{ asset('images/play.png') }}" class="icon-play" alt="">
<img src="{{ asset('images/silo-cherre.jpg') }}" alt="">
<p>Cherré</p>
</a>
<a href="#" class="screenplay">
<img src="./assets/images/play.png" class="icon-play" alt="">
<img src="./assets/images/silo-monce.jpg" alt="">
<img src="{{ asset('images/play.png') }}" class="icon-play" alt="">
<img src="{{ asset('images/silo-monce.jpg') }}" alt="">
<p>Moncé</p>
</a>
<a href="#" class="screenplay">
<img src="./assets/images/play.png" class="icon-play" alt="">
<img src="./assets/images/silo-nogent-le-bernard.jpg" alt="">
<img src="{{ asset('images/play.png') }}" class="icon-play" alt="">
<img src="{{ asset('images/silo-nogent-le-bernard.jpg') }}" alt="">
<p>Nogent-le-Bernard</p>
</a>
<a href="#" class="screenplay">
<img src="./assets/images/play.png" class="icon-play" alt="">
<img src="./assets/images/silo-mamers.jpg" alt="">
<img src="{{ asset('images/play.png') }}" class="icon-play" alt="">
<img src="{{ asset('images/silo-mamers.jpg') }}" alt="">
<p>Mamers</p>
</a>
<a href="#" class="screenplay">
<img src="./assets/images/play.png" class="icon-play" alt="">
<img src="./assets/images/silo-thoigne-les-mees.jpg" alt="">
<img src="{{ asset('images/play.png') }}" class="icon-play" alt="">
<img src="{{ asset('images/silo-thoigne-les-mees.jpg') }}" alt="">
<p>Thoigné / Les Mèes</p>
</a>
</div>
@ -108,7 +108,7 @@
<section class="edito grid container">
<div class="img-edito">
<img src="./assets/images/jeusselin-photo.jpg" alt="Gaël Le Conte">
<img src="{{ asset('images/jeusselin-photo.jpg') }}" alt="Gaël Le Conte">
</div>
<div>
<p class="paragraph-title"><strong>&Eacute;dito</strong></p>
@ -139,22 +139,22 @@
<div class="infos flex">
<div class="info">
<h3 class="post-chapter">150 000 tonnes de collecte</h3>
<img src="./assets/images/150000-tonnes-collecte.jpg" alt="150 000 tonnes de collecte">
<img src="{{ asset('images/150000-tonnes-collecte.jpg') }}" alt="150 000 tonnes de collecte">
<div><a href="#" class="second-btn">&nbsp;</a></div>
</div>
<div class="info">
<h3 class="post-chapter">8 sites de collecte</h3>
<img src="./assets/images/huits-sites-collecte.jpg" alt="8 sites de collecte">
<img src="{{ asset('images/huits-sites-collecte.jpg') }}" alt="8 sites de collecte">
<div><a href="#" class="second-btn">Trouvez votre point de collecte</a></div>
</div>
<div class="info">
<h3 class="post-chapter">40 salarié(e)s</h3>
<img src="./assets/images/quarante-salaries.jpg" alt="40 salarié(e)s">
<img src="{{ asset('images/quarante-salaries.jpg') }}" alt="40 salarié(e)s">
<div><a href="#" class="second-btn">Rencontrez l'équipe Jeusselin</a></div>
</div>
</div>
</section>
-->
@endsection

View file

@ -1,10 +1,10 @@
<footer>
<div class="logo-footer">
<a href="#"><img src="./assets/images/logo-jeusselin.png" alt="Jeusselin"></a>
<a href="{{ route('home') }}"><img src="{{ asset('images/logo-jeusselin.png') }}" alt="Jeusselin"></a>
</div>
<div class="txt-footer flex">
<a href="#">Contact</a>
<a href="#">Mentions légales</a>
<a href="#">Politique de confidentialité</a>
<a href="{{ route('contactus') }}">Contact</a>
<a href="{{ route('legalnotice') }}">Mentions légales</a>
<a href="{{ route('privacypolicy') }}">Politique de confidentialité</a>
</div>
</footer>

View file

@ -5,17 +5,17 @@
</div>
<nav>
<ul class="flex">
<li><a href="/qui-sommes-nous">Qui sommes nous&nbsp;?</a></li>
<li><a href="#">Nos métiers</a></li>
<li><a href="#">RSE</a></li>
<li><a href="#">Actualités</a></li>
<li><a href="#">Nous contacter</a></li>
<li><a href="{{ route('aboutus') }}">Qui sommes nous&nbsp;?</a></li>
<li><a href="{{ route('ourtrade') }}">Nos métiers</a></li>
<li><a href="{{ route('csr') }}">RSE</a></li>
<li><a href="{{ route('news') }}">Actualités</a></li>
<li><a href="{{ route('contactus') }}">Nous contacter</a></li>
</ul>
</nav>
<div class="right-menu">
<div class="connect-contain flex">
<p class="active">Bienvenue Charles-Henry</p>
<div class="connect"><a href="#" class="first-btn">&nbsp;</a></div>
<div class="connect"><a href="{{ route('bo.dashboard') }}" class="first-btn">&nbsp;</a></div>
<div class="disconnect active">
<a href="#">
<!-- <svg version="1.1" id="svg-disconnect" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve">
@ -28,7 +28,7 @@
</g>
</g>
</svg> -->
<img src="../assets/images/stop.png" alt="Déconnexion">
<img src="{{ asset('images/stop.png') }}" alt="Déconnexion">
</a>
</div>
</div>
@ -60,7 +60,7 @@
</g>
</g>
</svg> -->
<img src="../assets/images/stop.png" alt="Déconnexion">
<img src="{{ asset('images/stop.png') }}" alt="Déconnexion">
</a>
<a href="#" class="mobile-search">
<svg version="1.1" id="svg-search" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="590.556px" height="590.556px" viewBox="0 0 590.556 590.556" style="enable-background:new 0 0 590.556 590.556;" xml:space="preserve">

View file

@ -1,25 +1,25 @@
<!DOCTYPE html>
<html lang="{{ str_replace('_', '-', app()->getLocale()) }}">
<head>
<link rel="icon" href="./assets/images/favicon.png" type="image/png">
<link rel="icon" sizes="32x32" href="./assets/images/favicon-32.png" type="image/png">
<link rel="icon" sizes="64x64" href="./assets/images/favicon-64.png" type="image/png">
<link rel="icon" sizes="96x96" href="./assets/images/favicon-96.png" type="image/png">
<link rel="icon" sizes="196x196" href="./assets/images/favicon-196.png" type="image/png">
<link rel="apple-touch-icon" sizes="152x152" href="./assets/images/apple-touch-icon.png">
<link rel="apple-touch-icon" sizes="60x60" href="./assets/images/apple-touch-icon-60x60.png">
<link rel="apple-touch-icon" sizes="76x76" href="./assets/images/apple-touch-icon-76x76.png">
<link rel="apple-touch-icon" sizes="114x114" href="./assets/images/apple-touch-icon-114x114.png">
<link rel="apple-touch-icon" sizes="120x120" href="./assets/images/apple-touch-icon-120x120.png">
<link rel="apple-touch-icon" sizes="144x144" href="./assets/images/apple-touch-icon-144x144.png">
<meta name="msapplication-TileImage" content="./assets/images/favicon-144.png">
<link rel="icon" href="{{ asset('images/favicon.png') }}" type="image/png">
<link rel="icon" sizes="32x32" href="{{ asset('images/favicon-32.png') }}" type="image/png">
<link rel="icon" sizes="64x64" href="{{ asset('images/favicon-64.png') }}" type="image/png">
<link rel="icon" sizes="96x96" href="{{ asset('images/favicon-96.png') }}" type="image/png">
<link rel="icon" sizes="196x196" href="{{ asset('images/favicon-196.png') }}" type="image/png">
<link rel="apple-touch-icon" sizes="152x152" href="{{ asset('images/apple-touch-icon.png') }}">
<link rel="apple-touch-icon" sizes="60x60" href="{{ asset('images/apple-touch-icon-60x60.png') }}">
<link rel="apple-touch-icon" sizes="76x76" href="{{ asset('images/apple-touch-icon-76x76.png') }}">
<link rel="apple-touch-icon" sizes="114x114" href="{{ asset('images/apple-touch-icon-114x114.png') }}">
<link rel="apple-touch-icon" sizes="120x120" href="{{ asset('images/apple-touch-icon-120x120.png') }}">
<link rel="apple-touch-icon" sizes="144x144" href="{{ asset('images/apple-touch-icon-144x144.png') }}">
<meta name="msapplication-TileImage" content="{{ asset('images/favicon-144.png') }}">
<meta name="msapplication-TileColor" content="#FFFFFF">
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="./node_modules/@fortawesome/fontawesome-free/css/all.min.css">
<link rel="stylesheet" href="https://unpkg.com/swiper/swiper-bundle.css" />
<link rel="stylesheet" href="https://unpkg.com/swiper/swiper-bundle.min.css" />
<link rel='stylesheet' id='style-css' href='./assets/css/style.css' type='text/css' media='all'/>
<link rel='stylesheet' id='style-css' href="{{ asset('css/style.css') }}" type='text/css' media='all'/>
<script src="https://code.jquery.com/jquery-3.5.1.min.js"></script>
<title>Jeusselin</title>
</head>
@ -41,5 +41,5 @@
<!-- <script src="./node_modules/swiper/swiper-bundle.min.js"></script> -->
<script src="https://unpkg.com/swiper/swiper-bundle.js"></script>
<script src="https://unpkg.com/swiper/swiper-bundle.min.js"></script>
<script type="text/javascript" src="./assets/js/main.js"></script>
<script type="text/javascript" src="{{ asset('js/main.js') }}"></script>
</html>

View file

@ -0,0 +1,34 @@
<!DOCTYPE html>
<html lang="{{ str_replace('_', '-', app()->getLocale()) }}">
<head>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
<script src="https://code.jquery.com/jquery-3.5.1.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js" integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous"></script>
<script type="text/javascript" src="{{ asset('js/auth.js') }}"></script>
<style>
.vertical-center {
min-height: 100%; /* Fallback for browsers do NOT support vh unit */
min-height: 100vh; /* These two lines are counted as one :-) */
display: flex;
align-items: center;
}
</style>
<title>Jeusselin</title>
</head>
<body>
<div id="app" class="container">
{{-- @include('layouts.auth-header') --}}
</div>
@yield('content')
<div class="container">
{{-- @include('layouts.auth-footer') --}}
<div class="pageup"><a href="#"><i class="fas fa-arrow-circle-up"></i></a></div>
</div>
</div>
@yield('scripts')
</body>
</html>

View file

@ -12,6 +12,10 @@
<!-- Scripts -->
{{-- TODO : Ajouter jQuery dans app.js --}}
<script src="https://code.jquery.com/jquery-3.5.1.min.js" integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin="anonymous"></script>
{{-- TODO : Ajouter CKEditor dans app.js --}}
<script src="https://cdn.ckeditor.com/ckeditor5/23.0.0/classic/ckeditor.js"></script>
{{-- TODO : Voir l'inclusion de Font Awesome, pour le moment c'est fait avec mon compte FA --}}
<script src="https://kit.fontawesome.com/2327d60f96.js" crossorigin="anonymous"></script>
<!-- Fonts -->
<link rel="dns-prefetch" href="//fonts.gstatic.com">
@ -41,24 +45,20 @@
<!-- Right Side Of Navbar -->
<ul class="navbar-nav ml-auto">
<!-- Authentication Links -->
@guest
<li class="nav-item">
<a class="nav-link" href="{{ route('login') }}">Connexion</a>
</li>
@else
@auth
<li class="nav-item dropdown">
<a id="navbarDropdown" class="nav-link dropdown-toggle" href="#" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" v-pre>
Bonjour {{ Auth::user()->firstname }} <span class="caret"></span>
</a>
<div class="dropdown-menu dropdown-menu-right" aria-labelledby="navbarDropdown">
<a class="dropdown-item" href="{{ route('logout') }}"
<a class="dropdown-item" href="#"
onclick="event.preventDefault();
document.getElementById('logout-form').submit();">
Déconnexion
</a>
<form id="logout-form" action="{{ route('logout') }}" method="POST" style="display: none;">
<form id="logout-form" action="{{route('logout')}}" method="POST" style="display: none;">
@csrf
</form>
</div>
@ -75,118 +75,16 @@
<div class="col-md-2">
<nav class="nav flex-column sticky-top">
<a class="nav-link" href="{{route('bo.dashboard')}}">Tableau de bord</a>
<a class="nav-link" href="{{route('bo.users.index')}}">Utilisateurs</a>
<a class="nav-link" href="{{route('bo.users.index')}}">Users</a>
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" data-toggle="dropdown" href="#" role="button">Les produits</a>
<a class="nav-link dropdown-toggle" data-toggle="dropdown" href="#" role="button">Drop</a>
<div class="dropdown-menu">
{{--<a class="dropdown-item" href="{{route('bo.products.index')}}">Tous les produits</a>
<a class="dropdown-item" href="{{route('bo.products.create')}}">Ajouter</a>
<div class="dropdown-divider"></div>
<a class="dropdown-item" href="{{route('bo.ranges.index')}}">Toutes les gammes</a>
<a class="dropdown-item" href="{{route('bo.ranges.create')}}">Ajouter</a>
<div class="dropdown-divider"></div>
<a class="dropdown-item" href="{{route('bo.product-pictograms.index')}}">Gestion des pictos</a>
<div class="dropdown-divider"></div>
<a class="dropdown-item" href="{{route('bo.consumption-times.index')}}">Moments conso.</a>
<div class="dropdown-divider"></div>
<a class="dropdown-item" href="{{route('bo.meat-types.index')}}">Types de viandes</a>--}}
<a class="dropdown-item" href="#_">Item 1</a>
<a class="dropdown-item" href="#_">Item 2</a>
</div>
</li>
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" data-toggle="dropdown" href="#" role="button">Oui c'est bon</a>
<div class="dropdown-menu">
{{--<a class="dropdown-item" href="{{route('bo.ocb.content', 'volaille')}}">Contenus Volaille</a>
<a class="dropdown-item" href="{{route('bo.ocb.content', 'oeuf')}}">Contenus Oeuf</a>
<a class="dropdown-item" href="{{route('bo.ocb.content', 'lapin')}}">Contenus Lapin</a>
<a class="dropdown-item" href="{{route('bo.ocb.create')}}">Ajouter</a>--}}
</div>
</li>
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" data-toggle="dropdown" href="#" role="button">Les éleveurs OCB</a>
<div class="dropdown-menu">
{{--<a class="dropdown-item" href="{{route('bo.breeders.content', 'volaille')}}">Éleveurs Volaille</a>
<a class="dropdown-item" href="{{route('bo.breeders.content', 'oeuf')}}">Éleveurs Oeuf</a>
<a class="dropdown-item" href="{{route('bo.breeders.content', 'lapin')}}">Éleveurs Lapin</a>
<a class="dropdown-item" href="{{route('bo.breeders.create')}}">Ajouter un éleveur</a>--}}
</div>
</li>
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" data-toggle="dropdown" href="#" role="button">La marque</a>
<div class="dropdown-menu">
{{--<a class="dropdown-item" href="{{route('bo.ads.index')}}">La saga publicitaire</a>
<a class="dropdown-item" href="{{route('bo.ads.create')}}">Ajouter une vidéo</a>--}}
</div>
</li>
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" data-toggle="dropdown" href="#" role="button">Sliders</a>
<div class="dropdown-menu">
{{--<a class="dropdown-item" href="{{route('bo.home-slider-pictures.index')}}">Slider de l'accueil</a>
<a class="dropdown-item" href="{{route('bo.home-slider-pictures.create')}}">Ajouter</a>
<div class="dropdown-divider"></div>
<a class="dropdown-item" href="{{route('bo.news-slider-pictures.index')}}">Slider des actus</a>
<a class="dropdown-item" href="{{route('bo.news-slider-pictures.create')}}">Ajouter</a>
<div class="dropdown-divider"></div>
<a class="dropdown-item" href="{{route('bo.product-slider-pictures.index')}}">Slider des produits</a>
<a class="dropdown-item" href="{{route('bo.product-slider-pictures.create')}}">Ajouter</a>--}}
</div>
</li>
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" data-toggle="dropdown" href="#" role="button">Les recettes</a>
<div class="dropdown-menu">
{{--<a class="dropdown-item" href="{{route('bo.recipes.highlights')}}">Les recettes mise en avant</a>
<a class="dropdown-item" href="{{route('bo.recipes.index')}}">Toutes les recettes</a>
<a class="dropdown-item" href="{{route('bo.recipes.create')}}">Ajouter</a>--}}
</div>
</li>
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" data-toggle="dropdown" href="#" role="button">Menus équilibrés</a>
<div class="dropdown-menu">
{{--<a class="dropdown-item" href="{{route('bo.balanced-menus.index')}}">Tous les menus</a>
<a class="dropdown-item" href="{{route('bo.balanced-menus.create')}}">Ajouter</a>--}}
</div>
</li>
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" data-toggle="dropdown" href="#" role="button">Les articles</a>
<div class="dropdown-menu">
{{--<a class="dropdown-item" href="{{route('bo.articles.index')}}">Tous les articles</a>
<a class="dropdown-item" href="{{route('bo.articles.create')}}">Ajouter</a>--}}
</div>
</li>
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" data-toggle="dropdown" href="#" role="button">En ce moment</a>
<div class="dropdown-menu">
{{--<a class="dropdown-item" href="{{route('bo.moments.index')}}">Tous les moments</a>
<a class="dropdown-item" href="{{route('bo.moments.create')}}">Ajouter</a>--}}
</div>
</li>
{{--<a class="nav-link" href="{{route('bo.reductions.index')}}">Les réductions</a>--}}
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" data-toggle="dropdown" href="#" role="button">Les QR codes</a>
<div class="dropdown-menu">
{{--<a class="dropdown-item" href="{{route('bo.qr-codes.index')}}">Tous les QR codes</a>
<a class="dropdown-item" href="{{route('bo.qr-codes.create')}}">Ajouter</a>--}}
</div>
</li>
{{--<a class="nav-link" href="{{route('bo.traceability.index')}}">Traçabilités</a>--}}
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" data-toggle="dropdown" href="#" role="button">FAQ</a>
<div class="dropdown-menu">
{{--<a class="dropdown-item" href="{{route('bo.faq-questions.index')}}">Les questions</a>
<a class="dropdown-item" href="{{route('bo.faq-questions.create')}}">Ajouter</a>
<div class="dropdown-divider"></div>
<a class="dropdown-item" href="{{route('bo.faq-themes.index')}}">Les thèmes</a>
<a class="dropdown-item" href="{{route('bo.faq-themes.create')}}">Ajouter</a>--}}
</div>
</li>
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" data-toggle="dropdown" href="#" role="button">Forum</a>
<div class="dropdown-menu">
{{--<a class="dropdown-item" href="{{route('bo.forum-themes')}}">Thèmes</a>
<a class="dropdown-item" href="{{route('bo.manage-forum-themes')}}">Ajouter un thème</a>--}}
</div>
</li>
<a class="nav-link" href="#">Paramètres</a>
<a class="nav-link" href="{{config('app.url')}}" target="_blank">Site legaulois.fr</a>
<a class="nav-link" href="#_">Ressource 2</a>
<a class="nav-link" href="{{route('home')}}" target="_blank">Aller sur le front</a>
</nav>
</div>
<div class="col-md-10">

View file

@ -1,12 +1,5 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Wait</title>
</head>
<body>
@extends('layouts.app')
@section('content')
<img src="{{ asset('images/home/under-construction.png') }}">
</body>
</html>
@endsection

View file

@ -25,7 +25,7 @@
@if (Route::has('login'))
<div class="hidden fixed top-0 right-0 px-6 py-4 sm:block">
@auth
<a href="{{ url('/home') }}" class="text-sm text-gray-700 underline">Home</a>
<a href="{{ url('/dashboard') }}" class="text-sm text-gray-700 underline">Dashboard</a>
@else
<a href="{{ route('login') }}" class="text-sm text-gray-700 underline">Login</a>

View file

@ -12,6 +12,8 @@ use App\Http\Controllers\OurTradeController;
use App\Http\Controllers\CSRController;
use App\Http\Controllers\NewsController;
use App\Http\Controllers\ContactUsController;
use App\Http\Controllers\LegalNoticeController;
use App\Http\Controllers\PrivacyPolicyController;
/*
|--------------------------------------------------------------------------
@ -32,7 +34,7 @@ Auth::routes([
Route::namespace('App\Http\Controllers\Bo')
->prefix('bo')
->name('bo.')
//->middleware(['auth', 'is-admin'])
->middleware(['auth', 'is-admin', 'secu-bo'])
->group(function () {
// Tableau de bord
Route::get('/', [DashboardController::class, 'index'])->name('dashboard');
@ -50,8 +52,10 @@ Route::namespace('App\Http\Controllers\Bo')
// });
Route::get('/', [HomeController::class, 'index'])->name('home');
Route::get('/qui-sommes-nous', [AboutUsController::class, 'index']);
Route::get('/nos-metiers', [OurTradeController::class, 'index']);
Route::get('/rse', [CSRController::class, 'index']);
Route::get('/actualites', [NewsController::class, 'index']);
Route::get('/nous-contacter', [ContactUsController::class, 'index']);
Route::get('/qui-sommes-nous', [AboutUsController::class, 'index'])->name('aboutus');
Route::get('/nos-metiers', [OurTradeController::class, 'index'])->name('ourtrade');
Route::get('/rse', [CSRController::class, 'index'])->name('csr');
Route::get('/actualites', [NewsController::class, 'index'])->name('news');
Route::get('/nous-contacter', [ContactUsController::class, 'index'])->name('contactus');
Route::get('/mentions-legal', [LegalNoticeController::class, 'index'])->name('legalnotice');
Route::get('/politique-de-confidentialite', [PrivacyPolicyController::class, 'index'])->name('privacypolicy');

10
webpack.mix.js vendored
View file

@ -11,7 +11,9 @@ const mix = require('laravel-mix');
|
*/
mix.js('resources/js/app.js', 'public/js')
.postCss('resources/css/app.css', 'public/css', [
//
]);
mix.js('resources/js/app.js', 'public/js').vue()
.sass('resources/sass/app.scss', 'public/css');
mix.js('resources/js/main.js', 'public/js').vue()
.sass('resources/sass/main.scss', 'public/css');