Remove useless JS operation for relative time tooltips (#20756)

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>
tokarchuk/v1.18
silverwind 2 years ago committed by GitHub
parent 74515d3d17
commit 20b3a90450
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 2
      integrations/repo_test.go
  2. 4
      modules/timeutil/since.go
  3. 2
      modules/timeutil/since_test.go
  4. 8
      web_src/js/features/common-global.js

@ -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) 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 { 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())), then.In(setting.DefaultUILocation).Format(GetTimeFormat(lang.Language())),
timeSince(then, now, lang))) 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 { 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), then.FormatInLocation(GetTimeFormat(lang.Language()), setting.DefaultUILocation),
timeSinceUnix(int64(then), int64(now), lang))) timeSinceUnix(int64(then), int64(now), lang)))
} }

@ -119,7 +119,7 @@ func TestHtmlTimeSince(t *testing.T) {
// test that `diff` yields a result containing `expected` // test that `diff` yields a result containing `expected`
test := func(expected string, diff time.Duration) { test := func(expected string, diff time.Duration) {
actual := htmlTimeSince(BaseDate, BaseDate.Add(diff), translation.NewLocale("en-US")) 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) assert.Contains(t, actual, expected)
} }
test("1 second", time.Second) test("1 second", time.Second)

@ -70,14 +70,6 @@ export function initGlobalTooltips() {
} }
export function initGlobalCommon() { 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 // Undo Safari emoji glitch fix at high enough zoom levels
if (navigator.userAgent.match('Safari')) { if (navigator.userAgent.match('Safari')) {
$(window).resize(() => { $(window).resize(() => {

Loading…
Cancel
Save