From d370bbc3d3550bb5c6015215c9af48a812e240e9 Mon Sep 17 00:00:00 2001
From: tbrehm <t.brehm@ispconfig.org>
Date: Fri, 08 Jun 2012 05:43:10 -0400
Subject: [PATCH] Implemented: FS#2280 - Extend the tform library to apply filters on form values

---
 interface/web/js/scrigo.js.php |  158 ++++++++++++++++++++++++++++++++++++++++++----------
 1 files changed, 127 insertions(+), 31 deletions(-)

diff --git a/interface/web/js/scrigo.js.php b/interface/web/js/scrigo.js.php
index cda82ac..16301de 100644
--- a/interface/web/js/scrigo.js.php
+++ b/interface/web/js/scrigo.js.php
@@ -33,18 +33,21 @@
   }
 }
 
-function capp(module) {
+function capp(module, redirect) {
 	var submitFormObj = jQuery.ajax({		type: "GET", 
 											url: "capp.php", 
-											data: "mod="+module,
+											data: "mod="+module+((redirect != undefined) ? '&redirect='+redirect : ''),
 											dataType: "html",
 											success: function(data, textStatus, jqXHR) {
 												if(jqXHR.responseText != '') {
 													if(jqXHR.responseText.indexOf('HEADER_REDIRECT:') > -1) {
 														var parts = jqXHR.responseText.split(':');
 														loadContent(parts[1]);
+													} else if (jqXHR.responseText.indexOf('URL_REDIRECT:') > -1) {
+														var newUrl= jqXHR.responseText.substr(jqXHR.responseText.indexOf('URL_REDIRECT:') + "URL_REDIRECT:".length);
+														document.location.href = newUrl;
 													} else {
-														alert(jqXHR.responseText);
+														//alert(jqXHR.responseText);
 													}
 												}
 												loadMenus();
@@ -101,7 +104,7 @@
 	
 }
 
-function submitForm(formname,target) {	
+function submitForm(formname,target) {
 	var submitFormObj = jQuery.ajax({		type: "POST", 
 											url: target,
 											data: jQuery('#'+formname).serialize(),
@@ -130,6 +133,31 @@
 	*/
 }
 
+function submitFormConfirm(formname,target,confirmation) {
+	if(window.confirm(confirmation)) {
+		var submitFormObj = jQuery.ajax({	type: "POST", 
+											url: target,
+											data: jQuery('#'+formname).serialize(),
+											dataType: "html",
+											success: function(data, textStatus, jqXHR) {
+												if(jqXHR.responseText.indexOf('HEADER_REDIRECT:') > -1) {
+													var parts = jqXHR.responseText.split(':');
+													//alert(parts[1]);
+													loadContent(parts[1]);
+													//redirect = parts[1];
+													//window.setTimeout('loadContent(redirect)', 1000);
+												} else {
+													jQuery('#pageContent').html(jqXHR.responseText);
+												}
+											},
+											error: function(jqXHR, textStatus, errorThrown) {
+												var parts = jqXHR.responseText.split(':');
+												reportError('Ajax Request was not successful. 111');
+											},
+									});
+	}
+}
+
 function submitUploadForm(formname,target) {		
 	var handleResponse = function(loadedFrame) {
 		var response, responseStr = loadedFrame.contentWindow.document.body.innerHTML;
@@ -154,15 +182,14 @@
 	
 	var frame_id = 'ajaxUploader-iframe-' + Math.round(new Date().getTime() / 1000);
 	jQuery('body').after('<iframe width="0" height="0" style="display:none;" name="'+frame_id+'" id="'+frame_id+'"/>');
-	var submitFormObj = jQuery('input[type="file"]').closest("form").attr({target: frame_id, action: target}).submit();
+	jQuery('input[type="file"]').closest("form").attr({target: frame_id, action: target}).submit();
 	jQuery('#'+frame_id).load(function() {
         var msg = handleResponse(this);
 		jQuery('#errorMsg').remove();
 		jQuery('#OKMsg').remove();
 		jQuery('input[name="id"]').before(msg);
+		jQuery(this).remove();
       });
-	//jQuery('#'+frame_id).remove();
-	
 
 	/*
 	if(redirect != '') {
@@ -176,6 +203,9 @@
   var pageContentObject2 = jQuery.ajax({	type: "GET", 
 											url: pagename,
 											dataType: "html",
+											beforeSend: function() {
+												jQuery('#pageContent').html('<div id="ajaxloader"><img src="themes/default/images/ajax-loader.gif" /></div>');
+											},
 											success: function(data, textStatus, jqXHR) {
 												if(jqXHR.responseText.indexOf('HEADER_REDIRECT:') > -1) {
 													var parts = jqXHR.responseText.split(':');
@@ -188,9 +218,9 @@
 													//var reponse = jQuery(jqXHR.responseText);
 													//var reponseScript = reponse.filter("script");
 													//jQuery.each(reponseScript, function(idx, val) { eval(val.text); } );
+													
 													jQuery('#pageContent').html(jqXHR.responseText);
 												}
-												
 											},
 											error: function() {
 												reportError('Ajax Request was not successful. 113');
@@ -265,6 +295,12 @@
 }
 	
 function del_record(link,confirmation) {
+  if(window.confirm(confirmation)) {
+          loadContent(link);
+  }
+}
+
+function confirm_action(link,confirmation) {
   if(window.confirm(confirmation)) {
           loadContent(link);
   }
@@ -493,29 +529,89 @@
     return rv;
 }
 
-function loadwebip(elementid,pagename) {
-	var pageContentObject2 = jQuery.ajax({	type: "GET", 
-											url: pagename,
-											dataType: "html",
-											success: function(data, textStatus, jqXHR) {
-												var teste = jqXHR.responseText;
-												var elemente = teste.split('#');
-												el=document.getElementById(elementid);
-												el.innerHTML='';
-												for (var i = 0; i < elemente.length; ++i){
-
-													var foo2 = document.createElement("option");
-													foo2.appendChild(document.createTextNode(elemente[i]));
-													foo2.value=elemente[i];
-													el.appendChild(foo2);
-												}
-											},
-											error: function() {
-												reportError('Ajax Request was not successful. 119');
-											},
-										});
-	var ruby = document.getElementById('ruby');
-	ruby.style.display = 'none'; 
+function password(minLength, special){
+	var iteration = 0;
+	var password = "";
+	var randomNumber;
+	minLength = minLength || 10;
+	var maxLength = minLength + 5;
+	var length = getRandomInt(minLength, maxLength);
+	if(special == undefined){
+		var special = false;
+	}
+	while(iteration < length){
+		randomNumber = (Math.floor((Math.random() * 100)) % 94) + 33;
+		if(!special){
+			if ((randomNumber >=33) && (randomNumber <=47)) { continue; }
+			if ((randomNumber >=58) && (randomNumber <=64)) { continue; }
+			if ((randomNumber >=91) && (randomNumber <=96)) { continue; }
+			if ((randomNumber >=123) && (randomNumber <=126)) { continue; }
+		}
+		iteration++;
+		password += String.fromCharCode(randomNumber);
+	}
+	return password;
 }
 
+function generatePassword(passwordFieldID){
+	var oldPWField = jQuery('#'+passwordFieldID);
+	var newPWField = oldPWField.clone();
+	newPWField.attr('type', 'text').attr('id', 'tmp'+passwordFieldID).insertBefore(oldPWField);
+	oldPWField.remove();
+	newPWField.attr('id', passwordFieldID).val(password(10, false)).trigger('keyup');
+}
+
+function checkPassMatch(pwField1,pwField2){
+    var rpass = jQuery('#'+pwField2).val();
+    var npass = jQuery('#'+pwField1).val();
+    if(npass!= rpass) {
+		jQuery('#confirmpasswordOK').hide();
+        jQuery('#confirmpasswordError').show();
+		jQuery('button.positive').attr('disabled','disabled');
+		jQuery('.tabbox_tabs ul li a').attr('onclick','return false;');
+        return false;
+    } else {
+		jQuery('#confirmpasswordError').hide();
+        jQuery('#confirmpasswordOK').show();
+		jQuery('button.positive').removeAttr('disabled');
+		jQuery('.tabbox_tabs ul li a').removeAttr('onclick');
+    }
+}
+
+function getRandomInt(min, max){
+    return Math.floor(Math.random() * (max - min + 1)) + min;
+}
+
+jQuery('.addPlaceholder').live("click", function(){
+	var placeholderText = jQuery(this).text();
+	var template = jQuery(this).siblings(':input');
+	template.insertAtCaret(placeholderText);
+});
+		
+jQuery.fn.extend({
+	insertAtCaret: function(myValue){
+		return this.each(function(i) {
+			if (document.selection) {
+				//For browsers like Internet Explorer
+				this.focus();
+				sel = document.selection.createRange();
+				sel.text = myValue;
+				this.focus();
+			} else if (this.selectionStart || this.selectionStart == '0') {
+				//For browsers like Firefox and Webkit based
+				var startPos = this.selectionStart;
+				var endPos = this.selectionEnd;
+				var scrollTop = this.scrollTop;
+				this.value = this.value.substring(0, startPos)+myValue+this.value.substring(endPos,this.value.length);
+				this.focus();
+				this.selectionStart = startPos + myValue.length;
+				this.selectionEnd = startPos + myValue.length;
+				this.scrollTop = scrollTop;
+			} else {
+				this.value += myValue;
+				this.focus();
+			}
+		})
+	}
+});
 

--
Gitblit v1.9.1