diff --git a/sisvietnamvn_main/sisvietnam_backup.dmp b/sisvietnamvn_main/sisvietnam_backup.dmp new file mode 100644 index 00000000..2d88e962 Binary files /dev/null and b/sisvietnamvn_main/sisvietnam_backup.dmp differ diff --git a/sisvietnamvn_main/src/main/java/com/sisvietnamvn/web/controller/manage/ManageMenuController.java b/sisvietnamvn_main/src/main/java/com/sisvietnamvn/web/controller/manage/ManageMenuController.java index 9563e895..c62ddbeb 100644 --- a/sisvietnamvn_main/src/main/java/com/sisvietnamvn/web/controller/manage/ManageMenuController.java +++ b/sisvietnamvn_main/src/main/java/com/sisvietnamvn/web/controller/manage/ManageMenuController.java @@ -2,6 +2,7 @@ package com.sisvietnamvn.web.controller.manage; import com.sisvietnamvn.web.domain.Menu; import com.sisvietnamvn.web.domain.MenuItem; +import com.sisvietnamvn.web.repository.MenuItemRepository; import com.sisvietnamvn.web.security.AuthoritiesConstants; import com.sisvietnamvn.web.service.MenuService; import org.springframework.security.access.prepost.PreAuthorize; @@ -19,9 +20,11 @@ import org.springframework.web.servlet.mvc.support.RedirectAttributes; public class ManageMenuController { private final MenuService menuService; + private final MenuItemRepository menuItemRepository; - public ManageMenuController(MenuService menuService) { + public ManageMenuController(MenuService menuService, MenuItemRepository menuItemRepository) { this.menuService = menuService; + this.menuItemRepository = menuItemRepository; } @GetMapping @@ -87,4 +90,32 @@ public class ManageMenuController { redirectAttributes.addFlashAttribute("successMessage", "Menu properties updated successfully."); return "redirect:/manage/menus/" + id + "/edit"; } + + @PostMapping("/{id}/items/{itemId}/update") + public String updateMenuItem(@PathVariable Long id, @PathVariable Long itemId, @RequestParam String label, @RequestParam String url, @RequestParam(required = false) Long parentId, @RequestParam(required = false) Integer displayOrder, RedirectAttributes redirectAttributes) { + MenuItem item = menuItemRepository.findById(itemId).orElseThrow(() -> new IllegalArgumentException("Invalid item Id")); + item.setLabel(label); + item.setUrl(url); + if (displayOrder != null) { + item.setDisplayOrder(displayOrder); + } + + if (parentId != null) { + MenuItem parentItem = menuItemRepository.findById(parentId).orElse(null); + item.setParent(parentItem); + } else { + item.setParent(null); + } + + menuItemRepository.save(item); + redirectAttributes.addFlashAttribute("successMessage", "Menu item updated."); + return "redirect:/manage/menus/" + id + "/edit"; + } + + @PostMapping("/{id}/items/{itemId}/delete") + public String deleteMenuItem(@PathVariable Long id, @PathVariable Long itemId, RedirectAttributes redirectAttributes) { + menuItemRepository.deleteById(itemId); + redirectAttributes.addFlashAttribute("successMessage", "Menu item deleted."); + return "redirect:/manage/menus/" + id + "/edit"; + } } diff --git a/sisvietnamvn_main/src/main/java/com/sisvietnamvn/web/domain/Menu.java b/sisvietnamvn_main/src/main/java/com/sisvietnamvn/web/domain/Menu.java index 665cea85..a7edaba5 100644 --- a/sisvietnamvn_main/src/main/java/com/sisvietnamvn/web/domain/Menu.java +++ b/sisvietnamvn_main/src/main/java/com/sisvietnamvn/web/domain/Menu.java @@ -4,8 +4,6 @@ import jakarta.persistence.*; import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.Size; import java.io.Serial; -import java.util.ArrayList; -import java.util.List; import java.util.Objects; /** @@ -35,7 +33,7 @@ public class Menu extends AbstractAuditingEntity { @OneToMany(mappedBy = "menu", cascade = CascadeType.ALL, orphanRemoval = true) @OrderBy("displayOrder ASC") - private List items = new ArrayList<>(); + private java.util.Set items = new java.util.LinkedHashSet<>(); @Override public Long getId() { @@ -62,11 +60,11 @@ public class Menu extends AbstractAuditingEntity { this.location = location; } - public List getItems() { + public java.util.Set getItems() { return items; } - public void setItems(List items) { + public void setItems(java.util.Set items) { this.items = items; } diff --git a/sisvietnamvn_main/src/main/resources/config/application-dev.yml b/sisvietnamvn_main/src/main/resources/config/application-dev.yml index dae3ade5..33bf7102 100644 --- a/sisvietnamvn_main/src/main/resources/config/application-dev.yml +++ b/sisvietnamvn_main/src/main/resources/config/application-dev.yml @@ -58,6 +58,9 @@ server: port: 8080 # make sure requests the proxy uri instead of the server one forward-headers-strategy: native + tomcat: + max-swallow-size: -1 + max-http-form-post-size: -1 # =================================================================== # JHipster specific properties diff --git a/sisvietnamvn_main/src/main/resources/config/application.yml b/sisvietnamvn_main/src/main/resources/config/application.yml index 240aba89..c888db51 100644 --- a/sisvietnamvn_main/src/main/resources/config/application.yml +++ b/sisvietnamvn_main/src/main/resources/config/application.yml @@ -91,6 +91,10 @@ management: application: ${spring.application.name} spring: + servlet: + multipart: + max-file-size: 5000MB + max-request-size: 5000MB datasource: type: com.zaxxer.hikari.HikariDataSource url: jdbc:oracle:thin:@localhost:1521/sisvietnam diff --git a/sisvietnamvn_main/src/main/resources/templates/manage/menus/edit.html b/sisvietnamvn_main/src/main/resources/templates/manage/menus/edit.html index a2277679..96b4bc0f 100644 --- a/sisvietnamvn_main/src/main/resources/templates/manage/menus/edit.html +++ b/sisvietnamvn_main/src/main/resources/templates/manage/menus/edit.html @@ -80,23 +80,96 @@
    -
  • -
    - Link Text - Child -
    - URL -
    - - 0 -
  • + + +
  • +
    + Link Text +
    + URL +
    +
    + 0 + +
    + +
    +
    +
  • + + + +
  • +
    + Link Text + Child +
    + URL +
    +
    + 0 + +
    + +
    +
    +
  • +
    +
+
No items in this menu yet.
+ + + + + + diff --git a/sisvietnamvn_main/src/main/resources/templates/themes/umass/content-top.html b/sisvietnamvn_main/src/main/resources/templates/themes/umass/content-top.html index bf8f90bc..ce38ca9e 100644 --- a/sisvietnamvn_main/src/main/resources/templates/themes/umass/content-top.html +++ b/sisvietnamvn_main/src/main/resources/templates/themes/umass/content-top.html @@ -1,184 +1,100 @@
-
-
- - - - - - - - - - - - - - - - - - - - -
-
- - - -
- -
- - Students collaborate using a driving simulator in the UMass Center for Transportation. +
+
+
+
+ Students collaborate using a driving simulator in the UMass Center for Transportation.
- -
- -
-
- - -
-
- - -
- -
-
-

- Be the Future You Want to See. -

- - - - - - - - - - - - - -
-
- + +
+
+
+ + +
+
+
+
+
+

+ Be the Future You Want to See. +

+ + +
+
- - -
- - - - - - - +
+
-
- -
+ \ No newline at end of file diff --git a/sisvietnamvn_main/uploads/2026/07/9375f45b-027a-4fb4-bd18-66889309280d.mp4 b/sisvietnamvn_main/uploads/2026/07/9375f45b-027a-4fb4-bd18-66889309280d.mp4 new file mode 100644 index 00000000..31409ad6 Binary files /dev/null and b/sisvietnamvn_main/uploads/2026/07/9375f45b-027a-4fb4-bd18-66889309280d.mp4 differ