@@ -81,6 +81,7 @@ func NewAdminHandler(app *ZerodropApp) (*AdminHandler, error) {
81
81
handler .HandleFunc ("/admin/login" , handler .ServeLogin )
82
82
handler .HandleFunc ("/admin/logout" , handler .ServeLogout )
83
83
handler .HandleFunc ("/admin/new" , handler .ServeNew )
84
+ handler .HandleFunc ("/admin/my" , handler .ServeMy )
84
85
handler .HandleFunc ("/admin/" , handler .ServeMain )
85
86
86
87
return handler , nil
@@ -293,6 +294,62 @@ func (a *AdminHandler) ServeNew(w http.ResponseWriter, r *http.Request) {
293
294
}
294
295
}
295
296
297
+ // ServeMain serves the entry list.
298
+ func (a * AdminHandler ) ServeMy (w http.ResponseWriter , r * http.Request ) {
299
+ claims , _ := a .verify (r )
300
+ data := & AdminPageData {Title : "Zerodrop Admin" , Claims : claims , Config : a .App .Config }
301
+
302
+ if r .Method == "POST" {
303
+ r .ParseForm ()
304
+
305
+ switch r .FormValue ("action" ) {
306
+
307
+ case "train" :
308
+ name := r .FormValue ("name" )
309
+ entry , err := a .App .DB .Get (name )
310
+ if err != nil {
311
+ log .Println (err )
312
+ } else {
313
+ entry .SetTraining (! entry .AccessTrain )
314
+ if err := a .App .DB .Update (entry ); err != nil {
315
+ log .Println (err )
316
+ }
317
+ }
318
+
319
+ case "delete" :
320
+ name := r .FormValue ("name" )
321
+ if name != "" {
322
+ err := a .App .DB .Remove (name )
323
+ if err != nil {
324
+ log .Println (err )
325
+ } else {
326
+ log .Printf ("Removed entry: %s" , name )
327
+ }
328
+ }
329
+
330
+ case "clear" :
331
+ err := a .App .DB .Clear ()
332
+ if err != nil {
333
+ log .Println (err )
334
+ } else {
335
+ log .Println ("Cleared all entries" )
336
+ }
337
+
338
+ }
339
+
340
+ http .Redirect (w , r , a .App .Config .Base + "admin/" , 302 )
341
+ return
342
+ }
343
+
344
+ var err error
345
+ data .Entries , err = a .App .DB .List ()
346
+
347
+ interfaceTmpl := a .Templates .Lookup ("my.tmpl" )
348
+ if interfaceTmpl .ExecuteTemplate (w , "my" , data ) != nil {
349
+ log .Println (err )
350
+ }
351
+ }
352
+
296
353
// ServeMain serves the entry list.
297
354
func (a * AdminHandler ) ServeMain (w http.ResponseWriter , r * http.Request ) {
298
355
claims , _ := a .verify (r )
@@ -343,8 +400,8 @@ func (a *AdminHandler) ServeMain(w http.ResponseWriter, r *http.Request) {
343
400
var err error
344
401
data .Entries , err = a .App .DB .List ()
345
402
346
- interfaceTmpl := a .Templates .Lookup ("main .tmpl" )
347
- if interfaceTmpl .ExecuteTemplate (w , "main " , data ) != nil {
403
+ interfaceTmpl := a .Templates .Lookup ("all .tmpl" )
404
+ if interfaceTmpl .ExecuteTemplate (w , "all " , data ) != nil {
348
405
log .Println (err )
349
406
}
350
407
}
0 commit comments