This seems to work:

\define actions()
<$set name=cstContents value={{$:/temp/$(dbname)$DBedit}}>
<$tiddler tiddler=<<cstContents>>>
<$fieldmangler>
<$action-sendmessage $message="tm-add-tag" $param={{$:/temp/$(dbname)$DBedit
!!current_tag}}/>
</$fieldmangler>
</$tiddler>
</$set>
\end
\define currentStateTid() $:/temp/$(dbname)$DBedit

<$set name="dbname" value="some_database">
<$button actions=<<actions>>>
<$action-createtiddler $basetitle=<<dbname>> $savetitle=<<currentStateTid>>
/>

{{$:/core/images/new-button}}</$button>
</$set>

It takes advantage of the fact that there are now 2 ways to invoke actions 
with a button (the content, and the "actions" string). Apparently the 
"actions" string gets run after the contents.

BUT, there's still one weird thing. The "actions" string appears to get run 
twice - with one extra time for tiddler where the code is invoked. In other 
words, the calling tiddler also gets tagged. Maybe someone can work that 
one out.

HTH
-- Mark


On Friday, March 16, 2018 at 12:54:22 PM UTC-7, Michael Wiktowy wrote:
>
> Hi,
>
> I am not sure if I am doing something wrong or if there is some sort of 
> race condition with tiddler actions being evaluated but here is my example:
>
> \define currentStateTid() $:/temp/$(dbname)$DBedit
>
> <$set name="dbname" value="some_database">
> <$button>
> <$action-createtiddler $basetitle=<<dbname>> $savetitle=<<currentStateTid
> >>/>
> <$wikify name="state_tiddler_content" text="<$view 
> tiddler=<<currentStateTid>> />">
> <$fieldmangler tiddler=<<state_tiddler_content>>>
> <$action-sendmessage $message="tm-add-tag" $param={{!!current_tag}}/>
> </$fieldmangler>
> </$wikify>
> {{$:/core/images/new-button}}</$button>
> </$set>
>
> When you paste this into a new tiddler and add a field "current_tag" with 
> something in it you will end up with a tiddler with a plus button.
> Clicking the button will add a new tiddler with the name referencing the 
> variable dbname = "some_database". If that already exists, a number is 
> added/incremented accordingly.
>
> So far, so good.
>
> I want to then add a tag to the created tiddler using the contents of the 
> "current_tag" field. However, since I don't know what the created tiddlers 
> name is beforehand, I am referencing the content of the $savetitle from the 
> previous $action-createtiddler. When you do this though, it seems to add 
> the tag to the tiddler that was in <<state_tiddler>> *previously* ... as if 
> the tm-add-tag message gets processed before the $action-createtiddler can 
> set the <<state_tiddler>> to the new value.
>
> I have thought of using the tags option in $action-createtiddler so I 
> don't have to know the resulting tiddler name but the tag in current_tag 
> has spaces and needs to be appended to a bunch of other tags coming from 
> some other template and dealing with passing around the required "[[tag 
> with spaces]]" has been proving painful. The closest that I have gotten is 
> to add a bunch of tags with each of them the words in "current_tag" 
> eventhough the [[]] characters are being passed.
>
> Is this a bug or am I doing something wrong?
>
> /Mike
>
>

-- 
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 post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/tiddlywiki.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/tiddlywiki/bc53ae58-167c-4c95-b109-fed6f2c6d7b0%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to