Skip to content

Commit d598afc

Browse files
committed
workalong complete
1 parent 87f3c19 commit d598afc

7 files changed

Lines changed: 98 additions & 25 deletions

File tree

src/main/java/org/launchcode/codingevents/controllers/EventController.java

Lines changed: 29 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,23 +3,44 @@
33
import org.springframework.stereotype.Controller;
44
import org.springframework.ui.Model;
55
import org.springframework.web.bind.annotation.GetMapping;
6+
import org.springframework.web.bind.annotation.PostMapping;
67
import org.springframework.web.bind.annotation.RequestMapping;
8+
import org.springframework.web.bind.annotation.RequestParam;
79

810
import java.util.ArrayList;
11+
import java.util.List;
912

1013
@Controller
1114
@RequestMapping("events")
1215
public class EventController {
1316

17+
private static List<String> events = new ArrayList<>();
1418
@GetMapping
15-
public String events(Model model) {
16-
ArrayList<String> eventNames = new ArrayList<>();
17-
eventNames.add("Stanley Cup");
18-
eventNames.add("World Cup");
19-
eventNames.add("Superbowl");
20-
eventNames.add("World Series");
21-
22-
model.addAttribute("events", eventNames);
19+
public String displayAllEvents(Model model) {
20+
// List<String> eventNames = new ArrayList<>();
21+
// eventNames.add("Stanley Cup");
22+
// eventNames.add("World Cup");
23+
// eventNames.add("Superbowl");
24+
// eventNames.add("World Series");
25+
//
26+
// model.addAttribute("events", eventNames);
27+
model.addAttribute("events", events);
2328
return "events/index";
2429
}
30+
31+
// located @ /events/create
32+
@GetMapping("create")
33+
public String renderCreateEventForm() {
34+
return "events/create";
35+
}
36+
37+
//lives at /events/create
38+
@PostMapping("create")
39+
public String createEvent(@RequestParam String eventName) {
40+
events.add(eventName);
41+
return "redirect:/events";
42+
43+
}
44+
45+
2546
}

src/main/resources/static/script.js

Whitespace-only changes.
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
body {
2+
font-size: 18px;
3+
color: purple;
4+
}
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
<!DOCTYPE html>
2+
<html lang="en" xmlns:th="http://www.thymeleaf.org/">
3+
<head th:replace="fragments :: head"></head>
4+
<body class="container">
5+
6+
<h1>Create Event</h1>
7+
8+
<nav th:replace="fragments :: header"></nav>
9+
10+
<form method="post" action="/events/create">
11+
<div class="form-group">
12+
<label>Name
13+
<input type="text" name="eventName" class="form-control">
14+
</label>
15+
</div>
16+
<div class="form-group">
17+
<input type="submit" value="Create Event" class="btn btn-success">
18+
</div>
19+
</form>
20+
21+
</body>
22+
</html>
Lines changed: 17 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,23 @@
11
<!DOCTYPE html>
22
<html lang="en" xmlns:th="http://www.thymeleaf.org/">
3-
<head>
4-
<meta charset="UTF-8"/>
5-
<title></title>
6-
</head>
7-
<body>
3+
<head th:replace="fragments :: head"></head>
4+
<body class="container">
85

9-
<ul>
10-
<th:block th:each="event : ${events}">
11-
<li th:text="${event}"></li>
12-
</th:block>
13-
</ul>
6+
<h1>All Events</h1>
7+
8+
<nav th:replace="fragments :: header"></nav>
9+
10+
<p th:unless="${events} and ${events.size()}">No events!</p>
11+
<table class="table table-striped">
12+
<thead>
13+
<tr>
14+
<th>Name</th>
15+
</tr>
16+
</thead>
17+
<tr th:each="event : ${events}">
18+
<td th:text="${event}"></td>
19+
</tr>
20+
</table>
1421

1522
</body>
1623
</html>
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
<!DOCTYPE html>
2+
<html lang="en" xmlns:th="http://www.thymeleaf.org/">
3+
<head th:fragment="head">
4+
<meta charset="UTF-8"/>
5+
<title>Coding Events</title>
6+
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css">
7+
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.min.js"></script>
8+
</head>
9+
<body>
10+
11+
<nav th:fragment="header">
12+
<ul class="nav">
13+
<li class="nav-item"><a class="nav-link" href="/events">All Events</a></li>
14+
<li class="nav-item"><a class="nav-link" href="/events/create">Create Event</a></li>
15+
</ul>
16+
</nav>
17+
18+
</body>
19+
</html>
Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
<!DOCTYPE html>
22
<html lang="en" xmlns:th="http://www.thymeleaf.org/">
3-
<head>
4-
<meta charset="UTF-8"/>
5-
<title></title>
6-
</head>
7-
<body>
8-
<p>"this is index in the templates folder"</p>
9-
<a href="/events">Events</a>
3+
<head th:replace="fragments :: head"></head>
4+
<body class="container">
5+
6+
<h1>Coding Events</h1>
7+
8+
<nav th:replace="fragments :: header"></nav>
9+
1010
</body>
1111
</html>
1212

0 commit comments

Comments
 (0)