From b72afda7a2ccedda1f5bdca1fe41da634ca6b134 Mon Sep 17 00:00:00 2001 From: David Johnston Date: Sun, 22 Sep 2013 09:57:23 +0100 Subject: [PATCH] Next in List filter --- core/modules/filters/next.js | 43 ++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 core/modules/filters/next.js diff --git a/core/modules/filters/next.js b/core/modules/filters/next.js new file mode 100644 index 000000000..22c80cc03 --- /dev/null +++ b/core/modules/filters/next.js @@ -0,0 +1,43 @@ +/*\ +title: $:/core/modules/filters/next.js +type: application/javascript +module-type: filteroperator + +Filter operator returning the tiddler whose title occurs next in the list supplied in the operand tiddler + +\*/ +(function(){ + +/*jslint node: true, browser: true */ +/*global $tw: false */ +"use strict"; + +/* +Export our filter function +*/ +exports.next = function(source,operator,options) { + var results = [], + list = options.wiki.getTiddlerList(operator.operand); + + function checkTiddler(title) { + var match = list.indexOf(title); + // increment match and then test if result is in range + match++; + if(match > 0 && match < list.length) { + results.push(list[match]); + } + } + // Iterate through the source tiddlers + if($tw.utils.isArray(source)) { + $tw.utils.each(source,function(title) { + checkTiddler(title); + }); + } else { + $tw.utils.each(source,function(element,title) { + checkTiddler(title); + }); + } + return results; +}; + +})();