From cc01a3551d724bd826007b6440854c938526d4b7 Mon Sep 17 00:00:00 2001 From: Timur Ismagilov Date: Sat, 2 Apr 2022 11:00:10 +0300 Subject: [PATCH] Misc: Move more stuff here, including title search --- misc/handlers.go | 15 + misc/view_title_search.html | 16 + misc/views.go | 32 +- shroom/search.go | 2 +- views/auth.qtpl | 62 ++++ views/auth.qtpl.go | 605 +++++++++++++++++++++++------------- views/stuff.qtpl | 15 - views/stuff.qtpl.go | 252 ++++++--------- views/user_list.qtpl | 64 ---- views/user_list.qtpl.go | 199 ------------ web/search.go | 36 --- web/web.go | 1 - 12 files changed, 604 insertions(+), 695 deletions(-) create mode 100644 misc/view_title_search.html delete mode 100644 views/user_list.qtpl delete mode 100644 views/user_list.qtpl.go delete mode 100644 web/search.go diff --git a/misc/handlers.go b/misc/handlers.go index 629ce07..cdf81c1 100644 --- a/misc/handlers.go +++ b/misc/handlers.go @@ -34,6 +34,7 @@ func InitHandlers(rtr *mux.Router) { rtr.HandleFunc("/favicon.ico", func(w http.ResponseWriter, rq *http.Request) { http.Redirect(w, rq, "/static/favicon.ico", http.StatusSeeOther) }) + rtr.HandleFunc("/title-search/", handlerTitleSearch) initViews() } @@ -142,3 +143,17 @@ func handlerRobotsTxt(w http.ResponseWriter, rq *http.Request) { } _ = file.Close() } + +func handlerTitleSearch(w http.ResponseWriter, rq *http.Request) { + util.PrepareRq(rq) + _ = rq.ParseForm() + var ( + query = rq.FormValue("q") + results []string + ) + for hyphaName := range shroom.YieldHyphaNamesContainingString(query) { + results = append(results, hyphaName) + } + w.WriteHeader(http.StatusOK) + viewTitleSearch(viewutil.MetaFrom(w, rq), query, results) +} diff --git a/misc/view_title_search.html b/misc/view_title_search.html new file mode 100644 index 0000000..0ce4872 --- /dev/null +++ b/misc/view_title_search.html @@ -0,0 +1,16 @@ +{{define "search:"}}Search: {{.}}{{end}} +{{define "title"}}{{template "search:" .Query}}{{end}} +{{define "body"}} +
+

{{block "search results for" .Query}}Search results for ‘{{.}}’{{end}}

+

{{block "search desc" .}}Every hypha name has been compared with the query. Hyphae that have matched the query are listed below.{{end}}

+ +
+
+{{end}} \ No newline at end of file diff --git a/misc/views.go b/misc/views.go index 870d8e3..e288067 100644 --- a/misc/views.go +++ b/misc/views.go @@ -12,10 +12,13 @@ import ( var ( //go:embed *html - fs embed.FS - chainList viewutil.Chain - ruTranslation = ` + fs embed.FS + chainList, chainTitleSearch viewutil.Chain + ruTranslation = ` {{define "list of hyphae"}}Список гиф{{end}} +{{define "search:"}}Поиск:{{end}} +{{define "search results for"}}Результаты поиска для «{{.}}»{{end}} +{{define "search desc"}}Название каждой из существующих гиф сопоставлено с запросом. Подходящие гифы приведены ниже.{{end}} ` ) @@ -24,6 +27,9 @@ func initViews() { chainList = viewutil. En(viewutil.CopyEnWith(fs, "view_list.html")). Ru(m(viewutil.CopyRuWith(fs, "view_list.html").Parse(ruTranslation))) + chainTitleSearch = viewutil. + En(viewutil.CopyEnWith(fs, "view_title_search.html")). + Ru(m(viewutil.CopyRuWith(fs, "view_title_search.html").Parse(ruTranslation))) } type listDatum struct { @@ -67,3 +73,23 @@ func viewList(meta viewutil.Meta) { log.Println(err) } } + +type titleSearchData struct { + viewutil.BaseData + Query string + Results []string +} + +func viewTitleSearch(meta viewutil.Meta, query string, results []string) { + if err := chainTitleSearch.Get(meta).ExecuteTemplate(meta.W, "page", titleSearchData{ + BaseData: viewutil.BaseData{ + Meta: meta, + HeaderLinks: cfg.HeaderLinks, + CommonScripts: cfg.CommonScripts, + }, + Query: query, + Results: results, + }); err != nil { + log.Println(err) + } +} diff --git a/shroom/search.go b/shroom/search.go index 6f6e902..4387abf 100644 --- a/shroom/search.go +++ b/shroom/search.go @@ -7,7 +7,7 @@ import ( "github.com/bouncepaw/mycorrhiza/util" ) -// YieldHyphaNamesContainingString picks hyphae with have a string in their title, sorts and iterates over them. +// YieldHyphaNamesContainingString picks hyphae with have a string in their title, sorts and iterates over them in alphabetical order. func YieldHyphaNamesContainingString(query string) <-chan string { query = util.CanonicalName(strings.TrimSpace(query)) out := make(chan string) diff --git a/views/auth.qtpl b/views/auth.qtpl index 619d2fd..fc94ec5 100644 --- a/views/auth.qtpl +++ b/views/auth.qtpl @@ -1,6 +1,8 @@ {% import "net/http" %} +{% import "sort" %} {% import "github.com/bouncepaw/mycorrhiza/cfg" %} {% import "github.com/bouncepaw/mycorrhiza/l18n" %} +{% import "github.com/bouncepaw/mycorrhiza/user" %} {% func Register(rq *http.Request) %} {% code @@ -148,3 +150,63 @@ 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("Редакторы"), +} +%} + +{% func UserList(lc *l18n.Localizer) %} +
+
+{% code +var get = func(key string) string { + return userListL10n[key].get(lc.Locale) +} + +var ( + admins = make([]string, 0) + moderators = make([]string, 0) + editors = make([]string, 0) +) +for u := range user.YieldUsers() { + switch u.Group { + // What if we place the users into sorted slices? + case "admin": + admins = append(admins, u.Name) + case "moderator": + moderators = append(moderators, u.Name) + case "editor", "trusted": + editors = append(editors, u.Name) + } +} +sort.Strings(admins) +sort.Strings(moderators) +sort.Strings(editors) +%} +

{%s get("heading") %}

+
+

{%s get("administrators") %}

+
    {% for _, name := range admins %} +
  1. {%s name %}
  2. + {% endfor %}
+
+
+

{%s get("moderators") %}

+
    {% for _, name := range moderators %} +
  1. {%s name %}
  2. + {% endfor %}
+
+
+

{%s get("editors") %}

+
    {% for _, name := range editors %} +
  1. {%s name %}
  2. + {% endfor %}
+
+
+
+{% endfunc %} \ No newline at end of file diff --git a/views/auth.qtpl.go b/views/auth.qtpl.go index 8018252..8f54d26 100644 --- a/views/auth.qtpl.go +++ b/views/auth.qtpl.go @@ -8,517 +8,523 @@ package views import "net/http" //line views/auth.qtpl:2 -import "github.com/bouncepaw/mycorrhiza/cfg" +import "sort" //line views/auth.qtpl:3 +import "github.com/bouncepaw/mycorrhiza/cfg" + +//line views/auth.qtpl:4 import "github.com/bouncepaw/mycorrhiza/l18n" //line views/auth.qtpl:5 +import "github.com/bouncepaw/mycorrhiza/user" + +//line views/auth.qtpl:7 import ( qtio422016 "io" qt422016 "github.com/valyala/quicktemplate" ) -//line views/auth.qtpl:5 +//line views/auth.qtpl:7 var ( _ = qtio422016.Copy _ = qt422016.AcquireByteBuffer ) -//line views/auth.qtpl:5 +//line views/auth.qtpl:7 func StreamRegister(qw422016 *qt422016.Writer, rq *http.Request) { -//line views/auth.qtpl:5 +//line views/auth.qtpl:7 qw422016.N().S(` `) -//line views/auth.qtpl:7 +//line views/auth.qtpl:9 lc := l18n.FromRequest(rq) -//line views/auth.qtpl:8 +//line views/auth.qtpl:10 qw422016.N().S(`
`) -//line views/auth.qtpl:12 +//line views/auth.qtpl:14 if cfg.AllowRegistration { -//line views/auth.qtpl:12 +//line views/auth.qtpl:14 qw422016.N().S(` `) -//line views/auth.qtpl:30 +//line views/auth.qtpl:32 streamtelegramWidget(qw422016, lc) -//line views/auth.qtpl:30 +//line views/auth.qtpl:32 qw422016.N().S(` `) -//line views/auth.qtpl:31 +//line views/auth.qtpl:33 } else if cfg.UseAuth { -//line views/auth.qtpl:31 +//line views/auth.qtpl:33 qw422016.N().S(`

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

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

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

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

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

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

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

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

`) -//line views/auth.qtpl:67 +//line views/auth.qtpl:69 } -//line views/auth.qtpl:67 +//line views/auth.qtpl:69 qw422016.N().S(`
`) -//line views/auth.qtpl:71 +//line views/auth.qtpl:73 } -//line views/auth.qtpl:71 +//line views/auth.qtpl:73 func WriteLogin(qq422016 qtio422016.Writer, lc *l18n.Localizer) { -//line views/auth.qtpl:71 +//line views/auth.qtpl:73 qw422016 := qt422016.AcquireWriter(qq422016) -//line views/auth.qtpl:71 +//line views/auth.qtpl:73 StreamLogin(qw422016, lc) -//line views/auth.qtpl:71 +//line views/auth.qtpl:73 qt422016.ReleaseWriter(qw422016) -//line views/auth.qtpl:71 +//line views/auth.qtpl:73 } -//line views/auth.qtpl:71 +//line views/auth.qtpl:73 func Login(lc *l18n.Localizer) string { -//line views/auth.qtpl:71 +//line views/auth.qtpl:73 qb422016 := qt422016.AcquireByteBuffer() -//line views/auth.qtpl:71 +//line views/auth.qtpl:73 WriteLogin(qb422016, lc) -//line views/auth.qtpl:71 +//line views/auth.qtpl:73 qs422016 := string(qb422016.B) -//line views/auth.qtpl:71 +//line views/auth.qtpl:73 qt422016.ReleaseByteBuffer(qb422016) -//line views/auth.qtpl:71 +//line views/auth.qtpl:73 return qs422016 -//line views/auth.qtpl:71 +//line views/auth.qtpl:73 } // 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:74 +//line views/auth.qtpl:76 func streamtelegramWidget(qw422016 *qt422016.Writer, lc *l18n.Localizer) { -//line views/auth.qtpl:74 +//line views/auth.qtpl:76 qw422016.N().S(` `) -//line views/auth.qtpl:75 +//line views/auth.qtpl:77 if cfg.TelegramEnabled { -//line views/auth.qtpl:75 +//line views/auth.qtpl:77 qw422016.N().S(`

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

`) -//line views/auth.qtpl:113 +//line views/auth.qtpl:115 } -//line views/auth.qtpl:113 +//line views/auth.qtpl:115 qw422016.N().S(`
`) -//line views/auth.qtpl:117 +//line views/auth.qtpl:119 } -//line views/auth.qtpl:117 +//line views/auth.qtpl:119 func WriteLogout(qq422016 qtio422016.Writer, can bool, lc *l18n.Localizer) { -//line views/auth.qtpl:117 +//line views/auth.qtpl:119 qw422016 := qt422016.AcquireWriter(qq422016) -//line views/auth.qtpl:117 +//line views/auth.qtpl:119 StreamLogout(qw422016, can, lc) -//line views/auth.qtpl:117 +//line views/auth.qtpl:119 qt422016.ReleaseWriter(qw422016) -//line views/auth.qtpl:117 +//line views/auth.qtpl:119 } -//line views/auth.qtpl:117 +//line views/auth.qtpl:119 func Logout(can bool, lc *l18n.Localizer) string { -//line views/auth.qtpl:117 +//line views/auth.qtpl:119 qb422016 := qt422016.AcquireByteBuffer() -//line views/auth.qtpl:117 +//line views/auth.qtpl:119 WriteLogout(qb422016, can, lc) -//line views/auth.qtpl:117 +//line views/auth.qtpl:119 qs422016 := string(qb422016.B) -//line views/auth.qtpl:117 +//line views/auth.qtpl:119 qt422016.ReleaseByteBuffer(qb422016) -//line views/auth.qtpl:117 +//line views/auth.qtpl:119 return qs422016 -//line views/auth.qtpl:117 +//line views/auth.qtpl:119 } -//line views/auth.qtpl:119 +//line views/auth.qtpl:121 func StreamLock(qw422016 *qt422016.Writer, lc *l18n.Localizer) { -//line views/auth.qtpl:119 +//line views/auth.qtpl:121 qw422016.N().S(` @@ -526,9 +532,9 @@ func StreamLock(qw422016 *qt422016.Writer, lc *l18n.Localizer) { 🔒 `) -//line views/auth.qtpl:125 +//line views/auth.qtpl:127 qw422016.E().S(lc.Get("auth.lock_title")) -//line views/auth.qtpl:125 +//line views/auth.qtpl:127 qw422016.N().S(` @@ -538,68 +544,237 @@ func StreamLock(qw422016 *qt422016.Writer, lc *l18n.Localizer) {

🔒

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

`) -//line views/auth.qtpl:145 +//line views/auth.qtpl:147 streamtelegramWidget(qw422016, lc) -//line views/auth.qtpl:145 +//line views/auth.qtpl:147 qw422016.N().S(`
`) -//line views/auth.qtpl:150 +//line views/auth.qtpl:152 } -//line views/auth.qtpl:150 +//line views/auth.qtpl:152 func WriteLock(qq422016 qtio422016.Writer, lc *l18n.Localizer) { -//line views/auth.qtpl:150 +//line views/auth.qtpl:152 qw422016 := qt422016.AcquireWriter(qq422016) -//line views/auth.qtpl:150 +//line views/auth.qtpl:152 StreamLock(qw422016, lc) -//line views/auth.qtpl:150 +//line views/auth.qtpl:152 qt422016.ReleaseWriter(qw422016) -//line views/auth.qtpl:150 +//line views/auth.qtpl:152 } -//line views/auth.qtpl:150 +//line views/auth.qtpl:152 func Lock(lc *l18n.Localizer) string { -//line views/auth.qtpl:150 +//line views/auth.qtpl:152 qb422016 := qt422016.AcquireByteBuffer() -//line views/auth.qtpl:150 +//line views/auth.qtpl:152 WriteLock(qb422016, lc) -//line views/auth.qtpl:150 +//line views/auth.qtpl:152 qs422016 := string(qb422016.B) -//line views/auth.qtpl:150 +//line views/auth.qtpl:152 qt422016.ReleaseByteBuffer(qb422016) -//line views/auth.qtpl:150 +//line views/auth.qtpl:152 return qs422016 -//line views/auth.qtpl:150 +//line views/auth.qtpl:152 +} + +//line views/auth.qtpl:155 +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:163 +func StreamUserList(qw422016 *qt422016.Writer, lc *l18n.Localizer) { +//line views/auth.qtpl:163 + qw422016.N().S(` +
+
+`) +//line views/auth.qtpl:167 + var get = func(key string) string { + return userListL10n[key].get(lc.Locale) + } + + var ( + admins = make([]string, 0) + moderators = make([]string, 0) + editors = make([]string, 0) + ) + for u := range user.YieldUsers() { + switch u.Group { + // What if we place the users into sorted slices? + case "admin": + admins = append(admins, u.Name) + case "moderator": + moderators = append(moderators, u.Name) + case "editor", "trusted": + editors = append(editors, u.Name) + } + } + sort.Strings(admins) + sort.Strings(moderators) + sort.Strings(editors) + +//line views/auth.qtpl:190 + qw422016.N().S(` +

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

+
+

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

+
    `) +//line views/auth.qtpl:194 + for _, name := range admins { +//line views/auth.qtpl:194 + qw422016.N().S(` +
  1. `) +//line views/auth.qtpl:195 + qw422016.E().S(name) +//line views/auth.qtpl:195 + qw422016.N().S(`
  2. + `) +//line views/auth.qtpl:196 + } +//line views/auth.qtpl:196 + qw422016.N().S(`
+
+
+

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

+
    `) +//line views/auth.qtpl:200 + for _, name := range moderators { +//line views/auth.qtpl:200 + qw422016.N().S(` +
  1. `) +//line views/auth.qtpl:201 + qw422016.E().S(name) +//line views/auth.qtpl:201 + qw422016.N().S(`
  2. + `) +//line views/auth.qtpl:202 + } +//line views/auth.qtpl:202 + qw422016.N().S(`
+
+
+

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

+
    `) +//line views/auth.qtpl:206 + for _, name := range editors { +//line views/auth.qtpl:206 + qw422016.N().S(` +
  1. `) +//line views/auth.qtpl:207 + qw422016.E().S(name) +//line views/auth.qtpl:207 + qw422016.N().S(`
  2. + `) +//line views/auth.qtpl:208 + } +//line views/auth.qtpl:208 + qw422016.N().S(`
+
+
+
+`) +//line views/auth.qtpl:212 +} + +//line views/auth.qtpl:212 +func WriteUserList(qq422016 qtio422016.Writer, lc *l18n.Localizer) { +//line views/auth.qtpl:212 + qw422016 := qt422016.AcquireWriter(qq422016) +//line views/auth.qtpl:212 + StreamUserList(qw422016, lc) +//line views/auth.qtpl:212 + qt422016.ReleaseWriter(qw422016) +//line views/auth.qtpl:212 +} + +//line views/auth.qtpl:212 +func UserList(lc *l18n.Localizer) string { +//line views/auth.qtpl:212 + qb422016 := qt422016.AcquireByteBuffer() +//line views/auth.qtpl:212 + WriteUserList(qb422016, lc) +//line views/auth.qtpl:212 + qs422016 := string(qb422016.B) +//line views/auth.qtpl:212 + qt422016.ReleaseByteBuffer(qb422016) +//line views/auth.qtpl:212 + return qs422016 +//line views/auth.qtpl:212 } diff --git a/views/stuff.qtpl b/views/stuff.qtpl index 37151c4..99a28db 100644 --- a/views/stuff.qtpl +++ b/views/stuff.qtpl @@ -4,21 +4,6 @@ {% import "github.com/bouncepaw/mycorrhiza/util" %} {% import "github.com/bouncepaw/mycorrhiza/l18n" %} -{% func TitleSearch(query string, generator func(string) <-chan string, lc *l18n.Localizer) %} -
-
-

{%s lc.Get("ui.search_results_query", &l18n.Replacements{"query": query})%}

-

{%s lc.Get("ui.search_results_desc")%}

-
-
-{% endfunc %} - {% func Backlinks(hyphaName string, generator func(string) <-chan string, lc *l18n.Localizer) %}
diff --git a/views/stuff.qtpl.go b/views/stuff.qtpl.go index 31ae9ff..5abfcf6 100644 --- a/views/stuff.qtpl.go +++ b/views/stuff.qtpl.go @@ -30,83 +30,13 @@ var ( ) //line views/stuff.qtpl:7 -func StreamTitleSearch(qw422016 *qt422016.Writer, query string, generator func(string) <-chan string, lc *l18n.Localizer) { -//line views/stuff.qtpl:7 - qw422016.N().S(` -
-
-

`) -//line views/stuff.qtpl:10 - qw422016.E().S(lc.Get("ui.search_results_query", &l18n.Replacements{"query": query})) -//line views/stuff.qtpl:10 - qw422016.N().S(`

-

`) -//line views/stuff.qtpl:11 - qw422016.E().S(lc.Get("ui.search_results_desc")) -//line views/stuff.qtpl:11 - qw422016.N().S(`

-
-
-`) -//line views/stuff.qtpl:20 -} - -//line views/stuff.qtpl:20 -func WriteTitleSearch(qq422016 qtio422016.Writer, query string, generator func(string) <-chan string, lc *l18n.Localizer) { -//line views/stuff.qtpl:20 - qw422016 := qt422016.AcquireWriter(qq422016) -//line views/stuff.qtpl:20 - StreamTitleSearch(qw422016, query, generator, lc) -//line views/stuff.qtpl:20 - qt422016.ReleaseWriter(qw422016) -//line views/stuff.qtpl:20 -} - -//line views/stuff.qtpl:20 -func TitleSearch(query string, generator func(string) <-chan string, lc *l18n.Localizer) string { -//line views/stuff.qtpl:20 - qb422016 := qt422016.AcquireByteBuffer() -//line views/stuff.qtpl:20 - WriteTitleSearch(qb422016, query, generator, lc) -//line views/stuff.qtpl:20 - qs422016 := string(qb422016.B) -//line views/stuff.qtpl:20 - qt422016.ReleaseByteBuffer(qb422016) -//line views/stuff.qtpl:20 - return qs422016 -//line views/stuff.qtpl:20 -} - -//line views/stuff.qtpl:22 func StreamBacklinks(qw422016 *qt422016.Writer, hyphaName string, generator func(string) <-chan string, lc *l18n.Localizer) { -//line views/stuff.qtpl:22 +//line views/stuff.qtpl:7 qw422016.N().S(`

`) -//line views/stuff.qtpl:25 +//line views/stuff.qtpl:10 qw422016.N().S(lc.Get( "ui.backlinks_heading", &l18n.Replacements{ @@ -117,220 +47,220 @@ func StreamBacklinks(qw422016 *qt422016.Writer, hyphaName string, generator func ), }, )) -//line views/stuff.qtpl:34 +//line views/stuff.qtpl:19 qw422016.N().S(`

`) -//line views/stuff.qtpl:35 +//line views/stuff.qtpl:20 qw422016.E().S(lc.Get("ui.backlinks_desc")) -//line views/stuff.qtpl:35 +//line views/stuff.qtpl:20 qw422016.N().S(`

`) -//line views/stuff.qtpl:45 +//line views/stuff.qtpl:30 } -//line views/stuff.qtpl:45 +//line views/stuff.qtpl:30 func WriteBacklinks(qq422016 qtio422016.Writer, hyphaName string, generator func(string) <-chan string, lc *l18n.Localizer) { -//line views/stuff.qtpl:45 +//line views/stuff.qtpl:30 qw422016 := qt422016.AcquireWriter(qq422016) -//line views/stuff.qtpl:45 +//line views/stuff.qtpl:30 StreamBacklinks(qw422016, hyphaName, generator, lc) -//line views/stuff.qtpl:45 +//line views/stuff.qtpl:30 qt422016.ReleaseWriter(qw422016) -//line views/stuff.qtpl:45 +//line views/stuff.qtpl:30 } -//line views/stuff.qtpl:45 +//line views/stuff.qtpl:30 func Backlinks(hyphaName string, generator func(string) <-chan string, lc *l18n.Localizer) string { -//line views/stuff.qtpl:45 +//line views/stuff.qtpl:30 qb422016 := qt422016.AcquireByteBuffer() -//line views/stuff.qtpl:45 +//line views/stuff.qtpl:30 WriteBacklinks(qb422016, hyphaName, generator, lc) -//line views/stuff.qtpl:45 +//line views/stuff.qtpl:30 qs422016 := string(qb422016.B) -//line views/stuff.qtpl:45 +//line views/stuff.qtpl:30 qt422016.ReleaseByteBuffer(qb422016) -//line views/stuff.qtpl:45 +//line views/stuff.qtpl:30 return qs422016 -//line views/stuff.qtpl:45 +//line views/stuff.qtpl:30 } -//line views/stuff.qtpl:47 +//line views/stuff.qtpl:32 func StreamHelp(qw422016 *qt422016.Writer, content, lang string, lc *l18n.Localizer) { -//line views/stuff.qtpl:47 +//line views/stuff.qtpl:32 qw422016.N().S(`
`) -//line views/stuff.qtpl:51 +//line views/stuff.qtpl:36 qw422016.N().S(content) -//line views/stuff.qtpl:51 +//line views/stuff.qtpl:36 qw422016.N().S(`
`) -//line views/stuff.qtpl:54 +//line views/stuff.qtpl:39 qw422016.N().S(helpTopics(lang, lc)) -//line views/stuff.qtpl:54 +//line views/stuff.qtpl:39 qw422016.N().S(`
`) -//line views/stuff.qtpl:56 +//line views/stuff.qtpl:41 } -//line views/stuff.qtpl:56 +//line views/stuff.qtpl:41 func WriteHelp(qq422016 qtio422016.Writer, content, lang string, lc *l18n.Localizer) { -//line views/stuff.qtpl:56 +//line views/stuff.qtpl:41 qw422016 := qt422016.AcquireWriter(qq422016) -//line views/stuff.qtpl:56 +//line views/stuff.qtpl:41 StreamHelp(qw422016, content, lang, lc) -//line views/stuff.qtpl:56 +//line views/stuff.qtpl:41 qt422016.ReleaseWriter(qw422016) -//line views/stuff.qtpl:56 +//line views/stuff.qtpl:41 } -//line views/stuff.qtpl:56 +//line views/stuff.qtpl:41 func Help(content, lang string, lc *l18n.Localizer) string { -//line views/stuff.qtpl:56 +//line views/stuff.qtpl:41 qb422016 := qt422016.AcquireByteBuffer() -//line views/stuff.qtpl:56 +//line views/stuff.qtpl:41 WriteHelp(qb422016, content, lang, lc) -//line views/stuff.qtpl:56 +//line views/stuff.qtpl:41 qs422016 := string(qb422016.B) -//line views/stuff.qtpl:56 +//line views/stuff.qtpl:41 qt422016.ReleaseByteBuffer(qb422016) -//line views/stuff.qtpl:56 +//line views/stuff.qtpl:41 return qs422016 -//line views/stuff.qtpl:56 +//line views/stuff.qtpl:41 } -//line views/stuff.qtpl:58 +//line views/stuff.qtpl:43 func StreamHelpEmptyError(qw422016 *qt422016.Writer, lc *l18n.Localizer) { -//line views/stuff.qtpl:58 +//line views/stuff.qtpl:43 qw422016.N().S(`

`) -//line views/stuff.qtpl:59 +//line views/stuff.qtpl:44 qw422016.E().S(lc.Get("help.empty_error_title")) -//line views/stuff.qtpl:59 +//line views/stuff.qtpl:44 qw422016.N().S(`

`) -//line views/stuff.qtpl:60 +//line views/stuff.qtpl:45 qw422016.E().S(lc.Get("help.empty_error_line_1")) -//line views/stuff.qtpl:60 +//line views/stuff.qtpl:45 qw422016.N().S(`

`) -//line views/stuff.qtpl:61 +//line views/stuff.qtpl:46 qw422016.E().S(lc.Get("help.empty_error_line_2a")) -//line views/stuff.qtpl:61 +//line views/stuff.qtpl:46 qw422016.N().S(` `) -//line views/stuff.qtpl:61 +//line views/stuff.qtpl:46 qw422016.E().S(lc.Get("help.empty_error_link")) -//line views/stuff.qtpl:61 +//line views/stuff.qtpl:46 qw422016.N().S(` `) -//line views/stuff.qtpl:61 +//line views/stuff.qtpl:46 qw422016.E().S(lc.Get("help.empty_error_line_2b")) -//line views/stuff.qtpl:61 +//line views/stuff.qtpl:46 qw422016.N().S(`

`) -//line views/stuff.qtpl:62 +//line views/stuff.qtpl:47 } -//line views/stuff.qtpl:62 +//line views/stuff.qtpl:47 func WriteHelpEmptyError(qq422016 qtio422016.Writer, lc *l18n.Localizer) { -//line views/stuff.qtpl:62 +//line views/stuff.qtpl:47 qw422016 := qt422016.AcquireWriter(qq422016) -//line views/stuff.qtpl:62 +//line views/stuff.qtpl:47 StreamHelpEmptyError(qw422016, lc) -//line views/stuff.qtpl:62 +//line views/stuff.qtpl:47 qt422016.ReleaseWriter(qw422016) -//line views/stuff.qtpl:62 +//line views/stuff.qtpl:47 } -//line views/stuff.qtpl:62 +//line views/stuff.qtpl:47 func HelpEmptyError(lc *l18n.Localizer) string { -//line views/stuff.qtpl:62 +//line views/stuff.qtpl:47 qb422016 := qt422016.AcquireByteBuffer() -//line views/stuff.qtpl:62 +//line views/stuff.qtpl:47 WriteHelpEmptyError(qb422016, lc) -//line views/stuff.qtpl:62 +//line views/stuff.qtpl:47 qs422016 := string(qb422016.B) -//line views/stuff.qtpl:62 +//line views/stuff.qtpl:47 qt422016.ReleaseByteBuffer(qb422016) -//line views/stuff.qtpl:62 +//line views/stuff.qtpl:47 return qs422016 -//line views/stuff.qtpl:62 +//line views/stuff.qtpl:47 } -//line views/stuff.qtpl:64 +//line views/stuff.qtpl:49 func streamcommonScripts(qw422016 *qt422016.Writer) { -//line views/stuff.qtpl:64 +//line views/stuff.qtpl:49 qw422016.N().S(` `) -//line views/stuff.qtpl:65 +//line views/stuff.qtpl:50 for _, scriptPath := range cfg.CommonScripts { -//line views/stuff.qtpl:65 +//line views/stuff.qtpl:50 qw422016.N().S(` `) -//line views/stuff.qtpl:67 +//line views/stuff.qtpl:52 } -//line views/stuff.qtpl:67 +//line views/stuff.qtpl:52 qw422016.N().S(` `) -//line views/stuff.qtpl:68 +//line views/stuff.qtpl:53 } -//line views/stuff.qtpl:68 +//line views/stuff.qtpl:53 func writecommonScripts(qq422016 qtio422016.Writer) { -//line views/stuff.qtpl:68 +//line views/stuff.qtpl:53 qw422016 := qt422016.AcquireWriter(qq422016) -//line views/stuff.qtpl:68 +//line views/stuff.qtpl:53 streamcommonScripts(qw422016) -//line views/stuff.qtpl:68 +//line views/stuff.qtpl:53 qt422016.ReleaseWriter(qw422016) -//line views/stuff.qtpl:68 +//line views/stuff.qtpl:53 } -//line views/stuff.qtpl:68 +//line views/stuff.qtpl:53 func commonScripts() string { -//line views/stuff.qtpl:68 +//line views/stuff.qtpl:53 qb422016 := qt422016.AcquireByteBuffer() -//line views/stuff.qtpl:68 +//line views/stuff.qtpl:53 writecommonScripts(qb422016) -//line views/stuff.qtpl:68 +//line views/stuff.qtpl:53 qs422016 := string(qb422016.B) -//line views/stuff.qtpl:68 +//line views/stuff.qtpl:53 qt422016.ReleaseByteBuffer(qb422016) -//line views/stuff.qtpl:68 +//line views/stuff.qtpl:53 return qs422016 -//line views/stuff.qtpl:68 +//line views/stuff.qtpl:53 } diff --git a/views/user_list.qtpl b/views/user_list.qtpl deleted file mode 100644 index 2d647d2..0000000 --- a/views/user_list.qtpl +++ /dev/null @@ -1,64 +0,0 @@ -{% import "github.com/bouncepaw/mycorrhiza/cfg" %} -{% import "github.com/bouncepaw/mycorrhiza/l18n" %} -{% import "github.com/bouncepaw/mycorrhiza/user" %} -{% import "sort" %} - -{% code -var hyphaListL10n = map[string]l10nEntry{ - "heading": en("List of users").ru("Список пользователей"), - "administrators": en("Administrators").ru("Администраторы"), - "moderators": en("Moderators").ru("Модераторы"), - "editors": en("Editors").ru("Редакторы"), -} -%} - -{% func UserList(lc *l18n.Localizer) %} -
-
-{% code -var get = func(key string) string { - return hyphaListL10n[key].get(lc.Locale) -} - -var ( - admins = make([]string, 0) - moderators = make([]string, 0) - editors = make([]string, 0) -) -for u := range user.YieldUsers() { - switch u.Group { - // What if we place the users into sorted slices? - case "admin": - admins = append(admins, u.Name) - case "moderator": - moderators = append(moderators, u.Name) - case "editor", "trusted": - editors = append(editors, u.Name) - } -} -sort.Strings(admins) -sort.Strings(moderators) -sort.Strings(editors) -%} -

{%s get("heading") %}

-
-

{%s get("administrators") %}

-
    {% for _, name := range admins %} -
  1. {%s name %}
  2. - {% endfor %}
-
-
-

{%s get("moderators") %}

-
    {% for _, name := range moderators %} -
  1. {%s name %}
  2. - {% endfor %}
-
-
-

{%s get("editors") %}

-
    {% for _, name := range editors %} -
  1. {%s name %}
  2. - {% endfor %}
-
-
-
-{% endfunc %} \ No newline at end of file diff --git a/views/user_list.qtpl.go b/views/user_list.qtpl.go deleted file mode 100644 index 31cdd88..0000000 --- a/views/user_list.qtpl.go +++ /dev/null @@ -1,199 +0,0 @@ -// Code generated by qtc from "user_list.qtpl". DO NOT EDIT. -// See https://github.com/valyala/quicktemplate for details. - -//line views/user_list.qtpl:1 -package views - -//line views/user_list.qtpl:1 -import "github.com/bouncepaw/mycorrhiza/cfg" - -//line views/user_list.qtpl:2 -import "github.com/bouncepaw/mycorrhiza/l18n" - -//line views/user_list.qtpl:3 -import "github.com/bouncepaw/mycorrhiza/user" - -//line views/user_list.qtpl:4 -import "sort" - -//line views/user_list.qtpl:6 -import ( - qtio422016 "io" - - qt422016 "github.com/valyala/quicktemplate" -) - -//line views/user_list.qtpl:6 -var ( - _ = qtio422016.Copy - _ = qt422016.AcquireByteBuffer -) - -//line views/user_list.qtpl:7 -var hyphaListL10n = map[string]l10nEntry{ - "heading": en("List of users").ru("Список пользователей"), - "administrators": en("Administrators").ru("Администраторы"), - "moderators": en("Moderators").ru("Модераторы"), - "editors": en("Editors").ru("Редакторы"), -} - -//line views/user_list.qtpl:15 -func StreamUserList(qw422016 *qt422016.Writer, lc *l18n.Localizer) { -//line views/user_list.qtpl:15 - qw422016.N().S(` -
-
-`) -//line views/user_list.qtpl:19 - var get = func(key string) string { - return hyphaListL10n[key].get(lc.Locale) - } - - var ( - admins = make([]string, 0) - moderators = make([]string, 0) - editors = make([]string, 0) - ) - for u := range user.YieldUsers() { - switch u.Group { - // What if we place the users into sorted slices? - case "admin": - admins = append(admins, u.Name) - case "moderator": - moderators = append(moderators, u.Name) - case "editor", "trusted": - editors = append(editors, u.Name) - } - } - sort.Strings(admins) - sort.Strings(moderators) - sort.Strings(editors) - -//line views/user_list.qtpl:42 - qw422016.N().S(` -

`) -//line views/user_list.qtpl:43 - qw422016.E().S(get("heading")) -//line views/user_list.qtpl:43 - qw422016.N().S(`

-
-

`) -//line views/user_list.qtpl:45 - qw422016.E().S(get("administrators")) -//line views/user_list.qtpl:45 - qw422016.N().S(`

-
    `) -//line views/user_list.qtpl:46 - for _, name := range admins { -//line views/user_list.qtpl:46 - qw422016.N().S(` -
  1. `) -//line views/user_list.qtpl:47 - qw422016.E().S(name) -//line views/user_list.qtpl:47 - qw422016.N().S(`
  2. - `) -//line views/user_list.qtpl:48 - } -//line views/user_list.qtpl:48 - qw422016.N().S(`
-
-
-

`) -//line views/user_list.qtpl:51 - qw422016.E().S(get("moderators")) -//line views/user_list.qtpl:51 - qw422016.N().S(`

-
    `) -//line views/user_list.qtpl:52 - for _, name := range moderators { -//line views/user_list.qtpl:52 - qw422016.N().S(` -
  1. `) -//line views/user_list.qtpl:53 - qw422016.E().S(name) -//line views/user_list.qtpl:53 - qw422016.N().S(`
  2. - `) -//line views/user_list.qtpl:54 - } -//line views/user_list.qtpl:54 - qw422016.N().S(`
-
-
-

`) -//line views/user_list.qtpl:57 - qw422016.E().S(get("editors")) -//line views/user_list.qtpl:57 - qw422016.N().S(`

-
    `) -//line views/user_list.qtpl:58 - for _, name := range editors { -//line views/user_list.qtpl:58 - qw422016.N().S(` -
  1. `) -//line views/user_list.qtpl:59 - qw422016.E().S(name) -//line views/user_list.qtpl:59 - qw422016.N().S(`
  2. - `) -//line views/user_list.qtpl:60 - } -//line views/user_list.qtpl:60 - qw422016.N().S(`
-
-
-
-`) -//line views/user_list.qtpl:64 -} - -//line views/user_list.qtpl:64 -func WriteUserList(qq422016 qtio422016.Writer, lc *l18n.Localizer) { -//line views/user_list.qtpl:64 - qw422016 := qt422016.AcquireWriter(qq422016) -//line views/user_list.qtpl:64 - StreamUserList(qw422016, lc) -//line views/user_list.qtpl:64 - qt422016.ReleaseWriter(qw422016) -//line views/user_list.qtpl:64 -} - -//line views/user_list.qtpl:64 -func UserList(lc *l18n.Localizer) string { -//line views/user_list.qtpl:64 - qb422016 := qt422016.AcquireByteBuffer() -//line views/user_list.qtpl:64 - WriteUserList(qb422016, lc) -//line views/user_list.qtpl:64 - qs422016 := string(qb422016.B) -//line views/user_list.qtpl:64 - qt422016.ReleaseByteBuffer(qb422016) -//line views/user_list.qtpl:64 - return qs422016 -//line views/user_list.qtpl:64 -} diff --git a/web/search.go b/web/search.go deleted file mode 100644 index 0a9b7d4..0000000 --- a/web/search.go +++ /dev/null @@ -1,36 +0,0 @@ -package web - -import ( - "github.com/bouncepaw/mycorrhiza/viewutil" - "io" - "net/http" - - "github.com/gorilla/mux" - - "github.com/bouncepaw/mycorrhiza/l18n" - "github.com/bouncepaw/mycorrhiza/shroom" - "github.com/bouncepaw/mycorrhiza/util" - "github.com/bouncepaw/mycorrhiza/views" -) - -func initSearch(r *mux.Router) { - r.HandleFunc("/title-search/", handlerTitleSearch) -} - -func handlerTitleSearch(w http.ResponseWriter, rq *http.Request) { - util.PrepareRq(rq) - _ = rq.ParseForm() - var ( - query = rq.FormValue("q") - lc = l18n.FromRequest(rq) - ) - w.WriteHeader(http.StatusOK) - _, _ = io.WriteString( - w, - views.Base( - viewutil.MetaFrom(w, rq), - lc.Get("ui.title_search_title", &l18n.Replacements{"query": query}), - views.TitleSearch(query, shroom.YieldHyphaNamesContainingString, lc), - ), - ) -} diff --git a/web/web.go b/web/web.go index 304aeb0..9801a17 100644 --- a/web/web.go +++ b/web/web.go @@ -47,7 +47,6 @@ func Handler() http.Handler { initMutators(wikiRouter) initHistory(wikiRouter) initHelp(wikiRouter) - initSearch(wikiRouter) initBacklinks(wikiRouter) categories.InitHandlers(wikiRouter) misc.InitHandlers(wikiRouter)