All pastes #839100 Raw Edit

Stuff

public text v1 · immutable
#839100 ·published 2007-12-30 21:08 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);
};

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, if you edit it you can only save it in this TiddlyWiki file";
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")){
		var cont = confirm("This tiddler has been loaded from an external file.\n Do you wish to save it in this file?");
		if (!cont)
			return false;
		else{
			story.setTiddlerTag(title,"externalTiddler",-1);
		}
	}
	this.old_temptiddlers_saveTiddler.apply(this,arguments);
};