mirror of
https://codeberg.org/forgejo/forgejo.git
synced 2025-05-25 11:22:16 +00:00
Merge pull request #311 from nuss-justin/issue/281
Fix #281. Add mouse-over precise time and on-click switch listener.
This commit is contained in:
commit
568c9b353e
4 changed files with 80 additions and 2 deletions
|
@ -12,6 +12,7 @@ import (
|
|||
"encoding/hex"
|
||||
"fmt"
|
||||
"hash"
|
||||
"html/template"
|
||||
"math"
|
||||
"strings"
|
||||
"time"
|
||||
|
@ -241,8 +242,7 @@ func TimeSincePro(then time.Time) string {
|
|||
return strings.TrimPrefix(timeStr, ", ")
|
||||
}
|
||||
|
||||
// TimeSince calculates the time interval and generate user-friendly string.
|
||||
func TimeSince(then time.Time, lang string) string {
|
||||
func timeSince(then time.Time, lang string) string {
|
||||
now := time.Now()
|
||||
|
||||
lbl := i18n.Tr(lang, "tool.ago")
|
||||
|
@ -292,6 +292,11 @@ func TimeSince(then time.Time, lang string) string {
|
|||
}
|
||||
}
|
||||
|
||||
// TimeSince calculates the time interval and generate user-friendly string.
|
||||
func TimeSince(t time.Time, lang string) template.HTML {
|
||||
return template.HTML(fmt.Sprintf(`<span class="time-since" title="%s">%s</span>`, t.Format(setting.TimeFormat), timeSince(t, lang)))
|
||||
}
|
||||
|
||||
const (
|
||||
Byte = 1
|
||||
KByte = Byte * 1024
|
||||
|
|
|
@ -11,6 +11,7 @@ import (
|
|||
"path"
|
||||
"path/filepath"
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"github.com/Unknwon/com"
|
||||
"github.com/Unknwon/goconfig"
|
||||
|
@ -77,6 +78,9 @@ var (
|
|||
AttachmentMaxFiles int
|
||||
AttachmentEnabled bool
|
||||
|
||||
// Time settings.
|
||||
TimeFormat string
|
||||
|
||||
// Cache settings.
|
||||
CacheAdapter string
|
||||
CacheInternal int
|
||||
|
@ -183,6 +187,55 @@ func NewConfigContext() {
|
|||
AttachmentMaxFiles = Cfg.MustInt("attachment", "MAX_FILES", 10)
|
||||
AttachmentEnabled = Cfg.MustBool("attachment", "ENABLE", true)
|
||||
|
||||
TimeFormat = Cfg.MustValue("time", "FORMAT", time.RFC1123)
|
||||
|
||||
switch TimeFormat {
|
||||
case "ANSIC":
|
||||
TimeFormat = time.ANSIC
|
||||
|
||||
case "UnixDate":
|
||||
TimeFormat = time.UnixDate
|
||||
|
||||
case "RubyDate":
|
||||
TimeFormat = time.RubyDate
|
||||
|
||||
case "RFC822":
|
||||
TimeFormat = time.RFC822
|
||||
|
||||
case "RFC822Z":
|
||||
TimeFormat = time.RFC822Z
|
||||
|
||||
case "RFC850":
|
||||
TimeFormat = time.RFC850
|
||||
|
||||
case "RFC1123":
|
||||
TimeFormat = time.RFC1123
|
||||
|
||||
case "RFC1123Z":
|
||||
TimeFormat = time.RFC1123Z
|
||||
|
||||
case "RFC3339":
|
||||
TimeFormat = time.RFC3339
|
||||
|
||||
case "RFC3339Nano":
|
||||
TimeFormat = time.RFC3339Nano
|
||||
|
||||
case "Kitchen":
|
||||
TimeFormat = time.Kitchen
|
||||
|
||||
case "Stamp":
|
||||
TimeFormat = time.Stamp
|
||||
|
||||
case "StampMilli":
|
||||
TimeFormat = time.StampMilli
|
||||
|
||||
case "StampMicro":
|
||||
TimeFormat = time.StampMicro
|
||||
|
||||
case "StampNano":
|
||||
TimeFormat = time.StampNano
|
||||
}
|
||||
|
||||
if err = os.MkdirAll(AttachmentPath, os.ModePerm); err != nil {
|
||||
log.Fatal(4, "Could not create directory %s: %s", AttachmentPath, err)
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue