diff --git a/plugins/calendar/calendar_ui.js b/plugins/calendar/calendar_ui.js
index 0885a94d..d47900ec 100644
--- a/plugins/calendar/calendar_ui.js
+++ b/plugins/calendar/calendar_ui.js
@@ -296,6 +296,11 @@ function rcube_calendar_ui(settings)
html += '' + dispname + ' ';
if (data.role == 'ORGANIZER')
organizer = true;
+ // stop listing attendees
+ if (j == 7 && event.attendees.length >= 7) {
+ html += ' ' + rcmail.gettext('andnmore', 'calendar').replace('$nr', event.attendees.length - j - 1) + '';
+ break;
+ }
}
if (html && event.attendees.length > 1 || !organizer) {
$('#event-attendees').show()
@@ -559,6 +564,10 @@ function rcube_calendar_ui(settings)
data.attendees[i].role = $(elem).val();
});
+ // don't submit attendees if only myself is added as organizer
+ if (data.attendees.length == 1 && data.attendees[0].role == 'ORGANIZER' && data.attendees[0].email == settings.event_owner.email)
+ data.attendees = [];
+
// tell server to send notifications
if (data.attendees.length && ((event.id && notify.checked) || (!event.id && invite.checked))) {
data.notify = 1;
@@ -768,10 +777,7 @@ function rcube_calendar_ui(settings)
// adjust dialog size to fit grid without scrolling
var gridw = $('#schedule-freebusy-times').width();
var overflow = gridw - $('#attendees-freebusy-table td.times').width() + 1;
- if (overflow > 0) {
- $dialog.dialog('option', 'width', Math.min((window.innerWidth || document.documentElement.clientWidth) - 40, 850 + overflow));
- $dialog.dialog('option', 'position', ['center', 'center']);
- }
+ me.dialog_resize($dialog.get(0), $dialog.height() + (bw.ie ? 20 : 0), 800 + Math.max(0, overflow));
// fetch data from server
freebusy_ui.loading = 0;
@@ -1233,8 +1239,6 @@ function rcube_calendar_ui(settings)
// availability
var avail = data.email ? 'loading' : 'unknown';
- if (edit && data.role == 'ORGANIZER' && data.status == 'ACCEPTED')
- avail = 'free';
// delete icon
var icon = rcmail.env.deleteicon ? '
' : rcmail.gettext('delete');
@@ -1267,7 +1271,7 @@ function rcube_calendar_ui(settings)
{
var icons = attendees_list.find('img.availabilityicon');
for (var i=0; i < event_attendees.length; i++) {
- if (icons.get(i) && event_attendees[i].email && event_attendees[i].status != 'ACCEPTED')
+ if (icons.get(i) && event_attendees[i].email)
check_freebusy_status(icons.get(i), event_attendees[i].email, event);
}
@@ -2023,7 +2027,7 @@ function rcube_calendar_ui(settings)
if (freebusy_ui.needsupdate && me.selected_event)
update_freebusy_status(me.selected_event);
// add current user as organizer if non added yet
- if (!event_attendees.length && !me.selected_event.id)
+ if (!event_attendees.length)
add_attendee($.extend({ role:'ORGANIZER' }, settings.event_owner));
}
}
@@ -2091,8 +2095,10 @@ function rcube_calendar_ui(settings)
$('#edit-attendee-add').click(function(){
var input = $('#edit-attendee-name');
- if (add_attendees(input.val()))
+ if (add_attendees(input.val())) {
input.val('');
+ rcmail.ksearch_blur();
+ }
});
// keep these two checkboxes in sync
diff --git a/plugins/calendar/localization/de_CH.inc b/plugins/calendar/localization/de_CH.inc
index cf08d978..d3bdfbe9 100644
--- a/plugins/calendar/localization/de_CH.inc
+++ b/plugins/calendar/localization/de_CH.inc
@@ -60,6 +60,7 @@ $labels['parentcalendar'] = 'Übergeordneter Kalender';
$labels['importtocalendar'] = 'In Kalender übernehmen';
$labels['searchearlierdates'] = '« Frühere Termine suchen';
$labels['searchlaterdates'] = 'Spätere Termine suchen »';
+$labels['andnmore'] = 'und $nr weitere';
// alarm/reminder settings
$labels['showalarms'] = 'Erinnerungen anzeigen';
diff --git a/plugins/calendar/localization/de_DE.inc b/plugins/calendar/localization/de_DE.inc
index cf08d978..d3bdfbe9 100644
--- a/plugins/calendar/localization/de_DE.inc
+++ b/plugins/calendar/localization/de_DE.inc
@@ -60,6 +60,7 @@ $labels['parentcalendar'] = 'Übergeordneter Kalender';
$labels['importtocalendar'] = 'In Kalender übernehmen';
$labels['searchearlierdates'] = '« Frühere Termine suchen';
$labels['searchlaterdates'] = 'Spätere Termine suchen »';
+$labels['andnmore'] = 'und $nr weitere';
// alarm/reminder settings
$labels['showalarms'] = 'Erinnerungen anzeigen';
diff --git a/plugins/calendar/localization/en_US.inc b/plugins/calendar/localization/en_US.inc
index 8e3a4191..bbb26a71 100644
--- a/plugins/calendar/localization/en_US.inc
+++ b/plugins/calendar/localization/en_US.inc
@@ -60,6 +60,7 @@ $labels['parentcalendar'] = 'Superior calendar';
$labels['importtocalendar'] = 'Save to my calendar';
$labels['searchearlierdates'] = '« Search for earlier events';
$labels['searchlaterdates'] = 'Search for later events »';
+$labels['andnmore'] = 'and $nr more';
// alarm/reminder settings
$labels['showalarms'] = 'Show alarms';