diff --git a/views/history.qtpl b/views/history.qtpl index 7b3cce4..874411c 100644 --- a/views/history.qtpl +++ b/views/history.qtpl @@ -1,4 +1,6 @@ +{% import "fmt" %} {% import "net/http" %} +{% import "time" %} {% import "github.com/bouncepaw/mycorrhiza/cfg" %} {% import "github.com/bouncepaw/mycorrhiza/util" %} @@ -32,15 +34,15 @@ if err != nil { @@ -54,18 +56,28 @@ if err != nil { How come? I'll add the role anyway. -- bouncepaw {% endcomment %} - {% code + {% code changes := history.RecentChanges(n) + var year, day int + var month time.Month %}
{% if len(changes) == 0 %}

Could not find any recent changes.

{% else %} {% for i, entry := range changes %} + + {% code y, m, d := entry.Time.UTC().Date() %} + {% if d != day || m != month || y != year %} +

{%s fmt.Sprintf("%04d-%02d-%02d", y, m, d) %}

+ {% code year, month, day = y, m, d %} + {% endif %} + + {% endfor %} {% endif %}
@@ -74,7 +86,7 @@ if err != nil { {% endfunc %} {% func recentChangesEntry(rev history.Revision) %} -
  • +
  • {%s rev.Hash %}
  • {%s= rev.HyphaeLinksHTML() %}
  • {%s rev.Message %} {% if rev.Username != "anon" %}by {% endif %}
  • diff --git a/views/history.qtpl.go b/views/history.qtpl.go index 50cbad2..9c7d22b 100644 --- a/views/history.qtpl.go +++ b/views/history.qtpl.go @@ -5,107 +5,113 @@ package views //line views/history.qtpl:1 +import "fmt" + +//line views/history.qtpl:2 import "net/http" //line views/history.qtpl:3 -import "github.com/bouncepaw/mycorrhiza/cfg" - -//line views/history.qtpl:4 -import "github.com/bouncepaw/mycorrhiza/util" +import "time" //line views/history.qtpl:5 -import "github.com/bouncepaw/mycorrhiza/user" +import "github.com/bouncepaw/mycorrhiza/cfg" //line views/history.qtpl:6 -import "github.com/bouncepaw/mycorrhiza/hyphae" +import "github.com/bouncepaw/mycorrhiza/util" //line views/history.qtpl:7 +import "github.com/bouncepaw/mycorrhiza/user" + +//line views/history.qtpl:8 +import "github.com/bouncepaw/mycorrhiza/hyphae" + +//line views/history.qtpl:9 import "github.com/bouncepaw/mycorrhiza/history" -//line views/history.qtpl:10 +//line views/history.qtpl:12 import ( qtio422016 "io" qt422016 "github.com/valyala/quicktemplate" ) -//line views/history.qtpl:10 +//line views/history.qtpl:12 var ( _ = qtio422016.Copy _ = qt422016.AcquireByteBuffer ) -//line views/history.qtpl:10 +//line views/history.qtpl:12 func StreamPrimitiveDiffHTML(qw422016 *qt422016.Writer, rq *http.Request, h *hyphae.Hypha, u *user.User, hash string) { -//line views/history.qtpl:10 +//line views/history.qtpl:12 qw422016.N().S(` `) -//line views/history.qtpl:12 +//line views/history.qtpl:14 text, err := history.PrimitiveDiffAtRevision(h.TextPath, hash) if err != nil { text = err.Error() } -//line views/history.qtpl:16 +//line views/history.qtpl:18 qw422016.N().S(` `) -//line views/history.qtpl:17 +//line views/history.qtpl:19 StreamNavHTML(qw422016, rq, h.Name, "history") -//line views/history.qtpl:17 +//line views/history.qtpl:19 qw422016.N().S(`

    Diff `) -//line views/history.qtpl:21 +//line views/history.qtpl:23 qw422016.E().S(util.BeautifulName(h.Name)) -//line views/history.qtpl:21 +//line views/history.qtpl:23 qw422016.N().S(` at `) -//line views/history.qtpl:21 +//line views/history.qtpl:23 qw422016.E().S(hash) -//line views/history.qtpl:21 +//line views/history.qtpl:23 qw422016.N().S(`

    `)
    -//line views/history.qtpl:22
    +//line views/history.qtpl:24
     	qw422016.E().S(text)
    -//line views/history.qtpl:22
    +//line views/history.qtpl:24
     	qw422016.N().S(`
    `) -//line views/history.qtpl:26 +//line views/history.qtpl:28 } -//line views/history.qtpl:26 +//line views/history.qtpl:28 func WritePrimitiveDiffHTML(qq422016 qtio422016.Writer, rq *http.Request, h *hyphae.Hypha, u *user.User, hash string) { -//line views/history.qtpl:26 +//line views/history.qtpl:28 qw422016 := qt422016.AcquireWriter(qq422016) -//line views/history.qtpl:26 +//line views/history.qtpl:28 StreamPrimitiveDiffHTML(qw422016, rq, h, u, hash) -//line views/history.qtpl:26 +//line views/history.qtpl:28 qt422016.ReleaseWriter(qw422016) -//line views/history.qtpl:26 +//line views/history.qtpl:28 } -//line views/history.qtpl:26 +//line views/history.qtpl:28 func PrimitiveDiffHTML(rq *http.Request, h *hyphae.Hypha, u *user.User, hash string) string { -//line views/history.qtpl:26 +//line views/history.qtpl:28 qb422016 := qt422016.AcquireByteBuffer() -//line views/history.qtpl:26 +//line views/history.qtpl:28 WritePrimitiveDiffHTML(qb422016, rq, h, u, hash) -//line views/history.qtpl:26 +//line views/history.qtpl:28 qs422016 := string(qb422016.B) -//line views/history.qtpl:26 +//line views/history.qtpl:28 qt422016.ReleaseByteBuffer(qb422016) -//line views/history.qtpl:26 +//line views/history.qtpl:28 return qs422016 -//line views/history.qtpl:26 +//line views/history.qtpl:28 } -//line views/history.qtpl:28 +//line views/history.qtpl:30 func StreamRecentChangesHTML(qw422016 *qt422016.Writer, n int) { -//line views/history.qtpl:28 +//line views/history.qtpl:30 qw422016.N().S(`
    @@ -114,51 +120,54 @@ func StreamRecentChangesHTML(qw422016 *qt422016.Writer, n int) { @@ -166,216 +175,248 @@ func StreamRecentChangesHTML(qw422016 *qt422016.Writer, n int) {

    Subscribe via RSS, Atom or JSON feed.

    `) -//line views/history.qtpl:55 +//line views/history.qtpl:57 qw422016.N().S(` `) -//line views/history.qtpl:58 +//line views/history.qtpl:60 changes := history.RecentChanges(n) + var year, day int + var month time.Month -//line views/history.qtpl:59 +//line views/history.qtpl:63 qw422016.N().S(`
    `) -//line views/history.qtpl:61 +//line views/history.qtpl:65 if len(changes) == 0 { -//line views/history.qtpl:61 +//line views/history.qtpl:65 qw422016.N().S(`

    Could not find any recent changes.

    `) -//line views/history.qtpl:63 +//line views/history.qtpl:67 } else { -//line views/history.qtpl:63 +//line views/history.qtpl:67 qw422016.N().S(` `) -//line views/history.qtpl:64 +//line views/history.qtpl:68 for i, entry := range changes { -//line views/history.qtpl:64 +//line views/history.qtpl:68 qw422016.N().S(` + + `) +//line views/history.qtpl:70 + y, m, d := entry.Time.UTC().Date() + +//line views/history.qtpl:70 + qw422016.N().S(` + `) +//line views/history.qtpl:71 + if d != day || m != month || y != year { +//line views/history.qtpl:71 + qw422016.N().S(` +

    `) +//line views/history.qtpl:72 + qw422016.E().S(fmt.Sprintf("%04d-%02d-%02d", y, m, d)) +//line views/history.qtpl:72 + qw422016.N().S(`

    + `) +//line views/history.qtpl:73 + year, month, day = y, m, d + +//line views/history.qtpl:73 + qw422016.N().S(` + `) +//line views/history.qtpl:74 + } +//line views/history.qtpl:74 + qw422016.N().S(` +
      `) -//line views/history.qtpl:67 +//line views/history.qtpl:78 qw422016.N().S(recentChangesEntry(entry)) -//line views/history.qtpl:67 +//line views/history.qtpl:78 qw422016.N().S(`
    + `) -//line views/history.qtpl:69 +//line views/history.qtpl:81 } -//line views/history.qtpl:69 +//line views/history.qtpl:81 qw422016.N().S(` `) -//line views/history.qtpl:70 +//line views/history.qtpl:82 } -//line views/history.qtpl:70 +//line views/history.qtpl:82 qw422016.N().S(`
    `) -//line views/history.qtpl:74 +//line views/history.qtpl:86 } -//line views/history.qtpl:74 +//line views/history.qtpl:86 func WriteRecentChangesHTML(qq422016 qtio422016.Writer, n int) { -//line views/history.qtpl:74 +//line views/history.qtpl:86 qw422016 := qt422016.AcquireWriter(qq422016) -//line views/history.qtpl:74 +//line views/history.qtpl:86 StreamRecentChangesHTML(qw422016, n) -//line views/history.qtpl:74 +//line views/history.qtpl:86 qt422016.ReleaseWriter(qw422016) -//line views/history.qtpl:74 +//line views/history.qtpl:86 } -//line views/history.qtpl:74 +//line views/history.qtpl:86 func RecentChangesHTML(n int) string { -//line views/history.qtpl:74 +//line views/history.qtpl:86 qb422016 := qt422016.AcquireByteBuffer() -//line views/history.qtpl:74 +//line views/history.qtpl:86 WriteRecentChangesHTML(qb422016, n) -//line views/history.qtpl:74 +//line views/history.qtpl:86 qs422016 := string(qb422016.B) -//line views/history.qtpl:74 +//line views/history.qtpl:86 qt422016.ReleaseByteBuffer(qb422016) -//line views/history.qtpl:74 +//line views/history.qtpl:86 return qs422016 -//line views/history.qtpl:74 +//line views/history.qtpl:86 } -//line views/history.qtpl:76 +//line views/history.qtpl:88 func streamrecentChangesEntry(qw422016 *qt422016.Writer, rev history.Revision) { -//line views/history.qtpl:76 +//line views/history.qtpl:88 qw422016.N().S(`
  • `) -//line views/history.qtpl:78 +//line views/history.qtpl:90 qw422016.E().S(rev.Hash) -//line views/history.qtpl:78 +//line views/history.qtpl:90 qw422016.N().S(`
  • `) -//line views/history.qtpl:79 +//line views/history.qtpl:91 qw422016.N().S(rev.HyphaeLinksHTML()) -//line views/history.qtpl:79 +//line views/history.qtpl:91 qw422016.N().S(`
  • `) -//line views/history.qtpl:80 +//line views/history.qtpl:92 qw422016.E().S(rev.Message) -//line views/history.qtpl:80 +//line views/history.qtpl:92 qw422016.N().S(` `) -//line views/history.qtpl:80 +//line views/history.qtpl:92 if rev.Username != "anon" { -//line views/history.qtpl:80 +//line views/history.qtpl:92 qw422016.N().S(`by `) -//line views/history.qtpl:80 +//line views/history.qtpl:92 } -//line views/history.qtpl:80 +//line views/history.qtpl:92 qw422016.N().S(`
  • `) -//line views/history.qtpl:81 +//line views/history.qtpl:93 } -//line views/history.qtpl:81 +//line views/history.qtpl:93 func writerecentChangesEntry(qq422016 qtio422016.Writer, rev history.Revision) { -//line views/history.qtpl:81 +//line views/history.qtpl:93 qw422016 := qt422016.AcquireWriter(qq422016) -//line views/history.qtpl:81 +//line views/history.qtpl:93 streamrecentChangesEntry(qw422016, rev) -//line views/history.qtpl:81 +//line views/history.qtpl:93 qt422016.ReleaseWriter(qw422016) -//line views/history.qtpl:81 +//line views/history.qtpl:93 } -//line views/history.qtpl:81 +//line views/history.qtpl:93 func recentChangesEntry(rev history.Revision) string { -//line views/history.qtpl:81 +//line views/history.qtpl:93 qb422016 := qt422016.AcquireByteBuffer() -//line views/history.qtpl:81 +//line views/history.qtpl:93 writerecentChangesEntry(qb422016, rev) -//line views/history.qtpl:81 +//line views/history.qtpl:93 qs422016 := string(qb422016.B) -//line views/history.qtpl:81 +//line views/history.qtpl:93 qt422016.ReleaseByteBuffer(qb422016) -//line views/history.qtpl:81 +//line views/history.qtpl:93 return qs422016 -//line views/history.qtpl:81 +//line views/history.qtpl:93 } -//line views/history.qtpl:83 +//line views/history.qtpl:95 func StreamHistoryHTML(qw422016 *qt422016.Writer, rq *http.Request, hyphaName, list string) { -//line views/history.qtpl:83 +//line views/history.qtpl:95 qw422016.N().S(` `) -//line views/history.qtpl:84 +//line views/history.qtpl:96 StreamNavHTML(qw422016, rq, hyphaName, "history") -//line views/history.qtpl:84 +//line views/history.qtpl:96 qw422016.N().S(`

    History of `) -//line views/history.qtpl:88 +//line views/history.qtpl:100 qw422016.E().S(util.BeautifulName(hyphaName)) -//line views/history.qtpl:88 +//line views/history.qtpl:100 qw422016.N().S(`

    `) -//line views/history.qtpl:89 +//line views/history.qtpl:101 qw422016.N().S(list) -//line views/history.qtpl:89 +//line views/history.qtpl:101 qw422016.N().S(`
    `) -//line views/history.qtpl:93 +//line views/history.qtpl:105 } -//line views/history.qtpl:93 +//line views/history.qtpl:105 func WriteHistoryHTML(qq422016 qtio422016.Writer, rq *http.Request, hyphaName, list string) { -//line views/history.qtpl:93 +//line views/history.qtpl:105 qw422016 := qt422016.AcquireWriter(qq422016) -//line views/history.qtpl:93 +//line views/history.qtpl:105 StreamHistoryHTML(qw422016, rq, hyphaName, list) -//line views/history.qtpl:93 +//line views/history.qtpl:105 qt422016.ReleaseWriter(qw422016) -//line views/history.qtpl:93 +//line views/history.qtpl:105 } -//line views/history.qtpl:93 +//line views/history.qtpl:105 func HistoryHTML(rq *http.Request, hyphaName, list string) string { -//line views/history.qtpl:93 +//line views/history.qtpl:105 qb422016 := qt422016.AcquireByteBuffer() -//line views/history.qtpl:93 +//line views/history.qtpl:105 WriteHistoryHTML(qb422016, rq, hyphaName, list) -//line views/history.qtpl:93 +//line views/history.qtpl:105 qs422016 := string(qb422016.B) -//line views/history.qtpl:93 +//line views/history.qtpl:105 qt422016.ReleaseByteBuffer(qb422016) -//line views/history.qtpl:93 +//line views/history.qtpl:105 return qs422016 -//line views/history.qtpl:93 +//line views/history.qtpl:105 }