Overview
Access
{{reader}}
Favourite Pages
{{pageEntry.pageName}}
Signed in as {{currentUser}} {{avatar}}
Sign Out
Sign In as Different User
{{currentUserExtraOptions}}
OpenForum
Documentation
OpenForumJavascript
Overview
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 getDepemdencies()
function getRoot()
function addNodeProcessor(arg0)
function addScanner(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 preparePage(arg0)
function crawlParts(arg0,arg1)
function crawlTables(arg0)
function parseText(arg0,arg1,arg2)
function parseParts(arg0,arg1,arg2)
function loadScript(arg0)
function loadCSS(arg0)
function onHash(arg0)
function init()
function close()
function onload(arg0)
function waitForReady()
function stopAutoScan()
function startAutoScan(arg0)
function onunload()
function getObjects()
function getTables()
function listData()
function createData()
function createParents(arg0)
function createObjectSignature(arg0)
function childCount(arg0)
function addTab(arg0)
function showTab(arg0)
function getTabs()
function getTab(arg0)
function evaluate(arg0)
function globalExists(arg0)
function getGlobal(arg0)
function setGlobal(arg0,arg1,arg2)
function getSystemTime(arg0)
function loadScripts(arg0,arg1)
function getAttachments(arg0,arg1,arg2,arg3)
function loadFile(arg0,arg1,arg2)
function loadJSON(arg0,arg1,arg2)
function loadXML(arg0,arg1,arg2)
function saveFile(arg0,arg1,arg2)
function saveJSON(arg0,arg1,arg2)
function saveXML(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,arg2)
function setDebugToConsole(arg0)
function debug(arg0,arg1,arg2)
function createFileTree(arg0,arg1)
function copyElement(arg0)
function copyData(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 isEqual(arg0,arg1)
function copyDifferencesFromTo(arg0,arg1,arg2,arg3,arg4)
function clone(arg0)
function clean(arg0)
function setInterval(arg0,arg1,arg2,arg3,arg4)
function waitFor(arg0,arg1,arg2,arg3)
function runAsync(arg0)
function queue(arg0,arg1)
function jsonToCsv(arg0,arg1)
-
DependencyService
function createNewDependency()
function scriptLoaded(arg0)
-
Process
function call(arg0)
function waitFor(arg0)
function then(arg0)
function run(arg0)
-
Built Tue May 14 2019 10:22:20 GMT-0000 (GMT)
//==============================================================================================================// /* Version 1.7.175*/ /* Built on Tue May 14 2019 10:22:20 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 ---- if(typeof OpenForum == "undefined") OpenForum = {}; var DependencyService = new function() { var dependencies = []; var loadedScripts = []; var requestedScripts = []; this.createNewDependency = function() { var dependency = new function() { var id = dependencies.length; var self = this; var scriptsToLoad = []; var requiredScripts = []; var onLoadTrigger = function() {}; var loaded = false; self.addDependency = function(script) { requiredScripts.push(script); if( requestedScripts.includes(script) ) return this; requestedScripts.push(script); scriptsToLoad.push(script); return this; }; self.setOnLoadTrigger = function(triggerFunction) { onLoadTrigger = triggerFunction; return this; }; self.loadDependencies = function() { if(requiredScripts.length===0) { self.setLoaded(); return; } if(scriptsToLoad.length==0) { DependencyService.scriptLoaded(id); return; } var fileName = ""; for(var i=0;i
0) fileName+=","; fileName+=scriptsToLoad[i]; } OpenForum.loadScript("/OpenForum/Javascript/Services?script="+fileName+"&callback=DependencyService.scriptLoaded&callbackId="+id); }; self.checkLoaded = function() { return loaded; }; self.setLoaded = function() { for(var i in requiredScripts) { if(!loadedScripts[requiredScripts[i]]) { setTimeout(self.setLoaded,100); return; } } loaded = true; onLoadTrigger(); }; self.getScriptsToLoad = function() { return scriptsToLoad; }; }; dependencies.push(dependency); return dependency; }; this.scriptLoaded = function(id) { var newScripts = dependencies[id].getScriptsToLoad(); for(var i in newScripts) { loadedScripts[newScripts[i]]=true; } dependencies[id].setLoaded(); }; }; /* 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 scanners = []; var initialisers = []; var dependencies = []; var watchers = []; var defaultScanPeriod = 500; self.interval = null; self.getVersion = function() { return "1.7.175"; }; self.getBuildDate = function() { return "Tue May 14 2019 10:22:20 GMT-0000 (GMT)"; }; self.initDependencies = DependencyService.createNewDependency(); self.includeScript = function( scriptName ) { if(dependencies[scriptName]) return; dependencies[scriptName] = self.initDependencies.addDependency( scriptName ); }; self.getDepemdencies = function() { return dependencies; }; 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.addScanner = function(scanner) { scanners.push(scanner); }; self.addInitialiser = function( fn ) { initialisers.push(fn); }; self.addHashCall = function(hash,callFn) { hashCalls[hash] = callFn; }; self.addTable = function(table) { tables[table.getId()]=table; }; self.getTable = function(ofId) { return tables[ofId]; }; self.getNextId = function() { nextId++; return nextId; }; self.getObject= function(id) { //id = id.replace(/\./g,"_dot_"); 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(); } } for(var scanner in scanners) { try{ scanners[scanner](); } catch(e) { console.log(e); } } self.preparePage(document.body); }; self.addNodeProcessor( function(node) { if(node.attributes==undefined) return; for(var a=0; a
0) || node.type=="select-one" || node.type=="select-multiple") { 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; spanIndex
0) { id+="."; } id+=parts[index]; if( OpenForum.evaluate("typeof("+id+")")=="undefined" ) { OpenForum.evaluate(id+"={};"); } } }; self.createObjectSignature = function(object) { var cache = []; var signature = JSON.stringify(object, function(key, value) { if (typeof value === 'object' && value !== null) { if (cache.indexOf(value) !== -1) { // Circular reference found, discard key return; } // Store value in our collection cache.push(value); } return value; }); cache = null; return signature; }; self.childCount = function(object) { var count=0; for(var index in object) { count++; } return count; }; 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]; }; //Keep all the evil in one place self.evaluate = function(script) { try{ return eval(script); } catch (e) { OpenForum.debug( "ERROR", "Exception evaluating '" + script + "'",e ); throw e; } }; self.globalExists = function( name ) { name = name.replace(/\[/g,".").replace(/\]/g,"").replace(/'/g,"").replace(/\(.*\)/g,""); var parts = name.split("."); var obj = window; for(var part in parts) { if( typeof obj[parts[part]] === "undefined" ) return false; obj = obj[parts[part]]; } return true; }; self.getGlobal = function( name ) { name = name.replace(/\[/g,".").replace(/\]/g,"").replace(/'/g,"").replace(/\(.*\)/g,""); var parts = name.split("."); var obj = window; for(var part in parts) obj = obj[parts[part]]; if(typeof obj === "function") return obj(); else return obj; }; self.setGlobal = function( name,value,create ) { name = name.replace(/\[/g,".").replace(/\]/g,"").replace(/'/g,""); var parts = name.split("."); var obj = window; var i=0; for(i=0; i
0) { request+="&"+this.parameters; } OpenForum.debug("INFO","JSON.get page:" + this.page + " request:" + request); Ajax.sendRequest( new AjaxRequest(this.method,this.page,request,"",this.onSuccess,this.onError,true) ); } else { if(this.parameters.length<200) { OpenForum.debug("INFO","JSON.post page:" + this.page + " request:" + request + " parameters:" + this.parameters); } else { OpenForum.debug("INFO","JSON.post page:" + this.page + " request:" + request + " parameters:"+this.parameters.substring(0,200)+"... p;arameters size:" + this.parameters.length); } 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;loop
0) { 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,newParent,jsonModifier) { var self = this; var id = "TreeNode"+NextTreeNodeIndex; NextTreeNodeIndex++; TreeNodes[id] = self; var children = []; var expanded = false; var SPACE = " "; var localDepth = 0; var lazyLoad = null; var parent = newParent; var paint = function() { document.getElementById(id).innerHTML = self.render(localDepth); }; self.paint = paint; self.getId = function() { return id; }; self.setLazyLoad = function(lazyLoadFn) { lazyLoad = lazyLoadFn; return this; }; self.getParent = function() { return parent; }; self.setParent = function(newParent) { parent = newParent; }; self.addChild = function(name,attributes) { var newChild = new TreeNode(name,attributes,self,jsonModifier); children[children.length] = newChild; newChild.parent = self; return newChild; }; self.addJSON = function(node) { if(jsonModifier!==null) jsonModifier(node); var child = self.addChild( node.name,node.attributes ); if(node.leaves) { for(var i in node.leaves) { child.addJSON( node.leaves[i] ); } } return child; }; self.importJSON = function(url,action,parameters) { JSON.get(url,action,parameters).onSuccess( function(response) { for(var i in response.leaves) { self.addJSON( response.leaves[i] ); } paint(); } ).go(); }; self.deleteChild = function(node) { for(var index in children) { if(children[index].getId()===node.getId()) { children.splice(index,1); return this; } } return this; }; self.isExpanded = function() { return expanded; }; self.expand = function() { if(lazyLoad!==null) { lazyLoad(self); lazyLoad = null; return this; } if(parent && parent.isExpanded()===false) { parent.expand(); } expanded=true; paint(); return this; }; self.collapse = function() { expanded=false; paint(); return this; }; self.toggle = function() { expanded=!expand; paint(); return this; }; self.render = function(depth) { if(!depth) { depth=0; } localDepth = depth; var data = ""; data+="
"; for(var count=0;count
0) { 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 && 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; }; self.getName = function() { return name; }; self.setName = function(newName) { name = newName; }; self.getAttribute = function(name) { return attributes[name]; }; self.applyToChildren = function( fn ) { children.forEach( function(child) { fn(child); } ); }; self.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.contains = function(start) { return (this.indexOf(start)!==-1); }; String.prototype.startsWith = function(start) { return (this.indexOf(start)===0); }; String.prototype.between = function(start,end) { if(!this.contains(start) || !this.contains(end)) return; return this.substring(this.indexOf(start)+start.length,this.indexOf(end)); }; String.prototype.before = function (end) { if(!this.contains(end)) return; return this.substring(0,this.indexOf(end)); }; String.prototype.after = function (start) { if(!this.contains(start)) return; return this.substring(this.indexOf(start)+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.length
date.getTime()); }; Date.prototype.isBefore = function(date) { return (this.getTime()
maxDepth) { return null; } if( typeof a === "object" ) { for(var i in a) { if(!b[i]) { //If it doesn't exist, create it if(typeof a[i] === "object") { var value; if(a[i].length) value = OpenForum.copyDifferencesFromTo(a[i],[],depth+1,minDepth,maxDepth); else value = OpenForum.copyDifferencesFromTo(a[i],{},depth+1,minDepth,maxDepth); if(value!=null) { if(depth<=maxDepth) { b[i] = a[i]; } else { return null; } } else { b[i] = value; } } else { b[i] = a[i]; } } else if( OpenForum.isEqual(a[i],b[i])===false) { //If it exists but is not equal, copy differences var value = OpenForum.copyDifferencesFromTo(a[i],b[i],depth,minDepth,maxDepth); if(value!=null) { if(depth<=maxDepth) { b[i] = a[i]; } else { return null; } } } } for(var i in b) { if(!a[b]) { delete b[a]; } } } else { return a; } return b; }; OpenForum.clone = function(a) { var b = {}; if(a.length) b = []; OpenForum.copyDifferencesFromTo(a,b); return b; }; OpenForum.clean = function(a) { if( typeof a === "object" ) { for(var i in a) { if(typeof a[i] === "object") { a[i] = OpenForum.clean(a[i]); } else if(typeof a[i] === "number") { a[i] = 0; } else if(typeof a[i] === "boolean") { a[i] = true; } else { a[i] = ""; } } } return a; }; OpenForum.setInterval = function(fn,timePeriod,immediate,blocking,doesCallback) { if(blocking) { var blocked = false; if(immediate) { blocked = true; try{ if(doesCallback) { fn( function() {blocked = false;} ); } else { fn(); blocked = false; } } catch (e) { blocked = false; } } return setInterval( function() { if(blocked) return; blocked = true; try{ if(doesCallback) { fn( function() {blocked = false;} ); } else { fn(); blocked = false; } } catch (e) { blocked = false; } }, timePeriod ); } else { if(immediate) { fn(); return setInterval(fn,timePeriod); } } }; OpenForum.waitFor = function(test,callback,pause,timeout) { if(!pause) pause=200; if(!timeout) timeout = new Date().getTime()+30000; else if( new Date().getTime()>timeout ) throw "Timeout waiting for " + test; if(test()===true) { callback(); } else { setTimeout( function(test,callback,pause,timeout){ return function() { OpenForum.waitFor(test,callback,pause,timeout); }; }( test, callback, pause ), pause ); } }; OpenForum.runAsync = function(fn) { setTimeout( function() { fn(); },1 ); }; OpenForum.queue = function(process,supplyState) { var test = OpenForum.queue.ready; if(!test) test = function() { return true; }; OpenForum.queue.ready = function() { return (!OpenForum.processing); }; var state = {complete: false}; if(supplyState===true) { OpenForum.queue.ready = function() { if(state.complete===true) delete OpenForum.processing; return (state.complete); }; } OpenForum.waitFor( test, function() { OpenForum.processing = process; process(state); if(!supplyState) { delete OpenForum.processing; } } ); }; OpenForum.Table = {}; OpenForum.Table.setCell = function(table,row,column,value) { if(value) { table[row][column] = value; } else { //Is simple array so value is column table[row] = column; } }; OpenForum.Table.editRow = function(table,index) { for(var i in table) { table[i].view = "display: block;"; table[i].edit = "display: none;"; } table[index].edit = "display: block;"; table[index].view = "display: none;"; }; OpenForum.jsonToCsv = function(json,delimiter) { if(!delimiter) delimiter = "\t"; var csv = ""; if(Array.isArray(json)) { for(var i in json) { var row = json[i]; //add column name row if(csv.length===0) { for (var c in row) { if(csv.length>0) { csv+=delimiter; } csv += c; } csv += "\n"; } //add row var csvRow = ""; for (var r in row) { if(csvRow.length>0) { csvRow+=delimiter; } csvRow += row[r]; } csv += csvRow +"\n"; } } else if(typeof json === "object") { for(var name in json) { csv += name + delimiter + json[name] + "\n"; } } return csv; }; OpenForum.Table.closeTable = function(table) { for(var i in table) { table[i].view = "display: block;"; table[i].edit = "display: none;"; } }; OpenForum.Table.addRow = function(table) { var newRow = OpenForum.clone( table[table.length-1] ); OpenForum.clean( newRow ); table.push( newRow ); OpenForum.Table.editRow(table,table.length-1); }; OpenForum.Table.removeRow = function(table,index) { var oldRow = table[index]; table.splice(index,1); return oldRow; }; /* End of: /OpenForum/Javascript/Core/open-forum-utils.js*/ //==============================================================================================================// //==============================================================================================================// /* Source: /OpenForum/Javascript/Core/open-forum-storage.js*/ //==============================================================================================================// if(!OpenForum) { OpenForum = {}; } OpenForum.Storage = {}; OpenForum.Storage.get = function(key) { return localStorage.getItem(key); }; OpenForum.Storage.set = function(key,value) { localStorage.setItem(key,value); }; OpenForum.Storage.find = function(regex) { var found = []; for(var i in localStorage) { if( i.match(regex)) { found.push( {key: i, value: localStorage[i]} ); } } return found; }; /* End of: /OpenForum/Javascript/Core/open-forum-storage.js*/ //==============================================================================================================// //==============================================================================================================// /* Source: /OpenForum/Javascript/Core/open-forum-ofx.js*/ //==============================================================================================================// /* * Author: Nik Cross * Description: A replacement for OpenForum JSON.get and JSON.post */ var OFX = { get: function(url) { var GET = function(url) { var self = this; var action; var data; var callBack; var callOnError; self.withAction = function(newAction) { action = newAction; return self; }; self.withData = function(newData) { data = newData; return self; }; self.onSuccess = function(newCallBack) { callBack = newCallBack; return self; }; self.onError = function(newCallOnError) { callOnError = newCallOnError; return self; }; self.go = function() { if(action) { if(data) { if(typeof data == "object") { var dataString = ""; for(var name in data) { if(dataString.length>0) dataString += "&"; dataString += name + "="+ data[name]; } data = dataString; } } var get = JSON.get(url,action,data); if(callBack) { get = get.onSuccess( callBack ); } if(callOnError) { get = get.onError(callOnError); } get.go(); } else { JSON.loadFile(url,callBack); } }; }; return new GET(url); }, post: function(url) { var POST = function(url) { var self = this; var action; var data; var callBack; var callOnError; self.withAction = function(newAction) { action = newAction; return self; }; self.withData = function(newData) { data = newData; return self; }; self.onSuccess = function(newCallBack) { callBack = newCallBack; return self; }; self.onError = function(newCallOnError) { callOnError = newCallOnError; return self; }; self.go = function() { if(action) { if(data) { if(typeof data == "object") { var dataString = ""; for(var name in data) { if(dataString.length>0) dataString += "&"; dataString += name + "="+ data[name]; } data = dataString; } } var post = JSON.post(url,action,data); if(callBack) { post = post.onSuccess( callBack ); } if(callOnError) { post = post.onError(callOnError); } post.go(); } else { JSON.saveFile(url,data); } }; }; return new POST(url); } }; /* End of: /OpenForum/Javascript/Core/open-forum-ofx.js*/ //==============================================================================================================//
An error has occurred.
{{OpenForum.errorMessage}}
See technical details
×
Error details.
{{OpenForum.error}}
×
{{OpenForum.alert.title}}
{{OpenForum.alert.message}}
×