1
0
mirror of https://github.com/osmarks/mycorrhiza.git synced 2025-05-29 01:34:05 +00:00

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.
This commit is contained in:
Timur Ismagilov 2022-08-06 16:35:17 +05:00
parent 4a9cbfd1eb
commit b1cdb1e279
22 changed files with 1094 additions and 1087 deletions

View File

@ -15,7 +15,6 @@ import (
"github.com/bouncepaw/mycorrhiza/l18n" "github.com/bouncepaw/mycorrhiza/l18n"
"github.com/bouncepaw/mycorrhiza/user" "github.com/bouncepaw/mycorrhiza/user"
"github.com/bouncepaw/mycorrhiza/util" "github.com/bouncepaw/mycorrhiza/util"
"github.com/bouncepaw/mycorrhiza/views"
) )
// handlerAdmin provides the admin panel. // handlerAdmin provides the admin panel.
@ -89,8 +88,8 @@ func handlerAdminUserEdit(w http.ResponseWriter, rq *http.Request) {
f.Put("group", u.Group) f.Put("group", u.Group)
var lc = l18n.FromRequest(rq) var lc = l18n.FromRequest(rq)
html := views.AdminUserEdit(u, f, lc) html := AdminUserEdit(u, f, lc)
html = views.Base(viewutil.MetaFrom(w, rq), fmt.Sprintf(lc.Get("admin.user_title"), u.Name), html) html = viewutil.Base(viewutil.MetaFrom(w, rq), fmt.Sprintf(lc.Get("admin.user_title"), u.Name), html)
if f.HasError() { if f.HasError() {
w.WriteHeader(http.StatusBadRequest) w.WriteHeader(http.StatusBadRequest)
@ -119,8 +118,8 @@ func handlerAdminUserDelete(w http.ResponseWriter, rq *http.Request) {
} }
var lc = l18n.FromRequest(rq) var lc = l18n.FromRequest(rq)
html := views.AdminUserDelete(u, util.NewFormData(), lc) html := AdminUserDelete(u, util.NewFormData(), lc)
html = views.Base(viewutil.MetaFrom(w, rq), fmt.Sprintf(lc.Get("admin.user_title"), u.Name), html) html = viewutil.Base(viewutil.MetaFrom(w, rq), fmt.Sprintf(lc.Get("admin.user_title"), u.Name), html)
if f.HasError() { if f.HasError() {
w.WriteHeader(http.StatusBadRequest) w.WriteHeader(http.StatusBadRequest)
@ -133,8 +132,8 @@ func handlerAdminUserNew(w http.ResponseWriter, rq *http.Request) {
var lc = l18n.FromRequest(rq) var lc = l18n.FromRequest(rq)
if rq.Method == http.MethodGet { if rq.Method == http.MethodGet {
// New user form // New user form
html := views.AdminUserNew(util.NewFormData(), lc) html := AdminUserNew(util.NewFormData(), lc)
html = views.Base(viewutil.MetaFrom(w, rq), lc.Get("admin.newuser_title"), html) html = viewutil.Base(viewutil.MetaFrom(w, rq), lc.Get("admin.newuser_title"), html)
w.Header().Set("Content-Type", mime.TypeByExtension(".html")) w.Header().Set("Content-Type", mime.TypeByExtension(".html"))
io.WriteString(w, 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) err := user.Register(f.Get("name"), f.Get("password"), f.Get("group"), "local", true)
if err != nil { if err != nil {
html := views.AdminUserNew(f.WithError(err), lc) html := AdminUserNew(f.WithError(err), lc)
html = views.Base(viewutil.MetaFrom(w, rq), lc.Get("admin.newuser_title"), html) html = viewutil.Base(viewutil.MetaFrom(w, rq), lc.Get("admin.newuser_title"), html)
w.WriteHeader(http.StatusBadRequest) w.WriteHeader(http.StatusBadRequest)
w.Header().Set("Content-Type", mime.TypeByExtension(".html")) w.Header().Set("Content-Type", mime.TypeByExtension(".html"))

View File

@ -1,146 +1,146 @@
// Code generated by qtc from "admin.qtpl". DO NOT EDIT. // Code generated by qtc from "admin.qtpl". DO NOT EDIT.
// See https://github.com/valyala/quicktemplate for details. // See https://github.com/valyala/quicktemplate for details.
//line views/admin.qtpl:1 //line admin/admin.qtpl:1
package views package admin
//line views/admin.qtpl:1 //line admin/admin.qtpl:1
import "fmt" import "fmt"
//line views/admin.qtpl:2 //line admin/admin.qtpl:2
import "github.com/bouncepaw/mycorrhiza/l18n" import "github.com/bouncepaw/mycorrhiza/l18n"
//line views/admin.qtpl:3 //line admin/admin.qtpl:3
import "github.com/bouncepaw/mycorrhiza/user" import "github.com/bouncepaw/mycorrhiza/user"
//line views/admin.qtpl:4 //line admin/admin.qtpl:4
import "github.com/bouncepaw/mycorrhiza/util" import "github.com/bouncepaw/mycorrhiza/util"
//line views/admin.qtpl:6 //line admin/admin.qtpl:6
import ( import (
qtio422016 "io" qtio422016 "io"
qt422016 "github.com/valyala/quicktemplate" qt422016 "github.com/valyala/quicktemplate"
) )
//line views/admin.qtpl:6 //line admin/admin.qtpl:6
var ( var (
_ = qtio422016.Copy _ = qtio422016.Copy
_ = qt422016.AcquireByteBuffer _ = qt422016.AcquireByteBuffer
) )
//line views/admin.qtpl:6 //line admin/admin.qtpl:6
func StreamAdminUserNew(qw422016 *qt422016.Writer, f util.FormData, lc *l18n.Localizer) { func StreamAdminUserNew(qw422016 *qt422016.Writer, f util.FormData, lc *l18n.Localizer) {
//line views/admin.qtpl:6 //line admin/admin.qtpl:6
qw422016.N().S(` qw422016.N().S(`
<main class="main-width form-wrap"> <main class="main-width form-wrap">
<h1>`) <h1>`)
//line views/admin.qtpl:8 //line admin/admin.qtpl:8
qw422016.E().S(lc.Get("admin.newuser_title")) qw422016.E().S(lc.Get("admin.newuser_title"))
//line views/admin.qtpl:8 //line admin/admin.qtpl:8
qw422016.N().S(`</h1> qw422016.N().S(`</h1>
`) `)
//line views/admin.qtpl:10 //line admin/admin.qtpl:10
if f.HasError() { if f.HasError() {
//line views/admin.qtpl:10 //line admin/admin.qtpl:10
qw422016.N().S(` qw422016.N().S(`
<div class="notice notice--error"> <div class="notice notice--error">
<strong>`) <strong>`)
//line views/admin.qtpl:12 //line admin/admin.qtpl:12
qw422016.E().S(lc.Get("ui.error")) qw422016.E().S(lc.Get("ui.error"))
//line views/admin.qtpl:12 //line admin/admin.qtpl:12
qw422016.N().S(`:</strong> qw422016.N().S(`:</strong>
`) `)
//line views/admin.qtpl:13 //line admin/admin.qtpl:13
qw422016.E().S(f.Error()) qw422016.E().S(f.Error())
//line views/admin.qtpl:13 //line admin/admin.qtpl:13
qw422016.N().S(` qw422016.N().S(`
</div> </div>
`) `)
//line views/admin.qtpl:15 //line admin/admin.qtpl:15
} }
//line views/admin.qtpl:15 //line admin/admin.qtpl:15
qw422016.N().S(` qw422016.N().S(`
<form class="form--double" action="" method="post"> <form class="form--double" action="" method="post">
<div class="form-field"> <div class="form-field">
<label for="name">`) <label for="name">`)
//line views/admin.qtpl:19 //line admin/admin.qtpl:19
qw422016.E().S(lc.Get("admin.users_name")) qw422016.E().S(lc.Get("admin.users_name"))
//line views/admin.qtpl:19 //line admin/admin.qtpl:19
qw422016.N().S(`:</label> qw422016.N().S(`:</label>
<input type="text" name="name" id="name" value="`) <input type="text" name="name" id="name" value="`)
//line views/admin.qtpl:20 //line admin/admin.qtpl:20
qw422016.E().S(f.Get("name")) qw422016.E().S(f.Get("name"))
//line views/admin.qtpl:20 //line admin/admin.qtpl:20
qw422016.N().S(`" autofocus> qw422016.N().S(`" autofocus>
</div> </div>
<div class="form-field"> <div class="form-field">
<label for="password">`) <label for="password">`)
//line views/admin.qtpl:24 //line admin/admin.qtpl:24
qw422016.E().S(lc.Get("admin.users_password")) qw422016.E().S(lc.Get("admin.users_password"))
//line views/admin.qtpl:24 //line admin/admin.qtpl:24
qw422016.N().S(`:</label> qw422016.N().S(`:</label>
<input type="password" name="password" id="password" value="`) <input type="password" name="password" id="password" value="`)
//line views/admin.qtpl:25 //line admin/admin.qtpl:25
qw422016.E().S(f.Get("password")) qw422016.E().S(f.Get("password"))
//line views/admin.qtpl:25 //line admin/admin.qtpl:25
qw422016.N().S(`"> qw422016.N().S(`">
</div> </div>
<div class="form-field"> <div class="form-field">
<label for="group">`) <label for="group">`)
//line views/admin.qtpl:29 //line admin/admin.qtpl:29
qw422016.E().S(lc.Get("admin.users_group")) qw422016.E().S(lc.Get("admin.users_group"))
//line views/admin.qtpl:29 //line admin/admin.qtpl:29
qw422016.N().S(`:</label> qw422016.N().S(`:</label>
<select id="group" name="group"> <select id="group" name="group">
<option`) <option`)
//line views/admin.qtpl:31 //line admin/admin.qtpl:31
if f.Get("group") == "anon" { if f.Get("group") == "anon" {
//line views/admin.qtpl:31 //line admin/admin.qtpl:31
qw422016.N().S(` selected`) qw422016.N().S(` selected`)
//line views/admin.qtpl:31 //line admin/admin.qtpl:31
} }
//line views/admin.qtpl:31 //line admin/admin.qtpl:31
qw422016.N().S(`>anon</option> qw422016.N().S(`>anon</option>
<option`) <option`)
//line views/admin.qtpl:32 //line admin/admin.qtpl:32
if f.Get("group") == "editor" { if f.Get("group") == "editor" {
//line views/admin.qtpl:32 //line admin/admin.qtpl:32
qw422016.N().S(` selected`) qw422016.N().S(` selected`)
//line views/admin.qtpl:32 //line admin/admin.qtpl:32
} }
//line views/admin.qtpl:32 //line admin/admin.qtpl:32
qw422016.N().S(`>editor</option> qw422016.N().S(`>editor</option>
<option`) <option`)
//line views/admin.qtpl:33 //line admin/admin.qtpl:33
if f.Get("group") == "trusted" { if f.Get("group") == "trusted" {
//line views/admin.qtpl:33 //line admin/admin.qtpl:33
qw422016.N().S(` selected`) qw422016.N().S(` selected`)
//line views/admin.qtpl:33 //line admin/admin.qtpl:33
} }
//line views/admin.qtpl:33 //line admin/admin.qtpl:33
qw422016.N().S(`>trusted</option> qw422016.N().S(`>trusted</option>
<option`) <option`)
//line views/admin.qtpl:34 //line admin/admin.qtpl:34
if f.Get("group") == "moderator" { if f.Get("group") == "moderator" {
//line views/admin.qtpl:34 //line admin/admin.qtpl:34
qw422016.N().S(` selected`) qw422016.N().S(` selected`)
//line views/admin.qtpl:34 //line admin/admin.qtpl:34
} }
//line views/admin.qtpl:34 //line admin/admin.qtpl:34
qw422016.N().S(`>moderator</option> qw422016.N().S(`>moderator</option>
<option`) <option`)
//line views/admin.qtpl:35 //line admin/admin.qtpl:35
if f.Get("group") == "admin" { if f.Get("group") == "admin" {
//line views/admin.qtpl:35 //line admin/admin.qtpl:35
qw422016.N().S(` selected`) qw422016.N().S(` selected`)
//line views/admin.qtpl:35 //line admin/admin.qtpl:35
} }
//line views/admin.qtpl:35 //line admin/admin.qtpl:35
qw422016.N().S(`>admin</option> qw422016.N().S(`>admin</option>
</select> </select>
</div> </div>
@ -148,289 +148,289 @@ func StreamAdminUserNew(qw422016 *qt422016.Writer, f util.FormData, lc *l18n.Loc
<div class="form-field"> <div class="form-field">
<div class="form-field__input"> <div class="form-field__input">
<button class="btn" type="submit">`) <button class="btn" type="submit">`)
//line views/admin.qtpl:41 //line admin/admin.qtpl:41
qw422016.E().S(lc.Get("admin.newuser_create")) qw422016.E().S(lc.Get("admin.newuser_create"))
//line views/admin.qtpl:41 //line admin/admin.qtpl:41
qw422016.N().S(`</button> qw422016.N().S(`</button>
<a class="btn btn_weak" href="/admin/users/">`) <a class="btn btn_weak" href="/admin/users/">`)
//line views/admin.qtpl:42 //line admin/admin.qtpl:42
qw422016.E().S(lc.Get("ui.cancel")) qw422016.E().S(lc.Get("ui.cancel"))
//line views/admin.qtpl:42 //line admin/admin.qtpl:42
qw422016.N().S(`</a> qw422016.N().S(`</a>
</div> </div>
</div> </div>
</form> </form>
</main> </main>
`) `)
//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) { 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) qw422016 := qt422016.AcquireWriter(qq422016)
//line views/admin.qtpl:47 //line admin/admin.qtpl:47
StreamAdminUserNew(qw422016, f, lc) StreamAdminUserNew(qw422016, f, lc)
//line views/admin.qtpl:47 //line admin/admin.qtpl:47
qt422016.ReleaseWriter(qw422016) 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 { func AdminUserNew(f util.FormData, lc *l18n.Localizer) string {
//line views/admin.qtpl:47 //line admin/admin.qtpl:47
qb422016 := qt422016.AcquireByteBuffer() qb422016 := qt422016.AcquireByteBuffer()
//line views/admin.qtpl:47 //line admin/admin.qtpl:47
WriteAdminUserNew(qb422016, f, lc) WriteAdminUserNew(qb422016, f, lc)
//line views/admin.qtpl:47 //line admin/admin.qtpl:47
qs422016 := string(qb422016.B) qs422016 := string(qb422016.B)
//line views/admin.qtpl:47 //line admin/admin.qtpl:47
qt422016.ReleaseByteBuffer(qb422016) qt422016.ReleaseByteBuffer(qb422016)
//line views/admin.qtpl:47 //line admin/admin.qtpl:47
return qs422016 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) { 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(` qw422016.N().S(`
<main class="main-width form-wrap"> <main class="main-width form-wrap">
<h1> <h1>
<a href="/admin/users/">&larr;</a> <a href="/admin/users/">&larr;</a>
`) `)
//line views/admin.qtpl:53 //line admin/admin.qtpl:53
qw422016.E().S(u.Name) qw422016.E().S(u.Name)
//line views/admin.qtpl:53 //line admin/admin.qtpl:53
qw422016.N().S(` qw422016.N().S(`
</h1> </h1>
<h2>`) <h2>`)
//line views/admin.qtpl:56 //line admin/admin.qtpl:56
qw422016.E().S(lc.Get("admin.user_group_heading")) qw422016.E().S(lc.Get("admin.user_group_heading"))
//line views/admin.qtpl:56 //line admin/admin.qtpl:56
qw422016.N().S(`</h2> qw422016.N().S(`</h2>
`) `)
//line views/admin.qtpl:58 //line admin/admin.qtpl:58
if f.HasError() { if f.HasError() {
//line views/admin.qtpl:58 //line admin/admin.qtpl:58
qw422016.N().S(` qw422016.N().S(`
<div class="notice notice--error"> <div class="notice notice--error">
<strong>`) <strong>`)
//line views/admin.qtpl:60 //line admin/admin.qtpl:60
qw422016.E().S(lc.Get("ui.error")) qw422016.E().S(lc.Get("ui.error"))
//line views/admin.qtpl:60 //line admin/admin.qtpl:60
qw422016.N().S(`:</strong> qw422016.N().S(`:</strong>
`) `)
//line views/admin.qtpl:61 //line admin/admin.qtpl:61
qw422016.E().S(f.Error()) qw422016.E().S(f.Error())
//line views/admin.qtpl:61 //line admin/admin.qtpl:61
qw422016.N().S(` qw422016.N().S(`
</div> </div>
`) `)
//line views/admin.qtpl:63 //line admin/admin.qtpl:63
} }
//line views/admin.qtpl:63 //line admin/admin.qtpl:63
qw422016.N().S(` qw422016.N().S(`
<form action="" method="post"> <form action="" method="post">
<div class="form-field"> <div class="form-field">
<select id="group" name="group" aria-label="`) <select id="group" name="group" aria-label="`)
//line views/admin.qtpl:67 //line admin/admin.qtpl:67
qw422016.E().S(lc.Get("admin.users_group")) qw422016.E().S(lc.Get("admin.users_group"))
//line views/admin.qtpl:67 //line admin/admin.qtpl:67
qw422016.N().S(`"> qw422016.N().S(`">
<option`) <option`)
//line views/admin.qtpl:68 //line admin/admin.qtpl:68
if f.Get("group") == "anon" { if f.Get("group") == "anon" {
//line views/admin.qtpl:68 //line admin/admin.qtpl:68
qw422016.N().S(` selected`) qw422016.N().S(` selected`)
//line views/admin.qtpl:68 //line admin/admin.qtpl:68
} }
//line views/admin.qtpl:68 //line admin/admin.qtpl:68
qw422016.N().S(`>anon</option> qw422016.N().S(`>anon</option>
<option`) <option`)
//line views/admin.qtpl:69 //line admin/admin.qtpl:69
if f.Get("group") == "editor" { if f.Get("group") == "editor" {
//line views/admin.qtpl:69 //line admin/admin.qtpl:69
qw422016.N().S(` selected`) qw422016.N().S(` selected`)
//line views/admin.qtpl:69 //line admin/admin.qtpl:69
} }
//line views/admin.qtpl:69 //line admin/admin.qtpl:69
qw422016.N().S(`>editor</option> qw422016.N().S(`>editor</option>
<option`) <option`)
//line views/admin.qtpl:70 //line admin/admin.qtpl:70
if f.Get("group") == "trusted" { if f.Get("group") == "trusted" {
//line views/admin.qtpl:70 //line admin/admin.qtpl:70
qw422016.N().S(` selected`) qw422016.N().S(` selected`)
//line views/admin.qtpl:70 //line admin/admin.qtpl:70
} }
//line views/admin.qtpl:70 //line admin/admin.qtpl:70
qw422016.N().S(`>trusted</option> qw422016.N().S(`>trusted</option>
<option`) <option`)
//line views/admin.qtpl:71 //line admin/admin.qtpl:71
if f.Get("group") == "moderator" { if f.Get("group") == "moderator" {
//line views/admin.qtpl:71 //line admin/admin.qtpl:71
qw422016.N().S(` selected`) qw422016.N().S(` selected`)
//line views/admin.qtpl:71 //line admin/admin.qtpl:71
} }
//line views/admin.qtpl:71 //line admin/admin.qtpl:71
qw422016.N().S(`>moderator</option> qw422016.N().S(`>moderator</option>
<option`) <option`)
//line views/admin.qtpl:72 //line admin/admin.qtpl:72
if f.Get("group") == "admin" { if f.Get("group") == "admin" {
//line views/admin.qtpl:72 //line admin/admin.qtpl:72
qw422016.N().S(` selected`) qw422016.N().S(` selected`)
//line views/admin.qtpl:72 //line admin/admin.qtpl:72
} }
//line views/admin.qtpl:72 //line admin/admin.qtpl:72
qw422016.N().S(`>admin</option> qw422016.N().S(`>admin</option>
</select> </select>
</div> </div>
<div class="form-field"> <div class="form-field">
<button class="btn" type="submit">`) <button class="btn" type="submit">`)
//line views/admin.qtpl:77 //line admin/admin.qtpl:77
qw422016.E().S(lc.Get("admin.user_update")) qw422016.E().S(lc.Get("admin.user_update"))
//line views/admin.qtpl:77 //line admin/admin.qtpl:77
qw422016.N().S(`</button> qw422016.N().S(`</button>
</div> </div>
</form> </form>
<h2>`) <h2>`)
//line views/admin.qtpl:81 //line admin/admin.qtpl:81
qw422016.E().S(lc.Get("admin.user_delete_heading")) qw422016.E().S(lc.Get("admin.user_delete_heading"))
//line views/admin.qtpl:81 //line admin/admin.qtpl:81
qw422016.N().S(`</h2> qw422016.N().S(`</h2>
<p>`) <p>`)
//line views/admin.qtpl:82 //line admin/admin.qtpl:82
qw422016.E().S(lc.Get("admin.user_delete_tip")) qw422016.E().S(lc.Get("admin.user_delete_tip"))
//line views/admin.qtpl:82 //line admin/admin.qtpl:82
qw422016.N().S(`</p> qw422016.N().S(`</p>
<a class="btn btn_destructive" href="/admin/users/`) <a class="btn btn_destructive" href="/admin/users/`)
//line views/admin.qtpl:83 //line admin/admin.qtpl:83
qw422016.N().U(u.Name) qw422016.N().U(u.Name)
//line views/admin.qtpl:83 //line admin/admin.qtpl:83
qw422016.N().S(`/delete">`) qw422016.N().S(`/delete">`)
//line views/admin.qtpl:83 //line admin/admin.qtpl:83
qw422016.E().S(lc.Get("admin.user_delete")) qw422016.E().S(lc.Get("admin.user_delete"))
//line views/admin.qtpl:83 //line admin/admin.qtpl:83
qw422016.N().S(`</a> qw422016.N().S(`</a>
</main> </main>
`) `)
//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) { 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) qw422016 := qt422016.AcquireWriter(qq422016)
//line views/admin.qtpl:85 //line admin/admin.qtpl:85
StreamAdminUserEdit(qw422016, u, f, lc) StreamAdminUserEdit(qw422016, u, f, lc)
//line views/admin.qtpl:85 //line admin/admin.qtpl:85
qt422016.ReleaseWriter(qw422016) 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 { 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() qb422016 := qt422016.AcquireByteBuffer()
//line views/admin.qtpl:85 //line admin/admin.qtpl:85
WriteAdminUserEdit(qb422016, u, f, lc) WriteAdminUserEdit(qb422016, u, f, lc)
//line views/admin.qtpl:85 //line admin/admin.qtpl:85
qs422016 := string(qb422016.B) qs422016 := string(qb422016.B)
//line views/admin.qtpl:85 //line admin/admin.qtpl:85
qt422016.ReleaseByteBuffer(qb422016) qt422016.ReleaseByteBuffer(qb422016)
//line views/admin.qtpl:85 //line admin/admin.qtpl:85
return qs422016 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) { 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(` qw422016.N().S(`
<main class="main-width form-wrap"> <main class="main-width form-wrap">
<h1>`) <h1>`)
//line views/admin.qtpl:89 //line admin/admin.qtpl:89
qw422016.E().S(lc.Get("admin.user_delete_heading")) qw422016.E().S(lc.Get("admin.user_delete_heading"))
//line views/admin.qtpl:89 //line admin/admin.qtpl:89
qw422016.N().S(`</h1> qw422016.N().S(`</h1>
`) `)
//line views/admin.qtpl:91 //line admin/admin.qtpl:91
if f.HasError() { if f.HasError() {
//line views/admin.qtpl:91 //line admin/admin.qtpl:91
qw422016.N().S(` qw422016.N().S(`
<div class="notice notice--error"> <div class="notice notice--error">
<strong>`) <strong>`)
//line views/admin.qtpl:93 //line admin/admin.qtpl:93
qw422016.E().S(lc.Get("ui.error")) qw422016.E().S(lc.Get("ui.error"))
//line views/admin.qtpl:93 //line admin/admin.qtpl:93
qw422016.N().S(`:</strong> qw422016.N().S(`:</strong>
`) `)
//line views/admin.qtpl:94 //line admin/admin.qtpl:94
qw422016.E().S(f.Error()) qw422016.E().S(f.Error())
//line views/admin.qtpl:94 //line admin/admin.qtpl:94
qw422016.N().S(` qw422016.N().S(`
</div> </div>
`) `)
//line views/admin.qtpl:96 //line admin/admin.qtpl:96
} }
//line views/admin.qtpl:96 //line admin/admin.qtpl:96
qw422016.N().S(` qw422016.N().S(`
<p>`) <p>`)
//line views/admin.qtpl:98 //line admin/admin.qtpl:98
qw422016.N().S(lc.Get("admin.user_delete_warn", &l18n.Replacements{"name": fmt.Sprintf("<strong>%s</strong>", u.Name)})) qw422016.N().S(lc.Get("admin.user_delete_warn", &l18n.Replacements{"name": fmt.Sprintf("<strong>%s</strong>", u.Name)}))
//line views/admin.qtpl:98 //line admin/admin.qtpl:98
qw422016.N().S(`</p> qw422016.N().S(`</p>
<form action="" method="post"> <form action="" method="post">
<button class="btn btn_destructive" type="submit">`) <button class="btn btn_destructive" type="submit">`)
//line views/admin.qtpl:101 //line admin/admin.qtpl:101
qw422016.E().S(lc.Get("admin.user_delete")) qw422016.E().S(lc.Get("admin.user_delete"))
//line views/admin.qtpl:101 //line admin/admin.qtpl:101
qw422016.N().S(`</button> qw422016.N().S(`</button>
<a class="btn btn_weak" href="/admin/users/`) <a class="btn btn_weak" href="/admin/users/`)
//line views/admin.qtpl:102 //line admin/admin.qtpl:102
qw422016.N().U(u.Name) qw422016.N().U(u.Name)
//line views/admin.qtpl:102 //line admin/admin.qtpl:102
qw422016.N().S(`/edit">`) qw422016.N().S(`/edit">`)
//line views/admin.qtpl:102 //line admin/admin.qtpl:102
qw422016.E().S(lc.Get("ui.cancel")) qw422016.E().S(lc.Get("ui.cancel"))
//line views/admin.qtpl:102 //line admin/admin.qtpl:102
qw422016.N().S(`</a> qw422016.N().S(`</a>
</form> </form>
</main> </main>
`) `)
//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) { 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) qw422016 := qt422016.AcquireWriter(qq422016)
//line views/admin.qtpl:105 //line admin/admin.qtpl:105
StreamAdminUserDelete(qw422016, u, f, lc) StreamAdminUserDelete(qw422016, u, f, lc)
//line views/admin.qtpl:105 //line admin/admin.qtpl:105
qt422016.ReleaseWriter(qw422016) 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 { 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() qb422016 := qt422016.AcquireByteBuffer()
//line views/admin.qtpl:105 //line admin/admin.qtpl:105
WriteAdminUserDelete(qb422016, u, f, lc) WriteAdminUserDelete(qb422016, u, f, lc)
//line views/admin.qtpl:105 //line admin/admin.qtpl:105
qs422016 := string(qb422016.B) qs422016 := string(qb422016.B)
//line views/admin.qtpl:105 //line admin/admin.qtpl:105
qt422016.ReleaseByteBuffer(qb422016) qt422016.ReleaseByteBuffer(qb422016)
//line views/admin.qtpl:105 //line admin/admin.qtpl:105
return qs422016 return qs422016
//line views/admin.qtpl:105 //line admin/admin.qtpl:105
} }

View File

@ -144,11 +144,11 @@ Telegram auth widget was requested by Yogurt. As you can see, we don't offer use
{% endfunc %} {% endfunc %}
{% code {% code
var userListL10n = map[string]l10nEntry{ var userListL10n = map[string]L10nEntry{
"heading": en("List of users").ru("Список пользователей"), "heading": En("List of users").Ru("Список пользователей"),
"administrators": en("Administrators").ru("Администраторы"), "administrators": En("Administrators").Ru("Администраторы"),
"moderators": en("Moderators").ru("Модераторы"), "moderators": En("Moderators").Ru("Модераторы"),
"editors": en("Editors").ru("Редакторы"), "editors": En("Editors").Ru("Редакторы"),
} }
%} %}
@ -156,7 +156,7 @@ var userListL10n = map[string]l10nEntry{
<main class="main-width user-list"> <main class="main-width user-list">
{% code {% code
var get = func(key string) string { var get = func(key string) string {
return userListL10n[key].get(lc.Locale) return userListL10n[key].Get(lc.Locale)
} }
var ( var (

File diff suppressed because it is too large Load Diff

22
auth/get_rid_of_it.go Normal file
View File

@ -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
}

View File

@ -1,4 +1,4 @@
package web package auth
import ( import (
"errors" "errors"
@ -16,10 +16,9 @@ import (
"github.com/bouncepaw/mycorrhiza/l18n" "github.com/bouncepaw/mycorrhiza/l18n"
"github.com/bouncepaw/mycorrhiza/user" "github.com/bouncepaw/mycorrhiza/user"
"github.com/bouncepaw/mycorrhiza/util" "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("/user-list", handlerUserList)
r.HandleFunc("/lock", handlerLock) r.HandleFunc("/lock", handlerLock)
// The check below saves a lot of extra checks and lines of codes in other places in this file. // 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) lc := l18n.FromRequest(rq)
w.Header().Set("Content-Type", mime.TypeByExtension(".html")) w.Header().Set("Content-Type", mime.TypeByExtension(".html"))
w.WriteHeader(http.StatusOK) 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) { 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). // 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 { if rq.Method == http.MethodGet {
_, _ = io.WriteString( _, _ = io.WriteString(
w, w,
views.Base( viewutil.Base(
viewutil.MetaFrom(w, rq), viewutil.MetaFrom(w, rq),
lc.Get("auth.register_title"), lc.Get("auth.register_title"),
views.Register(rq), Register(rq),
), ),
) )
return return
@ -74,7 +73,7 @@ func handlerRegister(w http.ResponseWriter, rq *http.Request) {
w.WriteHeader(http.StatusBadRequest) w.WriteHeader(http.StatusBadRequest)
_, _ = io.WriteString( _, _ = io.WriteString(
w, w,
views.Base( viewutil.Base(
viewutil.MetaFrom(w, rq), viewutil.MetaFrom(w, rq),
lc.Get("auth.register_title"), lc.Get("auth.register_title"),
fmt.Sprintf( fmt.Sprintf(
@ -112,7 +111,7 @@ func handlerLogout(w http.ResponseWriter, rq *http.Request) {
} }
_, _ = io.WriteString( _, _ = io.WriteString(
w, 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 { } else if rq.Method == http.MethodPost {
user.LogoutFromRequest(w, rq) user.LogoutFromRequest(w, rq)
@ -128,10 +127,10 @@ func handlerLogin(w http.ResponseWriter, rq *http.Request) {
w.WriteHeader(http.StatusOK) w.WriteHeader(http.StatusOK)
_, _ = io.WriteString( _, _ = io.WriteString(
w, w,
views.Base( viewutil.Base(
viewutil.MetaFrom(w, rq), viewutil.MetaFrom(w, rq),
lc.Get("auth.login_title"), lc.Get("auth.login_title"),
views.Login(lc), Login(lc),
), ),
) )
} else if rq.Method == http.MethodPost { } else if rq.Method == http.MethodPost {
@ -143,7 +142,7 @@ func handlerLogin(w http.ResponseWriter, rq *http.Request) {
if err != nil { if err != nil {
w.Header().Set("Content-Type", "text/html;charset=utf-8") w.Header().Set("Content-Type", "text/html;charset=utf-8")
w.WriteHeader(http.StatusInternalServerError) 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 return
} }
http.Redirect(w, rq, "/", http.StatusSeeOther) http.Redirect(w, rq, "/", http.StatusSeeOther)
@ -181,7 +180,7 @@ func handlerTelegramLogin(w http.ResponseWriter, rq *http.Request) {
w.WriteHeader(http.StatusBadRequest) w.WriteHeader(http.StatusBadRequest)
_, _ = io.WriteString( _, _ = io.WriteString(
w, w,
views.Base( viewutil.Base(
viewutil.MetaFrom(w, rq), viewutil.MetaFrom(w, rq),
lc.Get("ui.error"), lc.Get("ui.error"),
fmt.Sprintf( fmt.Sprintf(
@ -201,7 +200,7 @@ func handlerTelegramLogin(w http.ResponseWriter, rq *http.Request) {
w.WriteHeader(http.StatusBadRequest) w.WriteHeader(http.StatusBadRequest)
_, _ = io.WriteString( _, _ = io.WriteString(
w, w,
views.Base( viewutil.Base(
viewutil.MetaFrom(w, rq), viewutil.MetaFrom(w, rq),
"Error", "Error",
fmt.Sprintf( fmt.Sprintf(

View File

@ -1,50 +1,50 @@
// Code generated by qtc from "mutators.qtpl". DO NOT EDIT. // Code generated by qtc from "mutators.qtpl". DO NOT EDIT.
// See https://github.com/valyala/quicktemplate for details. // See https://github.com/valyala/quicktemplate for details.
//line views/mutators.qtpl:1 //line hypview/mutators.qtpl:1
package views package hypview
//line views/mutators.qtpl:1 //line hypview/mutators.qtpl:1
import "fmt" import "fmt"
//line views/mutators.qtpl:2 //line hypview/mutators.qtpl:2
import "net/http" import "net/http"
//line views/mutators.qtpl:4 //line hypview/mutators.qtpl:4
import "github.com/bouncepaw/mycorrhiza/cfg" import "github.com/bouncepaw/mycorrhiza/cfg"
//line views/mutators.qtpl:5 //line hypview/mutators.qtpl:5
import "github.com/bouncepaw/mycorrhiza/l18n" import "github.com/bouncepaw/mycorrhiza/l18n"
//line views/mutators.qtpl:6 //line hypview/mutators.qtpl:6
import "github.com/bouncepaw/mycorrhiza/user" import "github.com/bouncepaw/mycorrhiza/user"
//line views/mutators.qtpl:8 //line hypview/mutators.qtpl:8
import ( import (
qtio422016 "io" qtio422016 "io"
qt422016 "github.com/valyala/quicktemplate" qt422016 "github.com/valyala/quicktemplate"
) )
//line views/mutators.qtpl:8 //line hypview/mutators.qtpl:8
var ( var (
_ = qtio422016.Copy _ = qtio422016.Copy
_ = qt422016.AcquireByteBuffer _ = qt422016.AcquireByteBuffer
) )
//line views/mutators.qtpl:8 //line hypview/mutators.qtpl:8
func StreamToolbar(qw422016 *qt422016.Writer, u *user.User, lc *l18n.Localizer) { func StreamToolbar(qw422016 *qt422016.Writer, u *user.User, lc *l18n.Localizer) {
//line views/mutators.qtpl:8 //line hypview/mutators.qtpl:8
qw422016.N().S(` qw422016.N().S(`
<aside class="edit-toolbar markup-toolbar layout-card"> <aside class="edit-toolbar markup-toolbar layout-card">
<h2 class="edit-toolbar__title layout-card__title">`) <h2 class="edit-toolbar__title layout-card__title">`)
//line views/mutators.qtpl:10 //line hypview/mutators.qtpl:10
qw422016.E().S(lc.Get("edit.markup")) qw422016.E().S(lc.Get("edit.markup"))
//line views/mutators.qtpl:10 //line hypview/mutators.qtpl:10
qw422016.N().S(`</h2> qw422016.N().S(`</h2>
<section class="edit-toolbar__buttons"> <section class="edit-toolbar__buttons">
`) `)
//line views/mutators.qtpl:12 //line hypview/mutators.qtpl:12
for _, el := range []struct { for _, el := range []struct {
class string class string
display string display string
@ -70,40 +70,40 @@ func StreamToolbar(qw422016 *qt422016.Writer, u *user.User, lc *l18n.Localizer)
{"bulletedlist", "* " + lc.Get("edit.bullets")}, {"bulletedlist", "* " + lc.Get("edit.bullets")},
{"numberedlist", "*. " + lc.Get("edit.numbers")}, {"numberedlist", "*. " + lc.Get("edit.numbers")},
} { } {
//line views/mutators.qtpl:36 //line hypview/mutators.qtpl:36
qw422016.N().S(` qw422016.N().S(`
<button class="btn edit-toolbar__btn edit-toolbar__`) <button class="btn edit-toolbar__btn edit-toolbar__`)
//line views/mutators.qtpl:37 //line hypview/mutators.qtpl:37
qw422016.E().S(el.class) qw422016.E().S(el.class)
//line views/mutators.qtpl:37 //line hypview/mutators.qtpl:37
qw422016.N().S(`"> qw422016.N().S(`">
`) `)
//line views/mutators.qtpl:38 //line hypview/mutators.qtpl:38
qw422016.N().S(el.display) qw422016.N().S(el.display)
//line views/mutators.qtpl:38 //line hypview/mutators.qtpl:38
qw422016.N().S(` qw422016.N().S(`
</button> </button>
`) `)
//line views/mutators.qtpl:40 //line hypview/mutators.qtpl:40
} }
//line views/mutators.qtpl:40 //line hypview/mutators.qtpl:40
qw422016.N().S(` qw422016.N().S(`
</section> </section>
<p class="edit-toolbar__ad">`) <p class="edit-toolbar__ad">`)
//line views/mutators.qtpl:42 //line hypview/mutators.qtpl:42
qw422016.N().S(lc.Get("edit.help", &l18n.Replacements{"link": fmt.Sprintf("<a href=\"/help/en/mycomarkup\" target=\"_blank\" class=\"shy-link\">%s</a>", lc.Get("edit.help_link"))})) qw422016.N().S(lc.Get("edit.help", &l18n.Replacements{"link": fmt.Sprintf("<a href=\"/help/en/mycomarkup\" target=\"_blank\" class=\"shy-link\">%s</a>", lc.Get("edit.help_link"))}))
//line views/mutators.qtpl:42 //line hypview/mutators.qtpl:42
qw422016.N().S(`</p> qw422016.N().S(`</p>
</aside> </aside>
<aside class="edit-toolbar action-toolbar layout-card"> <aside class="edit-toolbar action-toolbar layout-card">
<h2 class="edit-toolbar__title layout-card__title">`) <h2 class="edit-toolbar__title layout-card__title">`)
//line views/mutators.qtpl:45 //line hypview/mutators.qtpl:45
qw422016.E().S(lc.Get("edit.actions")) qw422016.E().S(lc.Get("edit.actions"))
//line views/mutators.qtpl:45 //line hypview/mutators.qtpl:45
qw422016.N().S(`</h2> qw422016.N().S(`</h2>
<section class="edit-toolbar__buttons"> <section class="edit-toolbar__buttons">
`) `)
//line views/mutators.qtpl:47 //line hypview/mutators.qtpl:47
for _, el := range []struct { for _, el := range []struct {
class string class string
display string display string
@ -111,342 +111,342 @@ func StreamToolbar(qw422016 *qt422016.Writer, u *user.User, lc *l18n.Localizer)
{"date", lc.Get("edit.date")}, {"date", lc.Get("edit.date")},
{"time", lc.Get("edit.time")}, {"time", lc.Get("edit.time")},
} { } {
//line views/mutators.qtpl:53 //line hypview/mutators.qtpl:53
qw422016.N().S(` qw422016.N().S(`
<button class="btn edit-toolbar__btn edit-toolbar__`) <button class="btn edit-toolbar__btn edit-toolbar__`)
//line views/mutators.qtpl:54 //line hypview/mutators.qtpl:54
qw422016.E().S(el.class) qw422016.E().S(el.class)
//line views/mutators.qtpl:54 //line hypview/mutators.qtpl:54
qw422016.N().S(`"> qw422016.N().S(`">
`) `)
//line views/mutators.qtpl:55 //line hypview/mutators.qtpl:55
qw422016.N().S(el.display) qw422016.N().S(el.display)
//line views/mutators.qtpl:55 //line hypview/mutators.qtpl:55
qw422016.N().S(` qw422016.N().S(`
</button> </button>
`) `)
//line views/mutators.qtpl:57 //line hypview/mutators.qtpl:57
} }
//line views/mutators.qtpl:57 //line hypview/mutators.qtpl:57
qw422016.N().S(` qw422016.N().S(`
`) `)
//line views/mutators.qtpl:58 //line hypview/mutators.qtpl:58
if u.Group != "anon" { if u.Group != "anon" {
//line views/mutators.qtpl:58 //line hypview/mutators.qtpl:58
qw422016.N().S(` qw422016.N().S(`
<button class="btn edit-toolbar__btn edit-toolbar__user-link"> <button class="btn edit-toolbar__btn edit-toolbar__user-link">
`) `)
//line views/mutators.qtpl:60 //line hypview/mutators.qtpl:60
qw422016.E().S(lc.Get("edit.selflink")) qw422016.E().S(lc.Get("edit.selflink"))
//line views/mutators.qtpl:60 //line hypview/mutators.qtpl:60
qw422016.N().S(` qw422016.N().S(`
</button> </button>
`) `)
//line views/mutators.qtpl:62 //line hypview/mutators.qtpl:62
} }
//line views/mutators.qtpl:62 //line hypview/mutators.qtpl:62
qw422016.N().S(` qw422016.N().S(`
</section> </section>
</aside> </aside>
<script src="/static/toolbar.js"></script> <script src="/static/toolbar.js"></script>
`) `)
//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) { 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) qw422016 := qt422016.AcquireWriter(qq422016)
//line views/mutators.qtpl:66 //line hypview/mutators.qtpl:66
StreamToolbar(qw422016, u, lc) StreamToolbar(qw422016, u, lc)
//line views/mutators.qtpl:66 //line hypview/mutators.qtpl:66
qt422016.ReleaseWriter(qw422016) 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 { func Toolbar(u *user.User, lc *l18n.Localizer) string {
//line views/mutators.qtpl:66 //line hypview/mutators.qtpl:66
qb422016 := qt422016.AcquireByteBuffer() qb422016 := qt422016.AcquireByteBuffer()
//line views/mutators.qtpl:66 //line hypview/mutators.qtpl:66
WriteToolbar(qb422016, u, lc) WriteToolbar(qb422016, u, lc)
//line views/mutators.qtpl:66 //line hypview/mutators.qtpl:66
qs422016 := string(qb422016.B) qs422016 := string(qb422016.B)
//line views/mutators.qtpl:66 //line hypview/mutators.qtpl:66
qt422016.ReleaseByteBuffer(qb422016) qt422016.ReleaseByteBuffer(qb422016)
//line views/mutators.qtpl:66 //line hypview/mutators.qtpl:66
return qs422016 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) { 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(` qw422016.N().S(`
`) `)
//line views/mutators.qtpl:70 //line hypview/mutators.qtpl:70
lc := l18n.FromRequest(rq) lc := l18n.FromRequest(rq)
//line views/mutators.qtpl:71 //line hypview/mutators.qtpl:71
qw422016.N().S(` qw422016.N().S(`
<main class="main-width edit edit_no-preview"> <main class="main-width edit edit_no-preview">
<form method="post" class="edit-form" <form method="post" class="edit-form"
action="/upload-text/`) action="/upload-text/`)
//line views/mutators.qtpl:74 //line hypview/mutators.qtpl:74
qw422016.E().S(hyphaName) qw422016.E().S(hyphaName)
//line views/mutators.qtpl:74 //line hypview/mutators.qtpl:74
qw422016.N().S(`"> qw422016.N().S(`">
<h1 class="edit__title">`) <h1 class="edit__title">`)
//line views/mutators.qtpl:75 //line hypview/mutators.qtpl:75
qw422016.N().S(fmt.Sprintf(lc.Get("edit.title"), beautifulLink(hyphaName))) qw422016.N().S(fmt.Sprintf(lc.Get("edit.title"), beautifulLink(hyphaName)))
//line views/mutators.qtpl:75 //line hypview/mutators.qtpl:75
qw422016.N().S(`</h1> qw422016.N().S(`</h1>
`) `)
//line views/mutators.qtpl:76 //line hypview/mutators.qtpl:76
qw422016.N().S(warning) qw422016.N().S(warning)
//line views/mutators.qtpl:76 //line hypview/mutators.qtpl:76
qw422016.N().S(` qw422016.N().S(`
<textarea name="text" class="edit-form__textarea" autofocus>`) <textarea name="text" class="edit-form__textarea" autofocus>`)
//line views/mutators.qtpl:77 //line hypview/mutators.qtpl:77
qw422016.E().S(textAreaFill) qw422016.E().S(textAreaFill)
//line views/mutators.qtpl:77 //line hypview/mutators.qtpl:77
qw422016.N().S(`</textarea> qw422016.N().S(`</textarea>
<p class="edit-form__message-zone"> <p class="edit-form__message-zone">
<input id="text" type="text" name="message" class="edit-form__message" placeholder="`) <input id="text" type="text" name="message" class="edit-form__message" placeholder="`)
//line views/mutators.qtpl:79 //line hypview/mutators.qtpl:79
qw422016.E().S(lc.Get("edit.tag")) qw422016.E().S(lc.Get("edit.tag"))
//line views/mutators.qtpl:79 //line hypview/mutators.qtpl:79
qw422016.N().S(`" aria-label="`) qw422016.N().S(`" aria-label="`)
//line views/mutators.qtpl:79 //line hypview/mutators.qtpl:79
qw422016.E().S(lc.Get("edit.tag")) qw422016.E().S(lc.Get("edit.tag"))
//line views/mutators.qtpl:79 //line hypview/mutators.qtpl:79
qw422016.N().S(`"> qw422016.N().S(`">
</p> </p>
<p class="edit-form__buttons"> <p class="edit-form__buttons">
<button type="submit" name="action" class="btn btn_accent edit-form__save" value="Save">`) <button type="submit" name="action" class="btn btn_accent edit-form__save" value="Save">`)
//line views/mutators.qtpl:82 //line hypview/mutators.qtpl:82
qw422016.E().S(lc.Get("edit.save")) qw422016.E().S(lc.Get("edit.save"))
//line views/mutators.qtpl:82 //line hypview/mutators.qtpl:82
qw422016.N().S(`</button> qw422016.N().S(`</button>
<button type="submit" name="action" class="btn edit-form__preview" value="Preview">`) <button type="submit" name="action" class="btn edit-form__preview" value="Preview">`)
//line views/mutators.qtpl:83 //line hypview/mutators.qtpl:83
qw422016.E().S(lc.Get("edit.preview")) qw422016.E().S(lc.Get("edit.preview"))
//line views/mutators.qtpl:83 //line hypview/mutators.qtpl:83
qw422016.N().S(`</button> qw422016.N().S(`</button>
<a href="/hypha/`) <a href="/hypha/`)
//line views/mutators.qtpl:84 //line hypview/mutators.qtpl:84
qw422016.E().S(hyphaName) qw422016.E().S(hyphaName)
//line views/mutators.qtpl:84 //line hypview/mutators.qtpl:84
qw422016.N().S(`" class="btn btn_weak">`) qw422016.N().S(`" class="btn btn_weak">`)
//line views/mutators.qtpl:84 //line hypview/mutators.qtpl:84
qw422016.E().S(lc.Get("ui.cancel")) qw422016.E().S(lc.Get("ui.cancel"))
//line views/mutators.qtpl:84 //line hypview/mutators.qtpl:84
qw422016.N().S(`</a> qw422016.N().S(`</a>
</p> </p>
</form> </form>
</main> </main>
`) `)
//line views/mutators.qtpl:88 //line hypview/mutators.qtpl:88
qw422016.N().S(Toolbar(user.FromRequest(rq), lc)) qw422016.N().S(Toolbar(user.FromRequest(rq), lc))
//line views/mutators.qtpl:88 //line hypview/mutators.qtpl:88
qw422016.N().S(` qw422016.N().S(`
`) `)
//line views/mutators.qtpl:89 //line hypview/mutators.qtpl:89
streameditScripts(qw422016) streameditScripts(qw422016)
//line views/mutators.qtpl:89 //line hypview/mutators.qtpl:89
qw422016.N().S(` 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) { 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) qw422016 := qt422016.AcquireWriter(qq422016)
//line views/mutators.qtpl:90 //line hypview/mutators.qtpl:90
StreamEditor(qw422016, rq, hyphaName, textAreaFill, warning) StreamEditor(qw422016, rq, hyphaName, textAreaFill, warning)
//line views/mutators.qtpl:90 //line hypview/mutators.qtpl:90
qt422016.ReleaseWriter(qw422016) 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 { func Editor(rq *http.Request, hyphaName, textAreaFill, warning string) string {
//line views/mutators.qtpl:90 //line hypview/mutators.qtpl:90
qb422016 := qt422016.AcquireByteBuffer() qb422016 := qt422016.AcquireByteBuffer()
//line views/mutators.qtpl:90 //line hypview/mutators.qtpl:90
WriteEditor(qb422016, rq, hyphaName, textAreaFill, warning) WriteEditor(qb422016, rq, hyphaName, textAreaFill, warning)
//line views/mutators.qtpl:90 //line hypview/mutators.qtpl:90
qs422016 := string(qb422016.B) qs422016 := string(qb422016.B)
//line views/mutators.qtpl:90 //line hypview/mutators.qtpl:90
qt422016.ReleaseByteBuffer(qb422016) qt422016.ReleaseByteBuffer(qb422016)
//line views/mutators.qtpl:90 //line hypview/mutators.qtpl:90
return qs422016 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) { 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(` qw422016.N().S(`
`) `)
//line views/mutators.qtpl:94 //line hypview/mutators.qtpl:94
lc := l18n.FromRequest(rq) lc := l18n.FromRequest(rq)
//line views/mutators.qtpl:95 //line hypview/mutators.qtpl:95
qw422016.N().S(` qw422016.N().S(`
<main class="main-width edit edit_with-preview"> <main class="main-width edit edit_with-preview">
<form method="post" class="edit-form" <form method="post" class="edit-form"
action="/upload-text/`) action="/upload-text/`)
//line views/mutators.qtpl:98 //line hypview/mutators.qtpl:98
qw422016.E().S(hyphaName) qw422016.E().S(hyphaName)
//line views/mutators.qtpl:98 //line hypview/mutators.qtpl:98
qw422016.N().S(`"> qw422016.N().S(`">
<h1 class="edit__title">`) <h1 class="edit__title">`)
//line views/mutators.qtpl:99 //line hypview/mutators.qtpl:99
qw422016.N().S(fmt.Sprintf(lc.Get("edit.title"), beautifulLink(hyphaName))) qw422016.N().S(fmt.Sprintf(lc.Get("edit.title"), beautifulLink(hyphaName)))
//line views/mutators.qtpl:99 //line hypview/mutators.qtpl:99
qw422016.N().S(`</h1> qw422016.N().S(`</h1>
`) `)
//line views/mutators.qtpl:100 //line hypview/mutators.qtpl:100
qw422016.N().S(warning) qw422016.N().S(warning)
//line views/mutators.qtpl:100 //line hypview/mutators.qtpl:100
qw422016.N().S(` qw422016.N().S(`
<textarea name="text" class="edit-form__textarea" autofocus>`) <textarea name="text" class="edit-form__textarea" autofocus>`)
//line views/mutators.qtpl:101 //line hypview/mutators.qtpl:101
qw422016.E().S(textAreaFill) qw422016.E().S(textAreaFill)
//line views/mutators.qtpl:101 //line hypview/mutators.qtpl:101
qw422016.N().S(`</textarea> qw422016.N().S(`</textarea>
<p class="edit-form__message-zone"> <p class="edit-form__message-zone">
<input id="text" type="text" name="message" class="edit-form__message" placeholder="`) <input id="text" type="text" name="message" class="edit-form__message" placeholder="`)
//line views/mutators.qtpl:103 //line hypview/mutators.qtpl:103
qw422016.E().S(lc.Get("edit.tag")) qw422016.E().S(lc.Get("edit.tag"))
//line views/mutators.qtpl:103 //line hypview/mutators.qtpl:103
qw422016.N().S(`" aria-label="`) qw422016.N().S(`" aria-label="`)
//line views/mutators.qtpl:103 //line hypview/mutators.qtpl:103
qw422016.E().S(lc.Get("edit.tag")) qw422016.E().S(lc.Get("edit.tag"))
//line views/mutators.qtpl:103 //line hypview/mutators.qtpl:103
qw422016.N().S(`"> qw422016.N().S(`">
</p> </p>
<p class="edit-form__buttons"> <p class="edit-form__buttons">
<button type="submit" name="action" class="btn btn_accent edit-form__save" value="Save">`) <button type="submit" name="action" class="btn btn_accent edit-form__save" value="Save">`)
//line views/mutators.qtpl:106 //line hypview/mutators.qtpl:106
qw422016.E().S(lc.Get("edit.save")) qw422016.E().S(lc.Get("edit.save"))
//line views/mutators.qtpl:106 //line hypview/mutators.qtpl:106
qw422016.N().S(`</button> qw422016.N().S(`</button>
<button type="submit" name="action" class="btn edit-form__preview" value="Preview">`) <button type="submit" name="action" class="btn edit-form__preview" value="Preview">`)
//line views/mutators.qtpl:107 //line hypview/mutators.qtpl:107
qw422016.E().S(lc.Get("edit.preview")) qw422016.E().S(lc.Get("edit.preview"))
//line views/mutators.qtpl:107 //line hypview/mutators.qtpl:107
qw422016.N().S(`</button> qw422016.N().S(`</button>
<a href="/hypha/`) <a href="/hypha/`)
//line views/mutators.qtpl:108 //line hypview/mutators.qtpl:108
qw422016.E().S(hyphaName) qw422016.E().S(hyphaName)
//line views/mutators.qtpl:108 //line hypview/mutators.qtpl:108
qw422016.N().S(`" class="btn btn_weak">`) qw422016.N().S(`" class="btn btn_weak">`)
//line views/mutators.qtpl:108 //line hypview/mutators.qtpl:108
qw422016.E().S(lc.Get("ui.cancel")) qw422016.E().S(lc.Get("ui.cancel"))
//line views/mutators.qtpl:108 //line hypview/mutators.qtpl:108
qw422016.N().S(`</a> qw422016.N().S(`</a>
</p> </p>
</form> </form>
<p class="warning">`) <p class="warning">`)
//line views/mutators.qtpl:111 //line hypview/mutators.qtpl:111
qw422016.E().S(lc.Get("edit.preview_tip")) qw422016.E().S(lc.Get("edit.preview_tip"))
//line views/mutators.qtpl:111 //line hypview/mutators.qtpl:111
qw422016.N().S(`</p> qw422016.N().S(`</p>
<article class="edit__preview">`) <article class="edit__preview">`)
//line views/mutators.qtpl:112 //line hypview/mutators.qtpl:112
qw422016.N().S(renderedPage) qw422016.N().S(renderedPage)
//line views/mutators.qtpl:112 //line hypview/mutators.qtpl:112
qw422016.N().S(`</article> qw422016.N().S(`</article>
</main> </main>
`) `)
//line views/mutators.qtpl:114 //line hypview/mutators.qtpl:114
qw422016.N().S(Toolbar(user.FromRequest(rq), lc)) qw422016.N().S(Toolbar(user.FromRequest(rq), lc))
//line views/mutators.qtpl:114 //line hypview/mutators.qtpl:114
qw422016.N().S(` qw422016.N().S(`
`) `)
//line views/mutators.qtpl:115 //line hypview/mutators.qtpl:115
streameditScripts(qw422016) streameditScripts(qw422016)
//line views/mutators.qtpl:115 //line hypview/mutators.qtpl:115
qw422016.N().S(` 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) { 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) qw422016 := qt422016.AcquireWriter(qq422016)
//line views/mutators.qtpl:116 //line hypview/mutators.qtpl:116
StreamPreview(qw422016, rq, hyphaName, textAreaFill, message, warning, renderedPage) StreamPreview(qw422016, rq, hyphaName, textAreaFill, message, warning, renderedPage)
//line views/mutators.qtpl:116 //line hypview/mutators.qtpl:116
qt422016.ReleaseWriter(qw422016) 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 { 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() qb422016 := qt422016.AcquireByteBuffer()
//line views/mutators.qtpl:116 //line hypview/mutators.qtpl:116
WritePreview(qb422016, rq, hyphaName, textAreaFill, message, warning, renderedPage) WritePreview(qb422016, rq, hyphaName, textAreaFill, message, warning, renderedPage)
//line views/mutators.qtpl:116 //line hypview/mutators.qtpl:116
qs422016 := string(qb422016.B) qs422016 := string(qb422016.B)
//line views/mutators.qtpl:116 //line hypview/mutators.qtpl:116
qt422016.ReleaseByteBuffer(qb422016) qt422016.ReleaseByteBuffer(qb422016)
//line views/mutators.qtpl:116 //line hypview/mutators.qtpl:116
return qs422016 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) { func streameditScripts(qw422016 *qt422016.Writer) {
//line views/mutators.qtpl:118 //line hypview/mutators.qtpl:118
qw422016.N().S(` qw422016.N().S(`
<script src="/static/editor.js"></script> <script src="/static/editor.js"></script>
`) `)
//line views/mutators.qtpl:120 //line hypview/mutators.qtpl:120
for _, scriptPath := range cfg.EditScripts { for _, scriptPath := range cfg.EditScripts {
//line views/mutators.qtpl:120 //line hypview/mutators.qtpl:120
qw422016.N().S(` qw422016.N().S(`
<script src="`) <script src="`)
//line views/mutators.qtpl:121 //line hypview/mutators.qtpl:121
qw422016.E().S(scriptPath) qw422016.E().S(scriptPath)
//line views/mutators.qtpl:121 //line hypview/mutators.qtpl:121
qw422016.N().S(`"></script> qw422016.N().S(`"></script>
`) `)
//line views/mutators.qtpl:122 //line hypview/mutators.qtpl:122
} }
//line views/mutators.qtpl:122 //line hypview/mutators.qtpl:122
qw422016.N().S(` 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) { func writeeditScripts(qq422016 qtio422016.Writer) {
//line views/mutators.qtpl:123 //line hypview/mutators.qtpl:123
qw422016 := qt422016.AcquireWriter(qq422016) qw422016 := qt422016.AcquireWriter(qq422016)
//line views/mutators.qtpl:123 //line hypview/mutators.qtpl:123
streameditScripts(qw422016) streameditScripts(qw422016)
//line views/mutators.qtpl:123 //line hypview/mutators.qtpl:123
qt422016.ReleaseWriter(qw422016) 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 { func editScripts() string {
//line views/mutators.qtpl:123 //line hypview/mutators.qtpl:123
qb422016 := qt422016.AcquireByteBuffer() qb422016 := qt422016.AcquireByteBuffer()
//line views/mutators.qtpl:123 //line hypview/mutators.qtpl:123
writeeditScripts(qb422016) writeeditScripts(qb422016)
//line views/mutators.qtpl:123 //line hypview/mutators.qtpl:123
qs422016 := string(qb422016.B) qs422016 := string(qb422016.B)
//line views/mutators.qtpl:123 //line hypview/mutators.qtpl:123
qt422016.ReleaseByteBuffer(qb422016) qt422016.ReleaseByteBuffer(qb422016)
//line views/mutators.qtpl:123 //line hypview/mutators.qtpl:123
return qs422016 return qs422016
//line views/mutators.qtpl:123 //line hypview/mutators.qtpl:123
} }

View File

@ -1,289 +1,289 @@
// Code generated by qtc from "nav.qtpl". DO NOT EDIT. // Code generated by qtc from "nav.qtpl". DO NOT EDIT.
// See https://github.com/valyala/quicktemplate for details. // See https://github.com/valyala/quicktemplate for details.
//line views/nav.qtpl:1 //line hypview/nav.qtpl:1
package views package hypview
//line views/nav.qtpl:1 //line hypview/nav.qtpl:1
import "github.com/bouncepaw/mycorrhiza/backlinks" import "github.com/bouncepaw/mycorrhiza/backlinks"
//line views/nav.qtpl:2 //line hypview/nav.qtpl:2
import "github.com/bouncepaw/mycorrhiza/cfg" import "github.com/bouncepaw/mycorrhiza/cfg"
//line views/nav.qtpl:3 //line hypview/nav.qtpl:3
import "github.com/bouncepaw/mycorrhiza/hyphae" import "github.com/bouncepaw/mycorrhiza/hyphae"
//line views/nav.qtpl:4 //line hypview/nav.qtpl:4
import "github.com/bouncepaw/mycorrhiza/user" import "github.com/bouncepaw/mycorrhiza/user"
//line views/nav.qtpl:5 //line hypview/nav.qtpl:5
import "github.com/bouncepaw/mycorrhiza/util" import "github.com/bouncepaw/mycorrhiza/util"
//line views/nav.qtpl:6 //line hypview/nav.qtpl:6
import "github.com/bouncepaw/mycorrhiza/viewutil" import "github.com/bouncepaw/mycorrhiza/viewutil"
//line views/nav.qtpl:8 //line hypview/nav.qtpl:8
import ( import (
qtio422016 "io" qtio422016 "io"
qt422016 "github.com/valyala/quicktemplate" qt422016 "github.com/valyala/quicktemplate"
) )
//line views/nav.qtpl:8 //line hypview/nav.qtpl:8
var ( var (
_ = qtio422016.Copy _ = qtio422016.Copy
_ = qt422016.AcquireByteBuffer _ = 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) { 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(` qw422016.N().S(`
`) `)
//line views/nav.qtpl:9 //line hypview/nav.qtpl:9
flag := true flag := true
//line views/nav.qtpl:9 //line hypview/nav.qtpl:9
qw422016.N().S(` qw422016.N().S(`
`) `)
//line views/nav.qtpl:10 //line hypview/nav.qtpl:10
switch h.(type) { switch h.(type) {
//line views/nav.qtpl:11 //line hypview/nav.qtpl:11
case *hyphae.EmptyHypha: case *hyphae.EmptyHypha:
//line views/nav.qtpl:11 //line hypview/nav.qtpl:11
qw422016.N().S(` qw422016.N().S(`
`) `)
//line views/nav.qtpl:12 //line hypview/nav.qtpl:12
flag = !hasToExist flag = !hasToExist
//line views/nav.qtpl:12 //line hypview/nav.qtpl:12
qw422016.N().S(` 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(` qw422016.N().S(`
`) `)
//line views/nav.qtpl:14 //line hypview/nav.qtpl:14
if u.CanProceed(action) && flag { if u.CanProceed(action) && flag {
//line views/nav.qtpl:14 //line hypview/nav.qtpl:14
qw422016.N().S(` qw422016.N().S(`
<li class="hypha-info__entry hypha-info__entry_`) <li class="hypha-info__entry hypha-info__entry_`)
//line views/nav.qtpl:15 //line hypview/nav.qtpl:15
qw422016.E().S(action) qw422016.E().S(action)
//line views/nav.qtpl:15 //line hypview/nav.qtpl:15
qw422016.N().S(`"> qw422016.N().S(`">
<a class="hypha-info__link" href="/`) <a class="hypha-info__link" href="/`)
//line views/nav.qtpl:16 //line hypview/nav.qtpl:16
qw422016.E().S(action) qw422016.E().S(action)
//line views/nav.qtpl:16 //line hypview/nav.qtpl:16
qw422016.N().S(`/`) qw422016.N().S(`/`)
//line views/nav.qtpl:16 //line hypview/nav.qtpl:16
qw422016.E().S(h.CanonicalName()) qw422016.E().S(h.CanonicalName())
//line views/nav.qtpl:16 //line hypview/nav.qtpl:16
qw422016.N().S(`">`) qw422016.N().S(`">`)
//line views/nav.qtpl:16 //line hypview/nav.qtpl:16
qw422016.E().S(displayText) qw422016.E().S(displayText)
//line views/nav.qtpl:16 //line hypview/nav.qtpl:16
qw422016.N().S(`</a> qw422016.N().S(`</a>
</li> </li>
`) `)
//line views/nav.qtpl:18 //line hypview/nav.qtpl:18
} }
//line views/nav.qtpl:18 //line hypview/nav.qtpl:18
qw422016.N().S(` 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) { 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) qw422016 := qt422016.AcquireWriter(qq422016)
//line views/nav.qtpl:19 //line hypview/nav.qtpl:19
streamhyphaInfoEntry(qw422016, h, u, action, hasToExist, displayText) streamhyphaInfoEntry(qw422016, h, u, action, hasToExist, displayText)
//line views/nav.qtpl:19 //line hypview/nav.qtpl:19
qt422016.ReleaseWriter(qw422016) 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 { 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() qb422016 := qt422016.AcquireByteBuffer()
//line views/nav.qtpl:19 //line hypview/nav.qtpl:19
writehyphaInfoEntry(qb422016, h, u, action, hasToExist, displayText) writehyphaInfoEntry(qb422016, h, u, action, hasToExist, displayText)
//line views/nav.qtpl:19 //line hypview/nav.qtpl:19
qs422016 := string(qb422016.B) qs422016 := string(qb422016.B)
//line views/nav.qtpl:19 //line hypview/nav.qtpl:19
qt422016.ReleaseByteBuffer(qb422016) qt422016.ReleaseByteBuffer(qb422016)
//line views/nav.qtpl:19 //line hypview/nav.qtpl:19
return qs422016 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) { func streamhyphaInfo(qw422016 *qt422016.Writer, meta viewutil.Meta, h hyphae.Hypha) {
//line views/nav.qtpl:21 //line hypview/nav.qtpl:21
qw422016.N().S(` qw422016.N().S(`
`) `)
//line views/nav.qtpl:23 //line hypview/nav.qtpl:23
u := meta.U u := meta.U
lc := meta.Lc lc := meta.Lc
backs := backlinks.BacklinksCount(h) backs := backlinks.BacklinksCount(h)
//line views/nav.qtpl:26 //line hypview/nav.qtpl:26
qw422016.N().S(` qw422016.N().S(`
<nav class="hypha-info"> <nav class="hypha-info">
<ul class="hypha-info__list"> <ul class="hypha-info__list">
`) `)
//line views/nav.qtpl:29 //line hypview/nav.qtpl:29
streamhyphaInfoEntry(qw422016, h, u, "history", false, lc.Get("ui.history_link")) streamhyphaInfoEntry(qw422016, h, u, "history", false, lc.Get("ui.history_link"))
//line views/nav.qtpl:29 //line hypview/nav.qtpl:29
qw422016.N().S(` qw422016.N().S(`
`) `)
//line views/nav.qtpl:30 //line hypview/nav.qtpl:30
streamhyphaInfoEntry(qw422016, h, u, "rename", true, lc.Get("ui.rename_link")) streamhyphaInfoEntry(qw422016, h, u, "rename", true, lc.Get("ui.rename_link"))
//line views/nav.qtpl:30 //line hypview/nav.qtpl:30
qw422016.N().S(` qw422016.N().S(`
`) `)
//line views/nav.qtpl:31 //line hypview/nav.qtpl:31
streamhyphaInfoEntry(qw422016, h, u, "delete", true, lc.Get("ui.delete_link")) streamhyphaInfoEntry(qw422016, h, u, "delete", true, lc.Get("ui.delete_link"))
//line views/nav.qtpl:31 //line hypview/nav.qtpl:31
qw422016.N().S(` qw422016.N().S(`
`) `)
//line views/nav.qtpl:32 //line hypview/nav.qtpl:32
streamhyphaInfoEntry(qw422016, h, u, "text", true, lc.Get("ui.text_link")) streamhyphaInfoEntry(qw422016, h, u, "text", true, lc.Get("ui.text_link"))
//line views/nav.qtpl:32 //line hypview/nav.qtpl:32
qw422016.N().S(` qw422016.N().S(`
`) `)
//line views/nav.qtpl:33 //line hypview/nav.qtpl:33
streamhyphaInfoEntry(qw422016, h, u, "media", true, lc.Get("ui.media_link")) streamhyphaInfoEntry(qw422016, h, u, "media", true, lc.Get("ui.media_link"))
//line views/nav.qtpl:33 //line hypview/nav.qtpl:33
qw422016.N().S(` qw422016.N().S(`
`) `)
//line views/nav.qtpl:34 //line hypview/nav.qtpl:34
streamhyphaInfoEntry(qw422016, h, u, "backlinks", false, lc.GetPlural("ui.backlinks_link", backs)) streamhyphaInfoEntry(qw422016, h, u, "backlinks", false, lc.GetPlural("ui.backlinks_link", backs))
//line views/nav.qtpl:34 //line hypview/nav.qtpl:34
qw422016.N().S(` qw422016.N().S(`
</ul> </ul>
</nav> </nav>
`) `)
//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) { 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) qw422016 := qt422016.AcquireWriter(qq422016)
//line views/nav.qtpl:37 //line hypview/nav.qtpl:37
streamhyphaInfo(qw422016, meta, h) streamhyphaInfo(qw422016, meta, h)
//line views/nav.qtpl:37 //line hypview/nav.qtpl:37
qt422016.ReleaseWriter(qw422016) 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 { func hyphaInfo(meta viewutil.Meta, h hyphae.Hypha) string {
//line views/nav.qtpl:37 //line hypview/nav.qtpl:37
qb422016 := qt422016.AcquireByteBuffer() qb422016 := qt422016.AcquireByteBuffer()
//line views/nav.qtpl:37 //line hypview/nav.qtpl:37
writehyphaInfo(qb422016, meta, h) writehyphaInfo(qb422016, meta, h)
//line views/nav.qtpl:37 //line hypview/nav.qtpl:37
qs422016 := string(qb422016.B) qs422016 := string(qb422016.B)
//line views/nav.qtpl:37 //line hypview/nav.qtpl:37
qt422016.ReleaseByteBuffer(qb422016) qt422016.ReleaseByteBuffer(qb422016)
//line views/nav.qtpl:37 //line hypview/nav.qtpl:37
return qs422016 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) { func streamcommonScripts(qw422016 *qt422016.Writer) {
//line views/nav.qtpl:39 //line hypview/nav.qtpl:39
qw422016.N().S(` qw422016.N().S(`
`) `)
//line views/nav.qtpl:40 //line hypview/nav.qtpl:40
for _, scriptPath := range cfg.CommonScripts { for _, scriptPath := range cfg.CommonScripts {
//line views/nav.qtpl:40 //line hypview/nav.qtpl:40
qw422016.N().S(` qw422016.N().S(`
<script src="`) <script src="`)
//line views/nav.qtpl:41 //line hypview/nav.qtpl:41
qw422016.E().S(scriptPath) qw422016.E().S(scriptPath)
//line views/nav.qtpl:41 //line hypview/nav.qtpl:41
qw422016.N().S(`"></script> qw422016.N().S(`"></script>
`) `)
//line views/nav.qtpl:42 //line hypview/nav.qtpl:42
} }
//line views/nav.qtpl:42 //line hypview/nav.qtpl:42
qw422016.N().S(` 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) { func writecommonScripts(qq422016 qtio422016.Writer) {
//line views/nav.qtpl:43 //line hypview/nav.qtpl:43
qw422016 := qt422016.AcquireWriter(qq422016) qw422016 := qt422016.AcquireWriter(qq422016)
//line views/nav.qtpl:43 //line hypview/nav.qtpl:43
streamcommonScripts(qw422016) streamcommonScripts(qw422016)
//line views/nav.qtpl:43 //line hypview/nav.qtpl:43
qt422016.ReleaseWriter(qw422016) 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 { func commonScripts() string {
//line views/nav.qtpl:43 //line hypview/nav.qtpl:43
qb422016 := qt422016.AcquireByteBuffer() qb422016 := qt422016.AcquireByteBuffer()
//line views/nav.qtpl:43 //line hypview/nav.qtpl:43
writecommonScripts(qb422016) writecommonScripts(qb422016)
//line views/nav.qtpl:43 //line hypview/nav.qtpl:43
qs422016 := string(qb422016.B) qs422016 := string(qb422016.B)
//line views/nav.qtpl:43 //line hypview/nav.qtpl:43
qt422016.ReleaseByteBuffer(qb422016) qt422016.ReleaseByteBuffer(qb422016)
//line views/nav.qtpl:43 //line hypview/nav.qtpl:43
return qs422016 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) { func streambeautifulLink(qw422016 *qt422016.Writer, hyphaName string) {
//line views/nav.qtpl:45 //line hypview/nav.qtpl:45
qw422016.N().S(`<a href="/hypha/`) qw422016.N().S(`<a href="/hypha/`)
//line views/nav.qtpl:45 //line hypview/nav.qtpl:45
qw422016.N().S(hyphaName) qw422016.N().S(hyphaName)
//line views/nav.qtpl:45 //line hypview/nav.qtpl:45
qw422016.N().S(`">`) qw422016.N().S(`">`)
//line views/nav.qtpl:45 //line hypview/nav.qtpl:45
qw422016.E().S(util.BeautifulName(hyphaName)) qw422016.E().S(util.BeautifulName(hyphaName))
//line views/nav.qtpl:45 //line hypview/nav.qtpl:45
qw422016.N().S(`</a>`) qw422016.N().S(`</a>`)
//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) { func writebeautifulLink(qq422016 qtio422016.Writer, hyphaName string) {
//line views/nav.qtpl:45 //line hypview/nav.qtpl:45
qw422016 := qt422016.AcquireWriter(qq422016) qw422016 := qt422016.AcquireWriter(qq422016)
//line views/nav.qtpl:45 //line hypview/nav.qtpl:45
streambeautifulLink(qw422016, hyphaName) streambeautifulLink(qw422016, hyphaName)
//line views/nav.qtpl:45 //line hypview/nav.qtpl:45
qt422016.ReleaseWriter(qw422016) 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 { func beautifulLink(hyphaName string) string {
//line views/nav.qtpl:45 //line hypview/nav.qtpl:45
qb422016 := qt422016.AcquireByteBuffer() qb422016 := qt422016.AcquireByteBuffer()
//line views/nav.qtpl:45 //line hypview/nav.qtpl:45
writebeautifulLink(qb422016, hyphaName) writebeautifulLink(qb422016, hyphaName)
//line views/nav.qtpl:45 //line hypview/nav.qtpl:45
qs422016 := string(qb422016.B) qs422016 := string(qb422016.B)
//line views/nav.qtpl:45 //line hypview/nav.qtpl:45
qt422016.ReleaseByteBuffer(qb422016) qt422016.ReleaseByteBuffer(qb422016)
//line views/nav.qtpl:45 //line hypview/nav.qtpl:45
return qs422016 return qs422016
//line views/nav.qtpl:45 //line hypview/nav.qtpl:45
} }

View File

@ -5,7 +5,6 @@
{% import "github.com/bouncepaw/mycorrhiza/cfg" %} {% import "github.com/bouncepaw/mycorrhiza/cfg" %}
{% import "github.com/bouncepaw/mycorrhiza/hyphae" %} {% import "github.com/bouncepaw/mycorrhiza/hyphae" %}
{% import "github.com/bouncepaw/mycorrhiza/hypview" %}
{% import "github.com/bouncepaw/mycorrhiza/categories" %} {% import "github.com/bouncepaw/mycorrhiza/categories" %}
{% import "github.com/bouncepaw/mycorrhiza/l18n" %} {% import "github.com/bouncepaw/mycorrhiza/l18n" %}
{% import "github.com/bouncepaw/mycorrhiza/mimetype" %} {% import "github.com/bouncepaw/mycorrhiza/mimetype" %}
@ -110,10 +109,10 @@ If you rename .prevnext, change the docs too.
{% endif %} {% endif %}
{% endif %} {% endif %}
{%s= hypview.NaviTitle(meta, h.CanonicalName()) %} {%s= NaviTitle(meta, h.CanonicalName()) %}
{% switch h.(type) %} {% switch h.(type) %}
{% case *hyphae.EmptyHypha %} {% case *hyphae.EmptyHypha %}
{%s= hypview.EmptyHypha(meta, h.CanonicalName()) %} {%s= EmptyHypha(meta, h.CanonicalName()) %}
{% default %} {% default %}
{%s= contents %} {%s= contents %}
{% endswitch %} {% endswitch %}
@ -148,7 +147,7 @@ If you rename .prevnext, change the docs too.
<main class="main-width"> <main class="main-width">
<section> <section>
<p>{%s meta.Lc.Get("ui.revision_warning") %} <a href="/rev-text/{%s revHash %}/{%s h.CanonicalName() %}">{%s meta.Lc.Get("ui.revision_link") %}</a></p> <p>{%s meta.Lc.Get("ui.revision_warning") %} <a href="/rev-text/{%s revHash %}/{%s h.CanonicalName() %}">{%s meta.Lc.Get("ui.revision_link") %}</a></p>
{%s= hypview.NaviTitle(meta, h.CanonicalName()) %} {%s= NaviTitle(meta, h.CanonicalName()) %}
{%s= contents %} {%s= contents %}
</section> </section>
</main> </main>

View File

@ -1,654 +1,651 @@
// Code generated by qtc from "readers.qtpl". DO NOT EDIT. // Code generated by qtc from "readers.qtpl". DO NOT EDIT.
// See https://github.com/valyala/quicktemplate for details. // See https://github.com/valyala/quicktemplate for details.
//line views/readers.qtpl:1 //line hypview/readers.qtpl:1
package views package hypview
//line views/readers.qtpl:1 //line hypview/readers.qtpl:1
import "net/http" import "net/http"
//line views/readers.qtpl:2 //line hypview/readers.qtpl:2
import "strings" import "strings"
//line views/readers.qtpl:3 //line hypview/readers.qtpl:3
import "path" import "path"
//line views/readers.qtpl:4 //line hypview/readers.qtpl:4
import "os" import "os"
//line views/readers.qtpl:6 //line hypview/readers.qtpl:6
import "github.com/bouncepaw/mycorrhiza/cfg" import "github.com/bouncepaw/mycorrhiza/cfg"
//line views/readers.qtpl:7 //line hypview/readers.qtpl:7
import "github.com/bouncepaw/mycorrhiza/hyphae" import "github.com/bouncepaw/mycorrhiza/hyphae"
//line views/readers.qtpl:8 //line hypview/readers.qtpl:8
import "github.com/bouncepaw/mycorrhiza/hypview"
//line views/readers.qtpl:9
import "github.com/bouncepaw/mycorrhiza/categories" import "github.com/bouncepaw/mycorrhiza/categories"
//line views/readers.qtpl:10 //line hypview/readers.qtpl:9
import "github.com/bouncepaw/mycorrhiza/l18n" import "github.com/bouncepaw/mycorrhiza/l18n"
//line views/readers.qtpl:11 //line hypview/readers.qtpl:10
import "github.com/bouncepaw/mycorrhiza/mimetype" import "github.com/bouncepaw/mycorrhiza/mimetype"
//line views/readers.qtpl:12 //line hypview/readers.qtpl:11
import "github.com/bouncepaw/mycorrhiza/tree" import "github.com/bouncepaw/mycorrhiza/tree"
//line views/readers.qtpl:13 //line hypview/readers.qtpl:12
import "github.com/bouncepaw/mycorrhiza/user" import "github.com/bouncepaw/mycorrhiza/user"
//line views/readers.qtpl:14 //line hypview/readers.qtpl:13
import "github.com/bouncepaw/mycorrhiza/util" import "github.com/bouncepaw/mycorrhiza/util"
//line views/readers.qtpl:15 //line hypview/readers.qtpl:14
import "github.com/bouncepaw/mycorrhiza/viewutil" import "github.com/bouncepaw/mycorrhiza/viewutil"
//line views/readers.qtpl:17 //line hypview/readers.qtpl:16
import ( import (
qtio422016 "io" qtio422016 "io"
qt422016 "github.com/valyala/quicktemplate" qt422016 "github.com/valyala/quicktemplate"
) )
//line views/readers.qtpl:17 //line hypview/readers.qtpl:16
var ( var (
_ = qtio422016.Copy _ = qtio422016.Copy
_ = qt422016.AcquireByteBuffer _ = 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) { 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(` qw422016.N().S(`
`) `)
//line views/readers.qtpl:19 //line hypview/readers.qtpl:18
lc := l18n.FromRequest(rq) lc := l18n.FromRequest(rq)
//line views/readers.qtpl:20 //line hypview/readers.qtpl:19
qw422016.N().S(` qw422016.N().S(`
<main class="main-width media-tab"> <main class="main-width media-tab">
<h1>`) <h1>`)
//line views/readers.qtpl:22 //line hypview/readers.qtpl:21
qw422016.N().S(lc.Get("ui.media_title", &l18n.Replacements{"name": beautifulLink(h.CanonicalName())})) 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(`</h1> qw422016.N().S(`</h1>
`) `)
//line views/readers.qtpl:23 //line hypview/readers.qtpl:22
switch h.(type) { switch h.(type) {
//line views/readers.qtpl:24 //line hypview/readers.qtpl:23
case *hyphae.MediaHypha: case *hyphae.MediaHypha:
//line views/readers.qtpl:24 //line hypview/readers.qtpl:23
qw422016.N().S(` qw422016.N().S(`
<p class="explanation">`) <p class="explanation">`)
//line views/readers.qtpl:25 //line hypview/readers.qtpl:24
qw422016.E().S(lc.Get("ui.media_tip")) qw422016.E().S(lc.Get("ui.media_tip"))
//line views/readers.qtpl:25 //line hypview/readers.qtpl:24
qw422016.N().S(` <a href="/help/en/media" class="shy-link">`) qw422016.N().S(` <a href="/help/en/media" class="shy-link">`)
//line views/readers.qtpl:25 //line hypview/readers.qtpl:24
qw422016.E().S(lc.Get("ui.media_what_is")) qw422016.E().S(lc.Get("ui.media_what_is"))
//line views/readers.qtpl:25 //line hypview/readers.qtpl:24
qw422016.N().S(`</a></p> qw422016.N().S(`</a></p>
`) `)
//line views/readers.qtpl:26 //line hypview/readers.qtpl:25
default: default:
//line views/readers.qtpl:26 //line hypview/readers.qtpl:25
qw422016.N().S(` qw422016.N().S(`
<p class="explanation">`) <p class="explanation">`)
//line views/readers.qtpl:27 //line hypview/readers.qtpl:26
qw422016.E().S(lc.Get("ui.media_empty")) qw422016.E().S(lc.Get("ui.media_empty"))
//line views/readers.qtpl:27 //line hypview/readers.qtpl:26
qw422016.N().S(` <a href="/help/en/media" class="shy-link">`) qw422016.N().S(` <a href="/help/en/media" class="shy-link">`)
//line views/readers.qtpl:27 //line hypview/readers.qtpl:26
qw422016.E().S(lc.Get("ui.media_what_is")) qw422016.E().S(lc.Get("ui.media_what_is"))
//line views/readers.qtpl:27 //line hypview/readers.qtpl:26
qw422016.N().S(`</a></p> qw422016.N().S(`</a></p>
`) `)
//line views/readers.qtpl:28 //line hypview/readers.qtpl:27
} }
//line views/readers.qtpl:28 //line hypview/readers.qtpl:27
qw422016.N().S(` qw422016.N().S(`
<section class="amnt-grid"> <section class="amnt-grid">
`) `)
//line views/readers.qtpl:31 //line hypview/readers.qtpl:30
switch h := h.(type) { switch h := h.(type) {
//line views/readers.qtpl:32 //line hypview/readers.qtpl:31
case *hyphae.MediaHypha: case *hyphae.MediaHypha:
//line views/readers.qtpl:32 //line hypview/readers.qtpl:31
qw422016.N().S(` qw422016.N().S(`
`) `)
//line views/readers.qtpl:34 //line hypview/readers.qtpl:33
mime := mimetype.FromExtension(path.Ext(h.MediaFilePath())) mime := mimetype.FromExtension(path.Ext(h.MediaFilePath()))
fileinfo, err := os.Stat(h.MediaFilePath()) fileinfo, err := os.Stat(h.MediaFilePath())
//line views/readers.qtpl:35 //line hypview/readers.qtpl:34
qw422016.N().S(` qw422016.N().S(`
`) `)
//line views/readers.qtpl:36 //line hypview/readers.qtpl:35
if err == nil { if err == nil {
//line views/readers.qtpl:36 //line hypview/readers.qtpl:35
qw422016.N().S(` qw422016.N().S(`
<fieldset class="amnt-menu-block"> <fieldset class="amnt-menu-block">
<legend class="modal__title modal__title_small">`) <legend class="modal__title modal__title_small">`)
//line views/readers.qtpl:38 //line hypview/readers.qtpl:37
qw422016.E().S(lc.Get("ui.media_stat")) qw422016.E().S(lc.Get("ui.media_stat"))
//line views/readers.qtpl:38 //line hypview/readers.qtpl:37
qw422016.N().S(`</legend> qw422016.N().S(`</legend>
<p class="modal__confirmation-msg"><b>`) <p class="modal__confirmation-msg"><b>`)
//line views/readers.qtpl:39 //line hypview/readers.qtpl:38
qw422016.E().S(lc.Get("ui.media_stat_size")) qw422016.E().S(lc.Get("ui.media_stat_size"))
//line views/readers.qtpl:39 //line hypview/readers.qtpl:38
qw422016.N().S(`</b> `) qw422016.N().S(`</b> `)
//line views/readers.qtpl:39 //line hypview/readers.qtpl:38
qw422016.E().S(lc.GetPlural64("ui.media_size_value", fileinfo.Size())) qw422016.E().S(lc.GetPlural64("ui.media_size_value", fileinfo.Size()))
//line views/readers.qtpl:39 //line hypview/readers.qtpl:38
qw422016.N().S(`</p> qw422016.N().S(`</p>
<p><b>`) <p><b>`)
//line views/readers.qtpl:40 //line hypview/readers.qtpl:39
qw422016.E().S(lc.Get("ui.media_stat_mime")) qw422016.E().S(lc.Get("ui.media_stat_mime"))
//line views/readers.qtpl:40 //line hypview/readers.qtpl:39
qw422016.N().S(`</b> `) qw422016.N().S(`</b> `)
//line views/readers.qtpl:40 //line hypview/readers.qtpl:39
qw422016.E().S(mime) qw422016.E().S(mime)
//line views/readers.qtpl:40 //line hypview/readers.qtpl:39
qw422016.N().S(`</p> qw422016.N().S(`</p>
</fieldset> </fieldset>
`) `)
//line views/readers.qtpl:42 //line hypview/readers.qtpl:41
} }
//line views/readers.qtpl:42 //line hypview/readers.qtpl:41
qw422016.N().S(` qw422016.N().S(`
`) `)
//line views/readers.qtpl:44 //line hypview/readers.qtpl:43
if strings.HasPrefix(mime, "image/") { if strings.HasPrefix(mime, "image/") {
//line views/readers.qtpl:44 //line hypview/readers.qtpl:43
qw422016.N().S(` qw422016.N().S(`
<fieldset class="amnt-menu-block"> <fieldset class="amnt-menu-block">
<legend class="modal__title modal__title_small">`) <legend class="modal__title modal__title_small">`)
//line views/readers.qtpl:46 //line hypview/readers.qtpl:45
qw422016.E().S(lc.Get("ui.media_include")) qw422016.E().S(lc.Get("ui.media_include"))
//line views/readers.qtpl:46 //line hypview/readers.qtpl:45
qw422016.N().S(`</legend> qw422016.N().S(`</legend>
<p class="modal__confirmation-msg">`) <p class="modal__confirmation-msg">`)
//line views/readers.qtpl:47 //line hypview/readers.qtpl:46
qw422016.E().S(lc.Get("ui.media_include_tip")) qw422016.E().S(lc.Get("ui.media_include_tip"))
//line views/readers.qtpl:47 //line hypview/readers.qtpl:46
qw422016.N().S(`</p> qw422016.N().S(`</p>
<pre class="codeblock"><code>img { `) <pre class="codeblock"><code>img { `)
//line views/readers.qtpl:48 //line hypview/readers.qtpl:47
qw422016.E().S(h.CanonicalName()) qw422016.E().S(h.CanonicalName())
//line views/readers.qtpl:48 //line hypview/readers.qtpl:47
qw422016.N().S(` }</code></pre> qw422016.N().S(` }</code></pre>
</fieldset> </fieldset>
`) `)
//line views/readers.qtpl:50 //line hypview/readers.qtpl:49
} }
//line views/readers.qtpl:50 //line hypview/readers.qtpl:49
qw422016.N().S(` 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(` qw422016.N().S(`
`) `)
//line views/readers.qtpl:53 //line hypview/readers.qtpl:52
if u.CanProceed("upload-binary") { if u.CanProceed("upload-binary") {
//line views/readers.qtpl:53 //line hypview/readers.qtpl:52
qw422016.N().S(` qw422016.N().S(`
<form action="/upload-binary/`) <form action="/upload-binary/`)
//line views/readers.qtpl:54 //line hypview/readers.qtpl:53
qw422016.E().S(h.CanonicalName()) qw422016.E().S(h.CanonicalName())
//line views/readers.qtpl:54 //line hypview/readers.qtpl:53
qw422016.N().S(`" qw422016.N().S(`"
method="post" enctype="multipart/form-data" method="post" enctype="multipart/form-data"
class="upload-binary modal amnt-menu-block"> class="upload-binary modal amnt-menu-block">
<fieldset class="modal__fieldset"> <fieldset class="modal__fieldset">
<legend class="modal__title modal__title_small">`) <legend class="modal__title modal__title_small">`)
//line views/readers.qtpl:58 //line hypview/readers.qtpl:57
qw422016.E().S(lc.Get("ui.media_new")) qw422016.E().S(lc.Get("ui.media_new"))
//line views/readers.qtpl:58 //line hypview/readers.qtpl:57
qw422016.N().S(`</legend> qw422016.N().S(`</legend>
<p class="modal__confirmation-msg">`) <p class="modal__confirmation-msg">`)
//line views/readers.qtpl:59 //line hypview/readers.qtpl:58
qw422016.E().S(lc.Get("ui.media_new_tip")) qw422016.E().S(lc.Get("ui.media_new_tip"))
//line views/readers.qtpl:59 //line hypview/readers.qtpl:58
qw422016.N().S(`</p> qw422016.N().S(`</p>
<label for="upload-binary__input"></label> <label for="upload-binary__input"></label>
<input type="file" id="upload-binary__input" name="binary"> <input type="file" id="upload-binary__input" name="binary">
<button type="submit" class="btn stick-to-bottom" value="Upload">`) <button type="submit" class="btn stick-to-bottom" value="Upload">`)
//line views/readers.qtpl:63 //line hypview/readers.qtpl:62
qw422016.E().S(lc.Get("ui.media_upload")) qw422016.E().S(lc.Get("ui.media_upload"))
//line views/readers.qtpl:63 //line hypview/readers.qtpl:62
qw422016.N().S(`</button> qw422016.N().S(`</button>
</fieldset> </fieldset>
</form> </form>
`) `)
//line views/readers.qtpl:66 //line hypview/readers.qtpl:65
} }
//line views/readers.qtpl:66 //line hypview/readers.qtpl:65
qw422016.N().S(` qw422016.N().S(`
`) `)
//line views/readers.qtpl:69 //line hypview/readers.qtpl:68
switch h := h.(type) { switch h := h.(type) {
//line views/readers.qtpl:70 //line hypview/readers.qtpl:69
case *hyphae.MediaHypha: case *hyphae.MediaHypha:
//line views/readers.qtpl:70 //line hypview/readers.qtpl:69
qw422016.N().S(` qw422016.N().S(`
`) `)
//line views/readers.qtpl:71 //line hypview/readers.qtpl:70
if u.CanProceed("remove-media") { if u.CanProceed("remove-media") {
//line views/readers.qtpl:71 //line hypview/readers.qtpl:70
qw422016.N().S(` qw422016.N().S(`
<form action="/remove-media/`) <form action="/remove-media/`)
//line views/readers.qtpl:72 //line hypview/readers.qtpl:71
qw422016.E().S(h.CanonicalName()) qw422016.E().S(h.CanonicalName())
//line views/readers.qtpl:72 //line hypview/readers.qtpl:71
qw422016.N().S(`" method="post" class="modal amnt-menu-block" method="POST"> qw422016.N().S(`" method="post" class="modal amnt-menu-block" method="POST">
<fieldset class="modal__fieldset"> <fieldset class="modal__fieldset">
<legend class="modal__title modal__title_small">`) <legend class="modal__title modal__title_small">`)
//line views/readers.qtpl:74 //line hypview/readers.qtpl:73
qw422016.E().S(lc.Get("ui.media_remove")) qw422016.E().S(lc.Get("ui.media_remove"))
//line views/readers.qtpl:74 //line hypview/readers.qtpl:73
qw422016.N().S(`</legend> qw422016.N().S(`</legend>
<p class="modal__confirmation-msg">`) <p class="modal__confirmation-msg">`)
//line views/readers.qtpl:75 //line hypview/readers.qtpl:74
qw422016.E().S(lc.Get("ui.media_remove_tip")) qw422016.E().S(lc.Get("ui.media_remove_tip"))
//line views/readers.qtpl:75 //line hypview/readers.qtpl:74
qw422016.N().S(`</p> qw422016.N().S(`</p>
<button type="submit" class="btn" value="Remove media">`) <button type="submit" class="btn" value="Remove media">`)
//line views/readers.qtpl:76 //line hypview/readers.qtpl:75
qw422016.E().S(lc.Get("ui.media_remove_button")) qw422016.E().S(lc.Get("ui.media_remove_button"))
//line views/readers.qtpl:76 //line hypview/readers.qtpl:75
qw422016.N().S(`</button> qw422016.N().S(`</button>
</fieldset> </fieldset>
</form> </form>
`) `)
//line views/readers.qtpl:79 //line hypview/readers.qtpl:78
} }
//line views/readers.qtpl:79 //line hypview/readers.qtpl:78
qw422016.N().S(` 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(` qw422016.N().S(`
</section> </section>
</main> </main>
`) `)
//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) { 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) qw422016 := qt422016.AcquireWriter(qq422016)
//line views/readers.qtpl:84 //line hypview/readers.qtpl:83
StreamMediaMenu(qw422016, rq, h, u) StreamMediaMenu(qw422016, rq, h, u)
//line views/readers.qtpl:84 //line hypview/readers.qtpl:83
qt422016.ReleaseWriter(qw422016) 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 { 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() qb422016 := qt422016.AcquireByteBuffer()
//line views/readers.qtpl:84 //line hypview/readers.qtpl:83
WriteMediaMenu(qb422016, rq, h, u) WriteMediaMenu(qb422016, rq, h, u)
//line views/readers.qtpl:84 //line hypview/readers.qtpl:83
qs422016 := string(qb422016.B) qs422016 := string(qb422016.B)
//line views/readers.qtpl:84 //line hypview/readers.qtpl:83
qt422016.ReleaseByteBuffer(qb422016) qt422016.ReleaseByteBuffer(qb422016)
//line views/readers.qtpl:84 //line hypview/readers.qtpl:83
return qs422016 return qs422016
//line views/readers.qtpl:84 //line hypview/readers.qtpl:83
} }
// If `contents` == "", a helpful message is shown instead. // If `contents` == "", a helpful message is shown instead.
// //
// If you rename .prevnext, change the docs too. // 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) { 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(` qw422016.N().S(`
`) `)
//line views/readers.qtpl:91 //line hypview/readers.qtpl:90
subhyphae, prevHyphaName, nextHyphaName := tree.Tree(h.CanonicalName()) subhyphae, prevHyphaName, nextHyphaName := tree.Tree(h.CanonicalName())
lc := meta.Lc lc := meta.Lc
//line views/readers.qtpl:93 //line hypview/readers.qtpl:92
qw422016.N().S(` qw422016.N().S(`
<main class="main-width"> <main class="main-width">
<section id="hypha"> <section id="hypha">
`) `)
//line views/readers.qtpl:96 //line hypview/readers.qtpl:95
if meta.U.CanProceed("edit") { if meta.U.CanProceed("edit") {
//line views/readers.qtpl:96 //line hypview/readers.qtpl:95
qw422016.N().S(` qw422016.N().S(`
<div class="btn btn_navititle"> <div class="btn btn_navititle">
<a class="btn__link_navititle" href="/edit/`) <a class="btn__link_navititle" href="/edit/`)
//line views/readers.qtpl:98 //line hypview/readers.qtpl:97
qw422016.E().S(h.CanonicalName()) qw422016.E().S(h.CanonicalName())
//line views/readers.qtpl:98 //line hypview/readers.qtpl:97
qw422016.N().S(`">`) qw422016.N().S(`">`)
//line views/readers.qtpl:98 //line hypview/readers.qtpl:97
qw422016.E().S(lc.Get("ui.edit_link")) qw422016.E().S(lc.Get("ui.edit_link"))
//line views/readers.qtpl:98 //line hypview/readers.qtpl:97
qw422016.N().S(`</a> qw422016.N().S(`</a>
</div> </div>
`) `)
//line views/readers.qtpl:100 //line hypview/readers.qtpl:99
} }
//line views/readers.qtpl:100 //line hypview/readers.qtpl:99
qw422016.N().S(` 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+"/") { 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(` qw422016.N().S(`
<div class="btn btn_navititle"> <div class="btn btn_navititle">
<a class="btn__link_navititle" href="/logout">`) <a class="btn__link_navititle" href="/logout">`)
//line views/readers.qtpl:104 //line hypview/readers.qtpl:103
qw422016.E().S(lc.Get("ui.logout_link")) qw422016.E().S(lc.Get("ui.logout_link"))
//line views/readers.qtpl:104 //line hypview/readers.qtpl:103
qw422016.N().S(`</a> qw422016.N().S(`</a>
</div> </div>
`) `)
//line views/readers.qtpl:106 //line hypview/readers.qtpl:105
if meta.U.Group == "admin" { if meta.U.Group == "admin" {
//line views/readers.qtpl:106 //line hypview/readers.qtpl:105
qw422016.N().S(` qw422016.N().S(`
<div class="btn btn_navititle"> <div class="btn btn_navititle">
<a class="btn__link_navititle" href="/admin">`) <a class="btn__link_navititle" href="/admin">`)
//line views/readers.qtpl:108 //line hypview/readers.qtpl:107
qw422016.E().S(lc.Get("ui.admin_panel")) qw422016.E().S(lc.Get("ui.admin_panel"))
//line views/readers.qtpl:108 //line hypview/readers.qtpl:107
qw422016.N().S(`<a> qw422016.N().S(`<a>
</div> </div>
`) `)
//line views/readers.qtpl:110 //line hypview/readers.qtpl:109
} }
//line views/readers.qtpl:110 //line hypview/readers.qtpl:109
qw422016.N().S(` 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(` qw422016.N().S(`
`) `)
//line views/readers.qtpl:113 //line hypview/readers.qtpl:112
qw422016.N().S(hypview.NaviTitle(meta, h.CanonicalName())) qw422016.N().S(NaviTitle(meta, h.CanonicalName()))
//line views/readers.qtpl:113 //line hypview/readers.qtpl:112
qw422016.N().S(` qw422016.N().S(`
`) `)
//line views/readers.qtpl:114 //line hypview/readers.qtpl:113
switch h.(type) { switch h.(type) {
//line views/readers.qtpl:115 //line hypview/readers.qtpl:114
case *hyphae.EmptyHypha: case *hyphae.EmptyHypha:
//line views/readers.qtpl:115 //line hypview/readers.qtpl:114
qw422016.N().S(` qw422016.N().S(`
`) `)
//line views/readers.qtpl:116 //line hypview/readers.qtpl:115
qw422016.N().S(hypview.EmptyHypha(meta, h.CanonicalName())) qw422016.N().S(EmptyHypha(meta, h.CanonicalName()))
//line views/readers.qtpl:116 //line hypview/readers.qtpl:115
qw422016.N().S(` qw422016.N().S(`
`) `)
//line views/readers.qtpl:117 //line hypview/readers.qtpl:116
default: default:
//line views/readers.qtpl:117 //line hypview/readers.qtpl:116
qw422016.N().S(` qw422016.N().S(`
`) `)
//line views/readers.qtpl:118 //line hypview/readers.qtpl:117
qw422016.N().S(contents) qw422016.N().S(contents)
//line views/readers.qtpl:118 //line hypview/readers.qtpl:117
qw422016.N().S(` 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(` qw422016.N().S(`
</section> </section>
<section class="prevnext"> <section class="prevnext">
`) `)
//line views/readers.qtpl:122 //line hypview/readers.qtpl:121
if prevHyphaName != "" { if prevHyphaName != "" {
//line views/readers.qtpl:122 //line hypview/readers.qtpl:121
qw422016.N().S(` qw422016.N().S(`
<a class="prevnext__el prevnext__prev" href="/hypha/`) <a class="prevnext__el prevnext__prev" href="/hypha/`)
//line views/readers.qtpl:123 //line hypview/readers.qtpl:122
qw422016.E().S(prevHyphaName) qw422016.E().S(prevHyphaName)
//line views/readers.qtpl:123 //line hypview/readers.qtpl:122
qw422016.N().S(`" rel="prev">← `) qw422016.N().S(`" rel="prev">← `)
//line views/readers.qtpl:123 //line hypview/readers.qtpl:122
qw422016.E().S(util.BeautifulName(path.Base(prevHyphaName))) qw422016.E().S(util.BeautifulName(path.Base(prevHyphaName)))
//line views/readers.qtpl:123 //line hypview/readers.qtpl:122
qw422016.N().S(`</a> qw422016.N().S(`</a>
`) `)
//line views/readers.qtpl:124 //line hypview/readers.qtpl:123
} }
//line views/readers.qtpl:124 //line hypview/readers.qtpl:123
qw422016.N().S(` qw422016.N().S(`
`) `)
//line views/readers.qtpl:125 //line hypview/readers.qtpl:124
if nextHyphaName != "" { if nextHyphaName != "" {
//line views/readers.qtpl:125 //line hypview/readers.qtpl:124
qw422016.N().S(` qw422016.N().S(`
<a class="prevnext__el prevnext__next" href="/hypha/`) <a class="prevnext__el prevnext__next" href="/hypha/`)
//line views/readers.qtpl:126 //line hypview/readers.qtpl:125
qw422016.E().S(nextHyphaName) qw422016.E().S(nextHyphaName)
//line views/readers.qtpl:126 //line hypview/readers.qtpl:125
qw422016.N().S(`" rel="next">`) qw422016.N().S(`" rel="next">`)
//line views/readers.qtpl:126 //line hypview/readers.qtpl:125
qw422016.E().S(util.BeautifulName(path.Base(nextHyphaName))) qw422016.E().S(util.BeautifulName(path.Base(nextHyphaName)))
//line views/readers.qtpl:126 //line hypview/readers.qtpl:125
qw422016.N().S(` </a> qw422016.N().S(` </a>
`) `)
//line views/readers.qtpl:127 //line hypview/readers.qtpl:126
} }
//line views/readers.qtpl:127 //line hypview/readers.qtpl:126
qw422016.N().S(` qw422016.N().S(`
</section> </section>
`) `)
//line views/readers.qtpl:129 //line hypview/readers.qtpl:128
if strings.TrimSpace(subhyphae) != "" { if strings.TrimSpace(subhyphae) != "" {
//line views/readers.qtpl:129 //line hypview/readers.qtpl:128
qw422016.N().S(` qw422016.N().S(`
<section class="subhyphae"> <section class="subhyphae">
<h2 class="subhyphae__title">`) <h2 class="subhyphae__title">`)
//line views/readers.qtpl:131 //line hypview/readers.qtpl:130
qw422016.E().S(lc.Get("ui.subhyphae")) qw422016.E().S(lc.Get("ui.subhyphae"))
//line views/readers.qtpl:131 //line hypview/readers.qtpl:130
qw422016.N().S(`</h2> qw422016.N().S(`</h2>
<nav class="subhyphae__nav"> <nav class="subhyphae__nav">
<ul class="subhyphae__list"> <ul class="subhyphae__list">
`) `)
//line views/readers.qtpl:134 //line hypview/readers.qtpl:133
qw422016.N().S(subhyphae) qw422016.N().S(subhyphae)
//line views/readers.qtpl:134 //line hypview/readers.qtpl:133
qw422016.N().S(` qw422016.N().S(`
</ul> </ul>
</nav> </nav>
</section> </section>
`) `)
//line views/readers.qtpl:138 //line hypview/readers.qtpl:137
} }
//line views/readers.qtpl:138 //line hypview/readers.qtpl:137
qw422016.N().S(` qw422016.N().S(`
<section id="hypha-bottom"> <section id="hypha-bottom">
`) `)
//line views/readers.qtpl:140 //line hypview/readers.qtpl:139
streamhyphaInfo(qw422016, meta, h) streamhyphaInfo(qw422016, meta, h)
//line views/readers.qtpl:140 //line hypview/readers.qtpl:139
qw422016.N().S(` qw422016.N().S(`
</section> </section>
</main> </main>
`) `)
//line views/readers.qtpl:143 //line hypview/readers.qtpl:142
qw422016.N().S(categories.CategoryCard(meta, h.CanonicalName())) qw422016.N().S(categories.CategoryCard(meta, h.CanonicalName()))
//line views/readers.qtpl:143 //line hypview/readers.qtpl:142
qw422016.N().S(` qw422016.N().S(`
`) `)
//line views/readers.qtpl:144 //line hypview/readers.qtpl:143
streamviewScripts(qw422016) streamviewScripts(qw422016)
//line views/readers.qtpl:144 //line hypview/readers.qtpl:143
qw422016.N().S(` 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) { 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) qw422016 := qt422016.AcquireWriter(qq422016)
//line views/readers.qtpl:145 //line hypview/readers.qtpl:144
StreamHypha(qw422016, meta, h, contents) StreamHypha(qw422016, meta, h, contents)
//line views/readers.qtpl:145 //line hypview/readers.qtpl:144
qt422016.ReleaseWriter(qw422016) 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 { func Hypha(meta viewutil.Meta, h hyphae.Hypha, contents string) string {
//line views/readers.qtpl:145 //line hypview/readers.qtpl:144
qb422016 := qt422016.AcquireByteBuffer() qb422016 := qt422016.AcquireByteBuffer()
//line views/readers.qtpl:145 //line hypview/readers.qtpl:144
WriteHypha(qb422016, meta, h, contents) WriteHypha(qb422016, meta, h, contents)
//line views/readers.qtpl:145 //line hypview/readers.qtpl:144
qs422016 := string(qb422016.B) qs422016 := string(qb422016.B)
//line views/readers.qtpl:145 //line hypview/readers.qtpl:144
qt422016.ReleaseByteBuffer(qb422016) qt422016.ReleaseByteBuffer(qb422016)
//line views/readers.qtpl:145 //line hypview/readers.qtpl:144
return qs422016 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) { 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(` qw422016.N().S(`
<main class="main-width"> <main class="main-width">
<section> <section>
<p>`) <p>`)
//line views/readers.qtpl:150 //line hypview/readers.qtpl:149
qw422016.E().S(meta.Lc.Get("ui.revision_warning")) qw422016.E().S(meta.Lc.Get("ui.revision_warning"))
//line views/readers.qtpl:150 //line hypview/readers.qtpl:149
qw422016.N().S(` <a href="/rev-text/`) qw422016.N().S(` <a href="/rev-text/`)
//line views/readers.qtpl:150 //line hypview/readers.qtpl:149
qw422016.E().S(revHash) qw422016.E().S(revHash)
//line views/readers.qtpl:150 //line hypview/readers.qtpl:149
qw422016.N().S(`/`) qw422016.N().S(`/`)
//line views/readers.qtpl:150 //line hypview/readers.qtpl:149
qw422016.E().S(h.CanonicalName()) qw422016.E().S(h.CanonicalName())
//line views/readers.qtpl:150 //line hypview/readers.qtpl:149
qw422016.N().S(`">`) qw422016.N().S(`">`)
//line views/readers.qtpl:150 //line hypview/readers.qtpl:149
qw422016.E().S(meta.Lc.Get("ui.revision_link")) qw422016.E().S(meta.Lc.Get("ui.revision_link"))
//line views/readers.qtpl:150 //line hypview/readers.qtpl:149
qw422016.N().S(`</a></p> qw422016.N().S(`</a></p>
`) `)
//line views/readers.qtpl:151 //line hypview/readers.qtpl:150
qw422016.N().S(hypview.NaviTitle(meta, h.CanonicalName())) qw422016.N().S(NaviTitle(meta, h.CanonicalName()))
//line views/readers.qtpl:151 //line hypview/readers.qtpl:150
qw422016.N().S(` qw422016.N().S(`
`) `)
//line views/readers.qtpl:152 //line hypview/readers.qtpl:151
qw422016.N().S(contents) qw422016.N().S(contents)
//line views/readers.qtpl:152 //line hypview/readers.qtpl:151
qw422016.N().S(` qw422016.N().S(`
</section> </section>
</main> </main>
`) `)
//line views/readers.qtpl:155 //line hypview/readers.qtpl:154
streamviewScripts(qw422016) streamviewScripts(qw422016)
//line views/readers.qtpl:155 //line hypview/readers.qtpl:154
qw422016.N().S(` 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) { 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) qw422016 := qt422016.AcquireWriter(qq422016)
//line views/readers.qtpl:156 //line hypview/readers.qtpl:155
StreamRevision(qw422016, meta, h, contents, revHash) StreamRevision(qw422016, meta, h, contents, revHash)
//line views/readers.qtpl:156 //line hypview/readers.qtpl:155
qt422016.ReleaseWriter(qw422016) 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 { 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() qb422016 := qt422016.AcquireByteBuffer()
//line views/readers.qtpl:156 //line hypview/readers.qtpl:155
WriteRevision(qb422016, meta, h, contents, revHash) WriteRevision(qb422016, meta, h, contents, revHash)
//line views/readers.qtpl:156 //line hypview/readers.qtpl:155
qs422016 := string(qb422016.B) qs422016 := string(qb422016.B)
//line views/readers.qtpl:156 //line hypview/readers.qtpl:155
qt422016.ReleaseByteBuffer(qb422016) qt422016.ReleaseByteBuffer(qb422016)
//line views/readers.qtpl:156 //line hypview/readers.qtpl:155
return qs422016 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) { func streamviewScripts(qw422016 *qt422016.Writer) {
//line views/readers.qtpl:158 //line hypview/readers.qtpl:157
qw422016.N().S(` qw422016.N().S(`
`) `)
//line views/readers.qtpl:159 //line hypview/readers.qtpl:158
for _, scriptPath := range cfg.ViewScripts { for _, scriptPath := range cfg.ViewScripts {
//line views/readers.qtpl:159 //line hypview/readers.qtpl:158
qw422016.N().S(` qw422016.N().S(`
<script src="`) <script src="`)
//line views/readers.qtpl:160 //line hypview/readers.qtpl:159
qw422016.E().S(scriptPath) qw422016.E().S(scriptPath)
//line views/readers.qtpl:160 //line hypview/readers.qtpl:159
qw422016.N().S(`"></script> qw422016.N().S(`"></script>
`) `)
//line views/readers.qtpl:161 //line hypview/readers.qtpl:160
} }
//line views/readers.qtpl:161 //line hypview/readers.qtpl:160
qw422016.N().S(` 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) { func writeviewScripts(qq422016 qtio422016.Writer) {
//line views/readers.qtpl:162 //line hypview/readers.qtpl:161
qw422016 := qt422016.AcquireWriter(qq422016) qw422016 := qt422016.AcquireWriter(qq422016)
//line views/readers.qtpl:162 //line hypview/readers.qtpl:161
streamviewScripts(qw422016) streamviewScripts(qw422016)
//line views/readers.qtpl:162 //line hypview/readers.qtpl:161
qt422016.ReleaseWriter(qw422016) 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 { func viewScripts() string {
//line views/readers.qtpl:162 //line hypview/readers.qtpl:161
qb422016 := qt422016.AcquireByteBuffer() qb422016 := qt422016.AcquireByteBuffer()
//line views/readers.qtpl:162 //line hypview/readers.qtpl:161
writeviewScripts(qb422016) writeviewScripts(qb422016)
//line views/readers.qtpl:162 //line hypview/readers.qtpl:161
qs422016 := string(qb422016.B) qs422016 := string(qb422016.B)
//line views/readers.qtpl:162 //line hypview/readers.qtpl:161
qt422016.ReleaseByteBuffer(qb422016) qt422016.ReleaseByteBuffer(qb422016)
//line views/readers.qtpl:162 //line hypview/readers.qtpl:161
return qs422016 return qs422016
//line views/readers.qtpl:162 //line hypview/readers.qtpl:161
} }

View File

@ -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. // See https://github.com/valyala/quicktemplate for details.
//line views/modal.qtpl:1 //line hypview/remove_media.qtpl:1
package views package hypview
//line views/modal.qtpl:1 //line hypview/remove_media.qtpl:1
import "fmt" import "fmt"
//line views/modal.qtpl:2 //line hypview/remove_media.qtpl:2
import "net/http" import "net/http"
//line views/modal.qtpl:3 //line hypview/remove_media.qtpl:3
import "github.com/bouncepaw/mycorrhiza/l18n" import "github.com/bouncepaw/mycorrhiza/l18n"
//line views/modal.qtpl:5 //line hypview/remove_media.qtpl:5
import ( import (
qtio422016 "io" qtio422016 "io"
qt422016 "github.com/valyala/quicktemplate" qt422016 "github.com/valyala/quicktemplate"
) )
//line views/modal.qtpl:5 //line hypview/remove_media.qtpl:5
var ( var (
_ = qtio422016.Copy _ = qtio422016.Copy
_ = qt422016.AcquireByteBuffer _ = qt422016.AcquireByteBuffer
) )
//line views/modal.qtpl:5 //line hypview/remove_media.qtpl:5
func StreamRemoveMediaAsk(qw422016 *qt422016.Writer, rq *http.Request, hyphaName string) { func StreamRemoveMediaAsk(qw422016 *qt422016.Writer, rq *http.Request, hyphaName string) {
//line views/modal.qtpl:5 //line hypview/remove_media.qtpl:5
qw422016.N().S(` qw422016.N().S(`
`) `)
//line views/modal.qtpl:7 //line hypview/remove_media.qtpl:7
lc := l18n.FromRequest(rq) lc := l18n.FromRequest(rq)
//line views/modal.qtpl:8 //line hypview/remove_media.qtpl:8
qw422016.N().S(` qw422016.N().S(`
<main class="main-width"> <main class="main-width">
<form class="modal" action="/remove-media/`) <form class="modal" action="/remove-media/`)
//line views/modal.qtpl:10 //line hypview/remove_media.qtpl:10
qw422016.E().S(hyphaName) qw422016.E().S(hyphaName)
//line views/modal.qtpl:10 //line hypview/remove_media.qtpl:10
qw422016.N().S(`" method="post"> qw422016.N().S(`" method="post">
<fieldset class="modal__fieldset"> <fieldset class="modal__fieldset">
<legend class="modal__title"> <legend class="modal__title">
`) `)
//line views/modal.qtpl:13 //line hypview/remove_media.qtpl:13
qw422016.N().S(fmt.Sprintf(lc.Get("ui.ask_remove_media"), beautifulLink(hyphaName))) qw422016.N().S(fmt.Sprintf(lc.Get("ui.ask_remove_media"), beautifulLink(hyphaName)))
//line views/modal.qtpl:13 //line hypview/remove_media.qtpl:13
qw422016.N().S(` qw422016.N().S(`
</legend> </legend>
<p class="modal__confirmation-msg"> <p class="modal__confirmation-msg">
`) `)
//line views/modal.qtpl:16 //line hypview/remove_media.qtpl:16
qw422016.N().S(lc.Get("ui.ask_really", &l18n.Replacements{"verb": lc.Get("ui.ask_remove_media_verb"), "name": fmt.Sprintf("<em>%s</em>", hyphaName)})) qw422016.N().S(lc.Get("ui.ask_really", &l18n.Replacements{"verb": lc.Get("ui.ask_remove_media_verb"), "name": fmt.Sprintf("<em>%s</em>", hyphaName)}))
//line views/modal.qtpl:16 //line hypview/remove_media.qtpl:16
qw422016.N().S(` qw422016.N().S(`
</p> </p>
<button type="submit" value="Confirm" class="btn" autofocus> <button type="submit" value="Confirm" class="btn" autofocus>
`) `)
//line views/modal.qtpl:19 //line hypview/remove_media.qtpl:19
qw422016.E().S(lc.Get("ui.confirm")) qw422016.E().S(lc.Get("ui.confirm"))
//line views/modal.qtpl:19 //line hypview/remove_media.qtpl:19
qw422016.N().S(` qw422016.N().S(`
</button> </button>
<a href="/hypha/`) <a href="/hypha/`)
//line views/modal.qtpl:21 //line hypview/remove_media.qtpl:21
qw422016.E().S(hyphaName) qw422016.E().S(hyphaName)
//line views/modal.qtpl:21 //line hypview/remove_media.qtpl:21
qw422016.N().S(`" class="btn btn_weak"> qw422016.N().S(`" class="btn btn_weak">
`) `)
//line views/modal.qtpl:22 //line hypview/remove_media.qtpl:22
qw422016.E().S(lc.Get("ui.cancel")) qw422016.E().S(lc.Get("ui.cancel"))
//line views/modal.qtpl:22 //line hypview/remove_media.qtpl:22
qw422016.N().S(` qw422016.N().S(`
</a> </a>
</fieldset> </fieldset>
</form> </form>
</main> </main>
`) `)
//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) { 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) qw422016 := qt422016.AcquireWriter(qq422016)
//line views/modal.qtpl:27 //line hypview/remove_media.qtpl:27
StreamRemoveMediaAsk(qw422016, rq, hyphaName) StreamRemoveMediaAsk(qw422016, rq, hyphaName)
//line views/modal.qtpl:27 //line hypview/remove_media.qtpl:27
qt422016.ReleaseWriter(qw422016) 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 { func RemoveMediaAsk(rq *http.Request, hyphaName string) string {
//line views/modal.qtpl:27 //line hypview/remove_media.qtpl:27
qb422016 := qt422016.AcquireByteBuffer() qb422016 := qt422016.AcquireByteBuffer()
//line views/modal.qtpl:27 //line hypview/remove_media.qtpl:27
WriteRemoveMediaAsk(qb422016, rq, hyphaName) WriteRemoveMediaAsk(qb422016, rq, hyphaName)
//line views/modal.qtpl:27 //line hypview/remove_media.qtpl:27
qs422016 := string(qb422016.B) qs422016 := string(qb422016.B)
//line views/modal.qtpl:27 //line hypview/remove_media.qtpl:27
qt422016.ReleaseByteBuffer(qb422016) qt422016.ReleaseByteBuffer(qb422016)
//line views/modal.qtpl:27 //line hypview/remove_media.qtpl:27
return qs422016 return qs422016
//line views/modal.qtpl:27 //line hypview/remove_media.qtpl:27
} }

View File

@ -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=tree
//go:generate go run github.com/valyala/quicktemplate/qtc -dir=history //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=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. // Command mycorrhiza is a program that runs a mycorrhiza wiki.
package main package main

View File

@ -1,4 +1,4 @@
package views package misc
import ( import (
"github.com/bouncepaw/mycorrhiza/cfg" "github.com/bouncepaw/mycorrhiza/cfg"
@ -9,21 +9,21 @@ import (
"text/template" // sic! "text/template" // sic!
) )
type l10nEntry struct { type L10nEntry struct {
_en string _en string
_ru string _ru string
} }
func en(v string) l10nEntry { func En(v string) L10nEntry {
return l10nEntry{_en: v} return L10nEntry{_en: v}
} }
func (e l10nEntry) ru(v string) l10nEntry { func (e L10nEntry) Ru(v string) L10nEntry {
e._ru = v e._ru = v
return e return e
} }
func (e l10nEntry) get(lang string) string { func (e L10nEntry) Get(lang string) string {
if lang == "ru" && e._ru != "" { if lang == "ru" && e._ru != "" {
return e._ru return e._ru
} }
@ -66,30 +66,30 @@ const aboutTemplateString = `
</main>` </main>`
var aboutData = struct { var aboutData = struct {
L map[string]l10nEntry L map[string]L10nEntry
Cfg map[string]interface{} Cfg map[string]interface{}
Admins []string Admins []string
UserCount uint64 UserCount uint64
RegistrationLimit uint64 RegistrationLimit uint64
}{ }{
L: map[string]l10nEntry{ L: map[string]L10nEntry{
"Title": en("About %s").ru("О %s"), "Title": En("About %s").Ru("О %s"),
"Version": en("<a href=\"https://mycorrhiza.wiki\">Mycorrhiza Wiki</a> version").ru("Версия <a href=\"https://mycorrhiza.wiki\">Микоризы</a>"), "Version": En("<a href=\"https://mycorrhiza.wiki\">Mycorrhiza Wiki</a> version").Ru("Версия <a href=\"https://mycorrhiza.wiki\">Микоризы</a>"),
"UserCount": en("User count").ru("Число пользователей"), "UserCount": En("User count").Ru("Число пользователей"),
"HomeHypha": en("Home hypha").ru("Домашняя гифа"), "HomeHypha": En("Home hypha").Ru("Домашняя гифа"),
"RegistrationLimit": en("RegistrationLimit").ru("Максимум пользователей"), "RegistrationLimit": En("RegistrationLimit").Ru("Максимум пользователей"),
"Admins": en("Administrators").ru("Администраторы"), "Admins": En("Administrators").Ru("Администраторы"),
"Auth": en("Authentication").ru("Аутентификация"), "Auth": En("Authentication").Ru("Аутентификация"),
"AuthOn": en("Authentication is on").ru("Аутентификация включена"), "AuthOn": En("Authentication is on").Ru("Аутентификация включена"),
"AuthOff": en("Authentication is off").ru("Аутентификация не включена"), "AuthOff": En("Authentication is off").Ru("Аутентификация не включена"),
"TelegramOn": en("Telegram authentication is on").ru("Вход через Телеграм включён"), "TelegramOn": En("Telegram authentication is on").Ru("Вход через Телеграм включён"),
}, },
} }
func AboutHTML(lc *l18n.Localizer) string { func AboutHTML(lc *l18n.Localizer) string {
get := func(e l10nEntry) string { get := func(e L10nEntry) string {
return e.get(lc.Locale) return e.Get(lc.Locale)
} }
temp, err := template.New("about wiki").Funcs(template.FuncMap{"get": get}).Parse(aboutTemplateString) temp, err := template.New("about wiki").Funcs(template.FuncMap{"get": get}).Parse(aboutTemplateString)
if err != nil { if err != nil {

View File

@ -11,7 +11,6 @@ import (
"github.com/bouncepaw/mycorrhiza/static" "github.com/bouncepaw/mycorrhiza/static"
"github.com/bouncepaw/mycorrhiza/user" "github.com/bouncepaw/mycorrhiza/user"
"github.com/bouncepaw/mycorrhiza/util" "github.com/bouncepaw/mycorrhiza/util"
"github.com/bouncepaw/mycorrhiza/views"
"github.com/bouncepaw/mycorrhiza/viewutil" "github.com/bouncepaw/mycorrhiza/viewutil"
"github.com/gorilla/mux" "github.com/gorilla/mux"
"io" "io"
@ -122,10 +121,10 @@ func handlerAbout(w http.ResponseWriter, rq *http.Request) {
lc = l18n.FromRequest(rq) lc = l18n.FromRequest(rq)
title = lc.Get("ui.about_title", &l18n.Replacements{"name": cfg.WikiName}) 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), viewutil.MetaFrom(w, rq),
title, title,
views.AboutHTML(lc), AboutHTML(lc),
)) ))
if err != nil { if err != nil {
log.Println(err) log.Println(err)

View File

@ -1,9 +0,0 @@
package views
import (
"github.com/bouncepaw/mycorrhiza/viewutil"
)
var (
Base = viewutil.Base
)

View File

@ -18,7 +18,6 @@ import (
"github.com/bouncepaw/mycorrhiza/shroom" "github.com/bouncepaw/mycorrhiza/shroom"
"github.com/bouncepaw/mycorrhiza/user" "github.com/bouncepaw/mycorrhiza/user"
"github.com/bouncepaw/mycorrhiza/util" "github.com/bouncepaw/mycorrhiza/util"
"github.com/bouncepaw/mycorrhiza/views"
) )
func initMutators(r *mux.Router) { func initMutators(r *mux.Router) {
@ -47,10 +46,10 @@ func handlerRemoveMedia(w http.ResponseWriter, rq *http.Request) {
if rq.Method == "GET" { if rq.Method == "GET" {
util.HTTP200Page( util.HTTP200Page(
w, w,
views.Base( viewutil.Base(
meta, meta,
fmt.Sprintf(lc.Get("ui.ask_remove_media"), util.BeautifulName(h.CanonicalName())), fmt.Sprintf(lc.Get("ui.ask_remove_media"), util.BeautifulName(h.CanonicalName())),
views.RemoveMediaAsk(rq, h.CanonicalName()))) hypview.RemoveMediaAsk(rq, h.CanonicalName())))
return return
} }
switch h := h.(type) { switch h := h.(type) {
@ -173,10 +172,10 @@ func handlerEdit(w http.ResponseWriter, rq *http.Request) {
} }
util.HTTP200Page( util.HTTP200Page(
w, w,
views.Base( viewutil.Base(
meta, meta,
fmt.Sprintf(lc.Get("edit.title"), util.BeautifulName(hyphaName)), 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. // handlerUploadText uploads a new text part for the hypha.
@ -205,10 +204,10 @@ func handlerUploadText(w http.ResponseWriter, rq *http.Request) {
util.HTTP200Page( util.HTTP200Page(
w, w,
views.Base( viewutil.Base(
meta, meta,
fmt.Sprintf(lc.Get("edit.preview_title"), util.BeautifulName(hyphaName)), fmt.Sprintf(lc.Get("edit.preview_title"), util.BeautifulName(hyphaName)),
views.Preview( hypview.Preview(
rq, rq,
hyphaName, hyphaName,
textData, textData,

View File

@ -4,6 +4,7 @@ import (
"fmt" "fmt"
"github.com/bouncepaw/mycomarkup/v5" "github.com/bouncepaw/mycomarkup/v5"
"github.com/bouncepaw/mycorrhiza/files" "github.com/bouncepaw/mycorrhiza/files"
views2 "github.com/bouncepaw/mycorrhiza/hypview"
"github.com/bouncepaw/mycorrhiza/mycoopts" "github.com/bouncepaw/mycorrhiza/mycoopts"
"github.com/bouncepaw/mycorrhiza/viewutil" "github.com/bouncepaw/mycorrhiza/viewutil"
"io" "io"
@ -15,16 +16,14 @@ import (
"github.com/gorilla/mux" "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/history"
"github.com/bouncepaw/mycorrhiza/hyphae" "github.com/bouncepaw/mycorrhiza/hyphae"
"github.com/bouncepaw/mycorrhiza/l18n" "github.com/bouncepaw/mycorrhiza/l18n"
"github.com/bouncepaw/mycorrhiza/mimetype" "github.com/bouncepaw/mycorrhiza/mimetype"
"github.com/bouncepaw/mycorrhiza/user" "github.com/bouncepaw/mycorrhiza/user"
"github.com/bouncepaw/mycorrhiza/util" "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) { func initReaders(r *mux.Router) {
@ -46,10 +45,10 @@ func handlerMedia(w http.ResponseWriter, rq *http.Request) {
lc = l18n.FromRequest(rq) lc = l18n.FromRequest(rq)
) )
util.HTTP200Page(w, util.HTTP200Page(w,
views.Base( viewutil.Base(
viewutil.MetaFrom(w, rq), viewutil.MetaFrom(w, rq),
lc.Get("ui.media_title", &l18n.Replacements{"name": util.BeautifulName(hyphaName)}), 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. // 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)) contents = mycomarkup.BlocksToHTML(ctx, mycomarkup.BlockTree(ctx))
} }
page := views.Revision( page := views2.Revision(
viewutil.MetaFrom(w, rq), viewutil.MetaFrom(w, rq),
h, h,
contents, contents,
@ -138,7 +137,7 @@ func handlerRevision(w http.ResponseWriter, rq *http.Request) {
w.WriteHeader(http.StatusOK) w.WriteHeader(http.StatusOK)
_, _ = fmt.Fprint( _, _ = fmt.Fprint(
w, w,
views.Base( viewutil.Base(
viewutil.MetaFrom(w, rq), viewutil.MetaFrom(w, rq),
lc.Get("ui.revision_title", &l18n.Replacements{"name": util.BeautifulName(hyphaName), "rev": revHash}), lc.Get("ui.revision_title", &l18n.Replacements{"name": util.BeautifulName(hyphaName), "rev": revHash}),
page, page,
@ -188,10 +187,10 @@ func handlerHypha(w http.ResponseWriter, rq *http.Request) {
switch h := h.(type) { switch h := h.(type) {
case *hyphae.EmptyHypha: case *hyphae.EmptyHypha:
util.HTTP404Page(w, util.HTTP404Page(w,
views.Base( viewutil.Base(
viewutil.MetaFrom(w, rq), viewutil.MetaFrom(w, rq),
util.BeautifulName(hyphaName), util.BeautifulName(hyphaName),
views.Hypha(viewutil.MetaFrom(w, rq), h, contents), views2.Hypha(viewutil.MetaFrom(w, rq), h, contents),
openGraph)) openGraph))
case hyphae.ExistingHypha: case hyphae.ExistingHypha:
fileContentsT, errT := os.ReadFile(h.TextFilePath()) fileContentsT, errT := os.ReadFile(h.TextFilePath())
@ -208,10 +207,10 @@ func handlerHypha(w http.ResponseWriter, rq *http.Request) {
} }
util.HTTP200Page(w, util.HTTP200Page(w,
views.Base( viewutil.Base(
viewutil.MetaFrom(w, rq), viewutil.MetaFrom(w, rq),
util.BeautifulName(hyphaName), util.BeautifulName(hyphaName),
views.Hypha(viewutil.MetaFrom(w, rq), h, contents), views2.Hypha(viewutil.MetaFrom(w, rq), h, contents),
openGraph)) openGraph))
} }
} }

View File

@ -3,6 +3,7 @@ package web
import ( import (
"github.com/bouncepaw/mycorrhiza/admin" "github.com/bouncepaw/mycorrhiza/admin"
"github.com/bouncepaw/mycorrhiza/auth"
"github.com/bouncepaw/mycorrhiza/backlinks" "github.com/bouncepaw/mycorrhiza/backlinks"
"github.com/bouncepaw/mycorrhiza/categories" "github.com/bouncepaw/mycorrhiza/categories"
"github.com/bouncepaw/mycorrhiza/help" "github.com/bouncepaw/mycorrhiza/help"
@ -36,7 +37,7 @@ func Handler() http.Handler {
router.StrictSlash(true) router.StrictSlash(true)
// Public routes. They're always accessible regardless of the user status. // Public routes. They're always accessible regardless of the user status.
initAuth(router) auth.InitAuth(router)
// Wiki routes. They may be locked or restricted. // Wiki routes. They may be locked or restricted.
wikiRouter := router.PathPrefix("").Subrouter() wikiRouter := router.PathPrefix("").Subrouter()