public FullCalendarEvent(EventCalendarDb.EventCalendarDetailsData c, List <EventCalendarDb.EventCalendarCategoryData> categoryHaystack) { CmsPage page = CmsContext.getPageById(c.PageId); id = c.PageId.ToString(); title = page.getTitle(c.Lang); start = c.StartDateTime; end = c.EndDateTime; url = page.getUrl(c.Lang); EventCalendarDb.EventCalendarCategoryData category = EventCalendarDb.EventCalendarCategoryData.GetFromHaystack(categoryHaystack, c.CategoryId); backgroundColor = category.ColorHex; borderColor = "black"; textColor = "white"; }
/// <summary> /// Generate HTML SELECT and OPTION tags for events selection /// (count limited by the config) /// </summary> /// <param name="lang"></param> /// <param name="controlId"></param> /// <param name="selectedId"></param> /// <param name="eventRequired"></param> /// <returns></returns> protected string getEventOption(CmsLanguage lang, string controlId, int selectedId, bool eventRequired) { EventCalendarDb eventDb = new EventCalendarDb(); int dropdownCount = CmsConfig.getConfigValue("FileLibrary.NumEventsInList", 10); List <EventCalendarDb.EventCalendarDetailsData> eventList = eventDb.fetchAllDetailsData(lang, selectedId, dropdownCount); List <CmsPage> pageList = new List <CmsPage>(eventList.Count); NameValueCollection eventPageCollection = new NameValueCollection(eventList.Count); for (int x = 0; x < eventList.Count; x++) { EventCalendarDb.EventCalendarDetailsData e = eventList[x]; CmsPage p = CmsContext.getPageById(e.PageId); pageList.Add(p); eventPageCollection.Add(e.PageId.ToString(), p.getTitle(lang)); } StringBuilder html = new StringBuilder(); string htmlName = controlId + "eventPageId"; string selectTag = "<select name=\"{0}\" id=\"{1}\" onchange=\"$('.{2}table').css('display','none'); $('#{3}table_' + this.value).fadeIn();\">" + EOL; html.Append(String.Format(selectTag, new string[] { htmlName, htmlName, controlId, controlId })); string optionTag = "<option value=\"{0}\" {1}>{2}</option>" + EOL; string optionSelected = (selectedId == -1) ? "selected=\"selected\"" : ""; if (eventRequired == false) // if event not required, provide an option to select n/a { html.Append(String.Format(optionTag, new string[] { "-1", optionSelected, "(n/a)" })); } for (int x = 0; x < eventList.Count; x++) { EventCalendarDb.EventCalendarDetailsData e = eventList[x]; optionSelected = (selectedId == e.PageId) ? "selected=\"selected\"" : ""; html.Append(String.Format(optionTag, new string[] { e.PageId.ToString(), optionSelected, pageList[x].getTitle(lang) })); } html.Append("</select>" + EOL); List <EventCalendarDb.EventCalendarCategoryData> eventCategoryList = eventDb.fetchCategoryList(lang); for (int x = 0; x < eventList.Count; x++) { html.Append(getEventHiddenLayer(lang, eventCategoryList, pageList[x], eventList[x], controlId, selectedId)); } return(html.ToString()); }
/// <summary> /// Create the jQuery FullCalendar event object for an event with a file attached. /// </summary> /// <param name="c"></param> /// <param name="f"></param> public FullCalendarEvent(EventCalendarDb.EventCalendarDetailsData c, FileLibraryDetailsData attachedFile, List <EventCalendarDb.EventCalendarCategoryData> categoryHaystack) { CmsPage page = CmsContext.getPageById(attachedFile.DetailsPageId); id = "EventFile_" + attachedFile.DetailsPageId.ToString(); title = attachedFile.FileName; start = c.StartDateTime.AddSeconds(1); // show below the event end = c.EndDateTime.AddSeconds(1); // show below the event allDay = true; url = page.getUrl(attachedFile.Lang); EventCalendarDb.EventCalendarCategoryData category = EventCalendarDb.EventCalendarCategoryData.GetFromHaystack(categoryHaystack, c.CategoryId); backgroundColor = category.ColorHex; borderColor = "black"; textColor = "white"; }
/// <summary> /// Generate hidden layer to store the event details /// </summary> /// <param name="lang"></param> /// <param name="eventCategoryList"></param> /// <param name="eventPage"></param> /// <param name="eventData"></param> /// <param name="controlId"></param> /// <param name="selectedId"></param> /// <returns></returns> protected string getEventHiddenLayer(CmsLanguage lang, List <EventCalendarDb.EventCalendarCategoryData> eventCategoryList, CmsPage eventPage, EventCalendarDb.EventCalendarDetailsData eventData, string controlId, int selectedId) { StringBuilder html = new StringBuilder(); string domId = controlId + "table_" + eventData.PageId; string cssClass = controlId + "table"; string tableTag = "<table cellspacing=\"0\" cellpadding=\"3\" id=\"{0}\" class=\"{1}\" {2}>" + EOL; string displayStyle = (eventData.PageId == selectedId) ? "style=\"display: block;\"" : "style=\"display: none;\""; html.Append(String.Format(tableTag, new string[] { domId, cssClass, displayStyle })); html.Append("<tr valign=\"top\">"); html.Append("<td style=\"font-size: smaller;\">" + getDateTimeText(lang) + ":</td>"); html.Append("<td style=\"font-size: smaller;\">"); string endDateTime = (String.Format("{0:yyyy/MM/dd}", eventData.StartDateTime) == String.Format("{0:yyyy/MM/dd}", eventData.EndDateTime))? String.Format("{0:HH:mm}", eventData.EndDateTime) : "<br />" + String.Format("{0:yyyy/MM/dd HH:mm}", eventData.EndDateTime); html.Append(String.Format("{0:yyyy/MM/dd HH:mm}", eventData.StartDateTime) + " to " + endDateTime); html.Append("</td>"); html.Append("</tr>" + EOL); html.Append("<tr valign=\"top\">"); html.Append("<td style=\"font-size: smaller;\">" + getEventCategoryText(lang) + ":</td>"); html.Append("<td style=\"font-size: smaller;\">"); html.Append(eventData.getCategoryTitle(eventCategoryList)); html.Append("</td>"); html.Append("</tr>" + EOL); html.Append("<tr valign=\"top\">"); html.Append("<td style=\"font-size: smaller;\">" + getDescriptionText(lang) + ":</td>"); html.Append("<td style=\"font-size: smaller;\">"); html.Append(StringUtils.nl2br(eventData.Description)); html.Append("</td>"); html.Append("</tr>" + EOL); html.Append("</table>" + EOL); return(html.ToString()); }