From be6e5e8dec1b4382406e7a602dd0c8b2fcca4f4d Mon Sep 17 00:00:00 2001 From: Nabeel Shahzad Date: Wed, 3 Jan 2018 15:27:56 -0600 Subject: [PATCH] admin can add comments to PIREPs #70 --- app/Database/seeds/sample.yml | 14 +++++ .../Controllers/Admin/PirepController.php | 51 ++++++++++++++++--- app/Http/Controllers/Admin/UserController.php | 11 ++-- app/Models/PirepComment.php | 21 +++++--- app/Routes/admin.php | 1 + .../views/admin/pireps/comments.blade.php | 45 ++++++++++++++++ resources/views/admin/pireps/create.blade.php | 1 + resources/views/admin/pireps/edit.blade.php | 2 +- resources/views/admin/pireps/index.blade.php | 2 +- .../{script.blade.php => scripts.blade.php} | 13 +++-- resources/views/admin/pireps/show.blade.php | 9 ++++ resources/views/admin/ranks/create.blade.php | 1 + resources/views/admin/ranks/edit.blade.php | 17 +------ resources/views/admin/ranks/index.blade.php | 11 +--- resources/views/admin/ranks/scripts.blade.php | 21 ++++++++ resources/views/admin/ranks/show.blade.php | 1 + .../views/admin/ranks/subfleets.blade.php | 4 +- resources/views/admin/users/show.blade.php | 17 ++----- .../views/admin/users/show_fields.blade.php | 40 --------------- resources/views/admin/users/table.blade.php | 2 +- 20 files changed, 179 insertions(+), 105 deletions(-) create mode 100644 resources/views/admin/pireps/comments.blade.php rename resources/views/admin/pireps/{script.blade.php => scripts.blade.php} (78%) create mode 100644 resources/views/admin/ranks/scripts.blade.php delete mode 100644 resources/views/admin/users/show_fields.blade.php diff --git a/app/Database/seeds/sample.yml b/app/Database/seeds/sample.yml index b3c55d4f..548b7327 100644 --- a/app/Database/seeds/sample.yml +++ b/app/Database/seeds/sample.yml @@ -380,3 +380,17 @@ pirep_field_values: name: arrival gate value: B14 source: manual + +pirep_comments: + - id: 1 + pirep_id: pirepid_1 + user_id: 1 + comment: A comment + created_at: now + updated_at: now + - id: 2 + pirep_id: pirepid_1 + user_id: 2 + comment: Another comment + created_at: now + updated_at: now diff --git a/app/Http/Controllers/Admin/PirepController.php b/app/Http/Controllers/Admin/PirepController.php index 79b67eb6..adaddec2 100644 --- a/app/Http/Controllers/Admin/PirepController.php +++ b/app/Http/Controllers/Admin/PirepController.php @@ -2,19 +2,24 @@ namespace App\Http\Controllers\Admin; +use Log; +use Flash; +use Response; +use Illuminate\Http\Request; +use Illuminate\Support\Facades\Auth; +use Prettus\Repository\Criteria\RequestCriteria; + +use App\Services\PIREPService; + +use App\Models\PirepComment; +use App\Models\Enums\PirepState; + use App\Http\Requests\CreatePirepRequest; use App\Http\Requests\UpdatePirepRequest; -use App\Models\Enums\PirepState; use App\Repositories\AircraftRepository; use App\Repositories\AirlineRepository; use App\Repositories\AirportRepository; use App\Repositories\PirepRepository; -use App\Services\PIREPService; -use Illuminate\Http\Request; -use Flash; -use Log; -use Prettus\Repository\Criteria\RequestCriteria; -use Response; use App\Facades\Utils; @@ -230,4 +235,36 @@ class PirepController extends BaseController $pirep->refresh(); return view('admin.pireps.pirep_card', ['pirep' => $pirep]); } + + /** + * Add a comment to the Pirep + * @param $id + * @param Request $request + * @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View + */ + public function comments($id, Request $request) + { + $user = Auth::user(); + $pirep = $this->pirepRepo->findWithoutFail($request->id); + if ($request->isMethod('post')) { + $comment = new PirepComment([ + 'user_id' => $user->id, + 'pirep_id' => $pirep->id, + 'comment' => $request->get('comment'), + ]); + + $comment->save(); + $pirep->refresh(); + } + + if($request->isMethod('delete')) { + $comment = PirepComment::find($request->get('comment_id')); + $comment->delete(); + $pirep->refresh(); + } + + return view('admin.pireps.comments', [ + 'pirep' => $pirep, + ]); + } } diff --git a/app/Http/Controllers/Admin/UserController.php b/app/Http/Controllers/Admin/UserController.php index 16cdb09e..2d8bd28d 100644 --- a/app/Http/Controllers/Admin/UserController.php +++ b/app/Http/Controllers/Admin/UserController.php @@ -87,15 +87,20 @@ class UserController extends BaseController */ public function show($id) { - $users = $this->userRepo->findWithoutFail($id); + $user = $this->userRepo->findWithoutFail($id); - if (empty($users)) { + if (empty($user)) { Flash::error('User not found'); return redirect(route('admin.users.index')); } return view('admin.users.show', [ - 'users' => $users, + 'user' => $user, + 'airlines' => Airline::all(), + 'timezones' => Timezonelist::toArray(), + 'airports' => Airport::all()->pluck('icao', 'id'), + 'ranks' => Rank::all()->pluck('name', 'id'), + 'roles' => Role::all()->pluck('name', 'id'), ]); } diff --git a/app/Models/PirepComment.php b/app/Models/PirepComment.php index 8b7326b2..78edb56d 100644 --- a/app/Models/PirepComment.php +++ b/app/Models/PirepComment.php @@ -11,23 +11,28 @@ class PirepComment extends BaseModel { public $table = 'pirep_comments'; - public $fillable - = [ - 'comment', - ]; + public $fillable = [ + 'pirep_id', + 'user_id', + 'comment', + ]; /** * Validation rules * * @var array */ - public static $rules - = [ - 'comment' => 'required', - ]; + public static $rules = [ + 'comment' => 'required', + ]; public function pirep() { return $this->belongsTo('App\Models\Pirep', 'pirep_id'); } + + public function user() + { + return $this->belongsTo('App\Models\User', 'user_id'); + } } diff --git a/app/Routes/admin.php b/app/Routes/admin.php index 41a48c97..57d9a8a9 100644 --- a/app/Routes/admin.php +++ b/app/Routes/admin.php @@ -37,6 +37,7 @@ Route::group([ # pirep related routes Route::resource('pireps', 'PirepController'); Route::match(['get'], 'pireps/pending', 'PirepController@pending'); + Route::match(['get', 'post', 'delete'], 'pireps/{id}/comments', 'PirepController@comments'); Route::match(['post', 'put'], 'pireps/{id}/status', 'PirepController@status')->name('pirep.status'); Route::resource('pirepfields', 'PirepFieldController'); diff --git a/resources/views/admin/pireps/comments.blade.php b/resources/views/admin/pireps/comments.blade.php new file mode 100644 index 00000000..905d340d --- /dev/null +++ b/resources/views/admin/pireps/comments.blade.php @@ -0,0 +1,45 @@ +
+ + + + + + + + @foreach($pirep->comments as $comment) + + + + + + @endforeach + +
+ + {!! $comment->user->name !!} + + +

{!! $comment->comment !!}

+

{!! show_datetime($comment->created_at) !!}

+
+ {!! Form::open(['url' => url('/admin/pireps/'.$pirep->id.'/comments'), + 'method' => 'delete', 'class' => 'pjax_form form-inline']) !!} + {!! Form::hidden('comment_id', $comment->id) !!} + {!! Form::button('', ['type' => 'submit', + 'class' => 'btn btn-danger btn-small']) !!} + {!! Form::close() !!} +
+
+
+
+
+ {!! Form::open(['url' => url('/admin/pireps/'.$pirep->id.'/comments'), + 'method' => 'post', 'class' => 'pjax_form form-inline']) !!} + {!! Form::input('text', 'comment', null, ['class' => 'form-control input-sm']) !!} + {!! Form::button(' Add', ['type' => 'submit', + 'class' => 'btn btn-success btn-small']) !!} + {!! Form::close() !!} +
+
+
+
diff --git a/resources/views/admin/pireps/create.blade.php b/resources/views/admin/pireps/create.blade.php index 64319f94..f23b7ff3 100644 --- a/resources/views/admin/pireps/create.blade.php +++ b/resources/views/admin/pireps/create.blade.php @@ -22,3 +22,4 @@ @endsection +@include('admin.pireps.scripts') diff --git a/resources/views/admin/pireps/edit.blade.php b/resources/views/admin/pireps/edit.blade.php index acc67a3d..ef4f787a 100644 --- a/resources/views/admin/pireps/edit.blade.php +++ b/resources/views/admin/pireps/edit.blade.php @@ -19,4 +19,4 @@ @endsection -@include('admin.pireps.script') +@include('admin.pireps.scripts') diff --git a/resources/views/admin/pireps/index.blade.php b/resources/views/admin/pireps/index.blade.php index 86accec5..ff1a4035 100644 --- a/resources/views/admin/pireps/index.blade.php +++ b/resources/views/admin/pireps/index.blade.php @@ -14,4 +14,4 @@ @endsection -@include('admin.pireps.script') +@include('admin.pireps.scripts') diff --git a/resources/views/admin/pireps/script.blade.php b/resources/views/admin/pireps/scripts.blade.php similarity index 78% rename from resources/views/admin/pireps/script.blade.php rename to resources/views/admin/pireps/scripts.blade.php index 06765884..8690d86e 100644 --- a/resources/views/admin/pireps/script.blade.php +++ b/resources/views/admin/pireps/scripts.blade.php @@ -17,6 +17,16 @@ function changeStatus(values) { } $(document).ready(function() { + + $(document).on('submit', 'form.pjax_form', function (event) { + event.preventDefault(); + $.pjax.submit(event, '#pirep_comments_wrapper', {push: false}); + }); + + $(document).on('pjax:complete', function () { + $(".select2").select2(); + }); + $(document).on('submit', 'form.pirep_submit_status', function (event) { console.log(event); @@ -29,9 +39,6 @@ $(document).ready(function() { console.log(values); console.log('Changing PIREP ' + values.pirep_id + ' to state ' + values.new_status); - //var destContainer = '#pirep_' + pirep_id + '_container'; - //$.pjax.submit(event, destContainer, { push: false, maxCacheLength: 0 }); - changeStatus(values); }); }); diff --git a/resources/views/admin/pireps/show.blade.php b/resources/views/admin/pireps/show.blade.php index 608865eb..b1395603 100644 --- a/resources/views/admin/pireps/show.blade.php +++ b/resources/views/admin/pireps/show.blade.php @@ -14,13 +14,22 @@
+

custom fields

@include('admin.pireps.field_values')
+
+
+

comments

+ @include('admin.pireps.comments') +
+
+
@include('admin.pireps.map')
@endsection +@include('admin.pireps.scripts'); diff --git a/resources/views/admin/ranks/create.blade.php b/resources/views/admin/ranks/create.blade.php index 684b22dc..15399a48 100644 --- a/resources/views/admin/ranks/create.blade.php +++ b/resources/views/admin/ranks/create.blade.php @@ -10,3 +10,4 @@ @endsection +@include('admin.ranks.scripts') diff --git a/resources/views/admin/ranks/edit.blade.php b/resources/views/admin/ranks/edit.blade.php index dd6ba4d2..606b673f 100644 --- a/resources/views/admin/ranks/edit.blade.php +++ b/resources/views/admin/ranks/edit.blade.php @@ -21,19 +21,4 @@ @endsection -@section('scripts') - -@endsection +@include('admin.ranks.scripts') diff --git a/resources/views/admin/ranks/index.blade.php b/resources/views/admin/ranks/index.blade.php index 3d8ae207..4fe69623 100644 --- a/resources/views/admin/ranks/index.blade.php +++ b/resources/views/admin/ranks/index.blade.php @@ -13,13 +13,4 @@ @include('admin.ranks.table') @endsection -@section('scripts') - -@endsection +@include('admin.ranks.scripts') diff --git a/resources/views/admin/ranks/scripts.blade.php b/resources/views/admin/ranks/scripts.blade.php new file mode 100644 index 00000000..462e5bcd --- /dev/null +++ b/resources/views/admin/ranks/scripts.blade.php @@ -0,0 +1,21 @@ +@section('scripts') + +@endsection diff --git a/resources/views/admin/ranks/show.blade.php b/resources/views/admin/ranks/show.blade.php index 1a4f5d8d..38948a88 100644 --- a/resources/views/admin/ranks/show.blade.php +++ b/resources/views/admin/ranks/show.blade.php @@ -14,3 +14,4 @@ @endsection +@include('admin.ranks.scripts') diff --git a/resources/views/admin/ranks/subfleets.blade.php b/resources/views/admin/ranks/subfleets.blade.php index f99056f5..ebcb1845 100644 --- a/resources/views/admin/ranks/subfleets.blade.php +++ b/resources/views/admin/ranks/subfleets.blade.php @@ -31,14 +31,14 @@
- {!! Form::open(['url' => '/admin/ranks/'.$rank->id.'/subfleets', + {!! Form::open(['url' => url('/admin/ranks/'.$rank->id.'/subfleets'), 'method' => 'post', 'class' => 'pjax_form form-inline' ]) !!} {!! Form::select('subfleet_id', $avail_subfleets, null, [ 'placeholder' => 'Select Subfleet', - 'class' => 'select2_dropdown form-control input-lg']) + 'class' => 'select2 form-control input-lg']) !!} {!! Form::button(' Add', ['type' => 'submit', diff --git a/resources/views/admin/users/show.blade.php b/resources/views/admin/users/show.blade.php index ccaaebb5..69c298a4 100644 --- a/resources/views/admin/users/show.blade.php +++ b/resources/views/admin/users/show.blade.php @@ -1,19 +1,10 @@ @extends('admin.app') @section('content') -
-

- Airlines -

-
+
-
-
-
- @include('admin.airlines.show_fields') - Back -
-
-
+ @include('admin.users.fields')
+
+ @endsection diff --git a/resources/views/admin/users/show_fields.blade.php b/resources/views/admin/users/show_fields.blade.php deleted file mode 100644 index 0add7264..00000000 --- a/resources/views/admin/users/show_fields.blade.php +++ /dev/null @@ -1,40 +0,0 @@ - -
- {!! Form::label('icao', 'ICAO:') !!} -

{!! $airlines->icao !!}

-
- -
- {!! Form::label('iata', 'IATA:') !!} -

{!! $airlines->iata !!}

-
- - -
- {!! Form::label('name', 'Name:') !!} -

{!! $airlines->name !!}

-
- -
- {!! Form::label('logo', 'Logo URL:') !!} -

{!! $airlines->logo !!}

-
- - -
- {!! Form::label('active', 'Active:') !!} -

{!! $airlines->active !!}

-
- - -
- {!! Form::label('created_at', 'Created At:') !!} -

{!! $airlines->created_at !!}

-
- - -
- {!! Form::label('updated_at', 'Updated At:') !!} -

{!! $airlines->updated_at !!}

-
- diff --git a/resources/views/admin/users/table.blade.php b/resources/views/admin/users/table.blade.php index efa78f5b..dbd0bfc8 100644 --- a/resources/views/admin/users/table.blade.php +++ b/resources/views/admin/users/table.blade.php @@ -9,7 +9,7 @@ @foreach($users as $user) - {!! $user->name !!} + {!! $user->name !!} {!! $user->email !!} {!! show_date($user->created_at) !!}