Tiddler 'TagMenu' in Namespace 'iTW'

list | new | edit | delete | .html | .tw | .txt | .js

TagMenu

BidiX - 2008-08-15 10:22:00  (created: 2008-08-15 09:28:00 ) 
tags: systemConfig iTW excludeLists excludeSearch

{{{
// Create a button for a tag with a popup listing all the tiddlers that it tags
//# title and tooltip arguments are optional
createTagButton  = function(place,tag,excludeTiddler,title,tooltip)
{
	if (tag == "Menu")
		var onClick = onClickMenuTag;
	else
		var onClick = onClickTag;
	var btn = createTiddlyButton(place,title||tag,(tooltip||config.views.wikified.tag.tooltip).format([tag]), onClick);
	btn.setAttribute("tag",tag);
	if(excludeTiddler)
		btn.setAttribute("tiddler",excludeTiddler);
	return btn;
}


// Event handler for clicking on a tiddler tag
function onClickMenuTag(ev)
{
	var e = ev || window.event;
	var popup = Popup.create(this);
	var tag = this.getAttribute("tag");
	var title = this.getAttribute("tiddler");
	if(popup && tag) {
		var tagged = store.getTaggedTiddlers(tag);
		var titles = [];
		var li,r;
		for(r=0;r<tagged.length;r++) {
			if(tagged[r].title != title)
				titles.push(tagged[r].title);
		}
		var lingo = config.views.wikified.tag;
		if(titles.length > 0) {
			for(r=0; r<titles.length; r++) {
				//function(place,title,params,label,prompt,accessKey,newFocus,isJournal)
				if (titles[r] == "<<newTiddler>>")
					config.macros.newTiddler.createNewTiddlerButton(createTiddlyElement(popup,"li"),"New Tiddler ","","New Tiddler", "create a new tiddler");
				else
					createTiddlyLink(createTiddlyElement(popup,"li"),titles[r],true);
			}
			
		} else {
			createTiddlyText(createTiddlyElement(popup,"li",null,"disabled"),lingo.popupNone.format([tag]));
		}
	}
	Popup.show();
	e.cancelBubble = true;
	if(e.stopPropagation) e.stopPropagation();
	return false;
}


}}}