On Wednesday, December 11, 2019 at 8:12:49 PM UTC-8, Alan Aldrich wrote:
>
> Mark, there is no issue with the action widgets. In fact try this in the
> above code: replace the value in the set widget with "some static text".
> Everything works as expected. That is, the setfield action sets the text
> of the new tiddler to <<table "some static text">> then navigates to it,
> then deletes the temp tiddler. The issue appears to be with the set widget.
> It is as if the set widget is parsed prior to any action widgets regardless
> of its location inside the button.
>
Button actions can be subtle, especially when you are depending upon
intermediate results *during* the processing of the actions.
Fortunately, there IS a solution to your problem:
You can get the results you want if you split the button processing into
two parts:
(1) create the new tiddler, and
(2) set the contents, show the tiddler, and cleanup the temp
Part(1) of the processing is in the body of the $button widget.
Part(2) of the processing is done using the $button widget's "actions"
param.
Although Part(1) is not invoked until the button is pressed, it is *parsed*
when the $button widget is rendered.
However, because Part(2) is done via a separate "actions" param, it is not
even *parsed* until the button is actually pressed.
As a result, Part(1) processing is completed before Part(2) is parsed AND
invoked.
This allows Part(2) to use the contents of $:/temp/title that were set
during Part (1).
Give this a try:
\define newTableText()
<<table "$(newTableTitle)$">>
\end
\define makeNewTable()
<$set name="newTableTitle" value={{$:/temp/title}} >
<$action-setfield $tiddler={{$:/temp/title}} text=<<newTableText>>/>
</$set>
<$action-navigate $to={{$:/temp/title}}/>
<$action-deletetiddler $tiddler="$:/temp/title"/>
\end
<$button actions=<<makeNewTable>>>
New Table
<$action-createtiddler $basetitle="New Table" $savetitle="$:/temp/title" />
</$button>
let me know how it goes,
enjoy,
-e
--
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/2a14f53d-87bc-4c3e-9d70-b75c188740db%40googlegroups.com.