Skip to content

Commit fe34aa1

Browse files
committed
- add page index to list all todos
- status design (currents / done) - filter all todos or done todos - create new todo - delete todo - update todo - done todo - show description - use carbon API to show dates and duration around todos
1 parent d05dd1c commit fe34aa1

File tree

10 files changed

+556
-19
lines changed

10 files changed

+556
-19
lines changed

app/Http/Controllers/TodoController.php

Lines changed: 47 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -14,15 +14,29 @@ class TodoController extends Controller
1414
*/
1515
public function index()
1616
{
17-
//
18-
$datas = Todo::all();
19-
// $datas = Todo::all()->reject(function ($todo) {
20-
// return $todo->done == 0;
21-
// });
17+
$datas = Todo::orderBy('id', 'desc')->paginate(10);
18+
return view('todos.index', compact('datas'));
19+
}
2220

21+
/**
22+
* Display a listing of done's todos
23+
*/
24+
public function done()
25+
{
26+
$datas = Todo::where('done', 1)->paginate(10);
2327
return view('todos.index', compact('datas'));
28+
}
2429

2530

31+
/**
32+
* Action to change todo's status to done
33+
*/
34+
public function makedone(Todo $todo)
35+
{
36+
$todo->done = 1;
37+
$todo->update();
38+
toastr()->success("La todo <span class='badge badge-dark'>#$todo->id</span> a bien été terminée.");
39+
return back();
2640
}
2741

2842
/**
@@ -32,7 +46,7 @@ public function index()
3246
*/
3347
public function create()
3448
{
35-
//
49+
return view('todos.create');
3650
}
3751

3852
/**
@@ -43,7 +57,17 @@ public function create()
4357
*/
4458
public function store(Request $request)
4559
{
46-
//
60+
$todo = new Todo();
61+
$todo->name = $request->name;
62+
$todo->description = $request->description;
63+
if(isset($request->done))
64+
{
65+
$todo->done = $request->done;
66+
}
67+
$todo->save();
68+
69+
toastr()->success("La todo <span class'badge badge-dark'>#$todo->id</span> vient d'être créée.");
70+
return redirect()->route('todos.index');
4771
}
4872

4973
/**
@@ -63,9 +87,9 @@ public function show($id)
6387
* @param int $id
6488
* @return \Illuminate\Http\Response
6589
*/
66-
public function edit($id)
90+
public function edit(Todo $todo)
6791
{
68-
//
92+
return view('todos.edit', compact('todo'));
6993
}
7094

7195
/**
@@ -75,9 +99,16 @@ public function edit($id)
7599
* @param int $id
76100
* @return \Illuminate\Http\Response
77101
*/
78-
public function update(Request $request, $id)
102+
public function update(Request $request, Todo $todo)
79103
{
80-
//
104+
if (!isset ($request->done)) {
105+
$request['done'] = 0;
106+
}
107+
108+
$todo->update($request->all());
109+
110+
toastr()->success("La todo <span class'badge badge-dark'>#$todo->id</span> a bien été mise à jour.");
111+
return redirect()->route('todos.index');
81112
}
82113

83114
/**
@@ -86,8 +117,11 @@ public function update(Request $request, $id)
86117
* @param int $id
87118
* @return \Illuminate\Http\Response
88119
*/
89-
public function destroy($id)
120+
public function destroy(Todo $todo)
90121
{
91-
//
122+
$todo->delete();
123+
toastr()->error("La todo <span class='badge badge-dark'>#$todo->id</span> a bien été supprimée.");
124+
125+
return back();
92126
}
93127
}

composer.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,13 @@
99
"license": "MIT",
1010
"require": {
1111
"php": "^7.2",
12+
"doctrine/dbal": "^2.10",
1213
"fideloper/proxy": "^4.0",
1314
"laravel/framework": "^6.2",
1415
"laravel/telescope": "^3.1",
1516
"laravel/tinker": "^2.0",
16-
"laravel/ui": "^1.2"
17+
"laravel/ui": "^1.2",
18+
"yoeunes/toastr": "^1.2"
1719
},
1820
"require-dev": {
1921
"facade/ignition": "^1.4",

0 commit comments

Comments
 (0)