From 2fd311ad489e8c301d3069ad3c01d80f279369c3 Mon Sep 17 00:00:00 2001 From: Endi Sukma Dewata Date: Tue, 14 Sep 2010 22:26:15 -0400 Subject: Adding quick links in user and group search results. The render_call() signature has been modified to pass the entry_attrs so each callback function can construct the appropriate quick links using any attributes from the search results. The callback function has been implemented for user and group entities. --- install/static/group.js | 44 ++++++++++++++++++++++++++++++++++++ install/static/search.js | 6 ++--- install/static/user.js | 58 +++++++++++++++++++++++++++++++++++++++++++++++- 3 files changed, 104 insertions(+), 4 deletions(-) diff --git a/install/static/group.js b/install/static/group.js index 113c1f125..02940b6ca 100644 --- a/install/static/group.js +++ b/install/static/group.js @@ -24,6 +24,7 @@ ipa_entity_set_search_definition('group', [ ['cn', 'Name', null], ['gidnumber', 'GID', null], ['description', 'Description', null], + ['quick_links', 'Quick Links', group_render_quick_links] ]); ipa_entity_set_add_definition('group', [ @@ -64,3 +65,46 @@ function f_posix(dlg, mode) } } +function group_render_quick_links(tr, attr, value, entry_attrs) { + + var td = $(""); + tr.append(td); + + $("", { + href: "jslink", + html: "[D]", + click: function() { + var state = {}; + state['group-facet'] = 'details'; + state['group-pkey'] = entry_attrs['cn'][0]; + $.bbq.pushState(state); + return false; + } + }).appendTo(td); + + $("", { + href: "jslink", + html: "[U]", + click: function() { + var state = {}; + state['group-facet'] = 'associate'; + state['group-enroll'] = 'user'; + state['group-pkey'] = entry_attrs['cn'][0]; + $.bbq.pushState(state); + return false; + } + }).appendTo(td); + + $("", { + href: "jslink", + html: "[N]", + click: function() { + var state = {}; + state['group-facet'] = 'associate'; + state['group-enroll'] = 'netgroup'; + state['group-pkey'] = entry_attrs['cn'][0]; + $.bbq.pushState(state); + return false; + } + }).appendTo(td); +} diff --git a/install/static/search.js b/install/static/search.js index 6a7c40b01..7347dfceb 100644 --- a/install/static/search.js +++ b/install/static/search.js @@ -113,9 +113,9 @@ function search_generate_tr(thead, tbody, entry_attrs) var value = entry_attrs[attr]; var render_call = window[jobj.attr('title')]; - if (typeof render_call == 'function') - render_call(tr, attr, value); - else + if (typeof render_call == 'function') { + render_call(tr, attr, value, entry_attrs); + } else search_generate_td(tr, attr, value); } diff --git a/install/static/user.js b/install/static/user.js index a8954be19..11880c84a 100644 --- a/install/static/user.js +++ b/install/static/user.js @@ -27,7 +27,7 @@ ipa_entity_set_search_definition('user', [ ['mail', 'EMAIL', null], ['telephonenumber', 'Phone', null], ['title', 'Job Title', null], - ['actions', 'Actions', null] + ['quick_links', 'Quick Links', user_render_quick_links] ]); ipa_entity_set_add_definition('user', [ @@ -209,3 +209,59 @@ function a_manager(jobj, result, mode) { } +function user_render_quick_links(tr, attr, value, entry_attrs) { + + var td = $(""); + tr.append(td); + + $("", { + href: "jslink", + html: "[D]", + click: function() { + var state = {}; + state['user-facet'] = 'details'; + state['user-pkey'] = entry_attrs['uid'][0]; + $.bbq.pushState(state); + return false; + } + }).appendTo(td); + + $("", { + href: "jslink", + html: "[G]", + click: function() { + var state = {}; + state['user-facet'] = 'associate'; + state['user-enroll'] = 'group'; + state['user-pkey'] = entry_attrs['uid'][0]; + $.bbq.pushState(state); + return false; + } + }).appendTo(td); + + $("", { + href: "jslink", + html: "[N]", + click: function() { + var state = {}; + state['user-facet'] = 'associate'; + state['user-enroll'] = 'netgroup'; + state['user-pkey'] = entry_attrs['uid'][0]; + $.bbq.pushState(state); + return false; + } + }).appendTo(td); + + $("", { + href: "jslink", + html: "[R]", + click: function() { + var state = {}; + state['user-facet'] = 'associate'; + state['user-enroll'] = 'role'; + state['user-pkey'] = entry_attrs['uid'][0]; + $.bbq.pushState(state); + return false; + } + }).appendTo(td); +} -- cgit