diff options
author | Adam Young <ayoung@redhat.com> | 2010-09-07 10:08:19 -0400 |
---|---|---|
committer | Adam Young <ayoung@redhat.com> | 2010-09-07 10:08:19 -0400 |
commit | dde15772700da41ec931bb55087fbec6f30fab55 (patch) | |
tree | 890bd7ecd8bb4d906c4b670b772b2a960c50f3c1 /install/static/user.js | |
parent | e93932b3235fc27b31a59c0cb77250acf15d3f31 (diff) | |
download | freeipa-dde15772700da41ec931bb55087fbec6f30fab55.tar.gz freeipa-dde15772700da41ec931bb55087fbec6f30fab55.tar.xz freeipa-dde15772700da41ec931bb55087fbec6f30fab55.zip |
associations
-Refactored the associations code into a set of objects that are configured by the entities
-Added support for associations that can be done in a single rpc
-hostgroup to host and group to user associations working
-Restructed sampledata so that the file is matched automatically by the RPC method name
-The new ipa_cmd/sampledata scheme insists on there being sample data for any commands or the ipa_command fails.
-Added sampledata files for all the calls we make
-renamed several of the sampledata files to match their rpc calls
-Started a pattern of refactoring where all the forms for the entity fall under a single object
Diffstat (limited to 'install/static/user.js')
-rw-r--r-- | install/static/user.js | 168 |
1 files changed, 16 insertions, 152 deletions
diff --git a/install/static/user.js b/install/static/user.js index 71bf3e513..190afca64 100644 --- a/install/static/user.js +++ b/install/static/user.js @@ -49,7 +49,7 @@ function setupUser(facet){ }else if (facet == "group"){ setupUserGroupList(); }else if (facet == "groupmembership"){ - setupUserGroupMembership(); + userGroupMembershipForm.setup(); }else{ userSearchForm.setup(); } @@ -94,29 +94,13 @@ var userBuilder = }); -function setupFacetNavigation(pkey,facet){ - $("#viewtype").html(""); - var facets = ["details","group", "groupmembership"]; - - for (var i =0; i < facets.length; i++){ - var li = $('<li>').appendTo($("#viewtype")); - if (facets[i] == facet){ - $('<img src="but-selected.png" alt="" />'); - li.html(facets[i]); - }else{ - $('<img src="but-unselected.png" alt="" />').appendTo(li); - $('<a/>',{ - href: "#tab=user&facet="+facets[i]+"&pkey="+pkey, - html: facets[i] - }).appendTo(li); - } - } -} +var userFacets = ["details","group", "groupmembership"]; + function setupUserDetails(user){ qs = ipa_parse_qs(); - setupFacetNavigation(qs.pkey,qs.facet); showDetails(); + setupFacetNavigation('user',qs.pkey,qs.facet,userFacets); renderUserDetails(); } @@ -128,7 +112,7 @@ function renderUserDetails() if (qs['principal']) { ipa_cmd( 'find', [], {'krbprincipalname': qs['principal']}, - on_win_find, null, 'user', "sampledata/usershow.json"); + on_win_find, null, 'user'); return; } @@ -136,7 +120,7 @@ function renderUserDetails() if (!qs['pkey']) return; - ipa_details_load(qs['pkey'], on_win, null, "sampledata/usershow.json"); + ipa_details_load(qs['pkey'], on_win, null); $('h1').text('Managing user: ' + qs['pkey']); } @@ -188,7 +172,7 @@ var userSearchColumns = [ {title:"Actions", column:"none", render: renderUserLinks} ]; -var userSearchForm = new SearchForm("user", "find", userSearchColumns, "sampledata/userlist.json"); +var userSearchForm = new SearchForm("user", "find", userSearchColumns); /*Usr group enrollement: given a user, manage the groups in which they are enrolled */ @@ -196,146 +180,26 @@ function populateUserGroupFailure(){ alert("Can't find user"); } -function setupUserGroupMembership(pkey){ - sampleData = "sampledata/usershow.json"; - showAssociations(); - qs = ipa_parse_qs(); - setupFacetNavigation(qs['pkey'],qs['facet']); - - $('h1').text('Enroll user ' + qs['pkey'] + ' in groups'); - - $("#enrollGroups").click(function(){ - groupsToEnroll = []; - $('#enrollments').children().each(function(i, selected){ - groupsToEnroll.push(selected.value); - }); - - currentUserToEnroll = qs['pkey']; - enrollUserInNextGroup(); - }); - - $("#addToList").click(function(){ - $('#grouplist :selected').each(function(i, selected){ - $("#enrollments").append(selected); - }); - $('#grouplist :selected').remove(); - }); - - $("#removeFromList").click(function(){ - $('#enrollments :selected').each(function(i, selected){ - $("#grouplist").append(selected); - }); - $('#enrollments :selected').remove(); - }); - - $("#find").click(function(){ - ipa_cmd( 'find', [], {}, populateUserGroupSearch, populateUserGroupFailure, 'group', "sampledata/grouplist.json" ); - - }); -} - -function populateUserGroupSearch(searchResults){ - results = searchResults.result; - $("#grouplist").html(""); - for (var i =0; i != searchResults.result.count; i++){ - var li = document.createElement("option"); - li.value = searchResults.result.result[i].cn; - li.innerHTML = searchResults.result.result[i].cn; - $("#grouplist").append(li); - } -} -var currentUserToEnroll; -var groupsToEnroll; -function enrollUserInGroupSuccess(response){ - enrollUserInNextGroup(); -} -function enrollUserInGroupFailure(response){ - alert("enrollUserInGroupFailure"); -} - -function enrollUserInNextGroup(){ - var currentGroupToEnroll = groupsToEnroll.shift(); - - if (currentGroupToEnroll){ - var options = {"user":currentUserToEnroll}; - var args = [currentGroupToEnroll]; - - ipa_cmd( 'add_member',args, options , - enrollUserInGroupSuccess, - enrollUserInGroupFailure,'group' ); - }else{ - location.hash="tab=user&facet=group&pkey="+qs.pkey; - } -} - -function renderUserGroupColumn(){ -} - -/*Group Membership&*/ - -function renderUserGroupColumn(current,cell){ - cell.innerHTML = "Nothing to see here"; +var userGroupMembershipForm = new AssociationForm("user","group","groupmembership",userFacets, "cn", function(){ + return 'Enroll user ' + qs['pkey'] + ' in groups'; } +); +/*Group Membership*/ var groupMembershipColumns = [ - {title:"Group", column:"cn", render: renderUserGroupColumn}, - {title:"GID", column:"gid", render: renderUserGroupColumn}, - {title:"Description", column:"uidnumber", render: renderUserGroupColumn}, - + {title:"Group", column:"memberof_group"}, ]; - function populateUserEnrollments(userData){ - - var memberof_group = userData.result.result.memberof_group - for (var j = 0; j < memberof_group.length; j++){ - var row = document.createElement("tr"); - - var td = document.createElement("td"); - td.innerHTML = memberof_group[j]; - row.appendChild(td); - - td = document.createElement("td"); - td.innerHTML = "TBD"; - row.appendChild(td); - - var td = document.createElement("td"); - td.innerHTML = "TBD"; - row.appendChild(td); - - $('#searchResultsTable thead:last').append(row); - } + userEnrollmentList.populate(userData); } - - -function setupUserGroupList(){ - qs = ipa_parse_qs(); - setupFacetNavigation(qs['pkey'],qs['facet']); - showSearch(); - - $("#filter").css("display","none"); - - $("#searchButtons").html(""); - $("<input/>",{ - type: 'button', - value: 'enroll', - click: function(){ - location.hash="tab=user&facet=groupmembership&pkey="+qs['pkey']; - } - }).appendTo("#searchButtons"); - var columnHeaders = document.createElement("tr"); - for (var i =0 ; i != groupMembershipColumns.length ;i++){ - var th = document.createElement("th"); - th.innerHTML = groupMembershipColumns[i].title; - columnHeaders.appendChild(th); - } - $('#searchResultsTable thead:last').append(columnHeaders); - - ipa_cmd( 'show', [qs['pkey']], {}, populateUserEnrollments, populateUserGroupFailure, 'user',"sampledata/usershow.json" ); +function setupUserGroupList(){ + userEnrollmentList.setup(); } +var userEnrollmentList = new AssociationList('user', 'group','groupmembership',groupMembershipColumns,userFacets); function on_win(data, textStatus, xhr) |