validatio issue

This commit is contained in:
rahul shukla 2019-01-11 10:39:41 +05:30
parent d1501e97fb
commit b7d15d4d0e
15 changed files with 113 additions and 65 deletions

View File

@ -103,8 +103,8 @@ class CustomerController extends Controller
'first_name' => 'string|required',
'last_name' => 'string|required',
'gender' => 'required',
'phone' => 'nullable|numeric|unique:customers,phone',
'email' => 'required|unique:customers,email',
'phone' => 'nullable|numeric|unique:customers,phone,',
'email' => 'required|unique:customers,email,',
'date_of_birth' => 'date|before:today'
]);

View File

@ -575,6 +575,7 @@ return [
'country' => 'Country',
'male' => 'Male',
'female' => 'Female',
'phone' => 'Phone',
'created' => 'Customer created successfully.',
'updated' => 'Customer updated successfully.',
'deleted' => 'Customer deleted successfully.',

View File

@ -148,7 +148,7 @@
</td>
<td>
<div class="control-group" :class="[errors.has(variantInputName + '[price]') ? 'has-error' : '']">
<div class="control-group" :class="[errors.has(variantInputName + '[weight]') ? 'has-error' : '']">
<input type="text" v-validate="'required'" v-model="variant.weight" :name="[variantInputName + '[weight]']" class="control" data-vv-as="&quot;{{ __('admin::app.catalog.products.weight') }}&quot;"/>
<span class="control-error" v-if="errors.has(variantInputName + '[weight]')">@{{ errors.first(variantInputName + '[weight]') }}</span>
</div>

View File

@ -90,13 +90,6 @@
<select v-validate="'{{ $validations }}'" class="control" id="{{ $firstField }}[{{ $secondField }}][{{ $thirdField }}][{{ $field['name'] }}]" name="{{ $firstField }}[{{ $secondField }}][{{ $thirdField }}][{{ $field['name'] }}][]" data-vv-as="&quot;{{ $field['name'] }}&quot;" multiple>
@if (isset($field['repository']))
@foreach($value as $option)
<option value="{{ $option['name'] }}" {{ in_array($option['name'], explode(',', $selectedOption)) ? 'selected' : ''}}>
{{ $option['name'] }}
</option>
@endforeach
@else
@foreach($field['options'] as $option)
<?php
@ -109,29 +102,45 @@
$selectedOption = core()->getConfigData($name) ?? '';
?>
<option value="{{ $value }}" {{ $value == $selectedOption ? 'selected' : ''}}>
<option value="{{ $value }}" {{ in_array($option['value'], explode(',', $selectedOption)) ? 'selected' : ''}}>
{{ $option['title'] }}
</option>
@endforeach
@endif
</select>
@elseif ($field['type'] == 'country')
<select type="text" v-validate="'required'" class="control" id="country" name="{{ $firstField }}[{{ $secondField }}][{{ $thirdField }}][{{ $field['name'] }}]" data-vv-as="&quot;{{ __('admin::app.customers.customers.country') }}&quot;" onchange="myFunction()">
<select type="text" v-validate="'{{ $validations }}'" class="control" id="country" name="{{ $firstField }}[{{ $secondField }}][{{ $thirdField }}][{{ $field['name'] }}]" data-vv-as="&quot;{{ __('admin::app.customers.customers.country') }}&quot;" onchange="selectStates()">
<option value=""></option>
<?php
$selectedOption = core()->getConfigData($name) ?? '';
?>
@foreach (core()->countries() as $country)
<option value="{{ $country->code }}">
<option value="{{ $country->code }}" {{ $country->code == $selectedOption ? 'selected' : ''}}>
{{ $country->name }}
</option>
@endforeach
</select>
@elseif ($field['type'] == 'state')
<?php
$selectedOption = core()->getConfigData($name) ?? '';
?>
<select type="text" class="control" id="state" onchange="stateCode()">
</select>
<input type="text" class="control" id="othstate" value="{{ $selectedOption }}" onkeyup="stateCode()">
<input type="hidden" v-validate="'{{ $validations }}'" class="control" id="stateValue" name="{{ $firstField }}[{{ $secondField }}][{{ $thirdField }}][{{ $field['name'] }}]" data-vv-as="&quot;{{ __('admin::app.customers.customers.state') }}&quot;" value="{{ $selectedOption }}">
@endif
@ -140,26 +149,46 @@
</div>
@push('scripts')
<script>
$('#othstate').show();
$('#state').hide();
function myFunction() {
var countryId = document.getElementById("country").value;
var countryStates = <?php echo json_encode(core()->groupedStatesByCountries()) ;?>;
if (document.getElementById("othstate")) {
var stateName = document.getElementById("othstate").value;
selectStates();
}
function selectStates() {
var countryId = document.getElementById("country").value;
for (var key in countryStates) {
if (countryStates[countryId]) {
$('#othstate').hide();
$('#state').show();
if (key == countryId){
$('#state').empty();
for (state in countryStates[key]) {
console.log(state);
$("#state").append('<option value="'+countryStates[key][state]['code']+'">'+countryStates[key][state]['default_name']+'</option>');
if (stateName) {
$("#state > [value=" + stateName + "]").attr("selected", "true");
}
}
}
} else {
$('#othstate').show();
$('#state').hide();
}
}
}
function stateCode() {
document.getElementById("stateValue").value = document.getElementById(event.target.id).value;
}
</script>

View File

@ -62,6 +62,12 @@
<span class="control-error" v-if="errors.has('date_of_birth')">@{{ errors.first('date_of_birth') }}</span>
</div>
<div class="control-group" :class="[errors.has('phone') ? 'has-error' : '']">
<label for="phone">{{ __('admin::app.customers.customers.phone') }}</label>
<input type="text" class="control" name="phone" v-validate="'numeric|max:10'" value="{{ old('phone') }}" data-vv-as="&quot;{{ __('admin::app.customers.customers.phone') }}&quot;">
<span class="control-error" v-if="errors.has('phone')">@{{ errors.first('phone') }}</span>
</div>
<div class="control-group">
<label for="customerGroup" >{{ __('admin::app.customers.customers.customer_group') }}</label>
<select class="control" name="customer_group_id">

View File

@ -34,19 +34,20 @@
<div class="control-group" :class="[errors.has('first_name') ? 'has-error' : '']">
<label for="first_name" class="required"> {{ __('admin::app.customers.customers.first_name') }}</label>
<input type="text" class="control" name="first_name" v-validate="'required'" value="{{$customer->first_name}}" data-vv-as="&quot;{{ __('shop::app.customers.customers.first_name') }}&quot;"/>
<input type="text" class="control" name="first_name" v-validate="'required'" value="{{$customer->first_name}}"
data-vv-as="&quot;{{ __('shop::app.customer.signup-form.firstname') }}&quot;"/>
<span class="control-error" v-if="errors.has('first_name')">@{{ errors.first('first_name') }}</span>
</div>
<div class="control-group" :class="[errors.has('last_name') ? 'has-error' : '']">
<label for="last_name" class="required"> {{ __('admin::app.customers.customers.last_name') }}</label>
<input type="text" class="control" name="last_name" v-validate="'required'" value="{{$customer->last_name}}" data-vv-as="&quot;{{ __('shop::app.customers.customers.last_name') }}&quot;"/>
<input type="text" class="control" name="last_name" v-validate="'required'" value="{{$customer->last_name}}" data-vv-as="&quot;{{ __('shop::app.customer.signup-form.lastname') }}&quot;">
<span class="control-error" v-if="errors.has('last_name')">@{{ errors.first('last_name') }}</span>
</div>
<div class="control-group" :class="[errors.has('email') ? 'has-error' : '']">
<label for="email" class="required"> {{ __('admin::app.customers.customers.email') }}</label>
<input type="email" class="control" name="email" v-validate="'required|email'" value="{{$customer->email}}" data-vv-as="&quot;{{ __('shop::app.customers.customers.email') }}&quot;"/>
<input type="email" class="control" name="email" v-validate="'required|email'" value="{{$customer->email}}" data-vv-as="&quot;{{ __('shop::app.customer.signup-form.email') }}&quot;">
<span class="control-error" v-if="errors.has('email')">@{{ errors.first('email') }}</span>
</div>
@ -65,6 +66,12 @@
<span class="control-error" v-if="errors.has('date_of_birth')">@{{ errors.first('date_of_birth') }}</span>
</div>
<div class="control-group" :class="[errors.has('phone') ? 'has-error' : '']">
<label for="phone">{{ __('admin::app.customers.customers.phone') }}</label>
<input type="text" class="control" name="phone" v-validate="'numeric|max:10'" value="{{ $customer->phone }}" data-vv-as="&quot;{{ __('admin::app.customers.customers.phone') }}&quot;">
<span class="control-error" v-if="errors.has('phone')">@{{ errors.first('phone') }}</span>
</div>
<div class="control-group">
<label for="customerGroup" >{{ __('admin::app.customers.customers.customer_group') }}</label>

View File

@ -695,7 +695,6 @@ class Core
foreach (config('core') as $coreData) {
if (isset($coreData['fields'])) {
foreach ($coreData['fields'] as $field) {
$name = $coreData['key'] . '.' . $field['name'];
if ($name == $fieldName ) {

View File

@ -99,6 +99,7 @@ class CustomerController extends Controller
'gender' => 'required',
'date_of_birth' => 'date|before:today',
'email' => 'email|unique:customers,email,'.$id,
'phone' => 'nullable|numeric|unique:customers,phone,'. $id,
'password' => 'confirmed'
]);

View File

@ -17,7 +17,7 @@ class Customer extends Authenticatable
protected $table = 'customers';
protected $fillable = ['first_name', 'channel_id', 'last_name', 'gender', 'date_of_birth', 'email', 'password', 'customer_group_id', 'subscribed_to_news_letter', 'is_verified', 'token'];
protected $fillable = ['first_name', 'channel_id', 'last_name', 'gender', 'date_of_birth', 'email', 'password', 'customer_group_id', 'subscribed_to_news_letter', 'is_verified', 'token', 'phone'];
protected $hidden = ['password', 'remember_token'];

View File

@ -35,9 +35,6 @@ return [
[
'title' => 'Pending',
'value' => 'pending'
], [
'title' => 'Approved',
'value' => 'Approved'
], [
'title' => 'Pending Payment',
'value' => 'pending_payment'
@ -86,9 +83,6 @@ return [
[
'title' => 'Pending',
'value' => 'pending'
], [
'title' => 'Approved',
'value' => 'Approved'
], [
'title' => 'Pending Payment',
'value' => 'pending_payment'
@ -137,9 +131,6 @@ return [
[
'title' => 'Pending',
'value' => 'pending'
], [
'title' => 'Approved',
'value' => 'Approved'
], [
'title' => 'Pending Payment',
'value' => 'pending_payment'

View File

@ -106,16 +106,21 @@ return [
'name' => 'Origin',
'sort' => 0,
'fields' => [
// [
// 'name' => 'country',
// 'title' => 'Country',
// 'type' => 'country_state',
// 'stateName' => 'state'
// 'validation' => 'required',
// 'channel_based' => true,
// 'locale_based' => true
// ],
[
'name' => 'country',
'title' => 'Country',
'type' => 'country',
'validation' => 'required',
'channel_based' => true,
'locale_based' => true
], [
'name' => 'state',
'title' => 'State',
'type' => 'state',
'validation' => 'required',
'channel_based' => true,
'locale_based' => true
], [
'name' => 'address1',
'title' => 'Address Line 1',
'type' => 'text',

View File

@ -63,6 +63,12 @@
<span class="control-error" v-if="errors.has('email')">@{{ errors.first('email') }}</span>
</div>
<div class="control-group" :class="[errors.has('phone') ? 'has-error' : '']">
<label for="phone">{{ __('shop::app.customer.account.profile.phone') }}</label>
<input type="text" class="control" name="phone" v-validate="'numeric|max:10'" value="{{ old('phone') ?? $customer->phone }}" data-vv-as="&quot;{{ __('shop::app.customer.account.profile.phone') }}&quot;">
<span class="control-error" v-if="errors.has('phone')">@{{ errors.first('phone') }}</span>
</div>
<div class="control-group" :class="[errors.has('oldpassword') ? 'has-error' : '']">
<label for="password">{{ __('shop::app.customer.account.profile.opassword') }}</label>
<input type="password" class="control" name="oldpassword" data-vv-as="&quot;{{ __('shop::app.customer.account.profile.opassword') }}&quot;" v-validate="'min:6'">

View File

@ -55,6 +55,11 @@
<td>{{ $customer->email }}</td>
</tr>
<tr>
<td>{{ __('shop::app.customer.account.profile.phone') }}</td>
<td>{{ $customer->phone }}</td>
</tr>
{{-- @if($customer->subscribed_to_news_letter == 1)
<tr>
<td> {{ __('shop::app.footer.subscribe-newsletter') }}</td>

View File

@ -1,2 +0,0 @@
*
!.gitignore