This operation that shifts the content from title to data-content is useless when we can directly render the expected HTML instead. This change does prevent these tooltips from working when the user has JS disabled in their browser, but I think we made it clear by now that JS is required for gitea to work properly. Co-authored-by: Lunny Xiao <xiaolunwen@gmail.com> Co-authored-by: techknowlogick <techknowlogick@gitea.io>tags/v1.18.0-rc0
@@ -64,7 +64,7 @@ func testViewRepo(t *testing.T) { | |||
} | |||
}) | |||
f.commitTime, _ = s.Find("span.time-since").Attr("title") | |||
f.commitTime, _ = s.Find("span.time-since").Attr("data-content") | |||
items = append(items, f) | |||
}) | |||
@@ -234,7 +234,7 @@ func TimeSince(then time.Time, lang translation.Locale) template.HTML { | |||
} | |||
func htmlTimeSince(then, now time.Time, lang translation.Locale) template.HTML { | |||
return template.HTML(fmt.Sprintf(`<span class="time-since" title="%s">%s</span>`, | |||
return template.HTML(fmt.Sprintf(`<span class="time-since tooltip" data-content="%s">%s</span>`, | |||
then.In(setting.DefaultUILocation).Format(GetTimeFormat(lang.Language())), | |||
timeSince(then, now, lang))) | |||
} | |||
@@ -245,7 +245,7 @@ func TimeSinceUnix(then TimeStamp, lang translation.Locale) template.HTML { | |||
} | |||
func htmlTimeSinceUnix(then, now TimeStamp, lang translation.Locale) template.HTML { | |||
return template.HTML(fmt.Sprintf(`<span class="time-since" title="%s">%s</span>`, | |||
return template.HTML(fmt.Sprintf(`<span class="time-since tooltip" data-content="%s">%s</span>`, | |||
then.FormatInLocation(GetTimeFormat(lang.Language()), setting.DefaultUILocation), | |||
timeSinceUnix(int64(then), int64(now), lang))) | |||
} |
@@ -119,7 +119,7 @@ func TestHtmlTimeSince(t *testing.T) { | |||
// test that `diff` yields a result containing `expected` | |||
test := func(expected string, diff time.Duration) { | |||
actual := htmlTimeSince(BaseDate, BaseDate.Add(diff), translation.NewLocale("en-US")) | |||
assert.Contains(t, actual, `title="Sat Jan 1 00:00:00 UTC 2000"`) | |||
assert.Contains(t, actual, `data-content="Sat Jan 1 00:00:00 UTC 2000"`) | |||
assert.Contains(t, actual, expected) | |||
} | |||
test("1 second", time.Second) |
@@ -70,14 +70,6 @@ export function initGlobalTooltips() { | |||
} | |||
export function initGlobalCommon() { | |||
// Show exact time | |||
$('.time-since').each(function () { | |||
$(this) | |||
.addClass('tooltip') | |||
.attr('data-content', $(this).attr('title')) | |||
.attr('title', ''); | |||
}); | |||
// Undo Safari emoji glitch fix at high enough zoom levels | |||
if (navigator.userAgent.match('Safari')) { | |||
$(window).resize(() => { |