From 10b90980ee4b9f7eef77452a91769d5d39159093 Mon Sep 17 00:00:00 2001 From: Patrick Peng Sun Date: Sun, 16 Jul 2017 23:18:24 +1000 Subject: [PATCH] meetingid get from cookie. --- spaEditMeeting.go | 30 +++++++++++++++++++++--------- 1 file changed, 21 insertions(+), 9 deletions(-) diff --git a/spaEditMeeting.go b/spaEditMeeting.go index 7b15c42..f610e3e 100644 --- a/spaEditMeeting.go +++ b/spaEditMeeting.go @@ -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 }