diff --git a/app/Http/Controllers/AddMemberController.php b/app/Http/Controllers/AddMemberController.php index e11a3ca485518babadfbe9b952efd9e125ae73e9..51854e9cfe72d855b5f5c8dc190166a8ae6f8e21 100644 --- a/app/Http/Controllers/AddMemberController.php +++ b/app/Http/Controllers/AddMemberController.php @@ -11,6 +11,12 @@ use App\Member; class AddMemberController extends Controller { + + public function __construct() + { + $this->middleware('admin'); + } + /** * Display a listing of the resource. * @@ -64,21 +70,28 @@ class AddMemberController extends Controller } } - return view('admin.showmember')->with('array_members', $array_members); + $members = Member::orderBy('name','asc')->paginate(30); + return view('members.list')->with('members', $members)->with('success', 'Members Imported'); } public function importMember(Request $request) { - $array_members = collect(); $this->validate($request, [ 'email' => array( 'required', 'regex:/[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,6}/'), - 'phone_number' => 'required', - 'name' => 'required', - 'nim' => 'required' + 'phone_number' => + array( + 'required', + 'regex:/^[0-9]+$/'), + 'nim' => + array( + 'required', + 'regex:/^[0-9]+$/'), + 'name' => 'required' ]); + $array_members = collect(); $member = Member::create([ 'nim' => $request->input('nim'), @@ -86,14 +99,15 @@ class AddMemberController extends Controller 'email' => $request->input('email'), 'phone_number' => $request->input('phone_number'), 'interest' => 'none', - 'company' => 'none', + 'company' => 'none' ]); $member->save(); $member = Member::where('email', $request->input('email'))->first(); $array_members->push($member); - return view('admin.showmember')->with('array_members', $array_members); + $members = Member::orderBy('name','asc')->paginate(30); + return redirect('/members')->with('members', $members)->with('success', 'Member Added'); } /** diff --git a/app/Http/Controllers/MembersController.php b/app/Http/Controllers/MembersController.php index 50b96c08ab8ffcf748d795216565a4548e24e920..f49c434d3b13da525ae644faded75916b871d011 100644 --- a/app/Http/Controllers/MembersController.php +++ b/app/Http/Controllers/MembersController.php @@ -91,7 +91,10 @@ class MembersController extends Controller array( 'required', 'regex:/[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,6}/'), - 'phone_number' => 'required', + 'phone_number' => + array( + 'required', + 'regex:/^[0-9]+$/'), 'company' => 'required', 'interest' => 'required', 'profile_image' => 'image|nullable|max:1999' diff --git a/database/migrations/2018_03_19_134312_profile_nim.php b/database/migrations/2018_03_19_134312_profile_nim.php index a9fb95860747c895d80c07e993055221982a3367..d426bba3df26c711157b72b62937f5a55bf8b592 100644 --- a/database/migrations/2018_03_19_134312_profile_nim.php +++ b/database/migrations/2018_03_19_134312_profile_nim.php @@ -14,7 +14,7 @@ class ProfileNim extends Migration public function up() { Schema::table('members', function($table){ - $table->string('nim'); + $table->string('nim')->unique(); }); } diff --git a/resources/views/admin/addmember.blade.php b/resources/views/admin/addmember.blade.php index 779de1231191d6ec003e8abe425a3b507a75739d..4603227f13f7668b97d3130db462585db0214eb3 100644 --- a/resources/views/admin/addmember.blade.php +++ b/resources/views/admin/addmember.blade.php @@ -1,48 +1,55 @@ -<!doctype html> -<html lang="{{ app()->getLocale() }}"> - <head> - <meta charset="utf-8"> - <meta http-equiv="X-UA-Compatible" content="IE=edge"> - <meta name="viewport" content="width=device-width, initial-scale=1"> - <link rel="stylesheet" href="{{asset('css/app.css')}}"> - <link href="//maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet" id="bootstrap-css"> - <title>@yield('title')</title> - </head> - <body> - <div class="container"> - <h2 class="sub-title">Add Members</h2> - {!! Form::open(['action' => ['AddMemberController@importCSV'], 'method' => 'POST', 'enctype' => 'multipart/form-data']) !!} - <div class="form-group"> - {{Form::label('list_members','Members')}} - {{Form::file('list_members')}} - </div> - {{Form::hidden('_method', 'POST')}} - {{Form::submit('Submit', ['class' => 'btn btn-primary'])}} - {!! Form::close() !!} - <link rel="stylesheet" type="text/css" href="css/file-upload.css" /> - <script src="js/file-upload.js"></script> - <script type="text/javascript"> - $(document).ready(function() { - $('.file-upload').file_upload(); - }); - </script> +@extends('layouts.app') + +@section('title', 'Add Member') + +@section('content') + @include('inc.adminmenu') + <main role="main" class="col-7"> + <div class="d-flex justify-content-between flex-wrap flex-md-nowrap align-items-center pb-2 mb-3"> + <h2 class="sub-title">Add Members</h2> </div> - <div class="container"> - <h2 class="sub-title">Add Members</h2> - {!! Form::open(['action' => ['AddMemberController@importMember'], 'method' => 'POST']) !!} - <div class="form-group"> - {{Form::label('email','Email')}} - {{Form::text('email', '', ['class' => 'form-control'])}} + <div class="d-flex justify-content-between flex-wrap flex-md-nowrap align-items-center pb-2 mb-3 border-bottom"> + {!! Form::open(['action' => ['AddMemberController@importCSV'], 'method' => 'POST', 'enctype' => 'multipart/form-data']) !!} + <div class="form-group"> + {{Form::label('list_members','Members')}} + {{Form::file('list_members')}} + </div> + {{Form::hidden('_method', 'POST')}} + {{Form::submit('Submit', ['class' => 'btn btn-primary'])}} + {!! Form::close() !!} + </div> + </main> - {{Form::label('phone_number','Phone Number')}} - {{Form::text('phone_number', '', ['class' => 'form-control'])}} + <main role="main" class="col-7"> + <div class="d-flex justify-content-between flex-wrap flex-md-nowrap align-items-center pb-2 mb-3"> + <h2 class="sub-title">Add Members</h2> + </div> + <div class="d-flex justify-content-between flex-wrap flex-md-nowrap align-items-center pb-2 mb-3 border-bottom"> + {!! Form::open(['action' => ['AddMemberController@importMember'], 'method' => 'POST']) !!} + <div class="form-group"> + {{Form::label('nim','Student ID')}} + {{Form::text('nim', '', ['class' => 'form-control'])}} - {{Form::label('name','name')}} - {{Form::text('name', '', ['class' => 'form-control'])}} - </div> - {{Form::hidden('_method', 'POST')}} - {{Form::submit('Submit', ['class' => 'btn btn-primary'])}} - {!! Form::close() !!} + {{Form::label('email','Email')}} + {{Form::text('email', '', ['class' => 'form-control'])}} + + {{Form::label('phone_number','Phone Number')}} + {{Form::text('phone_number', '', ['class' => 'form-control'])}} + + {{Form::label('name','Name')}} + {{Form::text('name', '', ['class' => 'form-control'])}} + </div> + {{Form::hidden('_method', 'POST')}} + {{Form::submit('Submit', ['class' => 'btn btn-primary'])}} + {!! Form::close() !!} </div> - </body> -</html> \ No newline at end of file + </main> + + <link rel="stylesheet" type="text/css" href={{asset('css/file-upload.css')}} /> + <script src="js/file-upload.js"></script> + <script type="text/javascript"> + $(document).ready(function() { + $('.file-upload').file_upload(); + }); + </script> +@endsection \ No newline at end of file diff --git a/resources/views/dashboard.blade.php b/resources/views/dashboard.blade.php index 93b5b298f8b692d641c25a601dc82cfbb87a4ef6..2260dca42472d617d4db97ae2db5924bdfb7bd67 100644 --- a/resources/views/dashboard.blade.php +++ b/resources/views/dashboard.blade.php @@ -3,56 +3,22 @@ @section('title', 'Dashboard') @section('content') - <div class="container-fluid"> - <div class="row"> - <nav class="col-3 sidebar"> - <div class="sidebar-sticky"> - <ul class="nav flex-column"> - <li class="nav-item"> - <a class="nav-link active" href="/dashboard"> - <span data-feather="home"></span> - <i class="sideMenu">Dashboard</i><span class="sr-only">(current)</span> - </a> - </li> - <li class="nav-item"> - <a class="nav-link" href="/members"> - <span data-feather="users"></span> - <i class="sideMenu">Members List</i> - </a> - </li> - <li class="nav-item"> - <a class="nav-link" href="/dashboard/#"> - <span data-feather="file"></span> - <i class="sideMenu">Articles</i> - </a> - </li> - </ul> - </div> - </nav> - - <main role="main" class="col-7"> - <div class="d-flex justify-content-between flex-wrap flex-md-nowrap align-items-center pb-2 mb-3 border-bottom"> - <img src="{{URL::asset('storage/banner.jpg')}}" id="bannerMember"> - </div> - <div class="d-flex justify-content-between flex-wrap flex-md-nowrap align-items-center pb-2 mb-3 border-bottom"> - <h1 class="h2">What to Show</h1> - </div> - </main> - </div> - </div> - - <!-- Bootstrap core JavaScript - ================================================== --> - <!-- Placed at the end of the document so the pages load faster --> - <script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script> - <script>window.jQuery || document.write('<script src="../../../../assets/js/vendor/jquery-slim.min.js"><\/script>')</script> - <script src="../../../../assets/js/vendor/popper.min.js"></script> - <script src="../../../../dist/js/bootstrap.min.js"></script> - - <!-- Icons --> - <script src="https://unpkg.com/feather-icons/dist/feather.min.js"></script> - <script> - feather.replace() - </script> -</html> + @include('inc.adminmenu') + <main role="main" class="col-7"> + <div class="d-flex justify-content-between flex-wrap flex-md-nowrap align-items-center pb-2 mb-3 border-bottom"> + <img src="{{URL::asset('storage/banner.jpg')}}" id="bannerMember"> + </div> + <div class="d-flex justify-content-between flex-wrap flex-md-nowrap align-items-center pb-2 mb-3 border-bottom"> + <h1 class="h2">What to Show</h1> + </div> + </main> + </div> +</div> + <!-- Bootstrap core JavaScript + ================================================== --> + <!-- Placed at the end of the document so the pages load faster --> + <script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script> + <script>window.jQuery || document.write('<script src="../../../../assets/js/vendor/jquery-slim.min.js"><\/script>')</script> + <script src="../../../../assets/js/vendor/popper.min.js"></script> + <script src="../../../../dist/js/bootstrap.min.js"></script> @endsection diff --git a/resources/views/inc/adminmenu.blade.php b/resources/views/inc/adminmenu.blade.php new file mode 100644 index 0000000000000000000000000000000000000000..e983ccb4078e2b1364a5a0eaf9082272f77d4a2a --- /dev/null +++ b/resources/views/inc/adminmenu.blade.php @@ -0,0 +1,32 @@ +<div class="container-fluid"> + <div class="row"> + <nav class="col-3 sidebar"> + <div class="sidebar-sticky"> + <ul class="nav flex-column"> + <li class="nav-item"> + <a class="nav-link active" href="/dashboard"> + <span data-feather="home"></span> + <i class="sideMenu">Dashboard</i><span class="sr-only">(current)</span> + </a> + </li> + <li class="nav-item"> + <a class="nav-link" href="/members"> + <span data-feather="users"></span> + <i class="sideMenu">Members List</i> + </a> + </li> + <li class="nav-item"> + <a class="nav-link" href="/dashboard/#"> + <span data-feather="file"></span> + <i class="sideMenu">Articles</i> + </a> + </li> + </ul> + </div> + </nav> + + <!-- Icons --> + <script src="https://unpkg.com/feather-icons/dist/feather.min.js"></script> + <script> + feather.replace() + </script> \ No newline at end of file diff --git a/resources/views/inc/navbar.blade.php b/resources/views/inc/navbar.blade.php index b01d4f67060e029cc04d9409ce400accc8fe7ee7..5ccfabf60a969f889ce1adf145e7be437570346c 100644 --- a/resources/views/inc/navbar.blade.php +++ b/resources/views/inc/navbar.blade.php @@ -16,10 +16,10 @@ <li class="nav-item"> <a class="nav-link" href="/members">Members</a> </li> - @endif <li class="nav-item"> <a class="nav-link" href="#">Articles</a> </li> + @endif </ul> <!-- Right Side Of Navbar --> diff --git a/resources/views/members/list.blade.php b/resources/views/members/list.blade.php index 42fc40a61809701f1d411354a4264c931972a9cc..d557129d018c9045fd04e1faf3a7557f92b9aa1d 100644 --- a/resources/views/members/list.blade.php +++ b/resources/views/members/list.blade.php @@ -3,58 +3,25 @@ @section('title', 'Members List') @section('content') - <div class="container-fluid"> - <div class="row"> - <nav class="col-3 sidebar"> - <div class="sidebar-sticky"> - <ul class="nav flex-column"> - <li class="nav-item"> - <a class="nav-link active" href="/dashboard"> - <span data-feather="home"></span> - <i class="sideMenu">Dashboard</i><span class="sr-only">(current)</span> - </a> - </li> - <li class="nav-item"> - <a class="nav-link" href="/members"> - <span data-feather="users"></span> - <i class="sideMenu">Members List</i> - </a> - </li> - <li class="nav-item"> - <a class="nav-link" href="/dashboard/#"> - <span data-feather="file"></span> - <i class="sideMenu">Articles</i> - </a> - </li> - </ul> - </div> - </nav> + @include('inc.adminmenu') - <main role="main" class="col-7"> - <div class="d-flex justify-content-between flex-wrap flex-md-nowrap align-items-center pb-2 mb-3 border-bottom"> - <img src="{{URL::asset('storage/banner.jpg')}}" id="bannerMember"> - </div> - <div class="d-flex justify-content-between flex-wrap flex-md-nowrap align-items-center pb-2 mb-3 border-bottom"> - <h1 class="h2">Members List</h1> - <button class="btn btn-primary">Add Member</button> - </div> - @if(count($members) > 0) - @foreach($members as $member) - <div class="list-group-item"> - <h4><a href="/members/{{$member->id}}">{{$member->name}}</a></h4> - </div> - @endforeach - <ul class="pagination pull-right">{{$members->links()}}</ul> - @else - <p>No member.</p> - @endif - </main> + <main role="main" class="col-7"> + <div class="d-flex justify-content-between flex-wrap flex-md-nowrap align-items-center pb-2 mb-3 border-bottom"> + <img src="{{URL::asset('storage/banner.jpg')}}" id="bannerMember"> </div> - </div> - - <!-- Icons --> - <script src="https://unpkg.com/feather-icons/dist/feather.min.js"></script> - <script> - feather.replace() - </script> + <div class="d-flex justify-content-between flex-wrap flex-md-nowrap align-items-center pb-2 mb-3 border-bottom"> + <h1 class="h2">Members List</h1> + <a href="/addmember" class="btn btn-primary">Add Member</a> + </div> + @if(count($members) > 0) + @foreach($members as $member) + <div class="list-group-item"> + <h4><a href="/members/{{$member->id}}">{{$member->name}}</a></h4> + </div> + @endforeach + <ul class="pagination pull-right">{{$members->links()}}</ul> + @else + <p>No member.</p> + @endif + </main> @endsection \ No newline at end of file diff --git a/resources/views/users/profile.blade.php b/resources/views/users/profile.blade.php index b13c9ab27c45905404780fd0ed2e5fe32301b45f..ace7e141c252f3397b65416e02ce900b8db3f8c5 100644 --- a/resources/views/users/profile.blade.php +++ b/resources/views/users/profile.blade.php @@ -8,7 +8,7 @@ <div class="col-xs-12 col-sm-12 col-md-6 col-lg-6 col-xs-offset-0 col-sm-offset-0 col-md-offset-3 col-lg-offset-3 toppad" > <div class="panel panel-info"> <div class="panel-heading"> - <h3 class="panel-title">{{$user->name}}</h3> + <h3 class="panel-title">{{$user->name.' ('.$user->nim .')'}}</h3> </div> <div class="panel-body"> <div class="row">