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.
This commit is contained in:
Endi Sukma Dewata 2010-09-14 22:26:15 -04:00 committed by Adam Young
parent 6a4a1dcf3c
commit 2fd311ad48
3 changed files with 104 additions and 4 deletions

View File

@ -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 = $("<td/>");
tr.append(td);
$("<a/>", {
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);
$("<a/>", {
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);
$("<a/>", {
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);
}

View File

@ -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);
}

View File

@ -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 = $("<td/>");
tr.append(td);
$("<a/>", {
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);
$("<a/>", {
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);
$("<a/>", {
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);
$("<a/>", {
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);
}