plugins/calendar
Thomas Brüderli
bruederli at kolabsys.com
Thu Apr 10 14:32:48 CEST 2014
plugins/calendar/calendar.php | 31 ++++++++++++++
plugins/calendar/skins/classic/calendar.css | 9 ++++
plugins/calendar/skins/classic/images/ical-attachment.png |binary
plugins/calendar/skins/larry/calendar.css | 9 ++++
plugins/calendar/skins/larry/images/ical-attachment.png |binary
5 files changed, 49 insertions(+)
New commits:
commit 77bc8da53c1345ca1a8f762bf3066fa23a435d27
Author: Thomas Bruederli <bruederli at kolabsys.com>
Date: Thu Apr 10 14:31:45 2014 +0200
Indicate iTip message in mail view list
diff --git a/plugins/calendar/calendar.php b/plugins/calendar/calendar.php
index 70d58be..2857ee3 100644
--- a/plugins/calendar/calendar.php
+++ b/plugins/calendar/calendar.php
@@ -190,6 +190,8 @@ class calendar extends rcube_plugin
$this->api->output->add_label('calendar.createfrommail');
}
+
+ $this->add_hook('messages_list', array($this, 'mail_messages_list'));
}
else if ($args['task'] == 'addressbook') {
if ($this->rc->config->get('calendar_contact_birthdays')) {
@@ -2158,6 +2160,35 @@ class calendar extends rcube_plugin
}
/**
+ *
+ */
+ public function mail_messages_list($p)
+ {
+ if (in_array('attachment', (array)$p['cols'])) {
+ foreach ($p['messages'] as $i => $header) {
+ $part = new StdClass;
+ $part->mimetype = $header->ctype;
+ $part->filename = '';
+ if ($this->is_vcalendar($part)) {
+ $header->list_flags['attachmentClass'] = 'ical';
+ }
+ else if (in_array($header->ctype, array('multipart/alternative', 'multipart/mixed'))) {
+ // TODO: fetch bodystructure and search for ical parts. Maybe too expensive?
+
+ if (!empty($header->structure) && is_array($header->structure->parts)) {
+ foreach ($header->structure->parts as $part) {
+ if ($this->is_vcalendar($part) && !empty($part->ctype_parameters['method'])) {
+ $header->list_flags['attachmentClass'] = 'ical';
+ break;
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+
+ /**
* Check mail message structure of there are .ics files attached
*/
public function mail_message_load($p)
diff --git a/plugins/calendar/skins/classic/calendar.css b/plugins/calendar/skins/classic/calendar.css
index 937a7b6..6c7ca14 100644
--- a/plugins/calendar/skins/classic/calendar.css
+++ b/plugins/calendar/skins/classic/calendar.css
@@ -1387,6 +1387,15 @@ fieldset #calendarcategories div {
/* Invitation UI in mail */
+.messagelist tbody .attachment span.ical {
+ display: inline-block;
+ vertical-align: middle;
+ height: 18px;
+ width: 20px;
+ padding: 0;
+ background: url(images/calendar-small.png) 1px 1px no-repeat;
+}
+
#messagemenu li a.calendarlink,
#attachmentmenu li a.calendarlink {
background-image: url(images/calendars.png);
diff --git a/plugins/calendar/skins/classic/images/ical-attachment.png b/plugins/calendar/skins/classic/images/ical-attachment.png
new file mode 100755
index 0000000..8dbd669
Binary files /dev/null and b/plugins/calendar/skins/classic/images/ical-attachment.png differ
diff --git a/plugins/calendar/skins/larry/calendar.css b/plugins/calendar/skins/larry/calendar.css
index 25ad82c..69a68ac 100644
--- a/plugins/calendar/skins/larry/calendar.css
+++ b/plugins/calendar/skins/larry/calendar.css
@@ -1559,6 +1559,15 @@ fieldset #calendarcategories div {
/* Invitation UI in mail */
+.messagelist tbody .attachment span.ical {
+ display: inline-block;
+ vertical-align: middle;
+ height: 18px;
+ width: 20px;
+ padding: 0;
+ background: url(images/ical-attachment.png) 2px 1px no-repeat;
+}
+
#messagemenu li a.calendarlink span.calendar,
#attachmentmenu li a.calendarlink span.calendar {
background-position: 0px -2197px;
diff --git a/plugins/calendar/skins/larry/images/ical-attachment.png b/plugins/calendar/skins/larry/images/ical-attachment.png
new file mode 100755
index 0000000..8fa486a
Binary files /dev/null and b/plugins/calendar/skins/larry/images/ical-attachment.png differ
More information about the commits
mailing list