From e25891ffa6767feeae6c1a70151af401fd5791a8 Mon Sep 17 00:00:00 2001 From: Thomas Date: Wed, 6 Jul 2011 09:43:42 +0200 Subject: [PATCH] Cleanup attachment viewer: show filename, size and download button --- plugins/calendar/calendar.php | 4 +- .../drivers/database/database_driver.php | 1 + plugins/calendar/lib/calendar_ui.php | 18 ++++ plugins/calendar/skins/default/calendar.css | 99 ++++++++++--------- .../skins/default/templates/attachment.html | 32 +----- 5 files changed, 78 insertions(+), 76 deletions(-) diff --git a/plugins/calendar/calendar.php b/plugins/calendar/calendar.php index 89cdae10..64c55de6 100644 --- a/plugins/calendar/calendar.php +++ b/plugins/calendar/calendar.php @@ -993,7 +993,9 @@ class calendar extends rcube_plugin // show part page if (!empty($_GET['_frame'])) { - $this->rc->output->add_handlers(array('attachmentframe' => array($this, 'attachment_frame'))); + $this->attachment = $attachment; + $this->register_handler('plugin.attachmentframe', array($this, 'attachment_frame')); + $this->register_handler('plugin.attachmentcontrols', array($this->ui, 'attachment_controls')); $this->rc->output->send('calendar.attachment'); exit; } diff --git a/plugins/calendar/drivers/database/database_driver.php b/plugins/calendar/drivers/database/database_driver.php index 9c759471..b4d35905 100644 --- a/plugins/calendar/drivers/database/database_driver.php +++ b/plugins/calendar/drivers/database/database_driver.php @@ -664,6 +664,7 @@ class database_driver extends calendar_driver $event['allday'] = intval($event['all_day']); $event['free_busy'] = $free_busy_map[$event['free_busy']]; $event['calendar'] = $event['calendar_id']; + $event['recurrence_id'] = intval($event['recurrence_id']); // parse recurrence rule if ($event['recurrence'] && preg_match_all('/([A-Z]+)=([^;]+);?/', $event['recurrence'], $m, PREG_SET_ORDER)) { diff --git a/plugins/calendar/lib/calendar_ui.php b/plugins/calendar/lib/calendar_ui.php index 5fae6e3f..d6bd69e9 100644 --- a/plugins/calendar/lib/calendar_ui.php +++ b/plugins/calendar/lib/calendar_ui.php @@ -520,4 +520,22 @@ class calendar_ui return html::tag('ul', $attrib, '', html::$common_attrib); } + function attachment_controls($attrib = array()) + { + $table = new html_table(array('cols' => 3)); + + if (!empty($this->calendar->attachment['name'])) { + $table->add('title', Q(rcube_label('filename'))); + $table->add(null, Q($this->calendar->attachment['name'])); + $table->add(null, '[' . html::a('?'.str_replace('_frame=', '_download=', $_SERVER['QUERY_STRING']), Q(rcube_label('download'))) . ']'); + } + + if (!empty($this->calendar->attachment['size'])) { + $table->add('title', Q(rcube_label('filesize'))); + $table->add(null, Q(show_bytes($this->calendar->attachment['size']))); + } + + return $table->show($attrib); + } + } diff --git a/plugins/calendar/skins/default/calendar.css b/plugins/calendar/skins/default/calendar.css index c1663fc6..d12342de 100644 --- a/plugins/calendar/skins/default/calendar.css +++ b/plugins/calendar/skins/default/calendar.css @@ -247,68 +247,75 @@ a.miniColors-trigger { margin-top: -3px; } -#attachmentcontainer -{ - position: absolute; - top: 80px; - left: 20px; - right: 20px; - bottom: 20px; +#attachmentcontainer { + position: absolute; + top: 80px; + left: 20px; + right: 20px; + bottom: 20px; } -#attachmentframe -{ - width: 100%; - height: 100%; - border: 1px solid #999999; - background-color: #F9F9F9; +#attachmentframe { + width: 100%; + height: 100%; + border: 1px solid #999999; + background-color: #F9F9F9; } -.attachments-list ul -{ - margin: 0px; - padding: 0px; - list-style-image: none; - list-style-type: none; +#partheader { + position: absolute; + top: 20px; + left: 220px; + right: 20px; + height: 40px; } -.attachments-list ul li -{ - height: 18px; - font-size: 12px; - padding-left: 2px; - padding-top: 2px; - padding-right: 4px; - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; - -o-text-overflow: ellipsis; +#partheader table td { + padding-left: 2px; + padding-right: 4px; + vertical-align: middle; + font-size: 11px; } -.attachments-list ul li img -{ - padding-right: 2px; - vertical-align: middle; + +.attachments-list ul { + margin: 0px; + padding: 0px; + list-style-image: none; + list-style-type: none; } -.attachments-list ul li a -{ - text-decoration: none; +.attachments-list ul li { + height: 18px; + font-size: 12px; + padding-left: 2px; + padding-top: 2px; + padding-right: 4px; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + -o-text-overflow: ellipsis; } -.attachments-list ul li a:hover -{ - text-decoration: underline; +.attachments-list ul li img { + padding-right: 2px; + vertical-align: middle; } -#eventshow .attachments-list ul -{ - display: block; +.attachments-list ul li a { + text-decoration: none; } -#eventshow .attachments-list ul li -{ - float: left; +.attachments-list ul li a:hover { + text-decoration: underline; +} + +#eventshow .attachments-list ul { + display: block; +} + +#eventshow .attachments-list ul li { + float: left; } diff --git a/plugins/calendar/skins/default/templates/attachment.html b/plugins/calendar/skins/default/templates/attachment.html index cd39109e..34d4da66 100644 --- a/plugins/calendar/skins/default/templates/attachment.html +++ b/plugins/calendar/skins/default/templates/attachment.html @@ -9,9 +9,8 @@
- + +
[]
@@ -19,34 +18,9 @@
- +
- - - -<roundcube:object name="pagetitle" /> - - - - - -
- -
- [] -
-
- - -
- -
- - -