Add pilots list page; fix gravatar display and pilot profile #82

This commit is contained in:
Nabeel Shahzad
2018-01-19 17:07:31 -05:00
parent f58b01f3ea
commit 3a02a77eba
13 changed files with 204 additions and 102 deletions

View File

@@ -36,7 +36,7 @@ users:
home_airport_id: KJFK
curr_airport_id: KJFK
flights: 1
flight_time: 43200
flight_time: 4320
created_at: now
updated_at: now
state: 0
@@ -50,7 +50,7 @@ users:
home_airport_id: KJFK
curr_airport_id: KAUS
flights: 1
flight_time: 43200
flight_time: 4320
created_at: now
updated_at: now
state: 1

View File

@@ -0,0 +1,30 @@
<?php
namespace App\Http\Controllers\Frontend;
use App\Repositories\UserRepository;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
class UserController extends Controller
{
private $userRepo;
public function __construct(
UserRepository $userRepo
) {
$this->userRepo = $userRepo;
}
/**
*
*/
public function index(Request $request)
{
return $this->view('users.index',[
'country' => new \League\ISO3166\ISO3166(),
'users' => $this->userRepo->orderBy('name', 'desc')->paginate(25),
]);
}
}

View File

@@ -88,14 +88,21 @@ class User extends Authenticatable
}
/**
* @param mixed $size Size of the gravatar, in pixels
* @return string
*/
public function getGravatarAttribute()
public function gravatar($size=null)
{
$size = config('gravatar.size');
$default = config('gravatar.default');
return config('gravatar.url') .
md5(strtolower(trim($this->email))) . '?d=' . urlencode($default ) . '&s=' . $size;
$uri = config('gravatar.url')
. md5(strtolower(trim($this->email))).'?d='.urlencode($default);
if($size !== null) {
$uri .= '&s='.$size;
}
return $uri;
}
/**

View File

@@ -11,6 +11,9 @@ Route::group([
Route::get('r/{id}', 'PirepController@show')->name('pirep.show.public');
Route::get('p/{id}', 'ProfileController@show')->name('profile.show.public');
Route::get('users', 'UserController@index')->name('users.show');
Route::get('pilots', 'UserController@index')->name('users.show');
Route::get('livemap', 'AcarsController@index')->name('livemap.public');
});

View File

@@ -5,6 +5,5 @@
return [
'url' => 'https://www.gravatar.com/avatar/',
'default' => 'https://en.gravatar.com/userimage/12856995/7c7c1da6387853fea65ff74983055386.png',
'size' => 80,
'default' => 'https://en.gravatar.com/userimage/12856995/aa6c0527a723abfd5fb9e246f0ff8af4.png',
];

View File

@@ -1,7 +1,7 @@
<div class="row">
<div class="form-group col-sm-12">
{{--<div class="avatar">
<img src="{!! $pirep->pilot->gravatar !!}" />
<img src="{!! $pirep->pilot->gravatar() !!}" />
</div>--}}
Filed By: <a href="{!! route('admin.users.edit', [$pirep->pilot->id]) !!}" target="_blank">
{!! $pirep->pilot->pilot_id !!} {!! $pirep->pilot->name !!}

View File

@@ -1,4 +1,4 @@
<table class="table table-hover table-responsive" id="airlines-table">
<table class="table table-hover table-responsive" id="users-table">
<thead>
<th>Name</th>
<th>Email</th>

View File

@@ -48,95 +48,7 @@
</p>
</div>
<div class="collapse navbar-collapse justify-content-end" id="navigation">
<ul class="navbar-nav">
@if(Auth::check())
<li class="nav-item">
<a class="nav-link" href="{!! url('/dashboard') !!}">
<i class="fa fa-tachometer"></i>
<p>Dashboard</p>
</a>
</li>
@endif
<li class="nav-item">
<a class="nav-link" href="{!! url('/livemap') !!}">
<i class="fa fa-globe"></i>
<p>Live Map</p>
</a>
</li>
@if(!Auth::check())
<li class="nav-item">
<a class="nav-link" href="{!! url('/login') !!}">
<i class="fa fa-sign-in"></i>
<p>Login</p>
</a>
</li>
<li class="nav-item">
<a class="nav-link" href="{!! url('/register') !!}">
<i class="fa fa-id-card-o"></i>
<p>Register</p>
</a>
</li>
{{-- Show the module links for being logged out --}}
@foreach($moduleSvc->getFrontendLinks($logged_in=false) as &$link)
<li class="nav-item">
<a class="nav-link" href="{!! url($link['url']) !!}">
<i class="{!! $link['icon'] !!}"></i>
<p>{!! $link['title'] !!}</p>
</a>
</li>
@endforeach
@else
<li class="nav-item">
<a class="nav-link" href="{!! url('/flights') !!}">
<i class="fa fa-plane"></i>
<p>Flights</p>
</a>
</li>
<li class="nav-item">
<a class="nav-link" href="{!! url('/pireps') !!}">
<i class="fa fa-cloud-upload"></i>
<p>PIREPs</p>
</a>
</li>
<li class="nav-item">
<a class="nav-link" href="{!! url('/profile') !!}">
<i class="fa fa-user-circle-o"></i>
<p>Profile</p>
</a>
</li>
@role('admin')
<li class="nav-item">
<a class="nav-link" href="{!! url('/admin') !!}">
<i class="fa fa-circle-o-notch"></i>
<p>Admin</p>
</a>
</li>
@endrole
{{-- Show the module links for being logged out --}}
@foreach($moduleSvc->getFrontendLinks($logged_in=true) as &$link)
<li class="nav-item">
<a class="nav-link" href="{!! url($link['url']) !!}">
<i class="{!! $link['icon'] !!}"></i>
<p>{!! $link['title'] !!}</p>
</a>
</li>
@endforeach
<li class="nav-item">
<a class="nav-link" href="{!! url('/logout') !!}">
<i class="fa fa-external-link-square"></i>
<p>Log Out</p>
</a>
</li>
@endif
</ul>
@include('layouts.default.nav')
</div>
</div>
</nav>

View File

@@ -21,7 +21,7 @@
</h3>
<div class="photo-container">
<img class="rounded-circle"
src="{!! $user->gravatar !!}">
src="{!! $user->gravatar(123) !!}">
</div>
</div>
<div class="content content-center">

View File

@@ -0,0 +1,96 @@
<ul class="navbar-nav">
@if(Auth::check())
<li class="nav-item">
<a class="nav-link" href="{!! url('/dashboard') !!}">
<i class="fa fa-tachometer"></i>
<p>Dashboard</p>
</a>
</li>
@endif
<li class="nav-item">
<a class="nav-link" href="{!! url('/livemap') !!}">
<i class="fa fa-globe"></i>
<p>Live Map</p>
</a>
</li>
<li class="nav-item">
<a class="nav-link" href="{!! url('/pilots') !!}">
<i class="fa fa-users"></i>
<p>Pilots</p>
</a>
</li>
@if(!Auth::check())
<li class="nav-item">
<a class="nav-link" href="{!! url('/login') !!}">
<i class="fa fa-sign-in"></i>
<p>Login</p>
</a>
</li>
<li class="nav-item">
<a class="nav-link" href="{!! url('/register') !!}">
<i class="fa fa-id-card-o"></i>
<p>Register</p>
</a>
</li>
{{-- Show the module links for being logged out --}}
@foreach($moduleSvc->getFrontendLinks($logged_in=false) as &$link)
<li class="nav-item">
<a class="nav-link" href="{!! url($link['url']) !!}">
<i class="{!! $link['icon'] !!}"></i>
<p>{!! $link['title'] !!}</p>
</a>
</li>
@endforeach
@else
<li class="nav-item">
<a class="nav-link" href="{!! url('/flights') !!}">
<i class="fa fa-plane"></i>
<p>Flights</p>
</a>
</li>
<li class="nav-item">
<a class="nav-link" href="{!! url('/pireps') !!}">
<i class="fa fa-cloud-upload"></i>
<p>PIREPs</p>
</a>
</li>
<li class="nav-item">
<a class="nav-link" href="{!! url('/profile') !!}">
<i class="fa fa-user-circle-o"></i>
<p>Profile</p>
</a>
</li>
@role('admin')
<li class="nav-item">
<a class="nav-link" href="{!! url('/admin') !!}">
<i class="fa fa-circle-o-notch"></i>
<p>Admin</p>
</a>
</li>
@endrole
{{-- Show the module links for being logged out --}}
@foreach($moduleSvc->getFrontendLinks($logged_in=true) as &$link)
<li class="nav-item">
<a class="nav-link" href="{!! url($link['url']) !!}">
<i class="{!! $link['icon'] !!}"></i>
<p>{!! $link['title'] !!}</p>
</a>
</li>
@endforeach
<li class="nav-item">
<a class="nav-link" href="{!! url('/logout') !!}">
<i class="fa fa-external-link-square"></i>
<p>Log Out</p>
</a>
</li>
@endif
</ul>

View File

@@ -4,7 +4,7 @@
<div class="row profile-page content-center text-color-dark-beige">
<div class="col-md-4" style="text-align:center;">
<div class="photo-container">
<img src="{!! public_asset('/assets/frontend/img/logo.svg') !!}" alt="">
<img src="{!! $user->gravatar(512) !!}" style="width: 123px;">
</div>
<h3 class="title">{!! $user->name !!}</h3>
<h6><span class="flag-icon flag-icon-{!! $user->country !!}"></span></h6>
@@ -22,7 +22,7 @@
</div>
<div class="social-description">
<h2>{!! \App\Facades\Utils::minutesToTimeString($user->flight_time, false)!!}</h2>
<h2>{!! \App\Facades\Utils::minutesToTimeString($user->flight_time, false) !!}</h2>
<p>Flight Hours</p>
</div>

View File

@@ -0,0 +1,17 @@
@extends('layouts.default.app')
@section('title', 'Pilots')
@section('content')
<div class="row">
<div class="col-md-12">
<h2 class="description">pilots</h2>
@include('layouts.default.users.table')
</div>
</div>
<div class="row">
<div class="col-12 text-center">
{{ $users->links('layouts.default.pagination.default') }}
</div>
</div>
@endsection

View File

@@ -0,0 +1,38 @@
<table class="table table-hover" id="users-table">
<thead>
<th></th>
<th>Name</th>
<th style="text-align: center"></th>
<th style="text-align: center">Airline</th>
<th style="text-align: center">Location</th>
<th style="text-align: center">Flights</th>
<th style="text-align: center">Hours</th>
</thead>
<tbody>
@foreach($users as $user)
<tr>
<td style="width: 80px;">
<div class="photo-container">
<img class="rounded-circle"
src="{!! $user->gravatar(256) !!}&s=256"/>
</div>
</td>
<td>
<a href="{!! route('frontend.profile.show.public', ['id' => $user->id]) !!}">
{!! $user->name !!}
</a>
</td>
<td align="center">
@if(filled($user->country))
<span class="flag-icon flag-icon-{!! $user->country !!}"
title="{!! $country->alpha2($user->country)['name'] !!}"></span>
@endif
</td>
<td class="text-center">{!! $user->airline->icao !!}</td>
<td class="text-center">{!! $user->curr_airport_id !!}</td>
<td align="center">{!! $user->flights !!}</td>
<td align="center">{!! \App\Facades\Utils::minutesToTimeString($user->flight_time) !!}</td>
</tr>
@endforeach
</tbody>
</table>