diff --git a/app/Http/Controllers/Resources/BidsController.php b/app/Http/Controllers/Resources/BidsController.php index 7dfe6af..a7beb87 100644 --- a/app/Http/Controllers/Resources/BidsController.php +++ b/app/Http/Controllers/Resources/BidsController.php @@ -82,8 +82,17 @@ public function index(Request $request, Task $task) return DB::select('select * from bids b, users u where b.task_id = ? and b.user_id = u.id', [$task->id]); } } - - + + public function maxprice(Task $task) + { + return DB::maxprice('SELECT MAX(price) FROM bids b, WHERE b.task_title = $task.task_title'); + } + + public function countbids(Task $task) + { + return DB::countbids('SELECT COUNT(bid) FROM tasks t, WHERE t.task_title = $task.task_title'); + } + /** * Update the selected field of the bid, whether is it true or false. * diff --git a/app/Http/Controllers/Resources/TasksController.php b/app/Http/Controllers/Resources/TasksController.php index 38699a1..d20aef8 100644 --- a/app/Http/Controllers/Resources/TasksController.php +++ b/app/Http/Controllers/Resources/TasksController.php @@ -75,7 +75,17 @@ public function edit(Task $task) $generic_tasks = (object)DB::select("select * from generic_tasks"); return view('tasks.edit', compact('task', 'generic_tasks')); } - + + public function search($query) + { + $tasks = (object)DB::select("SELECT * FROM tasks WHERE (title LIKE '%query%' OR start_date LIKE '%query%' OR end_date LIKE '%query%' OR created_at LIKE '%query%' OR category LIKE '%query%')"; + + //SELECT * FROM projectitem WHERE (description LIKE '%$keywords%' OR item LIKE '%$keywords%')"; + //$tasks = Task::where('title','LIKE', "%$query%")->get(); + //->orWhere('created_at','=', "$query")->orWhere('category','LIKE',"%$query%")->orWhere('start_date','=',"$query")->orWhere('end_date','=',"%$query%")->get(); + + return view('tasks.search')->withDetails($tasks)->withQuery($query); + } /* |-------------------------------------------------------------------------- | Resource Methods diff --git a/resources/views/home.blade.php b/resources/views/home.blade.php index 0a482d7..4dcbbb3 100644 --- a/resources/views/home.blade.php +++ b/resources/views/home.blade.php @@ -23,10 +23,16 @@ @if (sizeOf($tasks)>0) + + + + + + @@ -36,6 +42,7 @@ +
Search tasks:
Title Category Start EndMax Bid Price Status
{{$task->category}} {{$task->start_date}} {{$task->end_date}}{{$task->max_bid_price}} @php switch($task->status) { diff --git a/resources/views/tasks/search.blade.php b/resources/views/tasks/search.blade.php new file mode 100644 index 0000000..7f5b57c --- /dev/null +++ b/resources/views/tasks/search.blade.php @@ -0,0 +1,39 @@ +@extends('layouts.app') + + +@section('content') + +
+ @if(count($details) > 0) +

The Search results for your query {{ $query }} are :

+

Task details

+ + + + + + + + + + + + @foreach($details as $task) + + + + + + + + @endforeach + +
TitleCreated_atCategoryStart_DateEnd_Date
{{$task->title}}{{$task->create_at}}{{$task->category}}{{$task->start_date}}{{$task->end_date}}
+ @else + No results found + @endif +
+ + + +@endsection diff --git a/routes/web.php b/routes/web.php index b819e99..3e66179 100644 --- a/routes/web.php +++ b/routes/web.php @@ -24,11 +24,15 @@ Route::get('/tasks/{task}/edit', 'Resources\TasksController@edit'); // this should be a post or a patch but Laravel gives a MethodNotAllowed error if it is anything but get Route::get('/tasks/{task}/status/{status}', 'Resources\TasksController@updateStatus')->name('tasks.updateStatus'); - + Route::any('/tasks/search/{query}','Resources\TasksController@search'); + Route::post('tasks/{task}/bids/{bid}/{selected}', 'Resources\BidsController@update')->name('bid.update'); Route::post('/tasks/{task}/bids', 'Resources\BidsController@store'); Route::patch('/tasks/{task}/bids/{bid}', 'Resources\BidsController@update'); Route::delete('/bids/{bid}', 'Resources\BidsController@destroy')->name('bid.destroy'); + Route::any('/tasks/maxprice', 'Resources\BidsController@findmax'); + Route::any('/tasks/countbids', 'Resources\BidsController@countbids'); + Route::delete('/users/{user}', 'Resources\UsersController@destroy')->name('user.destroy'); Route::post('/users', 'Resources\UsersController@store');