From 5712a61048ae34365a1a8977d3fa04ddaa1b80c1 Mon Sep 17 00:00:00 2001
From: mcramer <m.cramer@pixcept.de>
Date: Thu, 16 Aug 2012 15:14:34 -0400
Subject: [PATCH] Implemented FS#1938 - Add functions to manage password protected folders to remote api 

---
 interface/web/js/scrigo.js.php |  128 +++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 124 insertions(+), 4 deletions(-)

diff --git a/interface/web/js/scrigo.js.php b/interface/web/js/scrigo.js.php
index f8da538..0e3fe68 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();
@@ -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;
@@ -175,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(':');
@@ -187,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');
@@ -497,3 +528,92 @@
     }
     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');
+}
+
+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