Oops, sorry. Yes, I'll re-post it there right away. Thanks,
- Novan On Sunday, January 29, 2017 at 4:23:39 PM UTC-5, Jeremy Ruston wrote: > > Hi Norvan > > This thread belongs in the dev group: > > http://groups.google.com/group/TiddlyWikiDev > > Would you mind reposting over there? > > Many thanks, > > Jeremy > > > On 29 Jan 2017, at 21:17, Novan Leon <nova...@gmail.com <javascript:>> > wrote: > > This is a somewhat perplexing issue and I can't seem to find a solution. > Maybe someone can help. > > Background > > I'm trying to add the ability to specify alternate view templates to > specific tiddlers and allow users to toggle them on and off using a toolbar > button. I did this by making the following changes: > > *Change #1* > > Add the code below to line 114 of $:/core/modules/widgets/list.js. This > lets users specify a "multiTemplate" attribute which, if set to "true", > will prompt the list widget to check the list field of the > $:/test/DirectLinks/DirectLinksList tiddler to see if it includes the > current tiddler and if it does, apply the $:/test/DirectLinks/ViewTemplate > instead of the default $:/core/ui/ViewTemplate. > > //Apply direct links view template > if (this.getAttribute("multiTemplate") == "true") { > var directLinksTemplate = "$:/test/DirectLinks/ViewTemplate"; > var tiddlerList = "$:/test/DirectLinks/DirectLinksList"; > var applicableTiddlers = $tw.wiki.getTiddlerList(tiddlerList); > > if (applicableTiddlers.indexOf(title) !== -1 && !isDraft) { > template = directLinksTemplate; > } > } > > *Change #2* > > Add the multiTemplate="true" attribute to the list widget in > $:/core/ui/PageTemplate/story. > > *Change #3* > > Create the custom view template in question, as well as two buttons, one > to place in the ViewToolbar to switch the current tiddler to the custom > template (i.e. by adding the current tiddler to the direct links list) and > one to place in the custom template to switch the current tiddler back to > the default view template (i.e. by removing the current tiddler from the > direct links list). > > Both of the buttons in question contain three action widgets: > > - Listops action to add or remove the current tiddler title to/from > the direct links list ($:/test/DirectLinks/DirectLinksList) > - Close tiddler action to close the current tiddler > - Navigate action to re-open the current tiddler, presumably with the > new template applied > > > The Issue > > > Everything seems to work as expected with one exception. When I click the > "Show direct links" button to add the current tiddler to the direct links > list and reload the tiddler, the tiddler is added to the list but the > custom template doesn't apply until I do one of the following things: > > > > - Refresh the browser > - Edit the tiddler and cancel/save to return > - Click the "Show direct links" button on one of the other tiddlers > > The last bullet is the one that especially puzzles me. This behavior tells > me that there IS a way to refresh/re-render a single tiddler rather than > the entire page but I'm at a loss as to how. > > > Try It For Yourself > > > To experience this behavior for yourself, do the following: > > > > 1. Open the attached tiddlywiki file (take security precautions before > opening the file if necessary) > 2. Click on the "Show direct links" button (image icon on far right) > on the "Test Bookmark 8" tiddler. The tiddler should close and re-open > near > the top of the page. You will notice the name of the tiddler, "Test > Bookmark 8" has been added to the list shown in the "Test Tiddler" but it > still looks just like any other tiddler. > 3. Click on the "Show direct links" button on the "Test Bookmark 7" > tiddler (or any other bookmark tiddler, the ones with a url field > defined). The > tiddler will close and re-open near the top of the page just like the > previous one, but the previous one "Test Bookmark 8" will now appear with > the custom template applied. > 4. If you click on the "Show direct links" button for other tiddlers, > the same behavior will continue. The one you clicked will move to the top > and the previous one will appear with the custom template. The tiddlers > with the custom template applied will show correctly from that point > forward, all except the one you clicked last. The same thing happens in > reverse when removing tiddlers from the list. > > Thoughts / Questions > > Is there a better way to force the refresh/re-rendering of a specific > tiddler? Clearly, closing the tiddler and re-opening it doesn't appear to > do this. The nearest I can find is by editing and canceling/saving it to > return which always works, or by figuring out the how the behavior above > works. > > During the course of my testing I tried putting all of the button actions > into a custom action widget and executing them together > ($:/test/DirectLinks/widgets/action-toggletemplate.js). The results were > the same with one exception, when I tried to automate the closing/opening > of the second tiddler, I noticed if the tiddlers were navigatedTo from > inside the story river, it wouldn't have the same refreshing effect. This > may be irrelevant but it's just something I noticed. > > I've spend the last two days racking my head over this and trying to find > a solution with no luck. I'm hoping maybe someone here with more experience > may have encountered this before and be able to offer a solution. > > -- > 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 tiddlywiki+...@googlegroups.com <javascript:>. > To post to this group, send email to tiddl...@googlegroups.com > <javascript:>. > 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/e72c446f-b4c4-4bd7-a917-58e9d27097ad%40googlegroups.com > > <https://groups.google.com/d/msgid/tiddlywiki/e72c446f-b4c4-4bd7-a917-58e9d27097ad%40googlegroups.com?utm_medium=email&utm_source=footer> > . > For more options, visit https://groups.google.com/d/optout. > <tiddlywiki.html> > > > -- 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 tiddlywiki+unsubscr...@googlegroups.com. To post to this group, send email to tiddlywiki@googlegroups.com. 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/a1039501-23eb-44aa-aae7-e47b7edfde5c%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.