\define change-inner(tid)
<$list filter="""[tag[$tid$]tag[task]]""">
<$action-setfield task_visibility="$(taskVisibilityValue)$" />
<$macrocall $name=change-inner tid=<<currentTiddler>>/>
</$list>
\end
\define changeVisibility()
<$vars taskVisibilityValue={{!!task_visibility}}>
<$list filter="""[tag<currentTiddler>tag[task]]""">
<$action-setfield task_visibility=<<taskVisibilityValue>> />
<$macrocall $name=change-inner tid=<<currentTiddler>>/>
</$list>
</$set>
\end
\define visibilitySelect()
Visibility:
<$select field="task_visibility" actions=<<changeVisibility>> >
<option value=0>0</option>
<option value=10>10</option>
<option value=20>20</option>
<option value=30>30</option>
<option value=40>40</option>
</$select>
\end
Selecting a value should propagate it downstream the tag hierarchy only
from this tiddler (only tiddlers tagging this tiddler and so on). This
should be true only for tiddler which are also tagged with 'task'.
<<visibilitySelect>>
On Wednesday, March 3, 2021 at 12:14:24 AM UTC+1 [email protected] wrote:
> Hi,
> Here is a tiddlyhost site with the problem I was trying to explain above:
> palltest.tiddlyhost.comI <https://palltest.tiddlyhost.com>
> I hope it's clearer now what I'm trying to achieve. I set it up with a
> reset button so the field of all tiddlers can be reset after every failed
> attempt to solve it.
> // Pall
>
>
>
> On Tue, 2 Mar 2021 at 09:31, Pall Sigurdsson <[email protected]> wrote:
>
>> Yes, it's only fair that I'll do that work :) Thanks for the time you
>> have spent on this so far. I'm planning to set something up soon on
>> Tiddlyhost and will reply back when it's ready.
>> // Pall
>>
>> On Tue, 2 Mar 2021 at 01:06, Mat <[email protected]> wrote:
>>
>>> I suggest you set up a demo on tiddlyhost.com . If anyone is to test
>>> things out for you they'll have to create the code and dummy tiddlers etc
>>> and this is just too much for people to do. It will also be much easier to
>>> understand what you mean.
>>>
>>> <:-)
>>>
>>> On Monday, March 1, 2021 at 11:59:22 PM UTC+1 [email protected] wrote:
>>>
>>>> Hi Mat,
>>>> It works a little bit too well. The field update is applied everywhere
>>>> downstream in the hierarchy, not only the level immediately below and not
>>>> limited to the branch leading down from the current tiddler.
>>>> So let's say I apply it at level 2. Using only three nested list
>>>> widgets I was able to apply it five levels down (I didn't look further)
>>>> and
>>>> it was also updating tiddlers in other branches.
>>>> How can I restrict the loop to the tag hierarchy below the current
>>>> tiddler?
>>>> Regards,
>>>> Pall
>>>>
>>>> On Mon, 1 Mar 2021, 22:12 Mat, <[email protected]> wrote:
>>>>
>>>>> OK, so you just nest listwidgets like so:
>>>>>
>>>>> <$list filter="[tag[mytag]]">
>>>>> <$list filter="[tag<currentTiddler>]">
>>>>>
>>>>> </$list>
>>>>> </$list>
>>>>>
>>>>> Just add another for each level down. Each new layer inside would
>>>>> refer to <currentTiddler>.
>>>>>
>>>>> <:-)
>>>>>
>>>>> On Monday, March 1, 2021 at 2:15:46 PM UTC+1 [email protected] wrote:
>>>>>
>>>>>> Yes, Mat. That's the question :)
>>>>>>
>>>>>> On Monday, March 1, 2021 at 1:24:18 PM UTC+1 Mat wrote:
>>>>>>
>>>>>>> @psigu...
>>>>>>>
>>>>>>> TL:DR;
>>>>>>> <https://en.wikipedia.org/wiki/Wikipedia:Too_long;_didn%27t_read>
>>>>>>> Is this your question:
>>>>>>>
>>>>>>> >How can one loop through tiddlers which are two levels downstream
>>>>>>> in the tag-hierarchy or further?
>>>>>>>
>>>>>>> If that is your question, I will attempt to reply. If you have some
>>>>>>> other *complex *question, I suggest you split it up into distinct
>>>>>>> questions, perhaps separate posts, so that they can more easily be
>>>>>>> dealt
>>>>>>> with.
>>>>>>>
>>>>>>> <:-)
>>>>>>>
>>>>>>> On Monday, March 1, 2021 at 9:20:46 AM UTC+1 [email protected]
>>>>>>> wrote:
>>>>>>>
>>>>>>>> Thanks, Soren, for the explanation and suggestions. My
>>>>>>>> understanding of how the filters work is unfortunately very limited. I
>>>>>>>> have
>>>>>>>> been doing a lot of trial and error, sometimes finding a solution
>>>>>>>> eventually, but too often without understanding of why it worked.
>>>>>>>> Instead
>>>>>>>> of continuing with that approach, I think asking a question and
>>>>>>>> getting
>>>>>>>> specific answers will lead to an increased understanding and it is
>>>>>>>> already
>>>>>>>> starting to pay off :)
>>>>>>>>
>>>>>>>> The looping operation I described in the last post is a macro
>>>>>>>> triggered by a Select widget. I use the actions attribute of the
>>>>>>>> Select
>>>>>>>> widget to call this code as a macro. Closing the first list widget
>>>>>>>> (for the
>>>>>>>> first level) before running the same operation at the next level was
>>>>>>>> actually the first thing I attempted but I didn't manage to get it to
>>>>>>>> work.
>>>>>>>> The second list widget in the following code does not work.
>>>>>>>>
>>>>>>>> <$set name="taskVisibilityValue" value={{!!task_visibility}}>
>>>>>>>> <$list filter="[all[current]tag[task]tagging[]]">
>>>>>>>> <$action-setfield $field="task_visibility"
>>>>>>>> $value=<<taskVisibilityValue>> >
>>>>>>>> </$list>
>>>>>>>> <$list filter="[all[current]tag[task]tagging[]tagging[]]">
>>>>>>>> <$action-setfield $field="task_visibility"
>>>>>>>> $value=<<taskVisibilityValue>> >
>>>>>>>> </$list>
>>>>>>>> </$set>
>>>>>>>>
>>>>>>>> What am I doing wrong?
>>>>>>>>
>>>>>>>> Note: The kin filter actually looks interesting and I might try it
>>>>>>>> out if I will not solve it with core filter functionality or if I find
>>>>>>>> more
>>>>>>>> use cases for it.
>>>>>>>>
>>>>>>>> Best regards,
>>>>>>>> Pall
>>>>>>>>
>>>>>>>> On Monday, March 1, 2021 at 12:29:25 AM UTC+1 Soren Bjornstad wrote:
>>>>>>>>
>>>>>>>>> Your first $list widget is resetting the current tiddler, so in
>>>>>>>>> your second $list widget the all[current] doesn't mean the same thing
>>>>>>>>> as it
>>>>>>>>> did in the first. If I'm understanding your tiddler layout correctly,
>>>>>>>>> I
>>>>>>>>> think you should be closing the first $list widget prior to starting
>>>>>>>>> the
>>>>>>>>> second one.
>>>>>>>>>
>>>>>>>>> As for a better way, the kin filter
>>>>>>>>> <https://bimlas.gitlab.io/tw5-kin-filter/> can be used to merge
>>>>>>>>> all the levels of a multi-level hierarchy into a single list, which
>>>>>>>>> would
>>>>>>>>> prevent you from having to try to make this recursive to handle an
>>>>>>>>> arbitrary number of levels. I think you should be able to get that to
>>>>>>>>> work
>>>>>>>>> here.
>>>>>>>>>
>>>>>>>>> (Also, pretty sure you need a $button widget somewhere if you want
>>>>>>>>> to trigger anything, unless I'm missing something – but maybe you
>>>>>>>>> just left
>>>>>>>>> that out for brevity.)
>>>>>>>>>
>>>>>>>>> On Sunday, February 28, 2021 at 3:45:26 PM UTC-6
>>>>>>>>> [email protected] wrote:
>>>>>>>>>
>>>>>>>>>> Oops, I missed the closing </$set> in both code fragments but
>>>>>>>>>> that is not the issue.
>>>>>>>>>>
>>>>>>>>>> On Sunday, February 28, 2021 at 10:27:45 PM UTC+1 Pall Sigurdsson
>>>>>>>>>> wrote:
>>>>>>>>>>
>>>>>>>>>>> Hello,
>>>>>>>>>>>
>>>>>>>>>>> This is my first post here. I discovered TiddlyWiki last
>>>>>>>>>>> November and got hooked by its power and beauty. I challenging
>>>>>>>>>>> myself into
>>>>>>>>>>> programming something which was supposed to be very simple in the
>>>>>>>>>>> beginning
>>>>>>>>>>> but who knew that this would become so addictive? Anyhow, I have a
>>>>>>>>>>> question
>>>>>>>>>>> I'm hoping someone here could help me with.
>>>>>>>>>>>
>>>>>>>>>>> How can one loop through tiddlers which are two levels
>>>>>>>>>>> downstream in the tag-hierarchy or further? I already figure out
>>>>>>>>>>> how to
>>>>>>>>>>> copy a field value from the current tiddler to all tiddlers which
>>>>>>>>>>> are
>>>>>>>>>>> tagging it and which also have the tag 'task' but what I think I
>>>>>>>>>>> need help
>>>>>>>>>>> with is to propagate the value 2-3 levels further.
>>>>>>>>>>>
>>>>>>>>>>> The following code fragment reads the task_visibility (custom)
>>>>>>>>>>> field of the current tiddler and applies it to the next level below
>>>>>>>>>>> (only
>>>>>>>>>>> to tiddlers which are also tagged with 'task').
>>>>>>>>>>>
>>>>>>>>>>> <$set name="taskVisibilityValue" value={{!!task_visibility}}>
>>>>>>>>>>> <$list filter="[tag[task]tag<currentTiddler>]">
>>>>>>>>>>> <$action-setfield $field="task_visibility"
>>>>>>>>>>> $value=<<taskVisibilityValue>> >
>>>>>>>>>>> </$list>
>>>>>>>>>>>
>>>>>>>>>>> Note: The filter above can be replaced with
>>>>>>>>>>> "[all[current]tagging[]tag[task]]" - it works just the same.
>>>>>>>>>>>
>>>>>>>>>>> One of the things I tried for taking this one level further down
>>>>>>>>>>> the task hierarchy was nesting the lists:
>>>>>>>>>>>
>>>>>>>>>>> <$set name="taskVisibilityValue" value={{!!task_visibility}}>
>>>>>>>>>>> <$list filter="[all[current]tagging[]tag[task]]">
>>>>>>>>>>> <$action-setfield $field="task_visibility"
>>>>>>>>>>> $value=<<taskVisibilityValue>> >
>>>>>>>>>>> <$list filter="[all[current]tagging[]tagging[]tag[task]]">
>>>>>>>>>>> <$action-setfield $field="task_visibility"
>>>>>>>>>>> $value=<<taskVisibilityValue>> >
>>>>>>>>>>> </$list>
>>>>>>>>>>> </$list>
>>>>>>>>>>>
>>>>>>>>>>> This code still works only on the first level below the current
>>>>>>>>>>> tiddler. Does anyone know how to apply this to the next level below
>>>>>>>>>>> the
>>>>>>>>>>> first child level (and further)?
>>>>>>>>>>>
>>>>>>>>>>> I'm also wondering whether it is a good idea to do this (or how
>>>>>>>>>>> far down to go), whether there are performance issues to be
>>>>>>>>>>> expected with a
>>>>>>>>>>> loop like this, when the hierarchy below the current tiddler might
>>>>>>>>>>> contain
>>>>>>>>>>> dozens of tiddlers.
>>>>>>>>>>>
>>>>>>>>>>> Best regards,
>>>>>>>>>>> Pall
>>>>>>>>>>> - Currently on version 5.1.23
>>>>>>>>>>
>>>>>>>>>> --
>>>>> You received this message because you are subscribed to a topic in the
>>>>> Google Groups "TiddlyWiki" group.
>>>>> To unsubscribe from this topic, visit
>>>>> https://groups.google.com/d/topic/tiddlywiki/ECYrNcJ8QsQ/unsubscribe.
>>>>> To unsubscribe from this group and all its topics, send an email to
>>>>> [email protected].
>>>>> To view this discussion on the web visit
>>>>> https://groups.google.com/d/msgid/tiddlywiki/dd6ca765-68d6-4054-8c51-419922994d4dn%40googlegroups.com
>>>>>
>>>>> <https://groups.google.com/d/msgid/tiddlywiki/dd6ca765-68d6-4054-8c51-419922994d4dn%40googlegroups.com?utm_medium=email&utm_source=footer>
>>>>> .
>>>>>
>>>> --
>>> You received this message because you are subscribed to a topic in the
>>> Google Groups "TiddlyWiki" group.
>>> To unsubscribe from this topic, visit
>>> https://groups.google.com/d/topic/tiddlywiki/ECYrNcJ8QsQ/unsubscribe.
>>> To unsubscribe from this group and all its topics, send an email to
>>> [email protected].
>>> To view this discussion on the web visit
>>> https://groups.google.com/d/msgid/tiddlywiki/a0c4b81f-5ee2-4e89-a376-ddda26151c9an%40googlegroups.com
>>>
>>> <https://groups.google.com/d/msgid/tiddlywiki/a0c4b81f-5ee2-4e89-a376-ddda26151c9an%40googlegroups.com?utm_medium=email&utm_source=footer>
>>> .
>>>
>>
--
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/2280db19-3c05-47c5-a5c1-98ac4ff02b45n%40googlegroups.com.