| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152 |
-
- <script>
- if (!String.prototype.format) {
- String.prototype.format = function () {
- var args = arguments;
- return this.replace(/{(\d+)}/g, function (match, number) {
- return typeof args[number] != 'undefined'
- ? args[number]
- : match;
- });
- };
- }
- function translateWeekDayCodeToWeekDays(weekDayCode) {
- switch (weekDayCode) {
- case 1: return "SUN";
- case 2: return "MON";
- case 4: return "TUE";
- case 8: return "WED";
- case 16: return "THU";
- case 32: return "FRI";
- case 64: return "SAT";
- case 62: return "MON,TUE,WED,THU,FRI";
- case 65: return "SAT,SUN";
- case 127: return "MON,TUE,WED,THU,FRI,SAT,SUN";
- default: return "*;"
- }
- }
- function generateCronExpression(baseName) {
- var controls = ASPxClientControl.GetControlCollection();
- var radioButtonList = ASPxClientRadioButtonList.Cast(controls.GetByName(baseName + "_AptRecCtl_TypeEdt"));
- var checkRecurrenceType = radioButtonList.GetValue();
- var timeEditDate = ASPxClientTimeEdit.Cast(devTimeEditCron).GetDate();
- var time = timeEditDate.getSeconds() + " " + timeEditDate.getMinutes() + " " + timeEditDate.getHours();
- var result = "* * * * * *";
- switch (checkRecurrenceType) {
- case 0:
- var repeatNDaysCheckBox = ASPxClientCheckBox.Cast(controls.GetByName(baseName + "_AptRecCtl_Daily_RbDay"));
- var repeatNDaysSpinEdit = ASPxClientSpinEdit.Cast(controls.GetByName(baseName + "_AptRecCtl_Daily_SpnDayCnt"));
- var repeatEveryDayCheckBox = ASPxClientCheckBox.Cast(controls.GetByName(baseName + "_AptRecCtl_Daily_RbEvrDay"));
- if (repeatEveryDayCheckBox.GetChecked()) {
- result = "{0} ? * MON-FRI *".format(time);
- } else {
- result = "{0} 1/{1} * ? *".format(time, repeatNDaysSpinEdit.GetValue());
- }
- break;
- case 1:
- var repeatNWeeksSpinEdit = ASPxClientSpinEdit.Cast(controls.GetByName(baseName + "_AptRecCtl_Weekly_SpnWeekCnt"));
- var repeatWeekDaysMondayCheckBox = ASPxClientCheckBox.Cast(controls.GetByName(baseName + "_AptRecCtl_Weekly_WeekDaysEdt_Monday0"));
- var repeatWeekDaysTuesdayCheckBox = ASPxClientCheckBox.Cast(controls.GetByName(baseName + "_AptRecCtl_Weekly_WeekDaysEdt_Tuesday1"));
- var repeatWeekDaysWednesdayCheckBox = ASPxClientCheckBox.Cast(controls.GetByName(baseName + "_AptRecCtl_Weekly_WeekDaysEdt_Wednesday2"));
- var repeatWeekDaysThursdayCheckBox = ASPxClientCheckBox.Cast(controls.GetByName(baseName + "_AptRecCtl_Weekly_WeekDaysEdt_Thursday3"));
- var repeatWeekDaysFridayCheckBox = ASPxClientCheckBox.Cast(controls.GetByName(baseName + "_AptRecCtl_Weekly_WeekDaysEdt_Friday4"));
- var repeatWeekDaysSaturdayCheckBox = ASPxClientCheckBox.Cast(controls.GetByName(baseName + "_AptRecCtl_Weekly_WeekDaysEdt_Saturday5"));
- var repeatWeekDaysSundayCheckBox = ASPxClientCheckBox.Cast(controls.GetByName(baseName + "_AptRecCtl_Weekly_WeekDaysEdt_Sunday6"));
- var weekValue = repeatNWeeksSpinEdit.GetValue();
- if (weekValue == 1) {
- var weekDays = [];
- if (repeatWeekDaysMondayCheckBox.GetChecked()) { weekDays.push("MON"); }
- if (repeatWeekDaysTuesdayCheckBox.GetChecked()) { weekDays.push("TUE"); }
- if (repeatWeekDaysWednesdayCheckBox.GetChecked()) { weekDays.push("WED"); }
- if (repeatWeekDaysThursdayCheckBox.GetChecked()) { weekDays.push("THU"); }
- if (repeatWeekDaysFridayCheckBox.GetChecked()) { weekDays.push("FRI"); }
- if (repeatWeekDaysSaturdayCheckBox.GetChecked()) { weekDays.push("SAT"); }
- if (repeatWeekDaysSundayCheckBox.GetChecked()) { weekDays.push("SUN"); }
- result = "{0} ? * {1} *".format(time, weekDays.join(","));
- } else {
- result = "{0} 1/{1} * ? *".format(time, weekValue * 7);
- }
- break;
- case 2:
- var repeatNDayOfMonthRadioButton = ASPxClientRadioButton.Cast(controls.GetByName(baseName + "_AptRecCtl_Monthly_RbDay"));
- var repeatNDayOfMonthSpinEdit = ASPxClientSpinEdit.Cast(controls.GetByName(baseName + "_AptRecCtl_Monthly_SpnMnthDay"));
- var repeatNMonthsForDaySpinEdit = ASPxClientSpinEdit.Cast(controls.GetByName(baseName + "_AptRecCtl_Monthly_SpnDayMnthCnt"));
- var repeatNWeeksOfMonthRadioButton = ASPxClientRadioButton.Cast(controls.GetByName(baseName + "_AptRecCtl_Monthly_RbWeekDays"));
- var repeatNWeekDayNumberOfMonthComboBox = ASPxClientComboBox.Cast(controls.GetByName(baseName + "_AptRecCtl_Monthly_WmeWeekOfMnth"));
- var repeatNWeekDayOfMonthComboBox = ASPxClientComboBox.Cast(controls.GetByName(baseName + "_AptRecCtl_Monthly_WdeWeekDays"));
- var repeatNMonthsForWeekSpinEdit = ASPxClientSpinEdit.Cast(controls.GetByName(baseName + "_AptRecCtl_Monthly_SpinWeekDaysMnthCnt"));
- var repeatNWeekDayNumberOfMonth = repeatNWeekDayNumberOfMonthComboBox.GetValue();
- var repeatNWeekDayOfMonth = repeatNWeekDayOfMonthComboBox.GetValue();
- var repeatNMonthsForWeek = repeatNMonthsForWeekSpinEdit.GetValue();
- if (repeatNDayOfMonthRadioButton.GetChecked()) {
- result = "{0} {1} 1/{2} ? *".format(time, repeatNDayOfMonthSpinEdit.GetValue(), repeatNMonthsForDaySpinEdit.GetValue());
- } else {
- result = "{0} ? 1/{1} {2}#{3} *".format(time, repeatNMonthsForWeek,
- translateWeekDayCodeToWeekDays(repeatNWeekDayOfMonth),
- (repeatNWeekDayNumberOfMonth == 5 ? 4 : repeatNWeekDayNumberOfMonth));
- }
- break;
- case 3:
- var repeatNDayOfMonthByYearRadioButton = ASPxClientRadioButton.Cast(controls.GetByName(baseName + "_AptRecCtl_Yearly_RbDay"));
- var repeatNMonthByYearComboBox = ASPxClientComboBox.Cast(controls.GetByName(baseName + "_AptRecCtl_Yearly_MeDayMnth"));
- var repeatNDayOfMonthByYearSpinEdit = ASPxClientSpinEdit.Cast(controls.GetByName(baseName + "_AptRecCtl_Yearly_SpnDayNo"));
- var repeatNWeekDayOfMonthByYearRadioButton = ASPxClientRadioButton.Cast(controls.GetByName(baseName + "_AptRecCtl_Yearly_RbWeekOfMnth"));
- var repeatNWeekDayNumberOfMonthByYearComboBox = ASPxClientComboBox.Cast(controls.GetByName(baseName + "_AptRecCtl_Yearly_WmeWeekOfMnth"));
- var repeatNWeekDayOfMonthByYearComboBox = ASPxClientComboBox.Cast(controls.GetByName(baseName + "_AptRecCtl_Yearly_WdeWeekDays"));
- var repeatNMonthOfYearComboBox = ASPxClientComboBox.Cast(controls.GetByName(baseName + "_AptRecCtl_Yearly_MeWeekDaysMnth"));
- var repeatNWeekDayNumberOfMonthByYear = repeatNWeekDayNumberOfMonthByYearComboBox.GetValue();
- var repeatNWeekDayOfMonthByYear = repeatNWeekDayOfMonthByYearComboBox.GetValue();
- if (repeatNDayOfMonthByYearRadioButton.GetChecked()) {
- result = "{0} {1} {2} ? *".format(time, repeatNDayOfMonthByYearSpinEdit.GetValue(), repeatNMonthByYearComboBox.GetValue());
- } else {
- result = "{0} ? {1} {2}#{3} *".format(time, repeatNMonthOfYearComboBox.GetValue(),
- translateWeekDayCodeToWeekDays(repeatNWeekDayOfMonthByYear),
- (repeatNWeekDayNumberOfMonthByYear == 5 ? 4 : repeatNWeekDayNumberOfMonthByYear))
- }
- break;
- }
- return result;
- }
- </script>
- <style>
- .recurrenceRange {
- display: none !important;
- }
- </style>
- @Html.DevExpress().TimeEdit(t =>
- {
- t.Name = "devTimeEditCron";
- t.DateTime = new DateTime(2000, 1, 1, 6, 0, 0);
- t.Properties.DisplayFormatString = "HH:mm \"Uhr\"";
- }).GetHtml()
- @Html.DevExpress().AppointmentRecurrenceForm(r =>
- {
- r.Name = "devRecurrenceFormCron";
- r.IsRecurring = true;
- r.PreRender = (sender, e) =>
- {
- var control = sender as DevExpress.Web.ASPxScheduler.Controls.AppointmentRecurrenceForm;
- var controls = GreenTree.Nachtragsmanagement.Web.Extensions.ControlHelper.GetAllSubControlsOfTypes(
- control,
- typeof(ASPxCheckBox),
- typeof(DevExpress.Web.ASPxScheduler.Controls.RecurrenceRangeControl));
- foreach (var subControl in controls)
- {
- if (subControl.ID == "ChkRecurrence")
- ((ASPxEdit)subControl).ClientVisible = false;
- if (subControl.ID == "RangeCtl")
- ((DevExpress.Web.ASPxScheduler.Controls.RecurrenceRangeControl)subControl).MainDiv.CssClass = "recurrenceRange";
- }
- };
- }).GetHtml()
|