Skip to content

Commit 3d9bc19

Browse files
committed
Merge branch 'feature/add_todos_index_page' into develop
2 parents 8d5d569 + fe34aa1 commit 3d9bc19

File tree

10 files changed

+561
-17
lines changed

10 files changed

+561
-17
lines changed

app/Http/Controllers/TodoController.php

Lines changed: 47 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -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
}

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)