private void initList()
        {
            var module = new ModuleSettings(SiteSettingsPath);
             SiteSettingsPath = module.ModuleSettingsItemPath;

             Item settings_item = null;
             if (!string.IsNullOrEmpty(SelectorSettingsPath))
             {
            settings_item = module.GetActiveDatabase().GetItem(SelectorSettingsPath);
             }

             var settings =
            new CalendarSelectorSettings(settings_item ?? module.CalendarSelectorSettings,
                                         SiteSettingsPath);

             EventListMgr = new EventListManager(settings.EventLists, SiteSettingsPath);
             Format = settings.Format;
             LinkText = settings.LinkText;
             Margin = settings.Margin;
             Title = settings.Title;

             if (ShowAsDropDownList)
             {
            _calsCtrl = new DropDownList();
             }
             else
             {
            _calsCtrl = new CheckBoxList();
             }

             _calsCtrl.EnableViewState = false;
        }
        public string GetHTMLDayInMonthView(string date, Options options, int startHour, int hour)
        {
            if ((HttpContext.Current.Request.UserLanguages != null) &&
                     (!String.IsNullOrEmpty(HttpContext.Current.Request.UserLanguages[0])))
                {
                    Utilities.SetCurrentCulture(HttpContext.Current.Request.UserLanguages[0]);
                }

             var moduleSettings = new ModuleSettings(options.SiteSettingsPath);
             Item site_settings = moduleSettings.GetSettingsItem();

             Item settingsItem = moduleSettings.GetActiveDatabase().GetItem(options.ControlSettingsPath);

             var stringWriter = new StringWriter();
             var writer = new HtmlTextWriter(stringWriter);

             MonthView view;
             if (Utilities.IsTemplateSettingsEqual(settingsItem, site_settings,
                                               ModuleSettings.MonthViewField))
             {
            view = new MonthView(options.CalendarID, settingsItem, options.SiteSettingsPath);
             }
             else
             {
            view = new MonthView(options.CalendarID, moduleSettings.MonthViewSettings,
                                 options.SiteSettingsPath);
            view.SetSettings(settingsItem, options.SiteSettingsPath);
             }

             view.IsReinitNeed = true;
             view.Attributes["startHour"] = startHour.ToString();
             view.Attributes["numHours"] = hour.ToString();
             view.CurrentDate = Utilities.StringToDate(options.Date);

             view.RenderDayCell(writer, Utilities.StringToDate(date));
             return stringWriter.ToString();
        }
Exemplo n.º 3
0
        protected virtual void InitView()
        {
            Item settingsItem = null;

              var moduleSettings = new ModuleSettings(SiteSettingsPath);

              if (!string.IsNullOrEmpty(ViewSettingsPath))
              {
            settingsItem = moduleSettings.GetActiveDatabase().GetItem(ViewSettingsPath);
              }

              if (!string.IsNullOrEmpty(CustomView))
              {
            view = (BaseView)ReflectionUtil.CreateObject(CustomView,
                                       new object[] { _idCalendar, settingsItem, SiteSettingsPath });
              }

              if (view == null)
              {

            if (settingsItem != null)
            {
              if (settingsItem.TemplateID == CalendarIDs.AgendaViewTemplate)
              {
            ViewMode = ViewModeOption.Agenda;
            view = new AgendaView(_idCalendar, settingsItem, SiteSettingsPath);
              }
              else if (settingsItem.TemplateID == CalendarIDs.DayViewTemplate)
              {
            ViewMode = ViewModeOption.Day;
            view = new DayView(_idCalendar, settingsItem, SiteSettingsPath);
              }
              else if (settingsItem.TemplateID == CalendarIDs.MonthViewTemplate)
              {
            ViewMode = ViewModeOption.Month;
            view = new MonthView(_idCalendar, settingsItem, SiteSettingsPath);
              }
              else if (settingsItem.TemplateID == CalendarIDs.WeekViewTemplate)
              {
            ViewMode = ViewModeOption.Week;
            view = new WeekView(_idCalendar, settingsItem, SiteSettingsPath);
              }
            }
            else
            {
              switch (ViewMode)
              {
            case ViewModeOption.Week:
              settingsItem = moduleSettings.WeekViewSettings;
              view = new WeekView(_idCalendar, settingsItem, SiteSettingsPath);
              break;
            case ViewModeOption.Day:
              settingsItem = moduleSettings.DayViewSettings;
              view = new DayView(_idCalendar, settingsItem, SiteSettingsPath);
              break;
            case ViewModeOption.Agenda:
              settingsItem = moduleSettings.AgendaViewSettings;
              view = new AgendaView(_idCalendar, settingsItem, SiteSettingsPath);
              break;
            default:
              settingsItem = moduleSettings.MonthViewSettings;
              view = new MonthView(_idCalendar, settingsItem, SiteSettingsPath);
              break;
              }
            }
              }

              if (view != null)
              {
            view.CurrentDate = _currentDate;
            Controls.Add(view);
            _currentView = view;
              }
              else
              {
            Log.Error("Calendar: CalendarView provided settings item of incorrect type!", this);
            Log.Error("Calendar: Settings item path: " + settingsItem.Paths.Path, this);
            Log.Error("Calendar: Settings item type: " + settingsItem.TemplateName, this);
              }
        }
        public string GetViewHTML(int num, int startHour, string viewName, string currentView,
                                int hour, Options options)
        {
            if ((HttpContext.Current.Request.UserLanguages != null) &&
                     (!String.IsNullOrEmpty(HttpContext.Current.Request.UserLanguages[0])))
                {
                    Utilities.SetCurrentCulture(HttpContext.Current.Request.UserLanguages[0]);
                }

             var stringWriter = new StringWriter();
             var writer = new HtmlTextWriter(stringWriter);
             if (num > -1)
             {
            writer.Write(string.Format("<calendarNum>{0}</calendarNum>", num));
             }

             var moduleSettings = new ModuleSettings(options.SiteSettingsPath);
             Item site_settings = moduleSettings.GetSettingsItem();
             Item settingsItem = moduleSettings.GetActiveDatabase().GetItem(options.ControlSettingsPath);

             if (viewName == "day")
             {
            if (HttpContext.Current.Session[options.CalendarID] == null)
            {
               HttpContext.Current.Session.Add(options.CalendarID, currentView);
            }

            DayView view;
            if (Utilities.IsTemplateSettingsEqual(settingsItem, site_settings,
                                                  ModuleSettings.DayViewField))
            {
               view = new DayView(options.CalendarID, settingsItem, options.SiteSettingsPath);
            }
            else
            {
               view = new DayView(options.CalendarID, moduleSettings.DayViewSettings,
                                  options.SiteSettingsPath);
               view.SetSettings(settingsItem, options.SiteSettingsPath);
            }
            view.IsReinitNeed = true;

            view.CurrentDate = Utilities.StringToDate(options.Date);
            if (startHour > -1)
            {
               view.NumHoursDisplayed = hour;
               view.StartHour = startHour;
            }
            view.RenderControl(writer);
             }
             else
             {
            if (HttpContext.Current.Session[options.CalendarID] != null)
            {
               HttpContext.Current.Session.Remove(options.CalendarID);
            }

            if (viewName == "week")
            {
               WeekView view;
               if (Utilities.IsTemplateSettingsEqual(settingsItem, site_settings,
                                                     ModuleSettings.WeekViewField))
               {
                  view = new WeekView(options.CalendarID, settingsItem, options.SiteSettingsPath);
               }
               else
               {
                  view = new WeekView(options.CalendarID, moduleSettings.WeekViewSettings,
                                      options.SiteSettingsPath);
                  view.SetSettings(settingsItem, options.SiteSettingsPath);
               }
               view.IsReinitNeed = true;
               view.CurrentDate = Utilities.StringToDate(options.Date);
               if (startHour > -1)
               {
                  view.NumHoursDisplayed = hour;
                  view.StartHour = startHour;
               }
               view.RenderControl(writer);
            }
            else if (viewName == "month")
            {
               MonthView view;
               if (Utilities.IsTemplateSettingsEqual(settingsItem, site_settings,
                                                     ModuleSettings.MonthViewField))
               {
                  view = new MonthView(options.CalendarID, settingsItem, options.SiteSettingsPath);
               }
               else
               {
                  view = new MonthView(options.CalendarID, moduleSettings.MonthViewSettings,
                                       options.SiteSettingsPath);
                  view.SetSettings(settingsItem, options.SiteSettingsPath);
               }
               view.IsReinitNeed = true;
               view.CurrentDate = Utilities.StringToDate(options.Date);
               view.Attributes["startHour"] = startHour.ToString();
               view.Attributes["numHours"] = hour.ToString();
               view.RenderControl(writer);
            }
            else if (viewName == "agenda")
            {
               settingsItem = (viewName == currentView)
                                 ? settingsItem : moduleSettings.AgendaViewSettings;
               var view = new AgendaView(options.CalendarID, settingsItem, options.SiteSettingsPath);
               view.CurrentDate = Utilities.StringToDate(options.Date);
               view.RenderControl(writer);
            }
             }

             return stringWriter.ToString();
        }