mirror of
https://github.com/Jermolene/TiddlyWiki5
synced 2024-11-10 20:09:57 +00:00
Data widget add compound filter parameter (#8447)
* add $compound-filter parameter to data-widget * update TestCaseTemplate to use $compound-filter parameter * update data-widget, TestCaseTiddlers and CompoundTiddlers docs
This commit is contained in:
parent
ea8e805e1c
commit
165c7e9825
@ -75,7 +75,9 @@ DataWidget.prototype.computeDataTiddlerValues = function() {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
// Deal with $tiddler, $filter or $compound-tiddler attributes
|
// Deal with $tiddler, $filter or $compound-tiddler attributes
|
||||||
var tiddlers = [],title;
|
var tiddlers = [],
|
||||||
|
compoundTiddlers,
|
||||||
|
title;
|
||||||
if(this.hasAttribute("$tiddler")) {
|
if(this.hasAttribute("$tiddler")) {
|
||||||
title = this.getAttribute("$tiddler");
|
title = this.getAttribute("$tiddler");
|
||||||
if(title) {
|
if(title) {
|
||||||
@ -103,8 +105,17 @@ DataWidget.prototype.computeDataTiddlerValues = function() {
|
|||||||
tiddlers.push.apply(tiddlers,this.extractCompoundTiddler(title));
|
tiddlers.push.apply(tiddlers,this.extractCompoundTiddler(title));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if(this.hasAttribute("$compound-filter")) {
|
||||||
|
filter = this.getAttribute("$compound-filter");
|
||||||
|
if(filter) {
|
||||||
|
compoundTiddlers = this.wiki.filterTiddlers(filter);
|
||||||
|
$tw.utils.each(compoundTiddlers, function(title){
|
||||||
|
tiddlers.push.apply(tiddlers,self.extractCompoundTiddler(title));
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
// Return the literal item if none of the special attributes were used
|
// Return the literal item if none of the special attributes were used
|
||||||
if(!this.hasAttribute("$tiddler") && !this.hasAttribute("$filter") && !this.hasAttribute("$compound-tiddler")) {
|
if(!this.hasAttribute("$tiddler") && !this.hasAttribute("$filter") && !this.hasAttribute("$compound-tiddler") && !this.hasAttribute("$compound-filter")) {
|
||||||
if(Object.keys(item).length > 0 && !!item.title) {
|
if(Object.keys(item).length > 0 && !!item.title) {
|
||||||
return [new $tw.Tiddler(item)];
|
return [new $tw.Tiddler(item)];
|
||||||
} else {
|
} else {
|
||||||
|
@ -13,7 +13,8 @@ title: $:/core/ui/TestCaseTemplate
|
|||||||
testActions="Actions"
|
testActions="Actions"
|
||||||
testHideIfPass=<<hideIfPass>>
|
testHideIfPass=<<hideIfPass>>
|
||||||
>
|
>
|
||||||
|
<$data $compound-filter={{!!import-compound}}/>
|
||||||
<$data $compound-tiddler=<<currentTiddler>>/>
|
<$data $compound-tiddler=<<currentTiddler>>/>
|
||||||
<$data title="Description" text={{!!description}}/>
|
<%if [{!!description}!is[blank]] %><$data title="Description" text={{!!description}}/><%endif%>
|
||||||
</$testcase>
|
</$testcase>
|
||||||
</$let>
|
</$let>
|
||||||
|
@ -1,7 +1,8 @@
|
|||||||
title: CompoundTiddlers
|
|
||||||
modified: 20240507221902644
|
|
||||||
created: 20240507221902644
|
created: 20240507221902644
|
||||||
|
modified: 20240729082610287
|
||||||
tags: Concepts
|
tags: Concepts
|
||||||
|
title: CompoundTiddlers
|
||||||
|
type: text/vnd.tiddlywiki
|
||||||
|
|
||||||
Compound tiddlers are a special type of tiddler that can store one or more payload tiddlers. The tiddlers within a compound tiddler are only accessible via special operations, typically with the TestCaseWidget.
|
Compound tiddlers are a special type of tiddler that can store one or more payload tiddlers. The tiddlers within a compound tiddler are only accessible via special operations, typically with the TestCaseWidget.
|
||||||
|
|
||||||
@ -29,3 +30,5 @@ tags: five six
|
|||||||
|
|
||||||
This is the third tiddler
|
This is the third tiddler
|
||||||
```
|
```
|
||||||
|
|
||||||
|
Also see: [[TestCaseTiddlers]]
|
@ -1,26 +1,30 @@
|
|||||||
title: TestCaseTiddlers
|
|
||||||
modified: 20240507221902644
|
|
||||||
created: 20240507221902644
|
created: 20240507221902644
|
||||||
|
modified: 20240729083054531
|
||||||
tags: Concepts
|
tags: Concepts
|
||||||
|
title: TestCaseTiddlers
|
||||||
|
type: text/vnd.tiddlywiki
|
||||||
|
|
||||||
Test case tiddlers encapsulate one or more tiddlers that can be displayed as a [[test case|TestCaseWidget]]: an independent embedded wiki that can be used for testing or learning purposes.
|
Test case tiddlers encapsulate one or more tiddlers that can be displayed as a <<.wlink TestCaseWidget>>: an independent embedded wiki that can be used for testing or learning purposes.
|
||||||
|
|
||||||
Test case tiddlers are formatted as CompoundTiddlers, allowing them to contain multiple tiddlers packed into one.
|
Test case tiddlers are formatted as CompoundTiddlers, allowing them to contain multiple tiddlers packed into one.
|
||||||
|
|
||||||
Test case tiddlers have the following fields:
|
Test case tiddlers have the following ''fields'':
|
||||||
|
|
||||||
|!Field |!Description |
|
|!Field |!Description |
|
||||||
|<<.field type>> | Should be set to `text/vnd.tiddlywiki-multiple` |
|
|<<.field type>> |Needs to be set to `text/vnd.tiddlywiki-multiple` |
|
||||||
|<<.field tags>> |Test cases are tagged [[$:/tags/wiki-test-spec]]. Test cases that intentionally fail are tagged [[$:/tags/wiki-test-spec-failing]] |
|
|<<.field tags>> |Test cases are tagged [[$:/tags/wiki-test-spec]]. Test cases that intentionally fail are tagged [[$:/tags/wiki-test-spec-failing]] |
|
||||||
|<<.field description>> |Descriptive heading for the test, intended to make it easy to identify the test |
|
|<<.field description>> |Descriptive heading for the test, intended to make it easy to identify the test |
|
||||||
|<<.field display-format>> |Optional, defaults to `wikitext`. Set to `plaintext` to cause the output to be rended as plain text |
|
|<<.field display-format>> |Optional, defaults to `wikitext`. Set to `plaintext` to cause the output to be rended as plain text |
|
||||||
|
|<<.field import-compound>> |<<.from-version "5.3.6">> A filter string, that defines a list of compound tiddlers, that should be imported. See: <<.wlink DataWidget>> widget |
|
||||||
|
|
||||||
Test case tiddlers with the appropriate tag are shown in $:/ControlPanel
|
Test case tiddlers with the appropriate tag are shown in the $:/ControlPanel ''-> Advanced -> Test Cases ''
|
||||||
|
|
||||||
Some payload tiddlers are set aside for special purposes:
|
Some ''payload ''tiddlers are set aside for special purposes:
|
||||||
|
|
||||||
|!Tiddler |!Description |
|
|!Tiddler |!Description |
|
||||||
|''Narrative'' |Narrative description of the test, intended to explain the purpose and operation of the test |
|
|''Narrative'' |Narrative description of the test, intended to explain the purpose and operation of the test |
|
||||||
|''Output'' |The tiddler that produces the test output |
|
|''Output'' |The tiddler that produces the test output |
|
||||||
|''~ExpectedResult'' |HTML of expected result of rendering the ''Output'' tiddler |
|
|''~ExpectedResult'' |HTML of expected result of rendering the ''Output'' tiddler |
|
||||||
|''Description'' |Set to the text of the <<.field description>> field |
|
|''Description'' |Set to the text of the <<.field description>> field, if the field exists |
|
||||||
|
|
||||||
|
Also see: TestCaseWidget, DataWidget
|
@ -1,6 +1,6 @@
|
|||||||
caption: data
|
caption: data
|
||||||
created: 20240507221902644
|
created: 20240507221902644
|
||||||
modified: 20240507221902644
|
modified: 20240729084028713
|
||||||
tags: Widgets
|
tags: Widgets
|
||||||
title: DataWidget
|
title: DataWidget
|
||||||
type: text/vnd.tiddlywiki
|
type: text/vnd.tiddlywiki
|
||||||
@ -17,6 +17,7 @@ The content of the data widget is ignored. It supports the following attributes:
|
|||||||
|<<.attr $tiddler>> |Optional title of a tiddler to be used as a payload tiddler (optional) |
|
|<<.attr $tiddler>> |Optional title of a tiddler to be used as a payload tiddler (optional) |
|
||||||
|<<.attr $filter>> |Optional filter string identifying tiddlers to be used as payload tiddlers (optional) |
|
|<<.attr $filter>> |Optional filter string identifying tiddlers to be used as payload tiddlers (optional) |
|
||||||
|<<.attr $compound-tiddler>> |Optional title of a tiddler containing payload tiddlers in `text/vnd.tiddlywiki-multiple` format (see below) |
|
|<<.attr $compound-tiddler>> |Optional title of a tiddler containing payload tiddlers in `text/vnd.tiddlywiki-multiple` format (see below) |
|
||||||
|
|<<.attr $compound-filter>> |<<.from-version "5.3.6">> Optional filter, to create a list of tiddlers that contain compound tiddlers. <<.infoBox """Tiddlers will be imported in order. Existing testcase tiddlers will be overwritten, so the currentTiddler wins""">>|
|
||||||
|//any attribute<br>not starting<br>with $// |Field values to be assigned to the payload tiddler(s) |
|
|//any attribute<br>not starting<br>with $// |Field values to be assigned to the payload tiddler(s) |
|
||||||
|
|
||||||
The data widget is not rendered when used within the <<.wlink TestCaseWidget>> widget or the [[Innerwiki Plugin]] but for ease of testing, when used elsewhere it renders a JSON representation of the payload tiddlers.
|
The data widget is not rendered when used within the <<.wlink TestCaseWidget>> widget or the [[Innerwiki Plugin]] but for ease of testing, when used elsewhere it renders a JSON representation of the payload tiddlers.
|
||||||
|
Loading…
Reference in New Issue
Block a user