diff --git a/microservice-server/.gitignore b/microservice-server/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..83ccc54d0286590d31587a71aaa789e780bff41e
--- /dev/null
+++ b/microservice-server/.gitignore
@@ -0,0 +1,2 @@
+/build/
+/bin/
diff --git a/openbis_all/.classpath b/openbis_all/.classpath
index 9f77be8baa83b7ba35b556d892bc01b5b510518e..15962baa40484c19d969ea962312e87681af7231 100644
--- a/openbis_all/.classpath
+++ b/openbis_all/.classpath
@@ -2,6 +2,5 @@
 <classpath>
 	<classpathentry kind="src" path="source/java"/>
 	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
-	<classpathentry exported="true" kind="lib" path="/libraries/cisd-base/cisd-base.jar" sourcepath="/libraries/cisd-base/cisd-base-src.zip"/>
 	<classpathentry kind="output" path="targets/classes"/>
 </classpath>
diff --git a/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/controllers/LayoutManager.js b/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/controllers/LayoutManager.js
index 05d1b2ffde6f8914530bf72bffd8cec96f1d0210..82931cea01b09baac4c6f2271134ac583c67e8e0 100644
--- a/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/controllers/LayoutManager.js
+++ b/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/controllers/LayoutManager.js
@@ -23,6 +23,7 @@ var LayoutManager = {
 	thirdColumn : null,
 	isResizingColumn : false,
 	isLoadingView : false,
+	isBlocked : false,
 	_init : function(isFirstTime) {
 		var _this = this;
 		
@@ -338,7 +339,7 @@ var LayoutManager = {
 		}
 	},
 	canReload : function() {
-		return this.isResizingColumn === false && this.isLoadingView === false;
+		return this.isBlocked == false && this.isResizingColumn === false && this.isLoadingView === false && this.firstColumn.width() > 0;
 	},
 	reloadView : function(view, forceFirstTime) {
 		var _this = this;
@@ -373,6 +374,7 @@ var LayoutManager = {
 		this.secondColumnContentResize();
 	},
 	resize : function(view, forceFirstTime) {
+		console.log("resize");
 		if(this.canReload()) {
 			this.reloadView(view, forceFirstTime);
 		}
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 fde937da3dd5a0e0078b9366521100e35b4f488b..52b19dfd27baa3f7e95ad909904fd399cd4418f7 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
@@ -258,6 +258,7 @@ function MainController(profile) {
 		this._changeView(newViewChange, arg, true, shouldStateBePushToHistory);
 	}
 	this._changeView = function(newViewChange, arg, shouldURLBePushToHistory, shouldStateBePushToHistory) {
+		LayoutManager.isBlocked = false;
 		//
 		// Dirty forms management, to avoid loosing changes.
 		//
@@ -463,6 +464,7 @@ function MainController(profile) {
 					});
 					break;
 				case "showEditExperimentPageFromIdentifier":
+					LayoutManager.isBlocked = true; // CKEDITOR owns hooks and variables that will break if the layout manager does its magic
 					var _this = this;
 					this.serverFacade.listExperimentsForIdentifiers([arg], function(data) {
 						document.title = "" + ELNDictionary.getExperimentKindName(arg) + " " + arg;
@@ -495,6 +497,7 @@ function MainController(profile) {
 					//window.scrollTo(0,0);
 					break;
 				case "showEditSamplePageFromPermId":
+					LayoutManager.isBlocked = true; // CKEDITOR owns hooks and variables that will break if the layout manager does its magic
 					var _this = this;
 					var permId = null;
 					var paginationInfo = null;
@@ -614,6 +617,7 @@ function MainController(profile) {
 					});
 					break;
 				case "showEditDataSetPageFromPermId":
+					LayoutManager.isBlocked = true; // CKEDITOR owns hooks and variables that will break if the layout manager does its magic
 					var _this = this;
 					var dsCriteria = { 	
 							entityKind : "DATASET", 
diff --git a/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/SampleForm/widgets/StorageListView.js b/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/SampleForm/widgets/StorageListView.js
index 31e87a7fb99880d577d9f79be08f7ef72311e154..523739c7d6546d52a7cf8aa3d7ff000185983d8f 100644
--- a/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/SampleForm/widgets/StorageListView.js
+++ b/openbis_standard_technologies/dist/core-plugins/eln-lims/1/as/webapps/eln-lims/html/js/views/SampleForm/widgets/StorageListView.js
@@ -142,11 +142,24 @@ function StorageListView(storageListController, storageListModel) {
 				_this.showStorageWidget(data.data['$object'])
 			}
 		}
-		
-		this._dataGrid = new DataGridController(null, columns, [], null, getDataList, rowClick, false, "STORAGE_WIDGET");
-		
+
+		// multi-select delete option
+		let isMultiselectable = false;
+		var extraOptions = [];
+		if(!this._storageListModel.isDisabled) {
+			isMultiselectable = true;
+			extraOptions.push({ name : "Delete selected", action : function(selected) {
+				for (let i=0; i<selected.length; i++) {
+					_this.removeChildFromSampleOrMarkToDelete(selected[i]);
+				}
+				_this._dataGrid.refresh();
+			}});
+		}
+
+		this._dataGrid = new DataGridController(null, columns, [], null, getDataList, rowClick, false, "STORAGE_WIDGET", isMultiselectable);
+
 		var $dataGridContainer = $("<div>");
-		this._dataGrid.init($dataGridContainer);
+		this._dataGrid.init($dataGridContainer, extraOptions);
 		$container.append($dataGridContainer);
 		
 		var $storageAddButton = $("<a>", { class : 'btn btn-default', style : "float: right; background-color:#f9f9f9;" }).append($("<i>", { class : "glyphicon glyphicon-plus" } ));
@@ -280,4 +293,4 @@ function StorageListView(storageListController, storageListModel) {
 		}
 	}
 	
-}
\ No newline at end of file
+}