From a7796bec1be01b51f400e9a3a698535b12b636aa Mon Sep 17 00:00:00 2001
From: Marius Burkard <m.burkard@pixcept.de>
Date: Thu, 11 Feb 2016 13:44:27 -0500
Subject: [PATCH] Merge branch 'stable-3.1'

---
 interface/web/themes/default/assets/javascripts/ispconfig.js |   48 ++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 44 insertions(+), 4 deletions(-)

diff --git a/interface/web/themes/default/assets/javascripts/ispconfig.js b/interface/web/themes/default/assets/javascripts/ispconfig.js
index 3c72f84..b9ebee4 100644
--- a/interface/web/themes/default/assets/javascripts/ispconfig.js
+++ b/interface/web/themes/default/assets/javascripts/ispconfig.js
@@ -237,29 +237,38 @@
 			} catch(e) {
 				response = responseStr;
 			}
+			var $response = $('<div></div>').html(response);
 			var msg = '';
-			var okmsg = $('#OKMsg',response).html();
+			var okmsg = $response.find('#OKMsg').html();
 			if(okmsg){
 				msg = '<div id="OKMsg">'+okmsg+'</div>';
 			}
-			var errormsg = $('#errorMsg',response).html();
+			var errormsg = $response.find('#errorMsg').html();
 			if(errormsg){
 				msg = msg+'<div id="errorMsg">'+errormsg+'</div>';
 			}
+			
+			var csrf_key = $response.find('input[name="_csrf_key"]').val();
+			var csrf_id = $response.find('input[name="_csrf_id"]').val();
+			
+			msg = msg + '<input type="hidden" name="_csrf_id" value="' + csrf_id + '" /><input type="hidden" name="_csrf_key" value="' + csrf_key + '" />';
+			
 			return msg;
 
 		};
 
 		var frame_id = 'ajaxUploader-iframe-' + Math.round(new Date().getTime() / 1000);
-		$('body').after('<iframe width="0" height="0" style="display:none;" name="'+frame_id+'" id="'+frame_id+'"/>');
-		$('input[type="file"]').closest("form").attr({target: frame_id, action: target}).submit();
+		$('body').append('<iframe width="0" height="0" style="display:none;" name="'+frame_id+'" id="'+frame_id+'"/>');
 		$('#'+frame_id).load(function() {
 			var msg = handleResponse(this);
 			$('#errorMsg').remove();
 			$('#OKMsg').remove();
+			$('input[name="_csrf_key"]').remove();
+			$('input[name="_csrf_id"]').remove();
 			$('input[name="id"]').before(msg);
 			$(this).remove();
 		  });
+		$('input[type="file"]').closest("form").attr({target: frame_id, action: target}).submit();
 	},
 
 	capp: function(module, redirect) {
@@ -738,4 +747,35 @@
 			e.preventDefault();
 		}
 	});
+	
+	$.fn.setCursorPosition = function(pos) {
+		var self = $(this).get(0);
+		if(self.setSelectionRange) {
+			self.setSelectionRange(pos, pos);
+		} else if(self.createTextRange) {
+			var range = self.createTextRange();
+			range.collapse(true);
+			if(pos < 0) {
+				pos = $(this).val().length + pos;
+			}
+			range.moveEnd('character', pos);
+			range.moveStart('character', pos);
+			range.select();
+		}
+	};
+	
+	$.fn.getCursorPosition = function() {
+		var iCaretPos = 0;
+		var self = $(this).get(0);
+		
+		if(typeof self.selectionStart === 'number') {
+			iCaretPos = self.selectionDirection == 'backward' ? self.selectionStart : self.selectionEnd;
+		} else if(document.selection) {
+			this.focus();
+			var oSel = document.selection.createRange();
+			oSel.moveStart('character', -self.value.length);
+			iCaretPos = oSel.text.length;
+		}
+		return iCaretPos;
+	};
 });

--
Gitblit v1.9.1