diff --git a/views/admin.qtpl.go b/views/admin.qtpl.go
index 320bf11..080ffdc 100644
--- a/views/admin.qtpl.go
+++ b/views/admin.qtpl.go
@@ -21,10 +21,79 @@ var (
)
//line views/admin.qtpl:3
-func StreamAdminUsersPanelHTML(qw422016 *qt422016.Writer, userList []*user.User) {
+func StreamAdminPanelHTML(qw422016 *qt422016.Writer) {
//line views/admin.qtpl:3
qw422016.N().S(`
+
+ Administrative functions
+
+
+ Dangerous things
+
+
+
+
+
+
+`)
+//line views/admin.qtpl:39
+}
+
+//line views/admin.qtpl:39
+func WriteAdminPanelHTML(qq422016 qtio422016.Writer) {
+//line views/admin.qtpl:39
+ qw422016 := qt422016.AcquireWriter(qq422016)
+//line views/admin.qtpl:39
+ StreamAdminPanelHTML(qw422016)
+//line views/admin.qtpl:39
+ qt422016.ReleaseWriter(qw422016)
+//line views/admin.qtpl:39
+}
+
+//line views/admin.qtpl:39
+func AdminPanelHTML() string {
+//line views/admin.qtpl:39
+ qb422016 := qt422016.AcquireByteBuffer()
+//line views/admin.qtpl:39
+ WriteAdminPanelHTML(qb422016)
+//line views/admin.qtpl:39
+ qs422016 := string(qb422016.B)
+//line views/admin.qtpl:39
+ qt422016.ReleaseByteBuffer(qb422016)
+//line views/admin.qtpl:39
+ return qs422016
+//line views/admin.qtpl:39
+}
+
+//line views/admin.qtpl:41
+func StreamAdminUsersPanelHTML(qw422016 *qt422016.Writer, userList []*user.User) {
+//line views/admin.qtpl:41
+ qw422016.N().S(`
+
Manage users
@@ -45,132 +114,132 @@ func StreamAdminUsersPanelHTML(qw422016 *qt422016.Writer, userList []*user.User)
`)
-//line views/admin.qtpl:24
+//line views/admin.qtpl:62
for _, u := range userList {
-//line views/admin.qtpl:24
+//line views/admin.qtpl:62
qw422016.N().S(`
| `)
-//line views/admin.qtpl:26
+//line views/admin.qtpl:64
qw422016.E().S(u.Name)
-//line views/admin.qtpl:26
+//line views/admin.qtpl:64
qw422016.N().S(` |
`)
-//line views/admin.qtpl:27
+//line views/admin.qtpl:65
qw422016.E().S(u.Group)
-//line views/admin.qtpl:27
+//line views/admin.qtpl:65
qw422016.N().S(` |
`)
-//line views/admin.qtpl:28
+//line views/admin.qtpl:66
qw422016.E().S(u.RegisteredAt.Format("2006-01-02 15:04:05-0700"))
-//line views/admin.qtpl:28
+//line views/admin.qtpl:66
qw422016.N().S(` |
Edit
|
`)
-//line views/admin.qtpl:33
+//line views/admin.qtpl:71
}
-//line views/admin.qtpl:33
+//line views/admin.qtpl:71
qw422016.N().S(`
`)
-//line views/admin.qtpl:38
+//line views/admin.qtpl:76
}
-//line views/admin.qtpl:38
+//line views/admin.qtpl:76
func WriteAdminUsersPanelHTML(qq422016 qtio422016.Writer, userList []*user.User) {
-//line views/admin.qtpl:38
+//line views/admin.qtpl:76
qw422016 := qt422016.AcquireWriter(qq422016)
-//line views/admin.qtpl:38
+//line views/admin.qtpl:76
StreamAdminUsersPanelHTML(qw422016, userList)
-//line views/admin.qtpl:38
+//line views/admin.qtpl:76
qt422016.ReleaseWriter(qw422016)
-//line views/admin.qtpl:38
+//line views/admin.qtpl:76
}
-//line views/admin.qtpl:38
+//line views/admin.qtpl:76
func AdminUsersPanelHTML(userList []*user.User) string {
-//line views/admin.qtpl:38
+//line views/admin.qtpl:76
qb422016 := qt422016.AcquireByteBuffer()
-//line views/admin.qtpl:38
+//line views/admin.qtpl:76
WriteAdminUsersPanelHTML(qb422016, userList)
-//line views/admin.qtpl:38
+//line views/admin.qtpl:76
qs422016 := string(qb422016.B)
-//line views/admin.qtpl:38
+//line views/admin.qtpl:76
qt422016.ReleaseByteBuffer(qb422016)
-//line views/admin.qtpl:38
+//line views/admin.qtpl:76
return qs422016
-//line views/admin.qtpl:38
+//line views/admin.qtpl:76
}
-//line views/admin.qtpl:40
+//line views/admin.qtpl:78
func StreamAdminUsersUserHTML(qw422016 *qt422016.Writer, u *user.User) {
-//line views/admin.qtpl:40
+//line views/admin.qtpl:78
qw422016.N().S(`
`)
-//line views/admin.qtpl:43
+//line views/admin.qtpl:81
qw422016.E().S(u.Name)
-//line views/admin.qtpl:43
+//line views/admin.qtpl:81
qw422016.N().S(`
`)
-//line views/admin.qtpl:61
+//line views/admin.qtpl:99
}
-//line views/admin.qtpl:61
+//line views/admin.qtpl:99
func WriteAdminUsersUserHTML(qq422016 qtio422016.Writer, u *user.User) {
-//line views/admin.qtpl:61
+//line views/admin.qtpl:99
qw422016 := qt422016.AcquireWriter(qq422016)
-//line views/admin.qtpl:61
+//line views/admin.qtpl:99
StreamAdminUsersUserHTML(qw422016, u)
-//line views/admin.qtpl:61
+//line views/admin.qtpl:99
qt422016.ReleaseWriter(qw422016)
-//line views/admin.qtpl:61
+//line views/admin.qtpl:99
}
-//line views/admin.qtpl:61
+//line views/admin.qtpl:99
func AdminUsersUserHTML(u *user.User) string {
-//line views/admin.qtpl:61
+//line views/admin.qtpl:99
qb422016 := qt422016.AcquireByteBuffer()
-//line views/admin.qtpl:61
+//line views/admin.qtpl:99
WriteAdminUsersUserHTML(qb422016, u)
-//line views/admin.qtpl:61
+//line views/admin.qtpl:99
qs422016 := string(qb422016.B)
-//line views/admin.qtpl:61
+//line views/admin.qtpl:99
qt422016.ReleaseByteBuffer(qb422016)
-//line views/admin.qtpl:61
+//line views/admin.qtpl:99
return qs422016
-//line views/admin.qtpl:61
+//line views/admin.qtpl:99
}
diff --git a/views/stuff.qtpl b/views/stuff.qtpl
index d84dd0a..bdb37d1 100644
--- a/views/stuff.qtpl
+++ b/views/stuff.qtpl
@@ -130,43 +130,6 @@ for u := range user.YieldUsers() {