From b55c7f42d1612addb4fc6c7fa00a2abfb4cea0af Mon Sep 17 00:00:00 2001 From: juanf <juanf> Date: Tue, 13 May 2014 14:43:02 +0000 Subject: [PATCH] SSDM-227: ELN UI - Children Wizard - Server Side SVN: 31499 --- .../newbrowser/html/js/views/SampleForm.js | 9 +++++++ .../html/js/widgets/SampleLinksWidget.js | 11 +++++++++ .../reporting-plugins/newbrowserapi/script.py | 24 ++++++++++++------- 3 files changed, 36 insertions(+), 8 deletions(-) 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 26c2b083628..c6846b70d11 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 9fbeb8cf981..d17338020f7 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 445fd7932a5..7a345b04003 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 -- GitLab