diff --git a/plugins/tasklist/drivers/database/tasklist_database_driver.php b/plugins/tasklist/drivers/database/tasklist_database_driver.php index 9dac99eb..e6bfb74c 100644 --- a/plugins/tasklist/drivers/database/tasklist_database_driver.php +++ b/plugins/tasklist/drivers/database/tasklist_database_driver.php @@ -332,6 +332,10 @@ class tasklist_database_driver extends tasklist_driver $sql_add .= ' AND changed >= ' . $this->rc->db->quote(date('Y-m-d H:i:s', $filter['since'])); } + if ($filter['uid']) { + $sql_add .= ' AND `uid` IN (' . implode(',', array_map(array($this->rc->db, 'quote'), $filter['uid'])) . ')'); + } + $tasks = array(); if (!empty($list_ids)) { $result = $this->rc->db->query(sprintf( diff --git a/plugins/tasklist/drivers/kolab/tasklist_kolab_driver.php b/plugins/tasklist/drivers/kolab/tasklist_kolab_driver.php index 6f62819b..0e32039c 100644 --- a/plugins/tasklist/drivers/kolab/tasklist_kolab_driver.php +++ b/plugins/tasklist/drivers/kolab/tasklist_kolab_driver.php @@ -550,6 +550,7 @@ class tasklist_kolab_driver extends tasklist_driver * - from: Date range start as string (Y-m-d) * - to: Date range end as string (Y-m-d) * - search: Search query string + * - uid: Task UIDs * @param array List of lists to get tasks from * @return array List of tasks records matchin the criteria */ @@ -585,6 +586,10 @@ class tasklist_kolab_driver extends tasklist_driver $query[] = array('changed', '>=', $filter['since']); } + if ($filter['uid']) { + $query[] = array('uid', '=', (array) $filter['uid']); + } + foreach ($lists as $list_id) { if (!$folder = $this->get_folder($list_id)) { continue; diff --git a/plugins/tasklist/localization/en_US.inc b/plugins/tasklist/localization/en_US.inc index 7890683b..e42194c4 100644 --- a/plugins/tasklist/localization/en_US.inc +++ b/plugins/tasklist/localization/en_US.inc @@ -13,6 +13,10 @@ $labels['navtitle'] = 'Tasks'; $labels['lists'] = 'Tasklists'; $labels['list'] = 'Tasklist'; $labels['tags'] = 'Tags'; +$labels['export'] = 'Export'; +$labels['exporttitle'] = 'Export to iCalendar'; +$labels['exportattachments'] = 'With attachments'; +$labels['currentview'] = 'current view'; $labels['tasklistsubscribe'] = 'List permanently'; $labels['listsearchresults'] = 'Available Tasklists'; $labels['findlists'] = 'Find tasklists...'; diff --git a/plugins/tasklist/skins/larry/buttons.png b/plugins/tasklist/skins/larry/buttons.png deleted file mode 100644 index 7f1a2b63..00000000 Binary files a/plugins/tasklist/skins/larry/buttons.png and /dev/null differ diff --git a/plugins/tasklist/skins/larry/images/buttons.png b/plugins/tasklist/skins/larry/images/buttons.png new file mode 100644 index 00000000..81bb2558 Binary files /dev/null and b/plugins/tasklist/skins/larry/images/buttons.png differ diff --git a/plugins/tasklist/skins/larry/sprites.png b/plugins/tasklist/skins/larry/images/sprites.png similarity index 100% rename from plugins/tasklist/skins/larry/sprites.png rename to plugins/tasklist/skins/larry/images/sprites.png diff --git a/plugins/tasklist/skins/larry/tasklist.css b/plugins/tasklist/skins/larry/tasklist.css index fc7982c8..29777e2b 100644 --- a/plugins/tasklist/skins/larry/tasklist.css +++ b/plugins/tasklist/skins/larry/tasklist.css @@ -11,7 +11,7 @@ */ #taskbar a.button-tasklist span.button-inner { - background-image: url(buttons.png); + background-image: url(images/buttons.png); background-position: 0 0; } @@ -22,10 +22,22 @@ ul.toolbarmenu li span.icon.taskadd, #attachmentmenu li a.tasklistlink span.icon.taskadd { - background-image: url(buttons.png); + background-image: url(images/buttons.png); background-position: -4px -90px; } +#taskstoolbar a.button.export { + background-image: url(images/buttons.png); + background-position: center -179px; + min-width: 50px; + max-width: 70px; +} + +#taskstoolbar a.button.import { + background-image: url(images/buttons.png); + background-position: center -139px; +} + #taskedit.uidialog, .tasklistview div.uidialog { display: none; @@ -296,7 +308,7 @@ ul.toolbarmenu li span.icon.taskadd, overflow: hidden; text-overflow: ellipsis; white-space: nowrap; - background: url(sprites.png) right 20px no-repeat; + background: url(images/sprites.png) right 20px no-repeat; } .quickview-active #tasklistsbox .treelist li input, @@ -341,7 +353,7 @@ ul.toolbarmenu li span.icon.taskadd, height: 16px; padding: 0; margin-right: 4px; - background: url(sprites.png) -200px 0 no-repeat; + background: url(images/sprites.png) -200px 0 no-repeat; overflow: hidden; text-indent: -5000px; cursor: pointer; @@ -461,7 +473,7 @@ ul.toolbarmenu li span.icon.taskadd, } #taskstoolbar a.button.newtask { - background-image: url(buttons.png); + background-image: url(images/buttons.png); background-position: center -53px; } @@ -547,7 +559,7 @@ ul.toolbarmenu li span.icon.taskadd, .buttonbar-right a.iconbutton { padding: 0; - background-image: url(sprites.png); + background-image: url(images/sprites.png); background-position: 0 -238px; } @@ -599,7 +611,7 @@ ul.toolbarmenu li span.icon.taskadd, width: 14px; height: 14px; - background: url(sprites.png) -2px -80px no-repeat; + background: url(images/sprites.png) -2px -80px no-repeat; text-indent: -1000px; overflow: hidden; } @@ -648,7 +660,7 @@ ul.toolbarmenu li span.icon.taskadd, display: inline-block; width: 16px; height: 16px; - background: url(sprites.png) 1000px -3px no-repeat; + background: url(images/sprites.png) 1000px -3px no-repeat; margin: -3px 1em 0 0; vertical-align: middle; cursor: pointer; @@ -730,7 +742,7 @@ ul.toolbarmenu li span.icon.taskadd, right: 6px; width: 18px; height: 18px; - background: url(sprites.png) 1000px -80px no-repeat; + background: url(images/sprites.png) 1000px -80px no-repeat; text-indent: -5000px; overflow: hidden; cursor: pointer; @@ -772,7 +784,7 @@ ul.toolbarmenu li span.expand, ul.toolbarmenu li span.collapse, ul.toolbarmenu li span.history, ul.toolbarmenu.iconized .selected span.icon { - background-image: url(sprites.png); + background-image: url(images/sprites.png); } ul.toolbarmenu li span.add { @@ -1162,7 +1174,7 @@ label.block { #taskedit-links .attachmentslist li.message.eml, #task-links .attachmentslist li.message.eml { - background-image: url(sprites.png); + background-image: url(images/sprites.png); background-position: -2px -388px; } @@ -1411,7 +1423,7 @@ div.messagetasklinks::before { left: 8px; width: 18px; height: 18px; - background: url(buttons.png) -6px -115px no-repeat; + background: url(images/buttons.png) -6px -115px no-repeat; } div.messagetasklinks ul.tasklist { diff --git a/plugins/tasklist/skins/larry/templates/mainview.html b/plugins/tasklist/skins/larry/templates/mainview.html index 24f71015..20254c2e 100644 --- a/plugins/tasklist/skins/larry/templates/mainview.html +++ b/plugins/tasklist/skins/larry/templates/mainview.html @@ -17,6 +17,7 @@
@@ -320,6 +321,10 @@