diff --git a/core/js/oc-dialogs.js b/core/js/oc-dialogs.js
index 43b698df68fe34af1a13bb7c63c3346fe8795f20..074d3656f98139102021b9301bcbdc1f2550b064 100644
--- a/core/js/oc-dialogs.js
+++ b/core/js/oc-dialogs.js
@@ -23,6 +23,11 @@
  * this class to ease the usage of jquery dialogs
  */
 var OCdialogs = {
+	// dialog button types
+	YES_NO_BUTTONS:		70,
+	OK_BUTTONS:		71,
+	// used to name each dialog
+	dialogs_counter: 0,
 	/**
 	* displays alert dialog
 	* @param text content of dialog
@@ -31,7 +36,7 @@ var OCdialogs = {
 	* @param modal make the dialog modal
 	*/
 	alert:function(text, title, callback, modal) {
-		OCdialogs.message(text, title, 'alert', OCdialogs.OK_BUTTON, callback, modal);
+		this.message(text, title, 'alert', OCdialogs.OK_BUTTON, callback, modal);
 	},
 	/**
 	* displays info dialog
@@ -41,7 +46,7 @@ var OCdialogs = {
 	* @param modal make the dialog modal
 	*/
 	info:function(text, title, callback, modal) {
-		OCdialogs.message(text, title, 'info', OCdialogs.OK_BUTTON, callback, modal);
+		this.message(text, title, 'info', OCdialogs.OK_BUTTON, callback, modal);
 	},
 	/**
 	* displays confirmation dialog
@@ -51,81 +56,7 @@ var OCdialogs = {
 	* @param modal make the dialog modal
 	*/
 	confirm:function(text, title, callback, modal) {
-		OCdialogs.message(text, title, 'notice', OCdialogs.YES_NO_BUTTONS, callback, modal);
-	},
-	/**
-	* prompt for user input
-	* @param text content of dialog
-	* @param title dialog title
-	* @param callback which will be triggered when user presses OK (input text will be passed to callback)
-	* @param modal make the dialog modal
-	*/
-	prompt:function(text, title, default_value, callback, modal) {
-		var input = '<input type="text" id="oc-dialog-prompt-input" value="' + escapeHTML(default_value) + '" style="width:90%">';
-		var content = '<p><span class="ui-icon ui-icon-pencil"></span>' + escapeHTML(text) + ':<br/>' + input + '</p>';
-		OCdialogs.message(content, title, 'prompt', OCdialogs.OK_BUTTON, callback, modal);
-	},
-	/**
-	* prompt user for input with custom form
-	* fields should be passed in following format: [{text:'prompt text', name:'return name', type:'input type', value: 'default value'},...]
-	* example:
-	* var fields=[{text:'Test', name:'test', type:'select', options:[{text:'hello1',value:1},{text:'hello2',value:2}] }];
-	* @param fields to display 
-	* @param title dialog title
-	* @param callback which will be triggered when user presses OK (user answers will be passed to callback in following format: [{name:'return name', value: 'user value'},...])
-	* @param modal make the dialog modal
-	*/
-	form:function(fields, title, callback, modal) {
-		var content = '<table>';
-		$.each(fields, function(index, field){
-			content += '<tr><td>' + escapeHTML(field.text) + '</td><td>';
-			var type = field.type;
-			
-			if (type === 'text' || type === 'checkbox' || type === 'password') {
-				content += '<input type="' + type + '" name="' + field.name + '"';
-				if (type === 'checkbox' && field.value === true) {
-					content += ' checked="checked"';
-				} else if (type === 'text' || type === 'password' && val.value) {
-					content += ' value="' + escapeHTML(field.value) + '"';
-				}
-				content += '>';
-			} else if (type === 'select') {
-				content += '<select name="' + escapeHTML(field.name) + '"';
-				if (field.value !== undefined) {
-					content += ' value="' + escapeHTML(field.value) + '"';
-				}
-				content += '>';
-				$.each(field.options, function(index, field_option){
-					content += '<option value="' + escapeHTML(field_option.value) + '">' + escapeHTML(field_option.text) + '</option>';
-				});
-				content += '</select>';
-			}
-			content += '</td></tr>';
-
-		});
-		content += '</table>';
-
-		var dialog_name = 'oc-dialog-' + OCdialogs.dialogs_counter + '-content';
-		var dialog_id = '#' + dialog_name;
-		var dialog_div = '<div id="' + dialog_name + '" title="' + escapeHTML(title) + '">' + content + '</div>';
-		if (modal === undefined) { modal = false };
-		$('body').append(dialog_div);
-		var buttonlist = [{
-			text: t('core', 'Ok'),
-			click: function(){ OCdialogs.form_ok_handler(callback, dialog_id); }
-		},
-		{
-			text: t('core', 'Cancel'),
-			click: function(){ $(dialog_id).dialog('close'); }
-		}];
-		var dialog_height = ( $('tr', dialog_div).length + 1 ) * 30 + 120;
-		$(dialog_id).dialog({
-			width: (4/9) * $(document).width(),
-			height: dialog_height,
-			modal: modal,
-			buttons: buttonlist
-		});
-		OCdialogs.dialogs_counter++;
+		this.message(text, title, 'notice', OCdialogs.YES_NO_BUTTONS, callback, modal);
 	},
 	_getFilePickerTemplate: function() {
 		var defer = $.Deferred();
@@ -231,6 +162,7 @@ var OCdialogs = {
 			}];
 
 			self.$filePicker.dialog({
+				closeOnEscape: true,
 				width: (4/9)*$(document).width(),
 				height: 420,
 				modal: modal,
@@ -304,6 +236,7 @@ var OCdialogs = {
 			};
 
 			$(dialog_id).dialog({
+				closeOnEscape: true,
 				modal: modal,
 				buttons: buttonlist
 			});
@@ -313,12 +246,6 @@ var OCdialogs = {
 			alert(t('core', 'Error loading file picker template'));
 		});
 	},
-	// dialog button types
-	YES_NO_BUTTONS:		70,
-	OK_BUTTONS:		71,
-	// used to name each dialog
-	dialogs_counter: 0,
-
 	determineValue: function(element) {
 		if ( $(element).attr('type') === 'checkbox' ) {
 			return element.checked;
@@ -362,7 +289,7 @@ var OCdialogs = {
 				}
 			});
 
-			self.fillTreeList();
+			self.fillSlug();
 			var sorted = dirs.concat(others);
 
 			$.each(sorted, function(idx, entry) {
@@ -382,27 +309,25 @@ var OCdialogs = {
 	/**
 	 * fills the tree list with directories
 	*/
-	fillTreeList: function() {
+	fillSlug: function() {
 		this.$dirTree.empty();
 		var self = this
 		var path = this.$filePicker.data('path');
-		if(!path) {
-			return;
-		}
 		var $template = $('<span data-dir="{dir}">{name}</span>');
-		var paths = path.split('/');
-		//paths.pop();
-		$.each(paths, function(index, dir) {
-			var dir = paths.pop();
-			if(dir === '') {
-				return false;
-			}
-			self.$dirTree.prepend($template.octemplate({
-				dir: paths.join('/') + '/' + dir,
-				name: dir
-			}));
-		});
-		self.$dirTree.prepend($template.octemplate({
+		if(path) {
+			var paths = path.split('/');
+			$.each(paths, function(index, dir) {
+				var dir = paths.pop();
+				if(dir === '') {
+					return false;
+				}
+				self.$dirTree.prepend($template.octemplate({
+					dir: paths.join('/') + '/' + dir,
+					name: dir
+				}));
+			});
+		}
+		this.$dirTree.prepend($template.octemplate({
 			dir: '',
 			name: '/'
 		}));