function setupGroup(facet){
if (groupForms[facet]){
groupForms[facet].setup();
}else if (facet == "details"){
setupGroupDetails();
}else if (facet == "add"){
setupAddGroup();
}else{
groupForms.search.setup();
}
}
function addGroupFail(desc){
alert(desc);
}
function addGroup(on_success){
var options = {
posix: $('#isposix').is(':checked') ? 1 : 0 ,
description: $("#groupdescription").val()};
var gid = $("#groupidnumber").val();
if (gid.length > 0){
options.gidnumber = gid;
}
var params = [$("#groupname").val()];
ipa_cmd( 'add', params, options, on_success, addGroupFail, 'group' );
}
function addEditGroup(){
addGroup(function (response){
location.hash="tab=group&facet=details&pkey="+$("#groupname").val();
});
}
function addAnotherGroup(){
addGroup(setupAddGroup);
}
function setupAddGroup(){
showContent();
$("
Add new Group
").appendTo("#content");
$("")
.appendTo("#content");
$("").appendTo("#addGroupForm");
$("
").appendTo("#addGroupForm");
$("Name")
.appendTo("#groupProperties");
$("Description")
.appendTo("#groupProperties");
$("Is this a posix Group")
.appendTo("#groupProperties");
$("GID")
.appendTo("#groupProperties");
$("#addEdit").click(addEditGroup);
$("#addAnother").click(addAnotherGroup);
}
var group_details_list =
[['identity', 'Group Details', [
['cn', 'Group Name'],
['description', 'Description'],
['gidnumber', 'Group ID']]]];
var groupFacets=['details','users'];
function setupGroupDetails(group){
//re initialize global parse of parameters
qs = ipa_parse_qs();
showDetails();
setupFacetNavigation('group',qs['pkey'],qs['facet'],groupFacets);
ipa_details_init('group');
ipa_details_create(group_details_list, $('#details'));
ipa_details_load(qs['pkey'], on_win, null);
$('h1').text('Managing group: ' + group);
}
function renderGroupDetailColumn(current,cell){
$("",{
href:"#tab=group&facet=details&pkey="+current.cn,
html: ""+ current[this.column],
}).appendTo(cell);
}
var groupSearchColumns = [
{title:"Group Name", column:"cn",render: renderGroupDetailColumn},
{title:"GID", column:"gidnumber",render: renderSimpleColumn},
{title:"Description", column:"description",render: renderSimpleColumn}
];
var groupForms = new GroupForms();
function GroupForms(){
this.userListColumns = [ {title:"user",column:"member_user" }];
this.obj="group";
this.users = new AssociationList(
this.obj,
"users",
"assignusers",
this.userListColumns, groupFacets );
this.assignusers = new AssociationForm(
this.obj,
"user",
"assignusers",
groupFacets,
"uid",
function(){
return 'Add Users to group : ' + qs['pkey'] ;
},
BulkAssociator);
this.search = new SearchForm("group", "find", groupSearchColumns );
}