From b1cdb1e2798cc68b37caf81cf959dc7d4ca471fc Mon Sep 17 00:00:00 2001 From: Timur Ismagilov Date: Sat, 6 Aug 2022 16:35:17 +0500 Subject: [PATCH] Delete package views All the remaining QTPL files were spread across the codebase. The plan is to get rid of them step by step and migrate to the new l10n approach, all based on Go std templates. --- admin/admin.go | 17 +- {views => admin}/admin.qtpl | 0 {views => admin}/admin.qtpl.go | 318 +++++----- {views => auth}/auth.qtpl | 12 +- {views => auth}/auth.qtpl.go | 568 +++++++++--------- auth/get_rid_of_it.go | 22 + web/auth.go => auth/web.go | 27 +- {views => hypview}/mutators.qtpl | 0 {views => hypview}/mutators.qtpl.go | 318 +++++----- {views => hypview}/nav.qtpl | 0 {views => hypview}/nav.qtpl.go | 230 +++---- {views => hypview}/readers.qtpl | 7 +- {views => hypview}/readers.qtpl.go | 491 ++++++++------- views/modal.qtpl => hypview/remove_media.qtpl | 0 .../remove_media.qtpl.go | 74 +-- main.go | 4 +- {views => misc}/about.go | 40 +- misc/handlers.go | 5 +- views/base.go | 9 - web/mutators.go | 13 +- web/readers.go | 23 +- web/web.go | 3 +- 22 files changed, 1094 insertions(+), 1087 deletions(-) rename {views => admin}/admin.qtpl (100%) rename {views => admin}/admin.qtpl.go (61%) rename {views => auth}/auth.qtpl (95%) rename {views => auth}/auth.qtpl.go (61%) create mode 100644 auth/get_rid_of_it.go rename web/auth.go => auth/web.go (90%) rename {views => hypview}/mutators.qtpl (100%) rename {views => hypview}/mutators.qtpl.go (63%) rename {views => hypview}/nav.qtpl (100%) rename {views => hypview}/nav.qtpl.go (59%) rename {views => hypview}/readers.qtpl (96%) rename {views => hypview}/readers.qtpl.go (56%) rename views/modal.qtpl => hypview/remove_media.qtpl (100%) rename views/modal.qtpl.go => hypview/remove_media.qtpl.go (57%) rename {views => misc}/about.go (69%) delete mode 100644 views/base.go diff --git a/admin/admin.go b/admin/admin.go index 14ff6a6..5ee22c5 100644 --- a/admin/admin.go +++ b/admin/admin.go @@ -15,7 +15,6 @@ import ( "github.com/bouncepaw/mycorrhiza/l18n" "github.com/bouncepaw/mycorrhiza/user" "github.com/bouncepaw/mycorrhiza/util" - "github.com/bouncepaw/mycorrhiza/views" ) // handlerAdmin provides the admin panel. @@ -89,8 +88,8 @@ func handlerAdminUserEdit(w http.ResponseWriter, rq *http.Request) { f.Put("group", u.Group) var lc = l18n.FromRequest(rq) - html := views.AdminUserEdit(u, f, lc) - html = views.Base(viewutil.MetaFrom(w, rq), fmt.Sprintf(lc.Get("admin.user_title"), u.Name), html) + html := AdminUserEdit(u, f, lc) + html = viewutil.Base(viewutil.MetaFrom(w, rq), fmt.Sprintf(lc.Get("admin.user_title"), u.Name), html) if f.HasError() { w.WriteHeader(http.StatusBadRequest) @@ -119,8 +118,8 @@ func handlerAdminUserDelete(w http.ResponseWriter, rq *http.Request) { } var lc = l18n.FromRequest(rq) - html := views.AdminUserDelete(u, util.NewFormData(), lc) - html = views.Base(viewutil.MetaFrom(w, rq), fmt.Sprintf(lc.Get("admin.user_title"), u.Name), html) + html := AdminUserDelete(u, util.NewFormData(), lc) + html = viewutil.Base(viewutil.MetaFrom(w, rq), fmt.Sprintf(lc.Get("admin.user_title"), u.Name), html) if f.HasError() { w.WriteHeader(http.StatusBadRequest) @@ -133,8 +132,8 @@ func handlerAdminUserNew(w http.ResponseWriter, rq *http.Request) { var lc = l18n.FromRequest(rq) if rq.Method == http.MethodGet { // New user form - html := views.AdminUserNew(util.NewFormData(), lc) - html = views.Base(viewutil.MetaFrom(w, rq), lc.Get("admin.newuser_title"), html) + html := AdminUserNew(util.NewFormData(), lc) + html = viewutil.Base(viewutil.MetaFrom(w, rq), lc.Get("admin.newuser_title"), html) w.Header().Set("Content-Type", mime.TypeByExtension(".html")) io.WriteString(w, html) @@ -145,8 +144,8 @@ func handlerAdminUserNew(w http.ResponseWriter, rq *http.Request) { err := user.Register(f.Get("name"), f.Get("password"), f.Get("group"), "local", true) if err != nil { - html := views.AdminUserNew(f.WithError(err), lc) - html = views.Base(viewutil.MetaFrom(w, rq), lc.Get("admin.newuser_title"), html) + html := AdminUserNew(f.WithError(err), lc) + html = viewutil.Base(viewutil.MetaFrom(w, rq), lc.Get("admin.newuser_title"), html) w.WriteHeader(http.StatusBadRequest) w.Header().Set("Content-Type", mime.TypeByExtension(".html")) diff --git a/views/admin.qtpl b/admin/admin.qtpl similarity index 100% rename from views/admin.qtpl rename to admin/admin.qtpl diff --git a/views/admin.qtpl.go b/admin/admin.qtpl.go similarity index 61% rename from views/admin.qtpl.go rename to admin/admin.qtpl.go index f674ca7..c7a380e 100644 --- a/views/admin.qtpl.go +++ b/admin/admin.qtpl.go @@ -1,146 +1,146 @@ // Code generated by qtc from "admin.qtpl". DO NOT EDIT. // See https://github.com/valyala/quicktemplate for details. -//line views/admin.qtpl:1 -package views +//line admin/admin.qtpl:1 +package admin -//line views/admin.qtpl:1 +//line admin/admin.qtpl:1 import "fmt" -//line views/admin.qtpl:2 +//line admin/admin.qtpl:2 import "github.com/bouncepaw/mycorrhiza/l18n" -//line views/admin.qtpl:3 +//line admin/admin.qtpl:3 import "github.com/bouncepaw/mycorrhiza/user" -//line views/admin.qtpl:4 +//line admin/admin.qtpl:4 import "github.com/bouncepaw/mycorrhiza/util" -//line views/admin.qtpl:6 +//line admin/admin.qtpl:6 import ( qtio422016 "io" qt422016 "github.com/valyala/quicktemplate" ) -//line views/admin.qtpl:6 +//line admin/admin.qtpl:6 var ( _ = qtio422016.Copy _ = qt422016.AcquireByteBuffer ) -//line views/admin.qtpl:6 +//line admin/admin.qtpl:6 func StreamAdminUserNew(qw422016 *qt422016.Writer, f util.FormData, lc *l18n.Localizer) { -//line views/admin.qtpl:6 +//line admin/admin.qtpl:6 qw422016.N().S(`

`) -//line views/admin.qtpl:8 +//line admin/admin.qtpl:8 qw422016.E().S(lc.Get("admin.newuser_title")) -//line views/admin.qtpl:8 +//line admin/admin.qtpl:8 qw422016.N().S(`

`) -//line views/admin.qtpl:10 +//line admin/admin.qtpl:10 if f.HasError() { -//line views/admin.qtpl:10 +//line admin/admin.qtpl:10 qw422016.N().S(`
`) -//line views/admin.qtpl:12 +//line admin/admin.qtpl:12 qw422016.E().S(lc.Get("ui.error")) -//line views/admin.qtpl:12 +//line admin/admin.qtpl:12 qw422016.N().S(`: `) -//line views/admin.qtpl:13 +//line admin/admin.qtpl:13 qw422016.E().S(f.Error()) -//line views/admin.qtpl:13 +//line admin/admin.qtpl:13 qw422016.N().S(`
`) -//line views/admin.qtpl:15 +//line admin/admin.qtpl:15 } -//line views/admin.qtpl:15 +//line admin/admin.qtpl:15 qw422016.N().S(`
@@ -148,289 +148,289 @@ func StreamAdminUserNew(qw422016 *qt422016.Writer, f util.FormData, lc *l18n.Loc
`) -//line views/admin.qtpl:42 +//line admin/admin.qtpl:42 qw422016.E().S(lc.Get("ui.cancel")) -//line views/admin.qtpl:42 +//line admin/admin.qtpl:42 qw422016.N().S(`
`) -//line views/admin.qtpl:47 +//line admin/admin.qtpl:47 } -//line views/admin.qtpl:47 +//line admin/admin.qtpl:47 func WriteAdminUserNew(qq422016 qtio422016.Writer, f util.FormData, lc *l18n.Localizer) { -//line views/admin.qtpl:47 +//line admin/admin.qtpl:47 qw422016 := qt422016.AcquireWriter(qq422016) -//line views/admin.qtpl:47 +//line admin/admin.qtpl:47 StreamAdminUserNew(qw422016, f, lc) -//line views/admin.qtpl:47 +//line admin/admin.qtpl:47 qt422016.ReleaseWriter(qw422016) -//line views/admin.qtpl:47 +//line admin/admin.qtpl:47 } -//line views/admin.qtpl:47 +//line admin/admin.qtpl:47 func AdminUserNew(f util.FormData, lc *l18n.Localizer) string { -//line views/admin.qtpl:47 +//line admin/admin.qtpl:47 qb422016 := qt422016.AcquireByteBuffer() -//line views/admin.qtpl:47 +//line admin/admin.qtpl:47 WriteAdminUserNew(qb422016, f, lc) -//line views/admin.qtpl:47 +//line admin/admin.qtpl:47 qs422016 := string(qb422016.B) -//line views/admin.qtpl:47 +//line admin/admin.qtpl:47 qt422016.ReleaseByteBuffer(qb422016) -//line views/admin.qtpl:47 +//line admin/admin.qtpl:47 return qs422016 -//line views/admin.qtpl:47 +//line admin/admin.qtpl:47 } -//line views/admin.qtpl:49 +//line admin/admin.qtpl:49 func StreamAdminUserEdit(qw422016 *qt422016.Writer, u *user.User, f util.FormData, lc *l18n.Localizer) { -//line views/admin.qtpl:49 +//line admin/admin.qtpl:49 qw422016.N().S(`

`) -//line views/admin.qtpl:53 +//line admin/admin.qtpl:53 qw422016.E().S(u.Name) -//line views/admin.qtpl:53 +//line admin/admin.qtpl:53 qw422016.N().S(`

`) -//line views/admin.qtpl:56 +//line admin/admin.qtpl:56 qw422016.E().S(lc.Get("admin.user_group_heading")) -//line views/admin.qtpl:56 +//line admin/admin.qtpl:56 qw422016.N().S(`

`) -//line views/admin.qtpl:58 +//line admin/admin.qtpl:58 if f.HasError() { -//line views/admin.qtpl:58 +//line admin/admin.qtpl:58 qw422016.N().S(`
`) -//line views/admin.qtpl:60 +//line admin/admin.qtpl:60 qw422016.E().S(lc.Get("ui.error")) -//line views/admin.qtpl:60 +//line admin/admin.qtpl:60 qw422016.N().S(`: `) -//line views/admin.qtpl:61 +//line admin/admin.qtpl:61 qw422016.E().S(f.Error()) -//line views/admin.qtpl:61 +//line admin/admin.qtpl:61 qw422016.N().S(`
`) -//line views/admin.qtpl:63 +//line admin/admin.qtpl:63 } -//line views/admin.qtpl:63 +//line admin/admin.qtpl:63 qw422016.N().S(`

`) -//line views/admin.qtpl:81 +//line admin/admin.qtpl:81 qw422016.E().S(lc.Get("admin.user_delete_heading")) -//line views/admin.qtpl:81 +//line admin/admin.qtpl:81 qw422016.N().S(`

`) -//line views/admin.qtpl:82 +//line admin/admin.qtpl:82 qw422016.E().S(lc.Get("admin.user_delete_tip")) -//line views/admin.qtpl:82 +//line admin/admin.qtpl:82 qw422016.N().S(`

`) -//line views/admin.qtpl:83 +//line admin/admin.qtpl:83 qw422016.E().S(lc.Get("admin.user_delete")) -//line views/admin.qtpl:83 +//line admin/admin.qtpl:83 qw422016.N().S(`
`) -//line views/admin.qtpl:85 +//line admin/admin.qtpl:85 } -//line views/admin.qtpl:85 +//line admin/admin.qtpl:85 func WriteAdminUserEdit(qq422016 qtio422016.Writer, u *user.User, f util.FormData, lc *l18n.Localizer) { -//line views/admin.qtpl:85 +//line admin/admin.qtpl:85 qw422016 := qt422016.AcquireWriter(qq422016) -//line views/admin.qtpl:85 +//line admin/admin.qtpl:85 StreamAdminUserEdit(qw422016, u, f, lc) -//line views/admin.qtpl:85 +//line admin/admin.qtpl:85 qt422016.ReleaseWriter(qw422016) -//line views/admin.qtpl:85 +//line admin/admin.qtpl:85 } -//line views/admin.qtpl:85 +//line admin/admin.qtpl:85 func AdminUserEdit(u *user.User, f util.FormData, lc *l18n.Localizer) string { -//line views/admin.qtpl:85 +//line admin/admin.qtpl:85 qb422016 := qt422016.AcquireByteBuffer() -//line views/admin.qtpl:85 +//line admin/admin.qtpl:85 WriteAdminUserEdit(qb422016, u, f, lc) -//line views/admin.qtpl:85 +//line admin/admin.qtpl:85 qs422016 := string(qb422016.B) -//line views/admin.qtpl:85 +//line admin/admin.qtpl:85 qt422016.ReleaseByteBuffer(qb422016) -//line views/admin.qtpl:85 +//line admin/admin.qtpl:85 return qs422016 -//line views/admin.qtpl:85 +//line admin/admin.qtpl:85 } -//line views/admin.qtpl:87 +//line admin/admin.qtpl:87 func StreamAdminUserDelete(qw422016 *qt422016.Writer, u *user.User, f util.FormData, lc *l18n.Localizer) { -//line views/admin.qtpl:87 +//line admin/admin.qtpl:87 qw422016.N().S(`

`) -//line views/admin.qtpl:89 +//line admin/admin.qtpl:89 qw422016.E().S(lc.Get("admin.user_delete_heading")) -//line views/admin.qtpl:89 +//line admin/admin.qtpl:89 qw422016.N().S(`

`) -//line views/admin.qtpl:91 +//line admin/admin.qtpl:91 if f.HasError() { -//line views/admin.qtpl:91 +//line admin/admin.qtpl:91 qw422016.N().S(`
`) -//line views/admin.qtpl:93 +//line admin/admin.qtpl:93 qw422016.E().S(lc.Get("ui.error")) -//line views/admin.qtpl:93 +//line admin/admin.qtpl:93 qw422016.N().S(`: `) -//line views/admin.qtpl:94 +//line admin/admin.qtpl:94 qw422016.E().S(f.Error()) -//line views/admin.qtpl:94 +//line admin/admin.qtpl:94 qw422016.N().S(`
`) -//line views/admin.qtpl:96 +//line admin/admin.qtpl:96 } -//line views/admin.qtpl:96 +//line admin/admin.qtpl:96 qw422016.N().S(`

`) -//line views/admin.qtpl:98 +//line admin/admin.qtpl:98 qw422016.N().S(lc.Get("admin.user_delete_warn", &l18n.Replacements{"name": fmt.Sprintf("%s", u.Name)})) -//line views/admin.qtpl:98 +//line admin/admin.qtpl:98 qw422016.N().S(`

`) -//line views/admin.qtpl:102 +//line admin/admin.qtpl:102 qw422016.E().S(lc.Get("ui.cancel")) -//line views/admin.qtpl:102 +//line admin/admin.qtpl:102 qw422016.N().S(`
`) -//line views/admin.qtpl:105 +//line admin/admin.qtpl:105 } -//line views/admin.qtpl:105 +//line admin/admin.qtpl:105 func WriteAdminUserDelete(qq422016 qtio422016.Writer, u *user.User, f util.FormData, lc *l18n.Localizer) { -//line views/admin.qtpl:105 +//line admin/admin.qtpl:105 qw422016 := qt422016.AcquireWriter(qq422016) -//line views/admin.qtpl:105 +//line admin/admin.qtpl:105 StreamAdminUserDelete(qw422016, u, f, lc) -//line views/admin.qtpl:105 +//line admin/admin.qtpl:105 qt422016.ReleaseWriter(qw422016) -//line views/admin.qtpl:105 +//line admin/admin.qtpl:105 } -//line views/admin.qtpl:105 +//line admin/admin.qtpl:105 func AdminUserDelete(u *user.User, f util.FormData, lc *l18n.Localizer) string { -//line views/admin.qtpl:105 +//line admin/admin.qtpl:105 qb422016 := qt422016.AcquireByteBuffer() -//line views/admin.qtpl:105 +//line admin/admin.qtpl:105 WriteAdminUserDelete(qb422016, u, f, lc) -//line views/admin.qtpl:105 +//line admin/admin.qtpl:105 qs422016 := string(qb422016.B) -//line views/admin.qtpl:105 +//line admin/admin.qtpl:105 qt422016.ReleaseByteBuffer(qb422016) -//line views/admin.qtpl:105 +//line admin/admin.qtpl:105 return qs422016 -//line views/admin.qtpl:105 +//line admin/admin.qtpl:105 } diff --git a/views/auth.qtpl b/auth/auth.qtpl similarity index 95% rename from views/auth.qtpl rename to auth/auth.qtpl index c248edd..2544831 100644 --- a/views/auth.qtpl +++ b/auth/auth.qtpl @@ -144,11 +144,11 @@ Telegram auth widget was requested by Yogurt. As you can see, we don't offer use {% endfunc %} {% code -var userListL10n = map[string]l10nEntry{ - "heading": en("List of users").ru("Список пользователей"), - "administrators": en("Administrators").ru("Администраторы"), - "moderators": en("Moderators").ru("Модераторы"), - "editors": en("Editors").ru("Редакторы"), +var userListL10n = map[string]L10nEntry{ + "heading": En("List of users").Ru("Список пользователей"), + "administrators": En("Administrators").Ru("Администраторы"), + "moderators": En("Moderators").Ru("Модераторы"), + "editors": En("Editors").Ru("Редакторы"), } %} @@ -156,7 +156,7 @@ var userListL10n = map[string]l10nEntry{
{% code var get = func(key string) string { - return userListL10n[key].get(lc.Locale) + return userListL10n[key].Get(lc.Locale) } var ( diff --git a/views/auth.qtpl.go b/auth/auth.qtpl.go similarity index 61% rename from views/auth.qtpl.go rename to auth/auth.qtpl.go index 437979b..bfdb205 100644 --- a/views/auth.qtpl.go +++ b/auth/auth.qtpl.go @@ -1,522 +1,522 @@ // Code generated by qtc from "auth.qtpl". DO NOT EDIT. // See https://github.com/valyala/quicktemplate for details. -//line views/auth.qtpl:1 -package views +//line auth/auth.qtpl:1 +package auth -//line views/auth.qtpl:1 +//line auth/auth.qtpl:1 import "net/http" -//line views/auth.qtpl:2 +//line auth/auth.qtpl:2 import "sort" -//line views/auth.qtpl:3 +//line auth/auth.qtpl:3 import "github.com/bouncepaw/mycorrhiza/cfg" -//line views/auth.qtpl:4 +//line auth/auth.qtpl:4 import "github.com/bouncepaw/mycorrhiza/l18n" -//line views/auth.qtpl:5 +//line auth/auth.qtpl:5 import "github.com/bouncepaw/mycorrhiza/user" -//line views/auth.qtpl:7 +//line auth/auth.qtpl:7 import ( qtio422016 "io" qt422016 "github.com/valyala/quicktemplate" ) -//line views/auth.qtpl:7 +//line auth/auth.qtpl:7 var ( _ = qtio422016.Copy _ = qt422016.AcquireByteBuffer ) -//line views/auth.qtpl:7 +//line auth/auth.qtpl:7 func StreamRegister(qw422016 *qt422016.Writer, rq *http.Request) { -//line views/auth.qtpl:7 +//line auth/auth.qtpl:7 qw422016.N().S(` `) -//line views/auth.qtpl:9 +//line auth/auth.qtpl:9 lc := l18n.FromRequest(rq) -//line views/auth.qtpl:10 +//line auth/auth.qtpl:10 qw422016.N().S(`
`) -//line views/auth.qtpl:13 +//line auth/auth.qtpl:13 if cfg.AllowRegistration { -//line views/auth.qtpl:13 +//line auth/auth.qtpl:13 qw422016.N().S(` `) -//line views/auth.qtpl:31 +//line auth/auth.qtpl:31 streamtelegramWidget(qw422016, lc) -//line views/auth.qtpl:31 +//line auth/auth.qtpl:31 qw422016.N().S(` `) -//line views/auth.qtpl:32 +//line auth/auth.qtpl:32 } else if cfg.UseAuth { -//line views/auth.qtpl:32 +//line auth/auth.qtpl:32 qw422016.N().S(`

`) -//line views/auth.qtpl:33 +//line auth/auth.qtpl:33 qw422016.E().S(lc.Get("auth.noregister")) -//line views/auth.qtpl:33 +//line auth/auth.qtpl:33 qw422016.N().S(`

← `) -//line views/auth.qtpl:34 +//line auth/auth.qtpl:34 qw422016.E().S(lc.Get("auth.go_back")) -//line views/auth.qtpl:34 +//line auth/auth.qtpl:34 qw422016.N().S(`

`) -//line views/auth.qtpl:35 +//line auth/auth.qtpl:35 } else { -//line views/auth.qtpl:35 +//line auth/auth.qtpl:35 qw422016.N().S(`

`) -//line views/auth.qtpl:36 +//line auth/auth.qtpl:36 qw422016.E().S(lc.Get("auth.noauth")) -//line views/auth.qtpl:36 +//line auth/auth.qtpl:36 qw422016.N().S(`

← `) -//line views/auth.qtpl:37 +//line auth/auth.qtpl:37 qw422016.E().S(lc.Get("auth.go_back")) -//line views/auth.qtpl:37 +//line auth/auth.qtpl:37 qw422016.N().S(`

`) -//line views/auth.qtpl:38 +//line auth/auth.qtpl:38 } -//line views/auth.qtpl:38 +//line auth/auth.qtpl:38 qw422016.N().S(`
`) -//line views/auth.qtpl:41 +//line auth/auth.qtpl:41 } -//line views/auth.qtpl:41 +//line auth/auth.qtpl:41 func WriteRegister(qq422016 qtio422016.Writer, rq *http.Request) { -//line views/auth.qtpl:41 +//line auth/auth.qtpl:41 qw422016 := qt422016.AcquireWriter(qq422016) -//line views/auth.qtpl:41 +//line auth/auth.qtpl:41 StreamRegister(qw422016, rq) -//line views/auth.qtpl:41 +//line auth/auth.qtpl:41 qt422016.ReleaseWriter(qw422016) -//line views/auth.qtpl:41 +//line auth/auth.qtpl:41 } -//line views/auth.qtpl:41 +//line auth/auth.qtpl:41 func Register(rq *http.Request) string { -//line views/auth.qtpl:41 +//line auth/auth.qtpl:41 qb422016 := qt422016.AcquireByteBuffer() -//line views/auth.qtpl:41 +//line auth/auth.qtpl:41 WriteRegister(qb422016, rq) -//line views/auth.qtpl:41 +//line auth/auth.qtpl:41 qs422016 := string(qb422016.B) -//line views/auth.qtpl:41 +//line auth/auth.qtpl:41 qt422016.ReleaseByteBuffer(qb422016) -//line views/auth.qtpl:41 +//line auth/auth.qtpl:41 return qs422016 -//line views/auth.qtpl:41 +//line auth/auth.qtpl:41 } -//line views/auth.qtpl:43 +//line auth/auth.qtpl:43 func StreamLogin(qw422016 *qt422016.Writer, lc *l18n.Localizer) { -//line views/auth.qtpl:43 +//line auth/auth.qtpl:43 qw422016.N().S(`
`) -//line views/auth.qtpl:46 +//line auth/auth.qtpl:46 if cfg.UseAuth { -//line views/auth.qtpl:46 +//line auth/auth.qtpl:46 qw422016.N().S(` `) -//line views/auth.qtpl:62 +//line auth/auth.qtpl:62 streamtelegramWidget(qw422016, lc) -//line views/auth.qtpl:62 +//line auth/auth.qtpl:62 qw422016.N().S(` `) -//line views/auth.qtpl:63 +//line auth/auth.qtpl:63 } else { -//line views/auth.qtpl:63 +//line auth/auth.qtpl:63 qw422016.N().S(`

`) -//line views/auth.qtpl:64 +//line auth/auth.qtpl:64 qw422016.E().S(lc.Get("auth.noauth")) -//line views/auth.qtpl:64 +//line auth/auth.qtpl:64 qw422016.N().S(`

← `) -//line views/auth.qtpl:65 +//line auth/auth.qtpl:65 qw422016.E().S(lc.Get("auth.go_home")) -//line views/auth.qtpl:65 +//line auth/auth.qtpl:65 qw422016.N().S(`

`) -//line views/auth.qtpl:66 +//line auth/auth.qtpl:66 } -//line views/auth.qtpl:66 +//line auth/auth.qtpl:66 qw422016.N().S(`
`) -//line views/auth.qtpl:69 +//line auth/auth.qtpl:69 } -//line views/auth.qtpl:69 +//line auth/auth.qtpl:69 func WriteLogin(qq422016 qtio422016.Writer, lc *l18n.Localizer) { -//line views/auth.qtpl:69 +//line auth/auth.qtpl:69 qw422016 := qt422016.AcquireWriter(qq422016) -//line views/auth.qtpl:69 +//line auth/auth.qtpl:69 StreamLogin(qw422016, lc) -//line views/auth.qtpl:69 +//line auth/auth.qtpl:69 qt422016.ReleaseWriter(qw422016) -//line views/auth.qtpl:69 +//line auth/auth.qtpl:69 } -//line views/auth.qtpl:69 +//line auth/auth.qtpl:69 func Login(lc *l18n.Localizer) string { -//line views/auth.qtpl:69 +//line auth/auth.qtpl:69 qb422016 := qt422016.AcquireByteBuffer() -//line views/auth.qtpl:69 +//line auth/auth.qtpl:69 WriteLogin(qb422016, lc) -//line views/auth.qtpl:69 +//line auth/auth.qtpl:69 qs422016 := string(qb422016.B) -//line views/auth.qtpl:69 +//line auth/auth.qtpl:69 qt422016.ReleaseByteBuffer(qb422016) -//line views/auth.qtpl:69 +//line auth/auth.qtpl:69 return qs422016 -//line views/auth.qtpl:69 +//line auth/auth.qtpl:69 } // Telegram auth widget was requested by Yogurt. As you can see, we don't offer user administrators control over it. Of course we don't. -//line views/auth.qtpl:72 +//line auth/auth.qtpl:72 func streamtelegramWidget(qw422016 *qt422016.Writer, lc *l18n.Localizer) { -//line views/auth.qtpl:72 +//line auth/auth.qtpl:72 qw422016.N().S(` `) -//line views/auth.qtpl:73 +//line auth/auth.qtpl:73 if cfg.TelegramEnabled { -//line views/auth.qtpl:73 +//line auth/auth.qtpl:73 qw422016.N().S(`

`) -//line views/auth.qtpl:74 +//line auth/auth.qtpl:74 qw422016.E().S(lc.Get("auth.telegram_tip")) -//line views/auth.qtpl:74 +//line auth/auth.qtpl:74 qw422016.N().S(`

`) -//line views/auth.qtpl:76 +//line auth/auth.qtpl:76 } -//line views/auth.qtpl:76 +//line auth/auth.qtpl:76 qw422016.N().S(` `) -//line views/auth.qtpl:77 +//line auth/auth.qtpl:77 } -//line views/auth.qtpl:77 +//line auth/auth.qtpl:77 func writetelegramWidget(qq422016 qtio422016.Writer, lc *l18n.Localizer) { -//line views/auth.qtpl:77 +//line auth/auth.qtpl:77 qw422016 := qt422016.AcquireWriter(qq422016) -//line views/auth.qtpl:77 +//line auth/auth.qtpl:77 streamtelegramWidget(qw422016, lc) -//line views/auth.qtpl:77 +//line auth/auth.qtpl:77 qt422016.ReleaseWriter(qw422016) -//line views/auth.qtpl:77 +//line auth/auth.qtpl:77 } -//line views/auth.qtpl:77 +//line auth/auth.qtpl:77 func telegramWidget(lc *l18n.Localizer) string { -//line views/auth.qtpl:77 +//line auth/auth.qtpl:77 qb422016 := qt422016.AcquireByteBuffer() -//line views/auth.qtpl:77 +//line auth/auth.qtpl:77 writetelegramWidget(qb422016, lc) -//line views/auth.qtpl:77 +//line auth/auth.qtpl:77 qs422016 := string(qb422016.B) -//line views/auth.qtpl:77 +//line auth/auth.qtpl:77 qt422016.ReleaseByteBuffer(qb422016) -//line views/auth.qtpl:77 +//line auth/auth.qtpl:77 return qs422016 -//line views/auth.qtpl:77 +//line auth/auth.qtpl:77 } -//line views/auth.qtpl:79 +//line auth/auth.qtpl:79 func StreamLoginError(qw422016 *qt422016.Writer, err string, lc *l18n.Localizer) { -//line views/auth.qtpl:79 +//line auth/auth.qtpl:79 qw422016.N().S(`
`) -//line views/auth.qtpl:82 +//line auth/auth.qtpl:82 switch err { -//line views/auth.qtpl:83 +//line auth/auth.qtpl:83 case "unknown username": -//line views/auth.qtpl:83 +//line auth/auth.qtpl:83 qw422016.N().S(`

`) -//line views/auth.qtpl:84 +//line auth/auth.qtpl:84 qw422016.E().S(lc.Get("auth.error_username")) -//line views/auth.qtpl:84 +//line auth/auth.qtpl:84 qw422016.N().S(`

`) -//line views/auth.qtpl:85 +//line auth/auth.qtpl:85 case "wrong password": -//line views/auth.qtpl:85 +//line auth/auth.qtpl:85 qw422016.N().S(`

`) -//line views/auth.qtpl:86 +//line auth/auth.qtpl:86 qw422016.E().S(lc.Get("auth.error_password")) -//line views/auth.qtpl:86 +//line auth/auth.qtpl:86 qw422016.N().S(`

`) -//line views/auth.qtpl:87 +//line auth/auth.qtpl:87 default: -//line views/auth.qtpl:87 +//line auth/auth.qtpl:87 qw422016.N().S(`

`) -//line views/auth.qtpl:88 +//line auth/auth.qtpl:88 qw422016.E().S(err) -//line views/auth.qtpl:88 +//line auth/auth.qtpl:88 qw422016.N().S(`

`) -//line views/auth.qtpl:89 +//line auth/auth.qtpl:89 } -//line views/auth.qtpl:89 +//line auth/auth.qtpl:89 qw422016.N().S(`

← `) -//line views/auth.qtpl:90 +//line auth/auth.qtpl:90 qw422016.E().S(lc.Get("auth.try_again")) -//line views/auth.qtpl:90 +//line auth/auth.qtpl:90 qw422016.N().S(`

`) -//line views/auth.qtpl:93 +//line auth/auth.qtpl:93 } -//line views/auth.qtpl:93 +//line auth/auth.qtpl:93 func WriteLoginError(qq422016 qtio422016.Writer, err string, lc *l18n.Localizer) { -//line views/auth.qtpl:93 +//line auth/auth.qtpl:93 qw422016 := qt422016.AcquireWriter(qq422016) -//line views/auth.qtpl:93 +//line auth/auth.qtpl:93 StreamLoginError(qw422016, err, lc) -//line views/auth.qtpl:93 +//line auth/auth.qtpl:93 qt422016.ReleaseWriter(qw422016) -//line views/auth.qtpl:93 +//line auth/auth.qtpl:93 } -//line views/auth.qtpl:93 +//line auth/auth.qtpl:93 func LoginError(err string, lc *l18n.Localizer) string { -//line views/auth.qtpl:93 +//line auth/auth.qtpl:93 qb422016 := qt422016.AcquireByteBuffer() -//line views/auth.qtpl:93 +//line auth/auth.qtpl:93 WriteLoginError(qb422016, err, lc) -//line views/auth.qtpl:93 +//line auth/auth.qtpl:93 qs422016 := string(qb422016.B) -//line views/auth.qtpl:93 +//line auth/auth.qtpl:93 qt422016.ReleaseByteBuffer(qb422016) -//line views/auth.qtpl:93 +//line auth/auth.qtpl:93 return qs422016 -//line views/auth.qtpl:93 +//line auth/auth.qtpl:93 } -//line views/auth.qtpl:95 +//line auth/auth.qtpl:95 func StreamLogout(qw422016 *qt422016.Writer, can bool, lc *l18n.Localizer) { -//line views/auth.qtpl:95 +//line auth/auth.qtpl:95 qw422016.N().S(`
`) -//line views/auth.qtpl:98 +//line auth/auth.qtpl:98 if can { -//line views/auth.qtpl:98 +//line auth/auth.qtpl:98 qw422016.N().S(`

`) -//line views/auth.qtpl:99 +//line auth/auth.qtpl:99 qw422016.E().S(lc.Get("auth.logout_header")) -//line views/auth.qtpl:99 +//line auth/auth.qtpl:99 qw422016.N().S(`

`) -//line views/auth.qtpl:102 +//line auth/auth.qtpl:102 qw422016.E().S(lc.Get("auth.go_home")) -//line views/auth.qtpl:102 +//line auth/auth.qtpl:102 qw422016.N().S(`
`) -//line views/auth.qtpl:104 +//line auth/auth.qtpl:104 } else { -//line views/auth.qtpl:104 +//line auth/auth.qtpl:104 qw422016.N().S(`

`) -//line views/auth.qtpl:105 +//line auth/auth.qtpl:105 qw422016.E().S(lc.Get("auth.logout_anon")) -//line views/auth.qtpl:105 +//line auth/auth.qtpl:105 qw422016.N().S(`

`) -//line views/auth.qtpl:106 +//line auth/auth.qtpl:106 qw422016.E().S(lc.Get("auth.login_title")) -//line views/auth.qtpl:106 +//line auth/auth.qtpl:106 qw422016.N().S(`

← `) -//line views/auth.qtpl:107 +//line auth/auth.qtpl:107 qw422016.E().S(lc.Get("auth.go_home")) -//line views/auth.qtpl:107 +//line auth/auth.qtpl:107 qw422016.N().S(`

`) -//line views/auth.qtpl:108 +//line auth/auth.qtpl:108 } -//line views/auth.qtpl:108 +//line auth/auth.qtpl:108 qw422016.N().S(`
`) -//line views/auth.qtpl:111 +//line auth/auth.qtpl:111 } -//line views/auth.qtpl:111 +//line auth/auth.qtpl:111 func WriteLogout(qq422016 qtio422016.Writer, can bool, lc *l18n.Localizer) { -//line views/auth.qtpl:111 +//line auth/auth.qtpl:111 qw422016 := qt422016.AcquireWriter(qq422016) -//line views/auth.qtpl:111 +//line auth/auth.qtpl:111 StreamLogout(qw422016, can, lc) -//line views/auth.qtpl:111 +//line auth/auth.qtpl:111 qt422016.ReleaseWriter(qw422016) -//line views/auth.qtpl:111 +//line auth/auth.qtpl:111 } -//line views/auth.qtpl:111 +//line auth/auth.qtpl:111 func Logout(can bool, lc *l18n.Localizer) string { -//line views/auth.qtpl:111 +//line auth/auth.qtpl:111 qb422016 := qt422016.AcquireByteBuffer() -//line views/auth.qtpl:111 +//line auth/auth.qtpl:111 WriteLogout(qb422016, can, lc) -//line views/auth.qtpl:111 +//line auth/auth.qtpl:111 qs422016 := string(qb422016.B) -//line views/auth.qtpl:111 +//line auth/auth.qtpl:111 qt422016.ReleaseByteBuffer(qb422016) -//line views/auth.qtpl:111 +//line auth/auth.qtpl:111 return qs422016 -//line views/auth.qtpl:111 +//line auth/auth.qtpl:111 } -//line views/auth.qtpl:113 +//line auth/auth.qtpl:113 func StreamLock(qw422016 *qt422016.Writer, lc *l18n.Localizer) { -//line views/auth.qtpl:113 +//line auth/auth.qtpl:113 qw422016.N().S(` @@ -524,9 +524,9 @@ func StreamLock(qw422016 *qt422016.Writer, lc *l18n.Localizer) { 🔒 `) -//line views/auth.qtpl:119 +//line auth/auth.qtpl:119 qw422016.E().S(lc.Get("auth.lock_title")) -//line views/auth.qtpl:119 +//line auth/auth.qtpl:119 qw422016.N().S(` @@ -536,89 +536,89 @@ func StreamLock(qw422016 *qt422016.Writer, lc *l18n.Localizer) {

🔒

`) -//line views/auth.qtpl:127 +//line auth/auth.qtpl:127 qw422016.E().S(lc.Get("auth.lock_title")) -//line views/auth.qtpl:127 +//line auth/auth.qtpl:127 qw422016.N().S(`

`) -//line views/auth.qtpl:139 +//line auth/auth.qtpl:139 streamtelegramWidget(qw422016, lc) -//line views/auth.qtpl:139 +//line auth/auth.qtpl:139 qw422016.N().S(`
`) -//line views/auth.qtpl:144 +//line auth/auth.qtpl:144 } -//line views/auth.qtpl:144 +//line auth/auth.qtpl:144 func WriteLock(qq422016 qtio422016.Writer, lc *l18n.Localizer) { -//line views/auth.qtpl:144 +//line auth/auth.qtpl:144 qw422016 := qt422016.AcquireWriter(qq422016) -//line views/auth.qtpl:144 +//line auth/auth.qtpl:144 StreamLock(qw422016, lc) -//line views/auth.qtpl:144 +//line auth/auth.qtpl:144 qt422016.ReleaseWriter(qw422016) -//line views/auth.qtpl:144 +//line auth/auth.qtpl:144 } -//line views/auth.qtpl:144 +//line auth/auth.qtpl:144 func Lock(lc *l18n.Localizer) string { -//line views/auth.qtpl:144 +//line auth/auth.qtpl:144 qb422016 := qt422016.AcquireByteBuffer() -//line views/auth.qtpl:144 +//line auth/auth.qtpl:144 WriteLock(qb422016, lc) -//line views/auth.qtpl:144 +//line auth/auth.qtpl:144 qs422016 := string(qb422016.B) -//line views/auth.qtpl:144 +//line auth/auth.qtpl:144 qt422016.ReleaseByteBuffer(qb422016) -//line views/auth.qtpl:144 +//line auth/auth.qtpl:144 return qs422016 -//line views/auth.qtpl:144 +//line auth/auth.qtpl:144 } -//line views/auth.qtpl:147 -var userListL10n = map[string]l10nEntry{ - "heading": en("List of users").ru("Список пользователей"), - "administrators": en("Administrators").ru("Администраторы"), - "moderators": en("Moderators").ru("Модераторы"), - "editors": en("Editors").ru("Редакторы"), +//line auth/auth.qtpl:147 +var userListL10n = map[string]L10nEntry{ + "heading": En("List of users").Ru("Список пользователей"), + "administrators": En("Administrators").Ru("Администраторы"), + "moderators": En("Moderators").Ru("Модераторы"), + "editors": En("Editors").Ru("Редакторы"), } -//line views/auth.qtpl:155 +//line auth/auth.qtpl:155 func StreamUserList(qw422016 *qt422016.Writer, lc *l18n.Localizer) { -//line views/auth.qtpl:155 +//line auth/auth.qtpl:155 qw422016.N().S(`
`) -//line views/auth.qtpl:158 +//line auth/auth.qtpl:158 var get = func(key string) string { - return userListL10n[key].get(lc.Locale) + return userListL10n[key].Get(lc.Locale) } var ( @@ -641,130 +641,130 @@ func StreamUserList(qw422016 *qt422016.Writer, lc *l18n.Localizer) { sort.Strings(moderators) sort.Strings(editors) -//line views/auth.qtpl:181 +//line auth/auth.qtpl:181 qw422016.N().S(`

`) -//line views/auth.qtpl:182 +//line auth/auth.qtpl:182 qw422016.E().S(get("heading")) -//line views/auth.qtpl:182 +//line auth/auth.qtpl:182 qw422016.N().S(`

`) -//line views/auth.qtpl:184 +//line auth/auth.qtpl:184 qw422016.E().S(get("administrators")) -//line views/auth.qtpl:184 +//line auth/auth.qtpl:184 qw422016.N().S(`

    `) -//line views/auth.qtpl:185 +//line auth/auth.qtpl:185 for _, name := range admins { -//line views/auth.qtpl:185 +//line auth/auth.qtpl:185 qw422016.N().S(`
  1. `) -//line views/auth.qtpl:186 +//line auth/auth.qtpl:186 qw422016.E().S(name) -//line views/auth.qtpl:186 +//line auth/auth.qtpl:186 qw422016.N().S(`
  2. `) -//line views/auth.qtpl:187 +//line auth/auth.qtpl:187 } -//line views/auth.qtpl:187 +//line auth/auth.qtpl:187 qw422016.N().S(`

`) -//line views/auth.qtpl:190 +//line auth/auth.qtpl:190 qw422016.E().S(get("moderators")) -//line views/auth.qtpl:190 +//line auth/auth.qtpl:190 qw422016.N().S(`

    `) -//line views/auth.qtpl:191 +//line auth/auth.qtpl:191 for _, name := range moderators { -//line views/auth.qtpl:191 +//line auth/auth.qtpl:191 qw422016.N().S(`
  1. `) -//line views/auth.qtpl:192 +//line auth/auth.qtpl:192 qw422016.E().S(name) -//line views/auth.qtpl:192 +//line auth/auth.qtpl:192 qw422016.N().S(`
  2. `) -//line views/auth.qtpl:193 +//line auth/auth.qtpl:193 } -//line views/auth.qtpl:193 +//line auth/auth.qtpl:193 qw422016.N().S(`

`) -//line views/auth.qtpl:196 +//line auth/auth.qtpl:196 qw422016.E().S(get("editors")) -//line views/auth.qtpl:196 +//line auth/auth.qtpl:196 qw422016.N().S(`

    `) -//line views/auth.qtpl:197 +//line auth/auth.qtpl:197 for _, name := range editors { -//line views/auth.qtpl:197 +//line auth/auth.qtpl:197 qw422016.N().S(`
  1. `) -//line views/auth.qtpl:198 +//line auth/auth.qtpl:198 qw422016.E().S(name) -//line views/auth.qtpl:198 +//line auth/auth.qtpl:198 qw422016.N().S(`
  2. `) -//line views/auth.qtpl:199 +//line auth/auth.qtpl:199 } -//line views/auth.qtpl:199 +//line auth/auth.qtpl:199 qw422016.N().S(`
`) -//line views/auth.qtpl:202 +//line auth/auth.qtpl:202 } -//line views/auth.qtpl:202 +//line auth/auth.qtpl:202 func WriteUserList(qq422016 qtio422016.Writer, lc *l18n.Localizer) { -//line views/auth.qtpl:202 +//line auth/auth.qtpl:202 qw422016 := qt422016.AcquireWriter(qq422016) -//line views/auth.qtpl:202 +//line auth/auth.qtpl:202 StreamUserList(qw422016, lc) -//line views/auth.qtpl:202 +//line auth/auth.qtpl:202 qt422016.ReleaseWriter(qw422016) -//line views/auth.qtpl:202 +//line auth/auth.qtpl:202 } -//line views/auth.qtpl:202 +//line auth/auth.qtpl:202 func UserList(lc *l18n.Localizer) string { -//line views/auth.qtpl:202 +//line auth/auth.qtpl:202 qb422016 := qt422016.AcquireByteBuffer() -//line views/auth.qtpl:202 +//line auth/auth.qtpl:202 WriteUserList(qb422016, lc) -//line views/auth.qtpl:202 +//line auth/auth.qtpl:202 qs422016 := string(qb422016.B) -//line views/auth.qtpl:202 +//line auth/auth.qtpl:202 qt422016.ReleaseByteBuffer(qb422016) -//line views/auth.qtpl:202 +//line auth/auth.qtpl:202 return qs422016 -//line views/auth.qtpl:202 +//line auth/auth.qtpl:202 } diff --git a/auth/get_rid_of_it.go b/auth/get_rid_of_it.go new file mode 100644 index 0000000..a7b0c91 --- /dev/null +++ b/auth/get_rid_of_it.go @@ -0,0 +1,22 @@ +package auth + +type L10nEntry struct { + _en string + _ru string +} + +func En(v string) L10nEntry { + return L10nEntry{_en: v} +} + +func (e L10nEntry) Ru(v string) L10nEntry { + e._ru = v + return e +} + +func (e L10nEntry) Get(lang string) string { + if lang == "ru" && e._ru != "" { + return e._ru + } + return e._en +} diff --git a/web/auth.go b/auth/web.go similarity index 90% rename from web/auth.go rename to auth/web.go index 4fd550b..4237a71 100644 --- a/web/auth.go +++ b/auth/web.go @@ -1,4 +1,4 @@ -package web +package auth import ( "errors" @@ -16,10 +16,9 @@ import ( "github.com/bouncepaw/mycorrhiza/l18n" "github.com/bouncepaw/mycorrhiza/user" "github.com/bouncepaw/mycorrhiza/util" - "github.com/bouncepaw/mycorrhiza/views" ) -func initAuth(r *mux.Router) { +func InitAuth(r *mux.Router) { r.HandleFunc("/user-list", handlerUserList) r.HandleFunc("/lock", handlerLock) // The check below saves a lot of extra checks and lines of codes in other places in this file. @@ -40,11 +39,11 @@ func handlerUserList(w http.ResponseWriter, rq *http.Request) { lc := l18n.FromRequest(rq) w.Header().Set("Content-Type", mime.TypeByExtension(".html")) w.WriteHeader(http.StatusOK) - w.Write([]byte(views.Base(viewutil.MetaFrom(w, rq), lc.Get("ui.users_title"), views.UserList(lc)))) + w.Write([]byte(viewutil.Base(viewutil.MetaFrom(w, rq), lc.Get("ui.users_title"), UserList(lc)))) } func handlerLock(w http.ResponseWriter, rq *http.Request) { - _, _ = io.WriteString(w, views.Lock(l18n.FromRequest(rq))) + _, _ = io.WriteString(w, Lock(l18n.FromRequest(rq))) } // handlerRegister displays the register form (GET) or registers the user (POST). @@ -54,10 +53,10 @@ func handlerRegister(w http.ResponseWriter, rq *http.Request) { if rq.Method == http.MethodGet { _, _ = io.WriteString( w, - views.Base( + viewutil.Base( viewutil.MetaFrom(w, rq), lc.Get("auth.register_title"), - views.Register(rq), + Register(rq), ), ) return @@ -74,7 +73,7 @@ func handlerRegister(w http.ResponseWriter, rq *http.Request) { w.WriteHeader(http.StatusBadRequest) _, _ = io.WriteString( w, - views.Base( + viewutil.Base( viewutil.MetaFrom(w, rq), lc.Get("auth.register_title"), fmt.Sprintf( @@ -112,7 +111,7 @@ func handlerLogout(w http.ResponseWriter, rq *http.Request) { } _, _ = io.WriteString( w, - views.Base(viewutil.MetaFrom(w, rq), lc.Get("auth.logout_title"), views.Logout(can, lc)), + viewutil.Base(viewutil.MetaFrom(w, rq), lc.Get("auth.logout_title"), Logout(can, lc)), ) } else if rq.Method == http.MethodPost { user.LogoutFromRequest(w, rq) @@ -128,10 +127,10 @@ func handlerLogin(w http.ResponseWriter, rq *http.Request) { w.WriteHeader(http.StatusOK) _, _ = io.WriteString( w, - views.Base( + viewutil.Base( viewutil.MetaFrom(w, rq), lc.Get("auth.login_title"), - views.Login(lc), + Login(lc), ), ) } else if rq.Method == http.MethodPost { @@ -143,7 +142,7 @@ func handlerLogin(w http.ResponseWriter, rq *http.Request) { if err != nil { w.Header().Set("Content-Type", "text/html;charset=utf-8") w.WriteHeader(http.StatusInternalServerError) - _, _ = io.WriteString(w, views.Base(viewutil.MetaFrom(w, rq), err.Error(), views.LoginError(err.Error(), lc))) + _, _ = io.WriteString(w, viewutil.Base(viewutil.MetaFrom(w, rq), err.Error(), LoginError(err.Error(), lc))) return } http.Redirect(w, rq, "/", http.StatusSeeOther) @@ -181,7 +180,7 @@ func handlerTelegramLogin(w http.ResponseWriter, rq *http.Request) { w.WriteHeader(http.StatusBadRequest) _, _ = io.WriteString( w, - views.Base( + viewutil.Base( viewutil.MetaFrom(w, rq), lc.Get("ui.error"), fmt.Sprintf( @@ -201,7 +200,7 @@ func handlerTelegramLogin(w http.ResponseWriter, rq *http.Request) { w.WriteHeader(http.StatusBadRequest) _, _ = io.WriteString( w, - views.Base( + viewutil.Base( viewutil.MetaFrom(w, rq), "Error", fmt.Sprintf( diff --git a/views/mutators.qtpl b/hypview/mutators.qtpl similarity index 100% rename from views/mutators.qtpl rename to hypview/mutators.qtpl diff --git a/views/mutators.qtpl.go b/hypview/mutators.qtpl.go similarity index 63% rename from views/mutators.qtpl.go rename to hypview/mutators.qtpl.go index 924b754..1200c9c 100644 --- a/views/mutators.qtpl.go +++ b/hypview/mutators.qtpl.go @@ -1,50 +1,50 @@ // Code generated by qtc from "mutators.qtpl". DO NOT EDIT. // See https://github.com/valyala/quicktemplate for details. -//line views/mutators.qtpl:1 -package views +//line hypview/mutators.qtpl:1 +package hypview -//line views/mutators.qtpl:1 +//line hypview/mutators.qtpl:1 import "fmt" -//line views/mutators.qtpl:2 +//line hypview/mutators.qtpl:2 import "net/http" -//line views/mutators.qtpl:4 +//line hypview/mutators.qtpl:4 import "github.com/bouncepaw/mycorrhiza/cfg" -//line views/mutators.qtpl:5 +//line hypview/mutators.qtpl:5 import "github.com/bouncepaw/mycorrhiza/l18n" -//line views/mutators.qtpl:6 +//line hypview/mutators.qtpl:6 import "github.com/bouncepaw/mycorrhiza/user" -//line views/mutators.qtpl:8 +//line hypview/mutators.qtpl:8 import ( qtio422016 "io" qt422016 "github.com/valyala/quicktemplate" ) -//line views/mutators.qtpl:8 +//line hypview/mutators.qtpl:8 var ( _ = qtio422016.Copy _ = qt422016.AcquireByteBuffer ) -//line views/mutators.qtpl:8 +//line hypview/mutators.qtpl:8 func StreamToolbar(qw422016 *qt422016.Writer, u *user.User, lc *l18n.Localizer) { -//line views/mutators.qtpl:8 +//line hypview/mutators.qtpl:8 qw422016.N().S(` `) -//line views/mutators.qtpl:66 +//line hypview/mutators.qtpl:66 } -//line views/mutators.qtpl:66 +//line hypview/mutators.qtpl:66 func WriteToolbar(qq422016 qtio422016.Writer, u *user.User, lc *l18n.Localizer) { -//line views/mutators.qtpl:66 +//line hypview/mutators.qtpl:66 qw422016 := qt422016.AcquireWriter(qq422016) -//line views/mutators.qtpl:66 +//line hypview/mutators.qtpl:66 StreamToolbar(qw422016, u, lc) -//line views/mutators.qtpl:66 +//line hypview/mutators.qtpl:66 qt422016.ReleaseWriter(qw422016) -//line views/mutators.qtpl:66 +//line hypview/mutators.qtpl:66 } -//line views/mutators.qtpl:66 +//line hypview/mutators.qtpl:66 func Toolbar(u *user.User, lc *l18n.Localizer) string { -//line views/mutators.qtpl:66 +//line hypview/mutators.qtpl:66 qb422016 := qt422016.AcquireByteBuffer() -//line views/mutators.qtpl:66 +//line hypview/mutators.qtpl:66 WriteToolbar(qb422016, u, lc) -//line views/mutators.qtpl:66 +//line hypview/mutators.qtpl:66 qs422016 := string(qb422016.B) -//line views/mutators.qtpl:66 +//line hypview/mutators.qtpl:66 qt422016.ReleaseByteBuffer(qb422016) -//line views/mutators.qtpl:66 +//line hypview/mutators.qtpl:66 return qs422016 -//line views/mutators.qtpl:66 +//line hypview/mutators.qtpl:66 } -//line views/mutators.qtpl:68 +//line hypview/mutators.qtpl:68 func StreamEditor(qw422016 *qt422016.Writer, rq *http.Request, hyphaName, textAreaFill, warning string) { -//line views/mutators.qtpl:68 +//line hypview/mutators.qtpl:68 qw422016.N().S(` `) -//line views/mutators.qtpl:70 +//line hypview/mutators.qtpl:70 lc := l18n.FromRequest(rq) -//line views/mutators.qtpl:71 +//line hypview/mutators.qtpl:71 qw422016.N().S(`

`) -//line views/mutators.qtpl:75 +//line hypview/mutators.qtpl:75 qw422016.N().S(fmt.Sprintf(lc.Get("edit.title"), beautifulLink(hyphaName))) -//line views/mutators.qtpl:75 +//line hypview/mutators.qtpl:75 qw422016.N().S(`

`) -//line views/mutators.qtpl:76 +//line hypview/mutators.qtpl:76 qw422016.N().S(warning) -//line views/mutators.qtpl:76 +//line hypview/mutators.qtpl:76 qw422016.N().S(`

`) -//line views/mutators.qtpl:84 +//line hypview/mutators.qtpl:84 qw422016.E().S(lc.Get("ui.cancel")) -//line views/mutators.qtpl:84 +//line hypview/mutators.qtpl:84 qw422016.N().S(`

`) -//line views/mutators.qtpl:88 +//line hypview/mutators.qtpl:88 qw422016.N().S(Toolbar(user.FromRequest(rq), lc)) -//line views/mutators.qtpl:88 +//line hypview/mutators.qtpl:88 qw422016.N().S(` `) -//line views/mutators.qtpl:89 +//line hypview/mutators.qtpl:89 streameditScripts(qw422016) -//line views/mutators.qtpl:89 +//line hypview/mutators.qtpl:89 qw422016.N().S(` `) -//line views/mutators.qtpl:90 +//line hypview/mutators.qtpl:90 } -//line views/mutators.qtpl:90 +//line hypview/mutators.qtpl:90 func WriteEditor(qq422016 qtio422016.Writer, rq *http.Request, hyphaName, textAreaFill, warning string) { -//line views/mutators.qtpl:90 +//line hypview/mutators.qtpl:90 qw422016 := qt422016.AcquireWriter(qq422016) -//line views/mutators.qtpl:90 +//line hypview/mutators.qtpl:90 StreamEditor(qw422016, rq, hyphaName, textAreaFill, warning) -//line views/mutators.qtpl:90 +//line hypview/mutators.qtpl:90 qt422016.ReleaseWriter(qw422016) -//line views/mutators.qtpl:90 +//line hypview/mutators.qtpl:90 } -//line views/mutators.qtpl:90 +//line hypview/mutators.qtpl:90 func Editor(rq *http.Request, hyphaName, textAreaFill, warning string) string { -//line views/mutators.qtpl:90 +//line hypview/mutators.qtpl:90 qb422016 := qt422016.AcquireByteBuffer() -//line views/mutators.qtpl:90 +//line hypview/mutators.qtpl:90 WriteEditor(qb422016, rq, hyphaName, textAreaFill, warning) -//line views/mutators.qtpl:90 +//line hypview/mutators.qtpl:90 qs422016 := string(qb422016.B) -//line views/mutators.qtpl:90 +//line hypview/mutators.qtpl:90 qt422016.ReleaseByteBuffer(qb422016) -//line views/mutators.qtpl:90 +//line hypview/mutators.qtpl:90 return qs422016 -//line views/mutators.qtpl:90 +//line hypview/mutators.qtpl:90 } -//line views/mutators.qtpl:92 +//line hypview/mutators.qtpl:92 func StreamPreview(qw422016 *qt422016.Writer, rq *http.Request, hyphaName, textAreaFill, message, warning string, renderedPage string) { -//line views/mutators.qtpl:92 +//line hypview/mutators.qtpl:92 qw422016.N().S(` `) -//line views/mutators.qtpl:94 +//line hypview/mutators.qtpl:94 lc := l18n.FromRequest(rq) -//line views/mutators.qtpl:95 +//line hypview/mutators.qtpl:95 qw422016.N().S(`

`) -//line views/mutators.qtpl:99 +//line hypview/mutators.qtpl:99 qw422016.N().S(fmt.Sprintf(lc.Get("edit.title"), beautifulLink(hyphaName))) -//line views/mutators.qtpl:99 +//line hypview/mutators.qtpl:99 qw422016.N().S(`

`) -//line views/mutators.qtpl:100 +//line hypview/mutators.qtpl:100 qw422016.N().S(warning) -//line views/mutators.qtpl:100 +//line hypview/mutators.qtpl:100 qw422016.N().S(`

`) -//line views/mutators.qtpl:108 +//line hypview/mutators.qtpl:108 qw422016.E().S(lc.Get("ui.cancel")) -//line views/mutators.qtpl:108 +//line hypview/mutators.qtpl:108 qw422016.N().S(`

`) -//line views/mutators.qtpl:111 +//line hypview/mutators.qtpl:111 qw422016.E().S(lc.Get("edit.preview_tip")) -//line views/mutators.qtpl:111 +//line hypview/mutators.qtpl:111 qw422016.N().S(`

`) -//line views/mutators.qtpl:112 +//line hypview/mutators.qtpl:112 qw422016.N().S(renderedPage) -//line views/mutators.qtpl:112 +//line hypview/mutators.qtpl:112 qw422016.N().S(`
`) -//line views/mutators.qtpl:114 +//line hypview/mutators.qtpl:114 qw422016.N().S(Toolbar(user.FromRequest(rq), lc)) -//line views/mutators.qtpl:114 +//line hypview/mutators.qtpl:114 qw422016.N().S(` `) -//line views/mutators.qtpl:115 +//line hypview/mutators.qtpl:115 streameditScripts(qw422016) -//line views/mutators.qtpl:115 +//line hypview/mutators.qtpl:115 qw422016.N().S(` `) -//line views/mutators.qtpl:116 +//line hypview/mutators.qtpl:116 } -//line views/mutators.qtpl:116 +//line hypview/mutators.qtpl:116 func WritePreview(qq422016 qtio422016.Writer, rq *http.Request, hyphaName, textAreaFill, message, warning string, renderedPage string) { -//line views/mutators.qtpl:116 +//line hypview/mutators.qtpl:116 qw422016 := qt422016.AcquireWriter(qq422016) -//line views/mutators.qtpl:116 +//line hypview/mutators.qtpl:116 StreamPreview(qw422016, rq, hyphaName, textAreaFill, message, warning, renderedPage) -//line views/mutators.qtpl:116 +//line hypview/mutators.qtpl:116 qt422016.ReleaseWriter(qw422016) -//line views/mutators.qtpl:116 +//line hypview/mutators.qtpl:116 } -//line views/mutators.qtpl:116 +//line hypview/mutators.qtpl:116 func Preview(rq *http.Request, hyphaName, textAreaFill, message, warning string, renderedPage string) string { -//line views/mutators.qtpl:116 +//line hypview/mutators.qtpl:116 qb422016 := qt422016.AcquireByteBuffer() -//line views/mutators.qtpl:116 +//line hypview/mutators.qtpl:116 WritePreview(qb422016, rq, hyphaName, textAreaFill, message, warning, renderedPage) -//line views/mutators.qtpl:116 +//line hypview/mutators.qtpl:116 qs422016 := string(qb422016.B) -//line views/mutators.qtpl:116 +//line hypview/mutators.qtpl:116 qt422016.ReleaseByteBuffer(qb422016) -//line views/mutators.qtpl:116 +//line hypview/mutators.qtpl:116 return qs422016 -//line views/mutators.qtpl:116 +//line hypview/mutators.qtpl:116 } -//line views/mutators.qtpl:118 +//line hypview/mutators.qtpl:118 func streameditScripts(qw422016 *qt422016.Writer) { -//line views/mutators.qtpl:118 +//line hypview/mutators.qtpl:118 qw422016.N().S(` `) -//line views/mutators.qtpl:120 +//line hypview/mutators.qtpl:120 for _, scriptPath := range cfg.EditScripts { -//line views/mutators.qtpl:120 +//line hypview/mutators.qtpl:120 qw422016.N().S(` `) -//line views/mutators.qtpl:122 +//line hypview/mutators.qtpl:122 } -//line views/mutators.qtpl:122 +//line hypview/mutators.qtpl:122 qw422016.N().S(` `) -//line views/mutators.qtpl:123 +//line hypview/mutators.qtpl:123 } -//line views/mutators.qtpl:123 +//line hypview/mutators.qtpl:123 func writeeditScripts(qq422016 qtio422016.Writer) { -//line views/mutators.qtpl:123 +//line hypview/mutators.qtpl:123 qw422016 := qt422016.AcquireWriter(qq422016) -//line views/mutators.qtpl:123 +//line hypview/mutators.qtpl:123 streameditScripts(qw422016) -//line views/mutators.qtpl:123 +//line hypview/mutators.qtpl:123 qt422016.ReleaseWriter(qw422016) -//line views/mutators.qtpl:123 +//line hypview/mutators.qtpl:123 } -//line views/mutators.qtpl:123 +//line hypview/mutators.qtpl:123 func editScripts() string { -//line views/mutators.qtpl:123 +//line hypview/mutators.qtpl:123 qb422016 := qt422016.AcquireByteBuffer() -//line views/mutators.qtpl:123 +//line hypview/mutators.qtpl:123 writeeditScripts(qb422016) -//line views/mutators.qtpl:123 +//line hypview/mutators.qtpl:123 qs422016 := string(qb422016.B) -//line views/mutators.qtpl:123 +//line hypview/mutators.qtpl:123 qt422016.ReleaseByteBuffer(qb422016) -//line views/mutators.qtpl:123 +//line hypview/mutators.qtpl:123 return qs422016 -//line views/mutators.qtpl:123 +//line hypview/mutators.qtpl:123 } diff --git a/views/nav.qtpl b/hypview/nav.qtpl similarity index 100% rename from views/nav.qtpl rename to hypview/nav.qtpl diff --git a/views/nav.qtpl.go b/hypview/nav.qtpl.go similarity index 59% rename from views/nav.qtpl.go rename to hypview/nav.qtpl.go index 04bc609..f81f59d 100644 --- a/views/nav.qtpl.go +++ b/hypview/nav.qtpl.go @@ -1,289 +1,289 @@ // Code generated by qtc from "nav.qtpl". DO NOT EDIT. // See https://github.com/valyala/quicktemplate for details. -//line views/nav.qtpl:1 -package views +//line hypview/nav.qtpl:1 +package hypview -//line views/nav.qtpl:1 +//line hypview/nav.qtpl:1 import "github.com/bouncepaw/mycorrhiza/backlinks" -//line views/nav.qtpl:2 +//line hypview/nav.qtpl:2 import "github.com/bouncepaw/mycorrhiza/cfg" -//line views/nav.qtpl:3 +//line hypview/nav.qtpl:3 import "github.com/bouncepaw/mycorrhiza/hyphae" -//line views/nav.qtpl:4 +//line hypview/nav.qtpl:4 import "github.com/bouncepaw/mycorrhiza/user" -//line views/nav.qtpl:5 +//line hypview/nav.qtpl:5 import "github.com/bouncepaw/mycorrhiza/util" -//line views/nav.qtpl:6 +//line hypview/nav.qtpl:6 import "github.com/bouncepaw/mycorrhiza/viewutil" -//line views/nav.qtpl:8 +//line hypview/nav.qtpl:8 import ( qtio422016 "io" qt422016 "github.com/valyala/quicktemplate" ) -//line views/nav.qtpl:8 +//line hypview/nav.qtpl:8 var ( _ = qtio422016.Copy _ = qt422016.AcquireByteBuffer ) -//line views/nav.qtpl:8 +//line hypview/nav.qtpl:8 func streamhyphaInfoEntry(qw422016 *qt422016.Writer, h hyphae.Hypha, u *user.User, action string, hasToExist bool, displayText string) { -//line views/nav.qtpl:8 +//line hypview/nav.qtpl:8 qw422016.N().S(` `) -//line views/nav.qtpl:9 +//line hypview/nav.qtpl:9 flag := true -//line views/nav.qtpl:9 +//line hypview/nav.qtpl:9 qw422016.N().S(` `) -//line views/nav.qtpl:10 +//line hypview/nav.qtpl:10 switch h.(type) { -//line views/nav.qtpl:11 +//line hypview/nav.qtpl:11 case *hyphae.EmptyHypha: -//line views/nav.qtpl:11 +//line hypview/nav.qtpl:11 qw422016.N().S(` `) -//line views/nav.qtpl:12 +//line hypview/nav.qtpl:12 flag = !hasToExist -//line views/nav.qtpl:12 +//line hypview/nav.qtpl:12 qw422016.N().S(` `) -//line views/nav.qtpl:13 +//line hypview/nav.qtpl:13 } -//line views/nav.qtpl:13 +//line hypview/nav.qtpl:13 qw422016.N().S(` `) -//line views/nav.qtpl:14 +//line hypview/nav.qtpl:14 if u.CanProceed(action) && flag { -//line views/nav.qtpl:14 +//line hypview/nav.qtpl:14 qw422016.N().S(`
  • `) -//line views/nav.qtpl:16 +//line hypview/nav.qtpl:16 qw422016.E().S(displayText) -//line views/nav.qtpl:16 +//line hypview/nav.qtpl:16 qw422016.N().S(`
  • `) -//line views/nav.qtpl:18 +//line hypview/nav.qtpl:18 } -//line views/nav.qtpl:18 +//line hypview/nav.qtpl:18 qw422016.N().S(` `) -//line views/nav.qtpl:19 +//line hypview/nav.qtpl:19 } -//line views/nav.qtpl:19 +//line hypview/nav.qtpl:19 func writehyphaInfoEntry(qq422016 qtio422016.Writer, h hyphae.Hypha, u *user.User, action string, hasToExist bool, displayText string) { -//line views/nav.qtpl:19 +//line hypview/nav.qtpl:19 qw422016 := qt422016.AcquireWriter(qq422016) -//line views/nav.qtpl:19 +//line hypview/nav.qtpl:19 streamhyphaInfoEntry(qw422016, h, u, action, hasToExist, displayText) -//line views/nav.qtpl:19 +//line hypview/nav.qtpl:19 qt422016.ReleaseWriter(qw422016) -//line views/nav.qtpl:19 +//line hypview/nav.qtpl:19 } -//line views/nav.qtpl:19 +//line hypview/nav.qtpl:19 func hyphaInfoEntry(h hyphae.Hypha, u *user.User, action string, hasToExist bool, displayText string) string { -//line views/nav.qtpl:19 +//line hypview/nav.qtpl:19 qb422016 := qt422016.AcquireByteBuffer() -//line views/nav.qtpl:19 +//line hypview/nav.qtpl:19 writehyphaInfoEntry(qb422016, h, u, action, hasToExist, displayText) -//line views/nav.qtpl:19 +//line hypview/nav.qtpl:19 qs422016 := string(qb422016.B) -//line views/nav.qtpl:19 +//line hypview/nav.qtpl:19 qt422016.ReleaseByteBuffer(qb422016) -//line views/nav.qtpl:19 +//line hypview/nav.qtpl:19 return qs422016 -//line views/nav.qtpl:19 +//line hypview/nav.qtpl:19 } -//line views/nav.qtpl:21 +//line hypview/nav.qtpl:21 func streamhyphaInfo(qw422016 *qt422016.Writer, meta viewutil.Meta, h hyphae.Hypha) { -//line views/nav.qtpl:21 +//line hypview/nav.qtpl:21 qw422016.N().S(` `) -//line views/nav.qtpl:23 +//line hypview/nav.qtpl:23 u := meta.U lc := meta.Lc backs := backlinks.BacklinksCount(h) -//line views/nav.qtpl:26 +//line hypview/nav.qtpl:26 qw422016.N().S(` `) -//line views/nav.qtpl:37 +//line hypview/nav.qtpl:37 } -//line views/nav.qtpl:37 +//line hypview/nav.qtpl:37 func writehyphaInfo(qq422016 qtio422016.Writer, meta viewutil.Meta, h hyphae.Hypha) { -//line views/nav.qtpl:37 +//line hypview/nav.qtpl:37 qw422016 := qt422016.AcquireWriter(qq422016) -//line views/nav.qtpl:37 +//line hypview/nav.qtpl:37 streamhyphaInfo(qw422016, meta, h) -//line views/nav.qtpl:37 +//line hypview/nav.qtpl:37 qt422016.ReleaseWriter(qw422016) -//line views/nav.qtpl:37 +//line hypview/nav.qtpl:37 } -//line views/nav.qtpl:37 +//line hypview/nav.qtpl:37 func hyphaInfo(meta viewutil.Meta, h hyphae.Hypha) string { -//line views/nav.qtpl:37 +//line hypview/nav.qtpl:37 qb422016 := qt422016.AcquireByteBuffer() -//line views/nav.qtpl:37 +//line hypview/nav.qtpl:37 writehyphaInfo(qb422016, meta, h) -//line views/nav.qtpl:37 +//line hypview/nav.qtpl:37 qs422016 := string(qb422016.B) -//line views/nav.qtpl:37 +//line hypview/nav.qtpl:37 qt422016.ReleaseByteBuffer(qb422016) -//line views/nav.qtpl:37 +//line hypview/nav.qtpl:37 return qs422016 -//line views/nav.qtpl:37 +//line hypview/nav.qtpl:37 } -//line views/nav.qtpl:39 +//line hypview/nav.qtpl:39 func streamcommonScripts(qw422016 *qt422016.Writer) { -//line views/nav.qtpl:39 +//line hypview/nav.qtpl:39 qw422016.N().S(` `) -//line views/nav.qtpl:40 +//line hypview/nav.qtpl:40 for _, scriptPath := range cfg.CommonScripts { -//line views/nav.qtpl:40 +//line hypview/nav.qtpl:40 qw422016.N().S(` `) -//line views/nav.qtpl:42 +//line hypview/nav.qtpl:42 } -//line views/nav.qtpl:42 +//line hypview/nav.qtpl:42 qw422016.N().S(` `) -//line views/nav.qtpl:43 +//line hypview/nav.qtpl:43 } -//line views/nav.qtpl:43 +//line hypview/nav.qtpl:43 func writecommonScripts(qq422016 qtio422016.Writer) { -//line views/nav.qtpl:43 +//line hypview/nav.qtpl:43 qw422016 := qt422016.AcquireWriter(qq422016) -//line views/nav.qtpl:43 +//line hypview/nav.qtpl:43 streamcommonScripts(qw422016) -//line views/nav.qtpl:43 +//line hypview/nav.qtpl:43 qt422016.ReleaseWriter(qw422016) -//line views/nav.qtpl:43 +//line hypview/nav.qtpl:43 } -//line views/nav.qtpl:43 +//line hypview/nav.qtpl:43 func commonScripts() string { -//line views/nav.qtpl:43 +//line hypview/nav.qtpl:43 qb422016 := qt422016.AcquireByteBuffer() -//line views/nav.qtpl:43 +//line hypview/nav.qtpl:43 writecommonScripts(qb422016) -//line views/nav.qtpl:43 +//line hypview/nav.qtpl:43 qs422016 := string(qb422016.B) -//line views/nav.qtpl:43 +//line hypview/nav.qtpl:43 qt422016.ReleaseByteBuffer(qb422016) -//line views/nav.qtpl:43 +//line hypview/nav.qtpl:43 return qs422016 -//line views/nav.qtpl:43 +//line hypview/nav.qtpl:43 } -//line views/nav.qtpl:45 +//line hypview/nav.qtpl:45 func streambeautifulLink(qw422016 *qt422016.Writer, hyphaName string) { -//line views/nav.qtpl:45 +//line hypview/nav.qtpl:45 qw422016.N().S(``) -//line views/nav.qtpl:45 +//line hypview/nav.qtpl:45 qw422016.E().S(util.BeautifulName(hyphaName)) -//line views/nav.qtpl:45 +//line hypview/nav.qtpl:45 qw422016.N().S(``) -//line views/nav.qtpl:45 +//line hypview/nav.qtpl:45 } -//line views/nav.qtpl:45 +//line hypview/nav.qtpl:45 func writebeautifulLink(qq422016 qtio422016.Writer, hyphaName string) { -//line views/nav.qtpl:45 +//line hypview/nav.qtpl:45 qw422016 := qt422016.AcquireWriter(qq422016) -//line views/nav.qtpl:45 +//line hypview/nav.qtpl:45 streambeautifulLink(qw422016, hyphaName) -//line views/nav.qtpl:45 +//line hypview/nav.qtpl:45 qt422016.ReleaseWriter(qw422016) -//line views/nav.qtpl:45 +//line hypview/nav.qtpl:45 } -//line views/nav.qtpl:45 +//line hypview/nav.qtpl:45 func beautifulLink(hyphaName string) string { -//line views/nav.qtpl:45 +//line hypview/nav.qtpl:45 qb422016 := qt422016.AcquireByteBuffer() -//line views/nav.qtpl:45 +//line hypview/nav.qtpl:45 writebeautifulLink(qb422016, hyphaName) -//line views/nav.qtpl:45 +//line hypview/nav.qtpl:45 qs422016 := string(qb422016.B) -//line views/nav.qtpl:45 +//line hypview/nav.qtpl:45 qt422016.ReleaseByteBuffer(qb422016) -//line views/nav.qtpl:45 +//line hypview/nav.qtpl:45 return qs422016 -//line views/nav.qtpl:45 +//line hypview/nav.qtpl:45 } diff --git a/views/readers.qtpl b/hypview/readers.qtpl similarity index 96% rename from views/readers.qtpl rename to hypview/readers.qtpl index e525f39..7662730 100644 --- a/views/readers.qtpl +++ b/hypview/readers.qtpl @@ -5,7 +5,6 @@ {% import "github.com/bouncepaw/mycorrhiza/cfg" %} {% import "github.com/bouncepaw/mycorrhiza/hyphae" %} -{% import "github.com/bouncepaw/mycorrhiza/hypview" %} {% import "github.com/bouncepaw/mycorrhiza/categories" %} {% import "github.com/bouncepaw/mycorrhiza/l18n" %} {% import "github.com/bouncepaw/mycorrhiza/mimetype" %} @@ -110,10 +109,10 @@ If you rename .prevnext, change the docs too. {% endif %} {% endif %} - {%s= hypview.NaviTitle(meta, h.CanonicalName()) %} + {%s= NaviTitle(meta, h.CanonicalName()) %} {% switch h.(type) %} {% case *hyphae.EmptyHypha %} - {%s= hypview.EmptyHypha(meta, h.CanonicalName()) %} + {%s= EmptyHypha(meta, h.CanonicalName()) %} {% default %} {%s= contents %} {% endswitch %} @@ -148,7 +147,7 @@ If you rename .prevnext, change the docs too.

    {%s meta.Lc.Get("ui.revision_warning") %} {%s meta.Lc.Get("ui.revision_link") %}

    - {%s= hypview.NaviTitle(meta, h.CanonicalName()) %} + {%s= NaviTitle(meta, h.CanonicalName()) %} {%s= contents %}
    diff --git a/views/readers.qtpl.go b/hypview/readers.qtpl.go similarity index 56% rename from views/readers.qtpl.go rename to hypview/readers.qtpl.go index 89cc234..5c12150 100644 --- a/views/readers.qtpl.go +++ b/hypview/readers.qtpl.go @@ -1,654 +1,651 @@ // Code generated by qtc from "readers.qtpl". DO NOT EDIT. // See https://github.com/valyala/quicktemplate for details. -//line views/readers.qtpl:1 -package views +//line hypview/readers.qtpl:1 +package hypview -//line views/readers.qtpl:1 +//line hypview/readers.qtpl:1 import "net/http" -//line views/readers.qtpl:2 +//line hypview/readers.qtpl:2 import "strings" -//line views/readers.qtpl:3 +//line hypview/readers.qtpl:3 import "path" -//line views/readers.qtpl:4 +//line hypview/readers.qtpl:4 import "os" -//line views/readers.qtpl:6 +//line hypview/readers.qtpl:6 import "github.com/bouncepaw/mycorrhiza/cfg" -//line views/readers.qtpl:7 +//line hypview/readers.qtpl:7 import "github.com/bouncepaw/mycorrhiza/hyphae" -//line views/readers.qtpl:8 -import "github.com/bouncepaw/mycorrhiza/hypview" - -//line views/readers.qtpl:9 +//line hypview/readers.qtpl:8 import "github.com/bouncepaw/mycorrhiza/categories" -//line views/readers.qtpl:10 +//line hypview/readers.qtpl:9 import "github.com/bouncepaw/mycorrhiza/l18n" -//line views/readers.qtpl:11 +//line hypview/readers.qtpl:10 import "github.com/bouncepaw/mycorrhiza/mimetype" -//line views/readers.qtpl:12 +//line hypview/readers.qtpl:11 import "github.com/bouncepaw/mycorrhiza/tree" -//line views/readers.qtpl:13 +//line hypview/readers.qtpl:12 import "github.com/bouncepaw/mycorrhiza/user" -//line views/readers.qtpl:14 +//line hypview/readers.qtpl:13 import "github.com/bouncepaw/mycorrhiza/util" -//line views/readers.qtpl:15 +//line hypview/readers.qtpl:14 import "github.com/bouncepaw/mycorrhiza/viewutil" -//line views/readers.qtpl:17 +//line hypview/readers.qtpl:16 import ( qtio422016 "io" qt422016 "github.com/valyala/quicktemplate" ) -//line views/readers.qtpl:17 +//line hypview/readers.qtpl:16 var ( _ = qtio422016.Copy _ = qt422016.AcquireByteBuffer ) -//line views/readers.qtpl:17 +//line hypview/readers.qtpl:16 func StreamMediaMenu(qw422016 *qt422016.Writer, rq *http.Request, h hyphae.Hypha, u *user.User) { -//line views/readers.qtpl:17 +//line hypview/readers.qtpl:16 qw422016.N().S(` `) -//line views/readers.qtpl:19 +//line hypview/readers.qtpl:18 lc := l18n.FromRequest(rq) -//line views/readers.qtpl:20 +//line hypview/readers.qtpl:19 qw422016.N().S(`

    `) -//line views/readers.qtpl:22 +//line hypview/readers.qtpl:21 qw422016.N().S(lc.Get("ui.media_title", &l18n.Replacements{"name": beautifulLink(h.CanonicalName())})) -//line views/readers.qtpl:22 +//line hypview/readers.qtpl:21 qw422016.N().S(`

    `) -//line views/readers.qtpl:23 +//line hypview/readers.qtpl:22 switch h.(type) { -//line views/readers.qtpl:24 +//line hypview/readers.qtpl:23 case *hyphae.MediaHypha: -//line views/readers.qtpl:24 +//line hypview/readers.qtpl:23 qw422016.N().S(`

    `) -//line views/readers.qtpl:25 +//line hypview/readers.qtpl:24 qw422016.E().S(lc.Get("ui.media_tip")) -//line views/readers.qtpl:25 +//line hypview/readers.qtpl:24 qw422016.N().S(` `) -//line views/readers.qtpl:25 +//line hypview/readers.qtpl:24 qw422016.E().S(lc.Get("ui.media_what_is")) -//line views/readers.qtpl:25 +//line hypview/readers.qtpl:24 qw422016.N().S(`

    `) -//line views/readers.qtpl:26 +//line hypview/readers.qtpl:25 default: -//line views/readers.qtpl:26 +//line hypview/readers.qtpl:25 qw422016.N().S(`

    `) -//line views/readers.qtpl:27 +//line hypview/readers.qtpl:26 qw422016.E().S(lc.Get("ui.media_empty")) -//line views/readers.qtpl:27 +//line hypview/readers.qtpl:26 qw422016.N().S(` `) -//line views/readers.qtpl:27 +//line hypview/readers.qtpl:26 qw422016.E().S(lc.Get("ui.media_what_is")) -//line views/readers.qtpl:27 +//line hypview/readers.qtpl:26 qw422016.N().S(`

    `) -//line views/readers.qtpl:28 +//line hypview/readers.qtpl:27 } -//line views/readers.qtpl:28 +//line hypview/readers.qtpl:27 qw422016.N().S(`
    `) -//line views/readers.qtpl:31 +//line hypview/readers.qtpl:30 switch h := h.(type) { -//line views/readers.qtpl:32 +//line hypview/readers.qtpl:31 case *hyphae.MediaHypha: -//line views/readers.qtpl:32 +//line hypview/readers.qtpl:31 qw422016.N().S(` `) -//line views/readers.qtpl:34 +//line hypview/readers.qtpl:33 mime := mimetype.FromExtension(path.Ext(h.MediaFilePath())) fileinfo, err := os.Stat(h.MediaFilePath()) -//line views/readers.qtpl:35 +//line hypview/readers.qtpl:34 qw422016.N().S(` `) -//line views/readers.qtpl:36 +//line hypview/readers.qtpl:35 if err == nil { -//line views/readers.qtpl:36 +//line hypview/readers.qtpl:35 qw422016.N().S(`
    `) -//line views/readers.qtpl:38 +//line hypview/readers.qtpl:37 qw422016.E().S(lc.Get("ui.media_stat")) -//line views/readers.qtpl:38 +//line hypview/readers.qtpl:37 qw422016.N().S(`

    `) -//line views/readers.qtpl:40 +//line hypview/readers.qtpl:39 qw422016.E().S(lc.Get("ui.media_stat_mime")) -//line views/readers.qtpl:40 +//line hypview/readers.qtpl:39 qw422016.N().S(` `) -//line views/readers.qtpl:40 +//line hypview/readers.qtpl:39 qw422016.E().S(mime) -//line views/readers.qtpl:40 +//line hypview/readers.qtpl:39 qw422016.N().S(`

    `) -//line views/readers.qtpl:42 +//line hypview/readers.qtpl:41 } -//line views/readers.qtpl:42 +//line hypview/readers.qtpl:41 qw422016.N().S(` `) -//line views/readers.qtpl:44 +//line hypview/readers.qtpl:43 if strings.HasPrefix(mime, "image/") { -//line views/readers.qtpl:44 +//line hypview/readers.qtpl:43 qw422016.N().S(`
    `) -//line views/readers.qtpl:46 +//line hypview/readers.qtpl:45 qw422016.E().S(lc.Get("ui.media_include")) -//line views/readers.qtpl:46 +//line hypview/readers.qtpl:45 qw422016.N().S(`
    img { `)
    -//line views/readers.qtpl:48
    +//line hypview/readers.qtpl:47
     			qw422016.E().S(h.CanonicalName())
    -//line views/readers.qtpl:48
    +//line hypview/readers.qtpl:47
     			qw422016.N().S(` }
    `) -//line views/readers.qtpl:50 +//line hypview/readers.qtpl:49 } -//line views/readers.qtpl:50 +//line hypview/readers.qtpl:49 qw422016.N().S(` `) -//line views/readers.qtpl:51 +//line hypview/readers.qtpl:50 } -//line views/readers.qtpl:51 +//line hypview/readers.qtpl:50 qw422016.N().S(` `) -//line views/readers.qtpl:53 +//line hypview/readers.qtpl:52 if u.CanProceed("upload-binary") { -//line views/readers.qtpl:53 +//line hypview/readers.qtpl:52 qw422016.N().S(` `) -//line views/readers.qtpl:66 +//line hypview/readers.qtpl:65 } -//line views/readers.qtpl:66 +//line hypview/readers.qtpl:65 qw422016.N().S(` `) -//line views/readers.qtpl:69 +//line hypview/readers.qtpl:68 switch h := h.(type) { -//line views/readers.qtpl:70 +//line hypview/readers.qtpl:69 case *hyphae.MediaHypha: -//line views/readers.qtpl:70 +//line hypview/readers.qtpl:69 qw422016.N().S(` `) -//line views/readers.qtpl:71 +//line hypview/readers.qtpl:70 if u.CanProceed("remove-media") { -//line views/readers.qtpl:71 +//line hypview/readers.qtpl:70 qw422016.N().S(` `) -//line views/readers.qtpl:79 +//line hypview/readers.qtpl:78 } -//line views/readers.qtpl:79 +//line hypview/readers.qtpl:78 qw422016.N().S(` `) -//line views/readers.qtpl:80 +//line hypview/readers.qtpl:79 } -//line views/readers.qtpl:80 +//line hypview/readers.qtpl:79 qw422016.N().S(`
    `) -//line views/readers.qtpl:84 +//line hypview/readers.qtpl:83 } -//line views/readers.qtpl:84 +//line hypview/readers.qtpl:83 func WriteMediaMenu(qq422016 qtio422016.Writer, rq *http.Request, h hyphae.Hypha, u *user.User) { -//line views/readers.qtpl:84 +//line hypview/readers.qtpl:83 qw422016 := qt422016.AcquireWriter(qq422016) -//line views/readers.qtpl:84 +//line hypview/readers.qtpl:83 StreamMediaMenu(qw422016, rq, h, u) -//line views/readers.qtpl:84 +//line hypview/readers.qtpl:83 qt422016.ReleaseWriter(qw422016) -//line views/readers.qtpl:84 +//line hypview/readers.qtpl:83 } -//line views/readers.qtpl:84 +//line hypview/readers.qtpl:83 func MediaMenu(rq *http.Request, h hyphae.Hypha, u *user.User) string { -//line views/readers.qtpl:84 +//line hypview/readers.qtpl:83 qb422016 := qt422016.AcquireByteBuffer() -//line views/readers.qtpl:84 +//line hypview/readers.qtpl:83 WriteMediaMenu(qb422016, rq, h, u) -//line views/readers.qtpl:84 +//line hypview/readers.qtpl:83 qs422016 := string(qb422016.B) -//line views/readers.qtpl:84 +//line hypview/readers.qtpl:83 qt422016.ReleaseByteBuffer(qb422016) -//line views/readers.qtpl:84 +//line hypview/readers.qtpl:83 return qs422016 -//line views/readers.qtpl:84 +//line hypview/readers.qtpl:83 } // If `contents` == "", a helpful message is shown instead. // // If you rename .prevnext, change the docs too. -//line views/readers.qtpl:89 +//line hypview/readers.qtpl:88 func StreamHypha(qw422016 *qt422016.Writer, meta viewutil.Meta, h hyphae.Hypha, contents string) { -//line views/readers.qtpl:89 +//line hypview/readers.qtpl:88 qw422016.N().S(` `) -//line views/readers.qtpl:91 +//line hypview/readers.qtpl:90 subhyphae, prevHyphaName, nextHyphaName := tree.Tree(h.CanonicalName()) lc := meta.Lc -//line views/readers.qtpl:93 +//line hypview/readers.qtpl:92 qw422016.N().S(`
    `) -//line views/readers.qtpl:96 +//line hypview/readers.qtpl:95 if meta.U.CanProceed("edit") { -//line views/readers.qtpl:96 +//line hypview/readers.qtpl:95 qw422016.N().S(` `) -//line views/readers.qtpl:100 +//line hypview/readers.qtpl:99 } -//line views/readers.qtpl:100 +//line hypview/readers.qtpl:99 qw422016.N().S(` `) -//line views/readers.qtpl:102 +//line hypview/readers.qtpl:101 if cfg.UseAuth && util.IsProfileName(h.CanonicalName()) && meta.U.Name == strings.TrimPrefix(h.CanonicalName(), cfg.UserHypha+"/") { -//line views/readers.qtpl:102 +//line hypview/readers.qtpl:101 qw422016.N().S(` `) -//line views/readers.qtpl:106 +//line hypview/readers.qtpl:105 if meta.U.Group == "admin" { -//line views/readers.qtpl:106 +//line hypview/readers.qtpl:105 qw422016.N().S(` `) -//line views/readers.qtpl:110 +//line hypview/readers.qtpl:109 } -//line views/readers.qtpl:110 +//line hypview/readers.qtpl:109 qw422016.N().S(` `) -//line views/readers.qtpl:111 +//line hypview/readers.qtpl:110 } -//line views/readers.qtpl:111 +//line hypview/readers.qtpl:110 qw422016.N().S(` `) -//line views/readers.qtpl:113 - qw422016.N().S(hypview.NaviTitle(meta, h.CanonicalName())) -//line views/readers.qtpl:113 +//line hypview/readers.qtpl:112 + qw422016.N().S(NaviTitle(meta, h.CanonicalName())) +//line hypview/readers.qtpl:112 qw422016.N().S(` `) -//line views/readers.qtpl:114 +//line hypview/readers.qtpl:113 switch h.(type) { -//line views/readers.qtpl:115 +//line hypview/readers.qtpl:114 case *hyphae.EmptyHypha: -//line views/readers.qtpl:115 +//line hypview/readers.qtpl:114 qw422016.N().S(` `) -//line views/readers.qtpl:116 - qw422016.N().S(hypview.EmptyHypha(meta, h.CanonicalName())) -//line views/readers.qtpl:116 +//line hypview/readers.qtpl:115 + qw422016.N().S(EmptyHypha(meta, h.CanonicalName())) +//line hypview/readers.qtpl:115 qw422016.N().S(` `) -//line views/readers.qtpl:117 +//line hypview/readers.qtpl:116 default: -//line views/readers.qtpl:117 +//line hypview/readers.qtpl:116 qw422016.N().S(` `) -//line views/readers.qtpl:118 +//line hypview/readers.qtpl:117 qw422016.N().S(contents) -//line views/readers.qtpl:118 +//line hypview/readers.qtpl:117 qw422016.N().S(` `) -//line views/readers.qtpl:119 +//line hypview/readers.qtpl:118 } -//line views/readers.qtpl:119 +//line hypview/readers.qtpl:118 qw422016.N().S(`
    `) -//line views/readers.qtpl:122 +//line hypview/readers.qtpl:121 if prevHyphaName != "" { -//line views/readers.qtpl:122 +//line hypview/readers.qtpl:121 qw422016.N().S(` `) -//line views/readers.qtpl:124 +//line hypview/readers.qtpl:123 } -//line views/readers.qtpl:124 +//line hypview/readers.qtpl:123 qw422016.N().S(` `) -//line views/readers.qtpl:125 +//line hypview/readers.qtpl:124 if nextHyphaName != "" { -//line views/readers.qtpl:125 +//line hypview/readers.qtpl:124 qw422016.N().S(` `) -//line views/readers.qtpl:127 +//line hypview/readers.qtpl:126 } -//line views/readers.qtpl:127 +//line hypview/readers.qtpl:126 qw422016.N().S(`
    `) -//line views/readers.qtpl:129 +//line hypview/readers.qtpl:128 if strings.TrimSpace(subhyphae) != "" { -//line views/readers.qtpl:129 +//line hypview/readers.qtpl:128 qw422016.N().S(`

    `) -//line views/readers.qtpl:131 +//line hypview/readers.qtpl:130 qw422016.E().S(lc.Get("ui.subhyphae")) -//line views/readers.qtpl:131 +//line hypview/readers.qtpl:130 qw422016.N().S(`

    `) -//line views/readers.qtpl:138 +//line hypview/readers.qtpl:137 } -//line views/readers.qtpl:138 +//line hypview/readers.qtpl:137 qw422016.N().S(`
    `) -//line views/readers.qtpl:140 +//line hypview/readers.qtpl:139 streamhyphaInfo(qw422016, meta, h) -//line views/readers.qtpl:140 +//line hypview/readers.qtpl:139 qw422016.N().S(`
    `) -//line views/readers.qtpl:143 +//line hypview/readers.qtpl:142 qw422016.N().S(categories.CategoryCard(meta, h.CanonicalName())) -//line views/readers.qtpl:143 +//line hypview/readers.qtpl:142 qw422016.N().S(` `) -//line views/readers.qtpl:144 +//line hypview/readers.qtpl:143 streamviewScripts(qw422016) -//line views/readers.qtpl:144 +//line hypview/readers.qtpl:143 qw422016.N().S(` `) -//line views/readers.qtpl:145 +//line hypview/readers.qtpl:144 } -//line views/readers.qtpl:145 +//line hypview/readers.qtpl:144 func WriteHypha(qq422016 qtio422016.Writer, meta viewutil.Meta, h hyphae.Hypha, contents string) { -//line views/readers.qtpl:145 +//line hypview/readers.qtpl:144 qw422016 := qt422016.AcquireWriter(qq422016) -//line views/readers.qtpl:145 +//line hypview/readers.qtpl:144 StreamHypha(qw422016, meta, h, contents) -//line views/readers.qtpl:145 +//line hypview/readers.qtpl:144 qt422016.ReleaseWriter(qw422016) -//line views/readers.qtpl:145 +//line hypview/readers.qtpl:144 } -//line views/readers.qtpl:145 +//line hypview/readers.qtpl:144 func Hypha(meta viewutil.Meta, h hyphae.Hypha, contents string) string { -//line views/readers.qtpl:145 +//line hypview/readers.qtpl:144 qb422016 := qt422016.AcquireByteBuffer() -//line views/readers.qtpl:145 +//line hypview/readers.qtpl:144 WriteHypha(qb422016, meta, h, contents) -//line views/readers.qtpl:145 +//line hypview/readers.qtpl:144 qs422016 := string(qb422016.B) -//line views/readers.qtpl:145 +//line hypview/readers.qtpl:144 qt422016.ReleaseByteBuffer(qb422016) -//line views/readers.qtpl:145 +//line hypview/readers.qtpl:144 return qs422016 -//line views/readers.qtpl:145 +//line hypview/readers.qtpl:144 } -//line views/readers.qtpl:147 +//line hypview/readers.qtpl:146 func StreamRevision(qw422016 *qt422016.Writer, meta viewutil.Meta, h hyphae.Hypha, contents, revHash string) { -//line views/readers.qtpl:147 +//line hypview/readers.qtpl:146 qw422016.N().S(`

    `) -//line views/readers.qtpl:150 +//line hypview/readers.qtpl:149 qw422016.E().S(meta.Lc.Get("ui.revision_warning")) -//line views/readers.qtpl:150 +//line hypview/readers.qtpl:149 qw422016.N().S(` `) -//line views/readers.qtpl:150 +//line hypview/readers.qtpl:149 qw422016.E().S(meta.Lc.Get("ui.revision_link")) -//line views/readers.qtpl:150 +//line hypview/readers.qtpl:149 qw422016.N().S(`

    `) -//line views/readers.qtpl:151 - qw422016.N().S(hypview.NaviTitle(meta, h.CanonicalName())) -//line views/readers.qtpl:151 +//line hypview/readers.qtpl:150 + qw422016.N().S(NaviTitle(meta, h.CanonicalName())) +//line hypview/readers.qtpl:150 qw422016.N().S(` `) -//line views/readers.qtpl:152 +//line hypview/readers.qtpl:151 qw422016.N().S(contents) -//line views/readers.qtpl:152 +//line hypview/readers.qtpl:151 qw422016.N().S(`
    `) -//line views/readers.qtpl:155 +//line hypview/readers.qtpl:154 streamviewScripts(qw422016) -//line views/readers.qtpl:155 +//line hypview/readers.qtpl:154 qw422016.N().S(` `) -//line views/readers.qtpl:156 +//line hypview/readers.qtpl:155 } -//line views/readers.qtpl:156 +//line hypview/readers.qtpl:155 func WriteRevision(qq422016 qtio422016.Writer, meta viewutil.Meta, h hyphae.Hypha, contents, revHash string) { -//line views/readers.qtpl:156 +//line hypview/readers.qtpl:155 qw422016 := qt422016.AcquireWriter(qq422016) -//line views/readers.qtpl:156 +//line hypview/readers.qtpl:155 StreamRevision(qw422016, meta, h, contents, revHash) -//line views/readers.qtpl:156 +//line hypview/readers.qtpl:155 qt422016.ReleaseWriter(qw422016) -//line views/readers.qtpl:156 +//line hypview/readers.qtpl:155 } -//line views/readers.qtpl:156 +//line hypview/readers.qtpl:155 func Revision(meta viewutil.Meta, h hyphae.Hypha, contents, revHash string) string { -//line views/readers.qtpl:156 +//line hypview/readers.qtpl:155 qb422016 := qt422016.AcquireByteBuffer() -//line views/readers.qtpl:156 +//line hypview/readers.qtpl:155 WriteRevision(qb422016, meta, h, contents, revHash) -//line views/readers.qtpl:156 +//line hypview/readers.qtpl:155 qs422016 := string(qb422016.B) -//line views/readers.qtpl:156 +//line hypview/readers.qtpl:155 qt422016.ReleaseByteBuffer(qb422016) -//line views/readers.qtpl:156 +//line hypview/readers.qtpl:155 return qs422016 -//line views/readers.qtpl:156 +//line hypview/readers.qtpl:155 } -//line views/readers.qtpl:158 +//line hypview/readers.qtpl:157 func streamviewScripts(qw422016 *qt422016.Writer) { -//line views/readers.qtpl:158 +//line hypview/readers.qtpl:157 qw422016.N().S(` `) -//line views/readers.qtpl:159 +//line hypview/readers.qtpl:158 for _, scriptPath := range cfg.ViewScripts { -//line views/readers.qtpl:159 +//line hypview/readers.qtpl:158 qw422016.N().S(` `) -//line views/readers.qtpl:161 +//line hypview/readers.qtpl:160 } -//line views/readers.qtpl:161 +//line hypview/readers.qtpl:160 qw422016.N().S(` `) -//line views/readers.qtpl:162 +//line hypview/readers.qtpl:161 } -//line views/readers.qtpl:162 +//line hypview/readers.qtpl:161 func writeviewScripts(qq422016 qtio422016.Writer) { -//line views/readers.qtpl:162 +//line hypview/readers.qtpl:161 qw422016 := qt422016.AcquireWriter(qq422016) -//line views/readers.qtpl:162 +//line hypview/readers.qtpl:161 streamviewScripts(qw422016) -//line views/readers.qtpl:162 +//line hypview/readers.qtpl:161 qt422016.ReleaseWriter(qw422016) -//line views/readers.qtpl:162 +//line hypview/readers.qtpl:161 } -//line views/readers.qtpl:162 +//line hypview/readers.qtpl:161 func viewScripts() string { -//line views/readers.qtpl:162 +//line hypview/readers.qtpl:161 qb422016 := qt422016.AcquireByteBuffer() -//line views/readers.qtpl:162 +//line hypview/readers.qtpl:161 writeviewScripts(qb422016) -//line views/readers.qtpl:162 +//line hypview/readers.qtpl:161 qs422016 := string(qb422016.B) -//line views/readers.qtpl:162 +//line hypview/readers.qtpl:161 qt422016.ReleaseByteBuffer(qb422016) -//line views/readers.qtpl:162 +//line hypview/readers.qtpl:161 return qs422016 -//line views/readers.qtpl:162 +//line hypview/readers.qtpl:161 } diff --git a/views/modal.qtpl b/hypview/remove_media.qtpl similarity index 100% rename from views/modal.qtpl rename to hypview/remove_media.qtpl diff --git a/views/modal.qtpl.go b/hypview/remove_media.qtpl.go similarity index 57% rename from views/modal.qtpl.go rename to hypview/remove_media.qtpl.go index cfabcee..2ce45fb 100644 --- a/views/modal.qtpl.go +++ b/hypview/remove_media.qtpl.go @@ -1,109 +1,109 @@ -// Code generated by qtc from "modal.qtpl". DO NOT EDIT. +// Code generated by qtc from "remove_media.qtpl". DO NOT EDIT. // See https://github.com/valyala/quicktemplate for details. -//line views/modal.qtpl:1 -package views +//line hypview/remove_media.qtpl:1 +package hypview -//line views/modal.qtpl:1 +//line hypview/remove_media.qtpl:1 import "fmt" -//line views/modal.qtpl:2 +//line hypview/remove_media.qtpl:2 import "net/http" -//line views/modal.qtpl:3 +//line hypview/remove_media.qtpl:3 import "github.com/bouncepaw/mycorrhiza/l18n" -//line views/modal.qtpl:5 +//line hypview/remove_media.qtpl:5 import ( qtio422016 "io" qt422016 "github.com/valyala/quicktemplate" ) -//line views/modal.qtpl:5 +//line hypview/remove_media.qtpl:5 var ( _ = qtio422016.Copy _ = qt422016.AcquireByteBuffer ) -//line views/modal.qtpl:5 +//line hypview/remove_media.qtpl:5 func StreamRemoveMediaAsk(qw422016 *qt422016.Writer, rq *http.Request, hyphaName string) { -//line views/modal.qtpl:5 +//line hypview/remove_media.qtpl:5 qw422016.N().S(` `) -//line views/modal.qtpl:7 +//line hypview/remove_media.qtpl:7 lc := l18n.FromRequest(rq) -//line views/modal.qtpl:8 +//line hypview/remove_media.qtpl:8 qw422016.N().S(`
    `) -//line views/modal.qtpl:27 +//line hypview/remove_media.qtpl:27 } -//line views/modal.qtpl:27 +//line hypview/remove_media.qtpl:27 func WriteRemoveMediaAsk(qq422016 qtio422016.Writer, rq *http.Request, hyphaName string) { -//line views/modal.qtpl:27 +//line hypview/remove_media.qtpl:27 qw422016 := qt422016.AcquireWriter(qq422016) -//line views/modal.qtpl:27 +//line hypview/remove_media.qtpl:27 StreamRemoveMediaAsk(qw422016, rq, hyphaName) -//line views/modal.qtpl:27 +//line hypview/remove_media.qtpl:27 qt422016.ReleaseWriter(qw422016) -//line views/modal.qtpl:27 +//line hypview/remove_media.qtpl:27 } -//line views/modal.qtpl:27 +//line hypview/remove_media.qtpl:27 func RemoveMediaAsk(rq *http.Request, hyphaName string) string { -//line views/modal.qtpl:27 +//line hypview/remove_media.qtpl:27 qb422016 := qt422016.AcquireByteBuffer() -//line views/modal.qtpl:27 +//line hypview/remove_media.qtpl:27 WriteRemoveMediaAsk(qb422016, rq, hyphaName) -//line views/modal.qtpl:27 +//line hypview/remove_media.qtpl:27 qs422016 := string(qb422016.B) -//line views/modal.qtpl:27 +//line hypview/remove_media.qtpl:27 qt422016.ReleaseByteBuffer(qb422016) -//line views/modal.qtpl:27 +//line hypview/remove_media.qtpl:27 return qs422016 -//line views/modal.qtpl:27 +//line hypview/remove_media.qtpl:27 } diff --git a/main.go b/main.go index b7dc89e..34b1652 100644 --- a/main.go +++ b/main.go @@ -1,7 +1,9 @@ -//go:generate go run github.com/valyala/quicktemplate/qtc -dir=views //go:generate go run github.com/valyala/quicktemplate/qtc -dir=tree //go:generate go run github.com/valyala/quicktemplate/qtc -dir=history //go:generate go run github.com/valyala/quicktemplate/qtc -dir=mycoopts +//go:generate go run github.com/valyala/quicktemplate/qtc -dir=auth +//go:generate go run github.com/valyala/quicktemplate/qtc -dir=hypview +//go:generate go run github.com/valyala/quicktemplate/qtc -dir=admin // Command mycorrhiza is a program that runs a mycorrhiza wiki. package main diff --git a/views/about.go b/misc/about.go similarity index 69% rename from views/about.go rename to misc/about.go index ffa5441..bdda784 100644 --- a/views/about.go +++ b/misc/about.go @@ -1,4 +1,4 @@ -package views +package misc import ( "github.com/bouncepaw/mycorrhiza/cfg" @@ -9,21 +9,21 @@ import ( "text/template" // sic! ) -type l10nEntry struct { +type L10nEntry struct { _en string _ru string } -func en(v string) l10nEntry { - return l10nEntry{_en: v} +func En(v string) L10nEntry { + return L10nEntry{_en: v} } -func (e l10nEntry) ru(v string) l10nEntry { +func (e L10nEntry) Ru(v string) L10nEntry { e._ru = v return e } -func (e l10nEntry) get(lang string) string { +func (e L10nEntry) Get(lang string) string { if lang == "ru" && e._ru != "" { return e._ru } @@ -66,30 +66,30 @@ const aboutTemplateString = ` ` var aboutData = struct { - L map[string]l10nEntry + L map[string]L10nEntry Cfg map[string]interface{} Admins []string UserCount uint64 RegistrationLimit uint64 }{ - L: map[string]l10nEntry{ - "Title": en("About %s").ru("О %s"), - "Version": en("Mycorrhiza Wiki version").ru("Версия Микоризы"), - "UserCount": en("User count").ru("Число пользователей"), - "HomeHypha": en("Home hypha").ru("Домашняя гифа"), - "RegistrationLimit": en("RegistrationLimit").ru("Максимум пользователей"), - "Admins": en("Administrators").ru("Администраторы"), + L: map[string]L10nEntry{ + "Title": En("About %s").Ru("О %s"), + "Version": En("Mycorrhiza Wiki version").Ru("Версия Микоризы"), + "UserCount": En("User count").Ru("Число пользователей"), + "HomeHypha": En("Home hypha").Ru("Домашняя гифа"), + "RegistrationLimit": En("RegistrationLimit").Ru("Максимум пользователей"), + "Admins": En("Administrators").Ru("Администраторы"), - "Auth": en("Authentication").ru("Аутентификация"), - "AuthOn": en("Authentication is on").ru("Аутентификация включена"), - "AuthOff": en("Authentication is off").ru("Аутентификация не включена"), - "TelegramOn": en("Telegram authentication is on").ru("Вход через Телеграм включён"), + "Auth": En("Authentication").Ru("Аутентификация"), + "AuthOn": En("Authentication is on").Ru("Аутентификация включена"), + "AuthOff": En("Authentication is off").Ru("Аутентификация не включена"), + "TelegramOn": En("Telegram authentication is on").Ru("Вход через Телеграм включён"), }, } func AboutHTML(lc *l18n.Localizer) string { - get := func(e l10nEntry) string { - return e.get(lc.Locale) + get := func(e L10nEntry) string { + return e.Get(lc.Locale) } temp, err := template.New("about wiki").Funcs(template.FuncMap{"get": get}).Parse(aboutTemplateString) if err != nil { diff --git a/misc/handlers.go b/misc/handlers.go index 045770d..951bd13 100644 --- a/misc/handlers.go +++ b/misc/handlers.go @@ -11,7 +11,6 @@ import ( "github.com/bouncepaw/mycorrhiza/static" "github.com/bouncepaw/mycorrhiza/user" "github.com/bouncepaw/mycorrhiza/util" - "github.com/bouncepaw/mycorrhiza/views" "github.com/bouncepaw/mycorrhiza/viewutil" "github.com/gorilla/mux" "io" @@ -122,10 +121,10 @@ func handlerAbout(w http.ResponseWriter, rq *http.Request) { lc = l18n.FromRequest(rq) title = lc.Get("ui.about_title", &l18n.Replacements{"name": cfg.WikiName}) ) - _, err := io.WriteString(w, views.Base( + _, err := io.WriteString(w, viewutil.Base( viewutil.MetaFrom(w, rq), title, - views.AboutHTML(lc), + AboutHTML(lc), )) if err != nil { log.Println(err) diff --git a/views/base.go b/views/base.go deleted file mode 100644 index 90a5465..0000000 --- a/views/base.go +++ /dev/null @@ -1,9 +0,0 @@ -package views - -import ( - "github.com/bouncepaw/mycorrhiza/viewutil" -) - -var ( - Base = viewutil.Base -) diff --git a/web/mutators.go b/web/mutators.go index d1632b7..319451f 100644 --- a/web/mutators.go +++ b/web/mutators.go @@ -18,7 +18,6 @@ import ( "github.com/bouncepaw/mycorrhiza/shroom" "github.com/bouncepaw/mycorrhiza/user" "github.com/bouncepaw/mycorrhiza/util" - "github.com/bouncepaw/mycorrhiza/views" ) func initMutators(r *mux.Router) { @@ -47,10 +46,10 @@ func handlerRemoveMedia(w http.ResponseWriter, rq *http.Request) { if rq.Method == "GET" { util.HTTP200Page( w, - views.Base( + viewutil.Base( meta, fmt.Sprintf(lc.Get("ui.ask_remove_media"), util.BeautifulName(h.CanonicalName())), - views.RemoveMediaAsk(rq, h.CanonicalName()))) + hypview.RemoveMediaAsk(rq, h.CanonicalName()))) return } switch h := h.(type) { @@ -173,10 +172,10 @@ func handlerEdit(w http.ResponseWriter, rq *http.Request) { } util.HTTP200Page( w, - views.Base( + viewutil.Base( meta, fmt.Sprintf(lc.Get("edit.title"), util.BeautifulName(hyphaName)), - views.Editor(rq, hyphaName, textAreaFill, warning))) + hypview.Editor(rq, hyphaName, textAreaFill, warning))) } // handlerUploadText uploads a new text part for the hypha. @@ -205,10 +204,10 @@ func handlerUploadText(w http.ResponseWriter, rq *http.Request) { util.HTTP200Page( w, - views.Base( + viewutil.Base( meta, fmt.Sprintf(lc.Get("edit.preview_title"), util.BeautifulName(hyphaName)), - views.Preview( + hypview.Preview( rq, hyphaName, textData, diff --git a/web/readers.go b/web/readers.go index e059b56..b5dfa2d 100644 --- a/web/readers.go +++ b/web/readers.go @@ -4,6 +4,7 @@ import ( "fmt" "github.com/bouncepaw/mycomarkup/v5" "github.com/bouncepaw/mycorrhiza/files" + views2 "github.com/bouncepaw/mycorrhiza/hypview" "github.com/bouncepaw/mycorrhiza/mycoopts" "github.com/bouncepaw/mycorrhiza/viewutil" "io" @@ -15,16 +16,14 @@ import ( "github.com/gorilla/mux" + "github.com/bouncepaw/mycomarkup/v5/mycocontext" + "github.com/bouncepaw/mycomarkup/v5/tools" "github.com/bouncepaw/mycorrhiza/history" "github.com/bouncepaw/mycorrhiza/hyphae" "github.com/bouncepaw/mycorrhiza/l18n" "github.com/bouncepaw/mycorrhiza/mimetype" "github.com/bouncepaw/mycorrhiza/user" "github.com/bouncepaw/mycorrhiza/util" - "github.com/bouncepaw/mycorrhiza/views" - - "github.com/bouncepaw/mycomarkup/v5/mycocontext" - "github.com/bouncepaw/mycomarkup/v5/tools" ) func initReaders(r *mux.Router) { @@ -46,10 +45,10 @@ func handlerMedia(w http.ResponseWriter, rq *http.Request) { lc = l18n.FromRequest(rq) ) util.HTTP200Page(w, - views.Base( + viewutil.Base( viewutil.MetaFrom(w, rq), lc.Get("ui.media_title", &l18n.Replacements{"name": util.BeautifulName(hyphaName)}), - views.MediaMenu(rq, h, u))) + views2.MediaMenu(rq, h, u))) } // handlerRevisionText sends Mycomarkup text of the hypha at the given revision. See also: handlerRevision, handlerText. @@ -128,7 +127,7 @@ func handlerRevision(w http.ResponseWriter, rq *http.Request) { contents = mycomarkup.BlocksToHTML(ctx, mycomarkup.BlockTree(ctx)) } - page := views.Revision( + page := views2.Revision( viewutil.MetaFrom(w, rq), h, contents, @@ -138,7 +137,7 @@ func handlerRevision(w http.ResponseWriter, rq *http.Request) { w.WriteHeader(http.StatusOK) _, _ = fmt.Fprint( w, - views.Base( + viewutil.Base( viewutil.MetaFrom(w, rq), lc.Get("ui.revision_title", &l18n.Replacements{"name": util.BeautifulName(hyphaName), "rev": revHash}), page, @@ -188,10 +187,10 @@ func handlerHypha(w http.ResponseWriter, rq *http.Request) { switch h := h.(type) { case *hyphae.EmptyHypha: util.HTTP404Page(w, - views.Base( + viewutil.Base( viewutil.MetaFrom(w, rq), util.BeautifulName(hyphaName), - views.Hypha(viewutil.MetaFrom(w, rq), h, contents), + views2.Hypha(viewutil.MetaFrom(w, rq), h, contents), openGraph)) case hyphae.ExistingHypha: fileContentsT, errT := os.ReadFile(h.TextFilePath()) @@ -208,10 +207,10 @@ func handlerHypha(w http.ResponseWriter, rq *http.Request) { } util.HTTP200Page(w, - views.Base( + viewutil.Base( viewutil.MetaFrom(w, rq), util.BeautifulName(hyphaName), - views.Hypha(viewutil.MetaFrom(w, rq), h, contents), + views2.Hypha(viewutil.MetaFrom(w, rq), h, contents), openGraph)) } } diff --git a/web/web.go b/web/web.go index ba57aa8..60e0cc1 100644 --- a/web/web.go +++ b/web/web.go @@ -3,6 +3,7 @@ package web import ( "github.com/bouncepaw/mycorrhiza/admin" + "github.com/bouncepaw/mycorrhiza/auth" "github.com/bouncepaw/mycorrhiza/backlinks" "github.com/bouncepaw/mycorrhiza/categories" "github.com/bouncepaw/mycorrhiza/help" @@ -36,7 +37,7 @@ func Handler() http.Handler { router.StrictSlash(true) // Public routes. They're always accessible regardless of the user status. - initAuth(router) + auth.InitAuth(router) // Wiki routes. They may be locked or restricted. wikiRouter := router.PathPrefix("").Subrouter()