diff --git a/plasmid/source/core-plugins/newbrowser/1/as/webapps/newbrowser/html/js/views/SampleForm.js b/plasmid/source/core-plugins/newbrowser/1/as/webapps/newbrowser/html/js/views/SampleForm.js index 26c2b0836287c7768f3af6e7ef4db3ee5efada48..c6846b70d11dd99518f634692b9f7a171bac97e0 100644 --- a/plasmid/source/core-plugins/newbrowser/1/as/webapps/newbrowser/html/js/views/SampleForm.js +++ b/plasmid/source/core-plugins/newbrowser/1/as/webapps/newbrowser/html/js/views/SampleForm.js @@ -677,6 +677,14 @@ function SampleForm(serverFacade, inspector, containerId, profile, sampleTypeCod } } + //Children to create + var samplesToCreate = []; + this.sampleLinksChildren.getSamples().forEach(function(child) { + if(child.newSample) { + samplesToCreate.push(child); + } + }); + //Method var method = ""; if(this.mode === SampleFormMode.CREATE) { @@ -699,6 +707,7 @@ function SampleForm(serverFacade, inspector, containerId, profile, sampleTypeCod "sampleParents": sampleParentsFinal, //Children links "sampleChildren": sampleChildrenFinal, + "sampleChildrenNew": samplesToCreate, "sampleChildrenRemoved": sampleChildrenRemovedFinal, //Experiment parameters "sampleExperimentProject": sampleProject, diff --git a/plasmid/source/core-plugins/newbrowser/1/as/webapps/newbrowser/html/js/widgets/SampleLinksWidget.js b/plasmid/source/core-plugins/newbrowser/1/as/webapps/newbrowser/html/js/widgets/SampleLinksWidget.js index 9fbeb8cf981160d18c35d970e989c7087e380ae7..d17338020f71a1be51f2825e16e68438f08823dd 100644 --- a/plasmid/source/core-plugins/newbrowser/1/as/webapps/newbrowser/html/js/widgets/SampleLinksWidget.js +++ b/plasmid/source/core-plugins/newbrowser/1/as/webapps/newbrowser/html/js/widgets/SampleLinksWidget.js @@ -502,6 +502,17 @@ function SampleLinksWidget(containerId, profile, serverFacade, title, sampleType } } + this.getSamples = function() { + var samples = new Array(); + for(sampleObjKey in this.samples) { + var sampleObj = this.samples[sampleObjKey]; + if(sampleObj !== null) { + samples.push(sampleObj); + } + } + return samples; + } + this.getSamplesIdentifiers = function() { var sampleIdentifiers = new Array(); for(sampleObjKey in this.samples) { diff --git a/plasmid/source/core-plugins/newbrowser/1/dss/reporting-plugins/newbrowserapi/script.py b/plasmid/source/core-plugins/newbrowser/1/dss/reporting-plugins/newbrowserapi/script.py index 445fd7932a5b854c692f83b886faaa0db1fe9b2b..7a345b0400370a3c64fbcdf1a0e542c502ac4a6b 100644 --- a/plasmid/source/core-plugins/newbrowser/1/dss/reporting-plugins/newbrowserapi/script.py +++ b/plasmid/source/core-plugins/newbrowser/1/dss/reporting-plugins/newbrowserapi/script.py @@ -131,6 +131,7 @@ def insertUpdateSample(tr, parameters, tableBuilder): #Optional parameters sampleParents = parameters.get("sampleParents"); #List<String> Identifiers are in SPACE/CODE format + sampleChildrenNew = parameters.get("sampleChildrenNew"); #List<java.util.LinkedHashMap<String, String>> sampleChildren = parameters.get("sampleChildren"); #List<String> Identifiers are in SPACE/CODE format sampleChildrenRemoved = parameters.get("sampleChildrenRemoved"); #List<String> Identifiers are in SPACE/CODE format @@ -190,19 +191,26 @@ def insertUpdateSample(tr, parameters, tableBuilder): if sampleParents != None: sample.setParentSampleIdentifiers(sampleParents); + #Create new sample children + for newSampleChild in sampleChildrenNew: + child = tr.createNewSample(newSampleChild["identifier"], newSampleChild["sampleTypeCode"]); #Create Sample given his id + child.setParentSampleIdentifiers([sampleIdentifier]); + #Add sample children for sampleChildIdentifier in sampleChildren: child = tr.getSampleForUpdate(sampleChildIdentifier); #Retrieve Sample - childParents = child.getParentSampleIdentifiers(); - childParents.add(sampleIdentifier); - child.setParentSampleIdentifiers(childParents); - + if child != None: #The new created ones will not be found + childParents = child.getParentSampleIdentifiers(); + childParents.add(sampleIdentifier); + child.setParentSampleIdentifiers(childParents); + #Remove sample children for sampleChildIdentifier in sampleChildrenRemoved: child = tr.getSampleForUpdate(sampleChildIdentifier); #Retrieve Sample - childParents = child.getParentSampleIdentifiers(); - childParents.remove(sampleIdentifier); - child.setParentSampleIdentifiers(childParents); - + if child != None: #The new created ones will not be found + childParents = child.getParentSampleIdentifiers(); + childParents.remove(sampleIdentifier); + child.setParentSampleIdentifiers(childParents); + #Return from the call return True; \ No newline at end of file