Hello Tony

Your patience is remarkable thank you so much

yes I am aware that an empty messaeg can be a macro however I wasn't able 
to make it set the value of the same variable for the rest of the code like 
explained by Saq and yourself in the if-then-else scenario

the second issue I faced is the <longeval> cannot take arguments which 
turned out to be documented


On Thursday, May 21, 2020 at 4:44:02 AM UTC+3, TonyM wrote:
>
> 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 [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/tiddlywiki/317700d3-d7d6-4651-9ea9-3b709b040113%40googlegroups.com.

Reply via email to