示例#1
0
        public static MvcHtmlString DayPilotCalendar(this HtmlHelper helper, string id, DayPilotCalendarConfig cfg)
        {
            if (id == null)
            {
                throw new ArgumentException("The 'id' argument is required.");
            }

            if (cfg == null)
            {
                cfg = new DayPilotCalendarConfig();
            }

            string scrollPos = "null";

            if (cfg.HeightSpec != HeightSpec.Full)
            {
                scrollPos = Convert.ToString(cfg.CellHeight * cfg.ScrollPositionHour * 2 + 1);
            }

            var builder = new InitBuilder();

            builder.Open("DayPilot.Calendar", id);

            builder.AppendProp("api", 1);
            builder.AppendProp("borderColor", cfg.BorderColor);
            builder.AppendProp("businessBeginsHour", cfg.BusinessBeginsHour);
            builder.AppendProp("businessEndsHour", cfg.BusinessEndsHour);
            builder.AppendProp("cellBackColor", cfg.CellBackColor);
            builder.AppendProp("cellBorderColor", cfg.CellBorderColor);
            builder.AppendProp("cellHeight", cfg.CellHeight);
            builder.AppendProp("columnMarginRight", cfg.ColumnMarginRight);
            builder.AppendProp("cornerBackColor", cfg.CornerBackColor);
            builder.AppendProp("cssOnly", cfg.CssOnly);
            builder.AppendProp("durationBarVisible", cfg.DurationBarVisible);
            builder.AppendProp("theme", cfg.Theme);
            builder.AppendProp("days", cfg.Days);
            builder.AppendProp("eventBackColor", cfg.EventBackColor);
            builder.AppendProp("eventBorderColor", cfg.EventBorderColor);
            builder.AppendProp("eventFontFamily", cfg.EventFontFamily);
            builder.AppendProp("eventFontSize", cfg.EventFontSize);
            builder.AppendProp("eventFontColor", cfg.EventFontColor);
            builder.AppendProp("eventHeaderFontSize", cfg.EventHeaderFontSize);
            builder.AppendProp("eventHeaderFontColor", cfg.EventHeaderFontColor);
            builder.AppendProp("eventHeaderHeight", cfg.EventHeaderHeight);
            builder.AppendProp("eventHeaderVisible", cfg.EventHeaderVisible);
            builder.AppendProp("headerFontSize", cfg.HeaderFontSize);
            builder.AppendProp("headerFontFamily", cfg.HeaderFontFamily);
            builder.AppendProp("headerFontColor", cfg.HeaderFontColor);
            builder.AppendProp("headerHeight", cfg.HeaderHeight);
            builder.AppendProp("heightSpec", cfg.HeightSpec);
            builder.AppendProp("hourHalfBorderColor", cfg.HourHalfBorderColor);
            builder.AppendProp("hourBorderColor", cfg.HourBorderColor);
            builder.AppendProp("hourFontColor", cfg.HourFontColor);
            builder.AppendProp("hourFontFamily", cfg.HourFontFamily);
            builder.AppendProp("hourNameBackColor", cfg.HourNameBackColor);
            builder.AppendProp("hourNameBorderColor", cfg.HourNameBorderColor);
            builder.AppendProp("hourWidth", cfg.HourWidth);
            builder.AppendProp("initScrollPos", scrollPos);
            builder.AppendProp("loadingLabelText", cfg.LoadingLabelText);
            builder.AppendProp("loadingLabelVisible", cfg.LoadingLabelVisible);
            builder.AppendProp("loadingLabelFontSize", cfg.LoadingLabelFontSize);
            builder.AppendProp("loadingLabelFontFamily", cfg.LoadingLabelFontFamily);
            builder.AppendProp("loadingLabelFontColor", cfg.LoadingLabelFontColor);
            builder.AppendProp("loadingLabelBackColor", cfg.LoadingLabelBackColor);
            builder.AppendProp("locale", Thread.CurrentThread.CurrentCulture.Name.ToLower());

            builder.AppendProp("showToolTip", cfg.ShowToolTip);

            builder.AppendProp("startDate", cfg.StartDate.ToString("s"));
            builder.AppendProp("timeFormat", Hour.DetectTimeFormat(cfg.TimeFormat));
            builder.AppendProp("viewType", cfg.ViewType);
            builder.AppendProp("width", cfg.Width);

            builder.AppendProp("backendUrl", cfg.BackendUrl);
            builder.AppendProp("ajaxError", "function(req) { if (DayPilot.Modal) { new DayPilot.Modal().showHtml(req.responseText); } else { alert('AJAX callback error (500)'); } }", false);

            // event handling types
            builder.AppendProp("eventClickHandling", cfg.EventClickHandling);
            builder.AppendProp("eventMoveHandling", cfg.EventMoveHandling);
            builder.AppendProp("eventResizeHandling", cfg.EventResizeHandling);
            builder.AppendProp("timeRangeSelectedHandling", cfg.TimeRangeSelectedHandling);

            // JavaScript event handlers
            builder.AppendProp("onEventClick", String.Format("function(e) {{ {0}; }}", cfg.EventClickJavaScript), false);
            builder.AppendProp("onEventMove", String.Format("function(e, newStart, newEnd) {{ var newColumn = newResource; {0}; }}", cfg.EventMoveJavaScript), false);
            builder.AppendProp("onEventResize", String.Format("function(e, newStart, newEnd) {{ {0}; }}", cfg.EventResizeJavaScript), false);
            builder.AppendProp("onTimeRangeSelected", String.Format("function(start, end, resource) {{ {0}; }}", cfg.TimeRangeSelectedJavaScript), false);

            builder.AppendSerialized("columns", cfg.GetColumns());

            builder.InjectString(Locale.RegistrationString(Thread.CurrentThread.CurrentCulture.Name.ToLower()));

            builder.Close();
            return(MvcHtmlString.Create(builder.ToString()));
        }
示例#2
0
        public static MvcHtmlString DayPilotMonth(this HtmlHelper helper, string id, DayPilotMonthConfig cfg)
        {
            if (id == null)
            {
                throw new ArgumentException("The 'id' argument is required.");
            }

            if (cfg == null)
            {
                cfg = new DayPilotMonthConfig();
            }

            if (String.IsNullOrEmpty(cfg.BackendUrl))
            {
                throw new ArgumentException("BackendUrl property must be specified.");
            }


            var builder = new InitBuilder();

            builder.Open("DayPilot.Month", id);

            builder.AppendProp("api", 1);
            builder.AppendProp("backendUrl", cfg.BackendUrl);
            builder.AppendProp("ajaxError", "function(req) { if (DayPilot.Modal) { new DayPilot.Modal().showHtml(req.responseText); } else { alert('AJAX callback error (500)'); } }", false);
            builder.AppendProp("backColor", cfg.BackColor);
            builder.AppendProp("borderColor", cfg.BorderColor);
            builder.AppendProp("cellHeaderBackColor", cfg.CellHeaderBackColor);
            builder.AppendProp("cellHeaderFontColor", cfg.CellHeaderFontColor);
            builder.AppendProp("cellHeaderFontFamily", cfg.CellHeaderFontFamily);
            builder.AppendProp("cellHeaderFontSize", cfg.CellHeaderFontSize);
            builder.AppendProp("cellHeight", cfg.CellHeight);
            builder.AppendProp("cellHeaderHeight", cfg.CellHeaderHeight);
            builder.AppendProp("cssOnly", cfg.CssOnly);
            //builder.AppendSerialized("dayNames", Week.GetDayNames());
            builder.AppendProp("eventBackColor", cfg.EventBackColor);
            builder.AppendProp("eventBorderColor", cfg.EventBorderColor);
            builder.AppendProp("eventFontColor", cfg.EventFontColor);
            builder.AppendProp("eventFontFamily", cfg.EventFontFamily);
            builder.AppendProp("eventFontSize", cfg.EventFontSize);
            builder.AppendProp("eventHeight", cfg.EventHeight);
            builder.AppendProp("innerBorderColor", cfg.InnerBorderColor);
            builder.AppendProp("headerBackColor", cfg.HeaderBackColor);
            builder.AppendProp("headerFontColor", cfg.HeaderFontColor);
            builder.AppendProp("headerFontSize", cfg.HeaderFontSize);
            builder.AppendProp("headerHeight", cfg.HeaderHeight);
            builder.AppendProp("hideUntilInit", cfg.HideUntilInit);
            builder.AppendProp("locale", Thread.CurrentThread.CurrentCulture.Name.ToLower());
            builder.AppendProp("nonBusinessBackColor", cfg.NonBusinessBackColor);
            //builder.AppendSerialized("monthNames", Year.GetMonthNames());
            builder.AppendProp("showToolTip", cfg.ShowToolTip);
            builder.AppendProp("timeFormat", cfg.TimeFormat);
            builder.AppendProp("weekStarts", cfg.WeekStartInt);
            builder.AppendProp("width", cfg.Width);
            builder.AppendProp("startDate", cfg.StartDate.ToString("s"));
            builder.AppendProp("theme", cfg.Theme);

            // event handling types
            builder.AppendProp("eventClickHandling", cfg.EventClickHandling);
            builder.AppendProp("eventDoubleClickHandling", cfg.EventClickHandling);
            builder.AppendProp("eventMoveHandling", cfg.EventMoveHandling);
            builder.AppendProp("eventResizeHandling", cfg.EventResizeHandling);
            builder.AppendProp("timeRangeSelectedHandling", cfg.TimeRangeSelectedHandling);

            // JavaScript event handlers
            builder.AppendProp("onEventClick", String.Format("function(e) {{ {0}; }}", cfg.EventClickJavaScript), false);
            builder.AppendProp("onEventDoubleClick", String.Format("function(e) {{ {0}; }}", cfg.EventDoubleClickJavaScript), false);
            builder.AppendProp("onEventSelect", String.Format("function(e, change) {{ {0}; }}", cfg.EventSelectJavaScript), false);
            builder.AppendProp("onEventMove", String.Format("function(e, newStart, newEnd, ctrl, shift) {{ {0}; }}", cfg.EventMoveJavaScript), false);
            builder.AppendProp("onEventResize", String.Format("function(e, newStart, newEnd) {{ {0}; }}", cfg.EventResizeJavaScript), false);
            builder.AppendProp("onEventRightClick", String.Format("function(e) {{ {0}; }}", cfg.EventRightClickJavaScript), false);
            builder.AppendProp("onHeaderClick", String.Format("function(e) {{ var day = e.day; {0}; }}", cfg.HeaderClickJavaScript), false);
            builder.AppendProp("onTimeRangeDoubleClick", String.Format("function(start, end) {{ {0}; }}", cfg.TimeRangeDoubleClickJavaScript), false);
            builder.AppendProp("onTimeRangeSelected", String.Format("function(start, end) {{ {0}; }}", cfg.TimeRangeSelectedJavaScript), false);

            builder.InjectString(Locale.RegistrationString(Thread.CurrentThread.CurrentCulture.Name.ToLower()));

            builder.Close();
            return(MvcHtmlString.Create(builder.ToString()));
        }