diff --git a/sisvietnamvn_main/src/main/java/com/sisvietnamvn/web/controller/manage/ManageSnippetController.java b/sisvietnamvn_main/src/main/java/com/sisvietnamvn/web/controller/manage/ManageSnippetController.java index eb57e63a..2265dbf8 100644 --- a/sisvietnamvn_main/src/main/java/com/sisvietnamvn/web/controller/manage/ManageSnippetController.java +++ b/sisvietnamvn_main/src/main/java/com/sisvietnamvn/web/controller/manage/ManageSnippetController.java @@ -63,4 +63,20 @@ public class ManageSnippetController { redirectAttributes.addFlashAttribute("successMessage", "Snippet deleted successfully."); return "redirect:/manage/snippets"; } + @PostMapping("/{id}/duplicate") + public String duplicateSnippet(@PathVariable Long id, RedirectAttributes redirectAttributes) { + return snippetService.findById(id).map(snippet -> { + HtmlSnippet duplicated = new HtmlSnippet(); + duplicated.setName(snippet.getName() + " (Copy)"); + duplicated.setSlug(snippet.getSlug() + "-copy-" + System.currentTimeMillis()); + duplicated.setContent(snippet.getContent()); + duplicated.setActive(false); + HtmlSnippet saved = snippetService.save(duplicated); + redirectAttributes.addFlashAttribute("successMessage", "Snippet duplicated successfully."); + return "redirect:/manage/snippets/" + saved.getId() + "/edit"; + }).orElseGet(() -> { + redirectAttributes.addFlashAttribute("errorMessage", "Snippet not found."); + return "redirect:/manage/snippets"; + }); + } } diff --git a/sisvietnamvn_main/src/main/resources/templates/manage/snippets/form.html b/sisvietnamvn_main/src/main/resources/templates/manage/snippets/form.html index fe05fd25..4156bd90 100644 --- a/sisvietnamvn_main/src/main/resources/templates/manage/snippets/form.html +++ b/sisvietnamvn_main/src/main/resources/templates/manage/snippets/form.html @@ -158,6 +158,9 @@ + +
+