Tones,
Thank you for your reply.
I think you are looking at the wrong wikitext. I am focusing on Joshua's
suggestion, implemented in the tiddler, Link artworks to exhibition
Joshua. This implements your suggestion about using action-listops
instead of addsuffix which, because it seems to check for duplicates,
makes for simpler wikitext. Have a look at the TW I uploaded,
http://cultconv.com/TLSConsignment.html to see the latest version.
bobj
On 7/10/20 8:47 am, TW Tones wrote:
Bob,
I had a quick look, I am busy this morning
The only issue I detected so far is in the debug view onscreen I see
the value had leading spaces, I corrected this with the trim[] at the
end of the filters in the actions widgets for example
{{{ [{!!exhibition_id}addsuffix[
]addsuffix{$:/TLS/exhibition_id}trim[]] }}}
I can look later in the day, but do share a supposed to work and a
debug view if possible.
Tones
On Wednesday, 7 October 2020 08:03:38 UTC+11, Bob Jansen wrote:
Hi Brains Trust, I need your combined knowledge.
I have uploaded a copy of my TW to
http://cultconv.com/TLSConsignment.html
<http://cultconv.com/TLSConsignment.html>
I have implemented Joshua's suggestions, from above, in the
tiddler, Link artworks to exhibition Joshua. I have added two
action-log messages to trace processing.
Artworks marked are TK17, TK18 and TK19.
If I select TK15 from the popup list, $:/TLS/exhibition_id tiddler
is set to TK15
Now, on clicking the button to start the process, the dev console
shows the following trace:
artwork_id TK17
exhibition_id TK19
artwork_id TK18
exhibition_id TK19
artwork_id TK19
exhibition_id TK19
Nowhere is TK15 displayed
TK15 has its artwork_id set to TK19 and only TK19, no TK17 nor TK18.
Can anyone explain this?
bobj
On Tuesday, 6 October 2020 at 15:34:43 UTC+11 Bob Jansen wrote:
Joshua,
just tried your suggestion. MIxed result.
The test was:
artworks marked TK17 and TK19
exhibition selected TK21
The first action-listops worked as the action-setfield did
before, TK21 added to the exhibition_id field of both TK17 and
TK19.
The second action-listops worked better, only one instance of
TK19 added to the artwork_id of TK21 but TK17 missing. I my
code, I would have seen two TK19's in the field so the
action-listops means I don't need the 'contains' list operator.
$:/TLS/artwork_id is set to TK19 but maybe the second
action-listops is not being performed until both artwork
tiddlers have been processed through the first action-listops.
Still onward and upward.
bobj
On Tuesday, 6 October 2020 10:26:49 UTC+11, Joshua Fontany wrote:
One problem here is that the code inside of the $button,
including your $action widgets, are parsed/rendered once
when the Button itself is displayed, and will not be
updated as the underlying Wiki tiddlers change (for
example, once that Button is onscreen, changes to the list
of Tagged tiddlers will not be picked up).
In order to work around this, it is recommended that you
pass all actions that need complex wikitext to a button
as-a-macro-parameter to the "actions" parameter. This
causes the wikitext in the actions block to be parsed and
"rendered" at the time the button is clicked. Like so:
\define buttonActions()
<$list filter="[tag[Mark]]">
<!--add global exhibition_id to the exhibition_id
list-field of each marked artwork tiddler-->
<!--$listops $subfilter will append any new filter
run to the existing list-field-->
<$action-listops
$field="exhibition_id"
$subfilter="[{$:/TLS/exhibition_id}]"
/>
<!--append each artwork_id to artwork_id list-field
of the exhibition tiddler-->
<$action-listops
$tiddler= {{{ [{$:/TLS/exhibition_id}] }}}
$field="artwork_id"
$subfilter="[{$:/TLS/artwork_id}]"
/>
</$list>
\end
<$button actions=<<buttonActions>> >
Link Artworks to Exhibition
</$button>
Best,
Joshua Fontany
On Monday, October 5, 2020 at 12:10:48 AM UTC-7 TW Tones
wrote:
Bob,
I have not seen a fault yet, I will keep looking,
however when adding items to a list consider using the
ActionListops widget
<https://tiddlywiki.com/#ActionListopsWidget>rather
than adding suffixes. It has the advantage of not
setting it twice etc...
Your second attempt at the first action set field will
store each tiddler tagged Mark in _null thus current
tiddler will be the currentTiddler running when you
click the button.
When debugging buttons
* you can make large buttons by displaying an
intermediate result as the button title to see the
output.
* Your can also make the same loop as just a list,
and text what your logic generated before you hide
it with actions tiddlers when don't themselves
present output, just actions.
||
|
<$list filter="[tag[Mark]]">
<!--append exhibition_id to exhibition_id of each
marked artwork tiddler-->
|
|
action-setfield
|
|
$field="exhibition_id"
$value={{{ [{!!exhibition_id}addsuffix[
]addsuffix{$:/TLS/exhibition_id}] }}}
|
|
`{{{ [{!!exhibition_id}addsuffix[
]addsuffix{$:/TLS/exhibition_id}] }}}`
<!--append each artwork_id to artwork_id of the
exhibition tiddler-->
action-setfield
|
|
$tiddler= {{{ [{$:/TLS/exhibition_id}] }}}
$field="artwork_id"
$value={{{
[{$:/TLS/exhibition_id!!artwork_id}addsuffix[
]addsuffix{$:/TLS/artwork_id}] }}}
|
|
`{{{
[{$:/TLS/exhibition_id!!artwork_id}addsuffix[
]addsuffix{$:/TLS/artwork_id}] }}}`
</$list>
|
See how I replicated the tripl braces, keep both upto
date as you test you outcomes
* I basically converted the otherwise actions into
text and took it outside of the button.
Regards
Tony
On Monday, 5 October 2020 17:05:50 UTC+11, Bob Jansen
wrote:
I am trying to implement a simple function in my TW.
<code>
<$button>
<$list filter="[tag[Mark]]">
<!--append exhibition_id to exhibition_id of
each marked artwork tiddler-->
<$action-setfield
$field="exhibition_id"
$value={{{
[{!!exhibition_id}addsuffix[
]addsuffix{$:/TLS/exhibition_id}] }}}
/>
<!--append each artwork_id to artwork_id of
the exhibition tiddler-->
<$action-setfield
$tiddler= {{{
[{$:/TLS/exhibition_id}] }}}
$field="artwork_id"
$value={{{
[{$:/TLS/exhibition_id!!artwork_id}addsuffix[
]addsuffix{$:/TLS/artwork_id}] }}}
/>
</$list>
Link Artworks to Exhibition
</$button>
</code>
The first action-setfield works. The second one
doesn't but I can not determine why. It differs
from the first in that the first is editing a
field of the <currentTiddler> from a $list widget
whilst the second is editing a field of a tiddler
whose title is stored in the tiddler
$:/TLS/exhibition_id.
Is it possible to edit a tiddler not part of the
$list widget set?
To my understanding, there are essentially two
transclusions involved, first to get to the
tiddler whose title is in $:/TLS/exhibition_id and
the second to the field artwork_id stored in this
tiddler.
From Tones' excellent cheat sheet, I thought I has
it right but obviously not.
There is obviously an error in my wikitext. But what??
Secondly, an earlier query regarding conditional
operators with some advice from Saq Imtiaz.
I want to only perform the action-setfield if the
value to be inserted is not already in the field.
I thought this would work (replacement for the
first action-setfield statement from above).
<code>
<$list
[{!!exhibition_id}!contains{$:/TLS/exhibition_id}]
variable="_null" >
<$action-setfield
$field="exhibition_id"
$value={{{
[{!!exhibition_id}addsuffix[
]addsuffix{$:/TLS/exhibition_id}] }}}
/>
</$list>
</code>
but it doesn't.
What an I doing wrong here?
bobj
--
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/ade9rEZzuPg/unsubscribe.
To unsubscribe from this group and all its topics, send an email to
[email protected]
<mailto:[email protected]>.
To view this discussion on the web visit
https://groups.google.com/d/msgid/tiddlywiki/8867821e-c150-4793-9890-88a790a8454do%40googlegroups.com
<https://groups.google.com/d/msgid/tiddlywiki/8867821e-c150-4793-9890-88a790a8454do%40googlegroups.com?utm_medium=email&utm_source=footer>.
--
--------------------------------
Dr Bob Jansen
122 Cameron St, Rockdale NSW 2216, Australia
Ph (Korea): +82 10-4494-0328
Ph (Australia) +61 414 297 448
Resume: http://au.linkedin.com/in/bobjan
Skype: bobjtls
KakaoTalk: bobjtls
http://cultconv.com
In line with the Australian anti-spam legislation, if you wish to receive no further
email from me, please send me an email with the subject "No Spam"
--
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/901ba58d-8234-f835-2740-5cd888805d39%40gmail.com.