217 lines
6.2 KiB
JavaScript
217 lines
6.2 KiB
JavaScript
/**
|
|
|
|
$Id$
|
|
|
|
This code is part of LDAP Account Manager (http://www.ldap-account-manager.org/)
|
|
Copyright (C) 2003 - 2011 Roland Gruber
|
|
|
|
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
|
|
|
|
*/
|
|
|
|
/**
|
|
* Used to highlight the row under the mouse cursor.
|
|
*
|
|
* @param list table row
|
|
*/
|
|
function list_over(list) {
|
|
jQuery(list).addClass('highlight');
|
|
}
|
|
|
|
/**
|
|
* Used to unhighlight a row if the mouse cursor leaves it.
|
|
*
|
|
* @param list table row
|
|
*/
|
|
function list_out(list) {
|
|
jQuery(list).removeClass('highlight');
|
|
}
|
|
|
|
/**
|
|
* Called when user clicks on a table row. This toggles the checkbox in the row.
|
|
*
|
|
* @param box checkbox name
|
|
*/
|
|
function list_click(box) {
|
|
cbox = document.getElementsByName(box)[0];
|
|
if (cbox.checked == true) {
|
|
cbox.checked = false;
|
|
}
|
|
else {
|
|
cbox.checked = true;
|
|
}
|
|
}
|
|
|
|
/**
|
|
* 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;
|
|
}
|
|
|
|
/**
|
|
* 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;
|
|
height -= 105
|
|
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";
|
|
};
|
|
|
|
/**
|
|
* 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[cancelText] = function() { jQuery(this).dialog("close"); };
|
|
buttonList[okText] = function() { document.forms["settingsDialogForm"].submit(); };
|
|
jQuery('#settingsDialog').dialog({
|
|
modal: true,
|
|
title: title,
|
|
dialogClass: 'defaultBackground',
|
|
buttons: buttonList,
|
|
width: 'auto'
|
|
});
|
|
}
|
|
|
|
function SubmitForm(id, e) {
|
|
if (e.keyCode == 13) {
|
|
document.getElementsByName(id)[0].click();
|
|
return false;
|
|
}
|
|
}
|
|
|
|
function addResizeHandler(item, min, max) {
|
|
jQuery(item).toggle(
|
|
function(){
|
|
jQuery(item).animate({
|
|
height: max
|
|
});
|
|
},
|
|
function(){
|
|
jQuery(item).animate({
|
|
height: min
|
|
});
|
|
}
|
|
);
|
|
}
|
|
|
|
/**
|
|
* Selects/deselects all accounts on the page.
|
|
*/
|
|
function list_switchAccountSelection() {
|
|
// set checkbox selection
|
|
jQuery('.accountBoxUnchecked').attr('checked', 'checked');
|
|
jQuery('.accountBoxChecked').removeAttr('checked');
|
|
// switch CSS class
|
|
nowChecked = jQuery('.accountBoxUnchecked');
|
|
nowUnchecked = jQuery('.accountBoxChecked');
|
|
nowChecked.addClass('accountBoxChecked');
|
|
nowChecked.removeClass('accountBoxUnchecked');
|
|
nowUnchecked.addClass('accountBoxUnchecked');
|
|
nowUnchecked.removeClass('accountBoxChecked');
|
|
}
|
|
|
|
/**
|
|
* 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;
|
|
}
|
|
|
|
/**
|
|
* Hides/unhides input fields for the login method.
|
|
*/
|
|
function configLoginMethodChanged() {
|
|
selectLoginMethod = document.getElementsByName('loginMethod')[0];
|
|
if ( selectLoginMethod.options[selectLoginMethod.selectedIndex].value == 'list' ) {
|
|
jQuery('textarea[name=admins]').parent().parent().show();
|
|
jQuery('input[name=loginSearchSuffix]').parent().parent().hide();
|
|
jQuery('input[name=loginSearchFilter]').parent().parent().hide();
|
|
}
|
|
else {
|
|
jQuery('textarea[name=admins]').parent().parent().hide();
|
|
jQuery('input[name=loginSearchSuffix]').parent().parent().show();
|
|
jQuery('input[name=loginSearchFilter]').parent().parent().show();
|
|
}
|
|
}
|
|
|
|
/**
|
|
* 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[cancelText] = function() { jQuery(this).dialog("close"); };
|
|
buttonList[okText] = function() { document.forms["deleteProfileForm"].submit(); };
|
|
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[cancelText] = function() { jQuery(this).dialog("close"); };
|
|
buttonList[okText] = function() { document.forms["newAutomountMapDialogForm"].submit(); };
|
|
jQuery('#newAutomountMapDialog').dialog({
|
|
modal: true,
|
|
title: title,
|
|
dialogClass: 'defaultBackground',
|
|
buttons: buttonList,
|
|
width: 'auto'
|
|
});
|
|
}
|
|
|