Manage user pages

master
NoNameGuy 2017-06-14 00:25:18 +01:00
parent badfb83f41
commit 9c9fa4c975
7 changed files with 267 additions and 212 deletions

View File

@ -29,7 +29,7 @@ class UserPageController extends Controller
$planRoute = true;
return view('user_page', ['name'=>$user->name, 'vehicles' => $vehicles, 'planRoute' => $planRoute]);
return view('planRoute', ['name'=>$user->name, 'vehicles' => $vehicles, 'planRoute' => $planRoute]);
}
public function add(Request $request)
@ -53,13 +53,20 @@ class UserPageController extends Controller
}
public function edit($id)
public function editVehicle($id=null)
{
$user = Auth::user();
$vehicles = Vehicle::join('vehicles', 'vehicle.id', 'vehicles.vehicle_id')->join('users', 'users.id', 'vehicles.user_id')->where('users.email', $user->email)->get();
$vehicle=Vehicle::where('id', $id)->get();
$vehicles = Vehicle::join('vehicles', 'vehicle.id', 'vehicles.vehicle_id')
->join('users', 'users.id', 'vehicles.user_id')->where('users.email', $user->email)
->select('brand','model', 'vehicle.id as vehicle_id')->get();
$selectedVehicle=Vehicle::where('id', $id)->first();
$preferredVehicle = User::where('id', Auth::user()->id)->get();
return view('user_page', ['name'=>$user->name, 'vehicle' => $vehicle, 'vehicles' => $vehicles]);
return view('manageVehicles', ['name'=>$user->name, 'selectedVehicle' => $selectedVehicle, 'vehicles' => $vehicles]);
}
@ -212,4 +219,32 @@ class UserPageController extends Controller
}
}
public function getVehicles()
{
# code...
$user = Auth::user();
$vehicles = Vehicle::join('vehicles', 'vehicle.id', 'vehicles.vehicle_id')
->join('users', 'users.id', 'vehicles.user_id')
->where('users.email', $user->email)
->get();
return view('manageVehicles', ['name'=>$user->name, 'vehicles' => $vehicles]);
}
public function getInfo()
{
# code...
$user = Auth::user();
$vehicles = Vehicle::join('vehicles', 'vehicle.id', 'vehicles.vehicle_id')
->join('users', 'users.id', 'vehicles.user_id')
->where('users.email', $user->email)
->get();
return view('manageInfo', ['name'=>$user->name, 'vehicles' => $vehicles]);
}
}

View File

@ -30,7 +30,7 @@
<li class="active"><a href="{{route('home')}}">Home</a></li>
<li><a href="#">About</a></li>
@if (Auth::user())
<li><a href="{{route('userpage')}}">My Area</a></li>
<li><a href="{{route('planRoute')}}">My Area</a></li>
@endif
</ul>
<ul class="nav navbar-nav navbar-right">

View File

@ -0,0 +1,57 @@
@include('header')
<div class="col-sm-8 text-center">
<h1 class="center">Welcome, {{$name}}</h1>
<br><br>
<div class="btn-group">
<a id="percurso" type="button" class="btn btn-primary btn-lg" href="{{route('planRoute')}}">Planear Percurso</a>
<a id="veiculos" type="button" class="btn btn-success btn-lg" href="{{route('manageVehicles')}}">Gerir Veiculos</a>
<a id="info" type="button" class="btn btn-info btn-lg" href="{{route('manageInfo')}}">Gerir Info</a>
</div>
<br><br>
<div id="divInfo">
<div class="col-sm-6">
<div class="form-group">
<label>Nome: </label>
<input class="form-control" id="txtName" name="name" type="text">
</div>
<div class="form-group">
<label>Email: </label>
<input class="form-control" id="txtEmail" name="email" type="text">
</div>
<a href="#" class="btn btn-success">Guardar Alterações</a>
</div>
<form id="form-change-password" role="form" method="POST" action="{{ route('editPass') }}" novalidate class="form-horizontal">
<div class="col-sm-6">
<div class="form-group">
<label for="current-password" class="col-sm-4 control-label">Password Antiga: </label>
<input type="hidden" name="_token" value="{{ csrf_token() }}">
<input type="password" class="form-control" id="current-password" name="current-password" placeholder="Password">
</div>
<div class="form-group">
<label for="password" class="col-sm-4 control-label">Password Nova: </label>
<input type="password" class="form-control" id="password" name="password" placeholder="Nova Password">
</div>
<div class="form-group">
<label for="password_confirmation" class="col-sm-4 control-label">Confirmar Password</label>
<input type="password" class="form-control" id="password_confirmation" name="password_confirmation" placeholder="Confirmar Password">
</div>
<button type="submit" class="btn btn-danger">Alterar Password</a>
</div>
</form>
</div>
</div>
@include('footer')

View File

@ -0,0 +1,93 @@
@include('header')
<div class="col-sm-8 text-center">
<h1 class="center">Welcome, {{$name}}</h1>
<br><br>
<div class="btn-group">
<a id="percurso" type="button" class="btn btn-primary btn-lg" href="{{route('planRoute')}}">Planear Percurso</a>
<a id="veiculos" type="button" class="btn btn-success btn-lg" href="{{route('manageVehicles')}}">Gerir Veiculos</a>
<a id="info" type="button" class="btn btn-info btn-lg" href="{{route('manageInfo')}}">Gerir Info</a>
</div>
<br><br>
<div id="divVeiculos">
<div class="col-sm-6">
<div class="list-group" id="vehicleList">
@if($vehicles)
<ul>
@foreach($vehicles as $vehicle)
<li class="list-group-item {{Auth::user()->preferredVehicle==$vehicle->vehicle_id ? 'active': ''}}"
value="{{$vehicle->vehicle_id}}">{{$vehicle->brand}} - {{$vehicle->model}}
<a class="btn btn-success" href="{{ route('editVehicle',$vehicle->vehicle_id)}}">Editar</a>
<a class="btn btn-danger">Remover</a>
</li>
@endforeach
</ul>
@endif
</div>
</div>
<div class="col-sm-6 text-left">
<form method="POST" action="{{ route('addvehicle') }}">
{{ csrf_field() }}
<div class="form-group">
<label for="brand">Marca: </label>
<input class="form-control" id="txtBrand" name="brand" type="text"
value="@if(isset($selectedVehicle)){{$selectedVehicle->brand}}@endif">
</div>
<div class="form-group">
<label for="model">Modelo: </label>
<input class="form-control" id="txtModel" name="model" type="text"
value="@if(isset($selectedVehicle)){{$selectedVehicle->model}}@endif">
</div>
<div class="form-group">
<label for="fuel">Tipo de Combustível: </label>
<input class="form-control" id="txtFuelType" name="fuel" type="text"
value="@if(isset($selectedVehicle)){{$selectedVehicle->fuel}}@endif">
</div>
<div class="form-group">
<label for="consumption">Consumo(L/100): </label>
<input class="form-control" id="txtConsumption" type="number" name="consumption" step="0.1"
value="@if(isset($selectedVehicle)){{$selectedVehicle->consumption}}@endif">
</div>
<div class="form-group">
<label for="favoriteVehicle">Preferred Vehicle </label>
<input type="checkbox" name="favoriteVehicle">
</div>
<div class="center">
<button type="submit" class="btn btn-primary btn-lg">Guardar</button>
</div>
</form>
</div>
<script type="text/javascript">
$(" #vehicleList>a").click(function(){
/*{{-- @foreach($vehicles as $vehicle)
@if($vehicle->id == $(this).val())
$("#txtBrand").val("{{$vehicle->brand}}");
$("#txtModel").val('');
$("#txtFuelType").val('');
$("#txtConsumption").val('');
@endif
@endforeach--}}*/
});
$("#addVehicle").click(function(){
$("#txtBrand").val('');
$("#txtModel").val('');
$("#txtFuelType").val('');
$("#txtConsumption").val('');
});
</script>
</div>
</div>
@include('footer')

View File

@ -0,0 +1,70 @@
@include('header')
<div class="col-sm-8 text-center">
<h1 class="center">Welcome, {{$name}}</h1>
<br><br>
<div class="btn-group">
<a id="percurso" type="button" class="btn btn-primary btn-lg" href="{{route('planRoute')}}">Planear Percurso</a>
<a id="veiculos" type="button" class="btn btn-success btn-lg" href="{{route('manageVehicles')}}">Gerir Veiculos</a>
<a id="info" type="button" class="btn btn-info btn-lg" href="{{route('manageInfo')}}">Gerir Info</a>
</div>
<br><br>
<div id="divPercurso">
<div id="mapUP" class="col-sm-6" style="width: 300px;height: 500px;"></div>
<!--<script>
function initMap() {
var centerPortugal = {lat: 39.676944, lng: -8.1425};
var map = new google.maps.Map(document.getElementById('map'), {
zoom: 7,
center: centerPortugal
});
}
</script>
<script async defer
src="https://maps.googleapis.com/maps/api/js?key=AIzaSyDsZDCiU1k6mSuywRRL88xxXY-81RMEU7s&callback=initMap">
</script>
-->
<div class="col-sm-6 text-left">
{{csrf_field()}}
<div class="form-group">
<label for="inputdefault">Inicio: </label>
<input class="form-control" id="upOrigin" name="upOrigin" type="text">
</div>
<div class="form-group">
<label for="inputdefault">Destino: </label>
<input class="form-control" id="upDestination" name="upDestination" type="text">
</div>
<div class="dropdown">
<button class="btn btn-default dropdown-toggle" type="button" id="menu1" data-toggle="dropdown">Veiculos
<span class="caret"></span></button>
<ul class="dropdown-menu" role="menu" aria-labelledby="menu1">
<li role="presentation"><a role="menuitem" tabindex="-1" href="#">HTML</a></li>
<li role="presentation"><a role="menuitem" tabindex="-1" href="#">CSS</a></li>
<li role="presentation"><a role="menuitem" tabindex="-1" href="#">JavaScript</a></li>
</ul>
</div>
<input type="checkbox" name="highway" id="upHighway">Autoestrada</input>
<label>Autonomia (km):<input type="number" name="upAutonomyKm" id="upAutonomyKm"></label><br>
<label>Autonomia (l):<input type="number" name="upAutonomyL" id="upAutonomyL"></label>
<label>Consumo (l/km):<input type="number" name="upConsumption" id="upConsumption"></label>
<br><br>
<div class="center">
<button id="upSearch" class="btn btn-primary btn-lg">Pesquisar</button>
</div>
</div>
</div>
</div>
<script async defer
src="https://maps.googleapis.com/maps/api/js?key=AIzaSyDsZDCiU1k6mSuywRRL88xxXY-81RMEU7s&callback=initMapUP" >
</script>
@include('footer')

View File

@ -1,206 +0,0 @@
@include('header')
<div class="col-sm-8 text-center">
<h1 class="center">Welcome, {{$name}}</h1>
<br><br>
<div class="btn-group">
<button id="percurso" type="button" class="btn btn-primary btn-lg">Planear Percurso</button>
<button id="veiculos" type="button" class="btn btn-success btn-lg">Gerir Veiculos</button>
<button id="info" type="button" class="btn btn-info btn-lg">Gerir Info</button>
</div>
<script>
$('#veiculos').click(function() {
$('#divPercurso').hide();
$('#divInfo').hide();
$('#divVeiculos').toggle('slow', function() {
// Animation complete.
});
});
$('#percurso').click(function() {
$('#divVeiculos').hide();
$('#divInfo').hide();
$('#divPercurso').toggle('slow', function() {
// Animation complete.
});
});
$('#info').click(function() {
$('#divVeiculos').hide();
$('#divPercurso').hide();
$('#divInfo').toggle('slow', function() {
// Animation complete.
});
});
</script>
<br><br><br>
<div id="divPercurso">
<div id="mapUP" class="col-sm-6" style="width: 300px;height: 500px;"></div>
<!--<script>
function initMap() {
var centerPortugal = {lat: 39.676944, lng: -8.1425};
var map = new google.maps.Map(document.getElementById('map'), {
zoom: 7,
center: centerPortugal
});
}
</script>
<script async defer
src="https://maps.googleapis.com/maps/api/js?key=AIzaSyDsZDCiU1k6mSuywRRL88xxXY-81RMEU7s&callback=initMap">
</script>
-->
<div class="col-sm-6 text-left">
{{csrf_field()}}
<div class="form-group">
<label for="inputdefault">Inicio: </label>
<input class="form-control" id="upOrigin" name="upOrigin" type="text">
</div>
<div class="form-group">
<label for="inputdefault">Destino: </label>
<input class="form-control" id="upDestination" name="upDestination" type="text">
</div>
<div class="dropdown">
<button class="btn btn-default dropdown-toggle" type="button" id="menu1" data-toggle="dropdown">Veiculos
<span class="caret"></span></button>
<ul class="dropdown-menu" role="menu" aria-labelledby="menu1">
<li role="presentation"><a role="menuitem" tabindex="-1" href="#">HTML</a></li>
<li role="presentation"><a role="menuitem" tabindex="-1" href="#">CSS</a></li>
<li role="presentation"><a role="menuitem" tabindex="-1" href="#">JavaScript</a></li>
</ul>
</div>
<input type="checkbox" name="highway" id="upHighway">Autoestrada</input>
<label>Autonomia (km):<input type="number" name="upAutonomyKm" id="upAutonomyKm"></label><br>
<label>Autonomia (l):<input type="number" name="upAutonomyL" id="upAutonomyL"></label>
<label>Consumo (l/km):<input type="number" name="upConsumption" id="upConsumption"></label>
<br><br>
<div class="center">
<button id="upSearch" class="btn btn-primary btn-lg">Pesquisar</button>
</div>
</div>
</div>
<div id="divVeiculos" style="display:none">
<div class="col-sm-6">
<div class="list-group" id="vehicleList">
@if($vehicles)
@foreach($vehicles as $vehicle)
<a href="{{ route('editVehicle',$vehicle->id)}}"class="list-group-item {{Auth::user()->preferredVehicle==$vehicle->vehicle_id ? 'active': ''}}" value="{{$vehicle->id}}" onclick="var brand={{$vehicle->brand}}, {{$vehicle->model}}, {{$vehicle->fuel}}, {{$vehicle->consumption}}, {{Auth::user()->preferredVehicle==$vehicle->id? 1 : 0}};updateVehiclePage(brand)">{{$vehicle->brand}} - {{$vehicle->model}}</a>
@endforeach
@endif
</div>
</div>
<div class="col-sm-6 text-left">
<form method="POST" action="{{ route('addvehicle') }}" autocomplete="on">
{{ csrf_field() }}
<div class="form-group">
<label for="brand">Marca: </label>
<input class="form-control" id="txtBrand" name="brand" type="text">
</div>
<div class="form-group">
<label for="model">Modelo: </label>
<input class="form-control" id="txtModel" name="model" type="text">
</div>
<div class="form-group">
<label for="fuel">Tipo de Combustível: </label>
<input class="form-control" id="txtFuelType" name="fuel" type="text">
</div>
<div class="form-group">
<label for="consumption">Consumo(L/100): </label>
<input class="form-control" id="txtConsumption" type="number" name="consumption" step="0.1">
</div>
<div class="form-group">
<label for="favoriteVehicle">Preferred Vehicle </label>
<input type="checkbox" name="favoriteVehicle">
</div>
<div class="center">
<button type="submit" class="btn btn-primary btn-lg">Adicionar</button>
<button type="button" class="btn btn-success btn-lg">Editar</button>
<button type="button" class="btn btn-danger btn-lg" formaction="{{--route('deletevehicle',$v->id)--}}">Remover</button>
</div>
</form>
</div>
<script type="text/javascript">
$(" #vehicleList>a").click(function(){
/*{{-- @foreach($vehicles as $vehicle)
@if($vehicle->id == $(this).val())
$("#txtBrand").val("{{$vehicle->brand}}");
$("#txtModel").val('');
$("#txtFuelType").val('');
$("#txtConsumption").val('');
@endif
@endforeach--}}*/
});
$("#addVehicle").click(function(){
$("#txtBrand").val('');
$("#txtModel").val('');
$("#txtFuelType").val('');
$("#txtConsumption").val('');
});
</script>
</div>
<div id="divInfo" style="display:none">
<div class="col-sm-6">
<div class="form-group">
<label>Nome: </label>
<input class="form-control" id="txtName" name="name" type="text">
</div>
<div class="form-group">
<label>Email: </label>
<input class="form-control" id="txtEmail" name="email" type="text">
</div>
<a href="#" class="btn btn-success">Guardar Alterações</a>
</div>
<form id="form-change-password" role="form" method="POST" action="{{ route('editPass') }}" novalidate class="form-horizontal">
<div class="col-sm-6">
<div class="form-group">
<label for="current-password" class="col-sm-4 control-label">Password Antiga: </label>
<input type="hidden" name="_token" value="{{ csrf_token() }}">
<input type="password" class="form-control" id="current-password" name="current-password" placeholder="Password">
</div>
<div class="form-group">
<label for="password" class="col-sm-4 control-label">Password Nova: </label>
<input type="password" class="form-control" id="password" name="password" placeholder="Nova Password">
</div>
<div class="form-group">
<label for="password_confirmation" class="col-sm-4 control-label">Confirmar Password</label>
<input type="password" class="form-control" id="password_confirmation" name="password_confirmation" placeholder="Confirmar Password">
</div>
<button type="submit" class="btn btn-danger">Alterar Password</a>
</div>
</form>
</div>
</div>
<script async defer
src="https://maps.googleapis.com/maps/api/js?key=AIzaSyDsZDCiU1k6mSuywRRL88xxXY-81RMEU7s&callback=initMapUP" >
</script>
@include('footer')

View File

@ -63,3 +63,9 @@ Route::get('/userpage/edit/{id}', 'UserPageController@edit')->name('editVehicle'
Route::post('/userpage', 'UserPageController@postTripData')->name('sendTripData');
Route::post('/userpage/editPass', 'UserPageController@postCredentials')->name('editPass');
Route::get('/userpage', 'UserPageController@index')->name('planRoute');
Route::get('/userpage/vehicles', 'UserPageController@getVehicles')->name('manageVehicles');
Route::get('/userpage/info', 'UserPageController@getInfo')->name('manageInfo');
Route::get('/userpage/vehicles/edit/{id}', 'UserPageController@editVehicle')->name('editVehicle');