Hi Saq, Yes, dropping the list makes sense! Your last solution seems the simplest by now ;-)
I will document this in TW-Script when I find free time! Cheers Mohammad On Tue, Dec 15, 2020 at 12:40 PM Saq Imtiaz <[email protected]> wrote: > @Mohammad yes the toggle operator is best used with list fields. > > You can further simplify and skip the list widget: > > <$vars > lightPalette="$:/palettes/Vanilla" > darkPalette="$:/palettes/SolarFlare" > > > <$button>Day/Night II > <$action-setfield $tiddler="$:/palette" > text={{{[{$:/palette}match<lightPalette>then<darkPalette>else<lightPalette>]}}}/> > </$button> > </$vars> > > On Tuesday, December 15, 2020 at 9:59:11 AM UTC+1 Mohammad wrote: > >> It seems in this case there are other simple solutions too, while in my >> opinion toggle is the most semantic one but in its current implementation >> is tricky to use for toggling a field can be changed outside the script. >> >> These are other solutions that do not use toggle but very simple. Of >> course simple is the best but not simpler. >> >> *!! Simple solution* >> >> <$button>Day/Night >> <$list >> filter="[{$:/palette}match[$:/palettes/Vanilla]then[$:/palettes/SolarFlare]else[$:/palettes/Vanilla]]"> >> <$action-setfield $tiddler="$:/palette" text=<<currentTiddler>>/> >> </$list> >> </$button> >> >> >> *!! Good practice* >> >> <$vars >> lightPalette="$:/palettes/Vanilla" >> darkPalette="$:/palettes/SolarFlare" >> > >> <$button>Day/Night II >> <$list >> filter="[{$:/palette}match<lightPalette>then<darkPalette>else<lightPalette>]" >> variable=selectedPalette> >> <$action-setfield $tiddler="$:/palette" text=<<selectedPalette>>/> >> </$list> >> </$button> >> </$vars> >> >> >> You may read *darkPalette *and *lightPalete *from a config tiddler >> fields. >> >> Best wishes >> Mohammad >> >> >> On Mon, Dec 14, 2020 at 4:14 PM Mohammad Rahmani <[email protected]> >> wrote: >> >>> I use the below button to toggle between day/night palette >>> >>> <$button>Day/Night >>> <$action-listops $tiddler="$:/palette" $field="text" >>> $subfilter="+[toggle[$:/palettes/Vanilla],[$:/palettes/SolarFlare]]" /> >>> </$button> >>> >>> The problem here is if $:/palette is not empty and has not one of the >>> two values above, then I get the wrong values in the text field (actually >>> the value is appended). How can I replace the field value using toggle >>> operator. >>> >>> >>> >>> Best wishes >>> Mohammad >>> >> -- > 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/ded9b6a8-ce10-44a4-8f2b-15ed3c32480bn%40googlegroups.com > <https://groups.google.com/d/msgid/tiddlywiki/ded9b6a8-ce10-44a4-8f2b-15ed3c32480bn%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/CAAV1gMDMLVYR7ouWa03cqXbS0%3D-huurtK4HAzGRO4tJL2pmBZw%40mail.gmail.com.

