* @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';
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);
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;
}
'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;
$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',
'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']);
}
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();
+ }
}
address_choice: true,
validateRegister: false,
tab: 'infos',
- address: [{}]
+ addresses: [{}],
+ user: ''
},
beforeMount() {
this.items = JSON.parse(this.$el.dataset.cartItems);
- this.getAddress()
+ this.getUser()
},
mounted() {
behavior: "smooth"
})
root.validateRegister = true
+ root.email_signin = ''
})
.catch(function (error) {
if (error.response) {
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,
.then(function (response) {
//
root.removeErrors()
- form.reset()
-
- window.scrollTo({
- top: 0,
- behavior: "smooth"
- })
root.validateRegister = true
+ root.form[id] = response.data
})
.catch(function (error) {
-<form class="form-portal mb-12" @submit.prevent="update('address')">
+<form class="form-portal mb-12 max-w-half-form" @submit.prevent="update('address')">
<div class="form-group mb-12">
<div class="fields grid">
<label class="form-input text-navy">
{{ __('Donner un nom à cette adresse') }}<span>*</span>
- <input class="py-3 mt-3" type="text" required="required" name="name" />
+ <input class="py-3 mt-3" type="text" v-model="address.name" required="required" name="name" />
</label>
<label class="form-input text-navy">
{{ __('Société') }}<span>*</span>
- <input class="py-3 mt-3" type="text" required="required" name="company" />
+ <input class="py-3 mt-3" type="text" v-model="address.company" required="required" name="company" />
</label>
<label class="form-input half text-navy">
{{ __('Nom') }}<span>*</span>
- <input class="py-3 mt-3" type="text" required="required" name="lastname" />
+ <input class="py-3 mt-3" type="text" v-model="address.lastname" required="required" name="lastname" />
</label>
<label class="form-input half text-navy">
{{ __('Prénom') }}<span>*</span>
- <input class="py-3 mt-3" type="text" required="required" name="firstname" />
+ <input class="py-3 mt-3" type="text" v-model="address.firstname" required="required" name="firstname" />
</label>
<label class="form-input text-navy">
- {{ __('Adresse de facturation') }}<span>*</span>
- <textarea class="py-3 mt-3" required="required" name="address[billing][address]">
+ {{ __('Adresse') }}<span>*</span>
+ <textarea class="py-3 mt-3" required="required" v-model="address.address" name="address[address]">
</textarea>
</label>
<label class="form-input half text-navy">
{{ __('Code postal') }}<span>*</span>
- <input class="py-3 mt-3" type="text" required="required" name="address[billing][zipcode]" />
+ <input class="py-3 mt-3" type="text" v-model="address.zipcode" required="required" name="address[zipcode]" />
</label>
<label class="form-input half text-navy">
{{ __('Ville') }}<span>*</span>
- <input class="py-3 mt-3" type="text" required="required" name="address[billing][city]" />
+ <input class="py-3 mt-3" type="text" v-model="address.city" required="required" name="address[city]" />
</label>
</div>
</div>
<div class="form-group">
<label class="label-checkbox flex">
- <input type="checkbox" v-model="address_choice" checked name="same-address" class="w-4 h-4" />
+ <input type="checkbox" :checked="address.billing_address === '0' ? false : true" class="w-4 h-4" />
<span class="ml-4">{{ __('Adresse de facturation par défaut') }}</span>
</label>
<label class="label-checkbox flex mb-6">
- <input type="checkbox" v-model="address_choice" checked name="same-address" class="w-4 h-4" />
+ <input type="checkbox" :checked="address.delivery_address === '0' ? false : true" class="w-4 h-4" />
<span class="ml-4">{{ __('Adresse de livraison par défaut') }}</span>
</label>
</div>