diff --git a/plugins/tasklist/drivers/kolab/tasklist_kolab_driver.php b/plugins/tasklist/drivers/kolab/tasklist_kolab_driver.php
index 4a192c66..8ba59dec 100644
--- a/plugins/tasklist/drivers/kolab/tasklist_kolab_driver.php
+++ b/plugins/tasklist/drivers/kolab/tasklist_kolab_driver.php
@@ -796,6 +796,7 @@ class tasklist_kolab_driver extends tasklist_driver
'attendee' => 'attendees',
'attach' => 'attachments',
'rrule' => 'recurrence',
+ 'related-to' => 'parent_id',
'percent-complete' => 'complete',
'lastmodified-date' => 'changed',
);
diff --git a/plugins/tasklist/skins/larry/tasklist.css b/plugins/tasklist/skins/larry/tasklist.css
index a39c1f25..33987f28 100644
--- a/plugins/tasklist/skins/larry/tasklist.css
+++ b/plugins/tasklist/skins/larry/tasklist.css
@@ -882,7 +882,7 @@ ul.toolbarmenu .sortcol.by-auto a {
background: url(images/badge_cancelled.png) top right no-repeat;
}
-#task-parent-title {
+.task-parent-title {
position: relative;
top: -0.6em;
}
diff --git a/plugins/tasklist/skins/larry/templates/mainview.html b/plugins/tasklist/skins/larry/templates/mainview.html
index dd384094..3a3a227d 100644
--- a/plugins/tasklist/skins/larry/templates/mainview.html
+++ b/plugins/tasklist/skins/larry/templates/mainview.html
@@ -163,7 +163,7 @@
+
+ ⇢
+ »
+
Task Title
diff --git a/plugins/tasklist/tasklist.php b/plugins/tasklist/tasklist.php
index b4cdfa21..869a1926 100644
--- a/plugins/tasklist/tasklist.php
+++ b/plugins/tasklist/tasklist.php
@@ -450,6 +450,16 @@ class tasklist extends rcube_plugin
$change['new']['classname'] = rcube_utils::file2class($change['new']['mimetype'], $change['new']['name']);
}
}
+ // resolve parent_id to the refered task title for display
+ if ($change['property'] == 'parent_id') {
+ $change['property'] = 'parent-title';
+ if (!empty($change['old']) && ($old_parent = $this->driver->get_task(array('id' => $change['old'], 'list' => $rec['list'])))) {
+ $change['old_'] = $old_parent['title'];
+ }
+ if (!empty($change['new']) && ($new_parent = $this->driver->get_task(array('id' => $change['new'], 'list' => $rec['list'])))) {
+ $change['new_'] = $new_parent['title'];
+ }
+ }
// compute a nice diff of description texts
if ($change['property'] == 'description') {
$change['diff_'] = libkolab::html_diff($change['old'], $change['new']);
@@ -1272,12 +1282,17 @@ class tasklist extends rcube_plugin
private function task_walk_tree(&$rec)
{
$rec['_depth'] = 0;
+ $parent_titles = array();
$parent_id = $this->task_tree[$rec['id']];
while ($parent_id) {
$rec['_depth']++;
- $rec['parent_title'] = $this->task_titles[$parent_id];
+ array_unshift($parent_titles, $this->task_titles[$parent_id]);
$parent_id = $this->task_tree[$parent_id];
}
+
+ if (count($parent_titles)) {
+ $rec['parent_title'] = join(' ยป ', array_filter($parent_titles));
+ }
}
/**