From 9bc8b367393884c7b7166646f733f9c16f59ead6 Mon Sep 17 00:00:00 2001 From: Thomas Bruederli Date: Mon, 21 Oct 2013 14:26:30 +0200 Subject: [PATCH] Inherit tags from parent tasks for filter matching (#2373) --- plugins/tasklist/tasklist.js | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/plugins/tasklist/tasklist.js b/plugins/tasklist/tasklist.js index 2089c703..e52174ba 100644 --- a/plugins/tasklist/tasklist.js +++ b/plugins/tasklist/tasklist.js @@ -1377,8 +1377,9 @@ function rcube_tasklist_ui(settings) if (match && tagsfilter.length) { match = rec.tags && rec.tags.length; + var alltags = get_inherited_tags(rec).concat(rec.tags || []); for (var i=0; match && i < tagsfilter.length; i++) { - if ($.inArray(tagsfilter[i], rec.tags) < 0) + if ($.inArray(tagsfilter[i], alltags) < 0) match = false; } } @@ -1405,6 +1406,23 @@ function rcube_tasklist_ui(settings) return match; } + /** + * + */ + function get_inherited_tags(rec) + { + var parent_id, itags = []; + + if ((parent_id = rec.parent_id)) { + while (parent_id && listdata[parent_id]) { + itags = itags.concat(listdata[parent_id].tags || []); + parent_id = listdata[parent_id].parent_id; + } + } + + return itags; + } + /** * */