Skip to content

Commit

Permalink
added support for tag descriptions, closes #425
Browse files Browse the repository at this point in the history
  • Loading branch information
albogdano committed Apr 26, 2024
1 parent 6c61fe5 commit 181d2a8
Show file tree
Hide file tree
Showing 3 changed files with 48 additions and 25 deletions.
17 changes: 11 additions & 6 deletions src/main/java/com/erudika/scoold/controllers/TagsController.java
Expand Up @@ -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;
Expand All @@ -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;
Expand Down Expand Up @@ -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)) {
Expand Down Expand Up @@ -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)) {
Expand Down
3 changes: 3 additions & 0 deletions src/main/resources/static/scripts/scoold.js
Expand Up @@ -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() {
Expand Down
53 changes: 34 additions & 19 deletions src/main/resources/templates/tags.vm
Expand Up @@ -43,29 +43,44 @@
#foreach($showtag in $tagslist)
<div class="col m3">
<div class="card-panel pvl tagbox">
<strong class="right tag-count">&times; $!showtag.count</strong>
<i class="fa fa-tag grey-text"></i>&nbsp;
<a href="$questionslink/tag/$!utils.urlEncode($showtag.tag)" title="Posts tagged $!showtag.tag" class="mrs">
$!showtag.tag
</a>
<div class="row mbn viewbox">
<div class="col s12">
<strong class="right tag-count">&times; $!showtag.count</strong>
<i class="fa fa-tag grey-text"></i>&nbsp;
<a href="$questionslink/tag/$!utils.urlEncode($showtag.tag)" title="Posts tagged $!showtag.tag" class="mrs">
$!showtag.tag
</a>
#if($isMod)
<a href="#" title="Rename" class="editlink"><i class="fa fa-pencil-square orange-text"></i></a>
#end
#if($showtag.description)
<div class="tag-description-box">$showtag.description</div>
#end
</div>
</div>

#if($isMod)
<a href="#" title="Rename" class="next-div-toggle"><i class="fa fa-pencil-square orange-text"></i></a>
<div class="row mbn hide">
<form method="post" class="tag-rename-form">
<div class="col s12 m8">
<div class="input-field">
<label for="new-tag-${showtag.tag}">$!lang.get('tags.tag')</label>
<input type="text" id="new-tag-${showtag.tag}" name="newtag" class="validate" value="$!showtag.tag" required>
<input type="hidden" name="tag" class="validate" value="$!showtag.tag">
</div>
<a href="$tagslink/delete?tag=$!showtag.tag" class="red-text delete-tag">$!lang.get('delete')</a>
<div class="row mbn hide editbox">
<form method="post" class="tag-rename-form">
<div class="col s12 m8">
<div class="input-field">
<label for="new-tag-${showtag.tag}">$!lang.get('tags.tag')</label>
<input type="text" id="new-tag-${showtag.tag}" name="newtag" class="validate" value="$!showtag.tag" required>
<input type="hidden" name="tag" class="validate" value="$!showtag.tag">
</div>
<div class="col s12 m4 r">
<button class="btn mtl waves-effect waves-light" type="submit">$!lang.get('save')</button>
<div class="input-field">
<label for="new-tag-info-${showtag.tag}">$!lang.get('description')</label>
<input type="text" id="new-tag-info-${showtag.tag}" name="description" value="$!showtag.description">
</div>
</form>
</div>
<a href="$tagslink/delete?tag=$!showtag.tag" class="red-text delete-tag">$!lang.get('delete')</a>
</div>
<div class="col s12 m4 r">
<button class="btn mtl waves-effect waves-light" type="submit">$!lang.get('save')</button>
</div>
</form>
</div>
#end

</div>
</div>
#end
Expand Down

0 comments on commit 181d2a8

Please sign in to comment.