From: soufiane Date: Wed, 19 Jul 2023 09:25:20 +0000 (+0200) Subject: wait #6143 @0:15 X-Git-Url: http://git.cubedesigners.com/?a=commitdiff_plain;h=c87c5f2dc1d99f5783d6a81ac90f11c037659ae5;p=pmi.git wait #6143 @0:15 --- diff --git a/app/Http/Controllers/AjaxController.php b/app/Http/Controllers/AjaxController.php index 7da2fce..624f874 100644 --- a/app/Http/Controllers/AjaxController.php +++ b/app/Http/Controllers/AjaxController.php @@ -44,7 +44,7 @@ class AjaxController extends CubistFrontController * @param PageData $page * @return array */ - protected function _validate_form(Request $request, $page, $form = null) + protected function _validate_form(Request $request, $page, $alreadyValidate = null, $form = null) { $validation = []; $messages = []; @@ -54,32 +54,38 @@ class AjaxController extends CubistFrontController $fields = $request->all(); } - foreach ($fields as $field) { - $v = []; - if ($field['mandatory']) { - $v[] = 'required'; - $messages[$field['type'] . '.required'] = sprintf(__('Champ obligatoire'), self::$_labels[$field['type']]); - } else { - $v[] = 'nullable'; - } - if ($field['type'] === 'email') { - $v[] = 'email'; - $messages[$field['type'] . '.email'] = __('Adresse e-mail invalide'); - } else if ($field['type'] === 'phone') { - $v[] = 'regex:/^[0-9 \+\.\-\(\)\/]{10,}$/'; - $messages[$field['type'] . '.regex'] = __('Numéro de téléphone invalide'); - } - if (count($v)) { - $validation[$field['type']] = implode('|', $v); + if(!$alreadyValidate) { + + foreach ($fields as $field) { + $v = []; + if ($field['mandatory']) { + $v[] = 'required'; + $messages[$field['type'] . '.required'] = sprintf(__('Champ obligatoire'), self::$_labels[$field['type']]); + } else { + $v[] = 'nullable'; + } + if ($field['type'] === 'email') { + $v[] = 'email'; + $messages[$field['type'] . '.email'] = __('Adresse e-mail invalide'); + } else if ($field['type'] === 'phone') { + $v[] = 'regex:/^[0-9 \+\.\-\(\)\/]{10,}$/'; + $messages[$field['type'] . '.regex'] = __('Numéro de téléphone invalide'); + } + if (count($v)) { + $validation[$field['type']] = implode('|', $v); + } } - } - $validator = Validator::make($request->all(), $validation, $messages); - $validator->validate(); + $validator = Validator::make($request->all(), $validation, $messages); + $validator->validate(); - $validatedData = $validator->validated(); + $validatedData = $validator->validated(); + + return $validatedData; + } else { + return $request->all(); + } - return $validatedData; } /** @@ -260,7 +266,7 @@ class AjaxController extends CubistFrontController $cartData = json_decode($request->input('cart_data'), true); // Validated form fields - $validatedData = $this->_validate_form($request, $page); + $validatedData = $action === "order" ? $this->_validate_form($request, $page, true) : $this->_validate_form($request, $page); $products = PageData::fromEntities(Product::whereIn('id', array_keys($cartData) )->get()); $cartData_ = Product::getCartData(); $productsArray = Product::getProductsByIds(array_keys($cartData)); diff --git a/resources/js/app.js b/resources/js/app.js index 52858f1..b57ac7f 100644 --- a/resources/js/app.js +++ b/resources/js/app.js @@ -581,6 +581,7 @@ const app = new Vue({ company: this.user.company, phone: this.user.phone, email: this.user.email, + form: 'order' } axios.post('/ajax/order', data) diff --git a/resources/views/pages/order.blade.php b/resources/views/pages/order.blade.php index 1bfa03d..3911aaf 100644 --- a/resources/views/pages/order.blade.php +++ b/resources/views/pages/order.blade.php @@ -95,6 +95,14 @@ + +