diff --git a/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/controllers/MainController.js b/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/controllers/MainController.js
index 7a358b1e5421997f688996adfed4f47e9fd87e82..28c04e0afbb283295a102ffd31e3ecf8e4141c0c 100644
--- a/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/controllers/MainController.js
+++ b/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/controllers/MainController.js
@@ -483,11 +483,23 @@ function MainController(profile) {
 						if(!dataSetData.result || !dataSetData.result[0]) {
 							window.alert("The item is no longer available, refresh the page, if the problem persists tell your admin that the Lucene index is probably corrupted.");
 						} else {
-							_this.serverFacade.searchWithIdentifiers([dataSetData.result[0].sampleIdentifierOrNull], function(sampleData) {
-								document.title = "Data Set " + dataSetData.result[0].code;
-								_this._showEditDataSetPage(sampleData[0], dataSetData.result[0]);
-								//window.scrollTo(0,0);
-							});
+							if(dataSetData.result[0].sampleIdentifierOrNull) {
+								_this.serverFacade.searchWithIdentifiers([dataSetData.result[0].sampleIdentifierOrNull], function(sampleData) {
+									document.title = "Data Set " + dataSetData.result[0].code;
+									_this._showEditDataSetPage(sampleData[0], dataSetData.result[0]);
+									//window.scrollTo(0,0);
+								});
+							} else if(dataSetData.result[0].experimentIdentifier) {
+								_this.serverFacade.listExperimentsForIdentifiers([dataSetData.result[0].experimentIdentifier], function(experimentResults) {
+									var experimentRules = { "UUIDv4" : { type : "Attribute", name : "PERM_ID", value : experimentResults.result[0].permId } };
+									var experimentCriteria = { entityKind : "EXPERIMENT", logicalOperator : "AND", rules : experimentRules };
+									_this.serverFacade.searchForExperimentsAdvanced(experimentCriteria, null, function(experimentData) {
+										document.title = "Data Set " + dataSetData.result[0].code;
+										_this._showEditDataSetPage(experimentData.objects[0], dataSetData.result[0]);
+										//window.scrollTo(0,0);
+									});
+								});
+							}
 						}
 					});
 					break;
@@ -795,24 +807,24 @@ function MainController(profile) {
 	this._showCreateDataSetPage = function(entity) {
 		//Show Form
 		var newView = new DataSetFormController(this, FormMode.CREATE, entity, null);
-		var content = this._getBackwardsCompatibleMainContainer();
-		newView.init(content);
+		var views = this._getNewViewModel(true, true, false);
+		newView.init(views);
 		this.currentView = newView;
 	}
 	
 	this._showViewDataSetPage = function(sample, dataset) {
 		//Show Form
 		var newView = new DataSetFormController(this, FormMode.VIEW, sample, dataset);
-		var content = this._getBackwardsCompatibleMainContainer();
-		newView.init(content);
+		var views = this._getNewViewModel(true, true, false);
+		newView.init(views);
 		this.currentView = newView;
 	}
 	
 	this._showEditDataSetPage = function(sample, dataset) {
 		//Show Form
 		var newView = new DataSetFormController(this, FormMode.EDIT, sample, dataset);
-		var content = this._getBackwardsCompatibleMainContainer();
-		newView.init(content);
+		var views = this._getNewViewModel(true, true, false);
+		newView.init(views);
 		this.currentView = newView;
 	}
 	
diff --git a/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/DataSetForm/DataSetFormController.js b/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/DataSetForm/DataSetFormController.js
index af79dff9a9a76fc79b11fbb06d25762d7984f38f..f26288cdb381460da7d8129862e7b2324b617ea3 100644
--- a/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/DataSetForm/DataSetFormController.js
+++ b/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/DataSetForm/DataSetFormController.js
@@ -19,14 +19,14 @@ function DataSetFormController(parentController, mode, entity, dataSet, isMini)
 	this._dataSetFormModel = new DataSetFormModel(mode, entity, dataSet, isMini);
 	this._dataSetFormView = new DataSetFormView(this, this._dataSetFormModel);
 	
-	this.init = function($container) {
+	this.init = function(views) {
 		var _this = this;
 		mainController.serverFacade.listDataSetTypes(
 				function(data) {
 					_this._dataSetFormModel.dataSetTypes = data.result;
 					mainController.serverFacade.getSetting("DataSetFormModel.isAutoUpload", function(value) {
 						_this._dataSetFormModel.isAutoUpload = (value === "true");
-						_this._dataSetFormView.repaint($container);
+						_this._dataSetFormView.repaint(views);
 					});
 				}
 		);
@@ -206,7 +206,6 @@ function DataSetFormController(parentController, mode, entity, dataSet, isMini)
 							if(!isInventory) {
 								mainController.sideMenu.refreshCurrentNode();
 							}
-							
 						} else if(_this._dataSetFormModel.mode === FormMode.EDIT) {
 							Util.showSuccess("DataSet Updated.", callbackOk);
 							if(!isInventory) {
diff --git a/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/DataSetForm/DataSetFormView.js b/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/DataSetForm/DataSetFormView.js
index 3fcd2caeec8ef01bfdfa90a6aff3fd0e540cb17f..ef5522f6a87b5ba3dd201fb608b59415f39dff30 100644
--- a/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/DataSetForm/DataSetFormView.js
+++ b/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/DataSetForm/DataSetFormView.js
@@ -18,9 +18,9 @@ function DataSetFormView(dataSetFormController, dataSetFormModel) {
 	this._dataSetFormController = dataSetFormController;
 	this._dataSetFormModel = dataSetFormModel;
 	
-	this.repaint = function($container) {
+	this.repaint = function(views) {
+		var $container = views.content;
 		var _this = this;
-		$container.empty();
 		
 		//Clean and prepare container
 		var $wrapper = $('<form>', { class : 'form-horizontal', 'id' : 'mainDataSetForm', 'role' : 'form'});
@@ -61,22 +61,16 @@ function DataSetFormView(dataSetFormController, dataSetFormModel) {
 			.append($("<h2>").append(titleText))
 			.append($("<h4>", { "style" : "font-weight:normal;" } ).append(entityPath));
 		
-		if(!this._dataSetFormModel.isMini) {
-			$wrapper.append($title);
-		}
-		
 		//
 		// Toolbar
 		//
 		var toolbarModel = [];
-		if(this._dataSetFormModel.mode !== FormMode.CREATE) {
+		if(this._dataSetFormModel.mode === FormMode.VIEW && !this._dataSetFormModel.isMini) {
 			//Edit Button
-			if(this._dataSetFormModel.mode === FormMode.VIEW) {
-				var $editBtn = FormUtil.getButtonWithIcon("glyphicon-edit", function () {
-					mainController.changeView('showEditDataSetPageFromPermId', _this._dataSetFormModel.dataSet.code);
-				});
-				toolbarModel.push({ component : $editBtn, tooltip: "Edit" });
-			}
+			var $editBtn = FormUtil.getButtonWithIcon("glyphicon-edit", function () {
+				mainController.changeView('showEditDataSetPageFromPermId', _this._dataSetFormModel.dataSet.code);
+			});
+			toolbarModel.push({ component : $editBtn, tooltip: "Edit" });
 			
 			//Delete Button
 			var $deleteBtn = FormUtil.getDeleteButton(function(reason) {
@@ -97,10 +91,19 @@ function DataSetFormView(dataSetFormController, dataSetFormModel) {
 				});
 			});
 			toolbarModel.push({ component : $export, tooltip: "Export" });
+		} else if(!this._dataSetFormModel.isMini) {
+			var $saveBtn = FormUtil.getButtonWithIcon("glyphicon-floppy-disk", function() {
+				_this._dataSetFormController.submitDataSet();
+			}, "Save");
+			$saveBtn.removeClass("btn-default");
+			$saveBtn.addClass("btn-primary");
+			toolbarModel.push({ component : $saveBtn, tooltip: "Save" });
 		}
 		
 		if(!this._dataSetFormModel.isMini) {
-			$wrapper.append(FormUtil.getToolbar(toolbarModel));
+			var $header = views.header;
+			$header.append($title);
+			$header.append(FormUtil.getToolbar(toolbarModel));
 		}
 		
 		//Drop Down DataSetType Field Set
@@ -193,21 +196,21 @@ function DataSetFormView(dataSetFormController, dataSetFormModel) {
 		
 		//Submit Button
 		if(this._dataSetFormModel.mode !== FormMode.VIEW) {
-			var btnText = "";
-			if(this._dataSetFormModel.mode === FormMode.CREATE) {
-				btnText = 'Create';
-			} else if(this._dataSetFormModel.mode === FormMode.EDIT) {
-				btnText = 'Update';
-			}
-			
-			var $submitButton = $('<fieldset>')
-			.append($('<div>', { class : "form-group"}))
-			.append($('<div>', {class: FormUtil.controlColumnClass})
-						.append($('<input>', { class : 'btn btn-primary', 'type' : 'submit', 'value' : btnText})));
-			
-			
-			$wrapper.append($submitButton);
-			if(_this._dataSetFormModel.isMini){
+			if(_this._dataSetFormModel.isMini) {
+				var btnText = "";
+				if(this._dataSetFormModel.mode === FormMode.CREATE) {
+					btnText = 'Create';
+				} else if(this._dataSetFormModel.mode === FormMode.EDIT) {
+					btnText = 'Update';
+				}
+				
+				var $submitButton = $('<fieldset>')
+				.append($('<div>', { class : "form-group"}))
+				.append($('<div>', {class: FormUtil.controlColumnClass})
+							.append($('<input>', { class : 'btn btn-primary', 'type' : 'submit', 'value' : btnText})));
+				
+				$wrapper.append($submitButton);
+				
 				var $autoUploadCheck = FormUtil._getBooleanField(null, 'Auto upload on drop');
 					$($autoUploadCheck.children()[0]).children()[0].checked = _this._dataSetFormModel.isAutoUpload;
 				
@@ -226,8 +229,6 @@ function DataSetFormView(dataSetFormController, dataSetFormModel) {
 				
 				$wrapper.append($('<fieldset>').append($autoUploadGroup));
 			}
-			
-			
 		}
 		
 		//Attach to main form
diff --git a/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/ExperimentForm/ExperimentFormView.js b/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/ExperimentForm/ExperimentFormView.js
index 1ebad6adcf85992551690cef70e32c8ecb6aebfc..33df8475291a3b61f8f97006ff8ef42c2565c0e7 100644
--- a/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/ExperimentForm/ExperimentFormView.js
+++ b/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/ExperimentForm/ExperimentFormView.js
@@ -221,7 +221,10 @@ function ExperimentFormView(experimentFormController, experimentFormModel) {
 				if(_this._experimentFormModel.mode === FormMode.VIEW) {
 					// Uploader
 					var $dataSetFormController = new DataSetFormController(_this, FormMode.CREATE, data.objects[0], null, true);
-					$dataSetFormController.init($dataSetUploaderContainer);
+					var viewsForDS = {
+							content : $dataSetUploaderContainer
+					}
+					$dataSetFormController.init(viewsForDS);
 				}
 			});
 		}
diff --git a/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/SampleForm/SampleFormView.js b/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/SampleForm/SampleFormView.js
index e14d485a7fbaed796ed2cb8c41f273655c93e041..d84160f04790f158bb49921a423879f72cb473f0 100644
--- a/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/SampleForm/SampleFormView.js
+++ b/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/SampleForm/SampleFormView.js
@@ -435,7 +435,10 @@ function SampleFormView(sampleFormController, sampleFormModel) {
 				$formColumn.append($inlineDataSetForm);
 			}
 			var $dataSetFormController = new DataSetFormController(this, FormMode.CREATE, this._sampleFormModel.sample, null, true);
-			$dataSetFormController.init($inlineDataSetForm);
+			var viewsForDS = {
+					content : $inlineDataSetForm
+			}
+			$dataSetFormController.init(viewsForDS);
 		}
 		
 		//