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 db3ea3dc231c9680203e3a91460156af2104fa7d..11536098af903c46000e78129cef05cb037a9d02 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
@@ -90,9 +90,9 @@
 	<script type="text/javascript" src="./js/util/FormUtil.js"></script>
 	<script type="text/javascript" src="./js/util/BlockScrollUtil.js"></script>
 	
-	<script type="text/javascript" src="./js/views/Inspector.js"></script>
-	<script type="text/javascript" src="./js/views/SampleHierarchy.js"></script>
-	<script type="text/javascript" src="./js/views/SampleTable.js"></script>
+	<script type="text/javascript" src="./js/views/legacy/Inspector.js"></script>
+	<script type="text/javascript" src="./js/views/legacy/SampleHierarchy.js"></script>
+	<script type="text/javascript" src="./js/views/legacy/SampleTable.js"></script>
 	
 	<script type="text/javascript" src="./js/views/StorageManager/StorageManagerController.js"></script>
 	<script type="text/javascript" src="./js/views/StorageManager/StorageManagerModel.js"></script>
@@ -139,9 +139,9 @@
 	<script type="text/javascript" src="./js/views/DataSetForm/DataSetFormModel.js"></script>
 	<script type="text/javascript" src="./js/views/DataSetForm/DataSetFormView.js"></script>
 	
-	<script type="text/javascript" src="./js/widgets/DataSetViewer.js"></script>
-	<script type="text/javascript" src="./js/widgets/SampleLinksWidget.js"></script>
-	<script type="text/javascript" src="./js/widgets/SideMenuWidget.js"></script>
+	<script type="text/javascript" src="./js/views/legacy/DataSetViewer.js"></script>
+	<script type="text/javascript" src="./js/views/legacy/SampleLinksWidget.js"></script>
+	<script type="text/javascript" src="./js/views/legacy/SideMenuWidget.js"></script>
 	
 	<script type="text/javascript">
 	//
diff --git a/plasmid/source/core-plugins/newbrowser/1/as/webapps/newbrowser/html/js/views/Inspector.js b/plasmid/source/core-plugins/newbrowser/1/as/webapps/newbrowser/html/js/views/legacy/Inspector.js
similarity index 100%
rename from plasmid/source/core-plugins/newbrowser/1/as/webapps/newbrowser/html/js/views/Inspector.js
rename to plasmid/source/core-plugins/newbrowser/1/as/webapps/newbrowser/html/js/views/legacy/Inspector.js
diff --git a/plasmid/source/core-plugins/newbrowser/1/as/webapps/newbrowser/html/js/views/SampleHierarchy.js b/plasmid/source/core-plugins/newbrowser/1/as/webapps/newbrowser/html/js/views/legacy/SampleHierarchy.js
similarity index 100%
rename from plasmid/source/core-plugins/newbrowser/1/as/webapps/newbrowser/html/js/views/SampleHierarchy.js
rename to plasmid/source/core-plugins/newbrowser/1/as/webapps/newbrowser/html/js/views/legacy/SampleHierarchy.js
diff --git a/plasmid/source/core-plugins/newbrowser/1/as/webapps/newbrowser/html/js/views/SampleTable.js b/plasmid/source/core-plugins/newbrowser/1/as/webapps/newbrowser/html/js/views/legacy/SampleTable.js
similarity index 100%
rename from plasmid/source/core-plugins/newbrowser/1/as/webapps/newbrowser/html/js/views/SampleTable.js
rename to plasmid/source/core-plugins/newbrowser/1/as/webapps/newbrowser/html/js/views/legacy/SampleTable.js
diff --git a/plasmid/source/core-plugins/newbrowser/1/as/webapps/newbrowser/html/js/widgets/DataSetViewer.js b/plasmid/source/core-plugins/newbrowser/1/as/webapps/newbrowser/html/js/widgets/DataSetViewer.js
deleted file mode 100644
index cfa960a15772f202efee821a482c2348c81dcbaf..0000000000000000000000000000000000000000
--- a/plasmid/source/core-plugins/newbrowser/1/as/webapps/newbrowser/html/js/widgets/DataSetViewer.js
+++ /dev/null
@@ -1,357 +0,0 @@
-/*
- * Copyright 2014 ETH Zuerich, Scientific IT Services
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/**
- * Creates an instance of DataSetViewer.
- *
- * @constructor
- * @this {DataSetViewer}
- * @param {String} containerId The container where the DataSetViewer will be atached.
- * @param {String} profile Global configuration.
- * @param {Sample} sample The sample where to check for the data.
- * @param {ServerFacade} serverFacade Point of contact to make calls to the server
- * @param {String} datastoreDownloadURL The datastore url in format http://localhost:8889/datastore_server.
- * @param {Map} datasets API result with the datasets to show.
- * @param {Boolean} enableUpload If true, the button to create datasets is shown, this will require the sample to be present.
- */
-function DataSetViewer(containerId, profile, sample, serverFacade, datastoreDownloadURL, datasets, enableUpload) {
-	this.containerId = containerId;
-	this.profile = profile;
-	this.containerIdTitle = containerId + "-title";
-	this.containerIdContent = containerId + "-content";
-	this.serverFacade = serverFacade;
-	this.sample = sample;
-	this.datasets = datasets;
-	this.enableUpload = enableUpload;
-	this.sampleDataSets = {};
-	this.sampleDataSetsFiles = {};
-	this.datastoreDownloadURL = datastoreDownloadURL
-	
-	this._isPreviewable = function(file) {
-		if(!file.isDirectory) {
-			var haveExtension = file.pathInDataSet.lastIndexOf(".");
-			if( haveExtension !== -1 && (haveExtension + 1 < file.pathInDataSet.length)) {
-				var extension = file.pathInDataSet.substring(haveExtension + 1, file.pathInDataSet.length).toLowerCase();
-				
-				return 	extension === "svg" || 
-						extension === "jpg" || extension === "jpeg" ||
-						extension === "png" ||
-						extension === "gif" ||
-						extension === "html" ||
-						extension === "pdf";
-			}
-		}
-		return false;
-	}
-	
-	this._isImage = function(file) {
-		if(!file.isDirectory) {
-			var haveExtension = file.pathInDataSet.lastIndexOf(".");
-			if( haveExtension !== -1 && (haveExtension + 1 < file.pathInDataSet.length)) {
-				var extension = file.pathInDataSet.substring(haveExtension + 1, file.pathInDataSet.length).toLowerCase();
-				
-				return 	extension === "jpg" || extension === "jpeg" ||
-						extension === "png" ||
-						extension === "gif";
-			}
-		}
-		return false;
-	}
-	
-	this._init = function(datasets) {
-		//
-		// Loading Message
-		//
-		var $container = $("#"+this.containerId);
-		$container.empty();
-		
-		var $containerTitle = $("<div>", {"id" : this.containerIdTitle });
-		$container.append($containerTitle);
-		$container.append($("<div>", {"id" : this.containerIdContent }));
-		
-		$containerTitle.append($("<legend>").html("Files"));
-		$containerTitle.append($("<p>")
-							.append($("<span>", { class: "glyphicon glyphicon-info-sign" }))
-							.append(" Loading datasets."));
-		
-		//
-		//
-		//
-		var localReference = this;
-		var listFilesCallList = [];
-		
-		var callback = function() { //Just enqueues the next call
-			var getCall = listFilesCallList.pop();
-			if(getCall) {
-				getCall(callback);
-			} else {
-				//Switch Title
-				$containerTitle.empty();
-				
-				//Upload Button
-				var $uploadButton = "";
-				if(enableUpload) {
-					$uploadButton = $("<a>", { class: "btn btn-default" }).append($("<span>", { class: "glyphicon glyphicon-upload" }));
-					$uploadButton.click(function() { 
-						mainController.changeView('showCreateDataSetPageFromPermId',localReference.sample.permId); //TO-DO Fix Global Access
-					});
-				}
-				
-				$containerTitle.append($("<legend>").append("Files ").append($uploadButton));
-				
-				//Switch
-				$containerTitle.append(localReference._getSwitch());				
-				
-				//Repaint
-				localReference.repaintImages();
-			}
-		}
-		
-		for(var i = 0; i < datasets.result.length; i++) { //DataSets for sample
-			var dataset = datasets.result[i];
-			var listFilesForDataSet = function(dataset){ return function() { //Files in dataset
-				localReference.serverFacade.listFilesForDataSet(dataset.code, "/", true, function(files) {
-					localReference.sampleDataSets[dataset.code] = dataset;
-					localReference.sampleDataSetsFiles[dataset.code] = files.result;
-					callback();
-				});
-			}}	
-			listFilesCallList.push(listFilesForDataSet(dataset));
-		}
-		
-		callback();
-	}
-	
-	this.init = function() {
-		//
-		// Loading the datasets
-		//
-		var cleanSample = $.extend({}, this.sample);
-		delete cleanSample.parents;
-		delete cleanSample.children; 
-		
-		if(datasets) {
-			this._init(datasets);
-		} else {
-			var localReference = this;
-			this.serverFacade.listDataSetsForSample(cleanSample, true, function(datasets) {
-				localReference._init(datasets);
-			});
-		}
-	}
-	
-	this._getSwitch = function() {
-		var _this = this;
-		var $switch = $("<div>", {"class" : "switch-toggle well", "style" : "width:33%; margin-left: auto; margin-right: auto; min-height: 38px !important;"});
-		$switch.change(function(event) {
-			var mode = $('input[name=dataSetVieweMode]:checked').val();
-			switch(mode) {
-				case "imageMode":
-					_this.repaintImages();
-					break;
-				case "fileMode":
-					_this.repaintFiles();
-					break;
-			}
-		});
-		
-		$switch
-			.append($("<input>", {"value" : "imageMode", "id" : "imageMode", "name" : "dataSetVieweMode", "type" : "radio", "checked" : ""}))
-			.append($("<label>", {"for" : "imageMode", "onclick" : "", "style" : "padding-top:3px;"}).append("Images"))
-			.append($("<input>", {"value" : "fileMode", "id" : "fileMode","name" : "dataSetVieweMode", "type" : "radio"}))
-			.append($("<label>", {"for" : "fileMode", "onclick" : "", "style" : "padding-top:3px;"}).append("Files"));
-
-		$switch.append($("<a>", {"class" : "btn btn-primary"}));
-		return $switch;
-	}
-	
-	this._isDisplayed = function(dataSetTypeCode, fileName) {
-		var passes = false;
-		this.profile.dataSetViewerConf["DATA_SET_TYPES"].forEach(function(type) {
-			var datasetTypePattern = new RegExp(type, "")
-			passes = passes || datasetTypePattern.test(dataSetTypeCode);
-		});
-		
-		if (!passes) {
-			return false;
-		}
-		
-		passes = false;
-		this.profile.dataSetViewerConf["FILE_NAMES"].forEach(function(name) {
-			var fileNamePattern = new RegExp(name, "")
-			passes = passes || fileNamePattern.test(fileName);
-		});
-		
-		return passes;
-	}
-	
-	this._repaintTestsPassed = function($container) {
-		//
-		// No data store URL
-		//
-		if(datastoreDownloadURL === null) {
-			$container.append($("<p>")
-					.append($("<span>", { class: "glyphicon glyphicon-ban-circle" }))
-					.append(" Please configure properly your DSS server properly, looks like is not reachable."));
-			return false;
-		}
-		
-		//
-		// Don't paint data sets for entities that don't have
-		//
-		var numberOfDatasets = 0;
-		for(var datasetCode in this.sampleDataSets) {
-			numberOfDatasets++;
-		}
-		
-		if(numberOfDatasets === 0) {
-			$container.append($("<p>")
-								.append($("<span>", { class: "glyphicon glyphicon-info-sign" }))
-								.append(" No datasets found."));
-			return false;
-		}
-		
-		return true;
-	}
-	this.repaintImages = function() {
-		var $container = $("#"+this.containerIdContent);
-		$container.empty();
-		
-		if(!this._repaintTestsPassed($container)) {
-			return;
-		}
-		
-		for(var datasetCode in this.sampleDataSets) {
-			var dataset = this.sampleDataSets[datasetCode];
-			var datasetFiles = this.sampleDataSetsFiles[datasetCode];
-			
-			if(!datasetFiles) {
-				$container.append($("<p>")
-						.append($("<span>", { class: "glyphicon glyphicon-ban-circle" }))
-						.append(" Please configure properly trusted-cross-origin-domains for this web app, datasets can't be retrieved from the DSS server."));
-				return;
-			}
-		}
-		//
-		_this = this;
-		var maxImages = 30;
-		var numImages = 0;
-		for(var datasetCode in this.sampleDataSets) {
-			var dataset = this.sampleDataSets[datasetCode];
-			var datasetFiles = this.sampleDataSetsFiles[datasetCode];
-			
-			datasetFiles.forEach(
-				function(file) {
-					if (numImages < maxImages && _this._isImage(file) &&  _this._isDisplayed(dataset.dataSetTypeCode, file.pathInDataSet)) {
-						var $image = $("<img>", {"class" : "zoomableImage", "style" : "width:300px", "src" : _this.datastoreDownloadURL + '/' + dataset.code + "/" + file.pathInDataSet + "?sessionID=" + _this.serverFacade.getSession()});
-						$image.css({
-							"margin-right" : "10px"
-						});
-						$image.click(function() {
-							Util.showImage($image.attr("src"));
-						});
-						$container.append($image);
-						numImages++
-					}
-			});
-		}
-		
-		if(numImages === maxImages) {
-			$container.append($("<p>")
-					.append($("<span>", { class: "glyphicon glyphicon-info-sign" }))
-					.append(" You can't see more than " + maxImages + " image at the same time, please use the file browser mode."));
-		}
-	}
-	
-	this.repaintFiles = function() {
-		var $container = $("#"+this.containerIdContent);
-		$container.empty();
-		
-		if(!this._repaintTestsPassed($container)) {
-			return;
-		}
-		
-		//
-		// Simple Files Table
-		//
-		var $dataSetsTable = $("<table>", { class: "table"});
-		$dataSetsTable.append(
-			$("<thead>").append(
-				$("<tr>")
-					.append($("<th>").html("DataSet Code"))
-					.append($("<th>").html("DataSet Type"))
-					.append($("<th>").html("File Name"))
-					.append($("<th>").html("File Size (Mbyte)"))
-					.append($("<th>").html("Preview"))
-			)
-		);
-		
-		var $dataSetsTableBody = $("<tbody>");
-		
-		for(var datasetCode in this.sampleDataSets) {
-			var dataset = this.sampleDataSets[datasetCode];
-			var datasetFiles = this.sampleDataSetsFiles[datasetCode];
-			
-			if(!datasetFiles) {
-				$container.append($("<p>")
-						.append($("<span>", { class: "glyphicon glyphicon-ban-circle" }))
-						.append(" Please configure properly trusted-cross-origin-domains for this web app, datasets can't be retrieved from the DSS server."));
-				return;
-			}
-			
-			for(var i = 0; i < datasetFiles.length; i++) {
-				var $tableRow = $("<tr>")
-									.append($("<td>").html(dataset.code))
-									.append($("<td>").html(dataset.dataSetTypeCode));
-				
-				var downloadUrl = datastoreDownloadURL + '/' + dataset.code + "/" + encodeURIComponent(datasetFiles[i].pathInDataSet) + "?sessionID=" + this.serverFacade.getSession();
-				if(datasetFiles[i].isDirectory) {
-					$tableRow.append($("<td>").html(datasetFiles[i].pathInDataSet));
-					$tableRow.append($("<td>"));
-				} else {
-					$tableRow.append(
-								$("<td>").append(
-									$("<a>").attr("href", downloadUrl)
-											.attr("download", 'download')
-											.html(datasetFiles[i].pathInDataSet)
-								)
-							);
-					
-					var sizeInMb = parseInt(datasetFiles[i].fileSize) / 1024 / 1024;
-					var sizeInMbThreeDecimals = Math.floor(sizeInMb * 1000) / 1000;
-					$tableRow.append($("<td>").html(sizeInMbThreeDecimals));
-				}
-				 
-				if(this._isPreviewable(datasetFiles[i])) {
-					$tableRow.append($("<td>").append(
-												$("<a>")
-													.attr("href", downloadUrl)
-													.attr("target", "_blank")
-													.append($("<span>").attr("class", "glyphicon glyphicon-search"))
-											)
-									);
-				} else {
-					$tableRow.append($("<td>"));
-				}
-				
-				$dataSetsTableBody.append($tableRow);
-			}
-		}
-		
-		$dataSetsTable.append($dataSetsTableBody);
-		$container.append($dataSetsTable);
-	}
-}
\ No newline at end of file
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
deleted file mode 100644
index fa099a795689950a650ebee8949a6b0a14098bbc..0000000000000000000000000000000000000000
--- a/plasmid/source/core-plugins/newbrowser/1/as/webapps/newbrowser/html/js/widgets/SampleLinksWidget.js
+++ /dev/null
@@ -1,594 +0,0 @@
-/*
- * Copyright 2014 ETH Zuerich, Scientific IT Services
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/**
- * Creates an instance of SampleLinksTable.
- *
- * This component is used to render the parents of a sample in a friendly manner.
- *
- * @constructor
- * @this {SampleLinksTable}
- * @param {string} containerId The Container where the Inspector DOM will be attached.
- * @param {Profile} profile The profile to be used, typically, the global variable that holds the configuration for the application.
- * @param {boolean} isDisabled Disables the component.
- */
-function SampleLinksWidget(containerId, profile, serverFacade, title, sampleTypeHints, isDisabled, samplesToEdit) {
-	this.containerId = containerId;
-	this.profile = profile;
-	this.serverFacade = serverFacade;
-	this.title = title;
-	this.sampleTypeHints = sampleTypeHints;
-	this.isDisabled = isDisabled;
-	this.samplesToEdit = (samplesToEdit)?samplesToEdit:new Array(); //Only used to populate the widget
-	this.samples = {};
-	this.samplesRemoved = {};
-	this.stateObj = {};
-		
-	this._lastUsedId = null;
-	this._lastIndex = 0;
-	
-	this._enableAnnotations = function() {
-		var enableAnnotations = false;
-		for(var i = 0; i < this.sampleTypeHints.length; i++) {
-			var sampleTypeHint = this.sampleTypeHints[i];
-			if(sampleTypeHint["ANNOTATION_PROPERTIES"].length > 0) {
-				enableAnnotations = true;
-			}
-		}
-		return enableAnnotations;
-	}
-	
-	this._writeState = function(sample, propertyTypeCode, propertyTypeValue) {
-		if(!this._enableAnnotations()) {
-			return;
-		}
-		this._readState();
-		
-		var sampleTypeAnnotations = this.stateObj[sample.permId];
-		if(!sampleTypeAnnotations) {
-			sampleTypeAnnotations = {};
-			this.stateObj[sample.permId] = sampleTypeAnnotations;
-		}
-		
-		sampleTypeAnnotations["code"] =  sample.code; //Adds code to the annotations if not present
-		
-		if(propertyTypeValue === null) {
-			delete this.stateObj[sample.permId];
-		} else {
-			sampleTypeAnnotations[propertyTypeCode] = propertyTypeValue;
-		}
-		
-		var xmlDoc = "<root>";
-		
-		for(var permId in this.stateObj) {
-			xmlDoc	+= "<Sample permId=\"" + permId + "\""; 
-			for(var propertyTypeCode in this.stateObj[permId]) {
-				if(propertyTypeCode == "code") {
-					var propertyTypeValue = this.stateObj[permId][propertyTypeCode];
-					xmlDoc	+= " " + propertyTypeCode + "=\"" + propertyTypeValue +"\"";
-				}
-			}
-			
-			for(var propertyTypeCode in this.stateObj[permId]) {
-				if(propertyTypeCode != "code") {
-					var propertyTypeValue = this.stateObj[permId][propertyTypeCode];
-					xmlDoc	+= " " + propertyTypeCode + "=\"" + propertyTypeValue +"\"";
-				}
-			}
-			
-			xmlDoc	+= " />";
-		}
-		
-		xmlDoc	+= "</root>";
-		
-		$("#ANNOTATIONS_STATE").val(xmlDoc);
-		
-		//Compatibility mode for refactored sample form
-		if(mainController.currentView._sampleFormModel) {
-			mainController.currentView._sampleFormModel.sample.properties["ANNOTATIONS_STATE"] = xmlDoc;
-		}
-	}
-	
-	this._readState = function() {
-		if(!this._enableAnnotations()) {
-			return;
-		}
-		var stateField = $("#ANNOTATIONS_STATE");
-		if(stateField.length === 0) {
-			Util.showError("You need a property with code ANNOTATIONS_STATE on this entity to store the state of the annotations.");
-		} else {
-			//Hide State Field
-			var fieldset = stateField.parent().parent().parent();
-			fieldset.hide();
-			
-			//Update Values
-			this.stateObj = {};
-			var stateFieldValue = Util.getEmptyIfNull(stateField.val());
-			//Hack to fix for new sample form on view mode
-			if(mainController.currentView._sampleFormModel && mainController.currentView._sampleFormModel.mode === FormMode.VIEW) {
-				stateFieldValue = Util.getEmptyIfNull(stateField.text());
-			}
-			//
-			if(stateFieldValue === "") {
-				return;
-			}
-			var xmlDoc = new DOMParser().parseFromString(stateFieldValue, 'text/xml');
-			var samples = xmlDoc.getElementsByTagName("Sample");
-			for(var i = 0; i < samples.length; i++) {
-				var sample = samples[i];
-				var permId = sample.attributes["permId"].value;
-				for(var j = 0; j < sample.attributes.length; j++) {
-					var attribute = sample.attributes[j];
-					if(attribute.name !== "permId") {
-						if(!this.stateObj[permId]) {
-							this.stateObj[permId] = {};
-						}
-						this.stateObj[permId][attribute.name] = attribute.value;
-					}
-				}
-			}
-		}
-	}
-	
-	this._getDefaultSampleHint = function(sampleTypeCode) {
-		var defaultMinCount = 0;
-		var defaultProperties = [];
-		
-		for(var i = 0; i < sampleTypeHints.length; i++) {
-			if(sampleTypeHints[i]["TYPE"] === sampleTypeCode) {
-				defaultMinCount = sampleTypeHints[i]["MIN_COUNT"];
-				defaultProperties = sampleTypeHints[i]["ANNOTATION_PROPERTIES"];
-			}
-		}
-		
-		var typeToAdd = {
-				"LABEL" : sampleTypeCode,
-				"TYPE": sampleTypeCode,
-				"MIN_COUNT" : defaultMinCount,
-				"ANNOTATION_PROPERTIES" : defaultProperties
-		};
-		
-		return typeToAdd;
-	}
-	this._addAny = function(id, tableId, sampleId) {
-		var sampleTypes = this.profile.getAllSampleTypes();
-		
-		var component = "<select id='sampleTypeSelector' class='form-control' required>";
-		component += "<option disabled=\"disabled\" selected></option>";
-		for(var i = 0; i < sampleTypes.length; i++) {
-			var sampleType = sampleTypes[i];
-			var label = Util.getEmptyIfNull(sampleType.description);
-			if(label === "") {
-				label = sampleType.code;
-			}
-			
-			component += "<option value='" + sampleType.code + "'>" + label + "</option>";
-		}
-		component += "</select>";
-		
-		Util.blockUI("Select type: <br><br>" + component + "<br> or <a class='btn btn-default' id='sampleTypeSelectorCancel'>Cancel</a>");
-		
-		$("#sampleTypeSelectorCancel").on("click", function(event) { 
-			Util.unblockUI();
-		});
-		
-		var _this = this;
-		$("#sampleTypeSelector").on("change", function(event) {
-			var sampleTypeCode = $("#sampleTypeSelector")[0].value;
-			var sampleType = _this.profile.getSampleTypeForSampleTypeCode(sampleTypeCode);
-			
-			if(sampleType !== null) {
-				if(_this._lastUsedId) {
-					$('#'+_this._lastUsedId + "-table").empty();
-					$("#"+_this._lastUsedId).css({"background-color" : "#FFFFFF" });
-				}
-				
-				var typeToAdd = _this._getDefaultSampleHint(sampleTypeCode);
-				_this.addOneSlot(typeToAdd);
-				Util.unblockUI();
-			}
-		});
-	}
-	
-	this._getButton = function(id, sampleTypeHint) {
-		var _this = this;
-		var tableId = id + "-table";
-		var sampleId = id + "-sample";
-		var $component = $("<div>", {"id" : id , "class" : "form-inline control-group row", "sample-type-code" : sampleTypeHint["TYPE"], "sample-min-count" : sampleTypeHint["MIN_COUNT"] } );
-		$component.css({"border-radius" : "10px", "padding-left" : "10px", "margin-top" : "10px"});
-		
-		var requiredText = "";
-		if(sampleTypeHint["MIN_COUNT"] > 0) {
-			requiredText = " (Required at least " + sampleTypeHint["MIN_COUNT"] + ")";
-		}
-		
-		var labelText = sampleTypeHint["LABEL"] + requiredText + ":";
-		if(sampleTypeHint["LABEL"] === null) {
-			labelText = "";
-		}
-		var $label = $("<label>", { "class" : "control-label " + FormUtil.labelColumnClass }).text(labelText);	
-		var $controls = $("<div>", { "class" : "controls " + FormUtil.controlColumnClass});
-			
-			var $buttonTextField = $("<a>", {"class" : "btn btn-default", "type" : "button", "id" : sampleId});
-			$buttonTextField.css({
-				"max-width" : "90%",
-				"text-align" : "left"
-			});
-			
-			$buttonTextField.append("Select");
-			$controls.append($buttonTextField);
-			$controls.append(" ");
-			
-			var annotations = sampleTypeHint["ANNOTATION_PROPERTIES"];
-			var annotationComponents =  [];
-			
-			for(var i = 0; i < annotations.length; i++) {
-					var propertyType = this.profile.getPropertyType(annotations[i]["TYPE"]);
-					propertyType.mandatory = annotations[i]["MANDATORY"];
-					var $propertyField = FormUtil.getFieldForPropertyType(propertyType);
-					if (propertyType.dataType === "BOOLEAN") {
-						$($propertyField.children()[0]).css({
-							'margin-bottom' : '15px'
-						});
-					}
-					$propertyField.attr("property-type-code" , annotations[i]["TYPE"]);
-					$propertyField.prop("disabled", true);
-					$propertyField.change(function() {
-						var $field = $(this);
-						var sample = _this.samples[sampleId];
-						var propertyTypeCode = $field.attr("property-type-code");
-						var propertyType = _this.profile.getPropertyType(propertyTypeCode)
-						var propertyTypeValue;
-						if (propertyType.dataType === "BOOLEAN") {
-							propertyTypeValue = $field.children().is(":checked");
-						} else {
-							propertyTypeValue = $field.val();
-						}
-						_this._writeState(sample, propertyTypeCode, propertyTypeValue);
-					});
-					
-					$controls.append(propertyType.label + ": ");
-					$controls.append($propertyField);
-					$controls.append(" ");
-					annotationComponents.push($propertyField);
-			}
-			
-			var $buttonPlusOne = $("<a>", {"class" : "btn btn-default"});
-			$buttonPlusOne.append($("<span>", { "class" : "glyphicon glyphicon-plus-sign"}));
-			$controls.append($buttonPlusOne);
-			$controls.append(" ");
-			
-			var $buttonDelete = $("<a>", {"class" : "btn btn-default"});
-			$buttonDelete.append($("<span>", { "class" : "glyphicon glyphicon-minus-sign"}));
-			$controls.append($buttonDelete);
-			
-			if(this.isDisabled) {
-				$buttonTextField.attr("disabled", "");
-				for(var i = 0; i < annotationComponents.length; i++) {
-					annotationComponents[i].attr("disabled", "");
-				}
-				$buttonPlusOne.attr("disabled", "");
-				$buttonDelete.attr("disabled", "");
-			} else {
-				$buttonTextField.click(function(elem) {
-					var $buttonClicked = $(elem);
-					var sampleTypeCode = sampleTypeHint["TYPE"];
-					var sampleType = _this.profile.getSampleTypeForSampleTypeCode(sampleTypeCode);
-					
-					if(sampleType !== null) {
-						//Clear last state
-						if(_this._lastUsedId) {
-							$('#'+_this._lastUsedId + "-table").empty();
-							$("#"+_this._lastUsedId).css({"background-color" : "#FFFFFF" });
-						}
-						//Put new state
-						var onClick = function(sample) {
-							$('#'+_this._lastUsedId + "-table").empty();
-							$("#"+_this._lastUsedId).css({"background-color" : "#FFFFFF" });
-							_this.removeSample(sampleId);
-							_this.addSample(sample);
-							$("#" + id).css({"background-color" : "#FFFFFF" });
-						}
-						$("#" + id).css({"border-radius" : "10px", "padding" : "10px", "background-color" : "#EEEEEE" });
-						var	sampleTable = new SampleTable(_this.serverFacade,tableId,_this.profile, sampleTypeCode, false, false, onClick, false, true);
-						sampleTable.init();
-						//Store new state
-						_this._lastUsedId = id;
-					} else {
-						_this._addAny(id, tableId, sampleId);
-					}
-				});
-				
-				$buttonPlusOne.click(function(elem) {
-					_this.addOneSlot(sampleTypeHint);
-				});
-				$buttonDelete.click(function(elem) {
-					_this.removeSample(sampleId);
-				});
-			}
-			
-			$component.append($label);
-			$component.append($controls);
-			
-			$component.append($("<div>", { "id" : tableId}));
-		return $component;
-	}
-	
-	this._getPlus = function() {
-		var id = this.containerId + "-plus-button";
-		var tableId = id + "-table";
-		var $component = $("<div>", { "id" : id, "class" : "form-group", "style" : 'padding: 10px 0px 0px 10px'} );
-		var $controls = $("<div>", { "class" : "col-md-12"});
-		
-		var $buttonPlus = $("<a>", {"class" : "btn btn-default"});
-		$buttonPlus.append($("<span>", { "class" : "glyphicon glyphicon-plus-sign"}));
-		$controls.append($buttonPlus);
-			
-		if(this.isDisabled) {
-			$buttonPlus.attr("disabled", "");
-		} else {
-			var _this = this;
-			var onClick = function(elem) {
-				_this._addAny(id, tableId, null);
-			};
-			$buttonPlus.click(onClick);
-		}
-		
-		$component.append($controls);
-		$component.append($("<div>", { "id" : tableId}));
-		return $component;
-	}
-	
-	this.repaint = function() {
-		$('#'+this.containerId).empty();
-		
-		//Create Component
-		var $component = $("<fieldset>");
-		$component.append($("<legend>").text(this.title))
-		$component.append(this._getPlus());
-		$('#'+this.containerId).append($component);
-		
-		//Add predefined slots
-		for(var i = 0; i < this.sampleTypeHints.length; i++) {
-			this.addOneSlot(sampleTypeHints[i]);
-		}
-		
-		//Initialize annotations from property
-		this._readState();
-		
-		//Add sample links to edit
-		for(var i = 0; i < this.samplesToEdit.length; i++) {
-			this.addSample(this.samplesToEdit[i]);
-		}
-	}
-	
-	this.addOneSlot = function(sampleTypeHint) {
-		
-		//Find latest slot from that type
-		var containerId = null;
-		for(var i = 0; i < this._lastIndex; i++) {
-			var containerIdAux = this.containerId + "-" + i;
-			var freePredefinedTypeCodeAux = $("#" + containerIdAux).attr("sample-type-code");
-			if(sampleTypeHint["TYPE"] === freePredefinedTypeCodeAux) {
-				containerId = containerIdAux;
-			}
-		}
-		
-		//If the slot exists, empty label
-		if(containerId) {
-			sampleTypeHint["LABEL"] = null;
-		}
-		
-		//Create the new slot
-		var $newSlot = this._getButton(this.containerId + "-" + this._lastIndex, sampleTypeHint);
-		this._lastIndex++;
-		
-		if(containerId) { //Insert after that slot
-			$("#" + containerId).after($newSlot);
-		} else { //Insert before plus
-			$("#" + this.containerId + "-plus-button").before($newSlot);
-		}
-	}
-	
-	this.addSample = function(sampleToAdd) {
-		var found = false;
-		for(sampleObjKey in this.samples) {
-			var sampleObj = this.samples[sampleObjKey];
-			if(sampleObj && sampleObj.identifier === sampleToAdd.identifier) {
-				found = true;
-			}
-		}
-		
-		if(!found) {
-			//Check for a predefined slot that is free
-			var freePredefinedSampleId = null;
-			for(var i = 0; i < this._lastIndex; i++) {
-				var predefinedSampleId = this.containerId + "-" + i + "-sample";
-				if(!this.samples[predefinedSampleId]) {
-					var containerId = this.containerId + "-" + i;
-					var freePredefinedTypeCodeAux = $("#" + containerId).attr("sample-type-code");
-					if(sampleToAdd.sampleTypeCode === freePredefinedTypeCodeAux) {
-						freePredefinedSampleId = predefinedSampleId;
-						break;
-					}
-				}
-			}
-			
-			//Check for a non predefined slot that is free
-			if(!freePredefinedSampleId) {
-				for(var i = 0; i < this._lastIndex; i++) {
-					var predefinedSampleId = this.containerId + "-" + i + "-sample";
-					if(!this.samples[predefinedSampleId]) {
-						var containerId = this.containerId + "-" + i;
-						var freePredefinedTypeCodeAux = $("#" + containerId).attr("sample-type-code");
-						if("null" === freePredefinedTypeCodeAux) {
-							freePredefinedSampleId = predefinedSampleId;
-							break;
-						}
-					}
-				}
-			}
-			
-			//Create a new slot if nothing is found
-			if(!freePredefinedSampleId) { //Create a new slot if not found
-				var sampleId = this.containerId + "-" + this._lastIndex + "-sample";
-				freePredefinedSampleId = sampleId;
-				
-				var typeToAdd = this._getDefaultSampleHint(sampleToAdd.sampleTypeCode);
-				this.addOneSlot(typeToAdd);
-			}
-			
-			//Finally, add the sample
-			this.samples[freePredefinedSampleId] = sampleToAdd;
-			
-			//Show meaningful information
-			var propertiesToShow = this.profile.typePropertiesForSmallTable[sampleToAdd.sampleTypeCode];
-			if(propertiesToShow === null || propertiesToShow === undefined) {
-				propertiesToShow = [];
-			}
-			
-			var propertiesToShowDisplayNames = this.profile.getPropertiesDisplayNamesForTypeCode(sampleToAdd.sampleTypeCode, propertiesToShow);
-			
-			var meaningfulInfo = "<b>Code: </b>" + sampleToAdd.code + " ";
-			
-			
-			for(var j = 0; j < propertiesToShow.length; j++) {
-				var propertyToShow = sampleToAdd.properties[propertiesToShow[j]];
-				if(!propertyToShow && propertiesToShow[j].charAt(0) === '$') {
-					propertyToShow = sampleToAdd.properties[propertiesToShow[j].substr(1)];
-				}
-				var propertyToShowDisplayName = propertiesToShowDisplayNames[j];
-				
-				meaningfulInfo += "<b>" + propertyToShowDisplayName + ": </b>" + Util.getEmptyIfNull(propertyToShow) + " ";
-			}
-			var $input = $("#" +freePredefinedSampleId);
-			if(meaningfulInfo.length > 200) {
-				meaningfulInfo = meaningfulInfo.substring(0, 200) + "...";
-			}
-			$input.empty();
-			$input.append(meaningfulInfo);
-			
-			//Update annotations when adding an existing sample for updates
-			var sampleState = this.stateObj[sampleToAdd.permId];
-			var items = $input.parent().children();
-			for(var i = 0; i < items.length; i++) {
-				var item = $(items[i]);
-				var propertyTypeCode = item.attr("property-type-code");
-				if(propertyTypeCode && sampleState && sampleState[propertyTypeCode]) {
-					if (this.profile.getPropertyType(propertyTypeCode).dataType === "BOOLEAN") {
-						item.children()[0].checked = sampleState[propertyTypeCode] === "true";
-					} else {
-						item.val(sampleState[propertyTypeCode]);
-					}
-				}
-				if(!this.isDisabled) {
-					item.prop("disabled", false);
-				}
-			}
-		} else {
-			Util.showError("Item Already selected, choose another.");
-		}
-	}
-
-	this.removeSample = function(sampleId) {
-		var sample = this.samples[sampleId];
-		if(sample) {
-			//Remove Link
-			var $input = $('#'+sampleId);
-			$input.empty();
-			$input.append("Select");
-			
-			//Remove Link Annotations
-			var items = $input.parent().children();
-			for(var i = 0; i < items.length; i++) {
-				var item = $(items[i]);
-				var propertyTypeCode = item.attr("property-type-code");
-				if(propertyTypeCode) {
-					item.val("");
-					this._writeState(sample, propertyTypeCode, null);
-					item.prop("disabled", true);
-				}
-			}
-			
-			//Update
-			this.samplesRemoved[sampleId] = this.samples[sampleId];
-			this.samples[sampleId] = null;
-		}
-	}
-	
-	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) {
-			var sampleObj = this.samples[sampleObjKey];
-			if(sampleObj !== null) {
-				sampleIdentifiers.push(sampleObj.identifier);
-			}
-		}
-		return sampleIdentifiers;
-	}
-	
-	this.getSampleByIdentifier = function(identifier) {
-		for(sampleObjKey in this.samples) {
-			var sampleObj = this.samples[sampleObjKey];
-			if(sampleObj !== null && sampleObj.identifier === identifier) {
-				return sampleObj;
-			}
-		}
-		return null;
-	}
-	
-	this.getSamplesRemovedIdentifiers = function() {
-		var sampleIdentifiers = new Array();
-		for(sampleObjKey in this.samplesRemoved) {
-			var sampleObj = this.samplesRemoved[sampleObjKey];
-			if(sampleObj !== null) {
-				sampleIdentifiers.push(sampleObj.identifier);
-			}
-		}
-		return sampleIdentifiers;
-	}
-	
-	this.isValid = function() {
-		var isValid = true;
-		for(sampleTypeHintKey in this.sampleTypeHints) {
-			var sampleTypeHint = this.sampleTypeHints[sampleTypeHintKey];
-			var minCount = sampleTypeHint["MIN_COUNT"];
-			var found = 0;
-			for(sampleKey in this.samples) {
-				var sample = this.samples[sampleKey];
-				if(sample && sample.sampleTypeCode === sampleTypeHint["TYPE"]) {
-					found++;
-				}
-			}
-			
-			if(found < minCount) {
-				isValid = false;
-			}
-		}
-		return isValid;
-	}
-}
\ No newline at end of file
diff --git a/plasmid/source/core-plugins/newbrowser/1/as/webapps/newbrowser/html/js/widgets/SideMenuWidget.js b/plasmid/source/core-plugins/newbrowser/1/as/webapps/newbrowser/html/js/widgets/SideMenuWidget.js
deleted file mode 100644
index cc8b95f999bff4ee8adcb5832b4556999f7815f7..0000000000000000000000000000000000000000
--- a/plasmid/source/core-plugins/newbrowser/1/as/webapps/newbrowser/html/js/widgets/SideMenuWidget.js
+++ /dev/null
@@ -1,649 +0,0 @@
-/*
- * Copyright 2014 ETH Zuerich, Scientific IT Services
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/**
- * Creates an instance of SideMenuWidget.
- *
- * @constructor
- * @this {SideMenuWidget}
- * @param {MainController} mainController Used to control view changes.
- * @param {string} containerId The Container where the Inspector DOM will be atached.
- * @param {ServerFacade} serverFacade Used to access all server side calls.
- */
-function SideMenuWidget(mainController, containerId, serverFacade) {
-	this._mainController = mainController;
-	this._containerId = containerId;
-	this._serverFacade = serverFacade;
-	this._menuDOMTitle = null;
-	this._menuDOMBody = null;
-	this._menuStructure = new SideMenuWidgetComponent(false, true, "Main Menu", "Main Menu", null, { children : [] }, 'showBlancPage', null, "");
-	this._pointerToMenuNode = this._menuStructure;
-	this.isHidden = false;
-
-	this.refreshProject = function(spaceCode, projectCode) {
-		var menuItemSpace = this._getSpaceNodeForCode(spaceCode);
-		var newMenuIfSelectedProject = {
-				children : []
-		}
-		var projectIdentifier = "/" + spaceCode + "/" + projectCode;
-		var menuItemProject = new SideMenuWidgetComponent(true, false, projectCode, projectCode, menuItemSpace, newMenuIfSelectedProject, "showProjectPageFromIdentifier", projectIdentifier, "(Project)");
-		menuItemSpace.newMenuIfSelected.children.push(menuItemProject);
-		
-		this.repaint();
-	}
-	
-	this.refreshExperiment = function(experiment, isInventory) {
-		var projectNode = this._getProjectNodeForCode(experiment.identifier.split("/")[2]);
-		var newMenuIfSelectedExperiment = {
-				children : []
-		}
-		
-		var displayName = null;
-		if(this._mainController.profile.hideCodes) {
-			displayName = experiment.properties[this._mainController.profile.propertyReplacingCode];
-		}
-		if(!displayName) {
-			displayName = experiment.code;
-		}
-		
-		var menuItemExperiment = null;
-		if(isInventory) {
-			menuItemExperiment = new SideMenuWidgetComponent(true, false, displayName, experiment.code, projectNode, null, "showSamplesPage", ":" + experiment.identifier);
-		} else {
-			menuItemExperiment = new SideMenuWidgetComponent(true, false, displayName, experiment.code, projectNode, newMenuIfSelectedExperiment, "showExperimentPageFromIdentifier", experiment.identifier, "(Experiment)");
-		}
-		
-		projectNode.newMenuIfSelected.children.push(menuItemExperiment);
-		
-		this.repaint();
-	}
-	
-	this.refreshSubExperiment = function(experimentIdentifierToAskForSamples) {
-		var _this = this;
-		_this._serverFacade.listExperimentsForIdentifiers([experimentIdentifierToAskForSamples], function(data) {
-			var experimentToAskForSamples = data.result[0];
-			_this._serverFacade.listSamplesForExperiments([experimentToAskForSamples], function(subExperiments) {
-				var nodeCleared = false;
-				for(var i = 0; i < subExperiments.result.length; i++) {
-					var subExperiment = subExperiments.result[i];
-					if(subExperiment.experimentIdentifierOrNull) {
-						var projectCode = subExperiment.experimentIdentifierOrNull.split("/")[2];
-						var experimentCode = subExperiment.experimentIdentifierOrNull.split("/")[3];
-						var experimentNode = _this._getExperimentNodeForCode(projectCode, experimentCode);
-						var displayName = null;
-						if(_this._mainController.profile.hideCodes) {
-							displayName = subExperiment.properties[_this._mainController.profile.propertyReplacingCode];
-						}
-						if(!displayName) {
-							displayName = subExperiment.code;
-						}
-						if(!nodeCleared) {
-							experimentNode.newMenuIfSelected.children = [];
-							nodeCleared = true;
-						}
-						var menuItemSubExperiment = new SideMenuWidgetComponent(true, false, displayName, subExperiment.code, experimentNode, null, "showViewSamplePageFromPermId", subExperiment.permId, "(Sub Exp.)");
-						experimentNode.newMenuIfSelected.children.push(menuItemSubExperiment);
-					}
-				}
-				_this.repaint();
-			});
-		});
-	}
-	
-	this._getSpaceNodeForCode = function(spaceCode) {
-		for(var sIdx = 0; sIdx < this._menuStructure.newMenuIfSelected.children.length; sIdx++) {
-			var spaceNode = this._menuStructure.newMenuIfSelected.children[sIdx];
-			if(spaceNode.isTitle && !spaceNode.isSelectable) {
-				continue;
-			}
-			if(spaceNode.code === spaceCode) {
-				return spaceNode;
-			}
-		}
-		return null;
-	}
-	
-	this._getProjectNodeForCode = function(projectCode) {
-		for(var sIdx = 0; sIdx < this._menuStructure.newMenuIfSelected.children.length; sIdx++) {
-			var spaceNode = this._menuStructure.newMenuIfSelected.children[sIdx];
-			if(spaceNode.isTitle && !spaceNode.isSelectable) {
-				continue;
-			}
-			var projectsFromSpace = spaceNode.newMenuIfSelected.children;
-			for(var pIdx = 0; pIdx < projectsFromSpace.length; pIdx++) {
-				var projectNode = projectsFromSpace[pIdx];
-				if(projectNode.code === projectCode) {
-					return projectNode;
-				}
-			}
-		}
-		return null;
-	}
-	
-	this._getExperimentNodeForCode = function(projectCode, experimentCode) {
-		var projectNode = this._getProjectNodeForCode(projectCode);
-		var experimentsFromProject = projectNode.newMenuIfSelected.children;
-		for(var eIdx = 0; eIdx < experimentsFromProject.length; eIdx++) {
-			var experimentNode = experimentsFromProject[eIdx];
-			if(experimentNode.code === experimentCode) {
-				return experimentNode;
-			}
-		}
-		return null;
-	}
-	
-	this.init = function() {
-		var _this = this;
-		
-		this._menuStructure.newMenuIfSelected.children.push(
-			new SideMenuWidgetComponent(false, true, "Lab Notebook", "Lab Notebook", this._menuStructure, null, null, null, "")
-		);
-		
-		this._serverFacade.listSpacesWithProjectsAndRoleAssignments(null, function(dataWithSpacesAndProjects) {
-			//Fill Spaces
-			var spaces = dataWithSpacesAndProjects.result;
-			var projectsToAskForExperiments = [];
-			for(var i = 0; i < spaces.length; i++) {
-				var space = spaces[i];
-				
-				if($.inArray(space.code, _this._mainController.profile.inventorySpaces) !== -1 && _this._mainController.profile.inventorySpaces.length > 0) {
-					continue;
-				}
-				
-				var newMenuIfSelectedSpace = {
-						children : []
-				}
-				var menuItemSpace = new SideMenuWidgetComponent(true, false, space.code, space.code,  _this._menuStructure, newMenuIfSelectedSpace, 'showSpacePage', space.code, "(Space)");
-				_this._menuStructure.newMenuIfSelected.children.push(menuItemSpace);
-				
-				//Fill Projects
-				for(var j = 0; j < space.projects.length; j++) {
-					var project = space.projects[j];
-					delete project["@id"];
-					delete project["@type"];
-					projectsToAskForExperiments.push(project);
-					
-					var newMenuIfSelectedProject = {
-							children : []
-					}
-					var menuItemProject = new SideMenuWidgetComponent(true, false, project.code, project.code, menuItemSpace, newMenuIfSelectedProject, "showProjectPageFromPermId", project.permId, "(Project)");
-					newMenuIfSelectedSpace.children.push(menuItemProject);
-				}
-			}
-			
-			//Fill Experiments
-			_this._serverFacade.listExperiments(projectsToAskForExperiments, function(experiments) {
-				var experimentsToAskForSamples = [];
-				
-				if(experiments.result) {
-					for(var i = 0; i < experiments.result.length; i++) {
-						var experiment = experiments.result[i];
-						experimentsToAskForSamples.push(experiment);
-						var projectCode = experiment.identifier.split("/")[2];
-						var projectNode = _this._getProjectNodeForCode(projectCode);
-						
-						var newMenuIfSelectedExperiment = {
-								children : []
-						}
-						
-						var displayName = null;
-						if(_this._mainController.profile.hideCodes) {
-							displayName = experiment.properties[_this._mainController.profile.propertyReplacingCode];
-						}
-						if(!displayName) {
-							displayName = experiment.code;
-						}
-						
-						var menuItemExperiment = new SideMenuWidgetComponent(true, false, displayName, experiment.code, projectNode, newMenuIfSelectedExperiment, "showExperimentPageFromIdentifier", experiment.identifier, "(Experiment)");
-						projectNode.newMenuIfSelected.children.push(menuItemExperiment);
-					}
-				}
-				
-				//Fill Sub Experiments
-				_this._serverFacade.listSamplesForExperiments(experimentsToAskForSamples, function(subExperiments) {
-					if(subExperiments.result) {
-						for(var i = 0; i < subExperiments.result.length; i++) {
-							var subExperiment = subExperiments.result[i];
-							if(subExperiment.experimentIdentifierOrNull) {
-								var projectCode = subExperiment.experimentIdentifierOrNull.split("/")[2];
-								var experimentCode = subExperiment.experimentIdentifierOrNull.split("/")[3];
-								var experimentNode = _this._getExperimentNodeForCode(projectCode, experimentCode);
-								var displayName = null;
-								if(_this._mainController.profile.hideCodes) {
-									displayName = subExperiment.properties[_this._mainController.profile.propertyReplacingCode];
-								}
-								if(!displayName) {
-									displayName = subExperiment.code;
-								}
-								var menuItemSubExperiment = new SideMenuWidgetComponent(true, false, displayName, subExperiment.code, experimentNode, null, "showViewSamplePageFromPermId", subExperiment.permId, "(Sub Exp.)");
-								experimentNode.newMenuIfSelected.children.push(menuItemSubExperiment);
-							}
-						}
-					}
-					
-					
-					//Fill Inventory
-					_this._menuStructure.newMenuIfSelected.children.push(
-							new SideMenuWidgetComponent(false, true, "Inventory", "Inventory", _this._menuStructure, null, null, null, "")
-					);
-					
-					//Fill Spaces
-					var spaces = dataWithSpacesAndProjects.result;
-					var projectsToAskForExperiments = [];
-					for(var i = 0; i < spaces.length; i++) {
-						var space = spaces[i];
-						
-						if($.inArray(space.code, _this._mainController.profile.inventorySpaces) === -1) {
-							continue;
-						}
-						
-						var newMenuIfSelectedSpace = {
-								children : []
-						}
-						var menuItemSpace = new SideMenuWidgetComponent(true, false, space.code, space.code,  _this._menuStructure, newMenuIfSelectedSpace, 'showSpacePage', space.code, "(Space)");
-						_this._menuStructure.newMenuIfSelected.children.push(menuItemSpace);
-						
-						//Fill Projects
-						for(var j = 0; j < space.projects.length; j++) {
-							var project = space.projects[j];
-							delete project["@id"];
-							delete project["@type"];
-							projectsToAskForExperiments.push(project);
-							
-							var newMenuIfSelectedProject = {
-									children : []
-							}
-							var menuItemProject = new SideMenuWidgetComponent(true, false, project.code, project.code, menuItemSpace, newMenuIfSelectedProject, "showProjectPageFromPermId", project.permId, "(Project)");
-							newMenuIfSelectedSpace.children.push(menuItemProject);
-						}
-					}
-					
-					_this._serverFacade.listExperiments(projectsToAskForExperiments, function(experiments) {
-						var experimentsToAskForSamples = [];
-						
-						if(experiments.result) {
-							for(var i = 0; i < experiments.result.length; i++) {
-								var experiment = experiments.result[i];
-								experimentsToAskForSamples.push(experiment);
-								var projectCode = experiment.identifier.split("/")[2];
-								var projectNode = _this._getProjectNodeForCode(projectCode);
-								
-								var newMenuIfSelectedExperiment = {
-										children : []
-								}
-								
-								var displayName = null;
-								if(_this._mainController.profile.hideCodes) {
-									displayName = experiment.properties[_this._mainController.profile.propertyReplacingCode];
-								}
-								if(!displayName) {
-									displayName = experiment.code;
-								}
-								
-								var menuItemExperiment = new SideMenuWidgetComponent(true, false, displayName, experiment.code, projectNode, null, "showSamplesPage", ":" + experiment.identifier, "");
-								projectNode.newMenuIfSelected.children.push(menuItemExperiment);
-							}
-						}
-						
-						
-						//Fill Utils
-						var profile = _this._mainController.profile;
-						if(profile.storagesConfiguration["isEnabled"]) {
-							_this._menuStructure.newMenuIfSelected.children.push(
-									new SideMenuWidgetComponent(false, true, "Utils", "Utils", _this._menuStructure, null, null, null, "")
-							);
-							_this._menuStructure.newMenuIfSelected.children.push(
-									new SideMenuWidgetComponent(true, false, "Storage Manager", "Storage Manager", _this._menuStructure, null, "showStorageManager", null, "")
-							);
-						}
-						
-						_this._repaint();
-					});
-					
-				});
-
-			});
-		});
-		
-		$(window).scroll(function(event){
-			var sideMenuWidth = $("#sideMenu").width();
-			var windowWidth = $(window).width();
-			var ratio = sideMenuWidth / windowWidth;
-			if(ratio < 0.9) { //For small screens where the menu takes all the screen, we don't move it
-				var $element = $("#sideMenu");
-				var scrollTop = $(document).scrollTop();
-				$element.css('top', scrollTop + "px"); 
-			}
-		});
-		
-		$(window).resize(function(event){
-			//Use all height
-			var $element = $("#sideMenu");
-			var windowHeight = $(window).height();
-			$element.css('min-height', windowHeight + "px"); 
-			
-			//Set the children of the menu scrollable
-			var $elementHead = $("#sideMenuHeader");
-			var sideMenuHeaderHeight = $elementHead.height();
-			var $elementBody = $("#sideMenuBody");
-			$elementBody.css('overflow-y', 'auto');
-			$elementBody.css('overflow-x', 'hidden'); 
-			//TO-DO 17px is a hack to be able to scroll properly to the last item on the iPad
-			$elementBody.css('max-height', (windowHeight - sideMenuHeaderHeight - 17) + "px"); 
-		});
-	}
-	
-	this.hideSideMenu = function() {
-		$("#" + this._containerId).hide();
-		$("#mainContainer").removeClass("col-md-10");
-		$("#mainContainer").addClass("col-md-12");
-		
-		var $toggleButtonShow = $("<a>", { "class" : "btn btn-default", "id" : "toggleButtonShow", "href" : "javascript:mainController.sideMenu.showSideMenu();", "style" : "position: fixed; top:0px; left:0px;"})
-								.append($("<span>", { "class" : "glyphicon glyphicon-resize-horizontal" }));
-		
-		$("#main").append($toggleButtonShow);
-		this.isHidden = true;
-	}
-	
-	this.showSideMenu = function() {
-		$("#" + this._containerId).show();
-		$("#toggleButtonShow").remove();
-		$("#mainContainer").removeClass("col-md-12");
-		$("#mainContainer").addClass("col-md-10");
-		this.isHidden = false;
-	}
-	
-	this._repaint = function() {
-		var _this = this;
-		var $container = $("#" + this._containerId);
-		var $widget = $("<div>");
-		
-		//
-		// Fix Header
-		//
-		var $header = $("<div>", { "id" : "sideMenuHeader"});
-		var $headerItemList = $("<ul>", { "class" : "nav navbar-nav"});
-			$header
-				.append(
-						$("<nav>", { "class" : "navbar navbar-default", "role" : "navigation", "style" : "margin:0px; border-left-width:0px; border-right-width:0px;"})
-							.append($headerItemList)
-					);
-		
-		var $pinButton = $("<li>")
-							.append($("<a>", { "id" : "pin-button", "href" : "javascript:mainController.changeView(\"showInspectors\",null)" })
-										.append($("<img>", { "src" : "./img/pin-icon.png", "style" : "width:16px; height:16px;"}))
-										.append($("<span>", { "id" : "num-pins" }).append(this._mainController.inspector.inspectedSamples.length))
-									);
-		
-		var $toggleButton = $("<li>")
-				.append($("<a>", { "href" : "javascript:mainController.sideMenu.hideSideMenu();" })
-					.append($("<span>", { "class" : "glyphicon glyphicon-resize-horizontal" }))
-				);
-		
-		var dropDownSearch = "";
-		var searchDomains = profile.getSearchDomains();
-		
-		var searchFunction = function() {
-			var searchText = $("#search").val();
-			var searchDomain = $("#prefix-selected-search-domain").attr("selected-name");
-			var searchDomainLabel = $("#prefix-selected-search-domain").attr("selected-label");
-			if(!searchDomain) {
-				searchDomain = profile.getSearchDomains()[0].name;
-				searchDomainLabel = profile.getSearchDomains()[0].label;
-			}
-			
-			var argsMap = {
-					"searchText" : searchText,
-					"searchDomain" : searchDomain,
-					"searchDomainLabel" : searchDomainLabel
-			}
-			var argsMapStr = JSON.stringify(argsMap);
-			
-			mainController.changeView("showSearchPage", argsMapStr);
-		}
-		
-		if(searchDomains.length > 1) {
-			//Default Selected for the prefix
-			var defaultSelected = "";
-			if(searchDomains[0].label.length > 3) {
-				defaultSelected = searchDomains[0].label.substring(0, 2) + ".";
-			} else {
-				defaultSelected = searchDomains[0].label.label;
-			}
-			
-			//Prefix function
-			var selectedFunction = function(selectedSearchDomain) {
-				return function() {
-					var $component = $("#prefix-selected-search-domain");
-					$component.empty();
-					if(selectedSearchDomain.label.length > 3) {
-						$component.append(selectedSearchDomain.label.substring(0, 2) + ".");
-					} else {
-						$component.append(selectedSearchDomain.label);
-					}
-					$component.attr('selected-name', selectedSearchDomain.name);
-					$component.attr('selected-label', selectedSearchDomain.label);
-				};
-			}
-			
-			//Dropdown elements
-			var dropDownComponents = [];
-			for(var i = 0; i < searchDomains.length; i++) {
-				dropDownComponents.push({
-					href : selectedFunction(searchDomains[i]),
-					title : searchDomains[i].label,
-					id : searchDomains[i].name
-				});
-			}
-			
-			dropDownSearch = FormUtil.getDropDownToogleWithSelectedFeedback(
-					$('<span>', { id : 'prefix-selected-search-domain', class : 'btn btn-default disabled', 'selected-name' :  searchDomains[0].name }
-					).append(defaultSelected),dropDownComponents, true, searchFunction);
-			dropDownSearch.change();
-		}
-		
-		
-		var searchElement = $("<input>", { "id" : "search", "type" : "text", "class" : "form-control search-query", "placeholder" : "Search"});
-		searchElement.keyup(searchFunction);
-		
-		var $searchForm = $("<li>")
-						.append($("<form>", { "class" : "navbar-form", "onsubmit" : "return false;"})
-									.append(searchElement)
-									.append('&nbsp;')
-									.append(dropDownSearch)
-								);
-		
-		var logoutButton = $("<a>", { "id" : "logout-button", "href" : "" }).append($("<span>", { "class" : "glyphicon glyphicon-off"}));
-		logoutButton.click(function() { 
-			$('body').addClass('bodyLogin');
-			_this._serverFacade.logout(function(data) { 
-				$("#login-form-div").show();
-				$("#main").hide();
-			});
-		});
-		var $logoutButton = $("<li>").append(logoutButton);
-		
-		$headerItemList.append($logoutButton);
-		$headerItemList.append($pinButton);
-		$headerItemList.append($toggleButton);
-		$headerItemList.append($searchForm);
-		
-		var $body = $("<div>", { "id" : "sideMenuBody"});
-			$widget
-				.append($header)
-				.append($body);
-		
-		var $title = $("<div>", { "class" : "sideMenuTitle" });
-			$header
-				.append($title);
-		
-		$container.empty();
-		$container.append($widget);
-			
-		//
-		// Print Menu
-		//
-		this._menuDOMTitle = $title;
-		this._menuDOMBody = $body;
-		this.repaint();
-	}
-	
-	this.repaint = function() {
-		var _this = this;
-		var menuToPaint = this._pointerToMenuNode;
-		
-		//
-		// Title
-		//
-		
-		// Fix for long names
-		var cutDisplayNameAtLength = 15;
-		var titleShowTooltip = (menuToPaint.code + " " + menuToPaint.contextTitle).length > cutDisplayNameAtLength;
-		if(titleShowTooltip) {
-			var titleDisplayName = (menuToPaint.code + " " + menuToPaint.contextTitle).substring(0, cutDisplayNameAtLength) + "...";
-		} else {
-			var titleDisplayName = (menuToPaint.code + " " + menuToPaint.contextTitle);
-		}
-		//
-		
-		this._menuDOMTitle.empty();
-		var isBackButtonShown = menuToPaint.parent !== null;
-		if(isBackButtonShown) {
-			var backButton = $("<a>", { "id" : "back-button", "href" : "javascript:void(0);", "style" : "float:left; color:black; padding-left:10px;" }).append($("<span>", { "class" : "glyphicon glyphicon-arrow-left"}));
-			var backButtonClick = function(menuItem) {
-				return function() {
-						var parent = menuItem.parent;
-						_this._pointerToMenuNode = parent;
-						_this.repaint();
-						
-						if(parent.newViewIfSelected !== null) {
-							_this._mainController.changeView(parent.newViewIfSelected, parent.newViewIfSelectedData);
-						}
-				}
-			};
-			backButton.click(backButtonClick(menuToPaint));
-			this._menuDOMTitle.append(backButton);
-		}
-		
-		var $titleAsTextOrLink = null;
-		if(menuToPaint.newViewIfSelected && menuToPaint.newViewIfSelected != "showBlancPage") {
-			$titleAsTextOrLink = $("<a>", { "href" : "javascript:void(0);" }).append(titleDisplayName)
-			
-			var clickFunction = function(menuToPaint) {
-				return function() {
-					_this._mainController.changeView(menuToPaint.newViewIfSelected, menuToPaint.newViewIfSelectedData);
-				}
-			};
-			
-			$titleAsTextOrLink.click(clickFunction(menuToPaint));
-		} else {
-			$titleAsTextOrLink = $("<span>").text(titleDisplayName);
-		}
-		
-		if(titleShowTooltip) {
-			$titleAsTextOrLink.attr("title", menuToPaint.code + " " + menuToPaint.contextTitle);
-			$titleAsTextOrLink.tooltipster();
-		}
-		
-		var $mainTitle = $("<span>").append($titleAsTextOrLink);
-		
-		if(isBackButtonShown) {
-			$mainTitle.css({
-				"margin-left" : "-24px"
-			});
-		}
-		
-		this._menuDOMTitle.append($mainTitle);
-		
-		
-		//
-		// Body
-		//
-		this._menuDOMBody.empty();
-		for(var mIdx = 0; mIdx < menuToPaint.newMenuIfSelected.children.length; mIdx++ ) {
-			var menuItem = menuToPaint.newMenuIfSelected.children[mIdx];
-			
-			
-			var $menuItem = $("<div>", { "class" : "sideMenuItem" });
-			
-			var menuItemDisplayName = menuItem.displayName;
-			if(!menuItemDisplayName) {
-				menuItemDisplayName = menuItem.code;
-			}
-			
-			//
-			var itemShowTooltip = menuItemDisplayName > cutDisplayNameAtLength;
-			if(itemShowTooltip) {
-				var itemDisplayName = menuItemDisplayName.substring(0, cutDisplayNameAtLength) + "...";
-			} else {
-				var itemDisplayName = menuItemDisplayName;
-			}
-			//
-			
-			var $menuItemTitle = $("<span>").append(itemDisplayName);
-			
-			if(itemShowTooltip) {
-				$menuItem.attr("title", menuItemDisplayName);
-				$menuItem.tooltipster();
-			}
-			
-			$menuItem.append($menuItemTitle);
-			
-			if(menuItem.isTitle) {
-				$menuItem.addClass("sideMenuItemTitle");
-			}
-			
-			if(menuItem.isSelectable) {
-				$menuItem.addClass("sideMenuItemSelectable");
-				if(menuItem.newMenuIfSelected && menuItem.newMenuIfSelected.children.length > 0) {
-					$menuItem.append("<span class='glyphicon glyphicon-chevron-right put-chevron-right'></span>");
-				}
-				
-				var clickFunction = function(menuItem) {
-					return function() {
-						if(menuItem.newMenuIfSelected && menuItem.newMenuIfSelected.children.length > 0) {
-							_this._pointerToMenuNode = menuItem;
-							_this.repaint();
-						}
-						
-						if(menuItem.newViewIfSelected !== null) {
-							_this._mainController.changeView(menuItem.newViewIfSelected, menuItem.newViewIfSelectedData);
-						}
-					}
-				};
-				
-				$menuItem.click(clickFunction(menuItem));
-			}
-			
-			this._menuDOMBody.append($menuItem);
-		}
-		
-		$(window).resize();
-	}
-	
-}
-
-function SideMenuWidgetComponent(isSelectable, isTitle, displayName, code, parent, newMenuIfSelected, newViewIfSelected, newViewIfSelectedData, contextTitle) {
-	this.isSelectable = isSelectable;
-	this.isTitle = isTitle;
-	this.displayName = displayName;
-	this.code = code;
-	this.contextTitle = contextTitle;
-	this.parent = parent;
-	this.newMenuIfSelected = newMenuIfSelected;
-	this.newViewIfSelected = newViewIfSelected;
-	this.newViewIfSelectedData = newViewIfSelectedData;
-}
\ No newline at end of file