| @@ -2,6 +2,8 @@ package main | |||
| import ( | |||
| "encoding/json" | |||
| "strings" | |||
| "time" | |||
| ) | |||
| type crmdMeetingAttendance struct { | |||
| @@ -43,7 +45,7 @@ type crmdMeeting struct { | |||
| CoverName string `json:"coverName,omitempty"` | |||
| //for web spa operation | |||
| spaErrMsg string | |||
| spaErrMsg []string | |||
| } | |||
| func (m crmdMeeting) save() (newMeeting crmdMeeting, err error) { | |||
| @@ -71,10 +73,51 @@ func (m crmdMeeting) save() (newMeeting crmdMeeting, err error) { | |||
| return | |||
| } | |||
| func (m *crmdMeeting) setSpaErr(e string) { | |||
| m.spaErrMsg = e | |||
| func (m *crmdMeeting) clearSpaErr(e string) { | |||
| m.spaErrMsg = []string{} | |||
| } | |||
| func (m *crmdMeeting) addSpaErr(e string) { | |||
| m.spaErrMsg = append(m.spaErrMsg, e) | |||
| } | |||
| func (m crmdMeeting) ErrorMessage() string { | |||
| return m.spaErrMsg | |||
| v := strings.Join(m.spaErrMsg, "<br>") | |||
| return v | |||
| } | |||
| func (m crmdMeeting) hasError() bool { | |||
| return len(m.spaErrMsg) > 0 | |||
| } | |||
| func (m crmdMeeting) CoverCacheURL() string { | |||
| if m.CoverID != "" { | |||
| u := CRMConfig.CacheSiteURL + "?a=" + m.CoverID | |||
| return buildSignatureAppend2Url(u, IntraAPIConfig.CRMSecrete) | |||
| } | |||
| return GlobalPath.ThisSiteURL + "spa/assets/img/meetingdefault.jpg" | |||
| } | |||
| func crmGetMeeting(id string) (ret crmdMeeting, err error) { | |||
| entity, err := crmGetEntity("Meeting", id) | |||
| if err != nil { | |||
| return | |||
| } | |||
| ret = entity.(crmdMeeting) | |||
| return | |||
| } | |||
| func (m crmdMeeting) StartDate() string { | |||
| t, _ := time.Parse(getCrmTimeLayout(), m.DateStart) | |||
| return t.Format("02 January, 2006") | |||
| } | |||
| func (m crmdMeeting) StartHour() string { | |||
| t, _ := time.Parse(getCrmTimeLayout(), m.DateStart) | |||
| return t.Format("15:04") | |||
| } | |||
| func (m crmdMeeting) DurationHour() string { | |||
| return "12:30" | |||
| } | |||