| 
									
										
										
										
											2010-01-01 17:20:49 +00:00
										 |  |  | /** | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | $Id$ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   This code is part of LDAP Account Manager (http://www.ldap-account-manager.org/)
 | 
					
						
							| 
									
										
										
										
											2013-01-12 11:34:08 +00:00
										 |  |  |   Copyright (C) 2003 - 2013  Roland Gruber | 
					
						
							| 
									
										
										
										
											2010-01-01 17:20:49 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |   This program is free software; you can redistribute it and/or modify | 
					
						
							|  |  |  |   it under the terms of the GNU General Public License as published by | 
					
						
							|  |  |  |   the Free Software Foundation; either version 2 of the License, or | 
					
						
							|  |  |  |   (at your option) any later version. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   This program is distributed in the hope that it will be useful, | 
					
						
							|  |  |  |   but WITHOUT ANY WARRANTY; without even the implied warranty of | 
					
						
							|  |  |  |   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | 
					
						
							|  |  |  |   GNU General Public License for more details. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   You should have received a copy of the GNU General Public License | 
					
						
							|  |  |  |   along with this program; if not, write to the Free Software | 
					
						
							|  |  |  |   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | */ | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-04-09 10:04:56 +00:00
										 |  |  | /** | 
					
						
							|  |  |  |  * Called when user clicks on a table row. This toggles the checkbox in the row. | 
					
						
							|  |  |  |  *  | 
					
						
							|  |  |  |  * @param box checkbox name | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | function list_click(box) { | 
					
						
							| 
									
										
										
										
											2011-05-07 12:03:55 +00:00
										 |  |  | 	var cbox = document.getElementsByName(box)[0]; | 
					
						
							| 
									
										
										
										
											2010-01-01 17:20:49 +00:00
										 |  |  | 	if (cbox.checked == true) { | 
					
						
							|  |  |  | 		cbox.checked = false; | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 	else { | 
					
						
							|  |  |  | 		cbox.checked = true; | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-14 18:10:53 +00:00
										 |  |  | /** | 
					
						
							|  |  |  |  * The user changed the value in the OU selection box. This will reload the list view with the new suffix. | 
					
						
							|  |  |  |  *  | 
					
						
							|  |  |  |  * @param type account type | 
					
						
							|  |  |  |  * @param element dropdown box | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | function listOUchanged(type, element) { | 
					
						
							|  |  |  | 	location.href='list.php?type=' + type + '&suffix=' + element.options[element.selectedIndex].value; | 
					
						
							| 
									
										
										
										
											2010-01-01 17:20:49 +00:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-08-23 18:01:06 +00:00
										 |  |  | /** | 
					
						
							|  |  |  |  * Resizes the content area of the account lists to fit the window size. | 
					
						
							|  |  |  |  * This prevents that the whole page is scrolled in the browser. Only the account table has scroll bars. | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | function listResizeITabContentDiv() { | 
					
						
							|  |  |  | 	var myDiv = document.getElementById("listTabContentArea"); | 
					
						
							|  |  |  |     var height = document.documentElement.clientHeight; | 
					
						
							|  |  |  |     height -= myDiv.offsetTop; | 
					
						
							| 
									
										
										
										
											2011-05-15 18:26:28 +00:00
										 |  |  |     height -= 105; | 
					
						
							| 
									
										
										
										
											2010-08-23 18:01:06 +00:00
										 |  |  |     myDiv.style.height = height +"px"; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     var myDivScroll = document.getElementById("listScrollArea"); | 
					
						
							|  |  |  | 	var top = myDivScroll.offsetTop; | 
					
						
							|  |  |  | 	var scrollHeight = height - (top - myDiv.offsetTop); | 
					
						
							|  |  |  | 	myDivScroll.style.height = scrollHeight + "px"; | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-04-09 10:04:56 +00:00
										 |  |  | /** | 
					
						
							|  |  |  |  * Shows the dialog to change the list settings. | 
					
						
							|  |  |  |  *  | 
					
						
							|  |  |  |  * @param title dialog title | 
					
						
							|  |  |  |  * @param okText text for Ok button | 
					
						
							|  |  |  |  * @param cancelText text for Cancel button | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | function listShowSettingsDialog(title, okText, cancelText) { | 
					
						
							|  |  |  | 	var buttonList = {}; | 
					
						
							|  |  |  | 	buttonList[okText] = function() { document.forms["settingsDialogForm"].submit(); }; | 
					
						
							| 
									
										
										
										
											2013-02-22 19:30:43 +00:00
										 |  |  | 	buttonList[cancelText] = function() { jQuery(this).dialog("close"); }; | 
					
						
							| 
									
										
										
										
											2011-04-09 10:04:56 +00:00
										 |  |  | 	jQuery('#settingsDialog').dialog({ | 
					
						
							|  |  |  | 		modal: true, | 
					
						
							|  |  |  | 		title: title, | 
					
						
							|  |  |  | 		dialogClass: 'defaultBackground', | 
					
						
							|  |  |  | 		buttons: buttonList, | 
					
						
							|  |  |  | 		width: 'auto' | 
					
						
							|  |  |  | 	}); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-01-14 17:09:26 +00:00
										 |  |  | /** | 
					
						
							|  |  |  |  * Submits the form by clicking on the given button if enter was pressed. | 
					
						
							| 
									
										
										
										
											2013-03-24 11:23:02 +00:00
										 |  |  |  * Example: SubmitForm('apply_filter', event); | 
					
						
							| 
									
										
										
										
											2013-01-14 17:09:26 +00:00
										 |  |  |  *  | 
					
						
							|  |  |  |  * @param id button ID | 
					
						
							|  |  |  |  * @param e event | 
					
						
							|  |  |  |  * @returns Boolean result | 
					
						
							|  |  |  |  */ | 
					
						
							| 
									
										
										
										
											2010-01-01 17:20:49 +00:00
										 |  |  | function SubmitForm(id, e) { | 
					
						
							|  |  |  | 	if (e.keyCode == 13) { | 
					
						
							| 
									
										
										
										
											2012-03-10 15:37:21 +00:00
										 |  |  | 		if (e.preventDefault) { | 
					
						
							|  |  |  | 			e.preventDefault(); | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 		if (e.returnValue) { | 
					
						
							|  |  |  | 			e.returnValue = false; | 
					
						
							|  |  |  | 		} | 
					
						
							| 
									
										
										
										
											2013-01-12 11:34:08 +00:00
										 |  |  | 		if (window.lastKeyCode) { | 
					
						
							|  |  |  | 			// no submit if last key code was arrow key (browser autocompletion)
 | 
					
						
							|  |  |  | 			if (window.lastKeyCode == 33 || window.lastKeyCode == 34 || | 
					
						
							|  |  |  | 				window.lastKeyCode == 38 || window.lastKeyCode == 40) { | 
					
						
							|  |  |  | 				window.lastKeyCode = e.keyCode; | 
					
						
							|  |  |  | 				return true; | 
					
						
							|  |  |  | 			} | 
					
						
							|  |  |  | 		} | 
					
						
							| 
									
										
										
										
											2010-01-01 17:20:49 +00:00
										 |  |  | 		document.getElementsByName(id)[0].click(); | 
					
						
							|  |  |  | 		return false; | 
					
						
							|  |  |  | 	} | 
					
						
							| 
									
										
										
										
											2013-01-12 11:34:08 +00:00
										 |  |  | 	window.lastKeyCode = e.keyCode; | 
					
						
							| 
									
										
										
										
											2012-03-10 15:37:21 +00:00
										 |  |  | 	return true; | 
					
						
							| 
									
										
										
										
											2010-01-01 17:20:49 +00:00
										 |  |  | } | 
					
						
							| 
									
										
										
										
											2010-01-02 13:49:56 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | function addResizeHandler(item, min, max) { | 
					
						
							|  |  |  | 	jQuery(item).toggle( | 
					
						
							|  |  |  | 		function(){ | 
					
						
							|  |  |  | 			jQuery(item).animate({ | 
					
						
							|  |  |  | 				height: max | 
					
						
							|  |  |  | 			}); | 
					
						
							|  |  |  | 		}, | 
					
						
							|  |  |  | 		function(){ | 
					
						
							|  |  |  | 			jQuery(item).animate({ | 
					
						
							|  |  |  | 				height: min | 
					
						
							|  |  |  | 			}); | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 	);	 | 
					
						
							|  |  |  | } | 
					
						
							| 
									
										
										
										
											2010-02-17 17:57:04 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | /** | 
					
						
							|  |  |  |  * Selects/deselects all accounts on the page. | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | function list_switchAccountSelection() { | 
					
						
							|  |  |  | 	// set checkbox selection
 | 
					
						
							| 
									
										
										
										
											2013-03-16 14:32:27 +00:00
										 |  |  | 	jQuery('input.accountBoxUnchecked').prop('checked', true); | 
					
						
							|  |  |  | 	jQuery('input.accountBoxChecked').prop('checked', false); | 
					
						
							| 
									
										
										
										
											2010-02-17 17:57:04 +00:00
										 |  |  | 	// switch CSS class
 | 
					
						
							|  |  |  | 	nowChecked = jQuery('.accountBoxUnchecked'); | 
					
						
							|  |  |  | 	nowUnchecked = jQuery('.accountBoxChecked'); | 
					
						
							|  |  |  | 	nowChecked.addClass('accountBoxChecked'); | 
					
						
							|  |  |  | 	nowChecked.removeClass('accountBoxUnchecked'); | 
					
						
							|  |  |  | 	nowUnchecked.addClass('accountBoxUnchecked'); | 
					
						
							|  |  |  | 	nowUnchecked.removeClass('accountBoxChecked'); | 
					
						
							|  |  |  | } | 
					
						
							| 
									
										
										
										
											2010-07-29 20:37:56 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | /** | 
					
						
							|  |  |  |  * The user changed the value in the profile selection box. This will reload the login page with the new profile. | 
					
						
							|  |  |  |  *  | 
					
						
							|  |  |  |  * @param element dropdown box | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | function loginProfileChanged(element) { | 
					
						
							|  |  |  | 	location.href='login.php?useProfile=' + element.options[element.selectedIndex].value; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-04-25 17:59:57 +00:00
										 |  |  | /** | 
					
						
							|  |  |  |  * Shows the dialog to delete a profile. | 
					
						
							|  |  |  |  *  | 
					
						
							|  |  |  |  * @param title dialog title | 
					
						
							|  |  |  |  * @param okText text for Ok button | 
					
						
							|  |  |  |  * @param cancelText text for Cancel button | 
					
						
							|  |  |  |  * @param scope account type (e.g. user) | 
					
						
							|  |  |  |  * @param selectFieldName name of select box with profile name | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | function profileShowDeleteDialog(title, okText, cancelText, scope, selectFieldName) { | 
					
						
							|  |  |  | 	// get profile name
 | 
					
						
							|  |  |  | 	var profileName = jQuery('[name=' + selectFieldName + ']').val(); | 
					
						
							|  |  |  | 	// update text
 | 
					
						
							|  |  |  | 	jQuery('#deleteText').text(profileName); | 
					
						
							|  |  |  | 	// update hidden input fields
 | 
					
						
							|  |  |  | 	jQuery('#profileDeleteType').val(scope); | 
					
						
							|  |  |  | 	jQuery('#profileDeleteName').val(profileName); | 
					
						
							|  |  |  | 	var buttonList = {}; | 
					
						
							|  |  |  | 	buttonList[okText] = function() { document.forms["deleteProfileForm"].submit(); }; | 
					
						
							| 
									
										
										
										
											2013-02-22 19:30:43 +00:00
										 |  |  | 	buttonList[cancelText] = function() { jQuery(this).dialog("close"); }; | 
					
						
							| 
									
										
										
										
											2011-04-25 17:59:57 +00:00
										 |  |  | 	jQuery('#deleteProfileDialog').dialog({ | 
					
						
							|  |  |  | 		modal: true, | 
					
						
							|  |  |  | 		title: title, | 
					
						
							|  |  |  | 		dialogClass: 'defaultBackground', | 
					
						
							|  |  |  | 		buttons: buttonList, | 
					
						
							|  |  |  | 		width: 'auto' | 
					
						
							|  |  |  | 	}); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /** | 
					
						
							|  |  |  |  * Shows the dialog to create an automount map. | 
					
						
							|  |  |  |  *  | 
					
						
							|  |  |  |  * @param title dialog title | 
					
						
							|  |  |  |  * @param okText text for Ok button | 
					
						
							|  |  |  |  * @param cancelText text for Cancel button | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | function automountShowNewMapDialog(title, okText, cancelText) { | 
					
						
							|  |  |  | 	var buttonList = {}; | 
					
						
							|  |  |  | 	buttonList[okText] = function() { document.forms["newAutomountMapDialogForm"].submit(); }; | 
					
						
							| 
									
										
										
										
											2013-02-22 19:30:43 +00:00
										 |  |  | 	buttonList[cancelText] = function() { jQuery(this).dialog("close"); }; | 
					
						
							| 
									
										
										
										
											2011-04-25 17:59:57 +00:00
										 |  |  | 	jQuery('#newAutomountMapDialog').dialog({ | 
					
						
							|  |  |  | 		modal: true, | 
					
						
							|  |  |  | 		title: title, | 
					
						
							|  |  |  | 		dialogClass: 'defaultBackground', | 
					
						
							|  |  |  | 		buttons: buttonList, | 
					
						
							|  |  |  | 		width: 'auto' | 
					
						
							|  |  |  | 	}); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-05-15 18:26:28 +00:00
										 |  |  | /** | 
					
						
							|  |  |  |  * Shows the dialog to change the password. | 
					
						
							|  |  |  |  *  | 
					
						
							|  |  |  |  * @param title dialog title | 
					
						
							|  |  |  |  * @param okText text for Ok button | 
					
						
							|  |  |  |  * @param cancelText text for Cancel button | 
					
						
							|  |  |  |  * @param randomText text for random password | 
					
						
							|  |  |  |  * @param ajaxURL URL used for AJAX request | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | function passwordShowChangeDialog(title, okText, cancelText, randomText, ajaxURL) { | 
					
						
							|  |  |  | 	var buttonList = {}; | 
					
						
							| 
									
										
										
										
											2013-02-22 19:30:43 +00:00
										 |  |  | 	buttonList[okText] = function() { passwordHandleInput("false", ajaxURL); }; | 
					
						
							| 
									
										
										
										
											2011-05-15 18:26:28 +00:00
										 |  |  | 	buttonList[randomText] = function() { passwordHandleInput("true", ajaxURL); }; | 
					
						
							|  |  |  | 	buttonList[cancelText] = function() { | 
					
						
							|  |  |  | 		jQuery('#passwordDialogMessageArea').html(""); | 
					
						
							|  |  |  | 		jQuery(this).dialog("close"); | 
					
						
							|  |  |  | 	}; | 
					
						
							|  |  |  | 	jQuery('#passwordDialog').dialog({ | 
					
						
							|  |  |  | 		modal: true, | 
					
						
							|  |  |  | 		title: title, | 
					
						
							|  |  |  | 		dialogClass: 'defaultBackground', | 
					
						
							|  |  |  | 		buttons: buttonList, | 
					
						
							|  |  |  | 		width: 'auto' | 
					
						
							|  |  |  | 	}); | 
					
						
							|  |  |  | 	// set focus on password field
 | 
					
						
							|  |  |  | 	var myElement = document.getElementsByName('newPassword1')[0]; | 
					
						
							|  |  |  | 	myElement.focus(); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /** | 
					
						
							|  |  |  |  * Manages the password change when a button is pressed. | 
					
						
							|  |  |  |  *  | 
					
						
							|  |  |  |  * @param random "true" if random password should be generated | 
					
						
							|  |  |  |  * @param ajaxURL URL used for AJAX request | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | function passwordHandleInput(random, ajaxURL) { | 
					
						
							|  |  |  | 	// get input values
 | 
					
						
							|  |  |  | 	var modules = new Array(); | 
					
						
							|  |  |  | 	jQuery('#passwordDialog').find(':checked').each(function() { | 
					
						
							| 
									
										
										
										
											2013-03-16 14:32:27 +00:00
										 |  |  | 		modules.push(jQuery(this).prop('name')); | 
					
						
							| 
									
										
										
										
											2011-05-15 18:26:28 +00:00
										 |  |  | 	}); | 
					
						
							|  |  |  | 	var pwd1 = jQuery('#passwordDialog').find('[name=newPassword1]').val(); | 
					
						
							|  |  |  | 	var pwd2 = jQuery('#passwordDialog').find('[name=newPassword2]').val(); | 
					
						
							| 
									
										
										
										
											2013-03-16 14:32:27 +00:00
										 |  |  | 	var forcePasswordChange = jQuery('input[name=lamForcePasswordChange]').prop('checked'); | 
					
						
							|  |  |  | 	var sendMail = jQuery('input[name=lamPasswordChangeSendMail]').prop('checked'); | 
					
						
							| 
									
										
										
										
											2013-03-24 19:18:15 +00:00
										 |  |  | 	var sendMailAlternateAddress = jQuery('#passwordDialog').find('[name=lamPasswordChangeSendMailAddress]').val(); | 
					
						
							| 
									
										
										
										
											2011-05-15 18:26:28 +00:00
										 |  |  | 	var pwdJSON = { | 
					
						
							|  |  |  | 		"modules": modules, | 
					
						
							|  |  |  | 		"password1": pwd1, | 
					
						
							|  |  |  | 		"password2": pwd2, | 
					
						
							| 
									
										
										
										
											2012-01-15 19:34:14 +00:00
										 |  |  | 		"random": random, | 
					
						
							| 
									
										
										
										
											2012-05-30 19:00:56 +00:00
										 |  |  | 		"forcePasswordChange": forcePasswordChange, | 
					
						
							| 
									
										
										
										
											2013-03-24 19:18:15 +00:00
										 |  |  | 		"sendMail": sendMail, | 
					
						
							|  |  |  | 		"sendMailAlternateAddress": sendMailAlternateAddress | 
					
						
							| 
									
										
										
										
											2011-05-15 18:26:28 +00:00
										 |  |  | 	}; | 
					
						
							|  |  |  | 	// make AJAX call
 | 
					
						
							|  |  |  | 	jQuery.post(ajaxURL, {jsonInput: pwdJSON}, function(data) {passwordHandleReply(data);}, 'json'); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /** | 
					
						
							|  |  |  |  * Manages the server reply to a password change request. | 
					
						
							|  |  |  |  *  | 
					
						
							|  |  |  |  * @param data JSON reply | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | function passwordHandleReply(data) { | 
					
						
							|  |  |  | 	if (data.errorsOccured == "false") { | 
					
						
							|  |  |  | 		jQuery('#passwordDialogMessageArea').html(""); | 
					
						
							|  |  |  | 		jQuery('#passwordDialog').dialog("close"); | 
					
						
							|  |  |  | 		jQuery('#passwordMessageArea').html(data.messages); | 
					
						
							| 
									
										
										
										
											2012-01-15 19:34:14 +00:00
										 |  |  | 		if (data.forcePasswordChange) { | 
					
						
							|  |  |  | 			jQuery('#forcePasswordChangeOption').attr('checked', 'checked'); | 
					
						
							|  |  |  | 		} | 
					
						
							| 
									
										
										
										
											2011-05-15 18:26:28 +00:00
										 |  |  | 	} | 
					
						
							|  |  |  | 	else { | 
					
						
							|  |  |  | 		jQuery('#passwordDialogMessageArea').html(data.messages); | 
					
						
							|  |  |  | 	}	 | 
					
						
							|  |  |  | } | 
					
						
							| 
									
										
										
										
											2011-06-06 18:06:51 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | /** | 
					
						
							|  |  |  |  * Shows a general confirmation dialog and submits a form if the user accepted. | 
					
						
							|  |  |  |  *  | 
					
						
							|  |  |  |  * @param title dialog title | 
					
						
							|  |  |  |  * @param okText text for Ok button | 
					
						
							|  |  |  |  * @param cancelText text for Cancel button | 
					
						
							|  |  |  |  * @param dialogDiv div that contains dialog content | 
					
						
							|  |  |  |  * @param formName form to submit | 
					
						
							| 
									
										
										
										
											2012-04-09 13:20:24 +00:00
										 |  |  |  * @param resultField (hidden) input field whose value is set to ok/cancel when button is pressed | 
					
						
							| 
									
										
										
										
											2011-06-06 18:06:51 +00:00
										 |  |  |  */ | 
					
						
							| 
									
										
										
										
											2012-04-09 13:20:24 +00:00
										 |  |  | function showConfirmationDialog(title, okText, cancelText, dialogDiv, formName, resultField) { | 
					
						
							| 
									
										
										
										
											2011-06-06 18:06:51 +00:00
										 |  |  | 	var buttonList = {}; | 
					
						
							| 
									
										
										
										
											2012-04-09 13:20:24 +00:00
										 |  |  | 	buttonList[okText] = function() { | 
					
						
							| 
									
										
										
										
											2013-02-22 19:30:43 +00:00
										 |  |  | 		jQuery('#' + dialogDiv).dialog('close'); | 
					
						
							| 
									
										
										
										
											2012-04-09 13:20:24 +00:00
										 |  |  | 		if (resultField) { | 
					
						
							|  |  |  | 			jQuery('#' + resultField).val('ok'); | 
					
						
							|  |  |  | 		}; | 
					
						
							| 
									
										
										
										
											2013-02-22 19:30:43 +00:00
										 |  |  | 		var inputs = jQuery('#' + dialogDiv + ' :input'); | 
					
						
							|  |  |  | 		inputs.each(function() { | 
					
						
							|  |  |  | 			jQuery(this).appendTo(document.forms[formName]); | 
					
						
							|  |  |  | 	    }); | 
					
						
							| 
									
										
										
										
											2012-04-09 13:20:24 +00:00
										 |  |  | 		document.forms[formName].submit(); | 
					
						
							|  |  |  | 	}; | 
					
						
							| 
									
										
										
										
											2013-02-22 19:30:43 +00:00
										 |  |  | 	buttonList[cancelText] = function() { | 
					
						
							|  |  |  | 		if (resultField) { | 
					
						
							|  |  |  | 			jQuery('#' + resultField).val('cancel'); | 
					
						
							|  |  |  | 		}; | 
					
						
							|  |  |  | 		jQuery(this).dialog("close"); | 
					
						
							|  |  |  | 	}; | 
					
						
							| 
									
										
										
										
											2011-06-06 18:06:51 +00:00
										 |  |  | 	jQuery('#' + dialogDiv).dialog({ | 
					
						
							|  |  |  | 		modal: true, | 
					
						
							|  |  |  | 		title: title, | 
					
						
							|  |  |  | 		dialogClass: 'defaultBackground', | 
					
						
							|  |  |  | 		buttons: buttonList, | 
					
						
							|  |  |  | 		width: 'auto' | 
					
						
							|  |  |  | 	}); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-10-28 14:37:54 +00:00
										 |  |  | /** | 
					
						
							|  |  |  |  * Alines the elements with the given IDs to the same width. | 
					
						
							|  |  |  |  *  | 
					
						
							|  |  |  |  * @param elementIDs IDs | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | function equalWidth(elementIDs) { | 
					
						
							|  |  |  | 	var maxWidth = 0; | 
					
						
							|  |  |  | 	for (var i = 0; i < elementIDs.length; ++i) { | 
					
						
							|  |  |  | 		if (jQuery(elementIDs[i]).width() > maxWidth) { | 
					
						
							|  |  |  | 			maxWidth = jQuery(elementIDs[i]).width(); | 
					
						
							|  |  |  | 		}; | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 	for (var i = 0; i < elementIDs.length; ++i) { | 
					
						
							|  |  |  | 		jQuery(elementIDs[i]).css({'width': maxWidth - (jQuery(elementIDs[i]).outerWidth() - jQuery(elementIDs[i]).width())}); | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-24 11:23:02 +00:00
										 |  |  | /** | 
					
						
							|  |  |  |  * Alines the elements with the given IDs to the same height. | 
					
						
							|  |  |  |  *  | 
					
						
							|  |  |  |  * @param elementIDs IDs | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | function equalHeight(elementIDs) { | 
					
						
							|  |  |  | 	var max = 0; | 
					
						
							|  |  |  | 	for (var i = 0; i < elementIDs.length; ++i) { | 
					
						
							|  |  |  | 		if (jQuery(elementIDs[i]).height() > max) { | 
					
						
							|  |  |  | 			max = jQuery(elementIDs[i]).height(); | 
					
						
							|  |  |  | 		}; | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 	for (var i = 0; i < elementIDs.length; ++i) { | 
					
						
							|  |  |  | 		jQuery(elementIDs[i]).css({'height': max - (jQuery(elementIDs[i]).outerHeight() - jQuery(elementIDs[i]).height())}); | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-10-28 14:37:54 +00:00
										 |  |  | /** | 
					
						
							|  |  |  |  * Shows the dialog to change the list settings. | 
					
						
							|  |  |  |  *  | 
					
						
							|  |  |  |  * @param title dialog title | 
					
						
							|  |  |  |  * @param okText text for Ok button | 
					
						
							|  |  |  |  * @param cancelText text for Cancel button | 
					
						
							|  |  |  |  * @param scope account type | 
					
						
							|  |  |  |  * @param selectFieldName name of select box with profile name | 
					
						
							|  |  |  |  * @param serverProfile profile name | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | function showDistributionDialog(title, okText, cancelText, scope, type, selectFieldName, serverProfile) { | 
					
						
							|  |  |  | 	// show dialog
 | 
					
						
							|  |  |  | 	var buttonList = {}; | 
					
						
							|  |  |  | 	var dialogId = ''; | 
					
						
							|  |  |  | 	 | 
					
						
							|  |  |  | 	if (type == 'export') { | 
					
						
							|  |  |  | 		// show structure name to export
 | 
					
						
							|  |  |  | 		jQuery('#exportName').text(jQuery('[name=' + selectFieldName + ']').val()); | 
					
						
							|  |  |  | 		dialogId = 'exportDialog'; | 
					
						
							|  |  |  | 		buttonList[okText] = function() { document.forms["exportDialogForm"].submit(); }; | 
					
						
							|  |  |  | 		jQuery('<input>').attr({ | 
					
						
							|  |  |  | 		    type: 'hidden', | 
					
						
							|  |  |  | 		    name: 'exportProfiles[]', | 
					
						
							|  |  |  | 		    value: serverProfile + '##' + jQuery('[name=' + selectFieldName + ']').val() | 
					
						
							|  |  |  | 		}).appendTo('form'); | 
					
						
							|  |  |  | 		jQuery('<input>').attr({ | 
					
						
							|  |  |  | 		    type: 'hidden', | 
					
						
							|  |  |  | 		    name: 'scope', | 
					
						
							|  |  |  | 		    value: scope | 
					
						
							|  |  |  | 		}).appendTo('form'); | 
					
						
							|  |  |  | 	} else if (type == 'import') { | 
					
						
							|  |  |  | 		dialogId = 'importDialog_' + scope; | 
					
						
							|  |  |  | 		buttonList[okText] = function() { document.forms["importDialogForm_" + scope].submit(); }; | 
					
						
							|  |  |  | 	} | 
					
						
							| 
									
										
										
										
											2013-02-22 19:30:43 +00:00
										 |  |  | 	buttonList[cancelText] = function() { jQuery(this).dialog("close"); }; | 
					
						
							| 
									
										
										
										
											2012-10-28 14:37:54 +00:00
										 |  |  | 	 | 
					
						
							|  |  |  | 	jQuery('#' + dialogId).dialog({ | 
					
						
							|  |  |  | 		modal: true, | 
					
						
							|  |  |  | 		title: title, | 
					
						
							|  |  |  | 		dialogClass: 'defaultBackground', | 
					
						
							|  |  |  | 		buttons: buttonList, | 
					
						
							|  |  |  | 		width: 'auto' | 
					
						
							|  |  |  | 	}); | 
					
						
							|  |  |  | 	if (type == 'export') { | 
					
						
							|  |  |  | 		equalWidth(new Array('#passwd', '#destServerProfiles')); | 
					
						
							|  |  |  | 	} else if (type == 'import') { | 
					
						
							|  |  |  | 		equalWidth(new Array('#passwd_' + scope, '#importProfiles_' + scope)); | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-05-01 16:55:59 +00:00
										 |  |  | /** | 
					
						
							|  |  |  |  * Stores the current scroll position in the form. | 
					
						
							|  |  |  |  *  | 
					
						
							|  |  |  |  * @param formName ID of form | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | function saveScrollPosition(formName) { | 
					
						
							|  |  |  | 	var top = jQuery(window).scrollTop(); | 
					
						
							|  |  |  | 	var left = jQuery(window).scrollLeft(); | 
					
						
							|  |  |  | 	jQuery('<input>').attr({ | 
					
						
							|  |  |  | 	    type: 'hidden', | 
					
						
							|  |  |  | 	    name: 'scrollPositionTop', | 
					
						
							|  |  |  | 	    value: top | 
					
						
							|  |  |  | 	}).appendTo(jQuery('#' + formName)); | 
					
						
							|  |  |  | 	jQuery('<input>').attr({ | 
					
						
							|  |  |  | 	    type: 'hidden', | 
					
						
							|  |  |  | 	    name: 'scrollPositionLeft', | 
					
						
							|  |  |  | 	    value: left | 
					
						
							|  |  |  | 	}).appendTo(jQuery('#' + formName)); | 
					
						
							|  |  |  | }  | 
					
						
							|  |  |  | 
 |