diff --git a/README.md b/README.md index e584d581dbd1f01d23b1d0c09b4a70eee4788822..f0a918b6a98575173804064562cd60949cc89865 100644 --- a/README.md +++ b/README.md @@ -20,8 +20,14 @@ ### Bagaimana parameter/params tersebut bekerja sehingga Anda dapat menambahkan 1 baris penyelenggara pada form tambah course? +#### params perlu dibuat terlebih dahulu logic-nya dalam struktur data List. params akan mendefinisikan semacam "function" agar dapat diimplementasikan di dalam <button> dalam variable "name". + ### Bagaimana parameter/params tersebut bekerja sehingga Anda dapat menghapus 1 baris penyelenggara pada form tambah course? +#### params perlu dibuat terlebih dahulu logic-nya sebagai berikut: +##### final Integer rowId = Integer.valueOf(row); +##### course.getListPengajar().remove(rowId.intValue()); +#### Nanti params tersebut akan mendefinisikan semacam "function" agar dapat diimplementasikan di dalam <button> dalam variable "name". ## Tutorial 3 ### Pertanyaan 1: Tolong jelaskan secara singkat apa kegunaan dari anotasi-anotasi yang ada pada model (@AllArgsConstructor, @NoArgsConstructor, @Setter, @Getter, @Entity, @Table) diff --git a/belajarbelajar/src/main/java/apap/tutorial/belajarbelajar/controller/CourseController.java b/belajarbelajar/src/main/java/apap/tutorial/belajarbelajar/controller/CourseController.java index bc43b77c5a438a4ab56c6c42e43647c779694b79..fbcb0dae3c903fa511389bb689e67593516c527a 100644 --- a/belajarbelajar/src/main/java/apap/tutorial/belajarbelajar/controller/CourseController.java +++ b/belajarbelajar/src/main/java/apap/tutorial/belajarbelajar/controller/CourseController.java @@ -163,25 +163,28 @@ public class CourseController { return "form-add-course"; } - @PostMapping(value = "/course/add", params = {"addRowPengajar"}) - private String addRowPengajarMultiple( + @PostMapping(value = "/course/add", params = { "addRowPengajar" }) + private String addRowCoursePengajarMultiple( @ModelAttribute CourseModel course, - Model model - ){ + Model model) { + if (course.getListPengajar() == null || course.getListPengajar().size() == 0) { course.setListPengajar(new ArrayList<>()); } + course.getListPengajar().add(new PengajarModel()); List<PengajarModel> listPengajar = pengajarService.getListPengajar(); + List<PenyelenggaraModel> listPenyelenggara = penyelenggaraService.getListPenyelenggara(); + model.addAttribute("listPenyelenggaraExisting", listPenyelenggara); model.addAttribute("course", course); model.addAttribute("listPengajarExisting", listPengajar); return "form-add-course"; } - @PostMapping(value = "/course/add", params = {"deleteRowPengajar"}) - private String deleteRowPengajarMultiple( + @PostMapping(value = "/course/add", params = { "deleteRowPengajar" }) + private String deleteRowCoursePengajarMultiple( @ModelAttribute CourseModel course, @RequestParam("deleteRowPengajar") Integer row, Model model @@ -196,4 +199,22 @@ public class CourseController { return "form-add-course"; } + + @PostMapping(value = "/course/add", params = { "save" }) + public String addPengajarSubmitPage(@ModelAttribute CourseModel course, Model model) { + if (course.getListPenyelenggara() == null) { + course.setListPenyelenggara(new ArrayList<>()); + } + List<PengajarModel> listPengajar = course.getListPengajar(); + for (PengajarModel pengajar : listPengajar) { + pengajar.setCourse(course); + } + + course.setListPengajar(listPengajar); + courseService.addCourse(course); + + model.addAttribute("code", course.getCode()); + return "add-course"; + } + } \ No newline at end of file diff --git a/belajarbelajar/src/main/resources/templates/form-add-course.html b/belajarbelajar/src/main/resources/templates/form-add-course.html index 1053c1f5f6a12c59df52949511c8c572444ad88c..6703edb5c7dde62afc8a230ccbce85392e487ded 100644 --- a/belajarbelajar/src/main/resources/templates/form-add-course.html +++ b/belajarbelajar/src/main/resources/templates/form-add-course.html @@ -79,24 +79,34 @@ <button class="btn btn-primary" type="submit" name="addRowPengajar">Tambah Row</button> </th> </thead> + <tbody> - <tr th:each="pengajar, iterationStatus : *{listPengajar}"> + <tr th:each="pengajar, iterationStatus: *{listPengajar}"></tr> + <tr th:each="pengajar, iterationStatus: *{listPengajar}"> + <td> + <input + class="form-control" + type="text" + name="namaPengajar" + placeholder="Nama Pengajar" + th:field="*{listPengajar[__${iterationStatus.index}__].namaPengajar}" + /> + </td> <td> <select - name="noPengajar" - th:field="*{listPengajar[__${iterationStatus.index}__].noPengajar}" class="form-control" + name="isPengajarUniversitas" + th:field="*{listPengajar[__${iterationStatus.index}__].isPengajarUniversitas}" > - <div th:each="pengajarEx, iterationStatus2 : ${listPengajarExisting}"> - <option th:value="${pengajarEx.noPengajar}" th:text="${pengajarEx.namaPengajar}"></option> - </div> + <option value="1">Pengajar Universitas</option> + <option value="0">Bukan Pengajar Universitas</option> </select> </td> + <td> <button th:value="${iterationStatus.index}" class="btn btn-danger" - type="submit" name="deleteRowPengajar" > Hapus @@ -106,6 +116,9 @@ </tbody> </table> + <br /> + <br /> + <button class="btn btn-primary" type="submit" name="save">Submit</button> <a class="btn btn-primary" href="/">Home</a> </form> diff --git a/belajarbelajar/src/main/resources/templates/home.html b/belajarbelajar/src/main/resources/templates/home.html index 02075d51d016fdad4e4548324d17f41e17d818d0..ab6dc7ae0cb17398f6231b261b69c47aef01d987 100644 --- a/belajarbelajar/src/main/resources/templates/home.html +++ b/belajarbelajar/src/main/resources/templates/home.html @@ -14,7 +14,6 @@ <h2>Selamat datang di BelajarBelajar</h2> <div class="d-flex justify-content-center"> <a th:href="@{/course/viewall}" class="mx-2 btn btn-primary">Lihat semua course</a> - <a th:href="@{/course/view-all-sort}" class="mx-2 btn btn-primary">Lihat semua course berurut</a> <a th:href="@{/course/add}" class="mx-2 btn btn-outline-primary">Tambah course</a> </div>