| } | } | ||||
| meeting, found := getMeetingFromRequest(r) | meeting, found := getMeetingFromRequest(r) | ||||
| if !found { | |||||
| cookie := cookieClear("meetingid") | |||||
| http.SetCookie(w, &cookie) //clear meeting id | |||||
| } | |||||
| switch r.Method { | switch r.Method { | ||||
| case "GET": | case "GET": | ||||
| response403Handler(w) | response403Handler(w) | ||||
| return | return | ||||
| } | } | ||||
| if meeting.ID == "" { | |||||
| meeting.ParentID = lead.ID | |||||
| meeting.ParentType = "Lead" | |||||
| meeting.Status = "submitted" | |||||
| } | |||||
| meeting.saveFromWeb(w, r) | meeting.saveFromWeb(w, r) | ||||
| default: | default: | ||||
| w.WriteHeader(http.StatusUnauthorized) | w.WriteHeader(http.StatusUnauthorized) | ||||
| } | } | ||||
| func getMeetingFromRequest(r *http.Request) (meeting crmdMeeting, found bool) { | func getMeetingFromRequest(r *http.Request) (meeting crmdMeeting, found bool) { | ||||
| q, err := url.ParseQuery(r.URL.RawQuery) | |||||
| if err != nil { | |||||
| return | |||||
| } | |||||
| id, ok := q["mid"] //meetingid | |||||
| id, ok := cookieVerifyAndGet(r, "meetingid") | |||||
| if !ok { | if !ok { | ||||
| return | return | ||||
| } | } | ||||
| meeting, err = crmGetMeeting(id[0]) | |||||
| meeting, err := crmGetMeeting(id) | |||||
| if err != nil { | if err != nil { | ||||
| found = false | found = false | ||||
| log.Printf("WARNING: cannot find meeting with id [%s]", id[0]) | |||||
| log.Printf("WARNING: cannot find meeting with id [%s]", id) | |||||
| return | return | ||||
| } | } | ||||
| found = true | found = true | ||||
| func (m crmdMeeting) saveFromWeb(w http.ResponseWriter, r *http.Request) { | func (m crmdMeeting) saveFromWeb(w http.ResponseWriter, r *http.Request) { | ||||
| meeting := crmdMeeting{} | |||||
| meeting := crmdMeeting{} //collecting input | |||||
| err := r.ParseMultipartForm(32 << 20) | err := r.ParseMultipartForm(32 << 20) | ||||
| if err != nil { | if err != nil { | ||||
| response400Handler(w) | response400Handler(w) | ||||
| meeting.validateFormFile(r) | meeting.validateFormFile(r) | ||||
| meeting.ID = m.ID | meeting.ID = m.ID | ||||
| meeting.ParentID = m.ParentID | |||||
| meeting.ParentType = m.ParentType | |||||
| meeting.Status = m.Status | |||||
| updatedMeeting, err := meeting.save() | updatedMeeting, err := meeting.save() | ||||
| if err == nil { | if err == nil { | ||||
| updatedMeeting.setFlashTitle("成功保存") | updatedMeeting.setFlashTitle("成功保存") | ||||
| updatedMeeting.addFlashMsg("活动信息已经成功保存,其他校友可通过公众号查阅本活动信息") | updatedMeeting.addFlashMsg("活动信息已经成功保存,其他校友可通过公众号查阅本活动信息") | ||||
| //remember this meeting | |||||
| cookie := cookieCreate("meetingid", updatedMeeting.ID, 7200) | |||||
| http.SetCookie(w, &cookie) | |||||
| //show editing dialog again | |||||
| updatedMeeting.showEdit(w) | updatedMeeting.showEdit(w) | ||||
| return | return | ||||
| } | } |