new dashboard and profile pages with new design

This commit is contained in:
Nabeel Shahzad
2017-08-02 13:13:08 -05:00
parent e4dc989ab2
commit e4e23dd8a6
20 changed files with 306 additions and 352 deletions

View File

@@ -6,9 +6,14 @@ use \Illuminate\Support\Facades\Facade;
class Utils extends Facade
{
public static function secondsToTime($seconds) {
public static function secondsToTime($seconds, $incl_sec=false) {
$dtF = new \DateTime('@0');
$dtT = new \DateTime("@$seconds");
return $dtF->diff($dtT)->format('%hh %im %ss');
$format = '%hh %im';
if($incl_sec) {
$format .= ' %ss';
}
return $dtF->diff($dtT)->format($format);
}
}

View File

@@ -25,7 +25,7 @@ class LoginController extends Controller
*
* @var string
*/
protected $redirectTo = '/home';
protected $redirectTo = '/dashboard';
public function showLoginForm()
{

View File

@@ -1,10 +0,0 @@
<?php
namespace App\Http\Controllers\Frontend;
use App\Http\Controllers\AppBaseController;
class BaseController extends AppBaseController
{
}

View File

@@ -2,7 +2,11 @@
namespace App\Http\Controllers\Frontend;
class DashboardController extends BaseController
use Illuminate\Support\Facades\Auth;
use App\Http\Controllers\AppBaseController;
class DashboardController extends AppBaseController
{
/**
* Show the application dashboard.
@@ -11,10 +15,8 @@ class DashboardController extends BaseController
*/
public function index()
{
return $this->view('frontend/dashboard');
}
public function test()
{
return $this->view('frontend/dashboard');
return $this->view('dashboard.index', [
'user' => Auth::user(),
]);
}
}

View File

@@ -0,0 +1,50 @@
<?php
namespace App\Http\Controllers\Frontend;
use App\Models\User;
use App\Repositories\AirportRepository;
use App\Http\Controllers\AppBaseController;
use Illuminate\Support\Facades\Auth;
class ProfileController extends AppBaseController
{
private $airportRepository;
public function __construct(AirportRepository $airportRepo)
{
$this->airportRepository = $airportRepo;
}
public function index()
{
$airports = $this->airportRepository->all();
return $this->view('profile.index', [
'user' => Auth::user(),
'airports' => $airports,
]);
}
public function show($id)
{
$user = User::where('id', $id)->first();
if (empty($user)) {
Flash::error('User not found!');
return redirect(route('frontend.dashboard.index'));
}
$airports = $this->airportRepository->all();
return $this->view('profile.index', [
'user' => $user,
'airports' => $airports,
]);
}
public function update()
{
}
}

View File

@@ -13,6 +13,11 @@ users:
email: admin@phpvms.net
password: admin
rank_id: 1
airline_id: 1
home_airport_id: 1
curr_airport_id: 2
flights: 1
flight_time: 21600
created_at: now
updated_at: now

View File

@@ -3,6 +3,9 @@
<component name="NewModuleRootManager" inherit-compiler-output="true">
<exclude-output />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/tests" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/app" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/resources" type="java-resource" />
<excludeFolder url="file://$MODULE_DIR$/vendor/chrisbjr/api-guard" />
<excludeFolder url="file://$MODULE_DIR$/vendor/dg/rss-php" />
<excludeFolder url="file://$MODULE_DIR$/vendor/doctrine/cache" />
@@ -39,4 +42,11 @@
</library>
</orderEntry>
</component>
<component name="TemplatesService">
<option name="TEMPLATE_FOLDERS">
<list>
<option value="$MODULE_DIR$/resources/views" />
</list>
</option>
</component>
</module>

View File

@@ -3222,11 +3222,10 @@ Created using IcoMoon - icomoon.io
-webkit-transform: translate(-50%, -50%);
transform: translate(-50%, -50%);
text-align: center;
color: #FFFFFF;
width: 100%;
max-width: 880px; }
.page-header .category, .page-header .description {
color: rgba(255, 255, 255, 0.5); }
}
.page-header.page-header-small {
height: 60vh;
max-height: 440px; }

View File

Before

Width:  |  Height:  |  Size: 1.8 KiB

After

Width:  |  Height:  |  Size: 1.8 KiB

View File

@@ -1,79 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- CSRF Token -->
<meta name="csrf-token" content="{{ csrf_token() }}">
<title>{{ config('app.name', 'Laravel') }}</title>
<!-- Styles -->
<link href="/css/app.css" rel="stylesheet">
<!-- Scripts -->
<script>
window.Laravel = <?php echo json_encode([
'csrfToken' => csrf_token(),
]); ?>
</script>
</head>
<body>
<div id="app">
<nav class="navbar navbar-default navbar-static-top">
<div class="container">
<div class="navbar-header">
<!-- Collapsed Hamburger -->
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#app-navbar-collapse">
<span class="sr-only">Toggle Navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<!-- Branding Image -->
<a class="navbar-brand" href="{{ url('/') }}">
{{ config('app.name', 'Laravel') }}
</a>
</div>
<div class="collapse navbar-collapse" id="app-navbar-collapse">
<!-- Left Side Of Navbar -->
<ul class="nav navbar-nav">
&nbsp;
</ul>
<!-- Right Side Of Navbar -->
<ul class="nav navbar-nav navbar-right">
<!-- Authentication Links -->
@if (Auth::guest())
<li><a href="{{ url('/login') }}">Login</a></li>
<li><a href="{{ url('/register') }}">Register</a></li>
@else
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">
{{ Auth::user()->name }} <span class="caret"></span>
</a>
<ul class="dropdown-menu" role="menu">
<li>
<a href="{{ url('/logout') }}">Logout</a>
</li>
</ul>
</li>
@endif
</ul>
</div>
</div>
</nav>
@yield('content')
</div>
<!-- Scripts -->
<script src="/js/app.js"></script>
</body>
</html>

View File

@@ -1,113 +1,112 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8"/>
<link rel="apple-touch-icon" sizes="76x76" href="/assets/frontend/img/apple-icon.png">
<link rel="icon" type="image/png" href="/assets/frontend/img/favicon.png">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/>
<title>phpvms</title>
<meta content='width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0, shrink-to-fit=no'
name='viewport'/>
<!-- Fonts and icons -->
<link href="https://fonts.googleapis.com/css?family=Montserrat:400,700,200" rel="stylesheet"/>
<link rel="stylesheet"
href="https://maxcdn.bootstrapcdn.com/font-awesome/latest/css/font-awesome.min.css"/>
<!-- CSS Files -->
<link href="/assets/frontend/css/bootstrap.min.css" rel="stylesheet"/>
<link href="/assets/frontend/css/now-ui-kit.css" rel="stylesheet"/>
<meta charset="utf-8">
<meta name="description" content="Miminium Admin Template v.1">
<meta name="author" content="Isna Nur Azis">
<meta name="keyword" content="">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Miminium</title>
@yield('css')
<!-- start: Css -->
<link rel="stylesheet" type="text/css" href="/assets/frontend/css/bootstrap.min.css">
<!-- plugins -->
<link rel="stylesheet" type="text/css" href="/assets/frontend/css/plugins/font-awesome.min.css"/>
<link rel="stylesheet" type="text/css" href="/assets/frontend/css/plugins/simple-line-icons.css"/>
<link rel="stylesheet" type="text/css" href="/assets/frontend/css/plugins/mediaelementplayer.css"/>
<link rel="stylesheet" type="text/css" href="/assets/frontend/css/plugins/animate.min.css"/>
<link href="/assets/frontend/css/style.css" rel="stylesheet">
@yield('css')
<!-- end: Css -->
<link rel="shortcut icon" href="/assets/frontend/img/logomi.png">
<!-- HTML5 shim and Respond.js IE8 support of HTML5 elements and media queries -->
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
<![endif]-->
</head>
<body id="mimin" class="dashboard topnav">
<!-- start: Header -->
<nav class="navbar navbar-default header navbar-fixed-top">
<div class="col-md-12 nav-wrapper">
<div class="navbar-header" style="width:100%;">
<a href="{{ url('/') }}" class="navbar-brand">
<b>phpvms</b>
</a>
<ul class="nav navbar-nav search-nav">
<li class="active"><a href="#">Menu Item</a></li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Dropdown <span class="caret"></span></a>
<ul class="dropdown-menu">
<li><a href="#">Action</a></li>
<li><a href="#">Another action</a></li>
<li><a href="#">Something else here</a></li>
<li role="separator" class="divider"></li>
<li><a href="#">Separated link</a></li>
<li role="separator" class="divider"></li>
<li><a href="#">One more separated link</a></li>
</ul>
<body>
<!-- Navbar -->
<nav class="navbar navbar-toggleable-md" style="background: #067ec1;">
<div class="container" style="width: 85%!important;">
<div class="navbar-translate">
<button class="navbar-toggler navbar-toggler-right" type="button" data-toggle="collapse"
data-target="#navigation" aria-controls="navigation-index" aria-expanded="false"
aria-label="Toggle navigation">
<span class="navbar-toggler-bar bar1"></span>
<span class="navbar-toggler-bar bar2"></span>
<span class="navbar-toggler-bar bar3"></span>
</button>
<p class="navbar-brand text-white" data-placement="bottom" target="_blank">
<img src="/assets/frontend/img/logo_blue_bg.svg" width="135px" style=""/>
</p>
</div>
<div class="collapse navbar-collapse justify-content-end" id="navigation"
data-nav-image="/assets/frontend/img/blurred-image-1.jpg">
<ul class="navbar-nav">
{{--<li class="nav-item active">--}}
<li class="nav-item">
<a class="nav-link" href="{!! url('/dashboard') !!}">
<i class="fa fa-tachometer" aria-hidden="true"></i>
<p>Dashboard</p>
</a>
</li>
</ul>
<ul class="nav navbar-nav navbar-right user-nav">
<li class="user-name"><span>Akihiko Avaron</span></li>
<li class="dropdown avatar-dropdown">
<img src="asset/img/avatar.jpg" class="img-circle avatar" alt="user name" data-toggle="dropdown" aria-haspopup="true" aria-expanded="true"/>
<ul class="dropdown-menu user-dropdown">
<li><a href="#"><span class="fa fa-user"></span> My Profile</a></li>
<li><a href="#"><span class="fa fa-calendar"></span> My Calendar</a></li>
<li role="separator" class="divider"></li>
<li class="more">
<ul>
<li><a href=""><span class="fa fa-cogs"></span></a></li>
<li><a href=""><span class="fa fa-lock"></span></a></li>
<li><a href=""><span class="fa fa-power-off "></span></a></li>
</ul>
</li>
</ul>
<li class="nav-item">
<a class="nav-link" href="#">
<i class="fa fa-plane" aria-hidden="true"></i>
<p>Flights</p>
</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">
<i class="fa fa-cloud-upload" aria-hidden="true"></i>
<p>PIREPs</p>
</a>
</li>
<li class="nav-item">
<a class="nav-link" href="{!! url('/profile') !!}">
<i class="fa fa-user-circle-o" aria-hidden="true"></i>
<p>Profile</p>
</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">
<i class="fa fa-external-link-square" aria-hidden="true"></i>
<p>Log Out</p>
</a>
</li>
</ul>
</div>
</div>
</nav>
<!-- end: Header -->
<!-- start: Content -->
<div id="content">
@yield('content')
<!-- End Navbar -->
<div class="clearfix" style="height: 50px;"></div>
<div class="wrapper">
<div class="clear"></div>
<div class="container-fluid" style="width: 85%!important;">
@yield('content')
</div>
<div class="clearfix" style="height: 200px;"></div>
{{--<footer class="footer footer-default">--}}
{{--<div class="container">--}}
{{--<div class="copyright">--}}
{{--&copy;--}}
{{--<script>--}}
{{--document.write(new Date().getFullYear())--}}
{{--</script>--}}
{{--, Designed by--}}
{{--<a href="http://www.invisionapp.com" target="_blank">Invision</a>. Coded by--}}
{{--<a href="https://www.creative-tim.com" target="_blank">Creative Tim</a>.--}}
{{--</div>--}}
{{--</div>--}}
{{--</footer>--}}
</div>
<!-- end: content -->
<!-- start: Javascript -->
<script src="/assets/frontend/js/jquery.min.js"></script>
<script src="/assets/frontend/js/jquery.ui.min.js"></script>
<script src="/assets/frontend/js/bootstrap.min.js"></script>
<!-- plugins -->
<script src="/assets/frontend/js/plugins/holder.min.js"></script>
<script src="/assets/frontend/js/plugins/moment.min.js"></script>
<script src="/assets/frontend/js/plugins/jquery.nicescroll.js"></script>
<!-- custom -->
<script src="/assets/frontend/js/main.js"></script>
<script type="text/javascript">
$(document).ready(function(){
});
</script>
<script src="/assets/frontend/js/core/jquery.3.2.1.min.js" type="text/javascript"></script>
<script src="/assets/frontend/js/core/tether.min.js" type="text/javascript"></script>
<script src="/assets/frontend/js/core/bootstrap.min.js" type="text/javascript"></script>
<script src="/assets/frontend/js/plugins/bootstrap-switch.js"></script>
<script src="/assets/frontend/js/plugins/nouislider.min.js" type="text/javascript"></script>
<script src="/assets/frontend/js/plugins/bootstrap-datepicker.js" type="text/javascript"></script>
<script src="/assets/frontend/js/now-ui-kit.js" type="text/javascript"></script>
@yield('scripts')
<!-- end: Javascript -->
</body>
</html>

View File

@@ -1,48 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>phpvms</title>
<meta content='width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no' name='viewport'>
<link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.5.0/css/font-awesome.min.css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.2/css/select2.min.css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/admin-lte/2.3.3/css/AdminLTE.min.css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/admin-lte/2.3.3/css/skins/_all-skins.min.css">
<!-- Ionicons -->
<link rel="stylesheet" href="https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css">
@yield('css')
</head>
<body class="skin-blue sidebar-mini">
<div class="wrapper">
<div id="page-content-wrapper">
<div class="container-fluid">
<div class="row">
<div class="col-lg-12">
</div>
</div>
</div>
</div>
</div>
<!-- Main Footer -->
<footer class="main-footer" style="max-height: 100px;text-align: center">
<strong>Copyright © 2016 <a href="#">Company</a>.</strong> All rights reserved.
</footer>
<!-- jQuery 2.1.4 -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script>
<script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.2/js/select2.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/iCheck/1.0.2/icheck.min.js"></script>
<!-- AdminLTE App -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/admin-lte/2.3.3/js/app.min.js"></script>
</body>
</html>

View File

@@ -6,7 +6,7 @@
<form class="form" method="POST" action="{{ url('/login') }}">
<div class="header header-primary text-center">
<div class="logo-container" style="width: 320px;">
<img src="/img/logo.svg" width="320" height="320" style="background: #FFF">
<img src="/assets/frontend/img/logo.svg" width="320" height="320" style="background: #FFF">
</div>
</div>
<div class="content">

View File

@@ -0,0 +1,56 @@
@extends('layouts.default.app')
@section('content')
<div class="row">
<div class="col-md-4">
<div class="card card-primary text-white">
<div class="card-block text-center">
<h1 class="">{!! $user->flights !!}</h1>
<h2 class="description" style="color: white;">flights</h2>
</div>
</div>
</div>
<div class="col-md-4">
<div class="card card-primary text-white">
<div class="card-block text-center">
<h1 class="">{!! \App\Facades\Utils::secondsToTime($user->flight_time, false)!!}</h1>
<h2 class="description" style="color: white;">hours</h2>
</div>
</div>
</div>
<div class="col-md-4">
<div class="card card-primary text-white">
<div class="card-block text-center">
<h1 class="">{!! $user->current_airport->icao !!}</h1>
<h2 class="description" style="color: white;">current airport</h2>
</div>
</div>
</div>
</div>
<div class="row">
<div class="separator separator-info"></div>
</div>
<div class="row">
<div class="col-sm-10">
<div class="card">
<div class="card-block">
<p class="category">News</p>
<!-- Tab panes -->
<div class="tab-content">
News goes here!
</div>
</div>
</div>
</div>
<div class="col-sm-2 text-center">
<p><a href="#" class="btn btn-info btn-round">
<i class="now-ui-icons ui-2_favourite-28"></i> New Report
</a>
</p>
<p><a href="#" class="btn btn-info btn-round">
<i class="now-ui-icons ui-2_favourite-28"></i> My Reports
</a></p>
</div>
</div>
@endsection

View File

@@ -1,17 +0,0 @@
@extends('layouts.default.app')
@section('content')
<div class="container">
<div class="row">
<div class="col-md-8 col-md-offset-2">
<div class="panel panel-default">
<div class="panel-heading">Dashboard</div>
<div class="panel-body">
You are logged in!
</div>
</div>
</div>
</div>
</div>
@endsection

View File

@@ -80,7 +80,7 @@
@if(Entrust::hasRole('admin'))
<a href="{{ url('/admin') }}">Admin</a>
@endif
<a href="{{ url('/user/dashboard') }}">Dashboard</a>
<a href="{{ url('/dashboard') }}">Dashboard</a>
<a href="{{ url('/logout') }}">Logout</a>
@endif
</div>

View File

@@ -0,0 +1,23 @@
<div class="section-story-overview">
<div class="row">
<div class="col-md-9 push-md-1">
<p class="category">Update</p>
{!! Form::model($user, ['url' => url('/profile'), 'method' => 'post']) !!}
<div class="card">
<div class="card-block">
<div class="input-group form-group-no-border{{ $errors->has('email') ? ' has-error' : '' }} input-lg">
<span class="input-group-addon">
<i class="fa fa-envelope-open-o" aria-hidden="true"></i>
</span>
{!! Form::email('email', null, [
'class' => 'form-control',
'placeholder' => 'Email',
]) !!}
</div>
{!! Form::close() !!}
</div>
</div>
</div>
</div>
</div>

View File

@@ -0,0 +1,49 @@
@extends('layouts.default.app')
@section('content')
<div class="container profile-page">
<div class="page-header page-header-small text-color-dark-beige">
<div class="page-header-image"></div>
<div class="container text-color-dark-beige">
<div class="content-center" style="color: #9b9992;">
<div class="photo-container">
<img src="/assets/frontend/img/logo.svg" alt="">
</div>
<h3 class="title">{!! $user->name !!}</h3>
<h6>{!! $user->rank->name !!}</h6>
<p class="description" style="color: #9A9A9A;">
{!! $user->airline->name !!}
</p
<br /><br />
<div class="content" style="max-width: 650px;">
<div class="social-description">
<h2>{!! $user->flights!!}</h2>
<p>Flights</p>
</div>
<div class="social-description">
<h2>{!! \App\Facades\Utils::secondsToTime($user->flight_time, false)!!}</h2>
<p>Flight Hours</p>
</div>
@if($user->home_airport)
<div class="social-description">
<h2>{!! $user->home_airport->icao !!}</h2>
<p>Home Airport</p>
</div>
@endif
@if($user->current_airport)
<div class="social-description">
<h2>{!! $user->current_airport->icao !!}</h2>
<p>Current Airport</p>
</div>
@endif
</div>
</div>
</div>
</div>
</div>
@endsection

View File

@@ -1,91 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Laravel</title>
<!-- Fonts -->
<link href="https://fonts.googleapis.com/css?family=Raleway:100,600" rel="stylesheet" type="text/css">
<!-- Styles -->
<style>
html, body {
background-color: #fff;
color: #636b6f;
font-family: 'Raleway';
font-weight: 100;
height: 100vh;
margin: 0;
}
.full-height {
height: 100vh;
}
.flex-center {
align-items: center;
display: flex;
justify-content: center;
}
.position-ref {
position: relative;
}
.top-right {
position: absolute;
right: 10px;
top: 18px;
}
.content {
text-align: center;
}
.title {
font-size: 84px;
}
.links > a {
color: #636b6f;
padding: 0 25px;
font-size: 12px;
font-weight: 600;
letter-spacing: .1rem;
text-decoration: none;
text-transform: uppercase;
}
.m-b-md {
margin-bottom: 30px;
}
</style>
</head>
<body>
<div class="flex-center position-ref full-height">
@if (Route::has('login'))
<div class="top-right links">
<a href="{{ url('/login') }}">Login</a>
<a href="{{ url('/register') }}">Register</a>
</div>
@endif
<div class="content">
<div class="title m-b-md">
Laravel
</div>
<div class="links">
<a href="https://laravel.com/docs">Documentation</a>
<a href="https://laracasts.com">Laracasts</a>
<a href="https://laravel-news.com">News</a>
<a href="https://forge.laravel.com">Forge</a>
<a href="https://github.com/laravel/laravel">GitHub</a>
</div>
</div>
</div>
</body>
</html>

View File

@@ -7,10 +7,11 @@ Route::get('/home', 'HomeController@index');
* These are only visible to a logged in user
*/
Route::group([
'namespace' => 'Frontend', 'prefix' => 'user', 'as' => 'frontend.',
'namespace' => 'Frontend', 'prefix' => '', 'as' => 'frontend.',
'middleware' => ['role:admin|user'],
], function () {
Route::resource('dashboard', 'DashboardController');
Route::resource('profile', 'ProfileController');
});
Auth::routes();