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.

Reply via email to