diff --git a/plasmid/source/core-plugins/newbrowser/1/as/webapps/newbrowser/html/index.html b/plasmid/source/core-plugins/newbrowser/1/as/webapps/newbrowser/html/index.html index 24cfb9b41028267143d473574c2bd86b3414957c..e813714558b632bf84a7dc7b08180aef62f77476 100644 --- a/plasmid/source/core-plugins/newbrowser/1/as/webapps/newbrowser/html/index.html +++ b/plasmid/source/core-plugins/newbrowser/1/as/webapps/newbrowser/html/index.html @@ -99,9 +99,9 @@ <script type="text/javascript" src="./js/views/StorageManager/widgets/GridModel.js"></script> <script type="text/javascript" src="./js/views/StorageManager/widgets/GridView.js"></script> <!-- - <script type="text/javascript" src="./js/views/Examine/ExamineController.js"></script> - <script type="text/javascript" src="./js/views/Examine/ExamineModel.js"></script> - <script type="text/javascript" src="./js/views/Examine/ExamineView.js"></script> + <script type="text/javascript" src="./js/views/StickersNavigator/StickersNavigatorController.js"></script> + <script type="text/javascript" src="./js/views/StickersNavigator/StickersNavigatorModel.js"></script> + <script type="text/javascript" src="./js/views/StickersNavigator/StickersNavigatorView.js"></script> --> <script type="text/javascript" src="./js/views/SpaceForm/SpaceFormController.js"></script> 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 b659e5be2643dfddba7f2e5030cf84d0b47a3c2d..287007aa069a1623e666cfc89c0b34c8fa4cfcdb 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 @@ -300,7 +300,17 @@ function SampleForm(serverFacade, inspector, containerId, profile, sampleTypeCod $( "#copyButton" ).click(function() { var component = "<div class='form-horizontal'>" component += "<legend>Duplicate Entity</legend>"; - component += "<span class='glyphicon glyphicon-warning-sign'></span> The duplicate will not have parents or children: <br><br>"; + component += "<div class='form-inline'>"; + component += "<div class='form-group col-md-9'>"; + component += "<label class='control-label col-md-2'>Options </label>"; + component += "<div class='" + localReference.controlColumnClass + "'>"; + component += "<span class='checkbox'><label><input type='checkbox' id='linkParentsOnCopy' checked> Link Parents </label></span>"; + component += " "; + component += "<span class='checkbox'><label><input type='checkbox' id='copyChildrenOnCopy' checked> Copy Children </label></span>"; + component += "</div>"; + component += "</div>"; + component += "</div>"; + component += "<br /><br />"; component += "<div class='form-group col-md-9'>"; component += "<label class='control-label " + localReference.labelColumnClass+ "'>Code (*):</label>"; component += "<div class='" + localReference.controlColumnClass + "'>"; @@ -324,10 +334,12 @@ function SampleForm(serverFacade, inspector, containerId, profile, sampleTypeCod $("#copyAccept").on("click", function(event) { var newSampleCodeForCopy = $("#newSampleCodeForCopy"); + var linkParentsOnCopy = $("#linkParentsOnCopy")[0].checked; + var copyChildrenOnCopy = $("#copyChildrenOnCopy")[0].checked; var isValid = newSampleCodeForCopy[0].checkValidity(); if(isValid) { var newSampleCodeForCopyValue = newSampleCodeForCopy.val(); - localReference.createSample(newSampleCodeForCopyValue); + localReference.createSample(newSampleCodeForCopyValue, linkParentsOnCopy, copyChildrenOnCopy); Util.unblockUI(); } else { Util.showError("Invalid code.", function() {}, true); @@ -658,7 +670,7 @@ function SampleForm(serverFacade, inspector, containerId, profile, sampleTypeCod } } - this.createSample = function(isCopyWithNewCode) { + this.createSample = function(isCopyWithNewCode, linkParentsOnCopy, copyChildrenOnCopy) { Util.blockUI(); var localReference = this; @@ -798,10 +810,14 @@ function SampleForm(serverFacade, inspector, containerId, profile, sampleTypeCod }; if(isCopyWithNewCode) { - parameters["method"] = "insertSample"; + parameters["method"] = "copySample"; parameters["sampleCode"] = isCopyWithNewCode; - parameters["sampleParents"] = []; - parameters["sampleChildren"] = []; + if(!linkParentsOnCopy) { + parameters["sampleParents"] = []; + } + if(!copyChildrenOnCopy) { + parameters["sampleChildren"] = []; + } parameters["sampleChildrenNew"] = []; parameters["sampleChildrenRemoved"] = []; } diff --git a/plasmid/source/core-plugins/newbrowser/1/as/webapps/newbrowser/html/js/views/Examine/ExamineController.js b/plasmid/source/core-plugins/newbrowser/1/as/webapps/newbrowser/html/js/views/StickersNavigator/StickersNavigatorController.js similarity index 93% rename from plasmid/source/core-plugins/newbrowser/1/as/webapps/newbrowser/html/js/views/Examine/ExamineController.js rename to plasmid/source/core-plugins/newbrowser/1/as/webapps/newbrowser/html/js/views/StickersNavigator/StickersNavigatorController.js index 7187e3e5867f6c5e731a8cd0ce40c3502c1d70eb..3182ee2fd5d91283a86c583a1c110d84829d12c2 100644 --- a/plasmid/source/core-plugins/newbrowser/1/as/webapps/newbrowser/html/js/views/Examine/ExamineController.js +++ b/plasmid/source/core-plugins/newbrowser/1/as/webapps/newbrowser/html/js/views/StickersNavigator/StickersNavigatorController.js @@ -14,7 +14,7 @@ * limitations under the License. */ -function ExamineController(mainController) { +function StickersNavigatorController(mainController) { this._mainController = mainController; this._examineModel = new ExamineModel(); this._examineView = new ExamineView(this._examineModel); diff --git a/plasmid/source/core-plugins/newbrowser/1/as/webapps/newbrowser/html/js/views/Examine/ExamineModel.js b/plasmid/source/core-plugins/newbrowser/1/as/webapps/newbrowser/html/js/views/StickersNavigator/StickersNavigatorModel.js similarity index 94% rename from plasmid/source/core-plugins/newbrowser/1/as/webapps/newbrowser/html/js/views/Examine/ExamineModel.js rename to plasmid/source/core-plugins/newbrowser/1/as/webapps/newbrowser/html/js/views/StickersNavigator/StickersNavigatorModel.js index a2886ae057afff22d4bb7b05b0cb2f314be55f67..a20f4483db65b8cc535a52eb49976bda0a48c55a 100644 --- a/plasmid/source/core-plugins/newbrowser/1/as/webapps/newbrowser/html/js/views/Examine/ExamineModel.js +++ b/plasmid/source/core-plugins/newbrowser/1/as/webapps/newbrowser/html/js/views/StickersNavigator/StickersNavigatorModel.js @@ -14,6 +14,6 @@ * limitations under the License. */ -function ExamineModel() { +function StickersNavigatorModel() { this.inspectedEntities = new Array(); } \ No newline at end of file diff --git a/plasmid/source/core-plugins/newbrowser/1/as/webapps/newbrowser/html/js/views/Examine/ExamineView.js b/plasmid/source/core-plugins/newbrowser/1/as/webapps/newbrowser/html/js/views/StickersNavigator/StickersNavigatorView.js similarity index 99% rename from plasmid/source/core-plugins/newbrowser/1/as/webapps/newbrowser/html/js/views/Examine/ExamineView.js rename to plasmid/source/core-plugins/newbrowser/1/as/webapps/newbrowser/html/js/views/StickersNavigator/StickersNavigatorView.js index e52ad94f925bd33e2c7fad71f7614fcfeb830fba..e691e5974597f8f278d4827089ffb6551ee67ef1 100644 --- a/plasmid/source/core-plugins/newbrowser/1/as/webapps/newbrowser/html/js/views/Examine/ExamineView.js +++ b/plasmid/source/core-plugins/newbrowser/1/as/webapps/newbrowser/html/js/views/StickersNavigator/StickersNavigatorView.js @@ -14,7 +14,7 @@ * limitations under the License. */ -function ExamineView(examineModel) { +function StickersNavigatorView(examineModel) { this._examineModel = examineModel; this.repaint = function($container) { 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 c07d2a143a285629f3ceb74dc26c7464bc08e6ce..cf85511d05cd94a4532e751a4e798fc4352520bc 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 @@ -37,6 +37,8 @@ def process(tr, parameters, tableBuilder): if method == "updateExperiment": isOk = insertUpdateExperiment(tr, parameters, tableBuilder); + if method == "copySample": + isOk = copySample(tr, parameters, tableBuilder); if method == "insertSample": isOk = insertUpdateSample(tr, parameters, tableBuilder); if method == "updateSample": @@ -148,6 +150,20 @@ def insertDataSet(tr, parameters, tableBuilder): #Return from the call return True; +def copySample(tr, parameters, tableBuilder): + #Store Children to copy later + sampleChildren = parameters.get("sampleChildren"); #List<String> Identifiers are in SPACE/CODE format + parameters.put("sampleChildren", []); #List<String> Identifiers are in SPACE/CODE format + + #Create new Sample + parameters.put("method", "insertSample"); #List<String> Identifiers are in SPACE/CODE format + insertUpdateSample(tr, parameters, tableBuilder); + + #Copy children and attach to Sample + + + return True; + def insertUpdateSample(tr, parameters, tableBuilder): #Mandatory parameters