v0.10.2 - Full functioning AJAX check submit code on User controller create & edit

- Plus all other pages where you create or update something of an unique value
This commit is contained in:
Anders 2020-08-18 08:16:25 +02:00
parent c08933ba9b
commit e6e0e3c95d
4 changed files with 79 additions and 13 deletions

View File

@ -580,13 +580,27 @@ class UserController extends Controller
$usersemail = User::query()->where('email', 'LIKE', $request->mailCheck)->get();
$usersphone = User::query()->where('phone', '=', $request->phoneCheck)->get();
if (count($usersemail) > 0 && count($usersphone) > 0) {
return 1;
return 'both';
}
elseif(count($usersemail) > 0 && $request->mailCheck !== NULL){
return 2;
return 'email';
}
elseif(count($usersphone) > 0 && $request->phoneCheck !== NULL){
return 3;
return 'phone';
}
}
public function nameCheckUpdate(Request $request){
$usersemail = User::query()->where('email', 'LIKE', $request->mailCheck)->where('id', '!=', $request->id)->get();
$usersphone = User::query()->where('phone', '=', $request->phoneCheck)->where('id', '!=', $request->id)->get();
if (count($usersemail) > 0 && count($usersphone) > 0) {
return 'both';
}
elseif(count($usersemail) > 0 && $request->mailCheck !== NULL){
return 'email';
}
elseif(count($usersphone) > 0 && $request->phoneCheck !== NULL){
return 'phone';
}
}
}

View File

@ -11,7 +11,7 @@
@section("content")
<h1 id="errormesseages" >Opret Bruger:</h1>
<form method="post" action="{{ route("users.store") }}" onsubmit="return myFunction()">
<form method="post" action="{{ route("users.store") }}" onsubmit="return checkInputs()">
@csrf
<label for="name_first">Fornavn:</label>
<input type="text" name="name_first" id="name_first" placeholder="Fornavn" required>
@ -71,7 +71,7 @@
);
});
function myFunction() {
function checkInputs() {
var save = true;
$mail = $('#email').val();
$phone = $('#phone').val();
@ -81,18 +81,18 @@
url: '{{route('users.nameCheck')}}',
data: {'mailCheck':$mail, 'phoneCheck':$phone},
success:function (data) {
if (data == 1) {
if (data == 'both') {
$("#erroremail").show(100);
$("#erroremail").css('color', 'red');
$("#errorphone").show(100);
$("#errorphone").css('color', 'red');
save = false;
} else if(data == 2){
} else if(data == 'email'){
$("#errorphone").hide();
$("#erroremail").show(100);
$("#erroremail").css('color', 'red');
save = false;
} else if (data == 3) {
} else if (data == 'phone') {
$("#erroremail").hide();
$("#errorphone").show(100);
$("#errorphone").css('color', 'red');

View File

@ -11,10 +11,7 @@
@section("content")
<h1>Rediger Bruger:</h1>
{!! session()->get('error#notsamepass') !!}
{!! session()->get('EmailExists') !!}
{!! session()->get('PhoneExists') !!}
<form method="post" action="{{ route("users.update", ['user' => $user]) }}">
<form method="post" action="{{ route("users.update", ['user' => $user]) }}" onsubmit="return checkInputs()">
@csrf
@method("put")
<label for="name_first">Fornavn:</label>
@ -22,8 +19,10 @@
<label for="name_last">Efternavn:</label>
<input type="text" name="name_last" id="name_last" value="{{ $user->name_last }}" required>
<label for="email">Email:</label>
<label hidden id="erroremail">Der findes allerede en bruger med denne email!</label>
<input type="email" name="email" id="email" value="{{ $user->email }}" required>
<label for="password1">Password: (Forblives blank, hvis password ikke skal ændres)</label>
<label hidden id="errornotsamepass" for="errormesseages">Der stod ikke det samme i `Adgangskode` & `Bekræft Adgangskode`!</label>
<div class="input-group text-left">
<input type="password" class="form-control" name="password" id="password1" value="" placeholder="******">
<span class="fa fa-fw fa-eye field-icon toggle-password" id="fa-new" onclick="show('password1', 'fa-new')"></span>
@ -34,7 +33,8 @@
<span class="fa fa-fw fa-eye field-icon toggle-password" id="fa-confirm" onclick="show('password2', 'fa-confirm')"></span>
</div>
<label for="tel">Telefon nr:</label>
<input type="tel" name="phone" id="tel" value="{{ $user->phone }}" required>
<label hidden id="errorphone">Der findes allerede en bruger med dette telefon nr!</label>
<input type="tel" name="phone" id="phone" value="{{ $user->phone }}" required>
<label for="role">Rolle: (Brug ctrl og shift til at vælge flere)</label>
<select class="w-100" name="roles[]" id="roles" class="mb-2" multiple="multiple" required>
@if(count($user->roles) == 0)
@ -85,5 +85,56 @@
}
);
});
function checkInputs() {
var save = true;
$mail = $('#email').val();
$phone = $('#phone').val();
$.ajax({
'async': false,
type: 'get',
url: '{{route('users.nameCheckUpdate')}}',
data: {'mailCheck':$mail, 'phoneCheck':$phone, 'id': {{$user->id}}},
success:function (data) {
if (data == 'both') {
$("#erroremail").show(100);
$("#erroremail").css('color', 'red');
$("#errorphone").show(100);
$("#errorphone").css('color', 'red');
save = false;
} else if(data == 'email'){
$("#errorphone").hide();
$("#erroremail").show(100);
$("#erroremail").css('color', 'red');
save = false;
} else if (data == 'phone') {
$("#erroremail").hide();
$("#errorphone").show(100);
$("#errorphone").css('color', 'red');
save = false;
} else {
$("#errorphone").hide();
$("#erroremail").hide();
}
},
error:function (data) {
console.log(data);
}
});
// If passwords is not the same. Then show an error message and make save false
if ($('#password1').val() != $('#password2').val()) {
$("#errornotsamepass").show(100);
$("#errornotsamepass").css('color', 'red');
save = false;
} else
$("#errornotsamepass").hide();
if (save)
return true;
else
return false;
}
</script>
@endsection

View File

@ -67,6 +67,7 @@ Route::get("/washingCheck", "WashingMachineController@nameCheck")->name("washing
//Check name update adminpanel
Route::get("/usersCheckUpdate", "UserController@nameCheckUpdate")->name("users.nameCheckUpdate");
Route::get("/eventCheckUpdate", "EventController@nameCheckUpdate")->name("events.nameCheckUpdate");
Route::get("/roleCheckUpdate", "RolesController@nameCheckUpdate")->name("roles.nameCheckUpdate");
Route::get("/guidesCheckUpdate", "GuideController@nameCheckUpdate")->name("guides.nameCheckUpdate");