From: soufiane Date: Tue, 21 Mar 2023 18:02:04 +0000 (+0100) Subject: wip #5791 @6:00 X-Git-Url: http://git.cubedesigners.com/?a=commitdiff_plain;h=9a63022b7170eb7a2cafb759571443dc37b2a8e7;p=pmi.git wip #5791 @6:00 --- diff --git a/app/Http/Controllers/AjaxController.php b/app/Http/Controllers/AjaxController.php index 3006a8b..fc7061e 100644 --- a/app/Http/Controllers/AjaxController.php +++ b/app/Http/Controllers/AjaxController.php @@ -39,12 +39,17 @@ class AjaxController extends CubistFrontController * @param PageData $page * @return array */ - protected function _validate_form(Request $request, $page) + protected function _validate_form(Request $request, $page, $form = null) { $validation = []; $messages = []; - foreach ($page->get('form') as $field) { + $fields = $page->get('form'); + if($form){ + $fields = $request->all(); + } + + foreach ($fields as $field) { $v = []; if ($field['mandatory']) { $v[] = 'required'; @@ -273,13 +278,19 @@ class AjaxController extends CubistFrontController return $news; } - public function check_email_exist(Request $request) { - $validation = [ - 'email' => 'required|email' - ]; + /* + * + * + * CONNEXION, REGISTER, MY ACCOUNT + * + * + */ + + public function validation_form(Request $request, $validation){ $messages = [ - 'email.required' => __('Le champs est requis'), - 'email.email' => __('Veuillez indiquer une adresse email valide') + '*.required' => __('Ce champs est requis'), + 'email.email' => __('Veuillez indiquer une adresse email valide'), + 'email.unique' => __('Cette adresse existe déjà') ]; $validator = Validator::make($request->all(), $validation, $messages); @@ -287,6 +298,15 @@ class AjaxController extends CubistFrontController throw new ValidationException($validator); } + $validator->validate(); + return $validator->validated(); + } + public function check_email_exist(Request $request) { + $validation = [ + 'email' => 'required|email' + ]; + $this->validation_form($request, $validation); + $email = Client::where('email', $request->email)->get(); return $email; } @@ -297,20 +317,13 @@ class AjaxController extends CubistFrontController 'password' => 'required' ]; - $validator = Validator::make($request->all(), $validation); - - if ($validator->fails()) { - throw new ValidationException($validator); - } + $data = $this->validation_form($request, $validation); - $status = Client::where('email', $request->email)->get('status'); - if (!$status) { + $status = Client::where('email', $request->email)->where('status', '!=', 0)->get(); + if (sizeof($status) < 1) { throw ValidationException::withMessages(['email' => __('Le compte lié à cette adresse est en cours de validation')]); } - $validator->validate(); - $data = $validator->validated(); - $remember = $request->remember_me ? true : false; @@ -326,9 +339,8 @@ class AjaxController extends CubistFrontController $validation = [ 'email' => 'required|email|unique:clients', 'password' => 'required|confirmed|min:8', - 'password_confirmation' => 'required', - 'lastname' => 'required|alpha|max:255', - 'firstname' => 'required|alpha|max:255', + 'lastname' => 'required|string|max:255', + 'firstname' => 'required|string|max:255', 'phone' => 'required|numeric', 'company' => 'required|string', 'vat' => 'required|alpha_num|min:13', @@ -340,14 +352,8 @@ class AjaxController extends CubistFrontController 'address.*.delivery_address' => 'nullable', 'confirm_condition' => 'required' ]; - $validator = Validator::make($request->all(), $validation); - - if ($validator->fails()) { - throw new ValidationException($validator); - } - $validator->validate(); - $data = $validator->validated(); + $data = $this->validation_form($request, $validation); $data['status'] = 0; $data['password'] = Hash::make($data['password']); @@ -358,15 +364,28 @@ class AjaxController extends CubistFrontController } public function update(Request $request) { - $clientId = Auth::guard('web-clients')->user()->id; - $client = Client::find($clientId); - $client->lastname = $request->lastname; - $client->firstname = $request->firstname; + $validation = [ + 'email' => 'required|email', + 'lastname' => 'required|string|max:255', + 'firstname' => 'required|string|max:255', + 'phone' => 'required|numeric' + ]; + $data = $this->validation_form($request, $validation); + + $email = Auth::guard('web-clients')->user()->email; + $client = Client::where('email', $email)->update($data); + $client->save(); + + return $data; } public function getaddress() { $clientAddress = Auth::guard('web-clients')->user()->address; return $clientAddress; } + + public function getuser() { + return Auth::guard('web-clients')->user(); + } } diff --git a/app/Http/Controllers/ClientController.php b/app/Http/Controllers/ClientController.php index 7b2fdd9..f89ab8f 100644 --- a/app/Http/Controllers/ClientController.php +++ b/app/Http/Controllers/ClientController.php @@ -16,7 +16,6 @@ class ClientController extends CubistPageController { public function logout(Request $request): RedirectResponse { - Auth::guard('web-clients')->user()->setRememberToken(''); Auth::guard('web-clients')->logout(); $request->session()->invalidate(); diff --git a/resources/js/app.js b/resources/js/app.js index d7c0ea3..09e307a 100644 --- a/resources/js/app.js +++ b/resources/js/app.js @@ -66,12 +66,13 @@ const app = new Vue({ address_choice: true, validateRegister: false, tab: 'infos', - address: [{}] + addresses: [{}], + user: '' }, beforeMount() { this.items = JSON.parse(this.$el.dataset.cartItems); - this.getAddress() + this.getUser() }, mounted() { @@ -213,6 +214,7 @@ const app = new Vue({ behavior: "smooth" }) root.validateRegister = true + root.email_signin = '' }) .catch(function (error) { if (error.response) { @@ -232,20 +234,24 @@ const app = new Vue({ activeTab(tab){ this.tab = tab }, - getAddress(){ + getUser(){ let root = this - - axios.post('/ajax/getaddress') + axios.post('/ajax/getuser') .then(function (response) { // - root.address = response.data + root.user = response.data + root.addresses = JSON.parse(response.data.address) }) .catch(function (error) { }) }, addAddressToForm(){ - this.address.push({}) + let newAddress = { + 'billing_address': '0', + 'delivery_address': '0' + } + this.addresses.push(newAddress) }, update(id){ let root = this, @@ -256,13 +262,8 @@ const app = new Vue({ .then(function (response) { // root.removeErrors() - form.reset() - - window.scrollTo({ - top: 0, - behavior: "smooth" - }) root.validateRegister = true + root.form[id] = response.data }) .catch(function (error) { diff --git a/resources/views/components/address-form.blade.php b/resources/views/components/address-form.blade.php index 4cf51fc..900acc7 100644 --- a/resources/views/components/address-form.blade.php +++ b/resources/views/components/address-form.blade.php @@ -1,44 +1,44 @@ -
+