From d2cc1e70744fb9ab3c917bf804ca58195ff54cd9 Mon Sep 17 00:00:00 2001 From: bouncepaw Date: Mon, 22 Feb 2021 23:37:23 +0500 Subject: [PATCH] Redesign /list --- main.go | 12 +- templates/asset.qtpl.go | 11 +- templates/default.css | 9 +- views/stuff.qtpl | 40 ++-- views/stuff.qtpl.go | 437 ++++++++++++++++++---------------------- 5 files changed, 233 insertions(+), 276 deletions(-) diff --git a/main.go b/main.go index 88c9d1a..288ff7f 100644 --- a/main.go +++ b/main.go @@ -10,12 +10,10 @@ import ( "math/rand" "net/http" "os" - "path/filepath" "strings" "github.com/bouncepaw/mycorrhiza/history" "github.com/bouncepaw/mycorrhiza/hyphae" - "github.com/bouncepaw/mycorrhiza/mimetype" "github.com/bouncepaw/mycorrhiza/shroom" "github.com/bouncepaw/mycorrhiza/templates" "github.com/bouncepaw/mycorrhiza/user" @@ -48,15 +46,7 @@ func HttpErr(w http.ResponseWriter, status int, name, title, errMsg string) { // Show all hyphae func handlerList(w http.ResponseWriter, rq *http.Request) { log.Println(rq.URL) - var ( - tbody string - pageCount = hyphae.Count() - u = user.FromRequest(rq) - ) - for h := range hyphae.YieldExistingHyphae() { - tbody += views.HyphaListRowHTML(h.Name, mimetype.FromExtension(filepath.Ext(h.BinaryPath)), h.BinaryPath != "") - } - util.HTTP200Page(w, base("List of pages", views.HyphaListHTML(tbody, pageCount), u)) + util.HTTP200Page(w, base("List of pages", views.HyphaListHTML(), user.FromRequest(rq))) } // This part is present in all html documents. diff --git a/templates/asset.qtpl.go b/templates/asset.qtpl.go index 7125101..7e951aa 100644 --- a/templates/asset.qtpl.go +++ b/templates/asset.qtpl.go @@ -23,12 +23,19 @@ func StreamDefaultCSS(qw422016 *qt422016.Writer) { qw422016.N().S(` `) //line templates/asset.qtpl:2 - qw422016.N().S(`/* General element positions, from small to big */ -.modal__title { font-size: 2rem; } + qw422016.N().S(`.modal__title { font-size: 2rem; } .modal__confirmation-msg { margin: 0 0 .5rem 0; } .modal__action { display: inline-block; font-size: 1rem; padding: .25rem; border-radius: .25rem; } .modal__submit { border: 1px #999 solid; } .modal__cancel { border: 1px #999 dashed; text-decoration: none; } + +.hypha-list { padding-left: 0; } +.hypha-list__entry { list-style-type: none; } +.hypha-list__link { text-decoration: none; display: inline-block; padding: .25rem; } +.hypha-list__link:hover { text-decoration: underline; } +.hypha-list__amnt-type { font-size: smaller; color: #999; } + +/* General element positions, from small to big */ /* Phones and whatnot */ .layout { display: grid; row-gap: 1rem; } header { width: 100%; margin-bottom: 1rem; } diff --git a/templates/default.css b/templates/default.css index c5d3001..31c7313 100644 --- a/templates/default.css +++ b/templates/default.css @@ -1,9 +1,16 @@ -/* General element positions, from small to big */ .modal__title { font-size: 2rem; } .modal__confirmation-msg { margin: 0 0 .5rem 0; } .modal__action { display: inline-block; font-size: 1rem; padding: .25rem; border-radius: .25rem; } .modal__submit { border: 1px #999 solid; } .modal__cancel { border: 1px #999 dashed; text-decoration: none; } + +.hypha-list { padding-left: 0; } +.hypha-list__entry { list-style-type: none; } +.hypha-list__link { text-decoration: none; display: inline-block; padding: .25rem; } +.hypha-list__link:hover { text-decoration: underline; } +.hypha-list__amnt-type { font-size: smaller; color: #999; } + +/* General element positions, from small to big */ /* Phones and whatnot */ .layout { display: grid; row-gap: 1rem; } header { width: 100%; margin-bottom: 1rem; } diff --git a/views/stuff.qtpl b/views/stuff.qtpl index fed2faa..5fbdc25 100644 --- a/views/stuff.qtpl +++ b/views/stuff.qtpl @@ -1,5 +1,7 @@ -{% import "github.com/bouncepaw/mycorrhiza/util" %} +{% import "path/filepath" %} +{% import "github.com/bouncepaw/mycorrhiza/hyphae" %} {% import "github.com/bouncepaw/mycorrhiza/user" %} +{% import "github.com/bouncepaw/mycorrhiza/util" %} {% func BaseHTML(title, body string, u *user.User, headElements ...string) %} @@ -70,37 +72,25 @@ for u := range user.YieldUsers() { {% endfunc %} -{% func HyphaListHTML(tbody string, pageCount int) %} +{% func HyphaListHTML() %}

List of hyphae

-

This wiki has {%d pageCount %} hyphae.

- - - - - - - - - {%s= tbody %} - -
Full nameBinary part type
+

This wiki has {%d hyphae.Count() %} hyphae.

+
    + {% for h := range hyphae.YieldExistingHyphae() %} +
  • + {%s util.BeautifulName(h.Name) %} + {% if h.BinaryPath != "" %} + {%s filepath.Ext(h.BinaryPath)[1:] %} + {% endif %} +
  • + {% endfor %} +
{% endfunc %} -{% func HyphaListRowHTML(hyphaName, binaryMime string, binaryPresent bool) %} - - {%s hyphaName %} - {% if binaryPresent %} - {%s binaryMime %} - {% else %} - - {% endif %} - -{% endfunc %} - {% func AboutHTML() %}
diff --git a/views/stuff.qtpl.go b/views/stuff.qtpl.go index 7c63324..7780726 100644 --- a/views/stuff.qtpl.go +++ b/views/stuff.qtpl.go @@ -5,27 +5,33 @@ package views //line views/stuff.qtpl:1 -import "github.com/bouncepaw/mycorrhiza/util" +import "path/filepath" //line views/stuff.qtpl:2 +import "github.com/bouncepaw/mycorrhiza/hyphae" + +//line views/stuff.qtpl:3 import "github.com/bouncepaw/mycorrhiza/user" //line views/stuff.qtpl:4 +import "github.com/bouncepaw/mycorrhiza/util" + +//line views/stuff.qtpl:6 import ( qtio422016 "io" qt422016 "github.com/valyala/quicktemplate" ) -//line views/stuff.qtpl:4 +//line views/stuff.qtpl:6 var ( _ = qtio422016.Copy _ = qt422016.AcquireByteBuffer ) -//line views/stuff.qtpl:4 +//line views/stuff.qtpl:6 func StreamBaseHTML(qw422016 *qt422016.Writer, title, body string, u *user.User, headElements ...string) { -//line views/stuff.qtpl:4 +//line views/stuff.qtpl:6 qw422016.N().S(` @@ -34,18 +40,18 @@ func StreamBaseHTML(qw422016 *qt422016.Writer, title, body string, u *user.User, `) -//line views/stuff.qtpl:11 +//line views/stuff.qtpl:13 qw422016.E().S(title) -//line views/stuff.qtpl:11 +//line views/stuff.qtpl:13 qw422016.N().S(` `) -//line views/stuff.qtpl:12 +//line views/stuff.qtpl:14 for _, el := range headElements { -//line views/stuff.qtpl:12 +//line views/stuff.qtpl:14 qw422016.N().S(el) -//line views/stuff.qtpl:12 +//line views/stuff.qtpl:14 } -//line views/stuff.qtpl:12 +//line views/stuff.qtpl:14 qw422016.N().S(` @@ -53,76 +59,76 @@ func StreamBaseHTML(qw422016 *qt422016.Writer, title, body string, u *user.User, `) -//line views/stuff.qtpl:25 +//line views/stuff.qtpl:27 qw422016.N().S(body) -//line views/stuff.qtpl:25 +//line views/stuff.qtpl:27 qw422016.N().S(` `) -//line views/stuff.qtpl:28 +//line views/stuff.qtpl:30 } -//line views/stuff.qtpl:28 +//line views/stuff.qtpl:30 func WriteBaseHTML(qq422016 qtio422016.Writer, title, body string, u *user.User, headElements ...string) { -//line views/stuff.qtpl:28 +//line views/stuff.qtpl:30 qw422016 := qt422016.AcquireWriter(qq422016) -//line views/stuff.qtpl:28 +//line views/stuff.qtpl:30 StreamBaseHTML(qw422016, title, body, u, headElements...) -//line views/stuff.qtpl:28 +//line views/stuff.qtpl:30 qt422016.ReleaseWriter(qw422016) -//line views/stuff.qtpl:28 +//line views/stuff.qtpl:30 } -//line views/stuff.qtpl:28 +//line views/stuff.qtpl:30 func BaseHTML(title, body string, u *user.User, headElements ...string) string { -//line views/stuff.qtpl:28 +//line views/stuff.qtpl:30 qb422016 := qt422016.AcquireByteBuffer() -//line views/stuff.qtpl:28 +//line views/stuff.qtpl:30 WriteBaseHTML(qb422016, title, body, u, headElements...) -//line views/stuff.qtpl:28 +//line views/stuff.qtpl:30 qs422016 := string(qb422016.B) -//line views/stuff.qtpl:28 +//line views/stuff.qtpl:30 qt422016.ReleaseByteBuffer(qb422016) -//line views/stuff.qtpl:28 +//line views/stuff.qtpl:30 return qs422016 -//line views/stuff.qtpl:28 +//line views/stuff.qtpl:30 } -//line views/stuff.qtpl:30 +//line views/stuff.qtpl:32 func StreamUserListHTML(qw422016 *qt422016.Writer) { -//line views/stuff.qtpl:30 +//line views/stuff.qtpl:32 qw422016.N().S(`

List of users

`) -//line views/stuff.qtpl:35 +//line views/stuff.qtpl:37 var ( admins = make([]string, 0) moderators = make([]string, 0) @@ -139,346 +145,303 @@ func StreamUserListHTML(qw422016 *qt422016.Writer) { } } -//line views/stuff.qtpl:50 +//line views/stuff.qtpl:52 qw422016.N().S(`

Admins

    `) -//line views/stuff.qtpl:53 +//line views/stuff.qtpl:55 for _, name := range admins { -//line views/stuff.qtpl:53 +//line views/stuff.qtpl:55 qw422016.N().S(`
  1. `) -//line views/stuff.qtpl:54 +//line views/stuff.qtpl:56 qw422016.E().S(name) -//line views/stuff.qtpl:54 +//line views/stuff.qtpl:56 qw422016.N().S(`
  2. `) -//line views/stuff.qtpl:55 +//line views/stuff.qtpl:57 } -//line views/stuff.qtpl:55 +//line views/stuff.qtpl:57 qw422016.N().S(`

Moderators

    `) -//line views/stuff.qtpl:59 +//line views/stuff.qtpl:61 for _, name := range moderators { -//line views/stuff.qtpl:59 +//line views/stuff.qtpl:61 qw422016.N().S(`
  1. `) -//line views/stuff.qtpl:60 +//line views/stuff.qtpl:62 qw422016.E().S(name) -//line views/stuff.qtpl:60 +//line views/stuff.qtpl:62 qw422016.N().S(`
  2. `) -//line views/stuff.qtpl:61 +//line views/stuff.qtpl:63 } -//line views/stuff.qtpl:61 +//line views/stuff.qtpl:63 qw422016.N().S(`

Editors

    `) -//line views/stuff.qtpl:65 +//line views/stuff.qtpl:67 for _, name := range editors { -//line views/stuff.qtpl:65 +//line views/stuff.qtpl:67 qw422016.N().S(`
  1. `) -//line views/stuff.qtpl:66 +//line views/stuff.qtpl:68 qw422016.E().S(name) -//line views/stuff.qtpl:66 +//line views/stuff.qtpl:68 qw422016.N().S(`
  2. `) -//line views/stuff.qtpl:67 +//line views/stuff.qtpl:69 } -//line views/stuff.qtpl:67 +//line views/stuff.qtpl:69 qw422016.N().S(`
`) -//line views/stuff.qtpl:71 +//line views/stuff.qtpl:73 } -//line views/stuff.qtpl:71 +//line views/stuff.qtpl:73 func WriteUserListHTML(qq422016 qtio422016.Writer) { -//line views/stuff.qtpl:71 +//line views/stuff.qtpl:73 qw422016 := qt422016.AcquireWriter(qq422016) -//line views/stuff.qtpl:71 +//line views/stuff.qtpl:73 StreamUserListHTML(qw422016) -//line views/stuff.qtpl:71 +//line views/stuff.qtpl:73 qt422016.ReleaseWriter(qw422016) -//line views/stuff.qtpl:71 +//line views/stuff.qtpl:73 } -//line views/stuff.qtpl:71 +//line views/stuff.qtpl:73 func UserListHTML() string { -//line views/stuff.qtpl:71 +//line views/stuff.qtpl:73 qb422016 := qt422016.AcquireByteBuffer() -//line views/stuff.qtpl:71 +//line views/stuff.qtpl:73 WriteUserListHTML(qb422016) -//line views/stuff.qtpl:71 +//line views/stuff.qtpl:73 qs422016 := string(qb422016.B) -//line views/stuff.qtpl:71 +//line views/stuff.qtpl:73 qt422016.ReleaseByteBuffer(qb422016) -//line views/stuff.qtpl:71 +//line views/stuff.qtpl:73 return qs422016 -//line views/stuff.qtpl:71 +//line views/stuff.qtpl:73 } -//line views/stuff.qtpl:73 -func StreamHyphaListHTML(qw422016 *qt422016.Writer, tbody string, pageCount int) { -//line views/stuff.qtpl:73 +//line views/stuff.qtpl:75 +func StreamHyphaListHTML(qw422016 *qt422016.Writer) { +//line views/stuff.qtpl:75 qw422016.N().S(`

List of hyphae

This wiki has `) -//line views/stuff.qtpl:77 - qw422016.N().D(pageCount) -//line views/stuff.qtpl:77 +//line views/stuff.qtpl:79 + qw422016.N().D(hyphae.Count()) +//line views/stuff.qtpl:79 qw422016.N().S(` hyphae.

- - - - - - - - +
    + `) +//line views/stuff.qtpl:81 + for h := range hyphae.YieldExistingHyphae() { +//line views/stuff.qtpl:81 + qw422016.N().S(` +
  • + `) +//line views/stuff.qtpl:83 + qw422016.E().S(util.BeautifulName(h.Name)) +//line views/stuff.qtpl:83 + qw422016.N().S(` + `) +//line views/stuff.qtpl:84 + if h.BinaryPath != "" { +//line views/stuff.qtpl:84 + qw422016.N().S(` + `) +//line views/stuff.qtpl:85 + qw422016.E().S(filepath.Ext(h.BinaryPath)[1:]) +//line views/stuff.qtpl:85 + qw422016.N().S(` `) //line views/stuff.qtpl:86 - qw422016.N().S(tbody) + } //line views/stuff.qtpl:86 + qw422016.N().S(` +
  • + `) +//line views/stuff.qtpl:88 + } +//line views/stuff.qtpl:88 qw422016.N().S(` -
-
Full nameBinary part type
+
`) -//line views/stuff.qtpl:91 +//line views/stuff.qtpl:92 } -//line views/stuff.qtpl:91 -func WriteHyphaListHTML(qq422016 qtio422016.Writer, tbody string, pageCount int) { -//line views/stuff.qtpl:91 +//line views/stuff.qtpl:92 +func WriteHyphaListHTML(qq422016 qtio422016.Writer) { +//line views/stuff.qtpl:92 qw422016 := qt422016.AcquireWriter(qq422016) -//line views/stuff.qtpl:91 - StreamHyphaListHTML(qw422016, tbody, pageCount) -//line views/stuff.qtpl:91 +//line views/stuff.qtpl:92 + StreamHyphaListHTML(qw422016) +//line views/stuff.qtpl:92 qt422016.ReleaseWriter(qw422016) -//line views/stuff.qtpl:91 +//line views/stuff.qtpl:92 } -//line views/stuff.qtpl:91 -func HyphaListHTML(tbody string, pageCount int) string { -//line views/stuff.qtpl:91 +//line views/stuff.qtpl:92 +func HyphaListHTML() string { +//line views/stuff.qtpl:92 qb422016 := qt422016.AcquireByteBuffer() -//line views/stuff.qtpl:91 - WriteHyphaListHTML(qb422016, tbody, pageCount) -//line views/stuff.qtpl:91 +//line views/stuff.qtpl:92 + WriteHyphaListHTML(qb422016) +//line views/stuff.qtpl:92 qs422016 := string(qb422016.B) -//line views/stuff.qtpl:91 +//line views/stuff.qtpl:92 qt422016.ReleaseByteBuffer(qb422016) -//line views/stuff.qtpl:91 +//line views/stuff.qtpl:92 return qs422016 -//line views/stuff.qtpl:91 +//line views/stuff.qtpl:92 } -//line views/stuff.qtpl:93 -func StreamHyphaListRowHTML(qw422016 *qt422016.Writer, hyphaName, binaryMime string, binaryPresent bool) { -//line views/stuff.qtpl:93 - qw422016.N().S(` - - `) -//line views/stuff.qtpl:95 - qw422016.E().S(hyphaName) -//line views/stuff.qtpl:95 - qw422016.N().S(` - `) -//line views/stuff.qtpl:96 - if binaryPresent { -//line views/stuff.qtpl:96 - qw422016.N().S(` - `) -//line views/stuff.qtpl:97 - qw422016.E().S(binaryMime) -//line views/stuff.qtpl:97 - qw422016.N().S(` - `) -//line views/stuff.qtpl:98 - } else { -//line views/stuff.qtpl:98 - qw422016.N().S(` - - `) -//line views/stuff.qtpl:100 - } -//line views/stuff.qtpl:100 - qw422016.N().S(` - -`) -//line views/stuff.qtpl:102 -} - -//line views/stuff.qtpl:102 -func WriteHyphaListRowHTML(qq422016 qtio422016.Writer, hyphaName, binaryMime string, binaryPresent bool) { -//line views/stuff.qtpl:102 - qw422016 := qt422016.AcquireWriter(qq422016) -//line views/stuff.qtpl:102 - StreamHyphaListRowHTML(qw422016, hyphaName, binaryMime, binaryPresent) -//line views/stuff.qtpl:102 - qt422016.ReleaseWriter(qw422016) -//line views/stuff.qtpl:102 -} - -//line views/stuff.qtpl:102 -func HyphaListRowHTML(hyphaName, binaryMime string, binaryPresent bool) string { -//line views/stuff.qtpl:102 - qb422016 := qt422016.AcquireByteBuffer() -//line views/stuff.qtpl:102 - WriteHyphaListRowHTML(qb422016, hyphaName, binaryMime, binaryPresent) -//line views/stuff.qtpl:102 - qs422016 := string(qb422016.B) -//line views/stuff.qtpl:102 - qt422016.ReleaseByteBuffer(qb422016) -//line views/stuff.qtpl:102 - return qs422016 -//line views/stuff.qtpl:102 -} - -//line views/stuff.qtpl:104 +//line views/stuff.qtpl:94 func StreamAboutHTML(qw422016 *qt422016.Writer) { -//line views/stuff.qtpl:104 +//line views/stuff.qtpl:94 qw422016.N().S(`

About `) -//line views/stuff.qtpl:108 +//line views/stuff.qtpl:98 qw422016.E().S(util.SiteName) -//line views/stuff.qtpl:108 +//line views/stuff.qtpl:98 qw422016.N().S(`

See /list for information about hyphae on this wiki.

`) -//line views/stuff.qtpl:126 +//line views/stuff.qtpl:116 } -//line views/stuff.qtpl:126 +//line views/stuff.qtpl:116 func WriteAboutHTML(qq422016 qtio422016.Writer) { -//line views/stuff.qtpl:126 +//line views/stuff.qtpl:116 qw422016 := qt422016.AcquireWriter(qq422016) -//line views/stuff.qtpl:126 +//line views/stuff.qtpl:116 StreamAboutHTML(qw422016) -//line views/stuff.qtpl:126 +//line views/stuff.qtpl:116 qt422016.ReleaseWriter(qw422016) -//line views/stuff.qtpl:126 +//line views/stuff.qtpl:116 } -//line views/stuff.qtpl:126 +//line views/stuff.qtpl:116 func AboutHTML() string { -//line views/stuff.qtpl:126 +//line views/stuff.qtpl:116 qb422016 := qt422016.AcquireByteBuffer() -//line views/stuff.qtpl:126 +//line views/stuff.qtpl:116 WriteAboutHTML(qb422016) -//line views/stuff.qtpl:126 +//line views/stuff.qtpl:116 qs422016 := string(qb422016.B) -//line views/stuff.qtpl:126 +//line views/stuff.qtpl:116 qt422016.ReleaseByteBuffer(qb422016) -//line views/stuff.qtpl:126 +//line views/stuff.qtpl:116 return qs422016 -//line views/stuff.qtpl:126 +//line views/stuff.qtpl:116 } -//line views/stuff.qtpl:128 +//line views/stuff.qtpl:118 func StreamAdminPanelHTML(qw422016 *qt422016.Writer) { -//line views/stuff.qtpl:128 +//line views/stuff.qtpl:118 qw422016.N().S(`
@@ -509,31 +472,31 @@ func StreamAdminPanelHTML(qw422016 *qt422016.Writer) {
`) -//line views/stuff.qtpl:157 +//line views/stuff.qtpl:147 } -//line views/stuff.qtpl:157 +//line views/stuff.qtpl:147 func WriteAdminPanelHTML(qq422016 qtio422016.Writer) { -//line views/stuff.qtpl:157 +//line views/stuff.qtpl:147 qw422016 := qt422016.AcquireWriter(qq422016) -//line views/stuff.qtpl:157 +//line views/stuff.qtpl:147 StreamAdminPanelHTML(qw422016) -//line views/stuff.qtpl:157 +//line views/stuff.qtpl:147 qt422016.ReleaseWriter(qw422016) -//line views/stuff.qtpl:157 +//line views/stuff.qtpl:147 } -//line views/stuff.qtpl:157 +//line views/stuff.qtpl:147 func AdminPanelHTML() string { -//line views/stuff.qtpl:157 +//line views/stuff.qtpl:147 qb422016 := qt422016.AcquireByteBuffer() -//line views/stuff.qtpl:157 +//line views/stuff.qtpl:147 WriteAdminPanelHTML(qb422016) -//line views/stuff.qtpl:157 +//line views/stuff.qtpl:147 qs422016 := string(qb422016.B) -//line views/stuff.qtpl:157 +//line views/stuff.qtpl:147 qt422016.ReleaseByteBuffer(qb422016) -//line views/stuff.qtpl:157 +//line views/stuff.qtpl:147 return qs422016 -//line views/stuff.qtpl:157 +//line views/stuff.qtpl:147 }