All pastes #839081 Raw Edit

Stuff

public text v1 · immutable
#839081 ·published 2007-12-30 20:56 UTC
rendered paste body
old_load_plugins = window.loadPlugins;
window.loadPlugins=function()
{
	loadExternalScripts.apply(this,arguments);
	old_load_plugins.apply(this,arguments);
};

function loadExternalScripts()
{
	var dirtyStatus = store.isDirty();
	if (!store.isTiddler("ExternalTiddlers"))
	   return;
	var originalPath = document.location.toString();
	var localPath = getLocalPath(originalPath);              
	var backSlash = true;
	var dirPathPos = localPath.lastIndexOf("\\");
	if(dirPathPos == -1) {
		dirPathPos = localPath.lastIndexOf("/");
		backSlash = false;
	}
	var scriptPath = localPath.substr(0,dirPathPos) + (backSlash ? "\\" : "/");
	var importStore = new TiddlyWiki();
	var text = loadFile(scriptPath+"master.html");
	importStore.importTiddlyWiki(text);
	importStore.forEachTiddler(function(title,tiddler){
		if (!store.getTiddler(title)){
			tiddler.tags.pushUnique("externalTiddler");
			store.addTiddler(tiddler);
		}
	});
	importStore = undefined;
	delete importStore;
	store.setDirty(dirtyStatus);
};

function addTempTiddler(title,text)
{
	//var title = title.replace(/(\..*?$)/g, "");
	var myregexp = /(?:.*(?:\\|\/))?(.*)(?:\.)(.*)/;
	var match = myregexp.exec(title);
	var title = match[1];
	var type = match[2];
	var tags = type == 'js'? 'externalTiddler systemConfig':'externalTiddler';
	
	store.saveTiddler(title,title,text,"external tiddler",new Date(),tags);
}

TiddlyWiki.prototype.isTiddler= function (title)
{
	return store.tiddlerExists(title) || store.isShadowTiddler(title)
};

SaverBase.prototype.externalize = function(store)
{
	var results = [];
	var tiddlers = store.getTiddlers("title","externalTiddler");
	for(var t = 0; t < tiddlers.length; t++)
		results.push(this.externalizeTiddler(store,tiddlers[t]));
	return results.join("\n");
};

var	tempnotice= "This tiddler has been loaded from an external file, it cannot be edited.";
var	tempnoticecss= ".tempnotice {background:#FFBFC2; color:#000; border:2px solid #FF2F37; padding:0.5em; margin:0.5em;}\n.isTemp{background:#FFCFD2;}";
setStylesheet(tempnoticecss,"TempTiddlerStyles");

Story.prototype.old_temptiddlers_refreshTiddler = Story.prototype.refreshTiddler;
Story.prototype.refreshTiddler = function(title,template,force,customFields,defaultText)
{
	var t = this.old_temptiddlers_refreshTiddler.apply(this,arguments);	
	if (t && store.getTiddler(title) && store.getTiddler(title).isTagged("externalTiddler")){
		if (t.getAttribute("dirty") == "true"){
			var count = t.childNodes.length;
			var ed;
			for (var j=0; j<count; j++){
				if(hasClass(t.childNodes[j],"editor")){
					ed = t.childNodes[j];	
					break;
				}
			}
			var notice = ed.parentNode.insertBefore(createTiddlyElement(null,"div",null,"tempnotice"),ed.nextSibling);
			wikify(tempnotice,notice);			
		}
	}
	return t;
};

Story.prototype.old_temptiddlers_saveTiddler = Story.prototype.saveTiddler;
Story.prototype.saveTiddler = function(title,minorUpdate)
{
	if(store.getTiddler(title) && store.getTiddler(title).isTagged("externalTiddler")){
		alert("This tiddler has been loaded from an external file.\n It cannot be edited.");
		return false;
	}
	else{
		this.old_temptiddlers_saveTiddler.apply(this,arguments);
	}
};