Fix bugs sh01

This commit is contained in:
Sebastien Hattry 2022-07-18 10:36:38 +00:00 • committed by Vincent BRIDIER
parent ef8c1279f6
commit b60513fb72
53 changed files with 452 additions and 520 deletions

View file

@ -35,3 +35,7 @@ MAIL_LIST_SERVICEWEB=
MAIL_LIST_CONTACTFORM=
ANALYTICS_GOOGLE_ID=
LDC_WEB_API_KEY="MY_KEY"
LDC_STATUS_CHECKER_API_KEY="MY_KEY"
LDC_STATUS_CHECKER_UUID="UUID_PROJECT"

2
.gitignore vendored
View file

@ -13,4 +13,4 @@ Homestead.yaml
npm-debug.log
yarn-error.log
/.idea
/.vscode
auth.json

45
.gitlab-ci.yml Normal file
View file

@ -0,0 +1,45 @@
image: $CI_REGISTRY/service-web-lab/ldc-web-images-docker/ldcweb-qa:php7.3-1.0
stages:
- Security
- CodingStandards
composer-security:
stage: Security
script:
- local-php-security-checker --format=json --path=./composer.lock > composer-security-checker-report.json
artifacts:
when: on_failure
expose_as: 'composer-security-checker'
paths:
- composer-security-checker-report.json
allow_failure: true
npm-security:
stage: Security
script:
- audit-ci -p npm -o json > npm-security-checker-report.json
artifacts:
when: on_failure
expose_as: 'npm-security-checker'
paths:
- npm-security-checker-report.json
allow_failure: true
phpcs:
stage: CodingStandards
before_script:
- composer install
cache:
paths:
- vendor/
script:
- vendor/bin/phpcs --report=junit --report-file=phpcs-report.xml
artifacts:
when: on_failure
expose_as: 'phpcs'
paths:
- phpcs-report.xml
reports:
junit: phpcs-report.xml
allow_failure: false

48
.vscode/launch.json vendored Normal file
View file

@ -0,0 +1,48 @@
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "Listen for Xdebug",
"type": "php",
"request": "launch",
"port": 9003
},
{
"name": "Launch currently open script",
"type": "php",
"request": "launch",
"program": "${file}",
"cwd": "${fileDirname}",
"port": 0,
"runtimeArgs": [
"-dxdebug.start_with_request=yes"
],
"env": {
"XDEBUG_MODE": "debug,develop",
"XDEBUG_CONFIG": "client_port=${port}"
}
},
{
"name": "Launch Built-in web server",
"type": "php",
"request": "launch",
"runtimeArgs": [
"-dxdebug.mode=debug",
"-dxdebug.start_with_request=yes",
"-S",
"localhost:0"
],
"program": "",
"cwd": "${workspaceRoot}",
"port": 9003,
"serverReadyAction": {
"pattern": "Development Server \\(http://localhost:([0-9]+)\\) started",
"uriFormat": "http://localhost:%s",
"action": "openExternally"
}
}
]
}

21
.vscode/settings.json vendored Normal file
View file

@ -0,0 +1,21 @@
{
"workbench.colorCustomizations": {
"activityBar.activeBackground": "#fccf1d",
"activityBar.activeBorder": "#222f5c",
"activityBar.background": "#fccf1d",
"activityBar.foreground": "#222f5c",
"activityBar.inactiveForeground": "#222f5c99",
"activityBarBadge.background": "#ff0400",
"activityBarBadge.foreground": "#ffffff",
"sash.hoverBorder": "#fccf1d",
"statusBar.background": "#c19f1a",
"statusBar.foreground": "#222f5c",
"statusBarItem.hoverBackground": "#ff0400",
"statusBarItem.remoteBackground": "#c19f1a",
"statusBarItem.remoteForeground": "#222f5c",
"titleBar.activeBackground": "#c19f1a",
"titleBar.activeForeground": "#222f5c",
"titleBar.inactiveBackground": "#fccf1d99",
"titleBar.inactiveForeground": "#222f5c99"
}
}

View file

@ -17,4 +17,10 @@ Pour le front :
```
npm install
npm run prod
```
## Crons
Put every min in PROD :
```
php artisan schedule:run
```

View file

@ -69,10 +69,10 @@ class PictoBrandsController extends Controller
* Update the specified resource in storage.
*
* @param PictoBrand $pictobrand
* @param \Illuminate\Http\StorePictoBrandRequest $request
* @param \Illuminate\Http\UpdatePictoBrandRequest $request
* @return \Illuminate\Http\Response
*/
public function update(PictoBrand $pictobrand, StorePictoBrandRequest $request)
public function update(PictoBrand $pictobrand, UpdatePictoBrandRequest $request)
{
$pictobrand->fill($request->validated());
if (is_a($request->picture,"SplFileInfo")) {

View file

@ -5,6 +5,7 @@ namespace App\Http\Controllers\Bo;
use App\Enums\Page;
use App\Http\Controllers\Controller;
use App\Http\Requests\StorePictoRequest;
use App\Http\Requests\UpdatePictoRequest;
use App\Lib\Utils;
use App\Models\Picto;
@ -72,10 +73,10 @@ class PictosController extends Controller
* Update the specified resource in storage.
*
* @param Picto $picto
* @param \Illuminate\Http\StorePictoRequest $request
* @param \Illuminate\Http\UpdatePictoRequest $request
* @return \Illuminate\Http\Response
*/
public function update(Picto $picto, StorePictoRequest $request)
public function update(Picto $picto, UpdatePictoRequest $request)
{
$picto->fill($request->validated());
if (is_a($request->picture, "SplFileInfo")) {

View file

@ -3,54 +3,11 @@
namespace App\Http\Controllers\Bo;
use App\Http\Controllers\Controller;
use App\Http\Requests\StoreSeoDataRequest;
use App\Http\Requests\UpdateSeoDataRequest;
use App\Models\SeoDatum;
use Illuminate\Http\Request;
class SeoDataController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
//
}
/**
* Show the form for creating a new resource.
*
* @return \Illuminate\Http\Response
*/
public function create()
{
//
}
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(Request $request)
{
//
}
/**
* Display the specified resource.
*
* @param \App\Models\SeoDatum $SeoDatum
* @return \Illuminate\Http\Response
*/
public function show(SeoDatum $SeoDatum)
{
//
}
/**
* Show the form for editing the specified resource.
*
@ -65,11 +22,11 @@ class SeoDataController extends Controller
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param UpdateSeoDataRequest $request
* @param \App\Models\SeoDatum $SeoDatum
* @return \Illuminate\Http\Response
*/
public function update(StoreSeoDataRequest $request, SeoDatum $SeoDatum)
public function update(UpdateSeoDataRequest $request, SeoDatum $SeoDatum)
{
$SeoDatum->fill($request->validated());
$SeoDatum->save();
@ -77,15 +34,4 @@ class SeoDataController extends Controller
return redirect()->route('bo.seo_data.edit', $SeoDatum->page)
->with('success', trans('Modifications enregistrées !'));
}
/**
* Remove the specified resource from storage.
*
* @param \App\Models\SeoDatum $SeoDatum
* @return \Illuminate\Http\Response
*/
public function destroy(SeoDatum $SeoDatum)
{
//
}
}

View file

@ -48,17 +48,6 @@ class SlidersController extends Controller
return redirect()->route('bo.sliders.edit', $slider->id)->with('success', 'Slider créé !');
}
/**
* Display the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function show($id)
{
//
}
/**
* Show the form for editing the specified resource.
*

View file

@ -55,17 +55,6 @@ class SlidesController extends Controller
return redirect()->route('bo.slides.edit', $slide->id)->with('success', 'Slide créé !');
}
/**
* Display the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function show($id)
{
//
}
/**
* Show the form for editing the specified resource.
*
@ -141,9 +130,6 @@ class SlidesController extends Controller
private function getLastOrder()
{
$order = Slide::select('order')->orderBy('order', 'DESC')->first();
if ($order === null) {
return 1;
}
return $order->order + 1;
return $order === null ? 1 : $order->order + 1;
}
}

View file

@ -8,7 +8,6 @@ use App\Models\Picto;
use App\Models\Product;
use App\Models\SeoDatum;
use App\Models\Title;
use Illuminate\Http\Request;
class FoodServiceController extends Controller
{

View file

@ -9,7 +9,6 @@ use App\Models\Product;
use App\Models\SeoDatum;
use App\Models\Slide;
use App\Models\Slider;
use Exception;
use Illuminate\Support\Carbon;
class HomeController extends Controller

View file

@ -5,7 +5,6 @@ namespace App\Http\Controllers;
use App\Enums\Page;
use App\Models\SeoDatum;
use App\Models\Text;
use Illuminate\Http\Request;
class LegalsController extends Controller
{

View file

@ -9,7 +9,6 @@ use App\Models\Picto;
use App\Models\PictoBrand;
use App\Models\SeoDatum;
use App\Models\Title;
use Illuminate\Http\Request;
class MarqueController extends Controller
{

View file

@ -9,7 +9,6 @@ use App\Models\Product;
use App\Models\SeoDatum;
use App\Models\Text;
use App\Models\Title;
use Illuminate\Http\Request;
use Illuminate\Support\Carbon;
class NewsController extends Controller

View file

@ -5,7 +5,6 @@ namespace App\Http\Controllers;
use App\Enums\Page;
use App\Models\SeoDatum;
use App\Models\Text;
use Illuminate\Http\Request;
class PolicyController extends Controller
{

View file

@ -12,10 +12,6 @@ class ProductsController extends Controller
// phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.FoundInExtendedClassBeforeLastUsed
public function show(Gamme $gamme, Product $product)
{
//$product = Product::whereSlug($product->slug)->first();
//dd($product);
//make ghost seoDatum from the gamme
$seoDatum = new SeoDatum();
$seoDatum->title = $product->name;
$seoDatum->description = $product->description;
@ -30,11 +26,9 @@ class ProductsController extends Controller
$products = Product::where('is_published', 1)
->where('name', 'like', '%' . $filter . '%')
->get();
//->paginate(12);
} else {
$products = Product::where('is_published', 1)
->get();
//->paginate(12);
}
$search_title = 'Recherche : ' . $filter;

View file

@ -3,7 +3,6 @@
namespace App\Http\Controllers;
use App\Enums\Lang;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Cookie;
class TranslationController extends Controller
@ -14,11 +13,6 @@ class TranslationController extends Controller
abort(400);
}
// Save in DB
// $user = Auth::user();
// $user->lang = $locale;
// $user->save();
Cookie::queue(Cookie::forever('language', $locale));
if (url()->full() !== url()->previous()) {

View file

@ -25,12 +25,12 @@ class ContactFormRequest extends FormRequest
{
return [
'civilite' => 'required|in:monsieur,madame',
'name' => 'required|min:2',
'lastname' => 'required|min:2',
'address' => 'required|max:255',
'postcode' => 'required',
'name' => 'required|string|min:2',
'lastname' => 'required|string|min:2',
'address' => 'required|string|max:255',
'postcode' => 'required|min:1|max:99000',
'city' => 'required|string|max:255',
'phone' => 'required|max:255',
'phone' => 'required|numeric|min:1|max:9999999999',
'email' => 'required|email:rfc,dns,spoof|max:255',
'country' => 'required|string|max:255',
'departement' => 'required_if:country,France|max:255',
@ -54,7 +54,7 @@ class ContactFormRequest extends FormRequest
public function messages()
{
return [
'topic.required' => __('Veuille préciser la nature de votre demande.'),
'topic.required' => __('Veuillez préciser la nature de votre demande.'),
'file.max' => __('La taille du fichier ne peut pas dépasser :max kilo-octets.'),
'file.mimes' => __('Le fichier doit être de type : :values.'),
];

View file

@ -0,0 +1,33 @@
<?php
namespace App\Http\Requests;
use Illuminate\Foundation\Http\FormRequest;
class UpdatePictoBrandRequest extends FormRequest
{
/**
* Determine if the user is authorized to make this request.
*
* @return bool
*/
public function authorize()
{
return auth()->check();
}
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
return [
'title' => 'required|max:50',
'picture' => 'sometimes|image|mimes:jpeg,png,jpg|max:512|dimensions:max_width=150,max_height=150',
'alt_text_picture' => 'required|max:255',
'text' => 'required|max:127',
];
}
}

View file

@ -0,0 +1,32 @@
<?php
namespace App\Http\Requests;
use Illuminate\Foundation\Http\FormRequest;
class UpdatePictoRequest extends FormRequest
{
/**
* Determine if the user is authorized to make this request.
*
* @return bool
*/
public function authorize()
{
return auth()->check();
}
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
return [
'picture' => 'sometimes|image|mimes:png|max:512|dimensions:max_width=150,max_height=150',
'alt_text_picture' => 'required|max:255',
'text' => 'required|max:50',
];
}
}

View file

@ -4,7 +4,7 @@ namespace App\Http\Requests;
use Illuminate\Foundation\Http\FormRequest;
class StoreSeoDataRequest extends FormRequest
class UpdateSeoDataRequest extends FormRequest
{
/**
* Determine if the user is authorized to make this request.

View file

@ -19,7 +19,7 @@ class RouteServiceProvider extends ServiceProvider
*
* @var string
*/
public const HOME = '/home';
public const HOME = '/bo';
/**
* The controller namespace for the application.

View file

@ -8,16 +8,18 @@
],
"license": "MIT",
"require": {
"php": "^7.3|^8.0",
"php": "^7.3",
"fruitcake/laravel-cors": "^2.0",
"guzzlehttp/guzzle": "^7.0.1",
"joedixon/laravel-translation": "^1.1",
"kwaadpepper/enum": "^2.1",
"kwaadpepper/exception-handler": "^0.0.8",
"kwaadpepper/exception-handler": "^0.0.9",
"laravel/framework": "^8.65",
"laravel/sanctum": "^2.11",
"laravel/tinker": "^2.5",
"laravel/ui": "^3.3",
"ldc/web-admin-secure-laravel": "1.0.1",
"ldc/web-status-checker-laravel": "1.0.3",
"mews/purifier": "^3.3",
"spatie/laravel-translatable": "^4.6"
},
@ -71,5 +73,11 @@
}
},
"minimum-stability": "dev",
"prefer-stable": true
"prefer-stable": true,
"repositories": {
"gitlab.com/16669037": {
"type": "composer",
"url": "https://gitlab.com/api/v4/group/16669037/-/packages/composer/packages.json"
}
}
}

190
composer.lock generated
View file

@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
"content-hash": "6d3d19ee0637b85edde0f49067b24cae",
"content-hash": "fcf9b3346e30223089c406870c83a34d",
"packages": [
{
"name": "asm89/stack-cors",
@ -1048,16 +1048,16 @@
},
{
"name": "kwaadpepper/exception-handler",
"version": "0.0.8",
"version": "0.0.9",
"source": {
"type": "git",
"url": "https://github.com/Kwaadpepper/exception-handler.git",
"reference": "e8ba0e31ca2bf5971e459c623f0f5322a4c7a630"
"reference": "8a0024bcc449b5ef8b8383cc8220218c5fb7f99b"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/Kwaadpepper/exception-handler/zipball/e8ba0e31ca2bf5971e459c623f0f5322a4c7a630",
"reference": "e8ba0e31ca2bf5971e459c623f0f5322a4c7a630",
"url": "https://api.github.com/repos/Kwaadpepper/exception-handler/zipball/8a0024bcc449b5ef8b8383cc8220218c5fb7f99b",
"reference": "8a0024bcc449b5ef8b8383cc8220218c5fb7f99b",
"shasum": ""
},
"require": {
@ -1103,9 +1103,9 @@
],
"support": {
"issues": "https://github.com/Kwaadpepper/exception-handler/issues",
"source": "https://github.com/Kwaadpepper/exception-handler/tree/0.0.8"
"source": "https://github.com/Kwaadpepper/exception-handler/tree/0.0.9"
},
"time": "2022-02-03T15:23:22+00:00"
"time": "2022-06-14T14:08:19+00:00"
},
{
"name": "laravel/framework",
@ -1532,6 +1532,180 @@
},
"time": "2022-02-21T14:59:16+00:00"
},
{
"name": "ldc/web-admin-secure-laravel",
"version": "1.0.1",
"source": {
"type": "git",
"url": "https://gitlab.com/service-web-lab/ldc-web-admin-secure-laravel.git",
"reference": "c538f5d349b119ac64cb62b33e6368bef6be90bc"
},
"dist": {
"type": "zip",
"url": "https://gitlab.com/api/v4/projects/37314651/packages/composer/archives/ldc/web-admin-secure-laravel.zip?sha=c538f5d349b119ac64cb62b33e6368bef6be90bc",
"reference": "c538f5d349b119ac64cb62b33e6368bef6be90bc",
"shasum": ""
},
"require": {
"illuminate/support": "~8|~9",
"laravel/framework": "~8|~9",
"php": "~7.3|7.4|~8"
},
"require-dev": {
"orchestra/testbench": "^6.24",
"phpunit/php-code-coverage": "^9.2",
"phpunit/phpunit": "~9.0",
"slevomat/coding-standard": "^7.0",
"squizlabs/php_codesniffer": "^3.5"
},
"type": "library",
"extra": {
"laravel": {
"providers": [
"LDC\\WebAdminSecureLaravel\\AdminSecureServiceProvider"
]
}
},
"autoload": {
"psr-4": {
"LDC\\WebAdminSecureLaravel\\": "src/"
}
},
"autoload-dev": {
"psr-4": {
"LDC\\WebAdminSecureLaravel\\Tests\\": "tests"
}
},
"scripts": {
"test": [
"vendor/bin/phpunit"
],
"post-autoload-dump": [
"@php ./vendor/bin/testbench package:discover --ansi"
]
},
"license": [
"MIT"
],
"authors": [
{
"name": "Vincent BRIDIER",
"email": "vincent.bridier@ldc.fr",
"homepage": "https://www.ldc.fr"
}
],
"description": "Restrict access to LDC Network"
},
{
"name": "ldc/web-status-checker",
"version": "1.0.2",
"source": {
"type": "git",
"url": "https://gitlab.com/service-web-lab/ldc-web-status-checker.git",
"reference": "70a4f96a272f42f9caaf8f614190a3e061273bc8"
},
"dist": {
"type": "zip",
"url": "https://gitlab.com/api/v4/projects/37071268/packages/composer/archives/ldc/web-status-checker.zip?sha=70a4f96a272f42f9caaf8f614190a3e061273bc8",
"reference": "70a4f96a272f42f9caaf8f614190a3e061273bc8",
"shasum": ""
},
"require": {
"ext-curl": "*",
"php": "~7.3|7.4|~8"
},
"require-dev": {
"slevomat/coding-standard": "^7.0",
"squizlabs/php_codesniffer": "^3.5"
},
"type": "library",
"autoload": {
"psr-4": {
"LDC\\WebStatusChecker\\": "src/"
}
},
"autoload-dev": {
"psr-4": {
"LDC\\WebStatusChecker\\Tests\\": "tests"
}
},
"license": [
"MIT"
],
"authors": [
{
"name": "Jérémy Munsch",
"email": "jeremy.munsch@ldc.fr",
"homepage": "https://jeremydev.ovh"
}
],
"description": "Status checker: report status to ldc-web"
},
{
"name": "ldc/web-status-checker-laravel",
"version": "1.0.3",
"source": {
"type": "git",
"url": "https://gitlab.com/service-web-lab/ldc-web-status-checker-laravel.git",
"reference": "32965e7425060c4167b40e5c0868c438ea94c14f"
},
"dist": {
"type": "zip",
"url": "https://gitlab.com/api/v4/projects/37071488/packages/composer/archives/ldc/web-status-checker-laravel.zip?sha=32965e7425060c4167b40e5c0868c438ea94c14f",
"reference": "32965e7425060c4167b40e5c0868c438ea94c14f",
"shasum": ""
},
"require": {
"illuminate/support": "~8|~9",
"laravel/framework": "~8|~9",
"ldc/web-status-checker": "^1.0",
"php": "~7.3|7.4|~8"
},
"require-dev": {
"orchestra/testbench": "^6.24",
"phpunit/php-code-coverage": "^9.2",
"phpunit/phpunit": "~9.0",
"slevomat/coding-standard": "^7.0",
"squizlabs/php_codesniffer": "^3.5"
},
"type": "library",
"extra": {
"laravel": {
"providers": [
"LDC\\WebStatusCheckerLaravel\\StatusCheckerServiceProvider"
]
}
},
"autoload": {
"psr-4": {
"LDC\\WebStatusCheckerLaravel\\": "src/"
}
},
"autoload-dev": {
"psr-4": {
"LDC\\WebStatusCheckerLaravel\\Tests\\": "tests"
}
},
"scripts": {
"test": [
"vendor/bin/phpunit"
],
"post-autoload-dump": [
"@php ./vendor/bin/testbench package:discover --ansi"
]
},
"license": [
"MIT"
],
"authors": [
{
"name": "Jérémy Munsch",
"email": "jeremy.munsch@ldc.fr",
"homepage": "https://jeremydev.ovh"
}
],
"description": "Status checker: report status to ldc-web"
},
{
"name": "league/commonmark",
"version": "1.6.7",
@ -8280,7 +8454,7 @@
"prefer-stable": true,
"prefer-lowest": false,
"platform": {
"php": "^7.3|^8.0"
"php": "^7.3"
},
"platform-dev": [],
"plugin-api-version": "2.3.0"

1
package-lock.json generated
View file

@ -4,7 +4,6 @@
"requires": true,
"packages": {
"": {
"name": "srcs",
"dependencies": {
"animate.css": "^4.1.1",
"mini-css-extract-plugin": "^1.6.2",

View file

@ -7,7 +7,6 @@
<file>database/factories</file>
<file>database/seeders</file>
<file>routes/</file>
<file>tests/</file>
<rule ref="PSR1" />
<rule ref="PSR12" />

View file

@ -1,2 +0,0 @@
require('./bootstrap');
require('./vuejs');

View file

@ -1,28 +0,0 @@
/**
* 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
* CSRF token as a header based on the value of the "XSRF" token cookie.
*/
window.axios = require('axios');
window.axios.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest';
/**
* Echo exposes an expressive API for subscribing to channels and listening
* for events that are broadcast by Laravel. Echo and event broadcasting
* allows your team to easily build robust real-time web applications.
*/
// import Echo from 'laravel-echo';
// window.Pusher = require('pusher-js');
// window.Echo = new Echo({
// broadcaster: 'pusher',
// key: process.env.MIX_PUSHER_APP_KEY,
// cluster: process.env.MIX_PUSHER_APP_CLUSTER,
// forceTLS: true
// });
window._ = require('lodash');

Binary file not shown.

View file

@ -1,31 +0,0 @@
window.__IDHALALVue = require('vue').default;
import vSelect from 'vue-select'
__IDHALALVue.component('v-select', vSelect);
// register modules
const modules = require.context("./modules", true, /\.js$/i);
modules.keys().map(key => __IDHALALVue.mixin(modules(key).default));
// Register components
const vues = require.context("./components/backend", true, /\.vue$/i);
vues.keys().map(key =>
__IDHALALVue.component(
key
.split("/")
.pop()
.split(".")[0]
.replace(/\.?([A-Z])/g, function (x, y) {
return "-" + y.toLowerCase();
})
.replace(/^-/, "")
.replace("-component", ""),
vues(key).default
)
);
const vuejsModules = [];
document.getElementsByClassName('idhalal-vuejs').forEach(element => {
vuejsModules.push(new __IDHALALVue({
el: element
}));
});

View file

@ -1,5 +1,5 @@
// require('./bootstrap');
// require('./vuejs');
require('./bootstrap');
require('./vuejs');
const selectElement = document.getElementById('gamme_id');

40
resources/js/vuejs.js vendored
View file

@ -1,31 +1,13 @@
window.__IDHALALVue = require('vue').default;
import vSelect from 'vue-select'
__IDHALALVue.component('v-select', vSelect);
window.Vue = require('vue').default;
// register modules
const modules = require.context("./modules", true, /\.js$/i);
modules.keys().map(key => __IDHALALVue.mixin(modules(key).default));
Vue.component('products-pictos', require('./components/backend/ProductsPictos.vue').default);
Vue.component('ranges-sub-ranges', require('./components/backend/RangesSubRanges.vue').default);
// Register components
const vues = require.context("./components/backend", true, /\.vue$/i);
vues.keys().map(key =>
__IDHALALVue.component(
key
.split("/")
.pop()
.split(".")[0]
.replace(/\.?([A-Z])/g, function (x, y) {
return "-" + y.toLowerCase();
})
.replace(/^-/, "")
.replace("-component", ""),
vues(key).default
)
);
const vuejsModules = [];
document.getElementsByClassName('idhalal-vuejs').forEach(element => {
vuejsModules.push(new __IDHALALVue({
el: element
}));
});
/**
* Next, we will create a fresh Vue application instance and attach it to
* the page. Then, you may begin adding components to this application
* or customize the JavaScript scaffolding to fit your unique needs.
*/
for (let el of document.getElementsByClassName('vueComponent')) {
new Vue({ el: el });
}

View file

@ -19,6 +19,9 @@ img {
max-width: max-content;
}
.field__error{
color: red;
}
#frise-autoscroll {
position: absolute;
width: 100%;

View file

@ -98,17 +98,11 @@
flex-direction: initial;
}
.section-header {
// margin-bottom: 30px;
color: $color-light;
.title {
margin-bottom: 5px;
}
// .content {
// top: 30px;
// padding-left: 30px;
// padding-right: 30px;
// }
& > img {
object-fit: cover;
max-height: 243px;
@ -119,129 +113,9 @@
.overlay {
span {
color: $color-brown;
// text-shadow: 0px 0px 2px #000;
}
}
// .is-brown {
// header .content {
// background-color: rgba($color-brown, 0.8);
// }
// .overlay {
// background-color: rgba($color-brown, 0.8);
// }
// .product-card {
// .overlay {
// span {
// color: $color-brown;
// }
// }
// }
// }
// .is-orange {
// header .content {
// background-color: rgba($color-orange, 0.8);
// }
// .overlay {
// background-color: rgba($color-orange, 0.8);
// }
// .product-card {
// .overlay {
// span {
// color: $color-orange;
// }
// }
// }
// }
// .is-grey {
// header .content {
// background-color: rgba($color-newgrey, 0.8);
// }
// .overlay {
// background-color: rgba($color-newgrey, 0.8);
// }
// .product-card {
// .overlay {
// span {
// color: $color-newgrey;
// }
// }
// }
// }
// .is-yellow {
// header .content {
// background-color: rgba($color-main, 0.8);
// }
// .overlay {
// background-color: rgba($color-main, 0.8);
// }
// .product-card {
// .overlay {
// span {
// color: $color-main;
// }
// }
// }
// .gamme-card {
// .overlay {
// span {
// color: $color-light;
// }
// }
// }
// }
// .is-blue {
// header .content {
// background-color: rgba($color-newblue, 0.8);
// }
// .overlay {
// background-color: rgba($color-newblue, 0.8);
// }
// .product-card {
// .overlay {
// span {
// color: $color-newblue;
// }
// }
// }
// }
// .is-green {
// header .content {
// background-color: rgba($color-green, 0.8);
// }
// .overlay {
// background-color: rgba($color-green, 0.8);
// }
// .product-card {
// .overlay {
// span {
// color: $color-green;
// }
// }
// }
// }
// .is-pink {
// header .content {
// background-color: rgba($color-pink, 0.8);
// }
// .overlay {
// background-color: rgba($color-pink, 0.8);
// }
// .product-card {
// .overlay {
// span {
// color: $color-pink;
// }
// }
// }
// }
#posts {
position: relative;
@ -252,9 +126,10 @@
}
.posts-list {
width: 1120px;
max-width: 1120px;
width: 100%;
margin: 0 auto;
justify-content: center;
justify-content: space-evenly;
align-items: center;
flex-wrap: wrap;
column-gap: 20px;
@ -272,30 +147,12 @@
width: 32%;
max-width: 32%;
}
.posts-list {
align-items: initial;
}
.gamme-card {
&:nth-child(n) {
width: 32%;
max-width: 32%;
}
}
// .gamme-card {
// &:nth-child(4),
// &:nth-child(5),
// &:nth-child(9),
// &:nth-child(10) {
// width: 49%;
// max-width: 49%;
// }
// }
// .gammes-6 .gamme-card {
// &:nth-child(n) {
// width: 32%;
// max-width: 32%;
// }
// }
.gammes-3 .gamme-card,
.gammes-6 .gamme-card,
.gammes-9 .gamme-card {
@ -341,15 +198,6 @@
}
}
// .post-card {
// flex: 1;
// margin-right: 30px;
// &:last-child {
// margin-right: 0;
// }
// }
#list {
.section-header {
margin-bottom: 80px;
@ -367,7 +215,6 @@
position: absolute;
top: 0;
left: 0;
// height: 50%;
z-index: -1;
object-fit: cover;
}
@ -376,36 +223,16 @@
@media (max-width: 1024px) {
#list {
// .section-header {
// margin-bottom: 80px;
// }
.is-flex {
justify-content: center;
}
}
}
@media (max-width: 1200px) {
.posts-list {
width: 100%;
.posts-list.is-flex{
flex-direction: initial;
}
// .post-card {
// width: 360px;
// margin-bottom: 50px;
// }
}
@media (max-width: 768px) {
// #list {
// .wrapper > div:not(:last-child) {
// margin-bottom: 2rem;
// }
// .section-header {
// .content {
// position: relative;
// }
// }
// }
#posts {
> img {
position: absolute;
@ -416,6 +243,9 @@
object-fit: cover;
}
}
.posts-list.is-flex {
flex-direction: column;
}
.post-card {
width: 100%;
max-width: 360px;

View file

@ -11,10 +11,6 @@
<button type="submit" class="btn btn-sm btn-primary">{{ __('Enregistrer') }}</a>
</div>
</div>
<?php
// dd($advice->page->equals(\App\Enums\Page::marqueHeader()), \App\Enums\Page::toArray()); exit;
// dd($advice->page->equals(\App\Enums\Page::marqueHeader()), \App\Enums\Page::toValues()); exit;
?>
<div class="form-group">
<label for="picture1">{{ __('Image') }} *<small class="text-muted">- JPEG/PNG, 2Mo max. Dimensions {{ Config::get('bo.advice_image_maxwidth') }} px par {{ Config::get('bo.advice_image_maxheight') }} px</small></label><br/>
<input type="file" id="picture1" name="picture1" accept="image/png, image/jpeg">

View file

@ -11,10 +11,6 @@
<button type="submit" class="btn btn-sm btn-primary">{{ __('Enregistrer') }}</a>
</div>
</div>
<?php
// dd($encart->page->equals(\App\Enums\Page::marqueHeader()), \App\Enums\Page::toArray()); exit;
// dd($encart->page->equals(\App\Enums\Page::marqueHeader()), \App\Enums\Page::toValues()); exit;
?>
<div class="form-group">
<label for="title">{{ __('Titre') }} *</label>
<input type="text" id="title" name="title" class="form-control" placeholder="{{ __('Titre') }} *" value="{{ old('title', $encart->title ?? '') }}" required>

View file

@ -11,10 +11,6 @@
<button type="submit" class="btn btn-sm btn-primary">{{ __('Enregistrer') }}</a>
</div>
</div>
<?php
// dd($moment->page->equals(\App\Enums\Page::marqueHeader()), \App\Enums\Page::toArray()); exit;
// dd($moment->page->equals(\App\Enums\Page::marqueHeader()), \App\Enums\Page::toValues()); exit;
?>
<div class="form-group">
<label for="title">{{ __('Année') }} *</label>
<input type="text" id="title" name="title" class="form-control" placeholder="{{ __('Titre') }} *" value="{{ old('title', $moment->title ?? '') }}" required>

View file

@ -77,40 +77,40 @@
<div class="form-row">
<div class="form-group">
<label for="name">{{ __('Nom') }}* : </label>
<input type="text" name="name" id="name" required value="{{old('name')}}">
<input type="text" name="name" id="name" minlength="2" required value="{{old('name')}}">
</div>
<div class="form-group">
<label for="lastname">{{ __('Prénom') }}* : </label>
<input type="text" name="lastname" id="lastname" value="{{ old('lastname') }}" required>
<input type="text" name="lastname" id="lastname" minlength="2" value="{{ old('lastname') }}" required>
</div>
</div>
<div class="form-row">
<div class="form-group">
<label for="address">{{ __('Adresse') }}* : </label>
<input type="text" name="address" id="address" value="{{ old('address') }}" autocomplete="street-address" required>
<input type="text" name="address" id="address" maxlength="255" value="{{ old('address') }}" autocomplete="street-address" required>
</div>
<div class="form-group">
<label for="country">{{ __('Code postal') }}* : </label>
<input type="number" name="postcode" id="postcode" value="{{ old('postcode') }}" autocomplete="postal-code" required>
<label for="postcode">{{ __('Code postal') }}* : </label>
<input type="text" name="postcode" id="postcode" minlength="1" maxlength="99000" value="{{ old('postcode') }}" autocomplete="postal-code" required>
</div>
</div>
<div class="form-row">
<div class="form-group">
<label for="city">{{ __('Ville') }}* : </label>
<input type="text" name="city" id="city" value="{{ old('city') }}" autocomplete="address-level2" required>
<input type="text" name="city" id="city" maxlength="255" value="{{ old('city') }}" autocomplete="address-level2" required>
</div>
<div class="form-group">
<label for="phone">{{ __('Téléphone') }}* : </label>
<input type="number" name="phone" id="phone" value="{{ old('phone') }}" autocomplete="tel" required>
<input type="number" name="phone" id="phone" min="1" max="9999999999" value="{{ old('phone') }}" autocomplete="tel" required>
</div>
<div class="form-group">
<label for="email">{{ __('Email') }}* : </label>
<input type="mail" name="email" id="email" value="{{ old('email') }}" autocomplete="email" required>
<input type="mail" name="email" id="email" pattern="[a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,4}$" value="{{ old('email') }}" autocomplete="email" required>
</div>
</div>
<div class="form-row">
<div class="country">
<select id="country" class="changeLength" name="country" required onclick="javascript:showDromField(this);">
<select id="country" class="changeLength" maxlength="255" name="country" required onclick="javascript:showDromField(this);">
<option value="" @if(!old('country')) selected @endif>{{ __('Sélectionnez un pays') }} *</option>
@foreach($availableCountries as $country)
<option value="{{ $country->label }}" @if(old('country') == $country->label) selected @endif>{{ __($country->label) }}</option>
@ -118,7 +118,7 @@
</select>
</div>
<div class="drom">
<select id="departement" class="changeLength" name="departement">
<select id="departement" class="changeLength" maxlength="255" name="departement">
<option value="" @if(!old('departement')) selected @endif>{{ __('Sélectionnez un département') }} *</option>
<option value="Guadeloupe" @if(old('departement') === 'Guadeloupe') selected @endif>{{ __('Guadeloupe') }}</option>
<option value="Martinique" @if(old('departement') === 'Martinique') selected @endif>{{ __('Martinique') }}</option>

View file

@ -9,10 +9,6 @@
<body>
<div id="app">
<?php
// dd($picto_marque[1]->id);
// exit;
?>
@include('layouts.backend.navbar')
<div class="container-fluid">
<div class="row">
@ -41,7 +37,7 @@
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.1/dist/js/bootstrap.bundle.min.js" integrity="sha256-edRDsV9ULIqKzKjpN/KjyQ7Lp4vUn9usbJuHjH8Sk+k=" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/sweetalert2@11.0.16/dist/sweetalert2.all.min.js" integrity="sha256-551HBsteMvKOSqjUXSmRy/EOF0bBNbWB96b5L3Deh8A=" crossorigin="anonymous"></script>
<script src="//cdn.jsdelivr.net/npm/sweetalert2@10"></script>
<script src="{{ asset('js/preload-back.js') }}"></script>
<script src="{{ mix('js/preload-back.js') }}"></script>
{{-- @crudPoliciesJS() --}}
@stack('scripts')
</body>

View file

@ -27,4 +27,4 @@
<!-- STYLES -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.1/dist/css/bootstrap.min.css" integrity="sha256-hHKA3d/HttC8OW3Sl093W8DoZudhHJDj++kZYo6MLzA=" crossorigin="anonymous">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/sweetalert2@11.0.16/dist/sweetalert2.min.css" integrity="sha256-qpXwccFYncH5gTqXFe9EXZ8QeDw1Re68bbNVfFZzIzg=" crossorigin="anonymous">
<link rel="stylesheet" href="{{ asset('css/preload-back.css') }}">
<link rel="stylesheet" href="{{ mix('css/preload-back.css') }}">

View file

@ -17,7 +17,7 @@
</div>
<!-- Scripts -->
<script src="{{ asset('js/preload-front.js') }}" type="text/javascript"></script>
<script src="{{ mix('js/preload-front.js') }}" type="text/javascript"></script>
@stack('scripts')
</body>

View file

@ -3,7 +3,7 @@
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<link rel="icon" type="image/png" href="/favicon.png" />
<link rel="stylesheet" href="{{ asset('css/preload-front.css') }}">
<link rel="stylesheet" href="{{ mix('css/preload-front.css') }}">
<title>{{ config('app.name') }}@hasSection('title') - @yield('title')@endif</title>
<meta name="description" content="@yield('description')">

View file

@ -13,7 +13,3 @@ use Illuminate\Support\Facades\Route;
| is assigned the "api" middleware group. Enjoy building your API!
|
*/
Route::middleware('auth:sanctum')->get('/user', function (Request $request) {
return $request->user();
});

View file

@ -52,24 +52,19 @@ use Illuminate\Support\Str;
Route::prefix('bo')
->name('bo.')
->middleware(['admin-secure'])
->group(
function () {
Route::middleware([])
->group(
function () {
// guest:web middleware specified in AuthController
Auth::routes(
[
'login' => true,
'logout' => true,
'register' => false,
'reset' => false, // for resetting passwords
'confirm' => false, // for additional password confirmations
'verify' => false, // for email verification
]
);
}
);
function () {
Auth::routes(
[
'login' => true,
'logout' => true,
'register' => false,
'reset' => false, // for resetting passwords
'confirm' => false, // for additional password confirmations
'verify' => false, // for email verification
]
);
Route::middleware(['auth:web', 'back-end-globals', 'lang-check'])
->group(
function () {

View file

@ -1,22 +0,0 @@
<?php
namespace Tests;
use Illuminate\Contracts\Console\Kernel;
trait CreatesApplication
{
/**
* Creates the application.
*
* @return \Illuminate\Foundation\Application
*/
public function createApplication()
{
$app = require __DIR__.'/../bootstrap/app.php';
$app->make(Kernel::class)->bootstrap();
return $app;
}
}

View file

@ -1,21 +0,0 @@
<?php
namespace Tests\Feature;
use Illuminate\Foundation\Testing\RefreshDatabase;
use Tests\TestCase;
class ExampleTest extends TestCase
{
/**
* A basic test example.
*
* @return void
*/
public function test_example()
{
$response = $this->get('/');
$response->assertStatus(200);
}
}

View file

@ -1,10 +0,0 @@
<?php
namespace Tests;
use Illuminate\Foundation\Testing\TestCase as BaseTestCase;
abstract class TestCase extends BaseTestCase
{
use CreatesApplication;
}

View file

@ -1,18 +0,0 @@
<?php
namespace Tests\Unit;
use PHPUnit\Framework\TestCase;
class ExampleTest extends TestCase
{
/**
* A basic test example.
*
* @return void
*/
public function test_example()
{
$this->assertTrue(true);
}
}

3
webpack.mix.js vendored
View file

@ -46,7 +46,8 @@ mix.js("resources/js/back.js", "public/js/preload-back.js")
enabled: true,
useBuiltIns: "usage",
targets: { "firefox": "50", "ie": 11 }
});
})
.version();
// Copy Blade Images Assets
mix.copyDirectory('resources/assets', 'public/assets');