Merge remote-tracking branch 'origin/rrule' into rrule

This commit is contained in:
David Benque 2022-10-11 16:02:10 +01:00
commit 0b87f1f9c6
2 changed files with 65 additions and 26 deletions

View File

@ -242,7 +242,7 @@
margin-top: 10px;
border: 0;
display: flex;
align-items: center;
align-items: start;
button {
flex: 1;
margin: 0;
@ -422,6 +422,19 @@
margin-right: 20px;
}
}
button.cp-calendar-pick-el {
display: flex;
align-items: center;
justify-content: center;
&:not(:last-child) {
margin-right: 5px;
}
}
div.cp-calendar-weekly-pick {
button {
width: 50px;
}
}
div.cp-calendar-monthly-pick {
display: flex;
flex-flow: column;
@ -433,11 +446,8 @@
button {
height: 25px;
width: 25px;
display: flex;
align-items: center;
justify-content: center;
&:not(:last-child) {
margin-right: 5px;
&.lastday {
width: 115px;
}
}
}

View File

@ -347,7 +347,6 @@ define([
APP.editModalData = obj.data && obj.data.root;
return Messages.poll_edit;
},
popupDelete: function() { return Messages.kanban_delete; },
popupDetailLocation: function(schedule) {
var l = schedule.location;
var str = Util.fixHTML(l);
@ -1255,7 +1254,7 @@ Messages.calendar_rec_freq_weekly = "weeks";
Messages.calendar_rec_freq_monthly = "months";
Messages.calendar_rec_freq_yearly = "years";
Messages.calendar_rec_until = "Stop Repeating"
Messages.calendar_rec_until = "Stop Repeating";
Messages.calendar_rec_until_no = "Never";
Messages.calendar_rec_until_date = "On";
Messages.calendar_rec_until_count = "After";
@ -1274,7 +1273,7 @@ Messages.calendar_rec_monthly_nth = "Every {0} {1} of the month";
Messages.calendar_rec_yearly_nth = "Every {0} {1} of {2}";
Messages.calendar_rec_every_date = "Every {0}";
Messages.calendar_month_last = "last day";
Messages.calendar_list = "{0}, {1}";
Messages.calendar_list_end = "{0} or {1}";
@ -1312,13 +1311,18 @@ Messages.calendar_rec_updated = "Rule updated on {0}";
if (arr.length === 1) {
return arr[0];
}
var str = arr.shift();
var shift = function () {
var i = arr.shift();
if (i === -1) { return Messages.calendar_month_last; }
return i;
};
var str = shift();
var i = 0;
while (arr.length > 1 && i < 367) {
str = Messages._getKey('calendar_list', [str, arr.shift()]);
str = Messages._getKey('calendar_list', [str, shift()]);
i++;
}
str = Messages._getKey('calendar_list_end', [str, arr.shift()]);
str = Messages._getKey('calendar_list_end', [str, shift()]);
return str;
};
var translate = function (rule) {
@ -1665,16 +1669,25 @@ APP.recurrenceRule = {
var EXPAND = {};
EXPAND.daily = function () {};
EXPAND.weekly = function () {
$expand.attr('class', 'cp-calendar-rec-inline');
$expand.attr('class', 'cp-calendar-rec-inline cp-calendar-weekly-pick');
var days = getWeekDays();
var cbox, dayCode;
var checked = (rec.by && rec.by.day) || [Rec.DAYORDER[date.getDay()]];
var active = (rec.by && rec.by.day) || [Rec.DAYORDER[date.getDay()]];
var line = [], dayCode;
for (var i = 1; i < 8; i++) {
dayCode = Rec.DAYORDER[i%7];
cbox = UI.createCheckbox('cp-form-rec-weekly-'+i,
days[i%7], checked.includes(dayCode), { input: { 'data-value': dayCode } });
$expand.append(cbox);
line.push(h('button.btn.no-margin.cp-calendar-pick-el' +
(active.includes(dayCode) ? '.btn-primary' : '.btn-default'), {
'data-value': dayCode
}, days[i%7]));
}
$expand.append(line);
$expand.find('button').click(function () {
var $b = $(this);
if ($b.is('.btn-primary')) {
return $b.removeClass('btn-primary').addClass('btn-default');
}
$b.removeClass('btn-default').addClass('btn-primary');
});
};
EXPAND.monthly = function () {
$expand.attr('class', 'cp-calendar-rec-block radio-group');
@ -1699,8 +1712,14 @@ APP.recurrenceRule = {
l = [];
for (var j = 1; j < 8; j++) {
n = i * 7 + j;
if (n > 31) { break; }
l.push(h('button.btn.no-margin.cp-calendar-monthly-pick-el' +
if (n > 31) {
l.push(h('button.btn.no-margin.cp-calendar-pick-el.lastday' +
(active.includes(-1) ? '.btn-primary' : '.btn-default'), {
'data-value': -1
}, Messages.calendar_month_last));
break;
}
l.push(h('button.btn.no-margin.cp-calendar-pick-el' +
(active.includes(n) ? '.btn-primary' : '.btn-default'), {
'data-value': n
}, n));
@ -1800,17 +1819,18 @@ APP.recurrenceRule = {
if (freq === "weekly") {
rec.by.day = [];
$expand.find('input[type="checkbox"]:checked').each(function (i, el) {
$expand.find('button.cp-calendar-pick-el.btn-primary')
.each(function (i, el) {
rec.by.day.push($(el).data('value'));
if (!rec.by.day.length) { delete rec.by.day; }
});
if (!rec.by.day.length) { delete rec.by.day; }
}
if (freq === "monthly") {
var _m = $expand.find('input[name="cp-calendar-rec-monthly"]:checked').data('value');
if (_m === "pick") {
rec.by.monthday = [];
$expand.find('div.cp-calendar-monthly-pick button.btn-secondary')
$expand.find('div.cp-calendar-monthly-pick button.btn-primary')
.each(function (i, el) {
rec.by.monthday.push($(el).data('value'));
});
@ -2114,10 +2134,19 @@ APP.recurrenceRule = {
var $el = $(el);
$el.find('.tui-full-calendar-popup-edit').addClass('btn btn-primary');
$el.find('.tui-full-calendar-popup-edit .tui-full-calendar-icon').addClass('fa fa-pencil').removeClass('tui-full-calendar-icon');
$el.find('.tui-full-calendar-popup-delete').addClass('btn btn-danger');
$el.find('.tui-full-calendar-popup-delete .tui-full-calendar-icon').addClass('fa fa-trash').removeClass('tui-full-calendar-icon');
$el.find('.tui-full-calendar-content').removeClass('tui-full-calendar-content');
var delButton = h('button.btn.btn-danger', [
h('i.fa.fa-trash'),
h('span', Messages.kanban_delete)
]);
var $del = $el.find('.tui-full-calendar-popup-delete').hide();
$del.after(delButton);
UI.confirmButton(delButton, {
classes: 'danger'
}, function () {
$del.click();
});
var $section = $el.find('.tui-full-calendar-section-button');
var ev = APP.editModalData;
var data = ev.schedule || {};
@ -2140,7 +2169,7 @@ APP.recurrenceRule = {
h('i.fa.fa-times'),
h('span', Messages.calendar_rec_stop)
])).insertBefore($section);
$b.click(function () {
UI.confirmButton($b[0], { classes: 'secondary' }, function () {
var originalId = id.split('|')[0];
var originalEvent = Util.find(APP.calendars,
[ev.schedule.calendarId, 'content', 'content', originalId]);