Compare commits

...
Sign in to create a new pull request.

15 commits

Author SHA1 Message Date
Jérémy Munsch
e1b8e1587d
fix breeder issue display 2022-08-05 15:47:49 +02:00
Jérémy Munsch
03370aae78
multiple fixes 2022-08-05 15:34:44 +02:00
Jérémy Munsch
51c77da9c2
correction genré du texte 2022-08-05 13:04:29 +02:00
Jérémy Munsch
8ea567e0c1
Fix farm chicken qdd displqy current breeder 2022-08-05 12:45:00 +02:00
Jérémy Munsch
2e01d91331
Multiple fix retours 2022-08-05 12:40:24 +02:00
Jérémy Munsch
e7f1243204
fix label rouge text typo 2022-08-05 12:00:41 +02:00
Jérémy Munsch
76b3017ad4
changed planet score logo 2022-08-05 11:57:08 +02:00
Jérémy Munsch
02bbb957cf
Decoupage des putins de vignettes + responsive work poultry show + fix cereal local link 2022-08-05 11:50:14 +02:00
Jérémy Munsch
084fd1b81a
add missing titles 2022-08-05 11:06:59 +02:00
Jérémy Munsch
77b29ab6ad
Responsive on display labels poultry show 2022-08-05 11:06:38 +02:00
Jérémy Munsch
e651c06123
Fix alert JS : display only on egg 2022-08-05 10:43:46 +02:00
Jérémy Munsch
7015460b4c
phpcs fix 2022-08-05 10:07:03 +02:00
Jérémy Munsch
f6cc4a33a3
remove unsued store and update breeders requests 2022-08-05 10:05:00 +02:00
Jérémy Munsch
e954fc9774
tracea fix typo on no product found 2022-08-05 10:02:14 +02:00
Jérémy Munsch
96fa1afb53
npm audit fix 2022-08-05 10:00:41 +02:00
41 changed files with 254 additions and 385 deletions

View file

@ -13,6 +13,11 @@ use Carbon\Carbon;
class EggController extends Controller
{
/**
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Contracts\View\View|\Illuminate\Contracts\View\Factory|\Illuminate\Http\RedirectResponse
*/
public function findMyBox(Request $request)
{
$code = $request->code;
@ -31,6 +36,11 @@ class EggController extends Controller
return redirect()->route('egg.FrontPage', ['id' => $moba->box_code]);
}
/**
*
* @param mixed $id
* @return \Illuminate\Routing\Redirector|\Illuminate\Http\RedirectResponse|\Illuminate\Contracts\View\View|\Illuminate\Contracts\View\Factory
*/
public function indexId($id)
{
$multiple = false;
@ -61,11 +71,11 @@ class EggController extends Controller
$dcrGood = $date_today < $date_dcr;
$eleveurs = CafelEggBreeder::whereIn('ede_code', $edes)->get();
if (!$eleveurs->count()) {
return view('front.egg.notFound');
}
$uniqueEleveurs = $eleveurs->unique('code_ede');
if (count($uniqueEleveurs) > 1) {
$multiple = true;
@ -99,7 +109,13 @@ class EggController extends Controller
]);
}
public function EleveurPortrait($id, $eleveurId)
/**
*
* @param mixed $id
* @param mixed $eleveurId
* @return \Illuminate\Contracts\View\View|\Illuminate\Contracts\View\Factory
*/
public function eleveurPortrait($id, $eleveurId)
{
$dateToday = Carbon::now()->toArray();
$currentYear = $dateToday['year'];

View file

@ -23,21 +23,21 @@ class TraceaPoultryController extends Controller
/** @var \App\Models\TraceaPoultry|null */
$traceaPoultry = TraceaPoultry::whereExternalCodeLot($request->codelot)
->where(function ($q) use ($request) {
if ($request->eancode[0] === "0") {
$code = Str::substr($request->eancode, 1);
$q->where('barcode_price', 'LIKE', Str::limit($code, 6, '') . '%')
->orWhere('barcode_weight', 'LIKE', Str::limit($code, 6, '') . '%');
} else {
$q->where('barcode_price', 'LIKE', Str::limit($request->eancode, 7, '') . '%')
->orWhere('barcode_weight', 'LIKE', Str::limit($request->eancode, 7, '') . '%');
}
if ($request->eancode[0] === "0") {
$code = Str::substr($request->eancode, 1);
$q->where('barcode_price', 'LIKE', Str::limit($code, 6, '') . '%')
->orWhere('barcode_weight', 'LIKE', Str::limit($code, 6, '') . '%');
} else {
$q->where('barcode_price', 'LIKE', Str::limit($request->eancode, 7, '') . '%')
->orWhere('barcode_weight', 'LIKE', Str::limit($request->eancode, 7, '') . '%');
}
})->first();
if (!$traceaPoultry) {
return back()->with(
'warning',
// phpcs:ignore Generic.Files.LineLength.TooLong
trans('Aucun produit n\'a pu être trouvé avec ces informations. Vérifiez bien les numéros saisis avec les indication comme sur l\'image ci-dessous.')
trans('Aucun produit n\'a pu être trouvé avec ces informations. Vérifiez bien les numéros saisis avec les indications comme sur l\'image ci-dessous.')
);
}

View file

@ -33,7 +33,7 @@ class Kernel extends HttpKernel
\App\Http\Middleware\EncryptCookies::class,
\Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
\Illuminate\Session\Middleware\StartSession::class,
// \Illuminate\Session\Middleware\AuthenticateSession::class,
\Illuminate\Session\Middleware\AuthenticateSession::class,
\Illuminate\View\Middleware\ShareErrorsFromSession::class,
\App\Http\Middleware\VerifyCsrfToken::class,
\Illuminate\Routing\Middleware\SubstituteBindings::class,

View file

@ -1,103 +0,0 @@
<?php
namespace App\Http\Requests;
use App\Enums\BreederCivilty;
use App\Models\CafelEggBreeder;
use Illuminate\Foundation\Http\FormRequest;
use Kwaadpepper\Enum\Rules\EnumIsValidRule;
class StoreEleveurRequest extends FormRequest
{
/**
* Determine if the user is authorized to make this request.
*
* @return boolean
*/
public function authorize()
{
$this->merge([
'code_inuav' => explode(',', $this->code_inuav)
]);
return auth()->check();
}
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
// TODO: add validation rules using CAFEL API standards.
return [
'code_cafel' => 'nullable|string|min:1|max:100|unique:eleveurs,code_cafel',
'code_ede' => 'required|string|min:1|max:100|unique:eleveurs,code_ede',
'civilite' => ['required', new EnumIsValidRule(BreederCivilty::class)],
'nom' => 'required|string|min:1|max:255',
'prenom' => 'required|string|min:1|max:255',
'naissance' => 'required|date_format:Y-m-d',
'cp' => 'required|numeric|digits:5',
'ville' => 'required|string|min:1|max:255',
'elv_date_debut' => 'nullable|date_format:Y-m-d',
'code_inuav' => [
'array', function ($attribute, $value, $fail) {
if (\strlen(\json_encode($value)) > 255) {
$fail("$attribute : il n'\est pas possible de renseigner autant de code INUAV");
}
}
],
'code_inuav.*' => [
// @phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.FoundInExtendedClassBeforeLastUsed
function ($attribute, $value, $fail) {
if (strpos(trim($value), ' ') !== false) {
$fail(trans('Les espaces ne sont pas autorisés dans les codes INUAV'));
}
if (count($this->code_inuav) > count(array_unique($this->code_inuav))) {
$fail(trans('Les codes INUAVS doinvent être uniques'));
}
$q = CafelEggBreeder::query();
$q->where(function ($q) {
foreach ($this->code_inuav as $inuav) {
$q->orWhere('code_inuav', 'LIKE', "%$inuav%");
}
});
// * Update condition
if ($this->eleveur) {
$q->where('id', '!=', $this->eleveur->id);
}
if ($q->count()) {
$fail(trans('Les codes INUAVS doinvent être uniques'));
}
}
],
'exploitation' => 'nullable|string',
'aboutyou' => 'nullable|string',
'vocation' => 'nullable|string',
'likeinjob' => 'nullable|string',
'loue_means' => 'nullable|string',
'photo1' => 'sometimes|mimetypes:image/jpeg|max:1000',
'photo2' => 'sometimes|mimetypes:image/jpeg|max:1000',
'marquage_oeuf' => 'required|string|max:12',
'marquage_b1' => 'required|string|max:14',
'marquage_b2' => 'required|string|max:14',
];
}
/**
* Get the error messages for the defined validation rules.
*
* @return array
*/
public function messages()
{
return [
'photo1.max' => 'La Photo 1 ne doit pas dépasser 500 Ko',
'photo1.uploaded' => 'La Photo 1 ne doit pas dépasser 500 Ko',
'photo1.mimetypes' => 'La Photo 1 doit être un jpg',
'photo2.max' => 'La Photo 2 ne doit pas dépasser 500 Ko',
'photo2.mimetypes' => 'La Photo 2 doit être un jpg',
'photo2.uploaded' => 'La Photo 2 ne doit pas dépasser 500 Ko',
];
}
}

View file

@ -1,19 +0,0 @@
<?php
namespace App\Http\Requests;
class UpdateEleveurRequest extends StoreEleveurRequest
{
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
return \array_merge(parent::rules(), [
'code_cafel' => 'nullable|string|min:1|max:100|unique:eleveurs,code_cafel,' . $this->eleveur->id,
'code_ede' => 'required|string|min:1|max:100|unique:eleveurs,code_ede,' . $this->eleveur->id
]);
}
}

View file

@ -27,7 +27,7 @@ class AppServiceProvider extends ServiceProvider
public function boot()
{
URL::forceScheme('https');
// * HA PROXY FIX
App::singleton('clientIp', function () {
if (config('app.env') === 'local') {

View file

@ -11,9 +11,7 @@ class AuthServiceProvider extends ServiceProvider
*
* @var array
*/
protected $policies = [
// 'App\Model' => 'App\Policies\ModelPolicy',
];
protected $policies = [];
/**
* Register any authentication / authorization services.

View file

@ -18,14 +18,4 @@ class EventServiceProvider extends ServiceProvider
SendEmailVerificationNotification::class,
],
];
/**
* Register any events for your application.
*
* @return void
*/
public function boot()
{
parent::boot();
}
}

View file

@ -13,6 +13,5 @@ class DatabaseSeeder extends Seeder
*/
public function run()
{
// $this->call(UsersTableSeeder::class);
}
}

180
package-lock.json generated
View file

@ -1,9 +1,10 @@
{
"name": "srcs",
"name": "bogt",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"name": "bogt",
"dependencies": {
"sweetalert2": "^11.4.20"
},
@ -1760,6 +1761,30 @@
"node": ">=6.0.0"
}
},
"node_modules/@jridgewell/source-map": {
"version": "0.3.2",
"resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.2.tgz",
"integrity": "sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==",
"dev": true,
"dependencies": {
"@jridgewell/gen-mapping": "^0.3.0",
"@jridgewell/trace-mapping": "^0.3.9"
}
},
"node_modules/@jridgewell/source-map/node_modules/@jridgewell/gen-mapping": {
"version": "0.3.2",
"resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz",
"integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==",
"dev": true,
"dependencies": {
"@jridgewell/set-array": "^1.0.1",
"@jridgewell/sourcemap-codec": "^1.4.10",
"@jridgewell/trace-mapping": "^0.3.9"
},
"engines": {
"node": ">=6.0.0"
}
},
"node_modules/@jridgewell/sourcemap-codec": {
"version": "1.4.13",
"resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.13.tgz",
@ -5066,9 +5091,9 @@
}
},
"node_modules/html-minifier-terser/node_modules/terser": {
"version": "4.8.0",
"resolved": "https://registry.npmjs.org/terser/-/terser-4.8.0.tgz",
"integrity": "sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw==",
"version": "4.8.1",
"resolved": "https://registry.npmjs.org/terser/-/terser-4.8.1.tgz",
"integrity": "sha512-4GnLC0x667eJG0ewJTa6z/yXrbLGv80D9Ru6HIpCQmO+Q4PfEtBFi0ObSckqwL6VyQv/7ENJieXHo2ANmdQwgw==",
"dev": true,
"dependencies": {
"commander": "^2.20.0",
@ -5847,12 +5872,6 @@
"integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=",
"dev": true
},
"node_modules/lodash.sortby": {
"version": "4.7.0",
"resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz",
"integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=",
"dev": true
},
"node_modules/lodash.uniq": {
"version": "4.5.0",
"resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz",
@ -8453,14 +8472,14 @@
}
},
"node_modules/terser": {
"version": "5.13.1",
"resolved": "https://registry.npmjs.org/terser/-/terser-5.13.1.tgz",
"integrity": "sha512-hn4WKOfwnwbYfe48NgrQjqNOH9jzLqRcIfbYytOXCOv46LBfWr9bDS17MQqOi+BWGD0sJK3Sj5NC/gJjiojaoA==",
"version": "5.14.2",
"resolved": "https://registry.npmjs.org/terser/-/terser-5.14.2.tgz",
"integrity": "sha512-oL0rGeM/WFQCUd0y2QrWxYnq7tfSuKBiqTjRPWrRgB46WD/kiwHwF8T23z78H6Q6kGCuuHcPB+KULHRdxvVGQA==",
"dev": true,
"dependencies": {
"@jridgewell/source-map": "^0.3.2",
"acorn": "^8.5.0",
"commander": "^2.20.0",
"source-map": "~0.8.0-beta.0",
"source-map-support": "~0.5.20"
},
"bin": {
@ -8528,18 +8547,6 @@
"integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==",
"dev": true
},
"node_modules/terser/node_modules/source-map": {
"version": "0.8.0-beta.0",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.8.0-beta.0.tgz",
"integrity": "sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==",
"dev": true,
"dependencies": {
"whatwg-url": "^7.0.0"
},
"engines": {
"node": ">= 8"
}
},
"node_modules/thunky": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz",
@ -8594,24 +8601,6 @@
"node": ">=0.6"
}
},
"node_modules/tr46": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz",
"integrity": "sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=",
"dev": true,
"dependencies": {
"punycode": "^2.1.0"
}
},
"node_modules/tr46/node_modules/punycode": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
"integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==",
"dev": true,
"engines": {
"node": ">=6"
}
},
"node_modules/tslib": {
"version": "2.4.0",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz",
@ -8857,12 +8846,6 @@
"minimalistic-assert": "^1.0.0"
}
},
"node_modules/webidl-conversions": {
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz",
"integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==",
"dev": true
},
"node_modules/webpack": {
"version": "5.72.0",
"resolved": "https://registry.npmjs.org/webpack/-/webpack-5.72.0.tgz",
@ -9241,17 +9224,6 @@
"node": ">=0.8.0"
}
},
"node_modules/whatwg-url": {
"version": "7.1.0",
"resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz",
"integrity": "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==",
"dev": true,
"dependencies": {
"lodash.sortby": "^4.7.0",
"tr46": "^1.0.1",
"webidl-conversions": "^4.0.2"
}
},
"node_modules/which": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
@ -10601,6 +10573,29 @@
"integrity": "sha512-Ct5MqZkLGEXTVmQYbGtx9SVqD2fqwvdubdps5D3djjAkgkKwT918VNOz65pEHFaYTeWcukmJmH5SwsA9Tn2ObQ==",
"dev": true
},
"@jridgewell/source-map": {
"version": "0.3.2",
"resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.2.tgz",
"integrity": "sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==",
"dev": true,
"requires": {
"@jridgewell/gen-mapping": "^0.3.0",
"@jridgewell/trace-mapping": "^0.3.9"
},
"dependencies": {
"@jridgewell/gen-mapping": {
"version": "0.3.2",
"resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz",
"integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==",
"dev": true,
"requires": {
"@jridgewell/set-array": "^1.0.1",
"@jridgewell/sourcemap-codec": "^1.4.10",
"@jridgewell/trace-mapping": "^0.3.9"
}
}
}
},
"@jridgewell/sourcemap-codec": {
"version": "1.4.13",
"resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.13.tgz",
@ -13240,9 +13235,9 @@
"dev": true
},
"terser": {
"version": "4.8.0",
"resolved": "https://registry.npmjs.org/terser/-/terser-4.8.0.tgz",
"integrity": "sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw==",
"version": "4.8.1",
"resolved": "https://registry.npmjs.org/terser/-/terser-4.8.1.tgz",
"integrity": "sha512-4GnLC0x667eJG0ewJTa6z/yXrbLGv80D9Ru6HIpCQmO+Q4PfEtBFi0ObSckqwL6VyQv/7ENJieXHo2ANmdQwgw==",
"dev": true,
"requires": {
"commander": "^2.20.0",
@ -13818,12 +13813,6 @@
"integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=",
"dev": true
},
"lodash.sortby": {
"version": "4.7.0",
"resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz",
"integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=",
"dev": true
},
"lodash.uniq": {
"version": "4.5.0",
"resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz",
@ -15731,14 +15720,14 @@
"dev": true
},
"terser": {
"version": "5.13.1",
"resolved": "https://registry.npmjs.org/terser/-/terser-5.13.1.tgz",
"integrity": "sha512-hn4WKOfwnwbYfe48NgrQjqNOH9jzLqRcIfbYytOXCOv46LBfWr9bDS17MQqOi+BWGD0sJK3Sj5NC/gJjiojaoA==",
"version": "5.14.2",
"resolved": "https://registry.npmjs.org/terser/-/terser-5.14.2.tgz",
"integrity": "sha512-oL0rGeM/WFQCUd0y2QrWxYnq7tfSuKBiqTjRPWrRgB46WD/kiwHwF8T23z78H6Q6kGCuuHcPB+KULHRdxvVGQA==",
"dev": true,
"requires": {
"@jridgewell/source-map": "^0.3.2",
"acorn": "^8.5.0",
"commander": "^2.20.0",
"source-map": "~0.8.0-beta.0",
"source-map-support": "~0.5.20"
},
"dependencies": {
@ -15747,15 +15736,6 @@
"resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
"integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==",
"dev": true
},
"source-map": {
"version": "0.8.0-beta.0",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.8.0-beta.0.tgz",
"integrity": "sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==",
"dev": true,
"requires": {
"whatwg-url": "^7.0.0"
}
}
}
},
@ -15827,23 +15807,6 @@
"integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==",
"dev": true
},
"tr46": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz",
"integrity": "sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=",
"dev": true,
"requires": {
"punycode": "^2.1.0"
},
"dependencies": {
"punycode": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
"integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==",
"dev": true
}
}
},
"tslib": {
"version": "2.4.0",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz",
@ -16055,12 +16018,6 @@
"minimalistic-assert": "^1.0.0"
}
},
"webidl-conversions": {
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz",
"integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==",
"dev": true
},
"webpack": {
"version": "5.72.0",
"resolved": "https://registry.npmjs.org/webpack/-/webpack-5.72.0.tgz",
@ -16322,17 +16279,6 @@
"integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==",
"dev": true
},
"whatwg-url": {
"version": "7.1.0",
"resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz",
"integrity": "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==",
"dev": true,
"requires": {
"lodash.sortby": "^4.7.0",
"tr46": "^1.0.1",
"webidl-conversions": "^4.0.2"
}
},
"which": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2 KiB

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.4 KiB

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.6 KiB

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3 KiB

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.9 KiB

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.2 KiB

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.2 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 608 KiB

After

Width:  |  Height:  |  Size: 580 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 608 KiB

After

Width:  |  Height:  |  Size: 596 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 139 KiB

After

Width:  |  Height:  |  Size: 114 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 33 KiB

After

Width:  |  Height:  |  Size: 47 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 134 KiB

26
resources/js/alert.js vendored
View file

@ -1,14 +1,18 @@
// ES6 Modules or TypeScript
import Swal from 'sweetalert2'
Swal.fire({
width: 235,
imageUrl: '/assets/images/logo_bogt.png',
imageWidth: 200,
imageHeight: 200,
imageAlt: 'Logo Loué terre d\'action',
background: '#4b8764',
confirmButtonText: '<a href="https://www.loue.fr/article/Des-arbres-et-des-haies-pour-les-volailles-fermières-de-Loué/a3.aspx" target="_blank">Je valide mon achat</a>',
confirmButtonColor: '#005621',
showCloseButton: true,
})
document.addEventListener('DOMContentLoaded', () => {
if (document.getElementsByClassName('oldEgg').length) {
Swal.fire({
width: 235,
imageUrl: '/assets/images/logo_bogt.png',
imageWidth: 200,
imageHeight: 200,
imageAlt: 'Logo Loué terre d\'action',
background: '#4b8764',
confirmButtonText: '<a href="https://www.loue.fr/article/Des-arbres-et-des-haies-pour-les-volailles-fermières-de-Loué/a3.aspx" target="_blank">Je valide mon achat</a>',
confirmButtonColor: '#005621',
showCloseButton: true,
})
}
})

View file

@ -16,12 +16,12 @@ document.addEventListener('DOMContentLoaded', () => {
next: labelSlider.parentElement.querySelector('.glider-next')
},
responsive: [
{ breakpoint: 325, settings: { slidesToShow: 1.5 } },
{ breakpoint: 400, settings: { slidesToShow: 1.8 } },
{ breakpoint: 500, settings: { slidesToShow: 2 } },
{ breakpoint: 600, settings: { slidesToShow: 2.4 } },
{ breakpoint: 1200, settings: { slidesToShow: 3 } },
{ breakpoint: 1400, settings: { slidesToShow: 3.5 } }
{ breakpoint: 325, settings: { slidesToShow: 2.5 } },
{ breakpoint: 400, settings: { slidesToShow: 2.8 } },
{ breakpoint: 500, settings: { slidesToShow: 3 } },
{ breakpoint: 600, settings: { slidesToShow: 3.4 } },
{ breakpoint: 1200, settings: { slidesToShow: 4 } },
{ breakpoint: 1400, settings: { slidesToShow: 4.5 } }
]
})
}
@ -34,8 +34,10 @@ document.addEventListener('DOMContentLoaded', () => {
next: linksSlider.parentElement.querySelector('.glider-next')
},
responsive: [
{ breakpoint: 400, settings: { slidesToShow: 2 } },
{ breakpoint: 500, settings: { slidesToShow: 2.5 } },
{ breakpoint: 440, settings: { slidesToShow: 2 } },
{ breakpoint: 535, settings: { slidesToShow: 2.5 } },
{ breakpoint: 575, settings: { slidesToShow: 2 } },
{ breakpoint: 625, settings: { slidesToShow: 2.5 } },
{ breakpoint: 1200, settings: { slidesToShow: 3 } },
{ breakpoint: 1400, settings: { slidesToShow: 3.5 } }
]
@ -55,9 +57,7 @@ document.addEventListener('DOMContentLoaded', () => {
behavior: "smooth"
})
}
if (orderNum.imask.value !== orderNum.dataset.orderNumber) {
if (orderNum.imask.value.slice(0, -5) !== orderNum.dataset.orderNumber) {
orderInvalid.classList.add('d-block')
orderExp.classList.add('d-none')
orderNum.imask.masked.reset()

View file

@ -1,10 +1,16 @@
$boMenuHeigth: 3rem;
$boDarkBg: rgb(55, 55, 55);
$greyBG: darken($color:gray, $amount: 10);
$breedingGreen: darken($color:#78ba56, $amount: 17.7);
$greyBG: darken(
$color: #a9afac,
$amount: 10,
);
$breedingGreen: darken(
$color: #78ba56,
$amount: 17.7,
);
$purpleInfo: #282649;
$bgSalmon :#ffe8cd;
$bgSalmon: #ffe8cd;
$beaGreen: #008c35;
$foodYellow: #f7bc3d;
$contactRed: #e62a30;

View file

@ -1,7 +1,7 @@
body {
background: url('~@/images/layout/body_bg.jpg');
background: url("~@/images/layout/body_bg.jpg");
--bs-body-font-family: 'Myriad Pro';
--bs-body-font-family: "Myriad Pro";
& > header {
& > img {
@ -14,12 +14,13 @@ body {
background-color: $white;
min-height: 10rem;
border-radius: 0 0 1rem 1rem;
box-shadow: -0.5rem 0px 0.4rem -0.4rem transparentize($color: $black, $amount: 0.6) inset, 0.5rem 0px 0.4rem -0.4rem transparentize($color: $black, $amount: 0.6) inset;
box-shadow: -0.5rem 0px 0.4rem -0.4rem transparentize($color: $black, $amount: 0.6) inset,
0.5rem 0px 0.4rem -0.4rem transparentize($color: $black, $amount: 0.6) inset;
font-size: 1.2rem;
&.oldEgg {
background-color:inherit;
box-shadow:inherit;
background-color: inherit;
box-shadow: inherit;
padding-left: 0;
padding-right: 0;
@ -30,7 +31,7 @@ body {
}
& > .header {
background-image: url('~@/images/layout/header_matter_effet.png');
background-image: url("~@/images/layout/header_matter_effet.png");
background-repeat: no-repeat;
background-size: 100% 100%;
min-height: 7.5rem;
@ -101,7 +102,10 @@ body {
background-color: $footer_bg !important;
}
.badge-loue-yellow,.badge-loue-food,.badge-loue-green,.badge-loue-gray {
.badge-loue-yellow,
.badge-loue-food,
.badge-loue-green,
.badge-loue-gray {
border: none;
text-align: center;
outline: none;
@ -138,7 +142,7 @@ body {
background-color: $white;
overflow: hidden;
&:after {
content: '';
content: "";
position: absolute;
top: -15%;
left: -45%;
@ -148,7 +152,7 @@ body {
transform: rotate(-45deg);
}
&:before {
content: ' ';
content: " ";
position: absolute;
top: -60%;
left: -45%;
@ -192,7 +196,7 @@ body {
.text-arrow {
position: relative;
display: inline-block;
background-image: url('~@/images/layout/arrow_bg.png');
background-image: url("~@/images/layout/arrow_bg.png");
background-repeat: no-repeat;
background-size: 100% auto;
background-color: $greyBG;
@ -204,7 +208,7 @@ body {
overflow: hidden;
&:after {
content: '';
content: "";
position: absolute;
top: -50%;
right: -1rem;
@ -214,7 +218,7 @@ body {
transform: rotate(-25deg);
}
&:before {
content: '';
content: "";
position: absolute;
top: 0%;
right: -1rem;
@ -257,7 +261,7 @@ body {
position: relative;
padding: 1rem;
&::after {
content: ' ';
content: " ";
color: $white;
position: absolute;
top: 50%;
@ -269,10 +273,10 @@ body {
border-radius: 1.5rem;
}
&.A::after {
content: 'A';
content: "A";
}
&.B::after {
content: 'B';
content: "B";
}
}
@ -365,16 +369,17 @@ span.textDistriResult {
padding-left: 1.5rem;
padding-right: 1.5rem;
&:focus-visible {
border: 2px solid rgb(13, 110, 253)
border: 2px solid rgb(13, 110, 253);
}
& > .glider {
&:focus-visible {
border: 2px solid rgb(13, 110, 253)
border: 2px solid rgb(13, 110, 253);
}
}
& > .glider-prev, & > .glider-next {
& > .glider-prev,
& > .glider-next {
top: 50%;
transform: translateY(-50%);
font-size: 5rem;
@ -388,13 +393,13 @@ span.textDistriResult {
& > .glider-prev {
left: -1rem;
&:focus-visible {
border: 2px solid rgb(13, 110, 253)
border: 2px solid rgb(13, 110, 253);
}
}
& > .glider-next {
right: -1rem;
&:focus-visible {
border: 2px solid rgb(13, 110, 253)
border: 2px solid rgb(13, 110, 253);
}
}
&.labels .glider-slide {
@ -410,14 +415,19 @@ span.textDistriResult {
transform: translateX(-50%) translateY(-50%);
max-width: inherit;
object-fit: contain;
height: 7rem;
height: 5rem;
max-width: 7.54rem;
@include media-breakpoint-up(md) {
height: 7rem;
max-width: 8.54rem;
}
}
}
&.links .glider-slide {
& > .blue-card {
display: flex;
flex-direction: column;
justify-content: center;
justify-content: end;
text-align: center;
background-color: $blue;
border-radius: 1rem;
@ -428,6 +438,13 @@ span.textDistriResult {
min-height: 7rem;
object-fit: contain;
width: auto;
flex-grow: 1;
}
& > span {
word-wrap: normal !important;
word-break: normal !important;
hyphens: unset;
line-height: 1.4rem;
}
}
}

View file

@ -25,13 +25,13 @@
& > span {
position: absolute;
top: -0.4rem;
right: 31%;
right: 32.5%;
transform: translateX(100%) translateY(0%);
font-size: 21vw;
font-size: 5rem;
font-weight: bold;
font-family: Arial, Helvetica, sans-serif;
@include media-breakpoint-up(sm) {
font-size: 8rem;
@media (max-width: 360px) {
font-size: 21vw !important;
}
}
}

View file

@ -52,7 +52,7 @@ $previousUrl = session()->get('poultrySearch.model') ? route('poultry.show') : r
'lastname' => Str::upper($breeder->lastname)
]) }}" class="img-fluid">
</div>
<span>{{ __('L\'éleveur(se) n\'a pas souhaité être pris en photo') }}</span>
<span>{{ __('L\'éleveur(se) n\'a pas souhaité être pris(e) en photo') }}</span>
<div class="dots"></div>
</div>
</div>
@ -72,42 +72,49 @@ $previousUrl = session()->get('poultrySearch.model') ? route('poultry.show') : r
</div>
</div>
@if($breeder->issue_1 or $breeder->issue_2)
<div class="row justify-content-center mt-5">
<div class="mt-5">
<div class="glider-issues-nav">
<button aria-label="{{ __('Lien précédent') }}" class="glider-prev">&lsaquo;</button>
<span class="pagination">
<span class="question">{{ __('Question') }}</span>
<span class="pages">
<span class="page">1</span>&nbsp;/&nbsp;2
</span>
<div class="row subpart justify-content-center mt-3">
<div class="glider-issues-nav">
<button aria-label="{{ __('Lien précédent') }}" class="glider-prev">&lsaquo;</button>
<span class="pagination">
<span class="question">{{ __('Question') }}</span>
<span class="pages">
<span class="page">1</span>&nbsp;/&nbsp;2
</span>
<button aria-label="{{ __('Lien suivant') }}" class="glider-next">&rsaquo;</button>
</div>
<div class="glider-container p-0 issues">
<div class="glider">
@if($breeder->issue_1)
<div class="issue">
<span class="d-block p-2 text-light bg-loue-gray text-center fw-bold">
{{ __('Question 1') }}
</span>
<span class="d-block text-loue-breeding issue_answer">
{{ $breeder->issue_1 }}
</span>
</div>
@endif
@if($breeder->issue_2)
<div class="issue">
<span class="d-block p-2 text-light bg-loue-gray text-center fw-bold">
{{ __('Qu’est-ce qui vous plaît votre métier d’éleveur de volailles de Loué ?') }}
</span>
<span class="d-block text-loue-breeding issue_answer">
{{ $breeder->issue_2 }}
</span>
</div>
@endif
</div>
</span>
<button aria-label="{{ __('Lien suivant') }}" class="glider-next">&rsaquo;</button>
</div>
<div class="glider-container p-0 issues">
<div class="glider">
@if($breeder->issue_1)
<div class="issue container p-0">
@php
$issue1 = array_reverse(explode(':', $breeder->issue_1, 2));
@endphp
@if(isset($issue1[1]))
<span class="d-block p-2 text-light bg-loue-gray text-center fw-bold">
{{ trim($issue1[1]) }}
</span>
@endif
<span class="d-block text-center text-loue-breeding issue_answer">
{{ trim($issue1[0]) }}
</span>
</div>
@endif
@if($breeder->issue_2)
<div class="issue container p-0">
@php
$issue2 = array_reverse(explode(':', $breeder->issue_2, 2));
@endphp
@if(isset($issue2[1]))
<span class="d-block p-2 text-light bg-loue-gray text-center fw-bold">
{{ trim($issue2[1]) }}
</span>
@endif
<span class="d-block text-center text-loue-breeding issue_answer">
{{ trim($issue2[0]) }}
</span>
</div>
@endif
</div>
</div>
</div>

View file

@ -21,7 +21,6 @@
@else
<img src="{{ asset('assets/images/parts/generique_portrait.jpg') }}" alt="Éleveur">
@endif
<div class="content">
<p>
<span class="name green">{{$eleveur->firstname}} {{$eleveur->lastname}}</span><br>
@ -30,22 +29,23 @@
@endif
{{$eleveur->city}} ({{$eleveur->postcode}})
</p>
@if ($ageElevage)
@switch($eleveur->civilite)
@case('0')
@case(App\Enums\BreederCivilty::elle())
<p>Éleveuse de poules de Loué depuis {{$ageElevage}} ans</p>
@break
@case('1')
@case(App\Enums\BreederCivilty::il())
<p>Éleveur de poules de Loué depuis {{$ageElevage}} ans</p>
@break
@case('2')
@case(App\Enums\BreederCivilty::elles())
<p>Éleveuses de poules de Loué depuis {{$ageElevage}} ans</p>
@break
@case('3')
@case(App\Enums\BreederCivilty::ils())
<p>Éleveurs de poules de Loué depuis {{$ageElevage}} ans</p>
@break
@default
<p>Éleveur de poules de Loué depuis {{$ageElevage}} ans</p>
<p>Éleveur(se) de poules de Loué depuis {{$ageElevage}} ans</p>
@endswitch
@endif
</div>

View file

@ -46,7 +46,7 @@ $previousUrl = session()->get('poultrySearch.model') ? route('poultry.show') : r
<div class="container pb-4">
<div class="row">
<div class="col text-arial text-center">
<p>{{ __('De l\'éleveur lui-même. Il cultive les céréales qui seront ensuite envoyées à l\'usine d\'aliments de la coopérative des Fermiers de Loué, ALIFEL, pour les transformer en alimentation pour poulets, qui sera ensuite retournée à l\éleveur.') }}</p>
<p>{{ __('De l\'éleveur lui-même. Il cultive les céréales qui seront ensuite envoyées à l\'usine d\'aliments de la coopérative des Fermiers de Loué, ALIFEL, pour les transformer en alimentation pour poulets, qui sera ensuite retournée à l\'éleveur.') }}</p>
</div>
</div>
<div class="row mt-4">

View file

@ -46,14 +46,17 @@
<p>{{ __('Une volaille fermière se doit d’être correctement tracée : de la ferme jusqu’à l’assiette. C’est aussi pour cela que sur tous nos produits nous y retrouvons : le nom de l’éleveur et sa commune.') }}</p>
</div>
</div>
@if(session()->has('poultrySearch.model'))
@php
$breeder = optional(session()->get('poultrySearch.model'))->breeder
@endphp
@if($breeder)
<div class="row mt-3">
<div class="col text-center">
<span class="breederIs">
<span>{{ __('Élevé(e) par: ') }}</span><br>
<span>
<span class="fullname text-break">{{ 'P.' }}&nbsp;{{ 'NOM' }}</span><br>
<span class="city text-break">{{ 'VILLE' }}</span>
<span class="fullname text-uppercase text-break">{{ Str::limit($breeder->firstname, 1, '.') }}&nbsp;{{ $breeder->lastname }}</span><br>
<span class="city text-uppercase text-break">{{ $breeder->city }}</span>
</span>
</span>
</div>

View file

@ -27,7 +27,7 @@ $previousUrl = session()->get('poultrySearch.model') ? route('poultry.show') : r
</div>
<div class="row justify-content-center mt-5">
<div class="col-12 text-center">
<img class="img-fluid smallBea" src="{{ asset('assets/images/bea/Visuel-BEA-II---A-SUPERIEUR.png') }}" alt="{{ __('BEA II A') }}">
<img class="img-fluid smallBea" src="{{ asset('assets/images/bea/Visuel-BEA-II---A-SUPERIEUR.png') }}" alt="{{ __('BEA II A Superieur') }}">
<img class="img-fluid smallBea" src="{{ asset('assets/images/bea/Visuel') }}" alt="{{ __('Image Manquante') }}">
<img class="img-fluid smallBea" src="{{ asset('assets/images/bea/Visuel') }}" alt="{{ __('Image Manquante') }}">
<img class="img-fluid smallBea" src="{{ asset('assets/images/bea/Visuel') }}" alt="{{ __('Image Manquante') }}">

View file

@ -35,7 +35,7 @@ $previousUrl = session()->get('poultrySearch.model') ? route('poultry.show') : r
<div class="container pb-4">
<div class="row">
<div class="col text-arial text-center">
<p>{{ __('Souhaitant protéger un mode d\'élevage historique et un savoir-faire traditionnel, les Fermiers de Loué ont déposé un cahier des charges homologué Label Rouge garantissant un niveau de qualité supérieur. ce mode de production assure le respect du bien-être des animaux et de l\'envirronement, ainsi qu\'une qualité supérieure de la viande.') }}</p>
<p>{{ __('Souhaitant protéger un mode d\'élevage historique et un savoir-faire traditionnel, les Fermiers de Loué ont déposé un cahier des charges homologué Label Rouge garantissant un niveau de qualité supérieur. Ce mode de production assure le respect du bien-être des animaux et de l\'environnement, ainsi qu\'une qualité supérieure de la viande.') }}</p>
</div>
</div>
</div>

View file

@ -22,7 +22,7 @@ $previousUrl = session()->get('poultrySearch.model') ? route('poultry.show') : r
@include('front.modules.flashMessage')
<div class="row justify-content-center mt-4">
<div class="col-12 text-center">
<h1 class="fw-bold">{{ __('Le nutriscore, qu\'est-ce que c\'est ?') }}</h1>
<h1 class="fw-bold">{{ __('Le Nutri-score, qu\'est-ce que c\'est ?') }}</h1>
</div>
</div>
<div class="row subpart justify-content-center mt-4">

View file

@ -1,5 +1,5 @@
@extends('layouts.front')
@section('title', __('Les Fermiers de Loué disent oui au Planet-score !'))
@section('title', __('Les Fermiers de Loué affichent le Planet-score sur leurs produits'))
@section('description', __('En savoir plus sur le label Planet-score'))
@section('breadcrumb', request()->route()->getName())
@ -27,7 +27,7 @@ $previousUrl = session()->get('poultrySearch.model') ? route('poultry.show') : r
</div>
<div class="row justify-content-center mt-4">
<div class="col-12 text-center">
<h1 class="fw-bold">{{ __('Les Fermiers de Loué disent oui au Planet-score !') }}</h1>
<h1 class="fw-bold">{{ __('Les Fermiers de Loué affichent le Planet-score sur leurs produits') }}</h1>
</div>
</div>
<div class="row subpart justify-content-center mt-4">
@ -41,10 +41,5 @@ $previousUrl = session()->get('poultrySearch.model') ? route('poultry.show') : r
</div>
</div>
</div>
<div class="row justify-content-center mt-2">
<div class="col-12 text-center">
<img class="img-fluid" src="{{ asset('assets/images/parts/planetscore_plaquette.jpg') }}" alt="{{ __('Planet-score plaquette') }}">
</div>
</div>
</div>
@endsection

View file

@ -19,7 +19,7 @@
<div class="row mt-4 pb-2">
<div class="col">
<p class="d-block h5 fw-bold text-dark mb-3">{{
__('ALIFEL est l\'usine dédié aux volailles de Loué Label Rouge pour des almiments sûrs et sains.')
__('ALIFEL est l\'usine dédiée aux volailles de Loué Label Rouge pour des aliments sûrs et sains.')
}}</p>
</div>
</div>

View file

@ -20,7 +20,7 @@
</div>
<div class="row mt-5">
<div class="col d-flex flex-row">
<span class="h3 fw-bold">{{ __('Ce poulet fermier Label Rouge de Loué à été éleveé en liberté') }}</span>
<span class="h3 fw-bold">{{ __('Ce poulet fermier Label Rouge de Loué à été élevé en liberté') }}</span>
<span class="d-flex flex-column justify-content-end">
<a class="shade" href="{{ route('poultry.infos') }}" title="{{__('Mieux comprendre notre mode d\'élevage') }}" aria-label="{{__('Voir la page : Mieux comprendre notre mode d\'élevage') }}">
<img class="img-info" src="{{ asset('assets/images/parts/picto-info.png') }}" alt="{{ __('Picto infos') }}">

View file

@ -20,7 +20,7 @@
</div>
<div class="row mt-5">
<div class="col">
<span class="h3 fw-bold">{{ __('Ce poulet fermier Label Rouge de Loué à été éleveé en liberté') }}</span>
<span class="h3 fw-bold">{{ __('Ce poulet fermier Label Rouge de Loué à été élevé en liberté') }}</span>
</div>
</div>
<div class="row mt-2">

View file

@ -21,7 +21,7 @@
<div class="col text-center">
<div class="d-flex flex-column">
<div class="text-center">
<input id="order_num" name="order_num" type="text" class="commandInput inputMask" pattern="^[0-9]{6}$" data-mask="000000" length="6" placeholder="{{ __('123456') }}" title="{{ __('Saisissez le numéro de commande tel qu\'indiqué sur l\'image ci-dessous (6 premiers chiffres)') }}" data-order-number="{{ $traceaPoultry->order_num }}">
<input id="order_num" name="order_num" type="text" class="commandInput inputMask" pattern="^[0-9]{6}\/[0-9]{3}[A-Z]$" data-mask="000000/000a" length="10" placeholder="{{ __('123456/123A') }}" title="{{ __('Saisissez le numéro de commande tel qu\'indiqué sur l\'image ci-dessous') }}" data-order-number="{{ str_pad($traceaPoultry->order_num, 6, '0', STR_PAD_LEFT) }}">
@include('back.modules.input-error', ['inputName' => 'order_num'])
<div id="order_num_invalid" class="invalid-feedback">{{ __('Numéro de commande invalide') }}</div>
</div>

View file

@ -25,6 +25,11 @@
<span class="d-inline-block badge-loue-yellow">{{ $traceaPoultry->prep_date->formatLocalized('%A') }} {{ $traceaPoultry->prep_date->format('d/m/Y') }}</span>
</div>
</div>
<div class="row justify-content-center pb-1">
<div class="col">
<span class="h1 d-block text-center fw-bold text-loue-blue"> {{ __('Nos signes gages de qualité') }}</span>
</div>
</div>
<div class="row justify-content-center pb-5">
<div class="col">
<div class="glider-container labels" aria-label="{{ __('Liens vers la description des labels') }}">
@ -57,6 +62,11 @@
</div>
</div>
</div>
<div class="row justify-content-center pb-1">
<div class="col">
<span class="h1 d-block text-center fw-bold text-loue-blue"> {{ __('Nos engagments') }}</span>
</div>
</div>
<div class="row justify-content-center pb-5">
<div class="col">
<div class="glider-container links" aria-label="{{ __('Liens vers le site loue.fr') }}">
@ -65,37 +75,37 @@
<a class="text-decoration-none" href="https://www.loue.fr/article/Des-arbres-et-des-haies-pour-les-volailles-fermières-de-Loué/a3.aspx" target="_blank">
<span class="blue-card shade">
<img src="{{ asset('assets/images/articles/Plan de travail 4.png') }}" alt="{{ __('Nature') }}">
<span class="fw-bold text-break text-light">{{ __('Arbres, haies et agroforesterie') }}</span>
<span class="fw-bold text-light">{{ __('Arbres, haies et agroforesterie') }}</span>
</span>
</a>
<a class="text-decoration-none" href="https://www.loue.fr/article/Des-ruches-d-abeilles-dans-les-parcours-à-volailles-de-Loué/a197.aspx" target="_blank">
<span class="blue-card shade">
<img src="{{ asset('assets/images/articles/Plan de travail 7.png') }}" alt="{{ __('Ruches') }}">
<span class="fw-bold text-break text-light">{{ __('Abeilles') }}</span>
<span class="fw-bold text-light">{{ __('Abeilles') }}</span>
</span>
</a>
<a class="text-decoration-none" href="https://www.loue.fr/article/Les-Fermiers-de-Loué-engagés-dans-les-énergies-renouvelables/a120.aspx" target="_blank">
<span class="blue-card shade">
<img src="{{ asset('assets/images/articles/Plan de travail 2.png') }}" alt="{{ __('Agriculture') }}">
<span class="fw-bold text-break text-light">{{ __('Des énergies renouvelables') }}</span>
<span class="fw-bold text-light">{{ __('Des énergies renouvelables') }}</span>
</span>
</a>
<a class="text-decoration-none" href="https://www.loue.fr/article/A-Loué-on-dit-OUI-aux-céréales-françaises-et-surtout-locales/a119.aspx" target="_blank">
<a class="text-decoration-none" href="https://www.loue.fr/article/Un-mode-d-élevage-durable-et-local/a121.aspx" target="_blank">
<span class="blue-card shade">
<img src="{{ asset('assets/images/articles/Plan de travail 5.png') }}" alt="{{ __('Céréales françaises') }}">
<span class="fw-bold text-break text-light">{{ __('Céréales locales') }}</span>
<span class="fw-bold text-light">{{ __('Céréales locales') }}</span>
</span>
</a>
<a class="text-decoration-none" href="https://www.loue.fr/article/Les-poulets-de-Loué-affichent-le-niveau-de-bien-être-animal/a160.aspx" target="_blank">
<span class="blue-card shade">
<img src="{{ asset('assets/images/articles/Plan de travail 6.png') }}" alt="{{ __('Poule') }}">
<span class="fw-bold text-break text-light">{{ __('Bien être animal') }}</span>
<span class="fw-bold text-light">{{ __('Bien être animal') }}</span>
</span>
</a>
<a class="text-decoration-none" href="https://www.loue.fr/article/Un-mode-d-élevage-durable-et-local/a121.aspx" target="_blank">
<span class="blue-card shade">
<img src="{{ asset('assets/images/articles/Plan de travail 3.png') }}" alt="{{ __('Label IGP') }}">
<span class="fw-bold text-break text-light">{{ __('Un élevage durable') }}</span>
<span class="fw-bold text-light">{{ __('Un élevage durable') }}</span>
</span>
</a>
</div>

View file

@ -78,7 +78,7 @@ Route::prefix('/oeuf')->name('egg.')->group(function () {
// * ELEVEURS
Route::get('/{id}/portrait-eleveur/{eleveurId}', [EggController::class, 'EleveurPortrait'])
Route::get('/{id}/portrait-eleveur/{eleveurId}', [EggController::class, 'eleveurPortrait'])
->name('portraitEleveur');
Route::get('/{id}', [EggController::class, 'indexId'])->name('FrontPage');