From b889edb33e4a09cc1f65d2fb9ad9f9ea16b1eae9 Mon Sep 17 00:00:00 2001
From: ftimme <ft@falkotimme.com>
Date: Tue, 04 Sep 2012 11:42:42 -0400
Subject: [PATCH] - Ported changes from Apache plugin to nginx plugin. - Fixed errors in system.inc.php-

---
 interface/web/js/scrigo.js.php |  213 ++++++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 194 insertions(+), 19 deletions(-)

diff --git a/interface/web/js/scrigo.js.php b/interface/web/js/scrigo.js.php
index ecfcf83..e550b47 100644
--- a/interface/web/js/scrigo.js.php
+++ b/interface/web/js/scrigo.js.php
@@ -4,7 +4,11 @@
 	$lang = (isset($_SESSION['s']['language']) && $_SESSION['s']['language'] != '')?$_SESSION['s']['language']:'en';
 	include_once(ISPC_ROOT_PATH.'/web/strengthmeter/lib/lang/'.$lang.'_strengthmeter.lng');
 ?>
-
+var pageFormChanged = false;
+var tabChangeWarningTxt = '';
+var tabChangeDiscardTxt = '';
+var tabChangeWarning = false;
+var tabChangeDiscard = false;
 redirect = '';
 
 function reportError(request) {
@@ -24,34 +28,38 @@
 											dataType: "html",
 											success: function(data, textStatus, jqXHR) {
 												jQuery('#pageContent').html(jqXHR.responseText);
+                                                pageFormChanged = false;
 											},
 											error: function() {
 												reportError('Ajax Request was not successful.'+pagename);
-											},
+											}
 										});
   	setTimeout( "loadContentRefresh('"+pagename+"&refresh="+document.getElementById('refreshinterval').value+"')", document.getElementById('refreshinterval').value*1000 );
   }
 }
 
-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();
 											},
 											error: function() {
 												reportError('Ajax Request was not successful.'+module);
-											},
+											}
 									});
 }
 
@@ -84,12 +92,13 @@
 													document.location.href = 'index.php';
 												} else {
 													jQuery('#pageContent').html(jqXHR.responseText);
+                                                    pageFormChanged = false;
 												}
 												loadMenus();
 											},
 											error: function() {
 												reportError('Ajax Request was not successful.110');
-											},
+											}
 									});
 	/*
 	if(redirect != '') {
@@ -101,7 +110,7 @@
 	
 }
 
-function submitForm(formname,target) {	
+function submitForm(formname,target) {
 	var submitFormObj = jQuery.ajax({		type: "POST", 
 											url: target,
 											data: jQuery('#'+formname).serialize(),
@@ -115,12 +124,13 @@
 													//window.setTimeout('loadContent(redirect)', 1000);
 												} else {
 													jQuery('#pageContent').html(jqXHR.responseText);
+                                                    pageFormChanged = false;
 												}
 											},
 											error: function(jqXHR, textStatus, errorThrown) {
 												var parts = jqXHR.responseText.split(':');
 												reportError('Ajax Request was not successful. 111');
-											},
+											}
 									});
 	/*
 	if(redirect != '') {
@@ -128,6 +138,34 @@
 		redirect = '';
 	}
 	*/
+}
+
+function submitFormConfirm(formname,target,confirmation) {
+	var successMessage = arguments[3];
+	if(window.confirm(confirmation)) {
+		var submitFormObj = jQuery.ajax({	type: "POST", 
+											url: target,
+											data: jQuery('#'+formname).serialize(),
+											dataType: "html",
+											success: function(data, textStatus, jqXHR) {
+												if(successMessage) alert(successMessage);
+												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);
+                                                    pageFormChanged = false;
+												}
+											},
+											error: function(jqXHR, textStatus, errorThrown) {
+												var parts = jqXHR.responseText.split(':');
+												reportError('Ajax Request was not successful. 111');
+											}
+									});
+	}
 }
 
 function submitUploadForm(formname,target) {		
@@ -172,9 +210,14 @@
 }
 
 function loadContent(pagename) {
+  var params = arguments[1];
   var pageContentObject2 = jQuery.ajax({	type: "GET", 
 											url: pagename,
+                                            data: (params ? params : null),
 											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(':');
@@ -187,13 +230,14 @@
 													//var reponse = jQuery(jqXHR.responseText);
 													//var reponseScript = reponse.filter("script");
 													//jQuery.each(reponseScript, function(idx, val) { eval(val.text); } );
+													
 													jQuery('#pageContent').html(jqXHR.responseText);
+                                                    pageFormChanged = false;
 												}
-												
 											},
 											error: function() {
 												reportError('Ajax Request was not successful. 113');
-											},
+											}
 									});
 }
 
@@ -209,11 +253,12 @@
 													loadContent(parts[1]);
 												} else {
 													jQuery('#pageContent').html(jqXHR.responseText);
+                                                    pageFormChanged = false;
 												}
 											},
 											error: function() {
 												reportError('Ajax Request was not successful. 114');
-											},
+											}
 										});
   
   loadMenus();
@@ -224,7 +269,7 @@
 
 function setFocus() {
 	try {
-		document.pageForm.username.focus();
+		jQuery('form#pageForm').find('input[name="username"]').focus();
 	} catch (e) {
 	}
 }
@@ -240,7 +285,7 @@
 											},
 											error: function() {
 												reportError('Ajax Request was not successful. 115');
-											},
+											}
 									});
 	
   var topNavObject = jQuery.ajax({			type: "GET", 
@@ -252,7 +297,7 @@
 											},
 											error: function(o) {
 												reportError('Ajax Request was not successful. 116');
-											},
+											}
 								});
 
 }
@@ -260,10 +305,40 @@
 function changeTab(tab,target) {
 	//document.forms[0].next_tab.value = tab;
 	document.pageForm.next_tab.value = tab;
-	submitForm('pageForm',target);
+    
+    var idel = jQuery('form#pageForm').find('[name="id"]');
+    var id = null;
+    if(idel.length > 0) id = idel.val();
+    if(tabChangeDiscard == 'y') {
+        if((idel.length < 1 || id) && (pageFormChanged == false || window.confirm(tabChangeDiscardTxt))) {
+            var next_tab = tab;
+            if(id) loadContent(target, {'next_tab': next_tab, 'id': id});
+            else loadContent(target, {'next_tab': next_tab});
+        } else {
+            return false;
+        }
+    } else {
+        if(id && tabChangeWarning == 'y' && pageFormChanged == true) {
+            if(window.confirm(tabChangeWarningTxt)) {
+                submitForm('pageForm', target);
+            } else {
+                var next_tab = tab;
+                if(id) loadContent(target, {'next_tab': next_tab, 'id': id});
+                else loadContent(target, {'next_tab': next_tab});
+            }
+        } else {
+            submitForm('pageForm',target);
+        }
+    }
 }
 	
 function del_record(link,confirmation) {
+  if(window.confirm(confirmation)) {
+          loadContent(link);
+  }
+}
+
+function confirm_action(link,confirmation) {
   if(window.confirm(confirmation)) {
           loadContent(link);
   }
@@ -278,7 +353,7 @@
 											},
 											error: function() {
 												reportError('Ajax Request was not successful. 118');
-											},
+											}
 										});
 }
 
@@ -301,7 +376,7 @@
 											},
 											error: function() {
 												reportError('Ajax Request was not successful. 119');
-											},
+											}
 										});
 }
 
@@ -314,7 +389,7 @@
 											},
 											error: function() {
 												reportError('Session expired. Please login again.');
-											},
+											}
 										});
   	//setTimeout( keepalive, 1000000 );
 }
@@ -491,3 +566,103 @@
     }
     return rv;
 }
+
+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, repeatPasswordFieldID){
+	var oldPWField = jQuery('#'+passwordFieldID);
+	var newPWField = oldPWField.clone();
+	newPWField.attr('type', 'text').attr('id', 'tmp'+passwordFieldID).insertBefore(oldPWField);
+	oldPWField.remove();
+	var pword = password(10, false);
+	jQuery('#'+repeatPasswordFieldID).val(pword);
+	newPWField.attr('id', passwordFieldID).val(pword).trigger('keyup');
+}
+
+var funcDisableClick = function(e) { e.preventDefault(); return false; };
+
+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').each(function() {
+            var $this = $(this);
+            $this.data('saved_onclick', $this.attr('onclick'));
+            $this.removeAttr('onclick');
+            $this.click(funcDisableClick);
+        });
+        return false;
+    } else {
+		jQuery('#confirmpasswordError').hide();
+        jQuery('#confirmpasswordOK').show();
+		jQuery('button.positive').removeAttr('disabled');
+		jQuery('.tabbox_tabs ul li a').each(function() {
+            var $this = $(this);
+            $this.unbind('click', funcDisableClick);
+            if($this.data('saved_onclick') && !$this.attr('onclick')) $this.attr('onclick', $this.data('saved_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