From 1dc581eb712be593632cd3806cf3e181af9407df Mon Sep 17 00:00:00 2001 From: Thomas Bruederli Date: Thu, 24 Oct 2013 11:24:26 +0200 Subject: [PATCH] List (inherited) tags only once --- plugins/tasklist/tasklist.js | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/plugins/tasklist/tasklist.js b/plugins/tasklist/tasklist.js index 198ba823..d3180118 100644 --- a/plugins/tasklist/tasklist.js +++ b/plugins/tasklist/tasklist.js @@ -998,7 +998,8 @@ function rcube_tasklist_ui(settings) // append inherited tags if (itags.length) { $.each(itags, function(i,val){ - $('').addClass('tag-element inherit').html(Q(val)).appendTo(taglist); + if (!rec.tags || rec.tags.indexOf(val) < 0) + $('').addClass('tag-element inherit').html(Q(val)).appendTo(taglist); }); // re-sort tags list $(taglist).children().sortElements(function(a,b){ @@ -1498,7 +1499,7 @@ function rcube_tasklist_ui(settings) } } - return itags; + return $.unqiqueStrings(itags); } /** @@ -1816,6 +1817,22 @@ jQuery.fn.sortElements = (function(){ }; })(); +// equivalent to $.unique() but working on arrays of strings +jQuery.unqiqueStrings = (function() { + return function(arr) { + var hash = {}, out = []; + + for (var i = 0; i < arr.length; i++) { + hash[arr[i]] = 0; + } + for (var val in hash) { + out.push(val); + } + + return out; + }; +})(); + /* tasklist plugin UI initialization */ var rctasks;