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 <[email protected]> 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: > > > > Open the attached tiddlywiki file (take security precautions before opening > the file if necessary) > 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. > 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. > 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 [email protected] > <mailto:[email protected]>. > To post to this group, send email to [email protected] > <mailto:[email protected]>. > Visit this group at https://groups.google.com/group/tiddlywiki > <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 > <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 [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/84FA269C-6EE7-4D84-AA96-5FC512F9EDB1%40gmail.com. For more options, visit https://groups.google.com/d/optout.

