func (this *PostRouter) EditSubmit() { this.TplName = "post/edit.html" if this.CheckActiveRedirect() { return } var postMd models.Post if this.loadPost(&postMd, &this.User) { return } form := post.PostForm{} form.SetFromPost(&postMd) post.ListCategories(&form.Categories) post.ListTopics(&form.Topics) if !this.ValidFormSets(&form) { return } if err := form.UpdatePost(&postMd, &this.User); err == nil { this.JsStorage("deleteKey", "post/edit") this.Redirect(postMd.Link(), 302) } }
func (this *PostRouter) SingleSubmit() { this.TplName = "post/post.html" if this.CheckActiveRedirect() { return } var postMd models.Post if this.loadPost(&postMd, nil) { return } var redir bool defer func() { if !redir { var comments []*models.Comment this.loadComments(&postMd, &comments) } }() form := post.CommentForm{} if !this.ValidFormSets(&form) { return } comment := models.Comment{} if err := form.SaveComment(&comment, &this.User, &postMd); err == nil { this.JsStorage("deleteKey", "post/comment") this.Redirect(postMd.Link(), 302) redir = true post.PostReplysCount(&postMd) } }
func (this *PostRouter) NewSubmit() { this.TplName = "post/new.html" if this.CheckActiveRedirect() { return } form := post.PostForm{Locale: this.Locale} slug := this.GetString("topic") if len(slug) > 0 { topic := models.Topic{Slug: slug} topic.Read("Slug") form.Topic = topic.Id this.Data["Topic"] = &topic } post.ListCategories(&form.Categories) post.ListTopics(&form.Topics) if !this.ValidFormSets(&form) { return } var post models.Post if err := form.SavePost(&post, &this.User); err == nil { this.Ctx.SetCookie("post_topic", utils.ToStr(form.Topic), 1<<31-1, "/") this.Ctx.SetCookie("post_cat", utils.ToStr(form.Category), 1<<31-1, "/") this.Ctx.SetCookie("post_lang", utils.ToStr(form.Lang), 1<<31-1, "/") this.JsStorage("deleteKey", "post/new") this.Redirect(post.Link(), 302) } }
func (this *PostRouter) NewPostSubmit() { this.TplNames = "post/new.html" if this.CheckActiveRedirect() { return } form := post.PostForm{Locale: this.Locale} topicSlug := this.GetString("topic") if len(topicSlug) > 0 { topic := models.Topic{Slug: topicSlug} err := topic.Read("Slug") if err == nil { form.Category = topic.Category.Id form.Topic = topic.Id this.Data["Topic"] = &topic } else { beego.Error("Can not find topic by slug:", topicSlug) } } else { topicId, err := this.GetInt("Topic") if err == nil { topic := models.Topic{Id: int(topicId)} err = topic.Read("Id") if err == nil { form.Category = topic.Category.Id form.Topic = topic.Id this.Data["Topic"] = &topic } else { beego.Error("Can not find topic by id:", topicId) } } else { beego.Error("Parse param Topic from request failed", err) } } if categorySlug := this.GetString("category"); categorySlug != "" { beego.Debug("Find category slug:", categorySlug) category := models.Category{Slug: categorySlug} category.Read("Slug") this.Data["Category"] = &category } post.ListTopics(&form.Topics) if !this.ValidFormSets(&form) { return } var post models.Post if err := form.SavePost(&post, &this.User); err == nil { this.JsStorage("deleteKey", "post/new") this.Redirect(post.Link(), 302) } }