Fix adding resources to new events

This commit is contained in:
Aleksander Machniak 2022-04-26 11:59:45 +02:00
parent 9b712e73e8
commit c28d62df91

View file

@ -866,12 +866,6 @@ function rcube_calendar_ui(settings)
if (i.match(/^rcmfile(.+)/)) if (i.match(/^rcmfile(.+)/))
data.attachments.push(RegExp.$1); data.attachments.push(RegExp.$1);
// read attendee roles
$('select.edit-attendee-role').each(function(i, elem){
if (data.attendees[i])
data.attendees[i].role = $(elem).val();
});
if (organizer) if (organizer)
data._identity = $('#edit-identities-list option:selected').val(); data._identity = $('#edit-identities-list option:selected').val();
@ -1221,12 +1215,6 @@ function rcube_calendar_ui(settings)
event.allDay = true; event.allDay = true;
} }
// read attendee roles from drop-downs
$('select.edit-attendee-role').each(function(i, elem){
if (event_attendees[i])
event_attendees[i].role = $(elem).val();
});
// render time slots // render time slots
var now = new Date(), fb_start = new Date(), fb_end = new Date(); var now = new Date(), fb_start = new Date(), fb_end = new Date();
fb_start.setTime(event.start); fb_start.setTime(event.start);
@ -1261,7 +1249,7 @@ function rcube_calendar_ui(settings)
$('#schedule-attendees-list').html(list_html) $('#schedule-attendees-list').html(list_html)
.unbind('click.roleicons') .unbind('click.roleicons')
.bind('click.roleicons', function(e){ .bind('click.roleicons', function(e) {
// toggle attendee status upon click on icon // toggle attendee status upon click on icon
if (e.target.id && e.target.id.match(/rcmlia(.+)/)) { if (e.target.id && e.target.id.match(/rcmlia(.+)/)) {
var attendee, domid = RegExp.$1, var attendee, domid = RegExp.$1,
@ -1299,12 +1287,15 @@ function rcube_calendar_ui(settings)
$('#edit-endtime').val(freebusy_ui.endtime.val()); $('#edit-endtime').val(freebusy_ui.endtime.val());
// write role changes back to main dialog // write role changes back to main dialog
$('select.edit-attendee-role').each(function(i, elem){ for (var domid in freebusy_ui.attendees) {
if (event_attendees[i] && freebusy_ui.attendees[i]) { var attendee = freebusy_ui.attendees[domid],
event_attendees[i].role = freebusy_ui.attendees[i].role; event_attendee = event_attendees.find(function(item) { return item.email == attendee.email});
$(elem).val(event_attendees[i].role);
if (event_attendee && attendee.role != event_attendee.role) {
event_attendee.role = attendee.role;
$('select.edit-attendee-role').filter(function(i,elem) { return $(elem).data('email') == attendee.email; }).val(attendee.role);
}
} }
});
if (freebusy_ui.needsupdate) if (freebusy_ui.needsupdate)
update_freebusy_status(me.selected_event); update_freebusy_status(me.selected_event);
@ -1936,6 +1927,7 @@ function rcube_calendar_ui(settings)
dispname = rcmail.env['identities-selector']; dispname = rcmail.env['identities-selector'];
var select = '<select class="edit-attendee-role form-control custom-select"' var select = '<select class="edit-attendee-role form-control custom-select"'
+ ' data-email="' + Q(data.email) + '"'
+ (organizer || readonly ? ' disabled="true"' : '') + (organizer || readonly ? ' disabled="true"' : '')
+ ' aria-label="' + rcmail.gettext('role','calendar') + '">'; + ' aria-label="' + rcmail.gettext('role','calendar') + '">';
for (var r in opts) for (var r in opts)
@ -1994,6 +1986,7 @@ function rcube_calendar_ui(settings)
var enabled = $('#edit-attendees-invite:checked').length || $('input.edit-attendee-reply:checked').length; var enabled = $('#edit-attendees-invite:checked').length || $('input.edit-attendee-reply:checked').length;
$('#eventedit .attendees-commentbox')[enabled ? 'show' : 'hide'](); $('#eventedit .attendees-commentbox')[enabled ? 'show' : 'hide']();
}); });
tr.find('select.edit-attendee-role').change(function() { data.role = $(this).val(); });
// select organizer identity // select organizer identity
if (data.identity_id) if (data.identity_id)