Branch 'roundcubemail-plugins-kolab-3.1' - plugins/calendar
Thomas Brüderli
bruederli at kolabsys.com
Wed Oct 23 10:54:52 CEST 2013
plugins/calendar/calendar_ui.js | 26 ++++++++++++++---
plugins/calendar/skins/classic/calendar.css | 21 +++++++++----
plugins/calendar/skins/classic/templates/calendar.html | 2 -
plugins/calendar/skins/larry/calendar.css | 22 +++++++++-----
plugins/calendar/skins/larry/templates/calendar.html | 2 -
5 files changed, 53 insertions(+), 20 deletions(-)
New commits:
commit d49089c67a512128659cabe8c05d45e3f5580f7d
Author: Thomas Bruederli <bruederli at kolabsys.com>
Date: Wed Oct 23 10:48:15 2013 +0200
Show all event attendees in a new popup dialog (#2397)
diff --git a/plugins/calendar/calendar_ui.js b/plugins/calendar/calendar_ui.js
index 81e350f..986113f 100644
--- a/plugins/calendar/calendar_ui.js
+++ b/plugins/calendar/calendar_ui.js
@@ -332,7 +332,7 @@ function rcube_calendar_ui(settings)
// list event attendees
if (calendar.attendees && event.attendees) {
- var data, dispname, organizer = false, rsvp = false, html = '';
+ var data, dispname, organizer = false, rsvp = false, line, morelink, html = '',overflow = '';
for (var j=0; j < event.attendees.length; j++) {
data = event.attendees[j];
dispname = Q(data.name || data.email);
@@ -343,12 +343,16 @@ function rcube_calendar_ui(settings)
else if ((data.status == 'NEEDS-ACTION' || data.status == 'TENTATIVE') && settings.identity.emails.indexOf(';'+data.email) >= 0)
rsvp = data.status.toLowerCase();
}
- html += '<span class="attendee ' + String(data.role == 'ORGANIZER' ? 'organizer' : data.status).toLowerCase() + '">' + dispname + '</span> ';
+
+ line = '<span class="attendee ' + String(data.role == 'ORGANIZER' ? 'organizer' : data.status).toLowerCase() + '">' + dispname + '</span> ';
+ if (morelink)
+ overflow += line;
+ else
+ html += line;
// stop listing attendees
if (j == 7 && event.attendees.length >= 7) {
- html += ' <em>' + rcmail.gettext('andnmore', 'calendar').replace('$nr', event.attendees.length - j - 1) + '</em>';
- break;
+ morelink = $('<a href="#more" class="morelink"></a>').html(rcmail.gettext('andnmore', 'calendar').replace('$nr', event.attendees.length - j - 1));
}
}
@@ -357,6 +361,20 @@ function rcube_calendar_ui(settings)
.children('.event-text')
.html(html)
.find('a.mailtolink').click(function(e) { rcmail.redirect(rcmail.url('mail/compose', { _to:this.href.substr(7) })); return false; });
+
+ // display all attendees in a popup when clicking the "more" link
+ if (morelink) {
+ $('#event-attendees .event-text').append(morelink);
+ morelink.click(function(e){
+ rcmail.show_popup_dialog(
+ '<div id="all-event-attendees" class="event-attendees">' + html + overflow + '</div>',
+ rcmail.gettext('tabattendees','calendar'),
+ null,
+ { width:450, modal:false });
+ $('#all-event-attendees a.mailtolink').click(function(e) { rcmail.redirect(rcmail.url('mail/compose', { _to:this.href.substr(7) })); return false; });
+ return false;
+ })
+ }
}
$('#event-rsvp')[(rsvp&&!organizer?'show':'hide')]();
diff --git a/plugins/calendar/skins/classic/calendar.css b/plugins/calendar/skins/classic/calendar.css
index c646b0d..7182b5d 100644
--- a/plugins/calendar/skins/classic/calendar.css
+++ b/plugins/calendar/skins/classic/calendar.css
@@ -374,37 +374,44 @@ a.miniColors-trigger {
margin: 0.5em 0;
}
-#event-attendees span.attendee {
+.event-attendees span.attendee {
padding-right: 18px;
margin-right: 0.5em;
background: url(images/attendee-status.gif) right 0 no-repeat;
}
-#event-attendees span.attendee a.mailtolink {
+.event-attendees span.attendee a.mailtolink {
text-decoration: none;
white-space: nowrap;
}
-#event-attendees span.attendee a.mailtolink:hover {
+.event-attendees span.attendee a.mailtolink:hover {
text-decoration: underline;
}
-#event-attendees span.accepted {
+.event-attendees span.accepted {
background-position: right -20px;
}
-#event-attendees span.declined {
+.event-attendees span.declined {
background-position: right -40px;
}
-#event-attendees span.tentative {
+.event-attendees span.tentative {
background-position: right -60px;
}
-#event-attendees span.organizer {
+.event-attendees span.organizer {
background-position: right -80px;
}
+#all-event-attendees span.attendee {
+ display: block;
+ margin-bottom: 4px;
+ padding-bottom: 3px;
+ border-bottom: 1px solid #ddd;
+}
+
/* jQuery UI overrides */
#eventshow h1 {
diff --git a/plugins/calendar/skins/classic/templates/calendar.html b/plugins/calendar/skins/classic/templates/calendar.html
index ba80ca3..af66629 100644
--- a/plugins/calendar/skins/classic/templates/calendar.html
+++ b/plugins/calendar/skins/classic/templates/calendar.html
@@ -63,7 +63,7 @@
<h5 class="label"><roundcube:label name="calendar.alarms" /></h5>
<div class="event-text"></div>
</div>
- <div class="event-section" id="event-attendees">
+ <div class="event-section event-attendees" id="event-attendees">
<h5 class="label"><roundcube:label name="calendar.tabattendees" /></h5>
<div class="event-text"></div>
</div>
diff --git a/plugins/calendar/skins/larry/calendar.css b/plugins/calendar/skins/larry/calendar.css
index 48160ad..a8926b6 100644
--- a/plugins/calendar/skins/larry/calendar.css
+++ b/plugins/calendar/skins/larry/calendar.css
@@ -428,37 +428,45 @@ a.miniColors-trigger {
outline: none;
}
-#event-attendees span.attendee {
+.event-attendees span.attendee {
padding-right: 18px;
margin-right: 0.5em;
background: url(images/attendee-status.gif) right 0 no-repeat;
}
-#event-attendees span.attendee a.mailtolink {
+.event-attendees span.attendee a.mailtolink {
text-decoration: none;
white-space: nowrap;
+ outline: none;
}
-#event-attendees span.attendee a.mailtolink:hover {
+.event-attendees span.attendee a.mailtolink:hover {
text-decoration: underline;
}
-#event-attendees span.accepted {
+.event-attendees span.accepted {
background-position: right -20px;
}
-#event-attendees span.declined {
+.event-attendees span.declined {
background-position: right -40px;
}
-#event-attendees span.tentative {
+.event-attendees span.tentative {
background-position: right -60px;
}
-#event-attendees span.organizer {
+.event-attendees span.organizer {
background-position: right -80px;
}
+#all-event-attendees span.attendee {
+ display: block;
+ margin-bottom: 0.4em;
+ padding-bottom: 0.3em;
+ border-bottom: 1px solid #ddd;
+}
+
.calendarmain .fc-view-table td.fc-list-header,
#attendees-freebusy-table h3.boxtitle,
#schedule-freebusy-times thead th,
diff --git a/plugins/calendar/skins/larry/templates/calendar.html b/plugins/calendar/skins/larry/templates/calendar.html
index 79ce5ad..6748741 100644
--- a/plugins/calendar/skins/larry/templates/calendar.html
+++ b/plugins/calendar/skins/larry/templates/calendar.html
@@ -77,7 +77,7 @@
<h5 class="label"><roundcube:label name="calendar.alarms" /></h5>
<div class="event-text"></div>
</div>
- <div class="event-section" id="event-attendees">
+ <div class="event-section event-attendees" id="event-attendees">
<h5 class="label"><roundcube:label name="calendar.tabattendees" /></h5>
<div class="event-text"></div>
</div>
More information about the commits
mailing list