X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=server%2Forg.argeo.slc.ria%2Fsrc%2Fargeo-ria-lib%2Fslc%2Fclass%2Forg%2Fargeo%2Fslc%2Fria%2Fexecution%2FBatchEntrySpec.js;h=dffc98e4f2aa7b64d97485455201ce3b7c81350d;hb=ac1edd931feb89d91bc726d4df2157988074c3d6;hp=6269b49c064d5ac1411ec8071e8b7ef9dd79288d;hpb=d8e9131cdd34b663a03008df8eb97616694259ce;p=gpl%2Fargeo-slc.git diff --git a/server/org.argeo.slc.ria/src/argeo-ria-lib/slc/class/org/argeo/slc/ria/execution/BatchEntrySpec.js b/server/org.argeo.slc.ria/src/argeo-ria-lib/slc/class/org/argeo/slc/ria/execution/BatchEntrySpec.js index 6269b49c0..dffc98e4f 100644 --- a/server/org.argeo.slc.ria/src/argeo-ria-lib/slc/class/org/argeo/slc/ria/execution/BatchEntrySpec.js +++ b/server/org.argeo.slc.ria/src/argeo-ria-lib/slc/class/org/argeo/slc/ria/execution/BatchEntrySpec.js @@ -24,12 +24,16 @@ qx.Class.define("org.argeo.slc.ria.execution.BatchEntrySpec", { * @param module {org.argeo.slc.ria.execution.Module} Reference module * @param flow {org.argeo.slc.ria.execution.Flow} Reference flow */ - construct : function(module, flow){ + construct : function(module, flow, xmlElement){ this.base(arguments); - this.setModule(module); - this.setFlow(flow); - this.setOriginalSpec(flow.getExecutionSpec()); - this.setName(flow.getExecutionSpec().getName()); + if(xmlElement){ + this.fromXml(xmlElement); + }else{ + this.setModule(module); + this.setFlow(flow); + this.setOriginalSpec(flow.getExecutionSpec()); + this.setName(flow.getExecutionSpec().getName()); + } this.fetchInstanceValues(); }, @@ -49,18 +53,43 @@ qx.Class.define("org.argeo.slc.ria.execution.BatchEntrySpec", { var valuesXml = ''; var values = this.getValues(); for(var key in values){ + if(values[key].getValue() == null && !values[key].isFrozen() && !values[key].isHidden()){ + throw new Error("Cannot send empty values! (Parameter "+key+")"); + } valuesXml += values[key].toValueXml(); } - var execFlowDescXML = ''+valuesXml+''; + var execFlowDescXML = ''; + if(this.getFlow().getDescription()!=""){ + execFlowDescXML += ''+this.getFlow().getDescription()+''; + } + execFlowDescXML += ''+valuesXml+''; var execSpecDescXML = this.getOriginalSpec().toXml(); - var moduleData = ''+this.getModule().getName()+''+this.getModule().getVersion()+''; + var moduleData = this.getModule().moduleDataToXml(); return ''+moduleData + execFlowDescXML + execSpecDescXML +''; }, + fromXml : function(xmlElement){ + var parser = org.argeo.ria.util.Element; + var simpleModule = new org.argeo.slc.ria.execution.Module(); + simpleModule.setName(parser.getSingleNodeText(xmlElement, "slc:module-name")); + simpleModule.setVersion(parser.getSingleNodeText(xmlElement, "slc:module-version")); + this.setModule(simpleModule); + + var spec = new org.argeo.slc.ria.execution.Spec(); + var flow = new org.argeo.slc.ria.execution.Flow(); + spec.setXmlNode(parser.selectSingleNode(xmlElement, "slc:default-execution-spec")); + flow.setXmlNode(parser.selectSingleNode(xmlElement, "slc:execution-flow-descriptor")); + flow.setExecutionSpec(spec); + this.setOriginalSpec(spec); + this.setFlow(flow); + this.setName(spec.getName()); + + }, + /** * Fetch the Spec Values with the Flow Values to make the current instance value */ @@ -80,8 +109,7 @@ qx.Class.define("org.argeo.slc.ria.execution.BatchEntrySpec", { } instanceValues[key] = instValue; } - this.setValues(instanceValues); - //this.debug(instanceValues); + this.setValues(instanceValues); } } }); \ No newline at end of file