144 Zeilen
Kein EOL
4,4 KiB
JavaScript
144 Zeilen
Kein EOL
4,4 KiB
JavaScript
/*****************************************
|
|
*
|
|
* $Id$
|
|
*
|
|
* File : $RCSfile: group_association.js,v $
|
|
* Project : Contenido
|
|
* Descr : File contains java script functions for filtering users in select areas, handling short keys and submitting form
|
|
* This functions are used in template template.grouprights_memberselect.html
|
|
*
|
|
* Author : $Author: timo.trautmann$
|
|
* Modified : $Date$
|
|
*
|
|
* © four for business AG, www.4fb.de
|
|
******************************************/
|
|
|
|
|
|
var keycode = 0; //last pressed key
|
|
var addAction = ''; //contenidoaction for adding user to group - (different fpr frontentgroups and backendgroups)
|
|
var deleteAction = ''; //contenidoaction for removing user from group - (different fpr frontentgroups and backendgroups)
|
|
|
|
/**
|
|
* Initialization of previous defined variables
|
|
*
|
|
* @param string add - adding user contenido action
|
|
* @param string del - removing user contenido action
|
|
*
|
|
*/
|
|
function init(add, del) {
|
|
addAction = add;
|
|
deleteAction = del;
|
|
}
|
|
|
|
/**
|
|
* Function submits form when users were added to group or removed from group
|
|
*
|
|
* @param string isAdded - contenido action string
|
|
*
|
|
*/
|
|
function setAction(isAdded) {
|
|
var selectId = null;
|
|
//case of adding new members
|
|
if (isAdded == addAction) {
|
|
selectId = 'newmember';
|
|
document.group_properties.action.value = addAction;
|
|
//case of removing existing members
|
|
} else {
|
|
selectId = 'user_in_group';
|
|
document.group_properties.action.value = deleteAction;
|
|
}
|
|
|
|
var sSelectBox = document.getElementById(selectId);
|
|
//only submit form, if a user is selected
|
|
if (sSelectBox.selectedIndex != -1) {
|
|
document.group_properties.submit();
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Function filters entries in select box and shows only relevant users for selection
|
|
*
|
|
* @param string id - id of textbox, which contains the search string
|
|
*
|
|
*/
|
|
function filter (id) {
|
|
//get search string ans buid regular expression
|
|
var sFilterValue = document.getElementById(id).value;
|
|
var oReg = new RegExp(sFilterValue,"gi");
|
|
|
|
//build id of corresponding select box
|
|
var sSelectId = id.replace(/_filter_value/, '');
|
|
|
|
//get select box and corresponding options
|
|
var sSelectBox = document.getElementById(sSelectId);
|
|
var oOptions = sSelectBox.getElementsByTagName('option');
|
|
|
|
//remove all options
|
|
var iLen = oOptions.length;
|
|
for (var i=0; i <iLen; i++) {
|
|
sSelectBox.removeChild(oOptions[0]);
|
|
}
|
|
|
|
//get all options which where avariable in hidden select box
|
|
var sSelectBoxAll = document.getElementById('all_'+sSelectId);
|
|
var oOptionsAll = sSelectBoxAll.getElementsByTagName('option');
|
|
|
|
//iterate over all hidden options
|
|
var count = 0;
|
|
for (var i=0; i<oOptionsAll.length; i++) {
|
|
//get the label of the option
|
|
var label = oOptionsAll[i].firstChild.nodeValue;
|
|
|
|
//if option label matches to search string
|
|
if (label.match(oReg)) {
|
|
//generate new option element, fill it with the hidden values and append it to the select box which is viewable
|
|
var newOption = document.createElement('option');
|
|
newOption.value = oOptionsAll[i].value;
|
|
newOption.innerHTML = label;
|
|
newOption.disabled = false;
|
|
sSelectBox.appendChild(newOption);
|
|
count++;
|
|
}
|
|
}
|
|
|
|
//if there are no options, deactivate corresponding move button
|
|
if(count == 0) {
|
|
document.getElementById(sSelectId+'_button').disabled = true;
|
|
} else {
|
|
document.getElementById(sSelectId+'_button').disabled = false;
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Function is callend when user types into the filter inputs
|
|
*
|
|
* @param string id - id of textbox, which contains the search string
|
|
*
|
|
*/
|
|
function keyHandler(id) {
|
|
//if user pressed enter key into filter input, js function filter is called
|
|
if (keycode == 13) {
|
|
filter(id);
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Function is callend when user presses a key
|
|
*
|
|
* @param object event - event object
|
|
*
|
|
*/
|
|
function setKeyCode (event) {
|
|
if (!event)
|
|
event = window.event;
|
|
if (event.keyCode) {
|
|
//for ie: store keycode, which is pressed into global variable
|
|
keycode = event.keyCode;
|
|
} else if (event.which) {
|
|
//for mozilla: store keycode, which is pressed into global variable
|
|
keycode = event.which;
|
|
}
|
|
}
|
|
|
|
//Activate listener, which calls function setKeyCode when user presses a key on keyboard
|
|
document.onkeydown = setKeyCode; |