helma/DocApplication/functions.js

59 lines
1.5 KiB
JavaScript
Raw Normal View History

function getDocPrototype (obj) {
var tmp = obj;
while (tmp!=null && tmp.getType () != this.PROTOTYPE) {
tmp = tmp.getParentElement ();
}
return tmp;
}
function getDir (dir, obj) {
dir.mkdir ();
if (obj.getType () == this.APPLICATION) {
return dir;
} else if (obj.getType () == this.PROTOTYPE) {
var protoObj = this.getDocPrototype (obj);
var dir = new File (dir, protoObj.getElementName ());
dir.mkdir ();
return dir;
} else {
var protoObj = this.getDocPrototype (obj);
var dir = this.getDir (dir, protoObj);
dir = new File (dir, obj.getElementName ());
dir.mkdir ();
return dir;
}
}
function storePage (obj, action, backPath) {
var str = this.getPage (obj, action, backPath);
var appObj = this.getParentElement ();
var dir = new File (appObj.getAppDir ().getAbsolutePath (), ".docs");
dir = this.getDir (dir, obj);
var f = new File (dir, action + ".html");
f.remove ();
f.open ();
f.write (str);
f.close ();
app.log ("wrote file " + f.toString ());
}
function getPage (obj, action, backPath) {
backPath = (backPath==null) ? "" : backPath;
res.pushStringBuffer ();
eval ("obj." + action + "_action ();");
var str = res.popStringBuffer ();
var reg = new RegExp ("href=\"" + this.href ("") + "([^\"]+)\"");
reg.global = true;
str = str.replace (reg, "href=\"" + backPath + "$1.html\"");
var reg = new RegExp ("src=\"" + this.href ("") + "([^\"]+)\"");
reg.global = true;
str = str.replace (reg, "src=\"" + backPath + "$1.html\"");
return str;
}