@@ -14,14 +14,29 @@ class TodoController extends Controller
1414 */
1515 public function index ()
1616 {
17- //
18- $ datas = Todo::all ()->reject (function ($ todo ) {
19- return $ todo ->done == 0 ;
20- });
17+ $ datas = Todo::orderBy ('id ' , 'desc ' )->paginate (10 );
18+ return view ('todos.index ' , compact ('datas ' ));
19+ }
2120
21+ /**
22+ * Display a listing of done's todos
23+ */
24+ public function done ()
25+ {
26+ $ datas = Todo::where ('done ' , 1 )->paginate (10 );
2227 return view ('todos.index ' , compact ('datas ' ));
28+ }
2329
2430
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 ();
2540 }
2641
2742 /**
@@ -31,7 +46,7 @@ public function index()
3146 */
3247 public function create ()
3348 {
34- //
49+ return view ( ' todos.create ' );
3550 }
3651
3752 /**
@@ -42,7 +57,17 @@ public function create()
4257 */
4358 public function store (Request $ request )
4459 {
45- //
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 ' );
4671 }
4772
4873 /**
@@ -62,9 +87,9 @@ public function show($id)
6287 * @param int $id
6388 * @return \Illuminate\Http\Response
6489 */
65- public function edit ($ id )
90+ public function edit (Todo $ todo )
6691 {
67- //
92+ return view ( ' todos.edit ' , compact ( ' todo ' ));
6893 }
6994
7095 /**
@@ -74,9 +99,16 @@ public function edit($id)
7499 * @param int $id
75100 * @return \Illuminate\Http\Response
76101 */
77- public function update (Request $ request , $ id )
102+ public function update (Request $ request , Todo $ todo )
78103 {
79- //
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 ' );
80112 }
81113
82114 /**
@@ -85,8 +117,11 @@ public function update(Request $request, $id)
85117 * @param int $id
86118 * @return \Illuminate\Http\Response
87119 */
88- public function destroy ($ id )
120+ public function destroy (Todo $ todo )
89121 {
90- //
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 ();
91126 }
92127}
0 commit comments