1
0
mirror of https://github.com/Jermolene/TiddlyWiki5 synced 2024-06-16 10:29:54 +00:00

added $tw.utils.pushOnce

retained check for basic each nonetheless

tests pass
This commit is contained in:
Tobias Beer 2015-01-27 19:31:23 +01:00
parent 4788725ccf
commit d0a24bd9f0
2 changed files with 18 additions and 11 deletions

View File

@ -84,6 +84,15 @@ $tw.utils.each = function(object,callback) {
}
};
/*
Pushes a value to an array only when not yet contained.
*/
$tw.utils.pushOnce = function(array,value) {
if(0 > array.indexOf(value)){
array.push(value);
}
}
/*
Helper for making DOM elements
tag: tag name

View File

@ -17,19 +17,17 @@ With suffix "list", selects all tiddlers that are values in a specified list fie
Export our filter function
*/
exports.each = function(source,operator,options) {
var results = [],
values = {},
field = operator.operand || "title",
add = function(val,title) {
if(!$tw.utils.hop(values,val)) {
values[val] = true;
results.push(title);
}
};
var results =[] ,
value,values = {},
field = operator.operand || "title";
if("list" !== operator.suffix) {
source(function(tiddler,title) {
if(tiddler) {
add("title" === field ? title : tiddler.getFieldString(field),title);
value = "title" === field ? title : tiddler.getFieldString(field);
if(!$tw.utils.hop(values,value)) {
values[value] = true;
results.push(title);
}
}
});
} else {
@ -38,7 +36,7 @@ exports.each = function(source,operator,options) {
$tw.utils.each(
options.wiki.getTiddlerList(title,field),
function(value) {
add(value,value);
$tw.utils.pushOnce(results,value);
}
);
}