diff --git a/main.go b/main.go
index e7c8079..581460d 100644
--- a/main.go
+++ b/main.go
@@ -60,6 +60,21 @@ func handleLoginPost(w http.ResponseWriter, r *http.Request) {
return
}
+ if user.Status == "admin" {
+ items, err := dbi.GetReportedItems(conn)
+ if err != nil {
+ fail()
+ return
+ }
+ html, err := pages.DashboardPage(items)
+ if err != nil {
+ fail()
+ return
+ }
+ writeHTML(w, html)
+ return
+ }
+
token, err := dbi.GenJWT(user)
if err != nil {
fail()
diff --git a/pages/dashboard.go b/pages/dashboard.go
new file mode 100644
index 0000000..834ad24
--- /dev/null
+++ b/pages/dashboard.go
@@ -0,0 +1,135 @@
+package pages
+
+import (
+ "bytes"
+ "html/template"
+
+ "faculty_media_report/dbi"
+)
+
+var dashboardTmpl = template.Must(template.New("dashboard").Parse(`
+
+
+
+
+ Dashboard — Maurer School of Law
+
+
+
+
+
+
+ Activity Report Dashboard
+ {{if .}}
+
+
+
+
+
+
+
+ | Date Submitted |
+ Name |
+ Title |
+ Description |
+ Hyperlink |
+ Type |
+
+
+
+ {{range .}}
+
+ | {{.Created}} |
+ {{.LastName}}, {{.FirstName}} |
+ {{.Title}} |
+ {{.Description}} |
+ {{if .Hyperlink}}Link{{end}} |
+ {{.ItemType}} |
+
+ {{end}}
+
+
+
+ {{else}}
+ No reported items.
+ {{end}}
+
+
+
+`))
+
+func DashboardPage(items []dbi.DashboardItem) (string, error) {
+ var buf bytes.Buffer
+ if err := dashboardTmpl.Execute(&buf, items); err != nil {
+ return "", err
+ }
+ return buf.String(), nil
+}