From 181d2a817c6c89f5168819337129af9014fadf65 Mon Sep 17 00:00:00 2001 From: Alex Bogdanovski Date: Fri, 26 Apr 2024 20:49:27 +0300 Subject: [PATCH] added support for tag descriptions, closes #425 --- .../scoold/controllers/TagsController.java | 17 +++--- src/main/resources/static/scripts/scoold.js | 3 ++ src/main/resources/templates/tags.vm | 53 ++++++++++++------- 3 files changed, 48 insertions(+), 25 deletions(-) diff --git a/src/main/java/com/erudika/scoold/controllers/TagsController.java b/src/main/java/com/erudika/scoold/controllers/TagsController.java index 54c5fea5..0725f602 100644 --- a/src/main/java/com/erudika/scoold/controllers/TagsController.java +++ b/src/main/java/com/erudika/scoold/controllers/TagsController.java @@ -28,6 +28,10 @@ import com.erudika.scoold.core.Profile; import com.erudika.scoold.core.Question; import com.erudika.scoold.utils.ScooldUtils; +import jakarta.inject.Inject; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.ws.rs.core.MediaType; import java.io.IOException; import java.util.ArrayList; import java.util.Arrays; @@ -38,10 +42,6 @@ import java.util.Optional; import java.util.Set; import java.util.stream.Collectors; -import jakarta.inject.Inject; -import jakarta.servlet.http.HttpServletRequest; -import jakarta.servlet.http.HttpServletResponse; -import jakarta.ws.rs.core.MediaType; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -110,8 +110,8 @@ public String create(@RequestParam String tags, HttpServletRequest req, HttpServ } @PostMapping - public String rename(@RequestParam String tag, @RequestParam String newtag, HttpServletRequest req, - HttpServletResponse res, Model model) { + public String rename(@RequestParam String tag, @RequestParam String newtag, @RequestParam String description, + HttpServletRequest req, HttpServletResponse res, Model model) { Profile authUser = utils.getAuthUser(req); int count = 0; if (utils.isMod(authUser)) { @@ -157,6 +157,11 @@ public String rename(@RequestParam String tag, @RequestParam String newtag, Http } model.addAttribute("tag", updated); count = t.getCount(); + } else if (t != null && !StringUtils.equals(oldTag.getDescription(), description)) { + t.setDescription(description); + updated = pc.update(t); + model.addAttribute("tag", updated); + count = t.getCount(); } } if (utils.isAjaxRequest(req)) { diff --git a/src/main/resources/static/scripts/scoold.js b/src/main/resources/static/scripts/scoold.js index e71a942c..ff463924 100755 --- a/src/main/resources/static/scripts/scoold.js +++ b/src/main/resources/static/scripts/scoold.js @@ -862,11 +862,14 @@ $(function () { var $form = $(form); var hiddenTag = $form.find("input[type=hidden]"); var tag = $form.find("input[name=newtag]").val(); + var description = $form.find("input[name=description]").val(); hiddenTag.val(tag); $form.closest(".col").find(".tag-count").html("× " + (data.count || 0)).end(). find(".next-div-toggle").click().prevAll("a").text(data.tag || tag).attr("href", function (i, href) { return href.substring(0, href.lastIndexOf('/') + 1) + encodeURIComponent(data.tag); }); + $form.closest(".card-panel").find(".editlink").click(); + $form.closest(".card-panel").find(".tag-description-box").text(description); }); $(document).on("click", "a.delete-tag", function() { diff --git a/src/main/resources/templates/tags.vm b/src/main/resources/templates/tags.vm index 54d5fd42..ecaf04e0 100644 --- a/src/main/resources/templates/tags.vm +++ b/src/main/resources/templates/tags.vm @@ -43,29 +43,44 @@ #foreach($showtag in $tagslist)
- × $!showtag.count -   - - $!showtag.tag - +
+
+ × $!showtag.count +   + + $!showtag.tag + + #if($isMod) + + #end + #if($showtag.description) +
$showtag.description
+ #end +
+
+ #if($isMod) - -
-
-
-
- - - -
- $!lang.get('delete') +
+ +
+
+ + +
-
- +
+ +
- -
+ $!lang.get('delete') +
+
+ +
+ +
#end +
#end