X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=server%2Forg.argeo.slc.ria%2Fsrc%2Fargeo-ria-lib%2Fjcr%2Fclass%2Forg%2Fargeo%2Fjcr%2Fria%2Fprovider%2FXmlNodeProvider.js;h=19990d04ff51589e696de67631fbba1e145630ad;hb=730d2bd9dcd58cf9ff28115174a2a43f2c1359cd;hp=a7f7d1b31cd771b9e81e2d33cdab693aa3b6f402;hpb=76ce032d334bca776cc0004287092bd9766a4a0f;p=gpl%2Fargeo-slc.git diff --git a/server/org.argeo.slc.ria/src/argeo-ria-lib/jcr/class/org/argeo/jcr/ria/provider/XmlNodeProvider.js b/server/org.argeo.slc.ria/src/argeo-ria-lib/jcr/class/org/argeo/jcr/ria/provider/XmlNodeProvider.js index a7f7d1b31..19990d04f 100644 --- a/server/org.argeo.slc.ria/src/argeo-ria-lib/jcr/class/org/argeo/jcr/ria/provider/XmlNodeProvider.js +++ b/server/org.argeo.slc.ria/src/argeo-ria-lib/jcr/class/org/argeo/jcr/ria/provider/XmlNodeProvider.js @@ -27,28 +27,38 @@ qx.Class.define("org.argeo.jcr.ria.provider.XmlNodeProvider", { * @param nodeCallback Function * @param childCallback Function */ - loadNode : function(node, nodeCallback, childCallback){ + loadNode : function(node, depth, filter){ if(node.getLoadState() == "loaded") return; if(this.getXmlDocLoaded()){ // Parse document and load node.setName(this._xmlDoc.documentElement.nodeName); + var properties = this.getSettings(); node.fromDomElement(this._xmlDoc.documentElement); node.setLoadState("loaded"); + if(properties.dynamic){ + this.setXmlDocLoaded(false); + } }else{ this.addListenerOnce("changeXmlDocLoaded", function(){ - this.loadNode(node, nodeCallback, childCallback); + this.loadNode(node, depth, filter); }, this); node.setLoadState("loading"); - this.loadXmlDoc(); + this.loadXmlDoc(node, depth, filter); } }, - loadXmlDoc : function(){ + loadXmlDoc : function(node, depth, filter){ var properties = this.getSettings(); if(!properties.xmlSrc && !properties.xmlString) return; if(properties.xmlSrc){ var request = new org.argeo.ria.remote.Request(properties.xmlSrc, 'GET', 'application/xml'); + if(properties.dynamic && properties.pathParameter){ + request.setParameter(properties.pathParameter, (node.getPath()|| "/")); + if(depth && depth != -1){ + request.setParameter("depth", depth); + } + } request.addListener("completed", function(response){ this._xmlDoc = response.getContent(); this.setXmlDocLoaded(true);