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);
}
};