add delete handler and stub, also add session to framework handler
This commit is contained in:
parent
2fa54d6954
commit
542932a98b
|
@ -61,6 +61,11 @@ func Add(db *sql.DB, name string, parent int) error {
|
|||
return err
|
||||
}
|
||||
|
||||
func Delete(db *sql.DB, id int) error {
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func (category *Category) ChangeParent(db *sql.DB, parent *Category) error {
|
||||
var err error
|
||||
if parent == nil {
|
||||
|
|
|
@ -25,4 +25,11 @@ $(document).ready( function () {
|
|||
$(".category-change-parent").change(function (e) {
|
||||
e.target.parentElement.submit();
|
||||
});
|
||||
|
||||
$('.cat-delete').confirm({
|
||||
text: "Are you sure you want to delete this category?",
|
||||
title: "Confrimation required",
|
||||
confirmButton: "Yes",
|
||||
cancelButton: "No",
|
||||
});
|
||||
});
|
||||
|
|
|
@ -39,13 +39,13 @@ func initSessionUser(r *http.Request) (*user.User, *sessions.Session) {
|
|||
}
|
||||
|
||||
// wrapper for handlers requiring a User
|
||||
func userHandler(next func(http.ResponseWriter, *http.Request, *user.User)) func(http.ResponseWriter, *http.Request) {
|
||||
func userHandler(next func(http.ResponseWriter, *http.Request, *user.User, *sessions.Session)) func(http.ResponseWriter, *http.Request) {
|
||||
return func(w http.ResponseWriter, r *http.Request) {
|
||||
user, _ := initSessionUser(r)
|
||||
user, session := initSessionUser(r)
|
||||
if user == nil {
|
||||
http.Redirect(w, r, "/login", http.StatusFound)
|
||||
} else {
|
||||
next(w, r, user)
|
||||
next(w, r, user, session)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -99,8 +99,7 @@ func LoginPostHandler(w http.ResponseWriter, r *http.Request) {
|
|||
}
|
||||
|
||||
// logout POST handler
|
||||
func LogoutHandler(w http.ResponseWriter, r *http.Request, user *user.User) {
|
||||
session, _ := store.Get(r, "c_user")
|
||||
func LogoutHandler(w http.ResponseWriter, r *http.Request, user *user.User, session *sessions.Session) {
|
||||
//session.Options = &sessions.Options{MaxAge: -1}
|
||||
sessionWipe(session)
|
||||
session.Save(r, w)
|
||||
|
@ -127,10 +126,9 @@ func getUrlTitle(url string) string {
|
|||
}
|
||||
|
||||
// ?url=
|
||||
func addFormHandler(w http.ResponseWriter, r *http.Request, user *user.User) {
|
||||
func addFormHandler(w http.ResponseWriter, r *http.Request, user *user.User, session *sessions.Session) {
|
||||
categories.LoadCategories(db)
|
||||
|
||||
session, _ := store.Get(r, "c_user")
|
||||
flashes := GetFlashes(session)
|
||||
popup := session.Values["popup"]
|
||||
delete(session.Values, "popup")
|
||||
|
@ -164,8 +162,7 @@ func addFormHandler(w http.ResponseWriter, r *http.Request, user *user.User) {
|
|||
ShowTemplate("add", w, map[string]interface{}{"user": user, "flashes": flashes, "link": url, "categories": categories.CategoriesTree, "title": title, "popup": popup})
|
||||
}
|
||||
|
||||
func addPostHandler(w http.ResponseWriter, r *http.Request, user *user.User) {
|
||||
session, _ := store.Get(r, "c_user")
|
||||
func addPostHandler(w http.ResponseWriter, r *http.Request, user *user.User, session *sessions.Session) {
|
||||
var news news.News
|
||||
|
||||
news.Title = r.FormValue("title")
|
||||
|
@ -199,8 +196,7 @@ func addPostHandler(w http.ResponseWriter, r *http.Request, user *user.User) {
|
|||
}
|
||||
}
|
||||
|
||||
func templateFormHandler(w http.ResponseWriter, r *http.Request, user *user.User) {
|
||||
session, _ := store.Get(r, "c_user")
|
||||
func templateFormHandler(w http.ResponseWriter, r *http.Request, user *user.User, session *sessions.Session) {
|
||||
flashes := GetFlashes(session)
|
||||
session.Save(r, w)
|
||||
|
||||
|
@ -222,9 +218,7 @@ func templateFormHandler(w http.ResponseWriter, r *http.Request, user *user.User
|
|||
ShowTemplate("list", w, map[string]interface{}{"user": user, "flashes": flashes, "template": &templateBuf, "count": count, "url": config.Url})
|
||||
}
|
||||
|
||||
func exportHandler(w http.ResponseWriter, r *http.Request, user *user.User) {
|
||||
session, _ := store.Get(r, "c_user")
|
||||
|
||||
func exportHandler(w http.ResponseWriter, r *http.Request, user *user.User, session *sessions.Session) {
|
||||
err := news.MarkExported(db)
|
||||
|
||||
if err != nil {
|
||||
|
@ -236,16 +230,14 @@ func exportHandler(w http.ResponseWriter, r *http.Request, user *user.User) {
|
|||
http.Redirect(w, r, "/", http.StatusFound)
|
||||
}
|
||||
|
||||
func addedHandler(w http.ResponseWriter, r *http.Request, user *user.User) {
|
||||
session, _ := store.Get(r, "c_user")
|
||||
func addedHandler(w http.ResponseWriter, r *http.Request, user *user.User, session *sessions.Session) {
|
||||
flashes := GetFlashes(session)
|
||||
session.Save(r, w)
|
||||
ShowTemplate("added", w, map[string]interface{}{"user": user, "flashes": flashes})
|
||||
}
|
||||
|
||||
|
||||
func categoriesFormHandler(w http.ResponseWriter, r *http.Request, user *user.User) {
|
||||
session, _ := store.Get(r, "c_user")
|
||||
func categoriesFormHandler(w http.ResponseWriter, r *http.Request, user *user.User, session *sessions.Session) {
|
||||
flashes := GetFlashes(session)
|
||||
session.Save(r, w)
|
||||
categories.LoadCategories(db)
|
||||
|
@ -253,7 +245,7 @@ func categoriesFormHandler(w http.ResponseWriter, r *http.Request, user *user.Us
|
|||
ShowTemplate("categories", w, map[string]interface{}{"user": user, "flashes": flashes, "categories": categories.CategoriesTree})
|
||||
}
|
||||
|
||||
func categoriesPostHandler(w http.ResponseWriter, r *http.Request, user *user.User) {
|
||||
func categoriesPostHandler(w http.ResponseWriter, r *http.Request, user *user.User, session *sessions.Session) {
|
||||
http.Redirect(w, r, "/categories", http.StatusFound)
|
||||
}
|
||||
|
||||
|
@ -267,14 +259,11 @@ func categoryFromReqArg(arg string) *categories.Category {
|
|||
}
|
||||
}
|
||||
|
||||
func categoryChangeParentHandler(w http.ResponseWriter, r *http.Request, user *user.User) {
|
||||
session, _ := store.Get(r, "c_user")
|
||||
|
||||
func categoryChangeParentHandler(w http.ResponseWriter, r *http.Request, user *user.User, session *sessions.Session) {
|
||||
categories.LoadCategories(db)
|
||||
category := categoryFromReqArg(r.FormValue("cid"))
|
||||
parent := categoryFromReqArg(r.FormValue("parent"))
|
||||
|
||||
|
||||
if category == nil {
|
||||
session.AddFlash("Invalid category", flash_err)
|
||||
} else {
|
||||
|
@ -290,9 +279,7 @@ func categoryChangeParentHandler(w http.ResponseWriter, r *http.Request, user *u
|
|||
http.Redirect(w, r, "/categories", http.StatusFound)
|
||||
}
|
||||
|
||||
func categoryAddHandler(w http.ResponseWriter, r *http.Request, user *user.User) {
|
||||
session, _ := store.Get(r, "c_user")
|
||||
|
||||
func categoryAddHandler(w http.ResponseWriter, r *http.Request, user *user.User, session *sessions.Session) {
|
||||
name := r.FormValue("name")
|
||||
parent, perr := strconv.Atoi(r.FormValue("parent"))
|
||||
|
||||
|
@ -314,6 +301,24 @@ func categoryAddHandler(w http.ResponseWriter, r *http.Request, user *user.User)
|
|||
http.Redirect(w, r, "/categories", http.StatusFound)
|
||||
}
|
||||
|
||||
func categoryDeleteHandler(w http.ResponseWriter, r *http.Request, user *user.User, session *sessions.Session) {
|
||||
id, idErr := strconv.Atoi(r.FormValue("id"))
|
||||
|
||||
if idErr != nil {
|
||||
session.AddFlash("Invalid category to delete", flash_err)
|
||||
} else {
|
||||
err := categories.Delete(db, id)
|
||||
if err != nil {
|
||||
session.AddFlash("Error commiting to Database", flash_err)
|
||||
} else {
|
||||
session.AddFlash("Deleted category", flash_info)
|
||||
}
|
||||
}
|
||||
|
||||
session.Save(r, w)
|
||||
http.Redirect(w, r, "/categories", http.StatusFound)
|
||||
}
|
||||
|
||||
func ServeFileHandler(res http.ResponseWriter, req *http.Request) {
|
||||
fname := path.Base(req.URL.Path)
|
||||
http.ServeFile(res, req, "./"+fname)
|
||||
|
@ -338,6 +343,7 @@ func init_route_handlers() {
|
|||
r.HandleFunc("/categories", getPostHandler(userHandler(categoriesFormHandler), userHandler(categoriesPostHandler)))
|
||||
r.HandleFunc("/categories/change-parent", userHandler(categoryChangeParentHandler))
|
||||
r.HandleFunc("/categories/add", userHandler(categoryAddHandler))
|
||||
r.HandleFunc("/categories/delete", userHandler(categoryDeleteHandler))
|
||||
|
||||
http.Handle("/", r)
|
||||
}
|
||||
|
|
|
@ -33,7 +33,7 @@ new category select
|
|||
{{.category.Name}}
|
||||
</div>
|
||||
<div class="col-xs-1">
|
||||
<a href="/categories/delete?id={{.category.Id}}">delete</a>
|
||||
<a href="/categories/delete?id={{.category.Id}}" class="cat-delete">delete</a>
|
||||
</div>
|
||||
<div class="col-xs-3">
|
||||
<form action="/categories/change-parent?cid={{.category.Id}}" method="POST">
|
||||
|
|
Loading…
Reference in New Issue