if ( typeof WebGUI.Form == "undefined" ) { WebGUI.Form = {}; } if ( typeof WebGUI.Form.GroupManager == "undefined" ) { WebGUI.Form.GroupManager = {}; WebGUI.Form.GroupManager.users_added = new Array(); WebGUI.Form.GroupManager.users_deleted = new Array(); WebGUI.Form.GroupManager.groups_added = new Array(); WebGUI.Form.GroupManager.groups_deleted = new Array(); WebGUI.Form.GroupManager.last_groupId = ''; WebGUI.Form.GroupManager.last_userId = ''; } WebGUI.Form.GroupManager.handleCancel = function () { this.cancel(); } YAHOO.util.Event.onDOMReady(function () { WebGUI.Form.GroupManager.i18n = new WebGUI.i18n( { namespaces : { 'WebGUI' : [ 'submit', 'Cancel', '84', '89', '149' ], 'Form_Group' : [ 'Group Manager', 'Add Group...', 'Add User...', 'New Group' ] }, onpreload : { fn : WebGUI.Form.GroupManager.initDialog } }); }); var groupId = ""; WebGUI.Form.GroupManager.initDialog = function () { var tabWrapper = document.getElementById('application_workarea'); document.body.className= "yui-skin-sam"; var headID = document.getElementsByTagName("head")[0]; var dialogBox = document.createElement('div'); dialogBox.id= "dialog1"; dialogBox.className= "yui-pe-content"; dialogBox.innerHTML = '
' + responseObj.groups[i].groupName;
groupsAdded.appendChild(newGroup);
}
for (var i = 0; i < users.length; i++){
var userId = responseObj.users[i].userId;
var usersAdded = document.getElementById("list_of_users");
var usersAddedRow = document.getElementById("usersAdded_row");
usersAddedRow.style.cssText= "min-height: 27px !important; height: auto !important; display: block !important;";
var newUser = document.createElement('li');
newUser.setAttribute('id', 'gm_userId_'+userId)
newUser.innerHTML = '
' + responseObj.users[i].username;
usersAdded.appendChild(newUser);
}
}
};
var groupIdHidden = document.getElementById("groupManager_groupId");
groupIdHidden.setAttribute("value", groupId);
YAHOO.util.Connect.asyncRequest( "POST", requestUrl, callback );
}
else {
WebGUI.Form.GroupManager.dialog.form.groupName.value = '';
var groupIdHidden = document.getElementById("groupManager_groupId");
groupIdHidden.setAttribute("value", "new");
}
WebGUI.Form.GroupManager.dialog.show();
};
//ADD GROUPS
WebGUI.Form.GroupManager.addGroups = function() {
var groupTextbox = document.getElementById("group_lookup");
var groupsAdded = document.getElementById("list_of_groups");
var groupsAddedRow = document.getElementById("groupsAdded_row");
if (groupTextbox.value !== "" && groupTextbox.value !== WebGUI.Form.GroupManager.i18n.get('Form_Group','Add Group...') && WebGUI.Form.GroupManager.last_groupId !== '') {
var last_groupId = WebGUI.Form.GroupManager.last_groupId;
WebGUI.Form.GroupManager.last_groupId = '';
groupsAddedRow.style.cssText= "min-height: 27px !important; height: auto !important; display: block !important;";
var newGroup = document.createElement('li');
newGroup.setAttribute('id', 'gm_groupId_'+last_groupId)
newGroup.innerHTML = '
' +groupTextbox.value;
groupsAdded.appendChild(newGroup);
groupTextbox.value = WebGUI.Form.GroupManager.i18n.get('Form_Group','Add Group...');
var groupDeleted = false;
for(var i=0; i < WebGUI.Form.GroupManager.groups_deleted.length; i++) {
if(WebGUI.Form.GroupManager.groups_deleted[i] == last_groupId) {
WebGUI.Form.GroupManager.groups_deleted.splice(i,1);
groupDeleted = true;
}
}
if (! groupDeleted) {
WebGUI.Form.GroupManager.groups_added.push(last_groupId);
}
}
}
//REMOVE GROUPS
WebGUI.Form.GroupManager.removeGroups = function(groupId) {
var groupsAdded = document.getElementById("list_of_groups");
var group = document.getElementById('gm_groupId_'+groupId);
groupsAdded.removeChild(group);
var groupAdded = false;
for(var i = WebGUI.Form.GroupManager.groups_added.length-1; i >= 0; i--){
if(WebGUI.Form.GroupManager.groups_added[i] == groupId) {
WebGUI.Form.GroupManager.groups_added.splice(i,1);
groupAdded = true;
}
}
if (! groupAdded) {
WebGUI.Form.GroupManager.groups_deleted.push(groupId);
}
if (groupsAdded.innerHTML == "") {
groupsAdded.setAttribute("style", "display: none !important;");
}
}
//ADD USERS
WebGUI.Form.GroupManager.addUsers = function() {
var userTextbox = document.getElementById("user_lookup");
var usersAdded = document.getElementById("list_of_users");
var userssAddedRow = document.getElementById("usersAdded_row");
if (userTextbox.value !== "" && userTextbox.value !== WebGUI.Form.GroupManager.i18n.get('Form_Group','Add User...') && WebGUI.Form.GroupManager.last_userId !== '') {
var last_userId = WebGUI.Form.GroupManager.last_userId;
WebGUI.Form.GroupManager.last_userId = '';
userssAddedRow.style.cssText= "min-height: 27px !important; height: auto !important; display: block !important;"
var newUser = document.createElement('li');
newUser.setAttribute('id', 'gm_userId_'+last_userId)
newUser.innerHTML = '
' +userTextbox.value;
usersAdded.appendChild(newUser);
userTextbox.value = WebGUI.Form.GroupManager.i18n.get('Form_Group','Add User...');
var userDeleted = false;
for(var i = WebGUI.Form.GroupManager.users_deleted.length-1; i >= 0; i--){
if(WebGUI.Form.GroupManager.users_deleted[i] == last_userId) {
WebGUI.Form.GroupManager.users_deleted.splice(i,1);
userDeleted = true;
}
}
if (! userDeleted) {
WebGUI.Form.GroupManager.users_added.push(last_userId);
}
}
}
//REMOVE USERS
WebGUI.Form.GroupManager.removeUsers = function(userId) {
var usersAdded = document.getElementById("list_of_users");
var user = document.getElementById('gm_userId_'+userId);
usersAdded.removeChild(user);
//Keep the lists up to date. If this user was added, then take them out of the
//added list, and do not add them to the deleted list since the group doesn't know
//about it yet.
var userAdded = false;
for(var i = WebGUI.Form.GroupManager.users_added.length-1; i >= 0; i--){
if(WebGUI.Form.GroupManager.users_added[i] == userId) {
WebGUI.Form.GroupManager.users_added.splice(i,1);
userAdded = true;
}
}
if (! userAdded) {
WebGUI.Form.GroupManager.users_deleted.push(userId);
}
if (usersAdded.innerHTML == "") {
usersAdded.setAttribute("style", "display: none !important;");
}
}
//CREATE NEW GROUP
WebGUI.Form.GroupManager.createNewGroup = function() {
WebGUI.Form.GroupManager.dialog.form.groupName.value = '';
var groupIdHidden = document.getElementById("groupManager_groupId");
groupIdHidden.setAttribute("value", "new");
WebGUI.Form.GroupManager.users_added = new Array();
WebGUI.Form.GroupManager.users_deleted = new Array();
WebGUI.Form.GroupManager.groups_added = new Array();
WebGUI.Form.GroupManager.groups_deleted = new Array();
WebGUI.Form.GroupManager.last_groupId = '';
WebGUI.Form.GroupManager.last_userId = '';
var form_target = document.getElementById("gm_form_target");
form_target.innerHTML = '';
var groupsAdded = document.getElementById("list_of_groups");
var usersAdded = document.getElementById("list_of_users");
var groupTextbox = document.getElementById("group_lookup");
var userTextbox = document.getElementById("user_lookup");
groupsAdded.innerHTML = "";
usersAdded.innerHTML = "";
userTextbox.value = WebGUI.Form.GroupManager.i18n.get('Form_Group','Add User...');
groupTextbox.value = WebGUI.Form.GroupManager.i18n.get('Form_Group','Add Group...');
var groupName = document.getElementById("groupName");
groupName.focus();
var groupsAddedRow = document.getElementById("groupsAdded_row");
groupsAddedRow.setAttribute("style", "display: none; visibility: hidden;");
var usersAddedRow = document.getElementById("usersAdded_row");
usersAddedRow.setAttribute("style", "display: none; visibility: hidden;");
var createNewGroupRow = document.getElementById('createNewGroupRow');
createNewGroupRow.setAttribute("style", "display: none; visibility: hidden;");
}
WebGUI.Form.GroupManager.showAutocomplete = function(showWhat) {
var textInput = document.getElementById(showWhat);
textInput.value = "";
var groupsDiv = document.getElementById("groupResultsContainer");
var usersDiv = document.getElementById("userResultsContainer");
switch (showWhat) {
case "group_lookup":
groupsDiv.setAttribute("style", "display: block;");
usersDiv.setAttribute("style", "display: none;");
break;
case "user_lookup":
usersDiv.setAttribute("style", "display: block;");
groupsDiv.setAttribute("style", "display: none;");
break;
}
}