1
0
mirror of https://github.com/Jermolene/TiddlyWiki5 synced 2024-06-16 02:19:55 +00:00

Add new "lookup" filter

This commit is contained in:
Jermolene 2017-09-07 15:48:00 +01:00
parent 1b7d9d65f4
commit aa417fe899
4 changed files with 66 additions and 0 deletions

View File

@ -0,0 +1,30 @@
/*\
title: $:/core/modules/filters/lookup.js
type: application/javascript
module-type: filteroperator
Filter operator that looks up values via a title prefix
[lookup:<field>[<prefix>]]
Prepends the prefix to the selected items and returns the specified field value
\*/
(function(){
/*jslint node: true, browser: true */
/*global $tw: false */
"use strict";
/*
Export our filter function
*/
exports.lookup = function(source,operator,options) {
var results = [];
source(function(tiddler,title) {
results.push(options.wiki.getTiddlerText(operator.operand + title) || options.wiki.getTiddlerText(operator.operand + operator.suffix));
});
return results;
};
})();

View File

@ -82,6 +82,11 @@ describe("Filter tests", function() {
// Our tests
it("should handle the lookup operator", function() {
expect(wiki.filterTiddlers("Six Seventh 8 +[lookup[Tiddler]]").join(",")).toBe("Missing inaction from TiddlerOne,,Tidd");
expect(wiki.filterTiddlers("Six Seventh 8 +[lookup:8[Tiddler]]").join(",")).toBe("Missing inaction from TiddlerOne,Tidd,Tidd");
});
it("should retrieve shadow tiddlers", function() {
expect(wiki.getTiddlerText("Tiddler8")).toBe("Tidd");
});

View File

@ -0,0 +1,7 @@
created: 20170907144257037
modified: 20170907144559822
title: lookup Operator (Examples)
type: text/vnd.tiddlywiki
<<.operator-example 1 "[all[shadows+tiddlers]tag[$:/tags/PageControls]lookup[$:/config/PageControlButtons/Visibility/]]" "Retrieve the visibility status of each page control button">>
<<.operator-example 2 "[all[shadows+tiddlers]tag[$:/tags/PageControls]lookup:show[$:/config/PageControlButtons/Visibility/]]" "Retrieve the visibility status of each page control button, this time with a default value">>

View File

@ -0,0 +1,24 @@
caption: lookup
created: 20170907103639431
modified: 20170907144703051
op-input: a [[selection of titles|Title Selection]]
op-output: the lookup values corresponding to each input title
op-parameter: prefix applied to input titles to yield title of lookup tiddler from which value is retrieved
op-parameter-name: P
op-purpose: applies a prefix to each input title to yield the title of a tiddler from which the final value is retrieved
op-suffix: the default value to be used for missing lookups
op-suffix-name: D
tags: [[Filter Operators]]
title: lookup Operator
type: text/vnd.tiddlywiki
<<.from-version "5.1.14">>
The action of this operator is as follows:
* Apply the specified prefix to each input tiddler title, yielding a new list of tiddler titles
* Transclude the value of each of those tiddlers
** Substitute the default value for missing or empty tiddlers
* Return the list of values
<<.operator-examples "lookup">>