From 094ef04c74fe72d8db5fc4d31b1d8a45ce487f7f Mon Sep 17 00:00:00 2001 From: Hilmi Al Biruni <hilmi.albiruni@ui.ac.id> Date: Thu, 29 Sep 2022 18:55:51 +0700 Subject: [PATCH] Menyelesaikan Nomor 1 2 4 --- README.md | 21 ++++++ .../controller/CourseController.java | 64 +++++++++++++---- .../controller/PengajarController.java | 8 --- .../belajarbelajar/repository/CourseDb.java | 2 - .../belajarbelajar/service/CourseService.java | 3 - .../service/CourseServiceImpl.java | 4 +- .../service/PengajarService.java | 7 +- .../service/PengajarServiceImpl.java | 7 ++ .../resources/templates/delete-course.html | 2 +- .../resources/templates/delete-no-code.html | 2 +- .../resources/templates/form-add-course.html | 33 +++++++++ .../templates/fragments/fragment.html | 21 +++++- .../src/main/resources/templates/home.html | 33 +-------- .../main/resources/templates/view-course.html | 72 +++++++++---------- .../resources/templates/viewall-course.html | 36 ++-------- 15 files changed, 179 insertions(+), 136 deletions(-) diff --git a/README.md b/README.md index eeb94f7..e584d58 100644 --- a/README.md +++ b/README.md @@ -2,6 +2,27 @@ ## Authors * **Hilmi Al Biruni** - *2006463843* - *APAP-B* + +## Tutorial 4 +### Jelaskan perbedaan th:include dan th:replace! + +#### Perbedaan dari include dan replace adalah penempatan suatu konten dari fragment +#### Include akan memanggil isi dari fragment ke dalam th:include tersebut. Lalu, include akan memasukkan konten fragment tanpa menyisipkan tag fragment itu sendiri. +#### Berbeda dengan include, replace menerapkan konsep parent-kid dalam pengimplementasian fragment tersebut. Replace akan memasukkan konten dari fragment dengan mengganti tag menjadi tag yang mendefinisikan fragment sehingga dapat di kustomisasi. + +### Jelaskan apa fungsi dari th:object! + +#### th:object digunakan untuk menyederhanakan pemanggilan suatu objek di dalam HTML. th:object akan menggunakan atribut langsung dari objek tanpa harus menspesifikasikan objek yang dipanggil. + +### Jelaskan perbedaan dari * dan $ pada saat penggunaan th:object! Kapan harus dipakai? + +#### * digunakan untuk menyatakan sebuah selection dan menunjuk kepada atribut darri suatu objek. Berbeda dengan $ yang digunakan untuk menyatakan sebuah variabel/value dan menunjuk kepada atribut suatu objek. + +### Bagaimana parameter/params tersebut bekerja sehingga Anda dapat menambahkan 1 baris penyelenggara pada form tambah course? + +### Bagaimana parameter/params tersebut bekerja sehingga Anda dapat menghapus 1 baris penyelenggara pada form tambah course? + + ## Tutorial 3 ### Pertanyaan 1: Tolong jelaskan secara singkat apa kegunaan dari anotasi-anotasi yang ada pada model (@AllArgsConstructor, @NoArgsConstructor, @Setter, @Getter, @Entity, @Table) #### @AllArgsConstructor digunakan untuk menghasilkan constructor pada semua field pada class dengan suatu parameter. 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 56ce236..bc43b77 100644 --- a/belajarbelajar/src/main/java/apap/tutorial/belajarbelajar/controller/CourseController.java +++ b/belajarbelajar/src/main/java/apap/tutorial/belajarbelajar/controller/CourseController.java @@ -5,6 +5,7 @@ import apap.tutorial.belajarbelajar.model.PengajarModel; import apap.tutorial.belajarbelajar.model.PenyelenggaraModel; import apap.tutorial.belajarbelajar.service.CourseService; import apap.tutorial.belajarbelajar.service.PenyelenggaraService; +import apap.tutorial.belajarbelajar.service.PengajarService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.stereotype.Controller; @@ -23,6 +24,10 @@ public class CourseController { @Autowired private PenyelenggaraService penyelenggaraService; + @Qualifier("pengajarServiceImpl") + @Autowired + private PengajarService pengajarService; + @GetMapping("/course/add") public String addCourseFormPage(Model model) { CourseModel course = new CourseModel(); @@ -70,6 +75,8 @@ public class CourseController { model.addAttribute("course", course); model.addAttribute("cekCourse", cekCourse); model.addAttribute("cekPengajar", cekPengajar); + List<PenyelenggaraModel> listPenyelenggara = course.getListPenyelenggara(); + model.addAttribute("listPenyelenggara", listPenyelenggara); return "view-course"; } @@ -77,8 +84,10 @@ public class CourseController { public String viewDetailCoursePageQuery(@RequestParam(value = "code") String code, Model model) { CourseModel course = courseService.getCourseByCodeCourseQuery(code); List<PengajarModel> listPengajar = course.getListPengajar(); + List<PenyelenggaraModel> listPenyelenggara = course.getListPenyelenggara(); model.addAttribute("listPengajar", listPengajar); model.addAttribute("course", course); + model.addAttribute("listPenyelenggara", listPenyelenggara); return "view-course"; } @@ -94,7 +103,7 @@ public class CourseController { public String updateCourseSubmitPage(@ModelAttribute CourseModel course, Model model) { CourseModel updatedCourse = courseService.updateCourse(course); if (updatedCourse == null) { - return "error-page"; + return "error-update"; } else { model.addAttribute("code", updatedCourse.getCode()); return "update-course"; @@ -102,10 +111,15 @@ public class CourseController { } @GetMapping("/course/delete/{code}") - public String deleteCourse(@PathVariable(value = "code") String code) { + public String deleteCourse(@PathVariable(value = "code") String code, Model model) { CourseModel course = courseService.getCourseByCodeCourse(code); - courseService.deleteCourse(course); - return "delete-course"; + boolean courseClosed = courseService.isClosed(course.getTanggalDimulai(), course.getTanggalBerakhir()); + if (courseClosed){ + courseService.deleteCourse(course); + model.addAttribute("course", course); + return "delete-course"; + } + else return "delete-no-code"; } @GetMapping("/course/view-all-sort") @@ -148,12 +162,38 @@ public class CourseController { return "form-add-course"; } -// #view all ordered by name -// @GetMapping("/course/viewall/ordered") -// public String listCourseOrdered(Model model) { -//// List<CourseModel> listCourse = courseService.getListCourse(); -// CourseModel course = courseService.viewAllOrderedByName(); -// model.addAttribute("course", course); -// return "viewall-ordered-course"; -// } + + @PostMapping(value = "/course/add", params = {"addRowPengajar"}) + private String addRowPengajarMultiple( + @ModelAttribute CourseModel course, + Model model + ){ + if (course.getListPengajar() == null || course.getListPengajar().size() == 0) { + course.setListPengajar(new ArrayList<>()); + } + course.getListPengajar().add(new PengajarModel()); + List<PengajarModel> listPengajar = pengajarService.getListPengajar(); + + model.addAttribute("course", course); + model.addAttribute("listPengajarExisting", listPengajar); + + return "form-add-course"; + } + + @PostMapping(value = "/course/add", params = {"deleteRowPengajar"}) + private String deleteRowPengajarMultiple( + @ModelAttribute CourseModel course, + @RequestParam("deleteRowPengajar") Integer row, + Model model + ) { + final Integer rowId = Integer.valueOf(row); + course.getListPengajar().remove(rowId.intValue()); + + List<PengajarModel> listPengajar = pengajarService.getListPengajar(); + + model.addAttribute("course", course); + model.addAttribute("listPengajarExisting", listPengajar); + + return "form-add-course"; + } } \ No newline at end of file diff --git a/belajarbelajar/src/main/java/apap/tutorial/belajarbelajar/controller/PengajarController.java b/belajarbelajar/src/main/java/apap/tutorial/belajarbelajar/controller/PengajarController.java index f14850d..0e240bc 100644 --- a/belajarbelajar/src/main/java/apap/tutorial/belajarbelajar/controller/PengajarController.java +++ b/belajarbelajar/src/main/java/apap/tutorial/belajarbelajar/controller/PengajarController.java @@ -51,14 +51,6 @@ public class PengajarController { return "form-update-pengajar"; } -// @GetMapping("/pengajar/delete/{noPengajar}") -// public String deletePengajar(@PathVariable(value = "noPengajar") String noPengajar) { -// PengajarModel pengajar1 = pengajarService.getPengajarByNoPengajar(Long.parseLong(noPengajar)); -// pengajarService.deletePengajar(pengajar1); -// System.out.println("Delete bisa"); -// return "viewall-course"; -// } - @PostMapping("/pengajar/delete") public String deletePengajarSubmit( @ModelAttribute CourseModel course, diff --git a/belajarbelajar/src/main/java/apap/tutorial/belajarbelajar/repository/CourseDb.java b/belajarbelajar/src/main/java/apap/tutorial/belajarbelajar/repository/CourseDb.java index 6863931..ba31f89 100644 --- a/belajarbelajar/src/main/java/apap/tutorial/belajarbelajar/repository/CourseDb.java +++ b/belajarbelajar/src/main/java/apap/tutorial/belajarbelajar/repository/CourseDb.java @@ -17,7 +17,5 @@ public interface CourseDb extends JpaRepository<CourseModel, String>{ @Query("SELECT c FROM CourseModel c WHERE c.nameCourse = :nameCourse") Optional<CourseModel> findNameCourseByQuery(@Param("nameCourse") String nameCourse); -// @Query(value = "SELECT * FROM CourseModel c ORDER BY c.nameCourse ASC", nativeQuery = true) -// List<CourseModel> viewAllOrderedByName(); } diff --git a/belajarbelajar/src/main/java/apap/tutorial/belajarbelajar/service/CourseService.java b/belajarbelajar/src/main/java/apap/tutorial/belajarbelajar/service/CourseService.java index 657d37e..6dc46f1 100644 --- a/belajarbelajar/src/main/java/apap/tutorial/belajarbelajar/service/CourseService.java +++ b/belajarbelajar/src/main/java/apap/tutorial/belajarbelajar/service/CourseService.java @@ -17,8 +17,5 @@ public interface CourseService { boolean courseClosed(CourseModel course); boolean isClosed(LocalDateTime tanggalDimulai, LocalDateTime tanggalBerakhir); void deleteCourse(CourseModel course); -// List<CourseModel> viewAllOrderedByName(); - -// void deleteCourse(CourseModel course); } diff --git a/belajarbelajar/src/main/java/apap/tutorial/belajarbelajar/service/CourseServiceImpl.java b/belajarbelajar/src/main/java/apap/tutorial/belajarbelajar/service/CourseServiceImpl.java index f2a4d35..82378b2 100644 --- a/belajarbelajar/src/main/java/apap/tutorial/belajarbelajar/service/CourseServiceImpl.java +++ b/belajarbelajar/src/main/java/apap/tutorial/belajarbelajar/service/CourseServiceImpl.java @@ -62,9 +62,7 @@ public class CourseServiceImpl implements CourseService{ public void deleteCourse(CourseModel course){ courseDb.delete(course); } -// public String getName(String namaCourse) { -// -// } + @Override public boolean isClosed(LocalDateTime tanggalDimulai, LocalDateTime tanggalBerakhir) { LocalDateTime now = LocalDateTime.now(); diff --git a/belajarbelajar/src/main/java/apap/tutorial/belajarbelajar/service/PengajarService.java b/belajarbelajar/src/main/java/apap/tutorial/belajarbelajar/service/PengajarService.java index fb2abb3..5ee51d9 100644 --- a/belajarbelajar/src/main/java/apap/tutorial/belajarbelajar/service/PengajarService.java +++ b/belajarbelajar/src/main/java/apap/tutorial/belajarbelajar/service/PengajarService.java @@ -1,13 +1,14 @@ package apap.tutorial.belajarbelajar.service; import apap.tutorial.belajarbelajar.model.CourseModel; import apap.tutorial.belajarbelajar.model.PengajarModel; +import apap.tutorial.belajarbelajar.model.PenyelenggaraModel; + +import java.util.List; public interface PengajarService { void addPengajar(PengajarModel pengajar); - PengajarModel getPengajarByNoPengajar(Long noPengajar); PengajarModel updatePengajar(PengajarModel pengajar); void deletePengajar(PengajarModel pengajar); - - + List<PengajarModel> getListPengajar(); } diff --git a/belajarbelajar/src/main/java/apap/tutorial/belajarbelajar/service/PengajarServiceImpl.java b/belajarbelajar/src/main/java/apap/tutorial/belajarbelajar/service/PengajarServiceImpl.java index 91d8a7d..0d39c42 100644 --- a/belajarbelajar/src/main/java/apap/tutorial/belajarbelajar/service/PengajarServiceImpl.java +++ b/belajarbelajar/src/main/java/apap/tutorial/belajarbelajar/service/PengajarServiceImpl.java @@ -3,12 +3,14 @@ package apap.tutorial.belajarbelajar.service; import apap.tutorial.belajarbelajar.model.CourseModel; import apap.tutorial.belajarbelajar.model.PengajarModel; +import apap.tutorial.belajarbelajar.model.PenyelenggaraModel; import apap.tutorial.belajarbelajar.repository.PengajarDb; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import javax.transaction.Transactional; import java.time.LocalDateTime; +import java.util.List; import java.util.Optional; @Service @@ -39,5 +41,10 @@ public class PengajarServiceImpl implements PengajarService{ public void deletePengajar(PengajarModel pengajar) {pengajarDb.delete(pengajar); } + @Override + public List<PengajarModel> getListPengajar() { + return pengajarDb.findAll(); + } + } diff --git a/belajarbelajar/src/main/resources/templates/delete-course.html b/belajarbelajar/src/main/resources/templates/delete-course.html index 526a708..550c547 100644 --- a/belajarbelajar/src/main/resources/templates/delete-course.html +++ b/belajarbelajar/src/main/resources/templates/delete-course.html @@ -11,6 +11,6 @@ <h2 th:text="'Course dengan code Course ' + ${code} + ' berhasil dihapus.'" ></h2> -<a href="/course/viewAll">Kembali</a> +<a href="/course/viewall">Kembali</a> </body> </html> \ No newline at end of file diff --git a/belajarbelajar/src/main/resources/templates/delete-no-code.html b/belajarbelajar/src/main/resources/templates/delete-no-code.html index d708c3a..1918f4e 100644 --- a/belajarbelajar/src/main/resources/templates/delete-no-code.html +++ b/belajarbelajar/src/main/resources/templates/delete-no-code.html @@ -11,6 +11,6 @@ <h2 th:text="'Course code tidak diberikan, gagal melakukan penghapusan Course'" ></h2> -<a href="/course/viewAll">Kembali</a> +<a href="/course/viewall">Kembali</a> </body> </html> \ 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 b245cf1..1053c1f 100644 --- a/belajarbelajar/src/main/resources/templates/form-add-course.html +++ b/belajarbelajar/src/main/resources/templates/form-add-course.html @@ -72,6 +72,39 @@ </tr> </tbody> </table> + <table class="table"> + <thead> + <th>Pengajar Course</th> + <th> + <button class="btn btn-primary" type="submit" name="addRowPengajar">Tambah Row</button> + </th> + </thead> + <tbody> + <tr th:each="pengajar, iterationStatus : *{listPengajar}"> + <td> + <select + name="noPengajar" + th:field="*{listPengajar[__${iterationStatus.index}__].noPengajar}" + class="form-control" + > + <div th:each="pengajarEx, iterationStatus2 : ${listPengajarExisting}"> + <option th:value="${pengajarEx.noPengajar}" th:text="${pengajarEx.namaPengajar}"></option> + </div> + </select> + </td> + <td> + <button + th:value="${iterationStatus.index}" + class="btn btn-danger" + type="submit" + name="deleteRowPengajar" + > + Hapus + </button> + </td> + </tr> + </tbody> + </table> <button class="btn btn-primary" type="submit" name="save">Submit</button> <a class="btn btn-primary" href="/">Home</a> diff --git a/belajarbelajar/src/main/resources/templates/fragments/fragment.html b/belajarbelajar/src/main/resources/templates/fragments/fragment.html index 42bd07c..f86cac5 100644 --- a/belajarbelajar/src/main/resources/templates/fragments/fragment.html +++ b/belajarbelajar/src/main/resources/templates/fragments/fragment.html @@ -34,12 +34,26 @@ > <span class="navbar-toggler-icon"></span> </button> + <div class="collapse navbar-collapse"> <ul class="navbar-nav mr-auto"> - <a class="nav-item nav-link active text-secondary" th:href="@{/}"> - Beranda<span class="sr-only">(current)</span> - </a> + <li th:classappend="${#httpServletRequest.getRequestURI() == '/' ? 'nav-item active':'nav-item'}"> + <a class="nav-item nav-link text-secondary" th:href="@{/}"> + Beranda <span class="sr-only">(current)</span> + </a> + </li> + <li th:classappend="${#httpServletRequest.getRequestURI().startsWith('/course/viewall') == '/' ? 'nav-item active':'nav-item'}"> + <a class="nav-item nav-link text-secondary" th:href="@{/course/viewall}"> + Course <span class="sr-only">(current)</span> + </a> + </li> + <li th:classappend="${#httpServletRequest.getRequestURI().startsWith('/penyelenggara/viewall') == '/' ? 'nav-item active':'nav-item'}"> + <a class="nav-item nav-link text-secondary" th:href="@{/penyelenggara/viewall}"> + Penyelenggara <span class="sr-only">(current)</span> + </a> + </li> </ul> + <form class="form-inline my-2 my-lg-0" th:action="@{/course/view/}" method="GET"> <input class="form-control mr-sm-2" type="search" name="code" placeholder="Code Course" aria-label="Search"> @@ -50,3 +64,4 @@ </body> </html> + diff --git a/belajarbelajar/src/main/resources/templates/home.html b/belajarbelajar/src/main/resources/templates/home.html index 317e820..02075d5 100644 --- a/belajarbelajar/src/main/resources/templates/home.html +++ b/belajarbelajar/src/main/resources/templates/home.html @@ -1,40 +1,13 @@ <!DOCTYPE html> <html lang="en" xmlns:th="http://thymeleaf.org"> <head> - <meta charset="UTF-8"> <title>BelajarBelajar</title> - <link rel="stylesheet" th:href="@{/css/bootstrap.min.css}"/> + <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.1/dist/css/bootstrap.min.css" rel="stylesheet" + integrity="sha384-F3w7mX95PdgyTmZZMECAngseQB83DfGTowi0iMjiWaeVhAn4FJkqJByhZMI3AhiU" crossorigin="anonymous"> <object th:include="fragments/fragment :: css" th:remove="tag"></object> <object th:include="fragments/fragment :: js" th:remove="tag"></object> -</head> <body> - -<nav th:fragment="navbar" class="navbar navbar-expand-lg navbar-light bg-light"> - <a class="navbar-brand font-weight-bold text-primary" href="#">BelajarBelajar</a> - <button - class="navbar-toggler" - type="button" - data-toggle="collapse" - data-target="@navbarNavAltMarkup" - aria-controls="navbarNavAltMarkup" - aria-expanded="false" - aria-label="Toggle navigation" - > - <span class="navbar-toggler-icon"></span> - </button> - <div class="collapse navbar-collapse"> - <ul class="navbar-nav mr-auto"> - <a class="nav-item nav-link active text-secondary" th:href="@{/}"> - Beranda<span class="sr-only">(current)</span> - </a> - </ul> - <form class="form-inline my-2 my-lg-0" th:action="@{/course/view}" method="GET"> - <input class="form-control mr-sm-2" type="search" - name="code" placeholder="Code Course" aria-label="Search"> - <button class="btn btn-outline-primary my-2 my-sm-0" type="submit">Search</button> - </form> - </div> -</nav> +<nav th:replace="fragments/fragment :: navbar"></nav> <div class="d-flex justify-content-center"> <div class="m-4"> diff --git a/belajarbelajar/src/main/resources/templates/view-course.html b/belajarbelajar/src/main/resources/templates/view-course.html index d8f4498..502a2f9 100644 --- a/belajarbelajar/src/main/resources/templates/view-course.html +++ b/belajarbelajar/src/main/resources/templates/view-course.html @@ -1,40 +1,13 @@ <!DOCTYPE html> <html lang="en" xmlns:th="http://thymeleaf.org"> <head> - <meta charset="UTF-8"> - <title>Beranda</title> - <link rel="stylesheet" th:href="@{/css/bootstrap.min.css}"/> + <title>BelajarBelajar</title> + <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.1/dist/css/bootstrap.min.css" rel="stylesheet" + integrity="sha384-F3w7mX95PdgyTmZZMECAngseQB83DfGTowi0iMjiWaeVhAn4FJkqJByhZMI3AhiU" crossorigin="anonymous"> <object th:include="fragments/fragment :: css" th:remove="tag"></object> <object th:include="fragments/fragment :: js" th:remove="tag"></object> -</head> <body> - -<nav th:fragment="navbar" class="navbar navbar-expand-lg navbar-light bg-light"> - <a class="navbar-brand font-weight-bold text-primary" href="#">BelajarBelajar</a> - <button - class="navbar-toggler" - type="button" - data-toggle="collapse" - data-target="@navbarNavAltMarkup" - aria-controls="navbarNavAltMarkup" - aria-expanded="false" - aria-label="Toggle navigation" - > - <span class="navbar-toggler-icon"></span> - </button> - <div class="collapse navbar-collapse"> - <ul class="navbar-nav mr-auto"> - <a class="nav-item nav-link active text-secondary" th:href="@{/}"> - Beranda<span class="sr-only">(current)</span> - </a> - </ul> - <form class="form-inline my-2 my-lg-0" th:action="@{/course/view}" method="GET"> - <input class="form-control mr-sm-2" type="search" - name="code" placeholder="Code Course" aria-label="Search"> - <button class="btn btn-outline-primary my-2 my-sm-0" type="submit">Search</button> - </form> - </div> -</nav> +<nav th:replace="fragments/fragment :: navbar"></nav> <div class="container"> <div class="card m-4 p-4"> @@ -48,6 +21,7 @@ <p th:text="'Jumlah SKS: ' + ${course.jumlahSks}"></p> <p th:text="'Tanggal Dimulai: ' + ${#temporals.format(course.tanggalDimulai, 'dd MMMM yyyy HH:mm')}"></p> <p th:text="'Tanggal Berakhir: ' + ${#temporals.format(course.tanggalBerakhir, 'dd MMMM yyyy HH:mm')}"></p> + <a class="btn btn-primary" th:href="@{/pengajar/add/} + ${course.code}">Tambah Pengajar</a> <div th:if="*{listPengajar.size() != 0}"> <form th:action="@{/pengajar/delete}" th:object="${course}" method="POST"> @@ -87,22 +61,42 @@ </tbody> </table> <input type="submit" value="Delete Pengajar yang dipilih" class="btn btn-danger"> - <input type="submit" value="Delete yang dipilih" class="btn btn-danger"> - </form> </div> + <div th:unless="*{listPengajar.size() != 0}"> <h2 th:text="'Tidak ada Pengajar'"></h2> </div> <br> - <a class="btn btn-primary" href="/course/viewall">Kembali</a> - <a class="btn btn-primary" th:href="@{/pengajar/add/} + ${course.code}">Tambah Pengajar</a> - <div th:if="${cekPengajar == true }"> - <a class="btn btn-primary" th:href="@{/course/delete/} + ${course.code}">Delete</a> + <div th:if = "*{listPenyelenggara.size() != 0}"> + <table class="table"> + <thead> + <tr> + <th>No</th> + <th>No Penyelenggara</th> + <th>Nama Penyelenggara</th> + <th>Jenis Lembaga</th> + </tr> + </thead> + <tbody> + <tr th:each="penyelenggara, iterationStatus : ${listPenyelenggara}" + th:style="${iterationStatus.even} ? 'font-weight:bold;'"> + <td th:text="${iterationStatus.count}"></td> + <td th:text="${penyelenggara.noPenyelenggara}"></td> + <td th:text="${penyelenggara.namaPenyelenggara}"></td> + <td> + <span th:if="${penyelenggara.jenisLembaga == 0}" th:text="'Non-Pendidikan'"></span> + <span th:if="${penyelenggara.jenisLembaga == 1}" th:text="'Pendidikan'"></span> + </td> + </tr> + </tbody> + </table> </div> - <div th:unless="${cekPengajar == true }"> - <a class="btn btn-primary" href="/course/error">Delete</a> + <div th:unless = "*{listPenyelenggara.size() != 0}"> + <h2 th:text = "'Tidak ada Penyelenggara'"></h2> </div> + <a class="btn btn-primary" href="/course/viewall">Kembali</a> + </div> </div> </div> diff --git a/belajarbelajar/src/main/resources/templates/viewall-course.html b/belajarbelajar/src/main/resources/templates/viewall-course.html index f10cab7..54fb6bc 100644 --- a/belajarbelajar/src/main/resources/templates/viewall-course.html +++ b/belajarbelajar/src/main/resources/templates/viewall-course.html @@ -1,39 +1,13 @@ <!DOCTYPE html> <html lang="en" xmlns:th="http://thymeleaf.org"> <head> - <meta charset="UTF-8"> - <title>View All Course</title> - <link rel="stylesheet" th:href="@{/css/bootstrap.min.css}"/> + <title>BelajarBelajar</title> + <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.1/dist/css/bootstrap.min.css" rel="stylesheet" + integrity="sha384-F3w7mX95PdgyTmZZMECAngseQB83DfGTowi0iMjiWaeVhAn4FJkqJByhZMI3AhiU" crossorigin="anonymous"> <object th:include="fragments/fragment :: css" th:remove="tag"></object> <object th:include="fragments/fragment :: js" th:remove="tag"></object> -</head> <body> -<nav th:fragment="navbar" class="navbar navbar-expand-lg navbar-light bg-light"> - <a class="navbar-brand font-weight-bold text-primary" href="#">BelajarBelajar</a> - <button - class="navbar-toggler" - type="button" - data-toggle="collapse" - data-target="@navbarNavAltMarkup" - aria-controls="navbarNavAltMarkup" - aria-expanded="false" - aria-label="Toggle navigation" - > - <span class="navbar-toggler-icon"></span> - </button> - <div class="collapse navbar-collapse"> - <ul class="navbar-nav mr-auto"> - <a class="nav-item nav-link active text-secondary" th:href="@{/}"> - Beranda<span class="sr-only">(current)</span> - </a> - </ul> - <form class="form-inline my-2 my-lg-0" th:action="@{/course/view}" method="GET"> - <input class="form-control mr-sm-2" type="search" - name="code" placeholder="Code Course" aria-label="Search"> - <button class="btn btn-outline-primary my-2 my-sm-0" type="submit">Search</button> - </form> - </div> -</nav> +<nav th:replace="fragments/fragment :: navbar"></nav> <div class="container"> <div class="card m-4 p-4"> @@ -61,7 +35,7 @@ <a class="btn btn-primary" th:href="@{/course/view(code=${course.code})}">Detail Course</a> <a class="btn btn-outline-primary" th:href="@{/course/view-query(code=${course.code})}">Detail Course By Query</a> <a class="btn btn-warning" th:href="@{/course/update/} + ${course.code}">Update Course</a> - <a class="btn btn-danger" th:href="@{/course/deleteCourse/} + ${course.code}">Delete Course</a> + <a class="btn btn-danger" th:href="@{/course/delete/} + ${course.code}">Delete Course</a> </div> </td> -- GitLab