public static void ShowAll(Core core, TPage page, Primitive owner) { core.Template.SetTemplate("Calendar", "viewcalendartasks"); long startTime = core.Tz.GetUnixTimeStamp(new DateTime(core.Tz.Now.Year, core.Tz.Now.Month, core.Tz.Now.Day, 0, 0, 0)) - 60 * 60 * 24 * 7; // show tasks completed over the last week long endTime = startTime + 60 * 60 * 24 * 7 * (8 + 1); // skip ahead eight weeks into the future Calendar cal = null; try { cal = new Calendar(core, owner); } catch (InvalidCalendarException) { cal = Calendar.Create(core, owner); } if (cal.Access.Can("CREATE_TASKS")) { core.Template.Parse("U_NEW_TASK", core.Hyperlink.BuildAccountSubModuleUri(owner, "calendar", "new-task", true, string.Format("year={0}", core.Tz.Now.Year), string.Format("month={0}", core.Tz.Now.Month), string.Format("day={0}", core.Tz.Now.Day))); } List<Task> tasks = cal.GetTasks(core, owner, startTime, endTime, true); /* pages */ core.Display.ParsePageList(owner, true); core.Template.Parse("PAGE_TITLE", core.Prose.GetString("TASKS")); VariableCollection taskDaysVariableCollection = null; string lastDay = core.Tz.ToStringPast(core.Tz.Now); if (tasks.Count > 0) { core.Template.Parse("HAS_TASKS", "TRUE"); } foreach (Task calendarTask in tasks) { DateTime taskDue = calendarTask.GetDueTime(core.Tz); if (taskDaysVariableCollection == null || lastDay != core.Tz.ToStringPast(taskDue)) { lastDay = core.Tz.ToStringPast(taskDue); taskDaysVariableCollection = core.Template.CreateChild("task_days"); taskDaysVariableCollection.Parse("DAY", lastDay); } VariableCollection taskVariableCollection = taskDaysVariableCollection.CreateChild("task_list"); taskVariableCollection.Parse("DATE", taskDue.ToShortDateString() + " (" + taskDue.ToShortTimeString() + ")"); taskVariableCollection.Parse("TOPIC", calendarTask.Topic); taskVariableCollection.Parse("ID", calendarTask.Id.ToString()); taskVariableCollection.Parse("URI", Task.BuildTaskUri(core, calendarTask)); taskVariableCollection.Parse("U_MARK_COMPLETE", Task.BuildTaskMarkCompleteUri(core, calendarTask)); if (calendarTask.Status == TaskStatus.Overdue) { taskVariableCollection.Parse("OVERDUE", "TRUE"); taskVariableCollection.Parse("CLASS", "overdue-task"); } else if (calendarTask.Status == TaskStatus.Completed) { taskVariableCollection.Parse("COMPLETE", "TRUE"); taskVariableCollection.Parse("CLASS", "complete-task"); } else { taskVariableCollection.Parse("CLASS", "task"); } // TODO: fix this if (calendarTask.Priority == TaskPriority.High) { taskDaysVariableCollection.ParseRaw("PRIORITY", "[<span class=\"high-priority\" title=\"High Priority\">H</span>]"); } else if (calendarTask.Priority == TaskPriority.Low) { taskDaysVariableCollection.ParseRaw("PRIORITY", "[<span class=\"low-priority\" title=\"Low Priority\">L</span>]"); } } List<string[]> calendarPath = new List<string[]>(); calendarPath.Add(new string[] { "calendar", core.Prose.GetString("CALENDAR") }); calendarPath.Add(new string[] { "*tasks", core.Prose.GetString("TASKS") }); owner.ParseBreadCrumbs(calendarPath); }
void ShowToday(HookEventArgs e) { Template template = new Template(Assembly.GetExecutingAssembly(), "todayupcommingevents"); template.Medium = core.Template.Medium; template.SetProse(core.Prose); long startTime = e.core.Tz.GetUnixTimeStamp(new DateTime(e.core.Tz.Now.Year, e.core.Tz.Now.Month, e.core.Tz.Now.Day, 0, 0, 0)); long endTime = startTime + 60 * 60 * 24 * 7; // skip ahead one week into the future Calendar cal = null; try { cal = new Calendar(core, core.Session.LoggedInMember); } catch (InvalidCalendarException) { cal = Calendar.Create(core, core.Session.LoggedInMember); } List<Event> events = cal.GetEvents(core, e.core.Session.LoggedInMember, startTime, endTime); template.Parse("U_NEW_EVENT", core.Hyperlink.AppendSid(string.Format("{0}calendar/new-event", e.core.Session.LoggedInMember.AccountUriStub))); template.Parse("U_CALENDAR", core.Hyperlink.AppendSid(string.Format("{0}calendar", e.core.Session.LoggedInMember.UriStub))); VariableCollection appointmentDaysVariableCollection = null; DateTime lastDay = e.core.Tz.Now; if (events.Count > 0) { template.Parse("HAS_EVENTS", "TRUE"); } foreach(Event calendarEvent in events) { DateTime eventDay = calendarEvent.GetStartTime(e.core.Tz); DateTime eventEnd = calendarEvent.GetEndTime(e.core.Tz); if (appointmentDaysVariableCollection == null || lastDay.Day != eventDay.Day) { lastDay = eventDay; appointmentDaysVariableCollection = template.CreateChild("appointment_days_list"); appointmentDaysVariableCollection.Parse("DAY", core.Tz.DateTimeToDateString(eventDay)); } VariableCollection appointmentVariableCollection = appointmentDaysVariableCollection.CreateChild("appointments_list"); appointmentVariableCollection.Parse("TIME", eventDay.ToShortTimeString() + " - " + eventEnd.ToShortTimeString()); appointmentVariableCollection.Parse("SUBJECT", calendarEvent.Subject); appointmentVariableCollection.Parse("LOCATION", calendarEvent.Location); appointmentVariableCollection.Parse("URI", Event.BuildEventUri(core, calendarEvent)); } e.core.AddMainPanel(template); // // Tasks panel // template = new Template(Assembly.GetExecutingAssembly(), "todaytaskspanel"); template.SetProse(core.Prose); List<Task> tasks = cal.GetTasks(core, e.core.Session.LoggedInMember, startTime, endTime, true); VariableCollection taskDaysVariableCollection = null; lastDay = e.core.Tz.Now; if (tasks.Count > 0) { template.Parse("HAS_TASKS", "TRUE"); } template.Parse("U_TASKS", Task.BuildTasksUri(e.core, e.core.Session.LoggedInMember)); foreach (Task calendarTask in tasks) { DateTime taskDue = calendarTask.GetDueTime(e.core.Tz); if (taskDaysVariableCollection == null || lastDay.Day != taskDue.Day) { lastDay = taskDue; taskDaysVariableCollection = template.CreateChild("task_days"); taskDaysVariableCollection.Parse("DAY", taskDue.DayOfWeek.ToString()); } VariableCollection taskVariableCollection = taskDaysVariableCollection.CreateChild("task_list"); taskVariableCollection.Parse("DATE", taskDue.ToShortDateString() + " (" + taskDue.ToShortTimeString() + ")"); taskVariableCollection.Parse("TOPIC", calendarTask.Topic); taskVariableCollection.Parse("ID", calendarTask.Id.ToString()); taskVariableCollection.Parse("URI", Task.BuildTaskUri(core, calendarTask)); taskVariableCollection.Parse("U_MARK_COMPLETE", Task.BuildTaskMarkCompleteUri(core, calendarTask)); if (calendarTask.Status == TaskStatus.Overdue) { taskVariableCollection.Parse("OVERDUE", "TRUE"); taskVariableCollection.Parse("CLASS", "overdue-task"); } else if (calendarTask.Status == TaskStatus.Completed) { taskVariableCollection.Parse("COMPLETE", "TRUE"); taskVariableCollection.Parse("CLASS", "complete-task"); } else { taskVariableCollection.Parse("CLASS", "task"); } if (calendarTask.Priority == TaskPriority.High) { taskDaysVariableCollection.Parse("HIGH_PRIORITY", "TRUE"); } else if (calendarTask.Priority == TaskPriority.Low) { taskDaysVariableCollection.Parse("LOW_PRIORITY", "TRUE"); } } e.core.AddSidePanel(template); }