Fix preview of subevent repetition rule with UNTIL (#1857)

This commit is contained in:
Richard Schreiber
2020-11-26 17:01:29 +01:00
committed by GitHub
parent 97561819e2
commit 827afd6d39
2 changed files with 3662 additions and 2143 deletions

View File

@@ -27,7 +27,7 @@ $(function () {
}
function rrule_preview() {
var ruleset = new RRuleSet();
var ruleset = new rrule.RRuleSet();
$(".rrule-form").each(function () {
if ($(this).find("input[name$=DELETE]").prop("checked")) {
@@ -47,7 +47,7 @@ $(function () {
rule_args.interval = parseInt($form.find("input[name*=interval]").val()) || 1;
if (freq === 'yearly') {
rule_args.freq = RRule.YEARLY;
rule_args.freq = rrule.RRule.YEARLY;
var same = $form.find("input[name*=yearly_same]:checked").val();
if (same === "off") {
@@ -56,7 +56,7 @@ $(function () {
rule_args.bymonth = parseInt($form.find("select[name*=yearly_bymonth]").val());
}
} else if (freq === 'monthly') {
rule_args.freq = RRule.MONTHLY;
rule_args.freq = rrule.RRule.MONTHLY;
var same = $form.find("input[name*=monthly_same]:checked").val();
if (same === "off") {
@@ -64,7 +64,7 @@ $(function () {
rule_args.byweekday = parse_weekday($form.find("select[name*=monthly_byweekday]").val());
}
} else if (freq === 'weekly') {
rule_args.freq = RRule.WEEKLY;
rule_args.freq = rrule.RRule.WEEKLY;
var days = [];
$form.find("input[name*=weekly_byweekday]:checked").each(function () {
@@ -74,7 +74,7 @@ $(function () {
rule_args.byweekday = days;
}
} else if (freq === 'daily') {
rule_args.freq = RRule.DAILY;
rule_args.freq = rrule.RRule.DAILY;
}
var end = $form.find("input[name*=end]:checked").val();
@@ -83,15 +83,18 @@ $(function () {
} else {
var date = $form.find("input[name*=until]").data("DateTimePicker").date();
if (date !== null) {
rule_args.until = date.toDate();
// rrule.until is non-inclusive, whereas in pretix-backend "until" is inclusive => add 1 day
// date is a Moment-object. Moment.add() mutates, but is save to do here
date.add(1, 'days');
rule_args.until = date;
}
}
if ($form.find("input[name*=exclude]").prop("checked")) {
ruleset.exrule(new RRule(rule_args));
ruleset.exrule(new rrule.RRule(rule_args));
$form.closest(".panel").addClass("panel-danger").removeClass("panel-default");
} else {
ruleset.rrule(new RRule(rule_args));
ruleset.rrule(new rrule.RRule(rule_args));
$form.closest(".panel").addClass("panel-default").removeClass("panel-danger");
}
});

File diff suppressed because it is too large Load Diff