示例#1
0
文件: comment.go 项目: grr89/hrkb
func (c *Comments) Post() {

	if !c.IsAjax() {
		return
	}

	var v M.ValidMap
	var cm M.Comment
	var err error

	cr := tplComment{Msg: T("internal")}

	c.Data["json"] = &cr

	id, err := strconv.Atoi(c.Ctx.Input.Param(":id"))
	if err == nil {
		err = c.ParseForm(&cm)
	}

	if err != nil {
		beego.Error(err)
		return
	}

	i := c.GetSession("uid")
	if i == nil {
		cr.Msg = T("auth_is_off")
		return
	}

	cm.User = i.(int) //comment author
	cm.Cand = id      //candidate Id

	cm.Comment = html.EscapeString(cm.Comment)

	v, err = DM.Insert(&cm, "User", "Cand", "Comment")

	if err != nil {
		beego.Error(err)
		return
	}

	if !v.HasErrors() { //if no has errors returns inserted data to client
		cr.Id = cm.Id
		cr.Msg = "Ok"
		cr.Comment = cm.Comment
		cr.SetAuthor(cm.User)
		cr.SetDate(cm.CreatedAt)
		return
	}

	M.ExpandFormErrors(&v, c.Data)

	if val, ok := c.Data["errComment"]; ok {
		cr.Msg = val.(string) //return error by field comment
	}
}