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) + |
|---|---|---|
| + + {!! $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() !!} + | +
{!! $airlines->icao !!}
-{!! $airlines->iata !!}
-{!! $airlines->name !!}
-{!! $airlines->logo !!}
-{!! $airlines->active !!}
-{!! $airlines->created_at !!}
-{!! $airlines->updated_at !!}
-