diff --git a/backlinks/view_backlinks.html b/backlinks/view_backlinks.html
index 55f415c..1c51e42 100644
--- a/backlinks/view_backlinks.html
+++ b/backlinks/view_backlinks.html
@@ -1,17 +1,15 @@
{{define "backlinks to text"}}Backlinks to {{.}}{{end}}
{{define "title"}}{{template "backlinks to text" .HyphaName}}{{end}}
{{define "body"}}
-
-
- {{block "backlinks to link" .HyphaName}}Backlinks to {{beautifulName .}} {{end}}
- {{block "description" .}}Hyphae which have a link to this hypha, embed it as an image or transclude it are listed below.{{end}}
-
- {{range .Backlinks}}
-
- {{beautifulName .}}
-
- {{end}}
-
-
-
+
+ {{block "backlinks to link" .HyphaName}}Backlinks to {{beautifulName .}} {{end}}
+ {{block "description" .}}Hyphae which have a link to this hypha, embed it as an image or transclude it are listed below.{{end}}
+
+ {{range .Backlinks}}
+
+ {{beautifulName .}}
+
+ {{end}}
+
+
{{end}}
\ No newline at end of file
diff --git a/help/view_help.html b/help/view_help.html
index ed426b7..91be901 100644
--- a/help/view_help.html
+++ b/help/view_help.html
@@ -1,50 +1,48 @@
{{define "title"}}Help{{end}}
{{define "body"}}
-
-
-
- {{if .ContentsHTML}}
- {{.ContentsHTML}}
- {{else}}
- {{block "entry not found" .}}Entry not found{{end}}
- {{block "entry not found invitation" .}}If you want to write this entry by yourself, consider contributing it directly.{{end}}
- {{end}}
-
-
-
- {{block "topics" .}}Help topics{{end}}
-
-
-
+
+
+ {{if .ContentsHTML}}
+ {{.ContentsHTML}}
+ {{else}}
+ {{block "entry not found" .}}Entry not found{{end}}
+ {{block "entry not found invitation" .}}If you want to write this entry by yourself, consider contributing it directly.{{end}}
+ {{end}}
+
+
+
+ {{block "topics" .}}Help topics{{end}}
+
+
{{end}}
diff --git a/misc/view_list.html b/misc/view_list.html
index 0b99b5b..1fdc393 100644
--- a/misc/view_list.html
+++ b/misc/view_list.html
@@ -1,21 +1,19 @@
{{define "list of hyphae"}}List of hyphae{{end}}
{{define "title"}}{{template "list of hyphae"}}{{end}}
{{define "body"}}
-
-
- {{template "list of hyphae"}}
-
- {{range .Entries}}
-
-
- {{beautifulName .Name}}
-
- {{if .Ext}}
- {{.Ext}}
- {{end}}
-
- {{end}}
-
-
-
+
+ {{template "list of hyphae"}}
+
+ {{range .Entries}}
+
+
+ {{beautifulName .Name}}
+
+ {{if .Ext}}
+ {{.Ext}}
+ {{end}}
+
+ {{end}}
+
+
{{end}}
\ No newline at end of file
diff --git a/misc/view_title_search.html b/misc/view_title_search.html
index 0ce4872..316281f 100644
--- a/misc/view_title_search.html
+++ b/misc/view_title_search.html
@@ -1,7 +1,7 @@
{{define "search:"}}Search: {{.}}{{end}}
{{define "title"}}{{template "search:" .Query}}{{end}}
{{define "body"}}
-
+
{{block "search results for" .Query}}Search results for ‘{{.}}’{{end}}
{{block "search desc" .}}Every hypha name has been compared with the query. Hyphae that have matched the query are listed below.{{end}}
@@ -11,6 +11,5 @@
{{end}}
-
-
+
{{end}}
\ No newline at end of file
diff --git a/static/default.css b/static/default.css
index 2aa3ac7..bb641a0 100644
--- a/static/default.css
+++ b/static/default.css
@@ -20,14 +20,14 @@
/* General element positions, from small to big */
/* Phones and whatnot */
-.layout { display: grid; row-gap: 1rem; }
-header { width: 100%; margin-bottom: 1rem; }
+body { display: grid; row-gap: .5rem; }
+header { width: 100%; }
.layout-card li { list-style-type: none; }
@media screen and (max-width: 800px) {
.amnt-grid { grid-template-columns: 1fr; }
- .layout { grid-template-columns: auto; grid-template-rows: auto auto auto; }
+ body { grid-template-columns: auto; grid-template-rows: auto auto auto; }
.main-width { width: 100%; }
main { padding: .5rem 1rem 1rem 1rem; }
}
@@ -55,13 +55,14 @@ header { width: 100%; margin-bottom: 1rem; }
/* Wide enough to fit two columns ok */
@media screen and (min-width: 1100px) {
- .layout { display: grid; grid-template-columns: auto 1fr; column-gap: 1rem; margin: 0 1rem; row-gap: 1rem; }
- .main-width { margin: 0; }
- main { grid-column: 1 / span 1; grid-row: 1 / span 2; }
- .markup-toolbar, .help-topics, .categories-card { grid-column: 2 / span 1; grid-row: 1 / span 1; }
- .sibling-hyphae { grid-column: 2 / span 1; grid-row: 2 / span 1; }
- .action-toolbar { grid-column: 2 / span 1; grid-row: 2 / span 1; }
- .layout-card { width: 100%; }
+ body { display: grid; grid-template-columns: auto 1fr; column-gap: 1rem; margin: 0 1rem; row-gap: .5rem; }
+ header { grid-column: 1 / span 2; grid-row: 1 / span 1; margin: 0; }
+ main { grid-column: 1 / span 1; grid-row: 2 / span 2; }
+ main.main-width { margin-left: .5rem; }
+ .markup-toolbar, .help-topics, .categories-card { grid-column: 2 / span 1; grid-row: 2 / span 1; }
+ .sibling-hyphae { grid-column: 2 / span 1; grid-row: 3 / span 1; }
+ .action-toolbar { grid-column: 2 / span 1; grid-row: 3 / span 1; }
+ .layout-card { width: 100%; margin-left: -.5rem; }
.edit-toolbar__buttons {display: grid; }
}
@@ -69,14 +70,15 @@ header { width: 100%; margin-bottom: 1rem; }
.edit-toolbar__buttons { grid-template-columns: 1fr 1fr; grid-column-gap: .125rem; }
}
-@media screen and (min-width: 1250px) {
- .layout { grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); }
+@media screen and (min-width: 1200px) {
+ body { grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); }
+ header { grid-column: 1 / span 3; grid-row: 1 / span 1; margin: 0; }
.layout-card {max-width: 18rem;}
.main-width { margin: 0 auto; }
- main { grid-column: 2 / span 1; grid-row: 1 / span 3; }
- .sibling-hyphae, .markup-toolbar, .help-topics { grid-column: 3 / span 1; margin-left: 0; grid-row: 1 / span 2; }
- .markup-toolbar { grid-column: 3 / span 1; grid-row: 1 / span 2; }
- .action-toolbar, .categories-card { grid-column: 1 / span 1; grid-row: 1 / span 1; }
+ main { grid-column: 2 / span 1; grid-row: 2 / span 3; }
+ .sibling-hyphae, .markup-toolbar, .help-topics { grid-column: 3 / span 1; margin-left: -.5rem; grid-row: 2 / span 2; }
+ .markup-toolbar { grid-column: 3 / span 1; grid-row: 2 / span 2; margin-left: -.5rem; }
+ .action-toolbar, .categories-card { grid-column: 1 / span 1; grid-row: 2 / span 1; margin-left: .5rem; }
.edit-toolbar__buttons { grid-template-columns: 1fr; }
}
diff --git a/views/about.go b/views/about.go
index 8edb896..f0ad2dd 100644
--- a/views/about.go
+++ b/views/about.go
@@ -30,7 +30,7 @@ func (e l10nEntry) get(lang string) string {
return e._en
}
-const aboutTemplateString = `
+const aboutTemplateString = `
{{ printf (get .L.Title) .Cfg.WikiName }}
@@ -59,8 +59,7 @@ const aboutTemplateString = `
{{ end }}
-
-
`
+ `
var aboutData = struct {
L map[string]l10nEntry
diff --git a/views/admin.html b/views/admin.html
index 2445d96..f6b17d7 100644
--- a/views/admin.html
+++ b/views/admin.html
@@ -1,34 +1,32 @@
{{define "panel title"}}Administrative functions{{end}}
{{define "panel"}}
-
-
- {{template "panel title"}}
-
- {{block "panel safe section title" .}}Safe section{{end}}
-
-
-
- {{block "panel unsafe section title" .}}Unsafe section{{end}}
-
-
-
-
+
+ {{template "panel title"}}
+
+ {{block "panel safe section title" .}}Safe section{{end}}
+
+
+
+ {{block "panel unsafe section title" .}}Unsafe section{{end}}
+
+
+
{{end}}
diff --git a/views/admin.qtpl b/views/admin.qtpl
index f27a6d7..e972fcf 100644
--- a/views/admin.qtpl
+++ b/views/admin.qtpl
@@ -5,7 +5,6 @@
{% import "github.com/bouncepaw/mycorrhiza/util" %}
{% func AdminUsersPanel(userList []*user.User, lc *l18n.Localizer) %}
-
{%s lc.Get("admin.users_title") %}
@@ -47,11 +46,9 @@
-
{% endfunc %}
{% func AdminUserNew(f util.FormData, lc *l18n.Localizer) %}
-
{%s lc.Get("admin.newuser_title") %}
@@ -92,11 +89,9 @@
-
{% endfunc %}
{% func AdminUserEdit(u *user.User, f util.FormData, lc *l18n.Localizer) %}
-
{% endfunc %}
{% func AdminUserDelete(u *user.User, f util.FormData, lc *l18n.Localizer) %}
-
{% endfunc %}
diff --git a/views/admin.qtpl.go b/views/admin.qtpl.go
index b24b452..a16d298 100644
--- a/views/admin.qtpl.go
+++ b/views/admin.qtpl.go
@@ -36,24 +36,23 @@ var (
func StreamAdminUsersPanel(qw422016 *qt422016.Writer, userList []*user.User, lc *l18n.Localizer) {
//line views/admin.qtpl:7
qw422016.N().S(`
-
`)
-//line views/admin.qtpl:10
+//line views/admin.qtpl:9
qw422016.E().S(lc.Get("admin.users_title"))
-//line views/admin.qtpl:10
+//line views/admin.qtpl:9
qw422016.N().S(`
@@ -63,245 +62,243 @@ func StreamAdminUsersPanel(qw422016 *qt422016.Writer, userList []*user.User, lc
`)
-//line views/admin.qtpl:22
+//line views/admin.qtpl:21
qw422016.E().S(lc.Get("admin.users_name"))
+//line views/admin.qtpl:21
+ qw422016.N().S(`
+ `)
+//line views/admin.qtpl:22
+ qw422016.E().S(lc.Get("admin.users_group"))
//line views/admin.qtpl:22
qw422016.N().S(`
`)
//line views/admin.qtpl:23
- qw422016.E().S(lc.Get("admin.users_group"))
-//line views/admin.qtpl:23
- qw422016.N().S(`
- `)
-//line views/admin.qtpl:24
qw422016.E().S(lc.Get("admin.users_registered"))
-//line views/admin.qtpl:24
+//line views/admin.qtpl:23
qw422016.N().S(`
`)
-//line views/admin.qtpl:29
+//line views/admin.qtpl:28
for _, u := range userList {
-//line views/admin.qtpl:29
+//line views/admin.qtpl:28
qw422016.N().S(`
`)
-//line views/admin.qtpl:32
+//line views/admin.qtpl:31
qw422016.E().S(u.Name)
-//line views/admin.qtpl:32
+//line views/admin.qtpl:31
qw422016.N().S(`
`)
-//line views/admin.qtpl:34
+//line views/admin.qtpl:33
qw422016.E().S(u.Group)
-//line views/admin.qtpl:34
+//line views/admin.qtpl:33
qw422016.N().S(`
`)
-//line views/admin.qtpl:36
+//line views/admin.qtpl:35
if u.RegisteredAt.IsZero() {
+//line views/admin.qtpl:35
+ qw422016.N().S(`
+ `)
+//line views/admin.qtpl:36
+ qw422016.E().S(lc.Get("admin.users_notime"))
//line views/admin.qtpl:36
- qw422016.N().S(`
- `)
-//line views/admin.qtpl:37
- qw422016.E().S(lc.Get("admin.users_notime"))
-//line views/admin.qtpl:37
qw422016.N().S(`
`)
-//line views/admin.qtpl:38
+//line views/admin.qtpl:37
} else {
-//line views/admin.qtpl:38
+//line views/admin.qtpl:37
qw422016.N().S(`
`)
-//line views/admin.qtpl:39
+//line views/admin.qtpl:38
qw422016.E().S(u.RegisteredAt.UTC().Format("2006-01-02 15:04"))
-//line views/admin.qtpl:39
+//line views/admin.qtpl:38
qw422016.N().S(`
`)
-//line views/admin.qtpl:40
+//line views/admin.qtpl:39
}
-//line views/admin.qtpl:40
+//line views/admin.qtpl:39
qw422016.N().S(`
`)
-//line views/admin.qtpl:43
+//line views/admin.qtpl:42
qw422016.E().S(lc.Get("admin.users_edit"))
-//line views/admin.qtpl:43
+//line views/admin.qtpl:42
qw422016.N().S(`
`)
-//line views/admin.qtpl:46
+//line views/admin.qtpl:45
}
-//line views/admin.qtpl:46
+//line views/admin.qtpl:45
qw422016.N().S(`
-
`)
-//line views/admin.qtpl:51
+//line views/admin.qtpl:49
}
-//line views/admin.qtpl:51
+//line views/admin.qtpl:49
func WriteAdminUsersPanel(qq422016 qtio422016.Writer, userList []*user.User, lc *l18n.Localizer) {
-//line views/admin.qtpl:51
+//line views/admin.qtpl:49
qw422016 := qt422016.AcquireWriter(qq422016)
-//line views/admin.qtpl:51
+//line views/admin.qtpl:49
StreamAdminUsersPanel(qw422016, userList, lc)
-//line views/admin.qtpl:51
+//line views/admin.qtpl:49
qt422016.ReleaseWriter(qw422016)
-//line views/admin.qtpl:51
+//line views/admin.qtpl:49
}
-//line views/admin.qtpl:51
+//line views/admin.qtpl:49
func AdminUsersPanel(userList []*user.User, lc *l18n.Localizer) string {
-//line views/admin.qtpl:51
+//line views/admin.qtpl:49
qb422016 := qt422016.AcquireByteBuffer()
-//line views/admin.qtpl:51
+//line views/admin.qtpl:49
WriteAdminUsersPanel(qb422016, userList, lc)
-//line views/admin.qtpl:51
+//line views/admin.qtpl:49
qs422016 := string(qb422016.B)
-//line views/admin.qtpl:51
+//line views/admin.qtpl:49
qt422016.ReleaseByteBuffer(qb422016)
-//line views/admin.qtpl:51
+//line views/admin.qtpl:49
return qs422016
-//line views/admin.qtpl:51
+//line views/admin.qtpl:49
}
-//line views/admin.qtpl:53
+//line views/admin.qtpl:51
func StreamAdminUserNew(qw422016 *qt422016.Writer, f util.FormData, lc *l18n.Localizer) {
-//line views/admin.qtpl:53
+//line views/admin.qtpl:51
qw422016.N().S(`
-
`)
-//line views/admin.qtpl:56
+//line views/admin.qtpl:53
qw422016.E().S(lc.Get("admin.newuser_title"))
-//line views/admin.qtpl:56
+//line views/admin.qtpl:53
qw422016.N().S(`
`)
-//line views/admin.qtpl:58
+//line views/admin.qtpl:55
if f.HasError() {
-//line views/admin.qtpl:58
+//line views/admin.qtpl:55
qw422016.N().S(`
`)
-//line views/admin.qtpl:60
+//line views/admin.qtpl:57
qw422016.E().S(lc.Get("ui.error"))
-//line views/admin.qtpl:60
+//line views/admin.qtpl:57
qw422016.N().S(`:
`)
-//line views/admin.qtpl:61
+//line views/admin.qtpl:58
qw422016.E().S(f.Error())
-//line views/admin.qtpl:61
+//line views/admin.qtpl:58
qw422016.N().S(`
`)
-//line views/admin.qtpl:63
+//line views/admin.qtpl:60
}
-//line views/admin.qtpl:63
+//line views/admin.qtpl:60
qw422016.N().S(`
-
`)
-//line views/admin.qtpl:96
+//line views/admin.qtpl:92
}
-//line views/admin.qtpl:96
+//line views/admin.qtpl:92
func WriteAdminUserNew(qq422016 qtio422016.Writer, f util.FormData, lc *l18n.Localizer) {
-//line views/admin.qtpl:96
+//line views/admin.qtpl:92
qw422016 := qt422016.AcquireWriter(qq422016)
-//line views/admin.qtpl:96
+//line views/admin.qtpl:92
StreamAdminUserNew(qw422016, f, lc)
-//line views/admin.qtpl:96
+//line views/admin.qtpl:92
qt422016.ReleaseWriter(qw422016)
-//line views/admin.qtpl:96
+//line views/admin.qtpl:92
}
-//line views/admin.qtpl:96
+//line views/admin.qtpl:92
func AdminUserNew(f util.FormData, lc *l18n.Localizer) string {
-//line views/admin.qtpl:96
+//line views/admin.qtpl:92
qb422016 := qt422016.AcquireByteBuffer()
-//line views/admin.qtpl:96
+//line views/admin.qtpl:92
WriteAdminUserNew(qb422016, f, lc)
-//line views/admin.qtpl:96
+//line views/admin.qtpl:92
qs422016 := string(qb422016.B)
-//line views/admin.qtpl:96
+//line views/admin.qtpl:92
qt422016.ReleaseByteBuffer(qb422016)
-//line views/admin.qtpl:96
+//line views/admin.qtpl:92
return qs422016
-//line views/admin.qtpl:96
+//line views/admin.qtpl:92
}
-//line views/admin.qtpl:98
+//line views/admin.qtpl:94
func StreamAdminUserEdit(qw422016 *qt422016.Writer, u *user.User, f util.FormData, lc *l18n.Localizer) {
-//line views/admin.qtpl:98
+//line views/admin.qtpl:94
qw422016.N().S(`
-
←
`)
-//line views/admin.qtpl:103
+//line views/admin.qtpl:98
qw422016.E().S(u.Name)
-//line views/admin.qtpl:103
+//line views/admin.qtpl:98
qw422016.N().S(`
`)
-//line views/admin.qtpl:106
+//line views/admin.qtpl:101
qw422016.E().S(lc.Get("admin.user_group_heading"))
-//line views/admin.qtpl:106
+//line views/admin.qtpl:101
qw422016.N().S(`
`)
-//line views/admin.qtpl:108
+//line views/admin.qtpl:103
if f.HasError() {
-//line views/admin.qtpl:108
+//line views/admin.qtpl:103
qw422016.N().S(`
`)
-//line views/admin.qtpl:110
+//line views/admin.qtpl:105
qw422016.E().S(lc.Get("ui.error"))
-//line views/admin.qtpl:110
+//line views/admin.qtpl:105
qw422016.N().S(`:
`)
-//line views/admin.qtpl:111
+//line views/admin.qtpl:106
qw422016.E().S(f.Error())
-//line views/admin.qtpl:111
+//line views/admin.qtpl:106
qw422016.N().S(`
`)
-//line views/admin.qtpl:113
+//line views/admin.qtpl:108
}
-//line views/admin.qtpl:113
+//line views/admin.qtpl:108
qw422016.N().S(`
`)
-//line views/admin.qtpl:131
+//line views/admin.qtpl:126
qw422016.E().S(lc.Get("admin.user_delete_heading"))
-//line views/admin.qtpl:131
+//line views/admin.qtpl:126
qw422016.N().S(`
`)
-//line views/admin.qtpl:132
+//line views/admin.qtpl:127
qw422016.E().S(lc.Get("admin.user_delete_tip"))
-//line views/admin.qtpl:132
+//line views/admin.qtpl:127
qw422016.N().S(`
`)
-//line views/admin.qtpl:133
+//line views/admin.qtpl:128
qw422016.E().S(lc.Get("admin.user_delete"))
-//line views/admin.qtpl:133
+//line views/admin.qtpl:128
qw422016.N().S(`
-
`)
-//line views/admin.qtpl:136
+//line views/admin.qtpl:130
}
-//line views/admin.qtpl:136
+//line views/admin.qtpl:130
func WriteAdminUserEdit(qq422016 qtio422016.Writer, u *user.User, f util.FormData, lc *l18n.Localizer) {
-//line views/admin.qtpl:136
+//line views/admin.qtpl:130
qw422016 := qt422016.AcquireWriter(qq422016)
-//line views/admin.qtpl:136
+//line views/admin.qtpl:130
StreamAdminUserEdit(qw422016, u, f, lc)
-//line views/admin.qtpl:136
+//line views/admin.qtpl:130
qt422016.ReleaseWriter(qw422016)
-//line views/admin.qtpl:136
+//line views/admin.qtpl:130
}
-//line views/admin.qtpl:136
+//line views/admin.qtpl:130
func AdminUserEdit(u *user.User, f util.FormData, lc *l18n.Localizer) string {
-//line views/admin.qtpl:136
+//line views/admin.qtpl:130
qb422016 := qt422016.AcquireByteBuffer()
-//line views/admin.qtpl:136
+//line views/admin.qtpl:130
WriteAdminUserEdit(qb422016, u, f, lc)
-//line views/admin.qtpl:136
+//line views/admin.qtpl:130
qs422016 := string(qb422016.B)
-//line views/admin.qtpl:136
+//line views/admin.qtpl:130
qt422016.ReleaseByteBuffer(qb422016)
-//line views/admin.qtpl:136
+//line views/admin.qtpl:130
return qs422016
-//line views/admin.qtpl:136
+//line views/admin.qtpl:130
}
-//line views/admin.qtpl:138
+//line views/admin.qtpl:132
func StreamAdminUserDelete(qw422016 *qt422016.Writer, u *user.User, f util.FormData, lc *l18n.Localizer) {
-//line views/admin.qtpl:138
+//line views/admin.qtpl:132
qw422016.N().S(`
-
`)
-//line views/admin.qtpl:141
+//line views/admin.qtpl:134
qw422016.E().S(lc.Get("admin.user_delete_heading"))
-//line views/admin.qtpl:141
+//line views/admin.qtpl:134
qw422016.N().S(`
`)
-//line views/admin.qtpl:143
+//line views/admin.qtpl:136
if f.HasError() {
-//line views/admin.qtpl:143
+//line views/admin.qtpl:136
qw422016.N().S(`
`)
-//line views/admin.qtpl:145
+//line views/admin.qtpl:138
qw422016.E().S(lc.Get("ui.error"))
-//line views/admin.qtpl:145
+//line views/admin.qtpl:138
qw422016.N().S(`:
`)
-//line views/admin.qtpl:146
+//line views/admin.qtpl:139
qw422016.E().S(f.Error())
-//line views/admin.qtpl:146
+//line views/admin.qtpl:139
qw422016.N().S(`
`)
-//line views/admin.qtpl:148
+//line views/admin.qtpl:141
}
-//line views/admin.qtpl:148
+//line views/admin.qtpl:141
qw422016.N().S(`
`)
-//line views/admin.qtpl:150
+//line views/admin.qtpl:143
qw422016.N().S(lc.Get("admin.user_delete_warn", &l18n.Replacements{"name": fmt.Sprintf("%s ", u.Name)}))
-//line views/admin.qtpl:150
+//line views/admin.qtpl:143
qw422016.N().S(`
-
`)
-//line views/admin.qtpl:158
+//line views/admin.qtpl:150
}
-//line views/admin.qtpl:158
+//line views/admin.qtpl:150
func WriteAdminUserDelete(qq422016 qtio422016.Writer, u *user.User, f util.FormData, lc *l18n.Localizer) {
-//line views/admin.qtpl:158
+//line views/admin.qtpl:150
qw422016 := qt422016.AcquireWriter(qq422016)
-//line views/admin.qtpl:158
+//line views/admin.qtpl:150
StreamAdminUserDelete(qw422016, u, f, lc)
-//line views/admin.qtpl:158
+//line views/admin.qtpl:150
qt422016.ReleaseWriter(qw422016)
-//line views/admin.qtpl:158
+//line views/admin.qtpl:150
}
-//line views/admin.qtpl:158
+//line views/admin.qtpl:150
func AdminUserDelete(u *user.User, f util.FormData, lc *l18n.Localizer) string {
-//line views/admin.qtpl:158
+//line views/admin.qtpl:150
qb422016 := qt422016.AcquireByteBuffer()
-//line views/admin.qtpl:158
+//line views/admin.qtpl:150
WriteAdminUserDelete(qb422016, u, f, lc)
-//line views/admin.qtpl:158
+//line views/admin.qtpl:150
qs422016 := string(qb422016.B)
-//line views/admin.qtpl:158
+//line views/admin.qtpl:150
qt422016.ReleaseByteBuffer(qb422016)
-//line views/admin.qtpl:158
+//line views/admin.qtpl:150
return qs422016
-//line views/admin.qtpl:158
+//line views/admin.qtpl:150
}
diff --git a/views/auth.qtpl b/views/auth.qtpl
index fc94ec5..c248edd 100644
--- a/views/auth.qtpl
+++ b/views/auth.qtpl
@@ -8,7 +8,6 @@
{% code
lc := l18n.FromRequest(rq)
%}
-
{% if cfg.AllowRegistration %}
@@ -39,11 +38,9 @@
{% endif %}
-
{% endfunc %}
{% func Login(lc *l18n.Localizer) %}
-
{% if cfg.UseAuth %}
@@ -69,7 +66,6 @@
{% endif %}
-
{% endfunc %}
Telegram auth widget was requested by Yogurt. As you can see, we don't offer user administrators control over it. Of course we don't.
@@ -81,7 +77,6 @@ Telegram auth widget was requested by Yogurt. As you can see, we don't offer use
{% endfunc %}
{% func LoginError(err string, lc *l18n.Localizer) %}
-
{% endfunc %}
{% func Logout(can bool, lc *l18n.Localizer) %}
-
{% if can %}
@@ -115,7 +108,6 @@ Telegram auth widget was requested by Yogurt. As you can see, we don't offer use
{% endif %}
-
{% endfunc %}
{% func Lock(lc *l18n.Localizer) %}
@@ -161,7 +153,6 @@ var userListL10n = map[string]l10nEntry{
%}
{% func UserList(lc *l18n.Localizer) %}
-
{% code
var get = func(key string) string {
@@ -208,5 +199,4 @@ sort.Strings(editors)
{% endfor %}
-
{% endfunc %}
\ No newline at end of file
diff --git a/views/auth.qtpl.go b/views/auth.qtpl.go
index 8f54d26..437979b 100644
--- a/views/auth.qtpl.go
+++ b/views/auth.qtpl.go
@@ -42,489 +42,481 @@ func StreamRegister(qw422016 *qt422016.Writer, rq *http.Request) {
//line views/auth.qtpl:10
qw422016.N().S(`
-
`)
-//line views/auth.qtpl:43
+//line views/auth.qtpl:41
}
-//line views/auth.qtpl:43
+//line views/auth.qtpl:41
func WriteRegister(qq422016 qtio422016.Writer, rq *http.Request) {
-//line views/auth.qtpl:43
+//line views/auth.qtpl:41
qw422016 := qt422016.AcquireWriter(qq422016)
-//line views/auth.qtpl:43
+//line views/auth.qtpl:41
StreamRegister(qw422016, rq)
-//line views/auth.qtpl:43
+//line views/auth.qtpl:41
qt422016.ReleaseWriter(qw422016)
-//line views/auth.qtpl:43
+//line views/auth.qtpl:41
}
-//line views/auth.qtpl:43
+//line views/auth.qtpl:41
func Register(rq *http.Request) string {
-//line views/auth.qtpl:43
+//line views/auth.qtpl:41
qb422016 := qt422016.AcquireByteBuffer()
-//line views/auth.qtpl:43
+//line views/auth.qtpl:41
WriteRegister(qb422016, rq)
-//line views/auth.qtpl:43
+//line views/auth.qtpl:41
qs422016 := string(qb422016.B)
-//line views/auth.qtpl:43
+//line views/auth.qtpl:41
qt422016.ReleaseByteBuffer(qb422016)
-//line views/auth.qtpl:43
+//line views/auth.qtpl:41
return qs422016
-//line views/auth.qtpl:43
+//line views/auth.qtpl:41
}
-//line views/auth.qtpl:45
+//line views/auth.qtpl:43
func StreamLogin(qw422016 *qt422016.Writer, lc *l18n.Localizer) {
-//line views/auth.qtpl:45
+//line views/auth.qtpl:43
qw422016.N().S(`
-
`)
-//line views/auth.qtpl:49
+//line views/auth.qtpl:46
if cfg.UseAuth {
-//line views/auth.qtpl:49
+//line views/auth.qtpl:46
qw422016.N().S(`
`)
-//line views/auth.qtpl:65
+//line views/auth.qtpl:62
streamtelegramWidget(qw422016, lc)
-//line views/auth.qtpl:65
+//line views/auth.qtpl:62
qw422016.N().S(`
`)
-//line views/auth.qtpl:66
+//line views/auth.qtpl:63
} else {
-//line views/auth.qtpl:66
+//line views/auth.qtpl:63
qw422016.N().S(`
`)
-//line views/auth.qtpl:67
+//line views/auth.qtpl:64
qw422016.E().S(lc.Get("auth.noauth"))
-//line views/auth.qtpl:67
+//line views/auth.qtpl:64
qw422016.N().S(`
← `)
-//line views/auth.qtpl:68
+//line views/auth.qtpl:65
qw422016.E().S(lc.Get("auth.go_home"))
-//line views/auth.qtpl:68
+//line views/auth.qtpl:65
qw422016.N().S(`
`)
-//line views/auth.qtpl:69
+//line views/auth.qtpl:66
}
-//line views/auth.qtpl:69
+//line views/auth.qtpl:66
qw422016.N().S(`
-
`)
-//line views/auth.qtpl:73
+//line views/auth.qtpl:69
}
-//line views/auth.qtpl:73
+//line views/auth.qtpl:69
func WriteLogin(qq422016 qtio422016.Writer, lc *l18n.Localizer) {
-//line views/auth.qtpl:73
+//line views/auth.qtpl:69
qw422016 := qt422016.AcquireWriter(qq422016)
-//line views/auth.qtpl:73
+//line views/auth.qtpl:69
StreamLogin(qw422016, lc)
-//line views/auth.qtpl:73
+//line views/auth.qtpl:69
qt422016.ReleaseWriter(qw422016)
-//line views/auth.qtpl:73
+//line views/auth.qtpl:69
}
-//line views/auth.qtpl:73
+//line views/auth.qtpl:69
func Login(lc *l18n.Localizer) string {
-//line views/auth.qtpl:73
+//line views/auth.qtpl:69
qb422016 := qt422016.AcquireByteBuffer()
-//line views/auth.qtpl:73
+//line views/auth.qtpl:69
WriteLogin(qb422016, lc)
-//line views/auth.qtpl:73
+//line views/auth.qtpl:69
qs422016 := string(qb422016.B)
-//line views/auth.qtpl:73
+//line views/auth.qtpl:69
qt422016.ReleaseByteBuffer(qb422016)
-//line views/auth.qtpl:73
+//line views/auth.qtpl:69
return qs422016
-//line views/auth.qtpl:73
+//line views/auth.qtpl:69
}
// Telegram auth widget was requested by Yogurt. As you can see, we don't offer user administrators control over it. Of course we don't.
-//line views/auth.qtpl:76
+//line views/auth.qtpl:72
func streamtelegramWidget(qw422016 *qt422016.Writer, lc *l18n.Localizer) {
-//line views/auth.qtpl:76
+//line views/auth.qtpl:72
qw422016.N().S(`
`)
-//line views/auth.qtpl:77
+//line views/auth.qtpl:73
if cfg.TelegramEnabled {
-//line views/auth.qtpl:77
+//line views/auth.qtpl:73
qw422016.N().S(`
`)
-//line views/auth.qtpl:78
+//line views/auth.qtpl:74
qw422016.E().S(lc.Get("auth.telegram_tip"))
-//line views/auth.qtpl:78
+//line views/auth.qtpl:74
qw422016.N().S(`
`)
-//line views/auth.qtpl:80
+//line views/auth.qtpl:76
}
-//line views/auth.qtpl:80
+//line views/auth.qtpl:76
qw422016.N().S(`
`)
-//line views/auth.qtpl:81
+//line views/auth.qtpl:77
}
-//line views/auth.qtpl:81
+//line views/auth.qtpl:77
func writetelegramWidget(qq422016 qtio422016.Writer, lc *l18n.Localizer) {
-//line views/auth.qtpl:81
+//line views/auth.qtpl:77
qw422016 := qt422016.AcquireWriter(qq422016)
-//line views/auth.qtpl:81
+//line views/auth.qtpl:77
streamtelegramWidget(qw422016, lc)
-//line views/auth.qtpl:81
+//line views/auth.qtpl:77
qt422016.ReleaseWriter(qw422016)
-//line views/auth.qtpl:81
+//line views/auth.qtpl:77
}
-//line views/auth.qtpl:81
+//line views/auth.qtpl:77
func telegramWidget(lc *l18n.Localizer) string {
-//line views/auth.qtpl:81
+//line views/auth.qtpl:77
qb422016 := qt422016.AcquireByteBuffer()
-//line views/auth.qtpl:81
+//line views/auth.qtpl:77
writetelegramWidget(qb422016, lc)
-//line views/auth.qtpl:81
+//line views/auth.qtpl:77
qs422016 := string(qb422016.B)
-//line views/auth.qtpl:81
+//line views/auth.qtpl:77
qt422016.ReleaseByteBuffer(qb422016)
-//line views/auth.qtpl:81
+//line views/auth.qtpl:77
return qs422016
-//line views/auth.qtpl:81
+//line views/auth.qtpl:77
}
-//line views/auth.qtpl:83
+//line views/auth.qtpl:79
func StreamLoginError(qw422016 *qt422016.Writer, err string, lc *l18n.Localizer) {
-//line views/auth.qtpl:83
+//line views/auth.qtpl:79
qw422016.N().S(`
-
`)
-//line views/auth.qtpl:87
+//line views/auth.qtpl:82
switch err {
-//line views/auth.qtpl:88
+//line views/auth.qtpl:83
case "unknown username":
-//line views/auth.qtpl:88
+//line views/auth.qtpl:83
qw422016.N().S(`
`)
-//line views/auth.qtpl:89
+//line views/auth.qtpl:84
qw422016.E().S(lc.Get("auth.error_username"))
-//line views/auth.qtpl:89
+//line views/auth.qtpl:84
qw422016.N().S(`
`)
-//line views/auth.qtpl:90
+//line views/auth.qtpl:85
case "wrong password":
-//line views/auth.qtpl:90
+//line views/auth.qtpl:85
qw422016.N().S(`
`)
-//line views/auth.qtpl:91
+//line views/auth.qtpl:86
qw422016.E().S(lc.Get("auth.error_password"))
-//line views/auth.qtpl:91
+//line views/auth.qtpl:86
qw422016.N().S(`
`)
-//line views/auth.qtpl:92
+//line views/auth.qtpl:87
default:
-//line views/auth.qtpl:92
+//line views/auth.qtpl:87
qw422016.N().S(`
`)
-//line views/auth.qtpl:93
+//line views/auth.qtpl:88
qw422016.E().S(err)
-//line views/auth.qtpl:93
+//line views/auth.qtpl:88
qw422016.N().S(`
`)
-//line views/auth.qtpl:94
+//line views/auth.qtpl:89
}
-//line views/auth.qtpl:94
+//line views/auth.qtpl:89
qw422016.N().S(`
← `)
-//line views/auth.qtpl:95
+//line views/auth.qtpl:90
qw422016.E().S(lc.Get("auth.try_again"))
-//line views/auth.qtpl:95
+//line views/auth.qtpl:90
qw422016.N().S(`
-
`)
-//line views/auth.qtpl:99
+//line views/auth.qtpl:93
}
-//line views/auth.qtpl:99
+//line views/auth.qtpl:93
func WriteLoginError(qq422016 qtio422016.Writer, err string, lc *l18n.Localizer) {
-//line views/auth.qtpl:99
+//line views/auth.qtpl:93
qw422016 := qt422016.AcquireWriter(qq422016)
-//line views/auth.qtpl:99
+//line views/auth.qtpl:93
StreamLoginError(qw422016, err, lc)
-//line views/auth.qtpl:99
+//line views/auth.qtpl:93
qt422016.ReleaseWriter(qw422016)
-//line views/auth.qtpl:99
+//line views/auth.qtpl:93
}
-//line views/auth.qtpl:99
+//line views/auth.qtpl:93
func LoginError(err string, lc *l18n.Localizer) string {
-//line views/auth.qtpl:99
+//line views/auth.qtpl:93
qb422016 := qt422016.AcquireByteBuffer()
-//line views/auth.qtpl:99
+//line views/auth.qtpl:93
WriteLoginError(qb422016, err, lc)
-//line views/auth.qtpl:99
+//line views/auth.qtpl:93
qs422016 := string(qb422016.B)
-//line views/auth.qtpl:99
+//line views/auth.qtpl:93
qt422016.ReleaseByteBuffer(qb422016)
-//line views/auth.qtpl:99
+//line views/auth.qtpl:93
return qs422016
-//line views/auth.qtpl:99
+//line views/auth.qtpl:93
}
-//line views/auth.qtpl:101
+//line views/auth.qtpl:95
func StreamLogout(qw422016 *qt422016.Writer, can bool, lc *l18n.Localizer) {
-//line views/auth.qtpl:101
+//line views/auth.qtpl:95
qw422016.N().S(`
-
`)
-//line views/auth.qtpl:119
+//line views/auth.qtpl:111
}
-//line views/auth.qtpl:119
+//line views/auth.qtpl:111
func WriteLogout(qq422016 qtio422016.Writer, can bool, lc *l18n.Localizer) {
-//line views/auth.qtpl:119
+//line views/auth.qtpl:111
qw422016 := qt422016.AcquireWriter(qq422016)
-//line views/auth.qtpl:119
+//line views/auth.qtpl:111
StreamLogout(qw422016, can, lc)
-//line views/auth.qtpl:119
+//line views/auth.qtpl:111
qt422016.ReleaseWriter(qw422016)
-//line views/auth.qtpl:119
+//line views/auth.qtpl:111
}
-//line views/auth.qtpl:119
+//line views/auth.qtpl:111
func Logout(can bool, lc *l18n.Localizer) string {
-//line views/auth.qtpl:119
+//line views/auth.qtpl:111
qb422016 := qt422016.AcquireByteBuffer()
-//line views/auth.qtpl:119
+//line views/auth.qtpl:111
WriteLogout(qb422016, can, lc)
-//line views/auth.qtpl:119
+//line views/auth.qtpl:111
qs422016 := string(qb422016.B)
-//line views/auth.qtpl:119
+//line views/auth.qtpl:111
qt422016.ReleaseByteBuffer(qb422016)
-//line views/auth.qtpl:119
+//line views/auth.qtpl:111
return qs422016
-//line views/auth.qtpl:119
+//line views/auth.qtpl:111
}
-//line views/auth.qtpl:121
+//line views/auth.qtpl:113
func StreamLock(qw422016 *qt422016.Writer, lc *l18n.Localizer) {
-//line views/auth.qtpl:121
+//line views/auth.qtpl:113
qw422016.N().S(`
@@ -532,9 +524,9 @@ func StreamLock(qw422016 *qt422016.Writer, lc *l18n.Localizer) {
🔒 `)
-//line views/auth.qtpl:127
+//line views/auth.qtpl:119
qw422016.E().S(lc.Get("auth.lock_title"))
-//line views/auth.qtpl:127
+//line views/auth.qtpl:119
qw422016.N().S(`
@@ -544,73 +536,73 @@ func StreamLock(qw422016 *qt422016.Writer, lc *l18n.Localizer) {
🔒
`)
-//line views/auth.qtpl:135
+//line views/auth.qtpl:127
qw422016.E().S(lc.Get("auth.lock_title"))
-//line views/auth.qtpl:135
+//line views/auth.qtpl:127
qw422016.N().S(`
`)
-//line views/auth.qtpl:147
+//line views/auth.qtpl:139
streamtelegramWidget(qw422016, lc)
-//line views/auth.qtpl:147
+//line views/auth.qtpl:139
qw422016.N().S(`