aboutsummaryrefslogtreecommitdiffstats
path: root/modules
diff options
context:
space:
mode:
authorwxiaoguang <wxiaoguang@gmail.com>2024-04-30 10:36:32 +0800
committerGitHub <noreply@github.com>2024-04-30 02:36:32 +0000
commit61b495e5ab604a26c867433e5c5ae5b07267e30f (patch)
tree064b1f0b63f2c65ef5df5d63bf4f128da0e0e112 /modules
parenta3d9f0d9151dbdcd77bf68f70b8e9497da5f2d3f (diff)
downloadgitea-61b495e5ab604a26c867433e5c5ae5b07267e30f.tar.gz
gitea-61b495e5ab604a26c867433e5c5ae5b07267e30f.zip
Fix issue label rendering in the issue popup (#30763)
Diffstat (limited to 'modules')
-rw-r--r--modules/templates/util_render.go39
1 files changed, 17 insertions, 22 deletions
diff --git a/modules/templates/util_render.go b/modules/templates/util_render.go
index 659422aee7..b15de6521d 100644
--- a/modules/templates/util_render.go
+++ b/modules/templates/util_render.go
@@ -121,29 +121,25 @@ func RenderIssueTitle(ctx context.Context, text string, metas map[string]string)
// RenderLabel renders a label
// locale is needed due to an import cycle with our context providing the `Tr` function
func RenderLabel(ctx context.Context, locale translation.Locale, label *issues_model.Label) template.HTML {
- var (
- archivedCSSClass string
- textColor = util.ContrastColor(label.Color)
- labelScope = label.ExclusiveScope()
- )
-
- description := emoji.ReplaceAliases(template.HTMLEscapeString(label.Description))
+ var extraCSSClasses string
+ textColor := util.ContrastColor(label.Color)
+ labelScope := label.ExclusiveScope()
+ descriptionText := emoji.ReplaceAliases(label.Description)
if label.IsArchived() {
- archivedCSSClass = "archived-label"
- description = fmt.Sprintf("(%s) %s", locale.TrString("archived"), description)
+ extraCSSClasses = "archived-label"
+ descriptionText = fmt.Sprintf("(%s) %s", locale.TrString("archived"), descriptionText)
}
if labelScope == "" {
// Regular label
- s := fmt.Sprintf("<div class='ui label %s' style='color: %s !important; background-color: %s !important;' data-tooltip-content title='%s'>%s</div>",
- archivedCSSClass, textColor, label.Color, description, RenderEmoji(ctx, label.Name))
- return template.HTML(s)
+ return HTMLFormat(`<div class="ui label %s" style="color: %s !important; background-color: %s !important;" data-tooltip-content title="%s">%s</div>`,
+ extraCSSClasses, textColor, label.Color, descriptionText, RenderEmoji(ctx, label.Name))
}
// Scoped label
- scopeText := RenderEmoji(ctx, labelScope)
- itemText := RenderEmoji(ctx, label.Name[len(labelScope)+1:])
+ scopeHTML := RenderEmoji(ctx, labelScope)
+ itemHTML := RenderEmoji(ctx, label.Name[len(labelScope)+1:])
// Make scope and item background colors slightly darker and lighter respectively.
// More contrast needed with higher luminance, empirically tweaked.
@@ -171,14 +167,13 @@ func RenderLabel(ctx context.Context, locale translation.Locale, label *issues_m
itemColor := "#" + hex.EncodeToString(itemBytes)
scopeColor := "#" + hex.EncodeToString(scopeBytes)
- s := fmt.Sprintf("<span class='ui label %s scope-parent' data-tooltip-content title='%s'>"+
- "<div class='ui label scope-left' style='color: %s !important; background-color: %s !important'>%s</div>"+
- "<div class='ui label scope-right' style='color: %s !important; background-color: %s !important'>%s</div>"+
- "</span>",
- archivedCSSClass, description,
- textColor, scopeColor, scopeText,
- textColor, itemColor, itemText)
- return template.HTML(s)
+ return HTMLFormat(`<span class="ui label %s scope-parent" data-tooltip-content title="%s">`+
+ `<div class="ui label scope-left" style="color: %s !important; background-color: %s !important">%s</div>`+
+ `<div class="ui label scope-right" style="color: %s !important; background-color: %s !important">%s</div>`+
+ `</span>`,
+ extraCSSClasses, descriptionText,
+ textColor, scopeColor, scopeHTML,
+ textColor, itemColor, itemHTML)
}
// RenderEmoji renders html text with emoji post processors