packages/ssoinabox-webui/root/usr/local/share/ssoinabox/htdocs/res/group-create-form.js
author Dan Fuhry <dan@fuhry.us>
Fri, 11 Jan 2013 05:41:41 -0500
changeset 4 2212b2ded8bf
parent 0 3906ca745819
permissions -rw-r--r--
Added OpenSSH public key support in LDAP

$(function()
	{
		$('.show-tooltip').tooltip();
		window.userList = [];
		for ( var i in users )
		{
			window.userList.push(i);
		}
		
		$('#groupMemberAdder').typeahead({
				source: window.userList
			}).bind('keyup', function(e)
			{
				if ( e.keyCode != 13 )
					return;
				
				// user doesn't exist
				if ( typeof(window.users[$(this).val()]) != 'object' )
					return;
				
				$(this).attr('disabled', 'disabled');
				
				var gid = $('.put-members-here').data('gid');
				var uid = $(this).val();
				var me = this;
				
				$.get('/ajax.php?op=addUserToGroup&gid=' + gid + '&uid=' + uid, function(response)
					{
						$(me).attr('disabled', false).val('');
						
						if ( !response )
							return;
						
						drawGroupMember(gid, uid);
					}, 'json');
			});
			
		$('#groupCreateForm').bind('shown', function()
			{
				$('input[name="cn"]', this).focus();
			});
			
		$(document.forms.groupCreateForm.cn).bind('keyup', function()
			{
				if ( (/^[a-z][a-z0-9]{2,31}$/).test($(this).val()) )
				{
					$(this).parents('div.control-group').removeClass('error').addClass('success');
				}
				else
				{
					$(this).parents('div.control-group').removeClass('success').addClass('error');
				}
			});
	});


function viewGroup(gid)
{
	void(gid);
	$.get('/ajax.php?op=getGroup&gid=' + gid, function(response)
		{
			$('.put-members-here').empty().data('gid', gid);
			for ( var i = 0; i < response.memberUid.length; i++ )
			{
				drawGroupMember(response.cn, response.memberUid[i]);
			}
			$('#groupViewModal').modal('show');
		}, 'json');
}

function drawGroupMember(gid, uid)
{
	$('<tr />')
		.append('<td>' + uid + '</td>')
		.append('<td>' + users[uid].cn + '</td>')
		.append('<td class="actions"><a href="#" onclick="removeUserFromGroup(this, \'' + gid + '\', \'' + uid + '\'); return false;" class="btn btn-primary btn-mini btn-danger"><i class="icon icon-white icon-remove"></i></a></td>')
		.prependTo('.put-members-here');
}

function removeUserFromGroup(a, gid, uid)
{
	void(a);
	$.get('/ajax?op=removeUserFromGroup&gid=' + gid + '&uid=' + uid, function(response)
		{
			if ( response )
			{
				$(a).parents('tr').remove();
			}
		}, 'json');
}