TonyK

An empty message can be a macro, that contains many things, 

\define onemptymessage()
{empty message code here}
\end

<$list filter="""[<variable>length[]match[9]then[short]else[long]]""" 
variable="type" emptyMessage=<<onemptymessage>> />

{full code here}

</$list>


It can even look like this

<$list filter="""[<variable>length[]match[9]then[short]else[long]]""" 
variable="type" 
emptyMessage="""
{empty message code here}
"""/>

{full code here}

</$list>

Extending Saq suggestion; I expect this to work (untested today)

[<variable>length[]match[9]then<shortval>else<longval>]

The only limitation being macros cant be passed variables, complex macrs 
may need their result wikified before using in a filter

Remember as well is all you want to know is is it long or short this will do

{{{[<variable>length[]match[9]then[short]else[long]]}}


Regards
Tony

On Thursday, May 21, 2020 at 2:32:40 AM UTC+10, Tony K wrote:
>
> I did play around with empty message but it gives an empty message and 
> doesn't set a value to a variable (at least from my tests)
>
> On Wednesday, May 20, 2020 at 7:26:41 PM UTC+3, Mark S. wrote:
>>
>> The list widget has an emptyMessage attribute. You can point this to a 
>> macro where alternative actions occur when the main filter fails (is empty).
>>
>> In your second set of widgets, you have unmatched tags/tag endings which 
>> is always a bad thing.
>>
>> Good luck!
>>
>> On Wednesday, May 20, 2020 at 9:19:59 AM UTC-7, Tony K wrote:
>>>
>>> I can't figure out how to set the value of a variable based on a 
>>> specific condition so, instead, I am writing the code twice
>>>
>>> e.g.
>>>
>>> <$list filter="[<variable>length[]match[9]]">
>>> <$set name="type" value="short">
>>> {full code here}
>>> </$set>
>>> </$list>
>>> <$list filter="[<variable>length[]!match[9]]">
>>> <$set name="type" value="long">
>>> {full code here}
>>> </$set>
>>> </$list>
>>>
>>> this is not really efficient. 
>>>
>>> I tried conditionally inserting the first line of the "$set" but it 
>>> didnt' work (as follows) even thought logically it should 
>>>
>>> <$list filter="[<variable>length[]match[9]]">
>>> <$set name="type" value="short">
>>> </$list>
>>>
>>> <$list filter="[<variable>length[]!match[9]]">
>>> <$set name="type" value="long">
>>> </$list>
>>>
>>> {full code here}
>>> </$set>
>>>
>>>
>>> I am sure there is some kind of a workaround for this
>>>
>>> thanks for shedding any light 
>>>
>>

-- 
You received this message because you are subscribed to the Google Groups 
"TiddlyWiki" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to tiddlywiki+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/tiddlywiki/46e2709f-44ba-4d74-aaaf-034ddb4862e4%40googlegroups.com.

Reply via email to