Ticket #2924: include mini avatars in Autocomplete plugin drop-down list

Ticket #2923: don't show "(null)" for some profiles with no full name set
This commit is contained in:
Brion Vibber 2010-12-06 16:55:16 -08:00
parent daae13df1c
commit 4868aaf9ea
2 changed files with 31 additions and 3 deletions

View File

@ -12,7 +12,13 @@ $(document).ready(function(){
minChars: 1,
formatItem: function(row, i, max){
row = eval("(" + row + ")");
return fullName(row);
// the display:inline is because our INSANE stylesheets
// override the standard display of all img tags for no
// good reason.
var div = $('<div><img style="display:inline; vertical-align: middle"> <span></span></div>')
.find('img').attr('src', row.avatar).end()
.find('span').text(fullName(row)).end()
return div.html();
},
formatMatch: function(row, i, max){
row = eval("(" + row + ")");

View File

@ -126,10 +126,32 @@ class AutocompleteAction extends Action
$results = array();
foreach($this->users as $user){
$profile = $user->getProfile();
$results[]=array('nickname' => $user->nickname, 'fullname'=> $profile->fullname, 'type'=>'user');
$avatar = $profile->getAvatar(AVATAR_MINI_SIZE);
// sigh.... encapsulate this upstream!
if ($avatar) {
$avatar = $avatar->displayUrl();
} else {
$avatar = Avatar::defaultImage(AVATAR_MINI_SIZE);
}
$results[] = array(
'nickname' => $user->nickname,
'fullname'=> $profile->fullname,
'avatar' => $avatar,
'type' => 'user'
);
}
foreach($this->groups as $group){
$results[]=array('nickname' => $group->nickname, 'fullname'=> $group->fullname, 'type'=>'group');
// sigh.... encapsulate this upstream!
if ($group->mini_logo) {
$avatar = $group->mini_logo;
} else {
$avatar = User_group::defaultLogo(AVATAR_MINI_SIZE);
}
$results[] = array(
'nickname' => $group->nickname,
'fullname'=> $group->fullname,
'avatar' => $avatar,
'type' => 'group');
}
foreach($results as $result) {
print json_encode($result) . "\n";