OpenForum Javascript Help
OpenForum
* function getVersion() - Get the version number of this script
Returns: - The version number as a string. eg. 1.0.0
* function getBuildDate() - Get the build date and time of this script as a UTC date and time string
Returns: - UTC date and time string. eg. Wed Feb 10 2016 15:04:02 GMT-0000 (UTC)
* function includeScript(scriptFileName - the full path of the script to dynamically load) - Dynamically loads a script
* function getRoot()
* function addNodeProcessor(arg0)
* function addInitialiser(arg0)
* function addHashCall(arg0,arg1)
* function addTable(arg0)
* function getTable(arg0)
* function getNextId()
* function getObject(arg0)
* function scan()
* function crawl(arg0)
* function crawlParts(arg0,arg1)
* function crawlTables(arg0)
* function parseText(arg0,arg1,arg2)
* function parseParts(arg0,arg1,arg2)
* function onHash(arg0)
* function init()
* function close()
* function onload(arg0)
* function waitForReady()
* function stopAutoScan()
* function startAutoScan(arg0)
* function onunload()
* function getObjects()
* function listData()
* function createData()
* function createParents(arg0)
* function createObjectSignature(arg0,arg1,arg2)
* function childCount(arg0)
* function loadScripts(arg0,arg1)
* function loadScript(arg0)
* function loadCSS(arg0)
* function loadFile(arg0,arg1)
* function saveFile(arg0,arg1,arg2)
* function appendFile(arg0,arg1,arg2)
* function deleteFile(arg0,arg1,arg2)
* function copyFile(arg0,arg1,arg2)
* function moveFile(arg0,arg1,arg2)
* function fileExists(arg0)
* function uploadFile(arg0,arg1)
* function addTab(arg0)
* function showTab(arg0)
* function getTabs()
* function getTab(arg0)
* function setElement(arg0,arg1)
* function appendToElement(arg0,arg1)
* function showElement(arg0)
* function hideElement(arg0)
* function toggleElement(arg0)
* function getParameter(arg0)
* function getCookie(arg0)
* function createFileTree(arg0,arg1)
DependencyService
* function createNewDependency()
* function scriptLoaded(arg0)
Process
* function call(arg0)
* function waitFor(arg0)
* function then(arg0)
* function run(arg0)
Built Wed Sep 20 2017 15:26:06 GMT-0000 (GMT) //==============================================================================================================//
/* Version 1.2.34*/
/* Built on Wed Sep 20 2017 15:26:05 GMT-0000 (GMT) */
/* Built by /OpenForum/Javascript/Builder.*/
/* Do not edit as changes may be overwritten */
//==============================================================================================================//
//==============================================================================================================//
/* Source: /OpenForum/Javascript/Core/open-forum-dependency.js*/
//==============================================================================================================//
//---- DependencyService ----
var DependencyService = new function() {
var dependencies = [];
this.createNewDependency = function() {
var dependency = new function() {
var id = dependencies.length;
var self = this;
var scripts = [];
var onLoadTrigger = function() {};
var loaded = false;
self.addDependency = function(script) {
scripts.push(script);
return this;
};
self.setOnLoadTrigger = function(triggerFunction) {
onLoadTrigger = triggerFunction;
return this;
};
self.loadDependencies = function() {
var fileName = "";
for(var i=0;i0) fileName+=",";
fileName+=scripts[i];
}
OpenForum.loadScript("/OpenForum/Javascript/Services?script="+fileName+"&callback=DependencyService.scriptLoaded&callbackId="+id);
};
self.checkLoaded = function() {
return loaded;
};
self.setLoaded = function() {
loaded = true;
onLoadTrigger();
};
};
dependencies.push(dependency);
return dependency;
};
this.scriptLoaded = function(id) {
dependencies[id].setLoaded();
};
};
/*
var DependencyService = new function() {
var libraries = [];
var dependencySet = [];
this.createNewDependency = function() {
var dependency = new Dependency(this);
dependencySet.push(dependency);
return dependency;
};
this.addScriptToLoad = function(fileName) {
if(!libraries[fileName]) {
libraries[fileName] = {"fileName": fileName,"loaded": false,"loading": false};
}
return this;
};
this.loadScripts = function() {
for(var fileName in libraries) {
if(libraries[fileName].loaded===false && libraries[fileName].loading===false) {
OpenForum.loadScript("/OpenForum/Javascript/Services?script="+fileName+"&callback=DependencyService.scriptLoaded");
libraries[fileName].loading=false;
}
}
};
this.scriptLoaded = function(fileName) {
libraries[fileName].loading=false;
libraries[fileName].loaded=true;
for(var index in dependencySet) {
dependencySet[index].checkLoaded();
}
};
this.isLoaded = function(fileName) {
return libraries[fileName].loaded;
};
};*/
/*
//---- Dependancy ----
function Dependency(serviceReference) {
var service = serviceReference;
var dependencies = [];
var onLoadFunction = function() {};
var triggered = false;
this.addDependency = function(script) {
dependencies.push(script);
service.addScriptToLoad(script);
return this;
};
this.loadDependencies = function() {
if(this.checkLoaded()===false) {
service.loadScripts();
}
};
this.setOnLoadTrigger = function(triggerFunction) {
onLoadFunction = triggerFunction;
return this;
};
this.checkLoaded = function() {
if(triggered===true) {
return true;
}
var ready = true;
for(var index in dependencies) {
if(service.isLoaded(dependencies[index])===false) {
ready = false;
}
}
if(ready === true) {
triggered = true;
onLoadFunction();
return true;
} else {
return false;
}
};
}
*/
/* End of: /OpenForum/Javascript/Core/open-forum-dependency.js*/
//==============================================================================================================//
//==============================================================================================================//
/* Source: /OpenForum/Javascript/Core/open-forum-scanner.js*/
//==============================================================================================================//
//---- OpenForum ----
var OpenForum = new function(){
this.FIELD_DELIMETER_START = "{"+"{";
this.FIELD_DELIMETER_END = "}"+"}";
var self = this;
var objects= [];
var tables = [];
var tabs = [];
var nextId = 0;
var hash;
var hashCalls = [];
var nodeProcessors = [];
var initialisers = [];
self.interval = null;
self.getVersion = function() {
return "1.2.34";
};
self.getBuildDate = function() {
return "Wed Sep 20 2017 15:26:05 GMT-0000 (GMT)";
};
self.initDependencies = DependencyService.createNewDependency();
self.includeScript = function( scriptName ) {
self.initDependencies.addDependency( scriptName );
};
self.getRoot = function() {
var root = document.location.toString();
root = root.substring( root.indexOf("://")+3 );
root = root.substring( root.indexOf("/")+1 );
root = "/"+root.substring( 0,root.indexOf("/") );
return root;
};
self.addNodeProcessor = function(processor) {
nodeProcessors.push(processor);
};
self.addInitialiser = function( fn ) {
initialisers.push(fn);
};
self.addHashCall = function(hash,callFn) {
hashCalls[hash] = callFn;
};
self.addTable = function(table) {
tables[table.id]=table;
};
self.getTable = function(ofId) {
return tables[ofId];
};
self.getNextId = function() {
nextId++;
return nextId;
};
self.getObject= function(id) {
if(objects[id]===undefined) {
objects[id] = new OpenForumObject(id);
}
return objects[id];
};
self.scan = function() {
if(self.hash != window.location.hash) {
self.hash = window.location.hash;
self._onHash(self.hash);
}
for(var tableIndex in tables) {
tables[tableIndex].refresh();
}
for(var objectIndex in objects) {
object = objects[objectIndex];
if(typeof(object)=="undefined") {
} else {
object.scan();
}
}
};
self.crawl = function (node) {
self.crawlTables(node);
self.crawlParts(node);
};
self.crawlParts = function (node,prefix) {
if(node.attributes && node.attributes['of-exclude']) {
return;
}
if(typeof(prefix)=="undefined") {
prefix="";
}
for(var ni = 0; ni0)) {
if(node.attributes && node.attributes['of-id']) {
var nodeName = node.attributes['of-id'].value;
if(prefix.length>0) {
nodeName = prefix+"."+nodeName;
}
var object = OpenForum.getObject(nodeName).add( node );
objects[objects.length]=object;
}
if( typeof(node.innerHTML)!="undefined" && node.innerHTML.indexOf(OpenForum.FIELD_DELIMETER_START)!=-1) {
self.parseParts(node,objects,prefix);
}
if( node.nodeName=="#text" && node.nodeValue.indexOf(OpenForum.FIELD_DELIMETER_START)!=-1) {
self.parseText(node,objects,prefix);
}
}
for(var nodeIndex=0; nodeIndex "+
data.substring(data.indexOf(OpenForum.FIELD_DELIMETER_END)+2);
spans[spans.length] = {id: 'OpenForumId'+nextId,name: name};
nextId++;
}
//node.nodeValue = data;
newNode = document.createElement("span");
node.parentNode.replaceChild(newNode,node);
newNode.innerHTML = data;
for(var spanIndex in spans) {
var span = spans[spanIndex];
var object = self.getObject( span.name );
object.add( document.getElementById(span.id) );
objects[objects.length]=object;
}
};
self.parseParts= function(node,objects,prefix) {
var data = node.innerHTML;
var spans = [];
while(data.indexOf(OpenForum.FIELD_DELIMETER_START)!=-1) {
name = data.substring(data.indexOf(OpenForum.FIELD_DELIMETER_START)+2,data.indexOf(OpenForum.FIELD_DELIMETER_END));
data = data.substring(0,data.indexOf(OpenForum.FIELD_DELIMETER_START))+
" "+
data.substring(data.indexOf(OpenForum.FIELD_DELIMETER_END)+2);
spans.push( {id: 'OpenForumId'+nextId,name: name} );
nextId++;
}
node.innerHTML = data;
for(var spanIndex = 0; spanIndex0) {
id+=".";
}
id+=parts[index];
if( eval("typeof("+id+")")=="undefined" ) {
eval(id+"={};");
}
}
};
self.createObjectSignature = function(object,signature,depth) {
signature = "";
if(typeof(object)!="object") {
signature+="("+typeof(object)+")"+object;
}
if( typeof(depth)=="undefined" ) {
depth=0;
}
depth++;
if(depth>10) {
return;
}
for(var index in object) {
var part = object[index];
if(typeof(part)!="object") {
signature+=index+"="+"("+typeof(part)+")"+part+",";
continue;
} else {
signature+=index+"{";
signature+=this.createObjectSignature(part,signature,depth);
signature+="},";
}
}
depth--;
return signature;
};
self.childCount = function(object) {
var count=0;
for(var index in object) {
count++;
}
return count;
};
self.loadScripts = function(scriptURLs,callback) {
var scripts="&callback="+callback;
var index=1;
for(var scriptIndex in scriptURLs) {
scripts+="&script"+index+"="+scriptURLs[scriptIndex];
index++;
}
var fileref = document.createElement("script");
fileref.setAttribute("src",self.getRoot()+"/OpenForum/Javascripts?action=getScripts"+scripts);
fileref.setAttribute("type","text/javascript");
document.getElementsByTagName("head")[0].appendChild(fileref);
};
self.loadScript = function(scriptURL) {
var fileref = document.createElement("script");
fileref.setAttribute("src",scriptURL);
fileref.setAttribute("type","text/javascript");
document.getElementsByTagName("head")[0].appendChild(fileref);
};
self.loadCSS = function(cssURL) {
var fileref = document.createElement("link");
fileref.setAttribute("rel", "stylesheet");
fileref.setAttribute("type", "text/css");
fileref.setAttribute("href", cssURL);
document.getElementsByTagName("head")[0].appendChild(fileref);
};
self.loadFile = function(fileName,callBack) {
if(fileName.indexOf("?")!==-1) {
fileName += "&ts="+new Date().getTime();
} else {
fileName += "?ts="+new Date().getTime();
}
if(callBack) {
Ajax.sendRequest( new AjaxRequest("GET",fileName,"",null,callBack,null,true) );
} else {
return Ajax.sendRequest( new AjaxRequest("GET",fileName,"",null,null,null,false) );
}
};
self.saveFile = function(fileName,data,callBack) {
var pageName = fileName.substring(0,fileName.lastIndexOf("/"));
fileName = fileName.substring(fileName.lastIndexOf("/")+1);
data = "pageName="+encodeURIComponent(pageName)+"&fileName="+encodeURIComponent(fileName)+"&data="+encodeURIComponent(data);
if(callBack) {
Ajax.sendRequest( new AjaxRequest("POST","/OpenForum/Actions/Save","returnType=json",data,callBack,null,true));
} else {
return JSON.parse( Ajax.sendRequest( new AjaxRequest("POST","/OpenForum/Actions/Save","returnType=json",data,null,null,false)) );
}
};
self.appendFile = function(fileName,data,callBack) {
var pageName = fileName.substring(0,fileName.lastIndexOf("/"));
fileName = fileName.substring(fileName.lastIndexOf("/")+1);
var parameters = "action=appendStringToFileNoBackup"+
"&arg0="+encodeURIComponent(pageName)+"&arg1="+encodeURIComponent(fileName)+"&arg2="+encodeURIComponent(data);
if(callBack) {
return Ajax.sendRequest( new AjaxRequest("GET","/OpenForum/Javascript/OpenForumServer/File",parameters,null,callBack,null,true));
} else {
return JSON.parse( Ajax.sendRequest( new AjaxRequest("GET","/OpenForum/Javascript/OpenForumServer/File",parameters,null,null,null,false)) );
}
};
self.deleteFile = function(pageName,fileName,callBack) {
var parameters = "action=deleteAttachmentNoBackup"+
"&arg0="+pageName+
"&arg1="+fileName;
if(callBack) {
return Ajax.sendRequest( new AjaxRequest("GET","/OpenForum/Javascript/OpenForumServer/File",parameters,null,callBack,null,true));
} else {
return JSON.parse( Ajax.sendRequest( new AjaxRequest("GET","/OpenForum/Javascript/OpenForumServer/File",parameters,null,null,null,false)) );
}
};
self.copyFile = function(fileName,toFileName,callBack) {
var pageName = fileName.substring(0,fileName.lastIndexOf("/"));
fileName = fileName.substring(fileName.lastIndexOf("/")+1);
var toPageName = toFileName.substring(0,toFileName.lastIndexOf("/"));
toFileName = toFileName.substring(toFileName.lastIndexOf("/")+1);
var parameters = "pageName="+pageName+
"&fileName="+fileName+
"&newPageName="+toPageName+
"&newFileName="+toFileName+
"&returnType=json";
if(callBack) {
return Ajax.sendRequest( new AjaxRequest("GET","/OpenForum/Actions/Copy",parameters,null,callBack,null,true));
} else {
return JSON.parse( Ajax.sendRequest( new AjaxRequest("GET","/OpenForum/Actions/Copy",parameters,null,null,null,false)));
}
};
self.moveFile = function(fileName,toFileName,callBack) {
var pageName = fileName.substring(0,fileName.lastIndexOf("/"));
fileName = fileName.substring(fileName.lastIndexOf("/")+1);
var toPageName = toFileName.substring(0,toFileName.lastIndexOf("/"));
toFileName = toFileName.substring(toFileName.lastIndexOf("/")+1);
var parameters = "pageName="+pageName+
"&fileName="+fileName+
"&newPageName="+toPageName+
"&newFileName="+toFileName+
"&returnType=json";
if(callBack) {
return Ajax.sendRequest( new AjaxRequest("GET","/OpenForum/Actions/Move",parameters,null,callBack,null,true));
} else {
return JSON.parse( Ajax.sendRequest( new AjaxRequest("GET","/OpenForum/Actions/Move",parameters,null,null,null,false)) );
}
};
self.fileExists = function(fileName) {
var pageName = fileName.substring(0,fileName.lastIndexOf("/"));
fileName = fileName.substring(fileName.lastIndexOf("/")+1);
return JSON.parse( Ajax.sendRequest( new AjaxRequest("GET","/OpenForum/Actions/AttachmentExists","pageName="+pageName+"&fileName="+fileName,null,null,null,false)) );
};
self.uploadFile = function(id,pageName) {
var fileName = document.getElementById(id).file.value;
fileName = fileName.replace(/\\/g,"/");
fileName = fileName.substring(fileName.lastIndexOf("/")+1);
var result = this.loadFile("/OpenForum/Actions/AttachmentExists?pageName="+pageName+"&fileName="+fileName);
if(result==="true" && confirm("Attachment "+fileName+" exists","Replace this attachment ?")===false ) {
return;
}
document.getElementById(id).action="/OpenForum/Actions/Attach?page="+pageName;
//document.getElementById(id).statusQueue.value = statusQueueName;
document.getElementById(id).submit();
};
self.addTab = function(id) {
tabs[id] = document.getElementById(id);
};
self.showTab = function(id){
for(var index in tabs) {
tabs[index].style.display="none";
}
tabs[id].style.display="block";
};
self.getTabs = function(){
return tabs;
};
self.getTab = function(id){
return tabs[id];
};
self.setElement = function(id,content) {
document.getElementById(id).innerHTML = content;
};
self. appendToElement = function(id,content) {
document.getElementById(id).innerHTML += content;
};
self.showElement = function(id) {
document.getElementById(id).style.display = "block";
};
self.hideElement = function(id) {
document.getElementById(id).style.display = "none";
};
self.toggleElement = function(id) {
if(document.getElementById(id).style.display==="block") {
document.getElementById(id).style.display = "none";
} else {
document.getElementById(id).style.display = "block";
}
};
self.getParameter = function( name ) {
name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
var regexS = "[\\?&]"+name+"=([^]*)";
var regex = new RegExp( regexS );
var results = regex.exec( window.location.href );
if( results === null )
return "";
else
return results[1];
};
self.getCookie = function(name) {
var nameEQ = name + "=";
var ca = document.cookie.split(';');
for(var i=0;i < ca.length;i++)
{
var c = ca[i];
while (c.charAt(0)==' ')
{
c = c.substring(1,c.length);
}
if (c.indexOf(nameEQ) === 0)
{
return c.substring(nameEQ.length,c.length);
}
}
return null;
};
};
/* End of: /OpenForum/Javascript/Core/open-forum-scanner.js*/
//==============================================================================================================//
//==============================================================================================================//
/* Source: /OpenForum/Javascript/Core/open-forum-json.js*/
//==============================================================================================================//
//---- JSON ----
if( typeof(JSON)=="undefined" ) {
JSON = new function() {};
}
JSON.get = function( page,action,parameters ) {
var request = {method: 'GET',page: page,action: action,parameters: parameters, onSuccess: JSON.onSuccess, onError: JSON.onError, go: JSON.go};
return request;
};
JSON.post = function( page,action,parameters ) {
var request = {method: 'POST',page: page,action: action,parameters: parameters, onSuccess: JSON.onSuccess, onError: JSON.onError, go: JSON.go};
return request;
};
JSON.onSuccess = function(onSuccess) {
this.onSuccess = function(data) {
//var object = JSON.parse(data);
var object = eval("("+data+")");
onSuccess(object);
};
return this;
};
JSON.onError = function(onError) {
this.onError = function(error) {
onError(error);
};
return this;
};
JSON.go = function() {
var request = null;
if(this.action && this.action != null && this.action != "") request = "action="+this.action;
if(this.method=="GET") {
if(this.parameters && this.parameters.length>0) {
request+="&"+this.parameters;
}
Ajax.sendRequest( new AjaxRequest(this.method,this.page,request,"",this.onSuccess,this.onError,true) );
} else {
Ajax.sendRequest( new AjaxRequest(this.method,this.page,request,this.parameters,this.onSuccess,this.onError,true) );
}
};
/* End of: /OpenForum/Javascript/Core/open-forum-json.js*/
//==============================================================================================================//
//==============================================================================================================//
/* Source: /OpenForum/Javascript/Core/open-forum-ajax-request.js*/
//==============================================================================================================//
//---- AjaxRequest ----
requestCount = 0;
function AjaxRequest(method,url,request,data,onSuccess,onError,asynchronous)
{
var self=this;
self.id = "request_"+requestCount;
requestCount++;
eval( self.id+"=this;" );
self.method = method;
self.url = url;
self.request = request;
self.data = data;
self.onSuccess = onSuccess;
self.onError = onError;
self.asynchronous = asynchronous;
self.transaction = null;
this.processTransactionStateChange = function processTransactionStateChange(ev) {
if (self.transaction.readyState == 4) {
if (self.transaction.status == 200) {
onSuccess(self.transaction.responseText);
} else if (self.transaction.status === 0) {
} else {
onError( self.transaction.status,self.transaction.statusText );
}
eval( self.id+"=null;" );
}
};
}
/* End of: /OpenForum/Javascript/Core/open-forum-ajax-request.js*/
//==============================================================================================================//
//==============================================================================================================//
/* Source: /OpenForum/Javascript/Core/open-forum-ajax.js*/
//==============================================================================================================//
//---- Ajax ----
Ajax = new function() {
this.sendRequest = function sendRequest(request) {
request.transaction = false;
if(window.XMLHttpRequest)
{
try {
request.transaction = new XMLHttpRequest();
}
catch(e)
{
alert(e);
request.transaction = false;
}
}
else if(window.ActiveXObject)
{
try {
request.transaction = new ActiveXObject("Msxml2.XMLHTTP");
}
catch(e)
{
alert(e);
try {
request.transaction = new ActiveXObject("Microsoft.XMLHTTP");
}
catch(e)
{
alert(e);
request.transaction = false;
}
}
}
if(request.transaction)
{
if(request.asynchronous === true)
{
var fn = eval(request.id+".processTransactionStateChange");
request.transaction.onreadystatechange= function(ev){ fn(ev); };
if(request.request!==null && request.request.length>0) {
request.transaction.open(request.method, request.url+"?"+request.request,true);
request.transaction.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
//request.transaction.setRequestHeader("If-Modified-Since", new Date(0));
request.transaction.send(request.data);
} else {
request.transaction.open(request.method, request.url,true);
request.transaction.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
//request.transaction.setRequestHeader("If-Modified-Since", new Date(0));
request.transaction.send(request.data);
}
}
else
{
if(request.request!==null && request.request.length>0) {
request.transaction.open(request.method, request.url+"?"+request.request,false);
request.transaction.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
} else {
request.transaction.open(request.method, request.url,false);
request.transaction.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
}
//request.transaction.setRequestHeader("If-Modified-Since", new Date(0));
request.transaction.send(request.data);
this.currentRequest=null;
return request.transaction.responseText;
}
}
else
{
alert("failed");
}
};
};
/* End of: /OpenForum/Javascript/Core/open-forum-ajax.js*/
//==============================================================================================================//
//==============================================================================================================//
/* Source: /OpenForum/Javascript/Core/open-forum-ajax-post.js*/
//==============================================================================================================//
//---- Post ----
function Post()
{
this.data = [];
this.addItem = function(name,value)
{
this.item = [];
this.data[this.data.length] = this.item;
this.item[0] = name;
this.item[1] = value;
return this;
};
this.addForm = function(formId) {
form = document.getElementById(formId);
for(var loop=0;loop0) {
this.addItem(name,form.elements[loop].value);
}
}
return this;
};
this.getData = function() {
var dataString = "";
for(var entry in this.data) {
if(dataString.length>0) {
dataString +="&";
}
dataString += this.data[entry][0]+"="+encodeURIComponent(this.data[entry][1]);
}
return dataString;
};
//TODO add get parameters method like
/*
this.data="";
for(this.loop=0;this.loop"+
" ";
return data;
};
}
function TreeNode(name,attributes,parent,jsonModifier) {
var that = this;
var id = "TreeNode"+NextTreeNodeIndex;
NextTreeNodeIndex++;
TreeNodes[id] = this;
var children = [];
var expanded = false;
var SPACE = " ";
var localDepth = 0;
var lazyLoad = null;
this.getId = function() {
return id;
};
this.setLazyLoad = function(lazyLoadFn) {
lazyLoad = lazyLoadFn;
return this;
};
this.getParent = function() {
return parent;
}
this.addChild = function(name,attributes) {
var newChild = new TreeNode(name,attributes,this,jsonModifier);
children[children.length] = newChild;
newChild.parent = that;
return newChild;
};
this.addJSON = function(node) {
if(jsonModifier!=null) jsonModifier(node);
var child = this.addChild( node.name,node.attributes );
if(node.leaves) {
for(var i in node.leaves) {
child.addJSON( node.leaves[i] );
}
}
child.parent = that;
return child;
};
this.importJSON = function(url,action,parameters) {
JSON.get(url,action,parameters).onSuccess(
function(response) {
for(var i in response.leaves) {
that.addJSON( response.leaves[i] );
}
paint();
}
).go();
}
this.deleteChild = function(node) {
for(var index in children) {
if(children[index].getId()===node.getId()) {
children.splice(index,1);
return this;
}
}
return this;
};
this.expand = function() {
if(lazyLoad!==null) {
lazyLoad(that);
lazyLoad = null;
return this;
}
expanded=true;
paint();
return this;
};
this.collapse = function() {
expanded=false;
paint();
return this;
};
this.toggle = function() {
expanded=!expand;
paint();
return this;
};
var paint = function() {
document.getElementById(id).innerHTML = that.render(localDepth);
};
this.render = function(depth) {
if(!depth) {
depth=0;
}
localDepth = depth;
var data = "";
data+="";
for(var count=0;count0) {
if(expanded===false) {
data+=""+
" ";
} else {
data+=""+
" ";
}
} else {
data+=" ";
}
if(attributes && attributes.link) {
if(attributes.toolTip) {
data += "";
} else {
data += " ";
}
if(attributes.icon) {
data += " ";
}
data += name;
data += " ";
} else {
if(attributes.icon) {
data += " ";
}
data += name;
}
if(attributes && attributes.actions) {
for(var actionIndex in attributes.actions) {
var actionConfig = attributes.actions[actionIndex];
var action = new Action(actionConfig);
data+=action.render("TreeNodes[\""+id+"\"]");
}
}
data+=" ";
if(expanded===true) {
for(var childIndex in children) {
data+=children[childIndex].render(depth+1);
}
}
data+=" ";
return data;
};
this.getName = function() {
return name;
};
this.setName = function(newName) {
name = newName;
};
this.getAttribute = function(name) {
return attributes[name];
};
this.applyToChildren = function( fn ) {
children.forEach( fn(child) );
};
this.getChildren = function() {
return children;
};
}
OpenForum.createFileTree = function(id,root) {
var tree = new Tree(id,"Loading...","");
JSON.get("/OpenForum/Javascript/Tree","getPageTree","pageName="+root).onSuccess(
function(result) {
tree.setJSON(result);
tree.render();
tree.getRoot().expand();
tree.init();
}
).go();
return tree;
};
/* End of: /OpenForum/Javascript/Core/open-forum-tree.js*/
//==============================================================================================================//
//==============================================================================================================//
/* Source: /OpenForum/Javascript/Core/open-forum-js-extensions.js*/
//==============================================================================================================//
//---- String extra methods ----
String.prototype.startsWith = function(start) {
return (this.indexOf(start)===0);
};
String.prototype.between = function(start,end) {
return this.substring(this.indexOf(start)+start.length,this.indexOf(end));
};
String.prototype.before = function (end) {
return this.substring(0,this.indexOf(end));
};
String.prototype.after = function (start) {
return this.substring(this.indexOf(start.length));
};
String.prototype.replaceAll = function(find,replace) {
return this.replace( new RegExp(find,"g"), replace);
};
String.prototype.padBefore = function(padding,targetLength) {
var result = this;
while(this.lengthdate.getTime());
};
Date.prototype.isBefore = function(date) {
return (this.getTime()
Error details.
{{OpenForum.error}}
×
{{OpenForum.alert.title}}
{{OpenForum.alert.message}}
×