Fadel,
As a little side note/brain dump, since what you are doing here is effectively altering the order of items tagging a given tiddler you can use the show as tag pill.
{{TableOfContents||$:/core/ui/TagTemplate}}
or use the macro
<<tag TableOfContents>>
The Popup list of items tagging TableOfContents is thus sort-able using drag and drop, try it. I always install the Open All plugin $:/plugins/ajh/openall (I am trying to locate the Source) which adds the ability to open all items so tagged from the Tag pill popup.
Note: all tiddlers tagged with the current tiddler can also be found in Info button tagging, however by default this is not drag-able (as yet).
Once you have a populated list in the relevant tiddler eg TableOfContents in the "list" field you could perhaps provide alternate ways to sort the items in this list with a click. Alpha, date field etc.. I am yet to explore this in detail.
If you use the macrocall method to invoke the tag macro you can make this use the current tiddler
<$macrocall $name="tag" tag=<<currentTiddler>>/>
Thus this can be placed in a tiddler tagged $:/tags/ViewTemplate to appear in all tiddlers.
Alternatively I have just placed
<$macrocall $name="tag" tag=<<currentTiddler>>/> in the core tiddler $:/core/ui/ViewTemplate/subtitle
NB: This will over ride the shadow tiddler.
Wrapping it in the following, it will only show if the current tiddler tags at least one tiddler.
<$list filter="[is[current]tagging[]limit[1]]" variable=null>
<$macrocall $name="tag" tag=<<currentTiddler>>/>
</$list>
I hope this gives you some thing to play with.
Regards
Tony