| @@ -23,6 +23,10 @@ func spaEditMeetingHandler(w http.ResponseWriter, r *http.Request) { | |||
| } | |||
| meeting, found := getMeetingFromRequest(r) | |||
| if !found { | |||
| cookie := cookieClear("meetingid") | |||
| http.SetCookie(w, &cookie) //clear meeting id | |||
| } | |||
| switch r.Method { | |||
| case "GET": | |||
| @@ -42,6 +46,11 @@ func spaEditMeetingHandler(w http.ResponseWriter, r *http.Request) { | |||
| response403Handler(w) | |||
| return | |||
| } | |||
| if meeting.ID == "" { | |||
| meeting.ParentID = lead.ID | |||
| meeting.ParentType = "Lead" | |||
| meeting.Status = "submitted" | |||
| } | |||
| meeting.saveFromWeb(w, r) | |||
| default: | |||
| w.WriteHeader(http.StatusUnauthorized) | |||
| @@ -78,20 +87,15 @@ func (m crmdMeeting) showEdit(w http.ResponseWriter) { | |||
| } | |||
| 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 { | |||
| return | |||
| } | |||
| meeting, err = crmGetMeeting(id[0]) | |||
| meeting, err := crmGetMeeting(id) | |||
| if err != nil { | |||
| found = false | |||
| log.Printf("WARNING: cannot find meeting with id [%s]", id[0]) | |||
| log.Printf("WARNING: cannot find meeting with id [%s]", id) | |||
| return | |||
| } | |||
| found = true | |||
| @@ -100,7 +104,7 @@ func getMeetingFromRequest(r *http.Request) (meeting crmdMeeting, found bool) { | |||
| func (m crmdMeeting) saveFromWeb(w http.ResponseWriter, r *http.Request) { | |||
| meeting := crmdMeeting{} | |||
| meeting := crmdMeeting{} //collecting input | |||
| err := r.ParseMultipartForm(32 << 20) | |||
| if err != nil { | |||
| response400Handler(w) | |||
| @@ -119,10 +123,18 @@ func (m crmdMeeting) saveFromWeb(w http.ResponseWriter, r *http.Request) { | |||
| meeting.validateFormFile(r) | |||
| meeting.ID = m.ID | |||
| meeting.ParentID = m.ParentID | |||
| meeting.ParentType = m.ParentType | |||
| meeting.Status = m.Status | |||
| updatedMeeting, err := meeting.save() | |||
| if err == nil { | |||
| updatedMeeting.setFlashTitle("成功保存") | |||
| updatedMeeting.addFlashMsg("活动信息已经成功保存,其他校友可通过公众号查阅本活动信息") | |||
| //remember this meeting | |||
| cookie := cookieCreate("meetingid", updatedMeeting.ID, 7200) | |||
| http.SetCookie(w, &cookie) | |||
| //show editing dialog again | |||
| updatedMeeting.showEdit(w) | |||
| return | |||
| } | |||